C64 Software  <  SCA: The C64 Software Collection / BOUNCESCROLL2

  Run
1000              ;
1010              ;NORMALSCROLL 1
1020              ;21.6.80   STI
1030              ;
1040 Y            EQU 60   ;POSITION
1050 IY           EQU 255  ;WANN IRQ
1060 C            EQU 4    ;SPRITEFARBE
1070              ;
1080              ;
1090 EY           EQU 255  ;EXPAND Y
1100              ;
1110 ZEROFREE     EQU 247
1120              ;
1130 ROW          EQU ZEROFREE
1140 CNTR         EQU ZEROFREE+1
1150 TEXT         EQU ZEROFREE+2
1160 PTR1         EQU ZEROFREE+4
1170              ;
1180 BOUNCEKIND   EQU ZEROFREE+6
1190 BOUNCECOUNTEREQU ZEROFREE+7
1200 BOUNCEDATA   EQU $3000
1210              ;
1220 SPRITEPTR    EQU 2040
1230 SPRITENR     EQU 128
1240 SPRITES      EQU 8192
1250 LASTSPRITE   EQU SPRITES+448+12
1260 REG          EQU 53270
1270              ;
1280              ORG 20000
1290              ;
1300              ;
1310 BOUNINIT     LDA #0
1320              STA BOUNCEKIND
1330              STA BOUNCECOUNTER
1340              ;
1350 INT          SEI
1360              LDA #<ISR
1370              STA 788
1380              LDA #>ISR
1390              STA 789
1400              LDA #127
1410              STA 56333
1420              ;
1430              LDX #46
1440 INIT1        LDA VICTAB,X
1450              STA 53248,X
1460              DEX
1470              BPL INIT1
1480              ;
1490              LDX #8
1500              STX CNTR
1510              LDA #SPRITENR+7
1520 INIT2        STA SPRITEPTR-1,X
1530              SEC
1540              SBC #1
1550              DEX
1560              BNE INIT2
1570              ;
1580              TXA
1590 INIT3        STA SPRITES,X
1600              STA SPRITES+256,X
1610              STA SPRITES+512,X
1620              INX
1630              BNE INIT3
1640              ;
1650              LDA #<TEXTTAB
1660              STA TEXT
1670              LDA #>TEXTTAB
1680              STA TEXT+1
1690              ;
1700              CLI
1710              RTS
1720              ;
1730              ;
1740              ;
1750 ISR          LDA #1
1760              STA 53273
1770              ;
1780              JSR BOUNCE
1790              JSR SCLOLL
1800              ;
1810              JMP 59953
1820              ;
1830 BOUNCE       DEC BOUNCECOUNTER
1840              BEQ NEWBOUNCE
1850              ;
1860              LDY BOUNCECOUNTER
1870 MAKE1        LDA BOUNCEDATA,Y
1880              LDX BOUNCEKIND
1890              BPL POSIBOUNCE
1900 NEGABOUNCE   EOR #255
1910              CLC
1920              ADC #18
1930              ;
1940 POSIBOUNCE   LDX #0
1950 BOUNCELOOP1  STA 53249,X
1960              INX
1970              INX
1980              CPX #16
1990              BNE BOUNCELOOP1
2000              RTS
2010              ;
2020 NEWBOUNCE    LDA #202
2030              STA BOUNCECOUNTER
2040              LDA BOUNCEKIND
2050              EOR #255
2060              STA BOUNCEKIND
2070              JMP BOUNCE
2080              ;
2090              ;
2100 SCLOLL       LDA #27
2110 SCLOLL1      STA ROW
2120              CLC
2130              ADC #<LASTSPRITE
2140              STA MODIF+1
2150              LDA #>LASTSPRITE
2160              STA MODIF+2
2170              ;
2180              LDY #8
2190 SCLOLL2      LDX #2
2200 MODIF        ROL 65530,X
2210              DEX
2220              BPL MODIF
2230              ;
2240              PHP
2250              LDA MODIF+1
2260              SEC
2270              SBC #64
2280              STA MODIF+1
2290              BCS SCLOLL3
2300              DEC MODIF+2
2310 SCLOLL3      PLP
2320              DEY
2330              BNE SCLOLL2
2340              ;
2350              LDA ROW
2360              SEC
2370              SBC #3
2380              BPL SCLOLL1
2390              ;
2400              DEC CNTR
2410              LDA CNTR
2420              BNE SCLOLLAUS
2430              LDA #8
2440              STA CNTR
2450              LDA #27    ;$D8/8
2460              STA PTR1+1
2470              ;
2480              LDY #0
2490 SCLOLL4      LDA (TEXT),Y
2500              BNE SCLOLL5
2510              ;
2520              LDA #<TEXTTAB
2530              STA TEXT
2540              LDA #>TEXTTAB
2550              STA TEXT+1
2560              BNE SCLOLL4
2570              ;
2580 SCLOLL5      INC TEXT
2590              BNE SCLOLL6
2600              INC TEXT+1
2610              ;
2620 SCLOLL6      ASL
2630              ROL PTR1+1
2640              ASL
2650              ROL PTR1+1
2660              ASL
2670              ROL PTR1+1
2680              STA PTR1
2690              LDA #51
2700              STA 1
2710              LDX #0
2720              LDY #0
2730 SCLOLL7      LDA (PTR1),Y
2740              STA LASTSPRITE+2,X
2750              INX
2760              INX
2770              INX
2780              INY
2790              CPY #8
2800              BCC SCLOLL7
2810              LDA #55
2820              STA 1
2830              ;
2840              ;
2850 SCLOLLAUS    RTS
2860              ;
2870              ;
2880              ;
2890 VICTAB       DFB 0,Y,48,Y,96,Y,144,Y,192,Y,240,Y,32,Y,80,Y,%11000000
2900              DFB 27,IY,0,0,255,8,EY,21,1,129,0,0,255,0,0
2910              DFB 0,0,0,0,0,0,0,C,C,C,C,C,C,C,C
2920              ;
2930 TEXTTAB      DFB ""
2940              DFB ""
2950              DFB ""
2960              DFB "",0
READY.