scrolly

by ixitxachitl

Game:

Description:

Init:                              ;\  This section is to be used in the INIT code of levelASM
   REP #$20                             ; | 
   LDA #$0F42                           ; | Use indeirect and mode 2 on register 210F
   STA $4330                            ; | 4330 = Mode, 4331 = Register
   LDA #ParallaxTable_180342737         ; | Address of HDMA table, get high and low byte
   STA $4332                            ; | 4332 = Low-Byte of table, 4333 = High-Byte of table
   SEP #$20                             ; | 
   LDA.b #ParallaxTable_180342737>>16   ; | Address of HDMA table, get bank byte
   STA $4334                            ; | 4334 = Bank-Byte of table
   LDA #$7F                             ; | Address of indirect table in RAM bank byte
   STA $4337                            ; | 4334 = Bank-Byte of indirect table
   LDA #$08                             ; | 
   TSB $0D9F                            ; | Enable HDMA channel 3

.MainCode:                              ;\  This section is to be used in the MAIN code of levelASM
   REP #$20                             ;/  16 bit action starts here. (To load the x position of the BG)

   LDA #$0000                           ;\  Multiplied by 0
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E00                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   LSR #4                               ; | Multiplied by 0.0625
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E02                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   LSR #3                               ; | Multiplied by 0.125
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E04                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   LSR #2                               ; | Multiplied by 0.25
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E06                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   LSR #1                               ; | Multiplied by 0.5
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E08                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   ASL #0                               ; | Multiplied by 1
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E0A                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   ASL #1                               ; | Multiplied by 2
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E0C                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   ASL #2                               ; | Multiplied by 4
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E0E                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   ASL #3                               ; | Multiplied by 8
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E10                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   LDA $1E                              ;\  Load BG x Position
   ASL #4                               ; | Multiplied by 16
   PHA                                  ; | Preserve A (current multiplication result)
   CLC : ADC #$0001                     ; | Add rate.
   STA $7F9E12                          ; | Store to FreeRAM for indirect HDMA
   PLA                                  ;/  Restore A (current multiplication result)
   SEP #$20                             ; Back to 8bit
   RTL                                  ; Return

ParallaxTable_180342737:                ;\  
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E00                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E02                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E04                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E06                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E08                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0A                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0C                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E0E                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E10                    ; | 
   db $01 : dw $9E12                    ; | 
   db $01 : dw $9E12                    ; | 
   db $01 : dw $9E12                    ; | 
   db $01 : dw $9E12                    ; | 
   db $01 : dw $9E12                    ; | 
   db $01 : dw $9E12                    ; | 
   db $01 : dw $9E12                    ; | 
   db $01 : dw $9E12                    ; | 
   db $00                               ;/  

back to listings