SMOOTH24.ASM
FILE INFORMATION
FILENAME(S): SMOOTH24.ASM
FILE TYPE(S): SEQ
FILE SIZE: 6.8K
FIRST SEEN: 2025-11-30 17:31:21
APPEARS ON: 1 disk(s)
FILE HASH
636f66a7ab98a118bc0757c5ab539634f0cadc2492653f4733ea09d4871df7e2
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| CDU NOVEMBER 90 | SMOOTH24.ASM | SEQ | UK CD | 10 | 8 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 3B 0D 3B 20 D3 4D 4F 4F 54 48 20 53 43 52 4F 4C |;.; .MOOTH SCROL| 00000010: 4C 45 52 2C 20 C3 4F 50 59 52 49 47 48 54 20 C1 |LER, .OPYRIGHT .| 00000020: 2E CD 49 4C 4C 45 54 54 0D 3B 0D 2A 3D 24 39 43 |..ILLETT.;.*=$9C| 00000030: 30 30 0D 3B 0D 56 49 43 20 3D 20 35 33 32 34 38 |00.;.VIC = 53248| 00000040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000050: 3B 20 D6 49 43 20 43 48 49 50 0D 53 50 52 50 54 |; .IC CHIP.SPRPT| 00000060: 52 53 20 3D 20 33 33 37 38 34 0D 48 49 42 49 54 |RS = 33784.HIBIT| 00000070: 53 20 3D 20 56 49 43 20 2B 20 31 36 20 20 20 20 |S = VIC + 16 | 00000080: 20 20 20 20 20 20 3B 20 CD D3 C2 20 4F 46 20 53 | ; ... OF S| 00000090: 50 52 49 54 45 20 50 4F 53 4E 53 0D 5A 50 54 52 |PRITE POSNS.ZPTR| 000000A0: 20 3D 20 24 46 42 0D 5A 50 54 52 32 3D 20 24 46 | = $FB.ZPTR2= $F| 000000B0: 44 0D 5A 4D 53 47 50 54 52 20 3D 20 24 46 42 0D |D.ZMSGPTR = $FB.| 000000C0: 4B 42 48 49 54 20 3D 20 31 39 38 20 20 20 20 20 |KBHIT = 198 | 000000D0: 20 20 20 20 20 20 20 20 20 20 20 3B 20 D3 45 54 | ; .ET| 000000E0: 20 49 46 20 43 48 41 52 20 54 59 50 45 44 2E 0D | IF CHAR TYPED..| 000000F0: 56 44 55 20 3D 20 33 32 37 36 38 20 20 20 20 20 |VDU = 32768 | 00000100: 20 20 20 20 20 20 20 20 20 20 20 3B 20 CC 4F 43 | ; .OC| 00000110: 20 4F 46 20 53 43 52 45 45 4E 0D 43 4F 4C 52 41 | OF SCREEN.COLRA| 00000120: 4D 20 3D 20 24 44 38 30 30 20 20 20 20 20 20 20 |M = $D800 | 00000130: 20 20 20 20 20 20 3B 20 CC 4F 43 20 4F 46 20 43 | ; .OC OF C| 00000140: 4F 4C 4F 52 20 52 41 4D 0D 3B 0D 3B 20 20 20 20 |OLOR RAM.;.; | 00000150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 CA 55 | .U| 00000160: 4D 50 20 56 45 43 54 4F 52 20 54 41 42 4C 45 2E |MP VECTOR TABLE.| 00000170: 2E 0D 44 4F 53 4D 4F 4F 54 48 2E 0D 20 20 4A 4D |..DOSMOOTH.. JM| 00000180: 50 20 4D 41 49 4E 0D 52 45 53 45 54 53 4D 4F 4F |P MAIN.RESETSMOO| 00000190: 54 48 2E 0D 20 20 4A 4D 50 20 49 4E 49 54 0D 4A |TH.. JMP INIT.J| 000001A0: 53 50 45 43 49 41 4C 46 58 2E 0D 20 20 4A 4D 50 |SPECIALFX.. JMP| 000001B0: 20 53 50 45 43 49 41 4C 46 58 0D 4A 44 4F 52 4F | SPECIALFX.JDORO| 000001C0: 54 41 54 45 2E 0D 20 20 4A 53 52 20 44 4F 52 4F |TATE.. JSR DORO| 000001D0: 54 41 54 45 43 48 41 52 0D 4A 57 41 49 54 31 53 |TATECHAR.JWAIT1S| 000001E0: 43 52 2E 0D 20 20 4A 4D 50 20 57 41 49 54 31 53 |CR.. JMP WAIT1S| 000001F0: 43 52 0D 4A 46 49 4C 4C 56 44 55 2E 0D 20 20 4A |CR.JFILLVDU.. J| 00000200: 4D 50 20 46 49 4C 4C 56 44 55 0D 4A 44 4F 31 44 |MP FILLVDU.JDO1D| 00000210: 4F 54 2E 0D 20 20 4A 4D 50 20 44 4F 31 44 4F 54 |OT.. JMP DO1DOT| 00000220: 0D 3B 0D 20 20 2E 42 59 54 45 20 30 2C 30 2C 30 |.;. .BYTE 0,0,0| 00000230: 0D 20 20 2E 42 59 54 45 20 30 2C 30 2C 30 2C 30 |. .BYTE 0,0,0,0| 00000240: 2C 30 2C 30 2C 30 2C 30 0D 20 20 2E 42 59 54 45 |,0,0,0,0. .BYTE| 00000250: 20 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 2C 30 | 0,0,0,0,0,0,0,0| 00000260: 0D 20 20 2E 42 59 54 45 20 30 2C 30 2C 30 2C 30 |. .BYTE 0,0,0,0| 00000270: 2C 30 2C 30 2C 30 2C 30 0D 3B 20 20 20 20 CF 4B |,0,0,0,0.; .K| 00000280: 2C 20 46 4C 41 47 53 20 53 54 41 52 54 20 41 54 |, FLAGS START AT| 00000290: 20 24 39 43 32 38 0D 3B 0D 4D 53 47 50 54 52 2E | $9C28.;.MSGPTR.| 000002A0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 20 C9 | ; .| 000002B0: 46 20 41 4E 59 20 53 43 52 4F 4C 4C 20 4F 46 20 |F ANY SCROLL OF | 000002C0: 45 44 47 45 2C 20 54 48 49 53 20 49 53 20 50 54 |EDGE, THIS IS PT| 000002D0: 52 20 54 4F 20 4E 45 57 20 53 50 52 0D 20 20 2E |R TO NEW SPR. .| 000002E0: 57 4F 52 44 20 24 39 30 30 30 0D 4D 53 47 4C 4F |WORD $9000.MSGLO| 000002F0: 43 2E 0D 20 20 2E 57 4F 52 44 20 24 39 30 30 30 |C.. .WORD $9000| 00000300: 0D 43 48 52 53 45 54 4C 4F 43 2E 20 20 20 20 20 |.CHRSETLOC. | 00000310: 20 20 20 20 3B 20 CC 4F 43 20 4F 46 20 55 53 45 | ; .OC OF USE| 00000320: 52 20 44 45 46 20 43 48 41 52 20 53 45 54 0D 20 |R DEF CHAR SET. | 00000330: 20 2E 57 4F 52 44 20 24 38 38 30 30 0D 49 4E 44 | .WORD $8800.IND| 00000340: 45 58 2E 0D 20 20 2E 42 59 54 45 20 30 0D 52 4D |EX.. .BYTE 0.RM| 00000350: 41 52 47 2E 20 20 20 20 20 20 20 20 20 20 20 20 |ARG. | 00000360: 20 20 3B 20 D2 45 53 45 54 20 50 4F 53 20 46 4F | ; .ESET POS FO| 00000370: 52 20 4E 45 57 20 53 50 52 0D 20 20 2E 42 59 54 |R NEW SPR. .BYT| 00000380: 45 20 31 31 32 0D 4C 4D 41 52 47 2E 0D 20 20 2E |E 112.LMARG.. .| 00000390: 42 59 54 45 20 32 34 0D 48 53 50 41 43 49 4E 47 |BYTE 24.HSPACING| 000003A0: 2E 20 20 20 20 20 20 20 20 20 20 3B 20 C8 4F 52 |. ; .OR| 000003B0: 49 5A 4F 4E 54 41 4C 20 53 50 41 43 49 4E 47 20 |IZONTAL SPACING | 000003C0: 4F 46 20 53 50 52 49 54 45 53 2E 0D 20 20 2E 42 |OF SPRITES.. .B| 000003D0: 59 54 45 20 34 36 0D 53 43 4F 4C 4F 52 2E 20 20 |YTE 46.SCOLOR. | 000003E0: 20 20 20 20 20 20 20 20 20 20 3B 20 D3 50 52 49 | ; .PRI| 000003F0: 54 45 20 43 4F 4C 4F 52 0D 20 20 2E 42 59 54 45 |TE COLOR. .BYTE| 00000400: 20 31 0D 57 49 44 45 4D 4F 44 45 2E 20 20 20 20 | 1.WIDEMODE. | 00000410: 20 20 20 20 20 20 3B 20 C4 4F 55 42 4C 45 20 57 | ; .OUBLE W| 00000420: 49 44 54 48 20 53 50 52 49 54 45 53 0D 20 20 2E |IDTH SPRITES. .| 00000430: 42 59 54 45 20 32 35 35 0D 57 49 47 47 4C 45 46 |BYTE 255.WIGGLEF| 00000440: 4C 41 47 2E 20 20 20 20 20 20 20 20 3B 20 D3 45 |LAG. ; .E| 00000450: 54 20 46 4F 52 20 4A 55 4D 50 49 4E 47 20 53 43 |T FOR JUMPING SC| 00000460: 52 4F 4C 4C 0D 20 20 2E 42 59 54 45 20 30 0D 53 |ROLL. .BYTE 0.S| 00000470: 50 45 45 44 2E 20 20 20 20 20 20 20 20 20 20 20 |PEED. | 00000480: 20 20 3B 20 D3 43 52 4F 4C 4C 20 53 50 45 45 44 | ; .CROLL SPEED| 00000490: 20 49 4E 20 58 2F 35 30 20 53 45 43 2F 44 4F 54 | IN X/50 SEC/DOT| 000004A0: 0D 20 20 2E 42 59 54 45 20 30 0D 53 50 52 4F 46 |. .BYTE 0.SPROF| 000004B0: 46 53 45 54 2E 20 20 20 20 20 20 20 20 20 3B 20 |FSET. ; | 000004C0: D3 54 41 52 54 20 4F 46 20 53 50 52 49 54 45 53 |.TART OF SPRITES| 000004D0: 0D 20 20 2E 42 59 54 45 20 31 32 37 0D 48 4C 49 |. .BYTE 127.HLI| 000004E0: 4E 45 2E 20 20 20 20 20 20 20 20 20 20 20 20 20 |NE. | 000004F0: 3B 20 D3 43 52 45 45 4E 20 4C 49 4E 45 20 46 4F |; .CREEN LINE FO| 00000500: 52 20 53 43 52 4F 4C 4C 0D 20 20 2E 42 59 54 45 |R SCROLL. .BYTE| 00000510: 20 32 32 34 0D 4D 4F 56 45 42 59 32 46 4C 41 47 | 224.MOVEBY2FLAG| 00000520: 2E 20 20 20 20 20 20 20 3B 20 CD 4F 56 45 20 53 |. ; .OVE S| 00000530: 43 52 4F 4C 4C 20 42 59 20 32 20 49 46 20 42 49 |CROLL BY 2 IF BI| 00000540: 54 20 37 20 53 45 54 0D 20 20 2E 42 59 54 45 20 |T 7 SET. .BYTE | 00000550: 30 0D 46 49 4C 4C 43 48 41 52 2E 20 20 20 20 20 |0.FILLCHAR. | 00000560: 20 20 20 20 20 3B 20 C3 48 41 52 20 46 4F 52 20 | ; .HAR FOR | 00000570: 53 43 52 45 45 4E 20 46 49 4C 4C 0D 20 20 2E 42 |SCREEN FILL. .B| 00000580: 59 54 45 20 38 37 0D 54 49 43 4B 43 48 41 52 2E |YTE 87.TICKCHAR.| 00000590: 20 20 20 20 20 20 20 20 20 20 3B 20 C3 48 41 52 | ; .HAR| 000005A0: 20 55 53 45 44 20 46 4F 52 20 27 54 49 43 4B 27 | USED FOR 'TICK'| 000005B0: 20 46 58 0D 20 20 2E 42 59 54 45 20 32 30 39 0D | FX. .BYTE 209.| 000005C0: 52 4F 54 43 48 41 52 2E 20 20 20 20 20 20 20 20 |ROTCHAR. | 000005D0: 20 20 20 3B 20 C3 48 41 52 20 52 4F 54 41 54 45 | ; .HAR ROTATE| 000005E0: 44 20 46 4F 52 20 4D 4F 56 49 4E 47 20 42 41 43 |D FOR MOVING BAC| 000005F0: 4B 47 52 4F 55 4E 44 0D 20 20 2E 42 59 54 45 20 |KGROUND. .BYTE | 00000600: 38 37 0D 52 4F 54 4C 45 4E 2E 20 20 20 20 20 20 |87.ROTLEN. | 00000610: 20 20 20 20 20 20 3B 20 CE 4F 20 4F 46 20 50 49 | ; .O OF PI| 00000620: 58 45 4C 53 20 54 4F 20 52 4F 54 41 54 45 0D 20 |XELS TO ROTATE. | 00000630: 20 2E 42 59 54 45 20 37 0D 46 49 4C 4C 43 4F 4C | .BYTE 7.FILLCOL| 00000640: 4F 52 2E 20 20 20 20 20 20 20 20 20 3B 20 C3 4F |OR. ; .O| 00000650: 4C 4F 52 20 46 4F 52 20 53 43 52 45 45 4E 20 46 |LOR FOR SCREEN F| 00000660: 49 4C 4C 0D 20 20 2E 42 59 54 45 20 30 0D 4D 41 |ILL. .BYTE 0.MA| 00000670: 53 4B 2E 0D 20 20 2E 42 59 54 45 20 31 2C 32 2C |SK.. .BYTE 1,2,| 00000680: 34 2C 38 2C 31 36 2C 33 32 2C 36 34 2C 31 32 38 |4,8,16,32,64,128| 00000690: 0D 57 49 47 47 4C 45 2E 20 20 20 20 20 20 20 20 |.WIGGLE. | 000006A0: 20 20 20 20 20 3B 20 D6 45 52 54 20 57 49 47 47 | ; .ERT WIGG| 000006B0: 4C 45 20 46 41 43 54 4F 52 0D 20 20 2E 42 59 54 |LE FACTOR. .BYT| 000006C0: 45 20 37 2C 35 2C 34 2C 33 2C 32 2C 31 2C 31 2C |E 7,5,4,3,2,1,1,| 000006D0: 30 2C 30 2C 30 2C 31 2C 31 2C 32 2C 33 2C 34 2C |0,0,0,1,1,2,3,4,| 000006E0: 35 0D 3B 0D 3B 0D 4D 41 49 4E 2E 0D 4D 41 49 4E |5.;.;.MAIN..MAIN| 000006F0: 4C 4F 4F 50 2E 0D 20 20 4A 53 52 20 44 4F 52 4F |LOOP.. JSR DORO| 00000700: 54 41 54 45 43 48 41 52 20 3B 20 D2 4F 54 41 54 |TATECHAR ; .OTAT| 00000710: 45 20 53 43 52 4F 4C 4C 49 4E 47 20 42 41 43 4B |E SCROLLING BACK| 00000720: 47 52 4F 55 4E 44 0D 20 20 4C 44 58 20 53 50 45 |GROUND. LDX SPE| 00000730: 45 44 20 20 20 20 20 20 20 20 3B 20 C6 49 52 53 |ED ; .IRS| 00000740: 54 20 57 41 49 54 20 46 4F 52 20 41 20 54 49 4D |T WAIT FOR A TIM| 00000750: 45 20 26 20 53 59 4E 43 20 54 4F 20 53 43 52 45 |E & SYNC TO SCRE| 00000760: 45 4E 0D 57 4C 4F 4F 50 2E 0D 20 20 20 4A 53 52 |EN.WLOOP.. JSR| 00000770: 20 57 41 49 54 31 53 43 52 0D 20 20 20 44 45 58 | WAIT1SCR. DEX| 00000780: 0D 20 20 42 50 4C 20 57 4C 4F 4F 50 0D 20 20 4A |. BPL WLOOP. J| 00000790: 53 52 20 44 4F 31 44 4F 54 20 20 20 20 20 20 20 |SR DO1DOT | 000007A0: 3B 20 D3 43 52 4F 4C 4C 20 4D 45 53 53 41 47 45 |; .CROLL MESSAGE| 000007B0: 20 31 20 44 4F 54 2E 2E 0D 20 20 42 49 54 20 4D | 1 DOT... BIT M| 000007C0: 4F 56 45 42 59 32 46 4C 41 47 20 20 3B 20 32 20 |OVEBY2FLAG ; 2 | 000007D0: 44 4F 54 20 4D 4F 56 45 20 3F 0D 20 20 42 50 4C |DOT MOVE ?. BPL| 000007E0: 20 4E 4F 32 4D 4F 56 45 20 20 20 20 20 20 3B 20 | NO2MOVE ; | 000007F0: CE 4F 2E 2E 0D 20 20 4A 53 52 20 44 4F 31 44 4F |.O... JSR DO1DO| 00000800: 54 20 20 20 20 20 20 20 3B 20 D3 43 52 4F 4C 4C |T ; .CROLL| 00000810: 20 4D 45 53 53 41 47 45 20 31 20 4D 4F 52 45 20 | MESSAGE 1 MORE | 00000820: 44 4F 54 2E 2E 0D 4E 4F 32 4D 4F 56 45 2E 0D 20 |DOT...NO2MOVE.. | 00000830: 20 4C 44 41 20 4B 42 48 49 54 0D 20 20 42 45 51 | LDA KBHIT. BEQ| 00000840: 20 4D 41 49 4E 4C 4F 4F 50 20 20 20 20 20 3B 20 | MAINLOOP ; | 00000850: CE 4F 20 4B 45 59 20 48 49 54 2C 20 52 45 4C 4F |.O KEY HIT, RELO| 00000860: 4F 50 2E 2E 0D 20 20 52 54 53 20 20 20 20 20 20 |OP... RTS | 00000870: 20 20 20 20 20 20 20 20 3B 20 CF 4B 2C 20 44 4F | ; .K, DO| 00000880: 4E 45 21 0D 3B 0D 44 4F 31 44 4F 54 2E 20 20 20 |NE!.;.DO1DOT. | 00000890: 20 20 20 20 20 20 20 20 20 20 3B 20 D3 43 52 4F | ; .CRO| 000008A0: 4C 4C 20 31 20 44 4F 54 20 4C 45 46 54 2C 0D 20 |LL 1 DOT LEFT,. | 000008B0: 20 4C 44 58 20 23 24 30 30 20 20 20 20 20 20 20 | LDX #$00 | 000008C0: 20 20 20 3B 20 C9 4E 44 45 58 20 49 4E 54 4F 20 | ; .NDEX INTO | 000008D0: 53 50 52 49 54 45 53 0D 20 20 4C 44 59 20 23 24 |SPRITES. LDY #$| 000008E0: 30 30 0D 20 20 53 54 59 20 49 4E 44 45 58 0D 4D |00. STY INDEX.M| 000008F0: 4F 52 45 2E 0D 20 20 4C 44 41 20 56 49 43 2C 58 |ORE.. LDA VIC,X| 00000900: 0D 20 20 42 4E 45 20 4E 4F 48 49 20 20 20 20 20 |. BNE NOHI | 00000910: 20 20 20 20 20 3B 20 CE 4F 20 4F 56 45 52 46 4C | ; .O OVERFL| 00000920: 4F 57 2E 2E 0D 20 20 20 4C 44 41 20 4D 41 53 4B |OW... LDA MASK| 00000930: 2C 59 20 20 20 20 20 20 20 3B 20 C7 45 54 20 48 |,Y ; .ET H| 00000940: 49 20 42 49 54 0D 20 20 20 41 4E 44 20 48 49 42 |I BIT. AND HIB| 00000950: 49 54 53 0D 20 20 20 42 4E 45 20 4E 4F 4E 45 57 |ITS. BNE NONEW| 00000960: 20 20 20 20 20 20 20 20 3B 20 D3 45 54 2C 20 53 | ; .ET, S| 00000970: 4F 20 43 4C 45 41 52 2E 2E 0D 20 20 20 20 4A 53 |O CLEAR... JS| 00000980: 52 20 4E 45 57 53 50 52 49 54 45 20 20 20 3B 20 |R NEWSPRITE ; | 00000990: D3 54 41 52 54 20 41 20 4E 45 57 20 53 50 52 49 |.TART A NEW SPRI| 000009A0: 54 45 0D 20 20 20 20 43 4C 43 0D 20 20 20 20 42 |TE. CLC. B| 000009B0: 43 43 20 4E 4F 48 49 0D 4E 4F 4E 45 57 2E 20 20 |CC NOHI.NONEW. | 000009C0: 20 20 20 20 20 20 20 20 20 20 20 20 3B 20 CC 4F | ; .O| 000009D0: 20 42 59 54 45 20 4F 56 45 52 46 4C 4F 57 2C 20 | BYTE OVERFLOW, | 000009E0: 43 4C 52 20 48 49 20 42 49 54 0D 20 20 20 4C 44 |CLR HI BIT. LD| 000009F0: 41 20 4D 41 53 4B 2C 59 0D 20 20 20 45 4F 52 20 |A MASK,Y. EOR | 00000A00: 23 20 24 46 46 20 20 20 20 20 20 20 20 3B 20 C3 |# $FF ; .| 00000A10: 41 4C 43 20 4D 41 53 4B 20 46 4F 52 20 48 49 20 |ALC MASK FOR HI | 00000A20: 42 49 54 0D 20 20 20 41 4E 44 20 48 49 42 49 54 |BIT. AND HIBIT| 00000A30: 53 0D 20 20 20 53 54 41 20 48 49 42 49 54 53 0D |S. STA HIBITS.| 00000A40: 4E 4F 48 49 2E 20 20 20 20 20 20 20 20 20 20 20 |NOHI. | 00000A50: 20 20 20 20 3B 20 CF 4B 2C 20 4E 4F 57 20 53 45 | ; .K, NOW SE| 00000A60: 54 20 56 45 52 54 20 50 4F 53 0D 20 20 44 45 43 |T VERT POS. DEC| 00000A70: 20 56 49 43 2C 58 20 20 20 20 20 20 20 20 20 3B | VIC,X ;| 00000A80: 20 CD 4F 56 45 20 53 50 52 20 4C 45 46 54 0D 20 | .OVE SPR LEFT. | 00000A90: 20 4C 44 59 20 49 4E 44 45 58 0D 20 20 4C 44 41 | LDY INDEX. LDA| 00000AA0: 20 23 30 0D 20 20 42 49 54 20 57 49 47 47 4C 45 | #0. BIT WIGGLE| 00000AB0: 46 4C 41 47 20 20 20 3B 20 C4 4F 20 57 45 20 57 |FLAG ; .O WE W| 00000AC0: 49 47 47 4C 45 20 3F 0D 20 20 42 50 4C 20 4E 4F |IGGLE ?. BPL NO| 00000AD0: 57 49 47 47 4C 45 0D 20 20 4C 44 41 20 56 49 43 |WIGGLE. LDA VIC| 00000AE0: 2C 58 20 20 20 20 20 20 20 20 3B 20 55 53 45 20 |,X ; USE | 00000AF0: 48 50 4F 53 20 41 53 20 49 4E 44 45 58 20 54 4F |HPOS AS INDEX TO| 00000B00: 20 57 49 47 47 4C 45 0D 20 20 41 4E 44 20 23 20 | WIGGLE. AND # | 00000B10: 24 30 46 0D 20 20 54 41 59 0D 20 20 4C 44 41 20 |$0F. TAY. LDA | 00000B20: 57 49 47 47 4C 45 2C 59 0D 4E 4F 57 49 47 47 4C |WIGGLE,Y.NOWIGGL| 00000B30: 45 2E 0D 20 20 43 4C 43 20 20 20 20 20 20 20 20 |E.. CLC | 00000B40: 20 20 20 20 20 20 3B 20 CE 4F 57 20 41 44 44 20 | ; .OW ADD | 00000B50: 49 4E 20 4E 4F 52 4D 20 56 45 52 54 20 4C 49 4E |IN NORM VERT LIN| 00000B60: 45 0D 20 20 41 44 43 20 48 4C 49 4E 45 0D 20 20 |E. ADC HLINE. | 00000B70: 53 54 41 20 56 49 43 2B 31 2C 58 20 20 20 20 20 |STA VIC+1,X | 00000B80: 20 3B 20 D3 54 4F 52 45 20 56 45 52 54 20 50 4F | ; .TORE VERT PO| 00000B90: 53 20 46 4F 52 20 53 50 52 49 54 45 2E 0D 20 20 |S FOR SPRITE.. | 00000BA0: 49 4E 43 20 49 4E 44 45 58 20 20 20 20 20 20 20 |INC INDEX | 00000BB0: 20 3B 20 CF 4B 2C 20 4E 45 58 54 20 53 50 52 49 | ; .K, NEXT SPRI| 00000BC0: 54 45 2E 2E 0D 20 20 4C 44 59 20 49 4E 44 45 58 |TE... LDY INDEX| 00000BD0: 0D 20 20 49 4E 58 0D 20 20 49 4E 58 0D 20 20 43 |. INX. INX. C| 00000BE0: 50 59 20 23 20 38 0D 20 20 42 4E 45 20 4D 4F 52 |PY # 8. BNE MOR| 00000BF0: 45 20 20 20 20 20 20 20 20 20 3B 20 4E 45 58 54 |E ; NEXT| 00000C00: 20 53 50 52 49 54 45 2E 2E 0D 20 20 52 54 53 20 | SPRITE... RTS | 00000C10: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 20 CF | ; .| 00000C20: 4B 2C 20 44 4F 4E 45 21 0D 3B 0D 4E 45 57 53 50 |K, DONE!.;.NEWSP| 00000C30: 52 49 54 45 2E 20 20 20 20 20 20 20 20 20 3B 20 |RITE. ; | 00000C40: D3 54 41 52 54 20 41 20 4E 45 57 20 53 50 52 49 |.TART A NEW SPRI| 00000C50: 54 45 0D 20 20 20 4C 44 41 20 52 4D 41 52 47 20 |TE. LDA RMARG | 00000C60: 20 20 20 20 20 20 3B 20 D3 54 41 52 54 20 4E 45 | ; .TART NE| 00000C70: 57 20 53 50 52 49 54 45 20 46 41 52 20 52 49 47 |W SPRITE FAR RIG| 00000C80: 48 54 0D 20 20 20 53 54 41 20 56 49 43 2C 58 0D |HT. STA VIC,X.| 00000C90: 20 20 20 4C 44 41 20 4D 41 53 4B 2C 59 0D 20 20 | LDA MASK,Y. | 00000CA0: 20 4F 52 41 20 48 49 42 49 54 53 20 20 20 20 20 | ORA HIBITS | 00000CB0: 20 3B 20 D3 45 54 20 48 49 20 42 49 54 0D 20 20 | ; .ET HI BIT. | 00000CC0: 20 53 54 41 20 48 49 42 49 54 53 0D 4E 45 58 54 | STA HIBITS.NEXT| 00000CD0: 4D 53 47 2E 20 20 20 20 20 20 20 20 20 20 20 3B |MSG. ;| 00000CE0: 20 C1 44 56 41 4E 43 45 20 4D 45 53 53 41 47 45 | .DVANCE MESSAGE| 00000CF0: 20 50 4F 49 4E 54 45 52 0D 20 20 20 49 4E 43 20 | POINTER. INC | 00000D00: 4D 53 47 50 54 52 0D 20 20 20 42 4E 45 20 47 45 |MSGPTR. BNE GE| 00000D10: 54 4D 53 47 0D 20 20 20 49 4E 43 20 4D 53 47 50 |TMSG. INC MSGP| 00000D20: 54 52 2B 31 0D 47 45 54 4D 53 47 2E 20 20 20 20 |TR+1.GETMSG. | 00000D30: 20 20 20 20 20 20 20 20 3B 20 C7 45 54 20 43 48 | ; .ET CH| 00000D40: 41 52 20 46 52 4F 4D 20 4D 53 47 20 53 54 52 49 |AR FROM MSG STRI| 00000D50: 4E 47 0D 20 20 20 4C 44 41 20 4D 53 47 50 54 52 |NG. LDA MSGPTR| 00000D60: 20 20 20 20 20 20 3B 20 CD 4F 56 20 50 54 52 20 | ; .OV PTR | 00000D70: 54 4F 20 5A 45 52 4F 20 50 41 47 45 0D 20 20 20 |TO ZERO PAGE. | 00000D80: 53 54 41 20 5A 4D 53 47 50 54 52 0D 20 20 20 4C |STA ZMSGPTR. L| 00000D90: 44 41 20 4D 53 47 50 54 52 2B 31 0D 20 20 20 53 |DA MSGPTR+1. S| 00000DA0: 54 41 20 5A 4D 53 47 50 54 52 2B 31 0D 20 20 20 |TA ZMSGPTR+1. | 00000DB0: 4C 44 59 20 23 30 0D 20 20 20 4C 44 41 20 28 5A |LDY #0. LDA (Z| 00000DC0: 4D 53 47 50 54 52 29 2C 59 20 20 20 20 3B 20 C7 |MSGPTR),Y ; .| 00000DD0: 45 54 20 4D 53 47 20 43 48 41 52 0D 20 20 20 42 |ET MSG CHAR. B| 00000DE0: 4E 45 20 4E 45 57 32 20 20 20 20 20 20 20 20 3B |NE NEW2 ;| 00000DF0: 20 CE 4F 54 20 4E 55 4C 4C 20 59 45 54 2C 20 53 | .OT NULL YET, S| 00000E00: 4F 20 50 52 49 4E 54 2E 2E 0D 20 20 20 20 4C 44 |O PRINT... LD| 00000E10: 41 20 4D 53 47 4C 4F 43 20 20 20 20 20 3B 20 C5 |A MSGLOC ; .| 00000E20: 4E 44 20 4F 46 20 4D 45 53 53 41 47 45 2C 20 53 |ND OF MESSAGE, S| 00000E30: 4F 20 52 45 53 45 54 20 4D 53 47 20 54 4F 20 53 |O RESET MSG TO S| 00000E40: 54 41 52 54 0D 20 20 20 20 53 54 41 20 4D 53 47 |TART. STA MSG| 00000E50: 50 54 52 0D 20 20 20 20 4C 44 41 20 4D 53 47 4C |PTR. LDA MSGL| 00000E60: 4F 43 2B 31 0D 20 20 20 20 53 54 41 20 4D 53 47 |OC+1. STA MSG| 00000E70: 50 54 52 2B 31 0D 20 20 20 20 43 4C 43 0D 20 20 |PTR+1. CLC. | 00000E80: 20 20 42 43 43 20 47 45 54 4D 53 47 0D 4E 45 57 | BCC GETMSG.NEW| 00000E90: 32 2E 0D 20 20 20 42 50 4C 20 4E 4F 52 4D 4C 45 |2.. BPL NORMLE| 00000EA0: 54 20 20 20 20 20 3B 20 CE 4F 20 53 50 45 43 49 |T ; .O SPECI| 00000EB0: 41 4C 20 45 46 46 45 43 54 53 0D 20 20 20 43 4D |AL EFFECTS. CM| 00000EC0: 50 20 23 31 32 38 20 20 20 20 20 20 20 3B 20 D4 |P #128 ; .| 00000ED0: 4F 47 47 4C 45 20 57 49 47 47 4C 45 20 3F 0D 20 |OGGLE WIGGLE ?. | 00000EE0: 20 20 42 4E 45 20 4E 45 57 33 0D 20 20 20 20 4C | BNE NEW3. L| 00000EF0: 44 41 20 23 24 38 30 0D 20 20 20 20 45 4F 52 20 |DA #$80. EOR | 00000F00: 57 49 47 47 4C 45 46 4C 41 47 0D 20 20 20 20 53 |WIGGLEFLAG. S| 00000F10: 54 41 20 57 49 47 47 4C 45 46 4C 41 47 0D 20 20 |TA WIGGLEFLAG. | 00000F20: 20 20 43 4C 43 0D 20 20 20 20 42 43 43 20 4E 45 | CLC. BCC NE| 00000F30: 58 54 4D 53 47 20 20 20 20 3B 20 C1 4E 4F 54 48 |XTMSG ; .NOTH| 00000F40: 45 52 20 4D 53 47 20 43 48 41 52 2E 2E 0D 4E 45 |ER MSG CHAR...NE| 00000F50: 57 33 2E 0D 20 20 20 43 4D 50 20 23 31 32 39 20 |W3.. CMP #129 | 00000F60: 20 20 20 20 20 20 3B 20 D4 4F 47 47 4C 45 20 32 | ; .OGGLE 2| 00000F70: 20 44 4F 54 20 53 50 45 45 44 3F 0D 20 20 20 42 | DOT SPEED?. B| 00000F80: 4E 45 20 4E 45 57 34 0D 20 20 20 20 4C 44 41 20 |NE NEW4. LDA | 00000F90: 23 24 38 30 0D 20 20 20 20 45 4F 52 20 4D 4F 56 |#$80. EOR MOV| 00000FA0: 45 42 59 32 46 4C 41 47 0D 20 20 20 20 53 54 41 |EBY2FLAG. STA| 00000FB0: 20 4D 4F 56 45 42 59 32 46 4C 41 47 0D 20 20 20 | MOVEBY2FLAG. | 00000FC0: 20 43 4C 43 0D 20 20 20 20 42 43 43 20 4E 45 58 | CLC. BCC NEX| 00000FD0: 54 4D 53 47 20 20 20 20 3B 20 C1 4E 4F 54 48 45 |TMSG ; .NOTHE| 00000FE0: 52 20 4D 53 47 20 43 48 41 52 2E 2E 0D 4E 45 57 |R MSG CHAR...NEW| 00000FF0: 34 2E 0D 20 20 20 20 41 4E 44 20 23 24 31 46 0D |4.. AND #$1F.| 00001000: 20 20 20 20 53 54 41 20 53 50 45 45 44 0D 20 20 | STA SPEED. | 00001010: 20 20 43 4C 43 0D 20 20 20 20 42 43 43 20 4E 45 | CLC. BCC NE| 00001020: 58 54 4D 53 47 20 20 20 20 3B 20 C1 4E 4F 54 48 |XTMSG ; .NOTH| 00001030: 45 52 20 4D 53 47 20 43 48 41 52 2E 2E 0D 4E 4F |ER MSG CHAR...NO| 00001040: 52 4D 4C 45 54 2E 20 20 20 20 20 20 20 20 20 20 |RMLET. | 00001050: 20 3B 20 CF 4B 20 4E 4F 52 4D 20 4C 45 54 54 45 | ; .K NORM LETTE| 00001060: 52 20 49 4E 20 41 43 43 2C 20 53 54 4F 52 45 20 |R IN ACC, STORE | 00001070: 49 4E 20 53 50 52 49 54 45 20 50 54 52 0D 20 20 |IN SPRITE PTR. | 00001080: 20 4C 44 59 20 49 4E 44 45 58 0D 20 20 20 43 4C | LDY INDEX. CL| 00001090: 43 0D 20 20 20 41 44 43 20 53 50 52 4F 46 46 53 |C. ADC SPROFFS| 000010A0: 45 54 0D 20 20 20 53 54 41 20 53 50 52 50 54 52 |ET. STA SPRPTR| 000010B0: 53 2C 59 0D 20 20 20 4A 53 52 20 53 50 45 43 49 |S,Y. JSR SPECI| 000010C0: 41 4C 46 58 20 20 20 3B 20 CD 4F 56 45 20 4C 49 |ALFX ; .OVE LI| 000010D0: 4E 45 20 49 4E 20 42 41 4C 4C 20 43 48 52 0D 20 |NE IN BALL CHR. | 000010E0: 20 20 52 54 53 0D 3B 0D 53 50 45 43 49 41 4C 46 | RTS.;.SPECIALF| 000010F0: 58 2E 20 20 20 20 20 20 20 20 20 3B 20 CD 4F 56 |X. ; .OV| 00001100: 45 20 4C 49 4E 45 20 49 4E 20 42 41 4C 4C 20 43 |E LINE IN BALL C| 00001110: 48 52 0D 20 20 20 54 59 41 0D 20 20 20 50 48 41 |HR. TYA. PHA| 00001120: 20 20 20 20 20 20 20 20 20 20 20 20 20 3B 20 53 | ; S| 00001130: 54 41 53 48 20 59 20 52 45 47 0D 20 20 20 4C 44 |TASH Y REG. LD| 00001140: 41 20 54 49 43 4B 43 48 41 52 20 20 20 20 3B 20 |A TICKCHAR ; | 00001150: C3 48 41 52 41 43 54 45 52 20 54 4F 20 54 49 43 |.HARACTER TO TIC| 00001160: 4B 0D 20 20 20 4A 53 52 20 53 45 54 43 48 52 50 |K. JSR SETCHRP| 00001170: 54 52 20 20 20 3B 20 D3 45 54 20 55 50 20 28 5A |TR ; .ET UP (Z| 00001180: 50 54 52 29 20 54 4F 20 43 48 41 52 0D 20 20 20 |PTR) TO CHAR. | 00001190: 4C 44 59 20 23 33 0D 20 20 20 4C 44 41 20 28 5A |LDY #3. LDA (Z| 000011A0: 50 54 52 29 2C 59 0D 20 20 20 50 48 41 0D 20 20 |PTR),Y. PHA. | 000011B0: 20 49 4E 59 0D 20 20 20 4C 44 41 20 28 5A 50 54 | INY. LDA (ZPT| 000011C0: 52 29 2C 59 0D 20 20 20 44 45 59 0D 20 20 20 53 |R),Y. DEY. S| 000011D0: 54 41 20 28 5A 50 54 52 29 2C 59 0D 20 20 20 50 |TA (ZPTR),Y. P| 000011E0: 4C 41 0D 20 20 20 49 4E 59 0D 20 20 20 53 54 41 |LA. INY. STA| 000011F0: 20 28 5A 50 54 52 29 2C 59 0D 20 20 20 50 4C 41 | (ZPTR),Y. PLA| 00001200: 0D 20 20 20 54 41 59 0D 20 20 20 52 54 53 0D 3B |. TAY. RTS.;| 00001210: 0D 44 4F 52 4F 54 41 54 45 43 48 41 52 2E 20 20 |.DOROTATECHAR. | 00001220: 20 20 20 20 3B 20 D2 4F 54 41 54 45 20 53 50 45 | ; .OTATE SPE| 00001230: 43 49 41 4C 20 43 48 41 52 20 56 45 52 54 49 43 |CIAL CHAR VERTIC| 00001240: 41 4C 4C 59 20 46 4F 52 20 45 46 46 45 43 54 0D |ALLY FOR EFFECT.| 00001250: 20 20 20 54 59 41 0D 20 20 20 50 48 41 20 20 20 | TYA. PHA | 00001260: 20 20 20 20 20 20 20 20 20 20 3B 20 53 54 41 53 | ; STAS| 00001270: 48 20 59 20 52 45 47 0D 20 20 20 4C 44 41 20 52 |H Y REG. LDA R| 00001280: 4F 54 43 48 41 52 20 20 20 20 20 3B 20 C3 48 41 |OTCHAR ; .HA| 00001290: 52 41 43 54 45 52 20 54 4F 20 52 4F 54 41 54 45 |RACTER TO ROTATE| 000012A0: 0D 20 20 20 4A 53 52 20 53 45 54 43 48 52 50 54 |. JSR SETCHRPT| 000012B0: 52 20 20 20 3B 20 D3 45 54 20 55 50 20 28 5A 50 |R ; .ET UP (ZP| 000012C0: 54 52 29 20 54 4F 20 43 48 41 52 0D 20 20 20 4C |TR) TO CHAR. L| 000012D0: 44 59 20 52 4F 54 4C 45 4E 20 20 20 20 20 20 3B |DY ROTLEN ;| 000012E0: 20 CE 4F 20 54 4F 20 52 4F 54 41 54 45 0D 20 20 | .O TO ROTATE. | 000012F0: 20 4C 44 41 20 28 5A 50 54 52 29 2C 59 20 20 20 | LDA (ZPTR),Y | 00001300: 20 3B 20 D3 54 41 53 48 20 54 4F 50 20 4F 4E 45 | ; .TASH TOP ONE| 00001310: 0D 20 20 20 50 48 41 0D 53 50 45 43 31 2E 0D 20 |. PHA.SPEC1.. | 00001320: 20 20 20 44 45 59 20 20 20 20 20 20 20 20 20 20 | DEY | 00001330: 20 20 20 3B 20 D2 49 50 50 4C 45 20 42 59 54 45 | ; .IPPLE BYTE| 00001340: 53 20 44 4F 57 4E 2E 2E 0D 20 20 20 20 4C 44 41 |S DOWN... LDA| 00001350: 20 28 5A 50 54 52 29 2C 59 0D 20 20 20 20 49 4E | (ZPTR),Y. IN| 00001360: 59 0D 20 20 20 20 53 54 41 20 28 5A 50 54 52 29 |Y. STA (ZPTR)| 00001370: 2C 59 0D 20 20 20 20 44 45 59 0D 20 20 20 42 4E |,Y. DEY. BN| 00001380: 45 20 53 50 45 43 31 0D 20 20 20 50 4C 41 0D 20 |E SPEC1. PLA. | 00001390: 20 20 53 54 41 20 28 5A 50 54 52 29 2C 59 20 20 | STA (ZPTR),Y | 000013A0: 20 20 3B 20 D2 45 47 45 54 20 54 4F 50 20 56 41 | ; .EGET TOP VA| 000013B0: 4C 20 41 4E 44 20 50 55 54 20 41 54 20 42 4F 54 |L AND PUT AT BOT| 000013C0: 54 4F 4D 0D 20 20 20 50 4C 41 20 20 20 20 20 20 |TOM. PLA | 000013D0: 20 20 20 20 20 20 20 3B 20 D2 45 47 45 54 20 59 | ; .EGET Y| 000013E0: 20 52 45 47 0D 20 20 20 54 41 59 0D 20 20 20 52 | REG. TAY. R| 000013F0: 54 53 0D 3B 0D 53 45 54 43 48 52 50 54 52 2E 20 |TS.;.SETCHRPTR. | 00001400: 20 20 20 20 20 20 20 20 3B 20 D3 45 54 20 55 50 | ; .ET UP| 00001410: 20 28 5A 50 54 52 29 20 54 4F 20 50 4F 49 4E 54 | (ZPTR) TO POINT| 00001420: 20 54 4F 20 4C 4F 43 20 4F 46 20 43 48 41 52 20 | TO LOC OF CHAR | 00001430: 49 4E 20 C1 43 43 0D 20 20 4C 44 59 20 23 30 20 |IN .CC. LDY #0 | 00001440: 20 20 20 20 20 20 20 20 20 20 3B 20 C3 4C 52 20 | ; .LR | 00001450: 48 49 20 42 59 54 45 20 5A 50 54 52 0D 20 20 53 |HI BYTE ZPTR. S| 00001460: 54 59 20 5A 50 54 52 2B 31 0D 20 20 41 53 4C 20 |TY ZPTR+1. ASL | 00001470: 41 20 20 20 20 20 20 20 20 20 20 20 20 3B 20 CD |A ; .| 00001480: 55 4C 54 20 43 48 41 52 20 42 59 20 38 0D 20 20 |ULT CHAR BY 8. | 00001490: 52 4F 4C 20 5A 50 54 52 2B 31 0D 20 20 41 53 4C |ROL ZPTR+1. ASL| 000014A0: 20 41 0D 20 20 52 4F 4C 20 5A 50 54 52 2B 31 0D | A. ROL ZPTR+1.| 000014B0: 20 20 41 53 4C 20 41 0D 20 20 52 4F 4C 20 5A 50 | ASL A. ROL ZP| 000014C0: 54 52 2B 31 0D 20 20 43 4C 43 20 20 20 20 20 20 |TR+1. CLC | 000014D0: 20 20 20 20 20 20 20 20 3B 20 C1 44 44 20 49 4E | ; .DD IN| 000014E0: 20 43 48 52 20 41 44 44 52 45 53 53 20 54 4F 20 | CHR ADDRESS TO | 000014F0: 43 48 52 53 45 54 20 4C 4F 43 41 54 49 4F 4E 0D |CHRSET LOCATION.| 00001500: 20 20 41 44 43 20 43 48 52 53 45 54 4C 4F 43 0D | ADC CHRSETLOC.| 00001510: 20 20 53 54 41 20 5A 50 54 52 0D 20 20 4C 44 41 | STA ZPTR. LDA| 00001520: 20 5A 50 54 52 2B 31 0D 20 20 41 44 43 20 43 48 | ZPTR+1. ADC CH| 00001530: 52 53 45 54 4C 4F 43 2B 31 0D 20 20 53 54 41 20 |RSETLOC+1. STA | 00001540: 5A 50 54 52 2B 31 0D 20 20 52 54 53 0D 3B 0D 46 |ZPTR+1. RTS.;.F| 00001550: 49 4C 4C 56 44 55 2E 20 20 20 20 20 20 20 20 20 |ILLVDU. | 00001560: 20 20 3B 20 C6 49 4C 4C 20 56 44 55 20 57 49 54 | ; .ILL VDU WIT| 00001570: 48 20 28 46 49 4C 4C 43 48 41 52 29 0D 20 20 4A |H (FILLCHAR). J| 00001580: 53 52 20 53 45 54 43 4F 4C 4F 52 20 20 20 20 20 |SR SETCOLOR | 00001590: 3B 20 C6 49 4C 4C 20 43 4F 4C 4F 52 20 52 41 4D |; .ILL COLOR RAM| 000015A0: 0D 20 20 4C 44 41 20 46 49 4C 4C 43 48 41 52 0D |. LDA FILLCHAR.| 000015B0: 20 20 4C 44 59 20 23 30 0D 46 49 4C 4C 31 2E 0D | LDY #0.FILL1..| 000015C0: 20 20 53 54 41 20 56 44 55 2C 59 0D 20 20 53 54 | STA VDU,Y. ST| 000015D0: 41 20 56 44 55 2B 32 35 36 2C 59 0D 20 20 53 54 |A VDU+256,Y. ST| 000015E0: 41 20 56 44 55 2B 35 31 32 2C 59 0D 20 20 53 54 |A VDU+512,Y. ST| 000015F0: 41 20 56 44 55 2B 37 36 38 2C 59 0D 20 20 49 4E |A VDU+768,Y. IN| 00001600: 59 0D 20 20 42 4E 45 20 46 49 4C 4C 31 0D 20 20 |Y. BNE FILL1. | 00001610: 52 54 53 0D 3B 0D 53 45 54 43 4F 4C 4F 52 2E 20 |RTS.;.SETCOLOR. | 00001620: 20 20 20 20 20 20 20 20 20 3B 20 C6 49 4C 4C 20 | ; .ILL | 00001630: 43 4F 4C 4F 52 20 52 41 4D 20 57 49 54 48 20 28 |COLOR RAM WITH (| 00001640: 46 49 4C 4C 43 4F 4C 4F 52 29 0D 20 20 4C 44 41 |FILLCOLOR). LDA| 00001650: 20 46 49 4C 4C 43 4F 4C 4F 52 0D 20 20 4C 44 59 | FILLCOLOR. LDY| 00001660: 20 23 30 0D 46 49 4C 4C 32 2E 0D 20 20 53 54 41 | #0.FILL2.. STA| 00001670: 20 43 4F 4C 52 41 4D 2C 59 0D 20 20 53 54 41 20 | COLRAM,Y. STA | 00001680: 43 4F 4C 52 41 4D 2B 32 35 36 2C 59 0D 20 20 53 |COLRAM+256,Y. S| 00001690: 54 41 20 43 4F 4C 52 41 4D 2B 35 31 32 2C 59 0D |TA COLRAM+512,Y.| 000016A0: 20 20 53 54 41 20 43 4F 4C 52 41 4D 2B 37 36 38 | STA COLRAM+768| 000016B0: 2C 59 0D 20 20 49 4E 59 0D 20 20 42 4E 45 20 46 |,Y. INY. BNE F| 000016C0: 49 4C 4C 32 0D 20 20 52 54 53 0D 3B 0D 57 41 49 |ILL2. RTS.;.WAI| 000016D0: 54 31 53 43 52 2E 20 20 20 20 20 20 20 20 20 20 |T1SCR. | 000016E0: 3B 20 D7 41 49 54 20 46 4F 52 20 53 43 52 45 45 |; .AIT FOR SCREE| 000016F0: 4E 20 54 4F 20 46 49 4E 49 53 48 0D 20 20 20 4C |N TO FINISH. L| 00001700: 44 41 20 56 49 43 2B 31 38 20 20 20 20 20 20 3B |DA VIC+18 ;| 00001710: 20 C3 55 52 52 45 4E 54 20 52 41 53 54 45 52 20 | .URRENT RASTER | 00001720: 56 41 4C 0D 20 20 20 43 4D 50 20 23 32 35 30 0D |VAL. CMP #250.| 00001730: 20 20 20 42 43 43 20 57 41 49 54 31 53 43 52 0D | BCC WAIT1SCR.| 00001740: 57 41 49 54 32 2E 0D 20 20 20 4C 44 41 20 56 49 |WAIT2.. LDA VI| 00001750: 43 2B 31 38 20 20 20 20 20 20 3B 20 C3 55 52 52 |C+18 ; .URR| 00001760: 45 4E 54 20 52 41 53 54 45 52 20 56 41 4C 0D 20 |ENT RASTER VAL. | 00001770: 20 20 43 4D 50 20 23 32 35 30 0D 20 20 20 42 43 | CMP #250. BC| 00001780: 53 20 57 41 49 54 32 0D 20 20 20 52 54 53 0D 3B |S WAIT2. RTS.;| 00001790: 0D 49 4E 49 54 2E 20 20 20 20 20 20 20 20 20 20 |.INIT. | 000017A0: 20 20 20 20 3B 20 C9 4E 49 54 49 41 4C 49 53 45 | ; .NITIALISE| 000017B0: 20 53 50 52 49 54 45 20 50 4F 53 49 54 49 4F 4E | SPRITE POSITION| 000017C0: 53 20 41 4E 44 20 53 57 49 54 43 48 20 54 48 45 |S AND SWITCH THE| 000017D0: 4D 20 4F 4E 0D 20 20 4C 44 41 20 23 30 0D 20 20 |M ON. LDA #0. | 000017E0: 53 54 41 20 48 49 42 49 54 53 0D 20 20 53 54 41 |STA HIBITS. STA| 000017F0: 20 57 49 47 47 4C 45 46 4C 41 47 20 20 20 3B 20 | WIGGLEFLAG ; | 00001800: CE 4F 20 57 49 47 47 4C 45 20 54 4F 20 53 54 41 |.O WIGGLE TO STA| 00001810: 52 54 0D 20 20 53 54 41 20 4D 4F 56 45 42 59 32 |RT. STA MOVEBY2| 00001820: 46 4C 41 47 20 20 3B 20 D3 4C 4F 57 20 54 4F 20 |FLAG ; .LOW TO | 00001830: 53 54 41 52 54 0D 20 20 4C 44 41 20 4D 53 47 4C |START. LDA MSGL| 00001840: 4F 43 20 20 20 20 20 20 20 3B 20 D2 45 53 45 54 |OC ; .ESET| 00001850: 20 4D 45 53 53 41 47 45 20 50 4F 49 4E 54 45 52 | MESSAGE POINTER| 00001860: 0D 20 20 53 54 41 20 4D 53 47 50 54 52 0D 20 20 |. STA MSGPTR. | 00001870: 4C 44 41 20 4D 53 47 4C 4F 43 2B 31 0D 20 20 53 |LDA MSGLOC+1. S| 00001880: 54 41 20 4D 53 47 50 54 52 2B 31 0D 20 20 4C 44 |TA MSGPTR+1. LD| 00001890: 58 20 23 30 0D 20 20 4C 44 59 20 23 30 0D 20 20 |X #0. LDY #0. | 000018A0: 4C 44 41 20 4C 4D 41 52 47 20 20 20 20 20 20 20 |LDA LMARG | 000018B0: 20 3B 20 D8 50 4F 53 20 49 4E 44 45 58 20 4C 4F | ; .POS INDEX LO| 000018C0: 0D 20 20 53 54 41 20 5A 50 54 52 0D 20 20 53 54 |. STA ZPTR. ST| 000018D0: 58 20 5A 50 54 52 2B 31 20 20 20 20 20 20 20 3B |X ZPTR+1 ;| 000018E0: 20 D8 50 4F 53 20 48 49 0D 49 4E 49 54 31 2E 0D | .POS HI.INIT1..| 000018F0: 20 20 4C 44 41 20 48 4C 49 4E 45 0D 20 20 53 54 | LDA HLINE. ST| 00001900: 41 20 56 49 43 2B 31 2C 58 20 20 20 20 20 20 3B |A VIC+1,X ;| 00001910: 20 D3 45 54 20 D9 20 50 4F 53 20 4F 46 20 53 50 | .ET . POS OF SP| 00001920: 52 49 54 45 0D 20 20 4C 44 41 20 5A 50 54 52 0D |RITE. LDA ZPTR.| 00001930: 20 20 53 54 41 20 56 49 43 2C 58 20 20 20 20 20 | STA VIC,X | 00001940: 20 20 20 3B 20 D3 45 54 20 53 50 52 49 54 45 20 | ; .ET SPRITE | 00001950: D8 20 50 4F 53 20 4C 4F 20 42 59 54 45 0D 20 20 |. POS LO BYTE. | 00001960: 4C 44 41 20 5A 50 54 52 2B 31 20 20 20 20 20 20 |LDA ZPTR+1 | 00001970: 20 3B 20 C1 4E 59 20 48 49 20 42 49 54 20 46 4F | ; .NY HI BIT FO| 00001980: 52 20 53 50 52 49 54 45 3F 0D 20 20 42 45 51 20 |R SPRITE?. BEQ | 00001990: 49 4E 49 54 32 20 20 20 20 20 20 20 20 3B 20 CC |INIT2 ; .| 000019A0: 45 41 56 45 20 48 49 20 42 49 54 20 43 4C 52 0D |EAVE HI BIT CLR.| 000019B0: 20 20 20 4C 44 41 20 4D 41 53 4B 2C 59 20 20 20 | LDA MASK,Y | 000019C0: 20 20 20 3B 20 D3 45 54 20 53 50 52 49 54 45 28 | ; .ET SPRITE(| 000019D0: 59 29 20 48 49 20 42 49 54 0D 20 20 20 4F 52 41 |Y) HI BIT. ORA| 000019E0: 20 48 49 42 49 54 53 0D 20 20 20 53 54 41 20 48 | HIBITS. STA H| 000019F0: 49 42 49 54 53 0D 49 4E 49 54 32 2E 0D 20 20 4C |IBITS.INIT2.. L| 00001A00: 44 41 20 53 43 4F 4C 4F 52 20 20 20 20 20 20 20 |DA SCOLOR | 00001A10: 3B 20 CF 4B 2C 20 D3 45 54 20 43 4F 4C 4F 52 20 |; .K, .ET COLOR | 00001A20: 46 4F 52 20 53 50 52 49 54 45 0D 20 20 53 54 41 |FOR SPRITE. STA| 00001A30: 20 56 49 43 2B 33 39 2C 59 0D 20 20 4C 44 41 20 | VIC+39,Y. LDA | 00001A40: 53 50 52 4F 46 46 53 45 54 0D 20 20 43 4C 43 0D |SPROFFSET. CLC.| 00001A50: 20 20 41 44 43 20 23 31 20 20 20 20 20 20 20 20 | ADC #1 | 00001A60: 20 20 20 3B 20 41 4C 4C 20 53 50 52 49 54 45 20 | ; ALL SPRITE | 00001A70: 53 54 41 52 54 20 53 50 43 0D 20 20 53 54 41 20 |START SPC. STA | 00001A80: 53 50 52 50 54 52 53 2C 59 0D 20 20 4C 44 41 20 |SPRPTRS,Y. LDA | 00001A90: 5A 50 54 52 0D 20 20 43 4C 43 0D 20 20 41 44 43 |ZPTR. CLC. ADC| 00001AA0: 20 48 53 50 41 43 49 4E 47 0D 20 20 53 54 41 20 | HSPACING. STA | 00001AB0: 5A 50 54 52 0D 20 20 42 43 43 20 49 4E 49 54 33 |ZPTR. BCC INIT3| 00001AC0: 0D 20 20 49 4E 43 20 5A 50 54 52 2B 31 0D 49 4E |. INC ZPTR+1.IN| 00001AD0: 49 54 33 2E 0D 20 20 49 4E 58 0D 20 20 49 4E 58 |IT3.. INX. INX| 00001AE0: 0D 20 20 49 4E 59 0D 20 20 43 50 59 20 23 38 0D |. INY. CPY #8.| 00001AF0: 20 20 42 4E 45 20 49 4E 49 54 31 0D 20 20 4C 44 | BNE INIT1. LD| 00001B00: 41 20 57 49 44 45 4D 4F 44 45 0D 20 20 53 54 41 |A WIDEMODE. STA| 00001B10: 20 56 49 43 2B 32 39 0D 20 20 4C 44 41 20 23 32 | VIC+29. LDA #2| 00001B20: 35 35 0D 20 20 53 54 41 20 56 49 43 2B 32 31 20 |55. STA VIC+21 | 00001B30: 20 20 20 20 20 20 3B 20 D3 57 49 54 43 48 20 4F | ; .WITCH O| 00001B40: 4E 20 53 50 52 49 54 45 53 0D 20 20 52 54 53 0D |N SPRITES. RTS.| 00001B50: 3B 0D |;. |
;.; SMOOTH SCROLLER, COPYRIGHT A.MILLETT
.;.*=$9C00.;.VIC = 53248
; VIC CHIP.SPRPTRS = 33784.HIBITS = VIC
+ 16 ; MSB OF SPRITE POSNS.ZPTR
= $FB.ZPTR2= $FD.ZMSGPTR = $FB.KBHIT =
198 ; SET IF CHAR TYPED..
VDU = 32768 ; LOC OF SCRE
EN.COLRAM = $D800 ; LOC OF C
OLOR RAM.;.; JUMP VECTO
R TABLE...DOSMOOTH.. JMP MAIN.RESETSMOO
TH.. JMP INIT.JSPECIALFX.. JMP SPECIAL
FX.JDOROTATE.. JSR DOROTATECHAR.JWAIT1S
CR.. JMP WAIT1SCR.JFILLVDU.. JMP FILLV
DU.JDO1DOT.. JMP DO1DOT.;. .BYTE 0,0,0
. .BYTE 0,0,0,0,0,0,0,0. .BYTE 0,0,0,0
,0,0,0,0. .BYTE 0,0,0,0,0,0,0,0.; OK
, FLAGS START AT $9C28.;.MSGPTR.
; IF ANY SCROLL OF EDGE, THIS IS PT
R TO NEW SPR. .WORD $9000.MSGLOC.. .WO
RD $9000.CHRSETLOC. ; LOC OF USE
R DEF CHAR SET. .WORD $8800.INDEX.. .B
YTE 0.RMARG. ; RESET POS FO
R NEW SPR. .BYTE 112.LMARG.. .BYTE 24.
HSPACING. ; HORIZONTAL SPACING
OF SPRITES.. .BYTE 46.SCOLOR.
; SPRITE COLOR. .BYTE 1.WIDEMODE.
; DOUBLE WIDTH SPRITES. .BYTE 255
.WIGGLEFLAG. ; SET FOR JUMPING SC
ROLL. .BYTE 0.SPEED. ; SCRO
LL SPEED IN X/50 SEC/DOT. .BYTE 0.SPROF
FSET. ; START OF SPRITES. .BYTE
127.HLINE. ; SCREEN LINE FO
R SCROLL. .BYTE 224.MOVEBY2FLAG.
; MOVE SCROLL BY 2 IF BIT 7 SET. .BYTE
0.FILLCHAR. ; CHAR FOR SCREEN F
ILL. .BYTE 87.TICKCHAR. ; CHAR
USED FOR 'TICK' FX. .BYTE 209.ROTCHAR.
; CHAR ROTATED FOR MOVING BAC
KGROUND. .BYTE 87.ROTLEN. ;
NO OF PIXELS TO ROTATE. .BYTE 7.FILLCOL
OR. ; COLOR FOR SCREEN FILL. .B
YTE 0.MASK.. .BYTE 1,2,4,8,16,32,64,128
.WIGGLE. ; VERT WIGGLE FACTO
R. .BYTE 7,5,4,3,2,1,1,0,0,0,1,1,2,3,4,
5.;.;.MAIN..MAINLOOP.. JSR DOROTATECHAR
; ROTATE SCROLLING BACKGROUND. LDX SPE
ED ; FIRST WAIT FOR A TIME & SYNC
TO SCREEN.WLOOP.. JSR WAIT1SCR. DEX
. BPL WLOOP. JSR DO1DOT ; SCROLL
MESSAGE 1 DOT... BIT MOVEBY2FLAG ; 2
DOT MOVE ?. BPL NO2MOVE ; NO... J
SR DO1DOT ; SCROLL MESSAGE 1 MORE
DOT...NO2MOVE.. LDA KBHIT. BEQ MAINLOO
P ; NO KEY HIT, RELOOP... RTS
; OK, DONE!.;.DO1DOT.
; SCROLL 1 DOT LEFT,. LDX #$00
; INDEX INTO SPRITES. LDY #$00. STY
INDEX.MORE.. LDA VIC,X. BNE NOHI
; NO OVERFLOW... LDA MASK,Y
; GET HI BIT. AND HIBITS. BNE NONEW
; SET, SO CLEAR... JSR NEWSPR
ITE ; START A NEW SPRITE. CLC. B
CC NOHI.NONEW. ; LO BYTE OV
ERFLOW, CLR HI BIT. LDA MASK,Y. EOR
# $FF ; CALC MASK FOR HI BIT. A
ND HIBITS. STA HIBITS.NOHI.
; OK, NOW SET VERT POS. DEC VIC,X
; MOVE SPR LEFT. LDY INDEX. LDA
#0. BIT WIGGLEFLAG ; DO WE WIGGLE ?.
BPL NOWIGGLE. LDA VIC,X ; USE
HPOS AS INDEX TO WIGGLE. AND # $0F. TA
Y. LDA WIGGLE,Y.NOWIGGLE.. CLC
; NOW ADD IN NORM VERT LINE. ADC
HLINE. STA VIC+1,X ; STORE VERT PO
S FOR SPRITE.. INC INDEX ; OK, N
EXT SPRITE... LDY INDEX. INX. INX. C
PY # 8. BNE MORE ; NEXT SPRITE.
.. RTS ; OK, DONE!.;.NEWSP
RITE. ; START A NEW SPRITE. LD
A RMARG ; START NEW SPRITE FAR RIG
HT. STA VIC,X. LDA MASK,Y. ORA HIB
ITS ; SET HI BIT. STA HIBITS.NEXT
MSG. ; ADVANCE MESSAGE POINTER
. INC MSGPTR. BNE GETMSG. INC MSGP
TR+1.GETMSG. ; GET CHAR FROM
MSG STRING. LDA MSGPTR ; MOV PTR
TO ZERO PAGE. STA ZMSGPTR. LDA MSGPT
R+1. STA ZMSGPTR+1. LDY #0. LDA (Z
MSGPTR),Y ; GET MSG CHAR. BNE NEW2
; NOT NULL YET, SO PRINT... LD
A MSGLOC ; END OF MESSAGE, SO RESET
MSG TO START. STA MSGPTR. LDA MSGL
OC+1. STA MSGPTR+1. CLC. BCC GE
TMSG.NEW2.. BPL NORMLET ; NO SPECI
AL EFFECTS. CMP #128 ; TOGGLE WI
GGLE ?. BNE NEW3. LDA #$80. EOR
WIGGLEFLAG. STA WIGGLEFLAG. CLC.
BCC NEXTMSG ; ANOTHER MSG CHAR...NE
W3.. CMP #129 ; TOGGLE 2 DOT SPE
ED?. BNE NEW4. LDA #$80. EOR MOV
EBY2FLAG. STA MOVEBY2FLAG. CLC.
BCC NEXTMSG ; ANOTHER MSG CHAR...NEW
4.. AND #$1F. STA SPEED. CLC.
BCC NEXTMSG ; ANOTHER MSG CHAR...NO
RMLET. ; OK NORM LETTER IN ACC
, STORE IN SPRITE PTR. LDY INDEX. CL
C. ADC SPROFFSET. STA SPRPTRS,Y. J
SR SPECIALFX ; MOVE LINE IN BALL CHR.
RTS.;.SPECIALFX. ; MOVE LINE I
N BALL CHR. TYA. PHA ; S
TASH Y REG. LDA TICKCHAR ; CHARACTE
R TO TICK. JSR SETCHRPTR ; SET UP (Z
PTR) TO CHAR. LDY #3. LDA (ZPTR),Y.
PHA. INY. LDA (ZPTR),Y. DEY. S
TA (ZPTR),Y. PLA. INY. STA (ZPTR),
Y. PLA. TAY. RTS.;.DOROTATECHAR.
; ROTATE SPECIAL CHAR VERTICALLY FOR
EFFECT. TYA. PHA ; STAS
H Y REG. LDA ROTCHAR ; CHARACTER T
O ROTATE. JSR SETCHRPTR ; SET UP (ZP
TR) TO CHAR. LDY ROTLEN ; NO TO R
OTATE. LDA (ZPTR),Y ; STASH TOP ONE
. PHA.SPEC1.. DEY ; RIP
PLE BYTES DOWN... LDA (ZPTR),Y. IN
Y. STA (ZPTR),Y. DEY. BNE SPEC1.
PLA. STA (ZPTR),Y ; REGET TOP VA
L AND PUT AT BOTTOM. PLA ;
REGET Y REG. TAY. RTS.;.SETCHRPTR.
; SET UP (ZPTR) TO POINT TO LOC
OF CHAR IN ACC. LDY #0 ; CLR
HI BYTE ZPTR. STY ZPTR+1. ASL A
; MULT CHAR BY 8. ROL ZPTR+1. ASL
A. ROL ZPTR+1. ASL A. ROL ZPTR+1. C
LC ; ADD IN CHR ADDRESS TO
CHRSET LOCATION. ADC CHRSETLOC. STA ZP
TR. LDA ZPTR+1. ADC CHRSETLOC+1. STA
ZPTR+1. RTS.;.FILLVDU. ; FILL
VDU WITH (FILLCHAR). JSR SETCOLOR
; FILL COLOR RAM. LDA FILLCHAR. LDY #0
.FILL1.. STA VDU,Y. STA VDU+256,Y. ST
A VDU+512,Y. STA VDU+768,Y. INY. BNE
FILL1. RTS.;.SETCOLOR. ; FILL
COLOR RAM WITH (FILLCOLOR). LDA FILLCOL
OR. LDY #0.FILL2.. STA COLRAM,Y. STA
COLRAM+256,Y. STA COLRAM+512,Y. STA CO
LRAM+768,Y. INY. BNE FILL2. RTS.;.WAI
T1SCR. ; WAIT FOR SCREEN TO FIN
ISH. LDA VIC+18 ; CURRENT RASTER
VAL. CMP #250. BCC WAIT1SCR.WAIT2..
LDA VIC+18 ; CURRENT RASTER VAL.
CMP #250. BCS WAIT2. RTS.;.INIT.
; INITIALISE SPRITE POSITION
S AND SWITCH THEM ON. LDA #0. STA HIBI
TS. STA WIGGLEFLAG ; NO WIGGLE TO STA
RT. STA MOVEBY2FLAG ; SLOW TO START.
LDA MSGLOC ; RESET MESSAGE POINTER
. STA MSGPTR. LDA MSGLOC+1. STA MSGPT
R+1. LDX #0. LDY #0. LDA LMARG
; XPOS INDEX LO. STA ZPTR. STX ZPTR+1
; XPOS HI.INIT1.. LDA HLINE. ST
A VIC+1,X ; SET Y POS OF SPRITE. L
DA ZPTR. STA VIC,X ; SET SPRITE
X POS LO BYTE. LDA ZPTR+1 ; ANY H
I BIT FOR SPRITE?. BEQ INIT2 ; L
EAVE HI BIT CLR. LDA MASK,Y ; SET
SPRITE(Y) HI BIT. ORA HIBITS. STA H
IBITS.INIT2.. LDA SCOLOR ; OK, SE
T COLOR FOR SPRITE. STA VIC+39,Y. LDA
SPROFFSET. CLC. ADC #1 ; ALL
SPRITE START SPC. STA SPRPTRS,Y. LDA
ZPTR. CLC. ADC HSPACING. STA ZPTR. B
CC INIT3. INC ZPTR+1.INIT3.. INX. INX
. INY. CPY #8. BNE INIT1. LDA WIDEMO
DE. STA VIC+29. LDA #255. STA VIC+21
; SWITCH ON SPRITES. RTS.;.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL