TB/ADD.SRC
FILE INFORMATION
FILENAME(S): TB/ADD.SRC
FILE TYPE(S): PRG
FILE SIZE: 16.9K
FIRST SEEN: 2025-11-30 16:59:31
APPEARS ON: 1 disk(s)
FILE HASH
202e190da463df741d212a7403e25090ec088f4d73046724220b82cb290645ed
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| BASIC UTILITIES | TB/ADD.SRC | PRG | High Voltage Complete C64 Collection | 23 | 2 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
> DETECTED: COMMODORE BASIC PROGRAM (LOAD ADDRESS $0801)
00000000: 01 08 21 08 00 00 8F 20 52 45 41 44 20 53 50 52 |..!.... READ SPR|
00000010: 49 54 45 53 20 28 41 55 47 20 32 35 2F 38 34 29 |ITES (AUG 25/84)|
00000020: 3A 00 27 08 01 00 3A 00 47 08 02 00 8F 20 30 20 |:.'...:.G.... 0 |
00000030: 53 54 41 54 45 4D 45 4E 54 53 2C 20 32 20 46 55 |STATEMENTS, 2 FU|
00000040: 4E 43 54 49 4F 4E 53 00 4D 08 03 00 3A 00 6A 08 |NCTIONS.M...:.j.|
00000050: 04 00 8F 20 4B 45 59 57 4F 52 44 20 43 48 41 52 |... KEYWORD CHAR|
00000060: 41 43 54 45 52 53 3A 20 31 30 00 70 08 05 00 3A |ACTERS: 10.p...:|
00000070: 00 96 08 06 00 8F 20 4B 45 59 57 4F 52 44 20 20 |...... KEYWORD |
00000080: 20 52 4F 55 54 49 4E 45 20 20 20 4C 49 4E 45 20 | ROUTINE LINE |
00000090: 20 20 53 45 52 23 00 BB 08 07 00 8F 20 46 2F 58 | SER#...... F/X|
000000A0: 4C 4F 43 28 20 20 20 58 4C 4F 43 20 20 20 20 20 |LOC( XLOC |
000000B0: 20 33 37 38 36 20 20 20 30 34 31 00 E0 08 08 00 | 3786 041.....|
000000C0: 8F 20 46 2F 59 4C 4F 43 28 20 20 20 59 4C 4F 43 |. F/YLOC( YLOC|
000000D0: 20 20 20 20 20 20 33 38 31 32 20 20 20 30 34 32 | 3812 042|
000000E0: 00 E6 08 09 00 3A 00 00 09 0A 00 8F 20 55 2F 43 |.....:...... U/C|
000000F0: 48 4B 53 50 52 20 28 33 36 36 34 2F 30 33 37 29 |HKSPR (3664/037)|
00000100: 00 1A 09 0B 00 8F 20 44 2F 50 4F 57 45 52 53 20 |...... D/POWERS |
00000110: 28 33 36 39 34 2F 30 33 39 29 00 20 09 0C 00 3A |(3694/039). ...:|
00000120: 00 44 09 0D 00 8F 20 54 48 49 53 20 4D 4F 44 55 |.D.... THIS MODU|
00000130: 4C 45 20 41 4C 53 4F 20 43 4F 4E 54 41 49 4E 53 |LE ALSO CONTAINS|
00000140: 20 4F 4E 45 00 68 09 0E 00 8F 20 4C 49 4E 45 20 | ONE.h.... LINE |
00000150: 46 52 4F 4D 20 53 45 54 20 53 50 52 49 54 45 53 |FROM SET SPRITES|
00000160: 20 2D 2D 20 33 36 32 34 00 6E 09 0F 00 3A 00 95 | -- 3624.n...:..|
00000170: 09 10 00 8F 20 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |.... ===========|
00000180: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |================|
00000190: 3D 3D 3D 3D 3D 00 9B 09 11 00 3A 00 C2 09 12 00 |=====.....:.....|
000001A0: 8F 20 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |. ==============|
000001B0: 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D |================|
000001C0: 3D 3D 00 C8 09 13 00 3A 00 E2 09 18 00 9F 32 2C |==.....:......2,|
000001D0: 38 2C 31 2C 22 40 3A 54 42 2F 41 44 44 2E 4F 42 |8,1,"@:TB/ADD.OB|
000001E0: 4A 22 00 1E 0A 19 00 8B 20 C2 28 37 37 33 29 B3 |J"...... .(773).|
000001F0: 31 39 32 20 89 20 32 39 3A 20 8F 20 54 45 53 54 |192 . 29: . TEST|
00000200: 20 49 46 20 54 52 41 4E 53 42 41 53 49 43 20 41 | IF TRANSBASIC A|
00000210: 4C 52 45 41 44 59 20 45 4E 41 42 4C 45 44 00 24 |LREADY ENABLED.$|
00000220: 0A 1A 00 3A 00 44 0A 1B 00 5F 41 3A 8F 20 27 45 |...:.D..._A:. 'E|
00000230: 58 49 54 27 20 53 54 41 54 45 4D 45 4E 54 20 54 |XIT' STATEMENT T|
00000240: 4F 4B 45 4E 00 4A 0A 1C 00 3A 00 54 0A 1D 00 9E |OKEN.J...:.T....|
00000250: 20 37 30 30 00 60 0A 1E 00 2E 4F 50 54 20 4F 32 | 700.`....OPT O2|
00000260: 00 6D 0A 1F 00 AC B2 20 24 43 30 30 30 00 73 0A |.m..... $C000.s.|
00000270: 20 00 3B 00 99 0A 21 00 54 32 20 B2 20 32 20 3B | .;...!.T2 . 2 ;|
00000280: 54 52 41 4E 53 42 41 53 49 43 20 54 41 4B 45 53 |TRANSBASIC TAKES|
00000290: 20 4F 56 45 52 20 54 48 45 00 BC 0A 22 00 54 33 | OVER THE...".T3|
000002A0: 20 B2 20 33 20 3B 55 4E 55 53 45 44 20 4C 4F 43 | . 3 ;UNUSED LOC|
000002B0: 41 54 49 91 20 41 54 20 32 2C 20 AF 00 DD 0A 23 |ATI. AT 2, ....#|
000002C0: 00 54 34 20 B2 20 34 20 3B 54 48 45 20 4E 55 4D |.T4 . 4 ;THE NUM|
000002D0: 45 52 49 43 20 43 91 56 45 52 53 49 91 00 FF 0A |ERIC C.VERSI....|
000002E0: 24 00 54 35 20 B2 20 35 20 3B 56 45 43 A4 52 53 |$.T5 . 5 ;VEC.RS|
000002F0: 20 41 54 20 33 20 AF 20 35 20 81 20 49 54 53 00 | AT 3 . 5 . ITS.|
00000300: 1E 0B 25 00 54 36 20 B2 20 36 20 3B 5A 45 52 4F |..%.T6 . 6 ;ZERO|
00000310: 20 50 41 47 45 20 57 B0 4B 53 50 41 43 45 00 24 | PAGE W.KSPACE.$|
00000320: 0B 26 00 3B 00 44 0B 27 00 53 45 54 4C 46 53 20 |.&.;.D.'.SETLFS |
00000330: B2 20 24 46 46 42 41 20 3B 49 AD 4F 20 52 4F 55 |. $FFBA ;I.O ROU|
00000340: 54 49 4E 45 00 65 0B 28 00 53 45 54 4E 41 4D 20 |TINE.e.(.SETNAM |
00000350: B2 20 24 46 46 42 44 20 3B 41 44 44 52 45 53 53 |. $FFBD ;ADDRESS|
00000360: 45 53 20 49 4E 00 7F 0B 29 00 9F 20 B2 20 24 45 |ES IN...).. . $E|
00000370: 31 43 31 20 3B 4B 45 52 4E 41 4C 20 52 4F 4D 00 |1C1 ;KERNAL ROM.|
00000380: 91 0B 2A 00 43 48 4B 49 4E 20 B2 20 24 45 31 31 |..*.CHKIN . $E11|
00000390: 45 00 9F 0B 2B 00 A0 20 B2 20 24 45 31 43 43 00 |E...+.. . $E1CC.|
000003A0: B0 0B 2C 00 9C 43 48 4E 20 B2 20 24 46 46 43 43 |..,..CHN . $FFCC|
000003B0: 00 C0 0B 2D 00 A1 49 4E 20 B2 20 24 45 31 32 34 |...-..IN . $E124|
000003C0: 00 C6 0B 2E 00 3B 00 CC 0B 5B 00 3B 00 DA 0B 5C |.....;...[.;...\|
000003D0: 00 4A 4D 50 20 53 54 41 52 54 00 FD 0B 5D 00 4A |.JMP START...].J|
000003E0: 4D 50 20 45 58 54 20 3B 45 4D 45 52 47 45 4E 43 |MP EXT ;EMERGENC|
000003F0: 59 20 45 58 49 54 20 9E 34 39 31 35 35 00 03 0C |Y EXIT .49155...|
00000400: 5E 00 3B 00 25 0C 5F 00 58 54 52 41 20 2E 42 59 |^.;.%._.XTRA .BY|
00000410: 54 45 20 32 30 2C 37 20 3B 53 54 4D 54 53 2C 46 |TE 20,7 ;STMTS,F|
00000420: 55 4E 43 54 53 00 2B 0C 60 00 3B 00 37 0C 61 00 |UNCTS.+.`.;.7.a.|
00000430: 2E 42 59 54 45 20 30 00 3D 0C 62 00 3B 00 5D 0C |.BYTE 0.=.b.;.].|
00000440: 63 00 53 4B 57 20 B2 20 AC 20 3B 53 54 41 54 45 |c.SKW . . ;STATE|
00000450: 4D 45 4E 54 20 4B 45 59 57 B0 44 20 9B 00 6F 0C |MENT KEYW.D ..o.|
00000460: 64 00 2E C6 20 22 45 4C 53 C5 45 58 49 D4 22 00 |d... "ELS.EXI.".|
00000470: 7F 0C 65 00 2E C6 20 22 43 55 52 53 4F D2 22 00 |..e... "CURSO.".|
00000480: 8D 0C 66 00 2E C6 20 22 44 4F 4B C5 22 00 A3 0C |..f... "DOK."...|
00000490: 67 00 2E C6 20 22 53 45 D4 43 4C 45 41 D2 46 4C |g... "SE.CLEA.FL|
000004A0: 49 D0 22 00 BC 0C 68 00 2E C6 20 22 47 52 4F 55 |I."...h... "GROU|
000004B0: 4E C4 46 52 41 4D C5 54 45 58 D4 22 00 CD 0C 69 |N.FRAM.TEX."...i|
000004C0: 00 2E C6 20 22 43 52 41 CD 43 4C D3 22 00 E5 0C |... "CRA.CL."...|
000004D0: 6C 00 2E C6 20 22 43 4F 4C 53 50 D2 53 53 50 D2 |l... "COLSP.SSP.|
000004E0: 43 53 50 D2 22 00 FC 0C 6D 00 2E C6 20 22 58 53 |CSP."...m... "XS|
000004F0: 50 D2 59 53 50 D2 58 59 53 50 D2 22 00 09 0D 72 |P.YSP.XYSP."...r|
00000500: 00 2E C6 20 22 41 44 C4 22 00 1B 0D 74 00 2E C6 |... "AD."...t...|
00000510: 20 22 4B 45 59 57 4F 52 44 D3 22 00 21 0D 56 02 | "KEYWORD.".!.V.|
00000520: 3B 00 40 0D 57 02 46 4B 57 20 B2 20 AC 20 3B 46 |;.@.W.FKW . . ;F|
00000530: 55 4E 43 54 49 91 20 4B 45 59 57 B0 44 53 20 9B |UNCTI. KEYW.DS .|
00000540: 00 4E 0D 58 02 2E C6 20 22 43 4C 4F C3 22 00 74 |.N.X... "CLO.".t|
00000550: 0D 59 02 2E C6 20 22 44 45 45 4B 22 3A 2E 42 59 |.Y... "DEEK":.BY|
00000560: 54 20 24 41 38 20 3B 44 45 45 4B AA 53 48 8B 54 |T $A8 ;DEEK.SH.T|
00000570: 45 44 20 28 00 A0 0D 5A 02 2E C6 20 22 43 48 45 |ED (...Z... "CHE|
00000580: 43 4B 22 3A 2E 42 59 54 20 24 41 38 3A 2E C6 20 |CK":.BYT $A8:.. |
00000590: 22 41 57 41 49 54 22 3A 2E 42 59 54 20 24 41 38 |"AWAIT":.BYT $A8|
000005A0: 00 BA 0D 5F 02 2E C6 20 22 57 49 54 48 49 4E 22 |..._... "WITHIN"|
000005B0: 3A 2E 42 59 54 45 20 24 41 38 00 F3 0D 60 02 2E |:.BYTE $A8...`..|
000005C0: C6 20 22 58 4C 4F 43 22 3A 2E 42 59 54 45 20 24 |. "XLOC":.BYTE $|
000005D0: 41 38 3A 2E C6 20 22 59 4C 4F 43 22 3A 2E 42 59 |A8:.. "YLOC":.BY|
000005E0: 54 45 20 24 41 38 20 3B 41 38 B2 53 48 8B 54 45 |TE $A8 ;A8.SH.TE|
000005F0: 44 20 28 00 F9 0D 48 04 3B 00 19 0E 49 04 2E 42 |D (...H.;...I..B|
00000600: 59 54 45 20 30 20 3B 4B 45 59 57 B0 44 20 9B 20 |YTE 0 ;KEYW.D . |
00000610: 54 45 52 4D 49 4E 41 A4 52 00 1F 0E 4A 04 3B 00 |TERMINA.R...J.;.|
00000620: 3B 0E 4B 04 9D 53 20 B2 20 AC 20 3B 53 54 41 54 |;.K..S . . ;STAT|
00000630: 45 4D 45 4E 54 20 56 45 43 A4 52 00 50 0E 4C 04 |EMENT VEC.R.P.L.|
00000640: 2E 57 B0 44 20 24 41 39 33 41 2C 45 58 54 AB 31 |.W.D $A93A,EXT.1|
00000650: 00 5F 0E 4D 04 2E 57 B0 44 20 43 53 52 AB 31 00 |._.M..W.D CSR.1.|
00000660: 6E 0E 4E 04 2E 57 B0 44 20 44 4F 4B AB 31 00 88 |n.N..W.D DOK.1..|
00000670: 0E 4F 04 2E 57 B0 44 20 42 53 45 AB 31 2C 42 9C |.O..W.D BSE.1,B.|
00000680: AB 31 2C 46 4C 49 AB 31 00 A4 0E 50 04 2E 57 B0 |.1,FLI.1...P..W.|
00000690: 44 20 47 52 44 AB 31 2C 46 52 41 4D AB 31 2C 54 |D GRD.1,FRAM.1,T|
000006A0: 45 58 AB 31 00 BC 0E 51 04 2E 57 B0 44 20 43 46 |EX.1...Q..W.D CF|
000006B0: 49 4C 4C AB 31 2C 43 4C 45 41 AB 31 00 D9 0E 54 |ILL.1,CLEA.1...T|
000006C0: 04 2E 57 B0 44 20 43 4F 4C 53 50 AB 31 2C 53 53 |..W.D COLSP.1,SS|
000006D0: 50 AB 31 2C 43 53 50 AB 31 00 F5 0E 55 04 2E 57 |P.1,CSP.1...U..W|
000006E0: B0 44 20 58 53 50 AB 31 2C 59 53 50 AB 31 2C 58 |.D XSP.1,YSP.1,X|
000006F0: 59 53 50 AB 31 00 05 0F 5A 04 2E 57 B0 44 20 58 |YSP.1...Z..W.D X|
00000700: 41 44 44 AB 31 00 16 0F 5C 04 2E 57 B0 44 20 4B |ADD.1...\..W.D K|
00000710: 57 52 44 53 AB 31 00 1C 0F 3E 06 3B 00 38 0F 3F |WRDS.1...>.;.8.?|
00000720: 06 A5 43 53 20 B2 20 AC 20 3B 46 55 4E 43 54 49 |..CS . . ;FUNCTI|
00000730: 91 20 56 45 43 A4 52 53 00 4A 0F 40 06 2E 57 B0 |. VEC.RS.J.@..W.|
00000740: 44 20 43 53 52 4C 4F 43 AB 31 00 5A 0F 41 06 2E |D CSRLOC.1.Z.A..|
00000750: 57 B0 44 20 44 45 45 4B AB 31 00 70 0F 42 06 2E |W.D DEEK.1.p.B..|
00000760: 57 B0 44 20 43 48 45 43 4B AB 31 2C 41 92 AB 31 |W.D CHECK.1,A..1|
00000770: 00 82 0F 47 06 2E 57 B0 44 20 57 49 54 48 49 4E |...G..W.D WITHIN|
00000780: AB 31 00 99 0F 48 06 2E 57 B0 44 20 58 4C 4F 43 |.1...H..W.D XLOC|
00000790: AB 31 2C 59 4C 4F 43 AB 31 00 9F 0F 33 08 3B 00 |.1,YLOC.1...3.;.|
000007A0: BE 0F 34 08 53 54 41 52 54 20 4C 44 58 20 23 37 |..4.START LDX #7|
000007B0: 20 3B 53 57 41 50 20 4F 55 54 20 4F 4C 44 00 E1 | ;SWAP OUT OLD..|
000007C0: 0F 36 08 53 54 54 31 20 4C 44 41 20 24 33 30 34 |.6.STT1 LDA $304|
000007D0: 2C 58 20 3B 42 41 53 49 43 20 56 45 43 A4 52 53 |,X ;BASIC VEC.RS|
000007E0: 2C 00 FF 0F 38 08 53 54 41 20 54 56 45 43 2C 58 |,...8.STA TVEC,X|
000007F0: 20 3B 53 57 41 50 20 49 4E 20 A2 20 91 45 53 00 | ;SWAP IN . .ES.|
00000800: 10 10 3A 08 4C 44 41 20 4E 55 56 45 43 53 2C 58 |..:.LDA NUVECS,X|
00000810: 00 1F 10 3C 08 53 54 41 20 24 33 30 34 2C 58 00 |...<.STA $304,X.|
00000820: 27 10 3E 08 44 45 58 00 34 10 40 08 42 50 4C 20 |'.>.DEX.4.@.BPL |
00000830: 53 54 54 31 00 51 10 42 08 4C 44 41 20 58 54 52 |STT1.Q.B.LDA XTR|
00000840: 41 20 3B 43 41 4C 43 55 4C 41 54 45 20 A4 54 41 |A ;CALCULATE .TA|
00000850: 4C 00 59 10 44 08 43 4C 43 00 68 10 46 08 41 44 |L.Y.D.CLC.h.F.AD|
00000860: 43 20 58 54 52 41 AA 31 00 77 10 48 08 53 54 41 |C XTRA.1.w.H.STA|
00000870: 20 58 54 52 41 AA 32 00 92 10 4A 08 4C 44 41 20 | XTRA.2...J.LDA |
00000880: 23 24 36 30 20 3B 44 49 53 41 42 4C 45 20 54 48 |#$60 ;DISABLE TH|
00000890: 49 53 00 B2 10 4C 08 53 54 41 20 53 54 41 52 54 |IS...L.STA START|
000008A0: 20 3B 52 4F 55 54 49 4E 45 20 57 49 54 48 20 52 | ;ROUTINE WITH R|
000008B0: 54 53 00 BA 10 4E 08 52 54 53 00 C0 10 50 08 3B |TS...N.RTS...P.;|
000008C0: 00 DE 10 52 08 54 56 45 43 20 2E 57 B0 44 20 24 |...R.TVEC .W.D $|
000008D0: 41 35 37 43 20 3B 53 A4 52 41 47 45 20 81 00 FE |A57C ;S.RAGE ...|
000008E0: 10 54 08 4C 56 45 43 20 2E 57 B0 44 20 24 41 37 |.T.LVEC .W.D $A7|
000008F0: 31 41 20 3B 4F 4C 44 20 56 45 43 A4 52 53 00 12 |1A ;OLD VEC.RS..|
00000900: 11 56 08 45 56 45 43 20 2E 57 B0 44 20 24 41 37 |.V.EVEC .W.D $A7|
00000910: 45 34 00 26 11 58 08 46 56 45 43 20 2E 57 B0 44 |E4.&.X.FVEC .W.D|
00000920: 20 24 41 45 38 36 00 2C 11 5A 08 3B 00 55 11 5C | $AE86.,.Z.;.U.\|
00000930: 08 4E 55 56 45 43 53 20 2E 57 B0 44 20 A4 4B 2C |.NUVECS .W.D .K,|
00000940: 4C 49 53 2C 45 58 43 2C 46 55 4E 20 3B A2 20 56 |LIS,EXC,FUN ;. V|
00000950: 45 43 A4 52 53 00 5B 11 5E 08 3B 00 72 11 60 08 |EC.RS.[.^.;.r.`.|
00000960: A4 4B 20 4C 44 58 20 23 30 20 3B A4 4B 45 4E 49 |.K LDX #0 ;.KENI|
00000970: 5A 45 00 7D 11 62 08 4C 44 59 20 23 30 00 9E 11 |ZE.}.b.LDY #0...|
00000980: 64 08 54 4B 31 20 4C 44 41 20 24 32 30 30 2C 58 |d.TK1 LDA $200,X|
00000990: 20 3B 46 45 54 43 48 20 41 20 42 59 54 45 00 BC | ;FETCH A BYTE..|
000009A0: 11 66 08 43 4D 50 20 23 24 32 32 20 3B 43 48 45 |.f.CMP #$22 ;CHE|
000009B0: 43 4B 20 81 20 9F 20 51 55 4F 54 45 00 C8 11 68 |CK . . QUOTE...h|
000009C0: 08 42 45 51 20 54 4B 39 00 EA 11 6A 08 4A 53 52 |.BEQ TK9...j.JSR|
000009D0: 20 43 8B 43 48 52 20 3B 43 48 45 43 4B 20 81 20 | C.CHR ;CHECK . |
000009E0: 41 4C 50 48 41 42 45 54 49 43 00 00 12 6C 08 42 |ALPHABETIC...l.B|
000009F0: 43 43 20 54 4B 34 20 3B 53 4B 49 50 20 8B 20 A8 |CC TK4 ;SKIP . .|
00000A00: 00 17 12 6E 08 53 54 59 20 24 37 31 20 3B 94 20 |...n.STY $71 ;. |
00000A10: 2E 58 20 AF 20 2E 59 00 22 12 70 08 53 54 58 20 |.X . .Y.".p.STX |
00000A20: 54 33 00 2D 12 72 08 4C 44 59 20 23 30 00 49 12 |T3.-.r.LDY #0.I.|
00000A30: 74 08 53 54 59 20 24 30 42 20 3B 53 45 54 20 55 |t.STY $0B ;SET U|
00000A40: 50 20 43 4F 55 4E 54 45 52 00 61 12 76 08 44 45 |P COUNTER.a.v.DE|
00000A50: 59 20 3B 53 45 54 20 55 50 20 49 4E 44 49 43 45 |Y ;SET UP INDICE|
00000A60: 53 00 69 12 78 08 44 45 58 00 75 12 7A 08 54 4B |S.i.x.DEX.u.z.TK|
00000A70: 32 20 49 4E 59 00 7D 12 7C 08 49 4E 58 00 A7 12 |2 INY.}.|.INX...|
00000A80: 7E 08 54 4B 33 20 4C 44 41 20 24 32 30 30 2C 58 |~.TK3 LDA $200,X|
00000A90: 20 3B 46 45 54 43 48 20 55 4E A4 4B 45 4E 49 5A | ;FETCH UN.KENIZ|
00000AA0: 45 44 20 42 59 54 45 00 AF 12 80 08 53 45 43 00 |ED BYTE.....SEC.|
00000AB0: D4 12 82 08 53 42 43 20 53 4B 57 2C 59 20 3B 43 |....SBC SKW,Y ;C|
00000AC0: 4F 4D 50 41 52 45 20 57 49 54 48 20 4B 45 59 57 |OMPARE WITH KEYW|
00000AD0: B0 44 20 9B 00 F5 12 84 08 42 45 51 20 54 4B 32 |.D ......BEQ TK2|
00000AE0: 20 3B CB 20 42 41 43 4B 20 81 20 41 A8 48 45 52 | ;. BACK . A.HER|
00000AF0: 20 42 59 54 45 00 21 13 86 08 43 4D 50 20 23 24 | BYTE.!...CMP #$|
00000B00: 38 30 20 3B 43 48 45 43 4B 20 81 20 4D 41 54 43 |80 ;CHECK . MATC|
00000B10: 48 20 45 58 43 45 50 54 20 48 49 47 48 20 42 49 |H EXCEPT HIGH BI|
00000B20: 54 00 3B 13 88 08 42 4E 45 20 54 4B 35 20 3B 54 |T.;...BNE TK5 ;T|
00000B30: 52 59 20 82 20 4B 45 59 57 B0 44 00 5D 13 8A 08 |RY . KEYW.D.]...|
00000B40: 4C 44 41 20 23 24 35 46 20 3B 46 49 52 53 54 20 |LDA #$5F ;FIRST |
00000B50: 42 59 54 45 20 4F 46 20 A4 4B 45 4E 2C 00 79 13 |BYTE OF .KEN,.y.|
00000B60: 8C 08 4C 44 59 20 24 37 31 20 3B 54 48 45 20 4C |..LDY $71 ;THE L|
00000B70: 45 46 54 20 41 52 52 4F 57 00 88 13 8E 08 53 54 |EFT ARROW.....ST|
00000B80: 41 20 24 32 30 30 2C 59 00 90 13 90 08 49 4E 59 |A $200,Y.....INY|
00000B90: 00 B0 13 92 08 4C 44 41 20 24 30 42 20 3B 53 45 |.....LDA $0B ;SE|
00000BA0: 43 91 44 20 42 59 54 45 20 4F 46 20 A4 4B 45 4E |C.D BYTE OF .KEN|
00000BB0: 00 BD 13 94 08 41 44 43 20 23 24 33 46 00 C9 13 |.....ADC #$3F...|
00000BC0: 96 08 54 4B 34 20 49 4E 58 00 D8 13 98 08 53 54 |..TK4 INX.....ST|
00000BD0: 41 20 24 32 30 30 2C 59 00 E0 13 9A 08 49 4E 59 |A $200,Y.....INY|
00000BE0: 00 0B 14 9C 08 4C 44 41 20 24 32 30 30 2C 59 20 |.....LDA $200,Y |
00000BF0: 3B 4C 4F 4F 50 20 55 4E 4C 45 53 53 20 4C 49 4E |;LOOP UNLESS LIN|
00000C00: 45 20 45 58 48 41 55 53 54 45 44 00 17 14 9E 08 |E EXHAUSTED.....|
00000C10: 42 4E 45 20 54 4B 31 00 34 14 A0 08 4A 4D 50 20 |BNE TK1.4...JMP |
00000C20: 28 54 56 45 43 29 20 3B 52 45 4A 4F 49 4E 20 42 |(TVEC) ;REJOIN B|
00000C30: 41 53 49 43 00 3A 14 A2 08 3B 00 58 14 A4 08 54 |ASIC.:...;.X...T|
00000C40: 4B 35 20 4C 44 58 20 54 33 20 3B 46 49 4E 44 20 |K5 LDX T3 ;FIND |
00000C50: 82 20 4B 45 59 57 B0 44 00 68 14 A6 08 54 4B 36 |. KEYW.D.h...TK6|
00000C60: 20 49 4E 43 20 24 30 42 00 74 14 A8 08 4C 44 41 | INC $0B.t...LDA|
00000C70: 20 24 30 42 00 9B 14 AA 08 43 4D 50 20 23 24 31 | $0B.....CMP #$1|
00000C80: 45 20 3B 53 4B 49 50 20 50 41 53 54 20 BD 91 45 |E ;SKIP PAST ..E|
00000C90: 4E 54 49 41 54 45 20 A4 4B 45 4E 00 A7 14 AC 08 |NTIATE .KEN.....|
00000CA0: 42 45 51 20 54 4B 36 00 B3 14 AE 08 54 4B 37 20 |BEQ TK6.....TK7 |
00000CB0: 49 4E 59 00 C3 14 B0 08 4C 44 41 20 53 4B 57 AB |INY.....LDA SKW.|
00000CC0: 31 2C 59 00 CF 14 B2 08 42 50 4C 20 54 4B 37 00 |1,Y.....BPL TK7.|
00000CD0: DD 14 B4 08 4C 44 41 20 53 4B 57 2C 59 00 E9 14 |....LDA SKW,Y...|
00000CE0: B6 08 42 4E 45 20 54 4B 33 00 0A 15 B8 08 4C 44 |..BNE TK3.....LD|
00000CF0: 59 20 24 37 31 20 3B 4E 4F 20 4D 41 54 43 48 49 |Y $71 ;NO MATCHI|
00000D00: 4E 47 20 4B 45 59 57 B0 44 2C 00 2C 15 BA 08 4C |NG KEYW.D,.,...L|
00000D10: 44 41 20 24 32 30 30 2C 58 20 3B 47 49 56 45 20 |DA $200,X ;GIVE |
00000D20: 55 50 20 41 54 54 45 4D 50 54 20 A4 00 41 15 BC |UP ATTEMPT ..A..|
00000D30: 08 42 50 4C 20 54 4B 34 20 3B A4 4B 45 4E 49 5A |.BPL TK4 ;.KENIZ|
00000D40: 45 00 47 15 BE 08 3B 00 67 15 C0 08 54 4B 38 20 |E.G...;.g...TK8 |
00000D50: 4C 44 41 20 24 32 30 30 2C 58 20 3B 53 43 41 4E |LDA $200,X ;SCAN|
00000D60: 20 81 20 80 20 4F 46 00 80 15 C2 08 42 45 51 20 | . . OF.....BEQ |
00000D70: 54 4B 34 20 3B 4C 49 4E 45 20 B0 20 80 20 4F 46 |TK4 ;LINE . . OF|
00000D80: 00 9D 15 C4 08 43 4D 50 20 23 24 32 32 20 3B 51 |.....CMP #$22 ;Q|
00000D90: 55 4F 54 45 53 20 57 49 54 48 4F 55 54 00 B4 15 |UOTES WITHOUT...|
00000DA0: C6 08 42 45 51 20 54 4B 34 20 3B A4 4B 45 4E 49 |..BEQ TK4 ;.KENI|
00000DB0: 5A 49 4E 47 00 C7 15 C8 08 54 4B 39 20 53 54 41 |ZING.....TK9 STA|
00000DC0: 20 24 32 30 30 2C 59 00 CF 15 CA 08 49 4E 59 00 | $200,Y.....INY.|
00000DD0: D7 15 CC 08 49 4E 58 00 E3 15 CE 08 42 4E 45 20 |....INX.....BNE |
00000DE0: 54 4B 38 00 E9 15 D0 08 3B 00 08 16 D2 08 4C 49 |TK8.....;.....LI|
00000DF0: 53 20 43 4D 50 20 23 24 35 46 20 3B 9B 20 AB 20 |S CMP #$5F ;. . |
00000E00: BD AF 20 A4 4B 45 4E 53 00 28 16 D4 08 42 4E 45 |.. .KENS.(...BNE|
00000E10: 20 4C 32 20 3B 53 4B 49 50 20 8B 20 A8 20 4C 45 | L2 ;SKIP . . LE|
00000E20: 46 54 AB 41 52 52 4F 57 00 3B 16 D6 08 49 4E 59 |FT.ARROW.;...INY|
00000E30: 20 3B A1 20 82 20 42 59 54 45 2C 00 5A 16 D8 08 | ;. . BYTE,.Z...|
00000E40: 4C 44 41 20 28 24 35 46 29 2C 59 20 3B 43 91 56 |LDA ($5F),Y ;C.V|
00000E50: 45 52 54 20 A4 20 A4 4B 45 4E 00 6F 16 DA 08 53 |ERT . .KEN.o...S|
00000E60: 42 43 20 23 24 34 30 20 3B 4E 55 4D 42 45 52 00 |BC #$40 ;NUMBER.|
00000E70: 7C 16 DC 08 43 4D 50 20 23 24 31 45 00 87 16 DE ||...CMP #$1E....|
00000E80: 08 42 43 43 20 4C 31 00 92 16 E0 08 53 42 43 20 |.BCC L1.....SBC |
00000E90: 23 31 00 B7 16 E2 08 4C 31 20 43 4D 50 20 58 54 |#1.....L1 CMP XT|
00000EA0: 52 41 AA 32 20 3B 43 48 45 43 4B 20 8B 20 49 4E |RA.2 ;CHECK . IN|
00000EB0: 20 42 4F 55 4E 44 53 00 D3 16 E4 08 42 43 43 20 | BOUNDS.....BCC |
00000EC0: 4C 33 20 3B CB 20 53 43 41 4E 20 4B 45 59 57 B0 |L3 ;. SCAN KEYW.|
00000ED0: 44 20 9B 00 DB 16 E6 08 44 45 59 00 F9 16 E8 08 |D ......DEY.....|
00000EE0: 4C 44 41 20 28 24 35 46 29 2C 59 20 3B 52 45 4A |LDA ($5F),Y ;REJ|
00000EF0: 4F 49 4E 20 42 41 53 49 43 00 04 17 EA 08 4C 32 |OIN BASIC.....L2|
00000F00: 20 54 41 58 00 13 17 EC 08 4A 4D 50 20 28 4C 56 | TAX.....JMP (LV|
00000F10: 45 43 29 00 19 17 EE 08 3B 00 38 17 F0 08 4C 33 |EC).....;.8...L3|
00000F20: 20 53 54 59 20 54 33 20 3B 43 4F 55 4E 54 44 4F | STY T3 ;COUNTDO|
00000F30: 57 4E 20 49 4E 20 2E 58 00 53 17 F2 08 4C 44 59 |WN IN .X.S...LDY|
00000F40: 20 23 30 20 3B 57 48 49 4C 45 20 53 43 41 4E 4E | #0 ;WHILE SCANN|
00000F50: 49 4E 47 00 65 17 F4 08 54 41 58 20 3B 4B 45 59 |ING.e...TAX ;KEY|
00000F60: 57 B0 44 20 9B 00 70 17 F6 08 42 45 51 20 4C 35 |W.D ..p...BEQ L5|
00000F70: 00 81 17 F8 08 4C 34 20 4C 44 41 20 53 4B 57 2C |.....L4 LDA SKW,|
00000F80: 59 00 89 17 FA 08 50 48 50 00 91 17 FC 08 49 4E |Y.....PHP.....IN|
00000F90: 59 00 99 17 FE 08 50 4C 50 00 B1 17 00 09 42 50 |Y.....PLP.....BP|
00000FA0: 4C 20 4C 34 20 3B 4C 41 53 54 20 4B 45 59 57 B0 |L L4 ;LAST KEYW.|
00000FB0: 44 00 CC 17 02 09 44 45 58 20 3B 43 48 41 52 41 |D.....DEX ;CHARA|
00000FC0: 43 54 45 52 20 48 41 53 20 42 49 54 00 DE 17 04 |CTER HAS BIT....|
00000FD0: 09 42 4E 45 20 4C 34 20 3B 37 20 53 45 54 00 E4 |.BNE L4 ;7 SET..|
00000FE0: 17 06 09 3B 00 FF 17 08 09 4C 35 20 4C 44 41 20 |...;.....L5 LDA |
00000FF0: 53 4B 57 2C 59 20 3B 99 20 4B 45 59 57 B0 44 00 |SKW,Y ;. KEYW.D.|
00001000: 14 18 0A 09 50 48 50 20 3B 55 BF 47 20 42 41 53 |....PHP ;U.G BAS|
00001010: 49 43 27 53 00 2C 18 0C 09 AF 20 23 24 37 46 20 |IC'S.,.... #$7F |
00001020: 3B 43 48 41 52 41 43 54 45 52 AB 99 00 4C 18 0E |;CHARACTER...L..|
00001030: 09 4A 53 52 20 24 41 42 34 37 20 3B 52 4F 55 54 |.JSR $AB47 ;ROUT|
00001040: 49 4E 45 20 41 54 20 24 41 42 34 37 00 54 18 10 |INE AT $AB47.T..|
00001050: 09 49 4E 59 00 5C 18 12 09 50 4C 50 00 67 18 14 |.INY.\...PLP.g..|
00001060: 09 42 50 4C 20 4C 35 00 72 18 16 09 4C 44 59 20 |.BPL L5.r...LDY |
00001070: 54 33 00 91 18 18 09 4C 36 20 4A 4D 50 20 24 41 |T3.....L6 JMP $A|
00001080: 37 30 30 20 3B 52 45 4A 4F 49 4E 20 42 41 53 49 |700 ;REJOIN BASI|
00001090: 43 00 97 18 1A 09 3B 00 BA 18 1C 09 45 58 43 20 |C.....;.....EXC |
000010A0: 4A 53 52 20 24 37 33 20 3B 45 58 45 43 55 54 45 |JSR $73 ;EXECUTE|
000010B0: 20 53 54 41 54 45 4D 45 4E 54 00 DD 18 1E 09 45 | STATEMENT.....E|
000010C0: 58 31 20 43 4D 50 20 23 24 38 42 20 3B 27 8B 27 |X1 CMP #$8B ;'.'|
000010D0: AB 48 AF 4C 45 20 41 54 20 8B 52 54 4E 00 E9 18 |.H.LE AT .RTN...|
000010E0: 20 09 42 45 51 20 45 58 38 00 06 19 22 09 43 4D | .BEQ EX8...".CM|
000010F0: 50 20 23 24 35 46 20 3B 54 48 45 20 4C 45 46 54 |P #$5F ;THE LEFT|
00001100: 20 41 52 52 4F 57 00 27 19 24 09 42 4E 45 20 45 | ARROW.'.$.BNE E|
00001110: 58 35 20 3B 53 4B 49 50 20 A4 20 52 45 4A 4F 49 |X5 ;SKIP . REJOI|
00001120: 4E 20 42 41 53 49 43 00 3D 19 26 09 4A 53 52 20 |N BASIC.=.&.JSR |
00001130: 24 37 33 20 3B A1 20 82 20 42 59 54 45 00 52 19 |$73 ;. . BYTE.R.|
00001140: 28 09 4A 53 52 20 45 58 32 20 3B 45 58 45 43 55 |(.JSR EX2 ;EXECU|
00001150: 54 45 00 74 19 2A 09 4A 4D 50 20 24 41 37 41 45 |TE.t.*.JMP $A7AE|
00001160: 20 3B 53 45 54 20 55 50 20 82 20 53 54 41 54 45 | ;SET UP . STATE|
00001170: 4D 45 4E 54 00 7A 19 2C 09 3B 00 95 19 2E 09 45 |MENT.z.,.;.....E|
00001180: 58 32 20 53 45 43 20 3B 43 91 56 45 52 54 20 A4 |X2 SEC ;C.VERT .|
00001190: 4B 45 4E 20 A4 00 B1 19 30 09 53 42 43 20 23 24 |KEN ....0.SBC #$|
000011A0: 34 30 20 3B 4B 45 59 57 B0 44 20 4E 55 4D 42 45 |40 ;KEYW.D NUMBE|
000011B0: 52 00 BE 19 32 09 43 4D 50 20 23 24 31 45 00 CA |R...2.CMP #$1E..|
000011C0: 19 34 09 42 43 43 20 45 58 33 00 D5 19 36 09 53 |.4.BCC EX3...6.S|
000011D0: 42 43 20 23 31 00 F9 19 38 09 45 58 33 20 43 4D |BC #1...8.EX3 CM|
000011E0: 50 20 58 54 52 41 20 3B 43 48 45 43 4B 20 8B 20 |P XTRA ;CHECK . |
000011F0: 49 4E 20 42 4F 55 4E 44 53 00 12 1A 3A 09 42 43 |IN BOUNDS...:.BC|
00001200: 53 20 45 58 37 20 3B 53 59 4E 54 41 58 20 45 52 |S EX7 ;SYNTAX ER|
00001210: 52 B0 00 1A 1A 3C 09 41 53 4C 00 22 1A 3E 09 54 |R....<.ASL.".>.T|
00001220: 41 59 00 3E 1A 40 09 4C 44 41 20 9D 53 AA 31 2C |AY.>.@.LDA .S.1,|
00001230: 59 20 3B 46 45 54 43 48 20 56 45 43 A4 52 00 5A |Y ;FETCH VEC.R.Z|
00001240: 1A 42 09 50 48 41 20 3B 41 44 44 52 45 53 53 20 |.B.PHA ;ADDRESS |
00001250: 46 52 4F 4D 20 54 41 42 4C 45 00 67 1A 44 09 4C |FROM TABLE.g.D.L|
00001260: 44 41 20 9D 53 2C 59 00 82 1A 46 09 50 48 41 20 |DA .S,Y...F.PHA |
00001270: 3B 4A 55 4D 50 20 54 48 52 4F 55 47 48 20 43 48 |;JUMP THROUGH CH|
00001280: 52 A1 00 A3 1A 48 09 4A 4D 50 20 24 37 33 20 3B |R....H.JMP $73 ;|
00001290: A4 20 53 54 41 54 45 4D 45 4E 54 20 52 4F 55 54 |. STATEMENT ROUT|
000012A0: 49 4E 45 00 A9 1A 4A 09 3B 00 C9 1A 4C 09 45 58 |INE...J.;...L.EX|
000012B0: 35 20 4C 44 41 20 24 37 41 20 3B 44 45 43 8F 45 |5 LDA $7A ;DEC.E|
000012C0: 4E 54 20 43 48 52 47 45 54 00 DC 1A 4E 09 42 4E |NT CHRGET...N.BN|
000012D0: 45 20 45 58 36 20 3B 50 4F B5 45 52 00 E8 1A 50 |E EX6 ;PO.ER...P|
000012E0: 09 44 45 43 20 24 37 42 00 F8 1A 52 09 45 58 36 |.DEC $7B...R.EX6|
000012F0: 20 44 45 43 20 24 37 41 00 15 1B 54 09 4A 4D 50 | DEC $7A...T.JMP|
00001300: 20 28 45 56 45 43 29 20 3B 52 45 4A 4F 49 4E 20 | (EVEC) ;REJOIN |
00001310: 42 41 53 49 43 00 1B 1B 56 09 3B 00 3A 1B 58 09 |BASIC...V.;.:.X.|
00001320: 45 58 37 20 4A 4D 50 20 24 41 46 30 38 20 3B 53 |EX7 JMP $AF08 ;S|
00001330: 59 4E 54 41 58 20 45 52 52 B0 00 40 1B 5A 09 3B |YNTAX ERR..@.Z.;|
00001340: 00 5D 1B 5C 09 45 58 38 20 4A 53 52 20 45 58 39 |.].\.EX8 JSR EX9|
00001350: 3B 20 45 58 45 43 55 54 45 20 27 8B 27 00 7F 1B |; EXECUTE '.'...|
00001360: 5E 09 4A 4D 50 20 24 41 37 41 45 20 3B 53 45 54 |^.JMP $A7AE ;SET|
00001370: 20 55 50 20 82 20 53 54 41 54 45 4D 45 4E 54 00 | UP . STATEMENT.|
00001380: 85 1B 60 09 3B 00 A2 1B 62 09 45 58 39 20 4C 44 |..`.;...b.EX9 LD|
00001390: 41 20 23 B1 8B 52 54 4E AB 31 20 3B 4A 55 4D 50 |A #..RTN.1 ;JUMP|
000013A0: 20 A4 00 B8 1B 64 09 50 48 41 20 3B 27 8B 27 20 | ....d.PHA ;'.' |
000013B0: 45 58 45 43 55 54 49 91 00 D2 1B 66 09 4C 44 41 |EXECUTI....f.LDA|
000013C0: 20 23 B3 8B 52 54 4E AB 31 20 3B 52 4F 55 54 49 | #..RTN.1 ;ROUTI|
000013D0: 4E 45 00 DA 1B 68 09 50 48 41 00 E6 1B 6A 09 4A |NE...h.PHA...j.J|
000013E0: 4D 50 20 24 37 33 00 EC 1B 6C 09 3B 00 0C 1C 6E |MP $73...l.;...n|
000013F0: 09 46 55 4E 20 4A 53 52 20 24 37 33 20 3B 45 C5 |.FUN JSR $73 ;E.|
00001400: 55 41 54 45 20 46 55 4E 43 54 49 91 00 25 1C 70 |UATE FUNCTI..%.p|
00001410: 09 43 4D 50 20 23 24 35 46 20 3B 4C 45 46 54 20 |.CMP #$5F ;LEFT |
00001420: 41 52 52 4F 57 00 4C 1C 72 09 42 45 51 20 46 55 |ARROW.L.r.BEQ FU|
00001430: 32 20 3B 45 C5 55 41 54 45 20 54 52 41 4E 53 42 |2 ;E.UATE TRANSB|
00001440: 41 53 49 43 20 46 55 4E 43 54 49 91 00 68 1C 74 |ASIC FUNCTI..h.t|
00001450: 09 4C 44 41 20 24 37 41 20 3B 44 45 43 8F 45 4E |.LDA $7A ;DEC.EN|
00001460: 54 20 43 48 52 47 45 54 00 7C 1C 76 09 42 4E 45 |T CHRGET.|.v.BNE|
00001470: 20 46 55 31 20 3B 50 4F B5 45 52 2C 00 96 1C 78 | FU1 ;PO.ER,...x|
00001480: 09 44 45 43 20 24 37 42 20 3B 52 45 4A 4F 49 4E |.DEC $7B ;REJOIN|
00001490: 20 42 41 53 49 43 00 A6 1C 7A 09 46 55 31 20 44 | BASIC...z.FU1 D|
000014A0: 45 43 20 24 37 41 00 B5 1C 7C 09 4A 4D 50 20 28 |EC $7A...|.JMP (|
000014B0: 46 56 45 43 29 00 BB 1C 7E 09 3B 00 E1 1C 80 09 |FVEC)...~.;.....|
000014C0: 46 55 32 20 4C 44 41 20 23 30 20 3B 43 4C 45 41 |FU2 LDA #0 ;CLEA|
000014D0: 52 20 83 20 54 59 50 45 20 52 45 47 49 53 54 45 |R . TYPE REGISTE|
000014E0: 52 00 ED 1C 82 09 53 54 41 20 24 30 44 00 11 1D |R.....STA $0D...|
000014F0: 84 09 4A 53 52 20 24 37 33 20 3B 46 45 54 43 48 |..JSR $73 ;FETCH|
00001500: 20 4B 45 59 57 B0 44 20 49 2E 44 2E 20 42 59 54 | KEYW.D I.D. BYT|
00001510: 45 00 2F 1D 86 09 53 45 43 20 3B 43 91 56 45 52 |E./...SEC ;C.VER|
00001520: 54 20 4B 45 59 57 B0 44 20 4E 55 4D 42 45 52 00 |T KEYW.D NUMBER.|
00001530: 3C 1D 88 09 53 42 43 20 23 24 34 30 00 49 1D 8A |<...SBC #$40.I..|
00001540: 09 43 4D 50 20 23 24 31 45 00 55 1D 8C 09 42 43 |.CMP #$1E.U...BC|
00001550: 43 20 46 55 33 00 60 1D 8E 09 53 42 43 20 23 31 |C FU3.`...SBC #1|
00001560: 00 7E 1D 90 09 46 55 33 20 53 45 43 20 3B 43 48 |.~...FU3 SEC ;CH|
00001570: 45 43 4B 20 8B 20 49 4E 20 52 41 4E 47 45 00 8B |ECK . IN RANGE..|
00001580: 1D 92 09 53 42 43 20 58 54 52 41 00 A4 1D 94 09 |...SBC XTRA.....|
00001590: 42 43 43 20 45 58 37 20 3B 53 59 4E 54 41 58 20 |BCC EX7 ;SYNTAX |
000015A0: 45 52 52 B0 00 B3 1D 96 09 43 4D 50 20 58 54 52 |ERR......CMP XTR|
000015B0: 41 AA 31 00 CC 1D 98 09 42 43 53 20 45 58 37 20 |A.1.....BCS EX7 |
000015C0: 3B 53 59 4E 54 41 58 20 45 52 52 B0 00 E3 1D 9A |;SYNTAX ERR.....|
000015D0: 09 41 53 4C 20 3B 46 45 54 43 48 20 46 55 4E 43 |.ASL ;FETCH FUNC|
000015E0: 54 49 91 00 FD 1D 9C 09 54 41 59 20 3B 56 45 43 |TI......TAY ;VEC|
000015F0: A4 52 20 46 52 4F 4D 20 54 41 42 4C 45 00 0D 1E |.R FROM TABLE...|
00001600: 9E 09 4C 44 41 20 A5 43 53 AA 31 2C 59 00 15 1E |..LDA .CS.1,Y...|
00001610: A0 09 50 48 41 00 23 1E A2 09 4C 44 41 20 A5 43 |..PHA.#...LDA .C|
00001620: 53 2C 59 00 3B 1E A4 09 50 48 41 20 3B 4A 55 4D |S,Y.;...PHA ;JUM|
00001630: 50 20 A4 20 46 55 4E 43 54 49 91 00 5D 1E A6 09 |P . FUNCTI..]...|
00001640: 4A 4D 50 20 24 37 33 20 3B 52 4F 55 54 49 4E 45 |JMP $73 ;ROUTINE|
00001650: 20 54 48 52 4F 55 47 48 20 43 48 52 A1 00 63 1E | THROUGH CHR..c.|
00001660: A8 09 3B 00 8B 1E AA 09 8B 52 54 4E 20 4A 53 52 |..;......RTN JSR|
00001670: 20 24 41 44 39 45 20 3B 45 C5 55 41 54 45 20 54 | $AD9E ;E.UATE T|
00001680: 45 53 54 20 BD 52 45 53 53 49 91 00 97 1E AC 09 |EST .RESSI......|
00001690: 4A 53 52 20 24 37 39 00 B9 1E AE 09 43 4D 50 20 |JSR $79.....CMP |
000016A0: 23 24 38 39 20 3B 4D 55 53 54 20 42 45 20 46 4F |#$89 ;MUST BE FO|
000016B0: 4C 4C 4F 57 45 44 20 42 59 00 CD 1E B0 09 42 45 |LLOWED BY.....BE|
000016C0: 51 20 8B 31 20 3B 89 20 28 24 38 39 29 00 E5 1E |Q .1 ;. ($89)...|
000016D0: B2 09 4C 44 41 20 23 24 41 37 20 3B B0 20 A7 20 |..LDA #$A7 ;. . |
000016E0: 28 24 41 37 29 00 F3 1E B4 09 4A 53 52 20 24 41 |($A7).....JSR $A|
000016F0: 45 46 46 00 19 1F B6 09 8B 31 20 4A 53 52 20 24 |EFF......1 JSR $|
00001700: 37 39 20 3B 43 4C 45 41 52 20 43 41 52 52 59 20 |79 ;CLEAR CARRY |
00001710: 91 20 4E 55 4D 45 52 49 43 00 3A 1F B8 09 4C 44 |. NUMERIC.:...LD|
00001720: 58 20 24 36 31 20 3B 43 48 45 43 4B 20 8B 20 54 |X $61 ;CHECK . T|
00001730: 45 53 54 20 46 41 49 4C 45 44 00 5C 1F BA 09 42 |EST FAILED.\...B|
00001740: 45 51 20 45 4C 53 52 54 4E 20 3B 59 45 53 20 AB |EQ ELSRTN ;YES .|
00001750: 20 53 4B 49 50 20 A4 20 45 4C 53 45 00 67 1F BC | SKIP . ELSE.g..|
00001760: 09 42 43 53 20 8B 32 00 78 1F BE 09 4A 4D 50 20 |.BCS .2.x...JMP |
00001770: 24 41 38 41 30 20 3B 89 00 96 1F C0 09 8B 32 20 |$A8A0 ;.......2 |
00001780: 50 4C 41 20 3B 45 58 45 43 55 54 45 20 53 54 41 |PLA ;EXECUTE STA|
00001790: 54 45 4D 45 4E 54 00 A9 1F C2 09 50 4C 41 20 3B |TEMENT.....PLA ;|
000017A0: 41 46 54 45 52 20 27 A7 27 00 B5 1F C4 09 4A 53 |AFTER '.'.....JS|
000017B0: 52 20 24 37 39 00 C1 1F C6 09 4A 4D 50 20 45 58 |R $79.....JMP EX|
000017C0: 31 00 C7 1F D0 09 3B 00 EC 1F D2 09 45 4C 53 52 |1.....;.....ELSR|
000017D0: 54 4E 20 4A 53 52 20 24 41 38 46 38 20 3B 53 4B |TN JSR $A8F8 ;SK|
000017E0: 49 50 20 53 54 41 54 45 4D 45 4E 54 00 F8 1F D4 |IP STATEMENT....|
000017F0: 09 4A 53 52 20 24 37 39 00 0C 20 D6 09 43 4D 50 |.JSR $79.. ..CMP|
00001800: 20 23 30 20 3B 52 54 53 20 8B 20 80 00 1F 20 D8 | #0 ;RTS . ... .|
00001810: 09 42 4E 45 20 45 4C 53 31 20 3B 4F 46 20 9B 00 |.BNE ELS1 ;OF ..|
00001820: 27 20 DA 09 52 54 53 00 46 20 DC 09 45 4C 53 31 |' ..RTS.F ..ELS1|
00001830: 20 4A 53 52 20 24 37 33 20 3B 43 48 45 43 4B 20 | JSR $73 ;CHECK |
00001840: 81 20 45 4C 53 45 00 59 20 DE 09 43 4D 50 20 23 |. ELSE.Y ..CMP #|
00001850: 24 35 46 20 3B A4 4B 45 4E 00 68 20 E0 09 42 4E |$5F ;.KEN.h ..BN|
00001860: 45 20 45 4C 53 52 54 4E 00 74 20 E2 09 4A 53 52 |E ELSRTN.t ..JSR|
00001870: 20 24 37 33 00 81 20 E4 09 43 4D 50 20 23 24 34 | $73.. ..CMP #$4|
00001880: 30 00 90 20 E6 09 42 4E 45 20 45 4C 53 52 54 4E |0.. ..BNE ELSRTN|
00001890: 00 A5 20 E8 09 4A 53 52 20 24 37 33 20 3B 45 58 |.. ..JSR $73 ;EX|
000018A0: 45 43 55 54 45 00 B0 20 EA 09 4A 4D 50 20 8B 32 |ECUTE.. ..JMP .2|
000018B0: 00 B6 20 EC 09 3B 00 D3 20 EE 09 45 58 54 20 4C |.. ..;.. ..EXT L|
000018C0: 44 58 20 23 37 20 3B 45 58 49 54 20 52 4F 55 54 |DX #7 ;EXIT ROUT|
000018D0: 49 4E 45 00 EE 20 F0 09 45 58 54 31 20 4C 44 41 |INE.. ..EXT1 LDA|
000018E0: 20 54 56 45 43 2C 58 20 3B 8C 20 4F 4C 44 00 05 | TVEC,X ;. OLD..|
000018F0: 21 F2 09 53 54 41 20 24 33 30 34 2C 58 20 3B 56 |!..STA $304,X ;V|
00001900: 45 43 A4 52 53 00 0D 21 F4 09 44 45 58 00 1A 21 |EC.RS..!..DEX..!|
00001910: F6 09 42 50 4C 20 45 58 54 31 00 35 21 F8 09 4C |..BPL EXT1.5!..L|
00001920: 44 41 20 23 24 41 32 20 3B 8C 20 4C 44 58 20 43 |DA #$A2 ;. LDX C|
00001930: 4F 44 45 20 A4 00 59 21 FA 09 53 54 41 20 53 54 |ODE ..Y!..STA ST|
00001940: 41 52 54 20 3B 45 4E 41 42 4C 45 20 53 54 41 52 |ART ;ENABLE STAR|
00001950: 54 20 52 4F 55 54 49 4E 45 00 83 21 FC 09 4A 4D |T ROUTINE..!..JM|
00001960: 50 20 50 44 4F 57 4E 20 3B 44 4F 20 50 4F 57 44 |P PDOWN ;DO POWD|
00001970: 4F 57 4E 20 43 4F 4D 4D AF 20 8B 20 50 52 45 53 |OWN COMM. . PRES|
00001980: 45 4E 54 00 89 21 FE 09 3B 00 A9 21 00 0A 43 8B |ENT..!..;..!..C.|
00001990: 43 48 52 20 43 4D 50 20 23 24 35 42 20 3B 8E 20 |CHR CMP #$5B ;. |
000019A0: 43 41 52 52 59 20 53 45 54 00 C4 21 02 0A 42 43 |CARRY SET..!..BC|
000019B0: 43 20 43 49 43 31 20 3B 8B 20 41 43 43 55 4D 55 |C CIC1 ;. ACCUMU|
000019C0: 4C 41 A4 52 00 D3 21 04 0A 43 4C 43 20 3B 9A 41 |LA.R..!..CLC ;.A|
000019D0: 49 4E 53 00 EC 21 06 0A 42 43 43 20 43 49 43 32 |INS..!..BCC CIC2|
000019E0: 20 3B 41 4C 50 48 41 42 45 54 49 43 00 FE 21 08 | ;ALPHABETIC..!.|
000019F0: 0A 43 49 43 31 20 43 4D 50 20 23 24 34 31 00 0B |.CIC1 CMP #$41..|
00001A00: 22 0A 0A 43 49 43 32 20 52 54 53 00 11 22 0C 0A |"..CIC2 RTS.."..|
00001A10: 3B 00 36 22 0E 0A 43 53 52 20 4A 53 52 20 24 42 |;.6"..CSR JSR $B|
00001A20: 37 39 45 20 3B A1 20 46 49 52 53 54 20 50 41 52 |79E ;. FIRST PAR|
00001A30: 41 4D 45 54 45 52 00 55 22 10 0A 43 50 58 20 23 |AMETER.U"..CPX #|
00001A40: 24 31 39 20 3B 4D 55 53 54 20 42 45 20 55 4E 44 |$19 ;MUST BE UND|
00001A50: 45 52 20 32 35 00 6C 22 12 0A 42 43 53 20 43 53 |ER 25.l"..BCS CS|
00001A60: 32 20 3B 94 20 91 20 53 54 41 43 4B 00 74 22 14 |2 ;. . STACK.t".|
00001A70: 0A 54 58 41 00 7C 22 16 0A 50 48 41 00 98 22 17 |.TXA.|"..PHA..".|
00001A80: 0A 4C 44 59 20 23 30 20 3B 41 53 53 55 4D 45 20 |.LDY #0 ;ASSUME |
00001A90: 43 4F 4C 55 4D 4E 20 30 00 B1 22 18 0A 4A 53 52 |COLUMN 0.."..JSR|
00001AA0: 20 24 37 39 20 3B 42 52 41 4E 43 48 20 8B 20 4E | $79 ;BRANCH . N|
00001AB0: 4F 00 CE 22 19 0A 42 45 51 20 43 53 31 20 3B 53 |O.."..BEQ CS1 ;S|
00001AC0: 45 43 91 44 20 50 41 52 41 4D 45 54 45 52 00 EB |EC.D PARAMETER..|
00001AD0: 22 1A 0A 43 4D 50 20 23 22 2C 22 20 3B 48 41 53 |"..CMP #"," ;HAS|
00001AE0: 20 A4 20 42 45 20 43 4F 4D 4D 41 00 F7 22 1B 0A | . BE COMMA.."..|
00001AF0: 42 4E 45 20 43 53 33 00 12 23 1C 0A 4A 53 52 20 |BNE CS3..#..JSR |
00001B00: 24 42 37 39 42 20 3B A1 20 50 41 52 41 4D 45 54 |$B79B ;. PARAMET|
00001B10: 45 52 00 31 23 1D 0A 43 50 58 20 23 24 32 38 20 |ER.1#..CPX #$28 |
00001B20: 3B 4D 55 53 54 20 42 45 20 55 4E 44 45 52 20 34 |;MUST BE UNDER 4|
00001B30: 30 00 3D 23 1E 0A 42 43 53 20 43 53 32 00 53 23 |0.=#..BCS CS2.S#|
00001B40: 20 0A 54 58 41 20 3B 4D 4F 56 45 20 49 54 20 A4 | .TXA ;MOVE IT .|
00001B50: 20 2E 59 00 5B 23 22 0A 54 41 59 00 7A 23 24 0A | .Y.[#".TAY.z#$.|
00001B60: 43 53 31 20 50 4C 41 20 3B 52 45 43 4F 56 45 52 |CS1 PLA ;RECOVER|
00001B70: 20 52 4F 57 20 50 41 52 41 4D 00 82 23 26 0A 54 | ROW PARAM..#&.T|
00001B80: 41 58 00 99 23 27 0A 43 4C 43 20 3B 4A 55 4D 50 |AX..#'.CLC ;JUMP|
00001B90: 20 A4 20 4B 45 52 4E 41 4C 00 B5 23 28 0A 4A 4D | . KERNAL..#(.JM|
00001BA0: 50 20 24 46 46 46 30 20 3B 50 4C 4F 54 20 52 4F |P $FFF0 ;PLOT RO|
00001BB0: 55 54 49 4E 45 00 D9 23 2A 0A 43 53 32 20 4A 4D |UTINE..#*.CS2 JM|
00001BC0: 50 20 24 42 32 34 38 20 3B 49 4C 4C 45 47 41 4C |P $B248 ;ILLEGAL|
00001BD0: 20 51 55 41 4E 54 49 54 59 00 F8 23 2B 0A 43 53 | QUANTITY..#+.CS|
00001BE0: 33 20 4A 4D 50 20 24 41 46 30 38 20 3B 53 59 4E |3 JMP $AF08 ;SYN|
00001BF0: 54 41 58 20 45 52 52 B0 00 FE 23 2C 0A 3B 00 1C |TAX ERR...#,.;..|
00001C00: 24 2E 0A 43 53 52 4C 4F 43 20 4C 44 41 20 24 44 |$..CSRLOC LDA $D|
00001C10: 31 20 3B 24 44 31 20 AF 20 24 44 32 00 2E 24 30 |1 ;$D1 . $D2..$0|
00001C20: 0A 43 4C 43 20 3B 9A 41 49 4E 20 54 48 45 00 48 |.CLC ;.AIN THE.H|
00001C30: 24 32 0A 41 44 43 20 24 44 33 20 3B 53 54 41 52 |$2.ADC $D3 ;STAR|
00001C40: 54 20 4F 46 20 52 4F 57 00 5E 24 34 0A 54 41 59 |T OF ROW.^$4.TAY|
00001C50: 20 3B 4C 4F 43 41 54 49 91 2E 20 24 44 33 00 75 | ;LOCATI.. $D3.u|
00001C60: 24 36 0A 4C 44 41 20 24 44 32 20 3B 9A 41 49 4E |$6.LDA $D2 ;.AIN|
00001C70: 53 20 54 48 45 00 89 24 38 0A 41 44 43 20 23 30 |S THE..$8.ADC #0|
00001C80: 20 3B 43 4F 4C 55 4D 4E 2E 00 8F 24 3A 0A 3B 00 | ;COLUMN...$:.;.|
00001C90: B1 24 3C 0A 55 53 46 50 20 4C 44 58 20 23 30 20 |.$<.USFP LDX #0 |
00001CA0: 3B 43 91 56 45 52 54 20 2E 41 20 28 48 49 47 48 |;C.VERT .A (HIGH|
00001CB0: 29 00 C9 24 3E 0A 53 54 58 20 24 30 44 20 3B AF |)..$>.STX $0D ;.|
00001CC0: 20 2E 59 20 28 4C 4F 57 29 00 E4 24 40 0A 53 54 | .Y (LOW)..$@.ST|
00001CD0: 41 20 24 36 32 20 3B 46 52 4F 4D 20 55 4E 53 49 |A $62 ;FROM UNSI|
00001CE0: 47 4E 45 44 00 F9 24 42 0A 53 54 59 20 24 36 33 |GNED..$B.STY $63|
00001CF0: 20 3B B5 45 47 45 52 20 A4 00 14 25 44 0A 4C 44 | ;.EGER ...%D.LD|
00001D00: 58 20 23 24 39 30 20 3B 46 4C 4F 41 54 49 4E 47 |X #$90 ;FLOATING|
00001D10: 20 50 4F B5 00 27 25 46 0A 53 45 43 20 3B 4E 55 | PO..'%F.SEC ;NU|
00001D20: 4D 42 45 52 20 49 4E 00 3D 25 48 0A 4A 4D 50 20 |MBER IN.=%H.JMP |
00001D30: 24 42 43 34 39 20 3B 46 41 43 20 23 31 00 43 25 |$BC49 ;FAC #1.C%|
00001D40: 4A 0A 3B 00 62 25 4C 0A 44 4F 4B 20 4A 53 52 20 |J.;.b%L.DOK JSR |
00001D50: 24 41 44 38 41 20 3B A1 20 97 20 41 44 44 52 45 |$AD8A ;. . ADDRE|
00001D60: 53 53 00 80 25 4E 0A 4A 53 52 20 24 42 37 46 37 |SS..%N.JSR $B7F7|
00001D70: 20 3B 43 91 56 45 52 54 20 A4 20 B5 45 47 45 52 | ;C.VERT . .EGER|
00001D80: 00 9D 25 50 0A 4A 53 52 20 24 41 45 46 44 20 3B |..%P.JSR $AEFD ;|
00001D90: 43 48 45 43 4B 20 81 20 43 4F 4D 4D 41 00 B7 25 |CHECK . COMMA..%|
00001DA0: 52 0A 4C 44 41 20 24 31 34 20 3B 53 A4 52 45 20 |R.LDA $14 ;S.RE |
00001DB0: 41 44 44 52 45 53 53 00 D1 25 54 0A 53 54 41 20 |ADDRESS..%T.STA |
00001DC0: 54 33 20 3B 41 53 20 54 45 4D 50 20 56 45 43 A4 |T3 ;AS TEMP VEC.|
00001DD0: 52 00 DD 25 56 0A 4C 44 41 20 24 31 35 00 E8 25 |R..%V.LDA $15..%|
00001DE0: 58 0A 53 54 41 20 54 34 00 FF 25 5A 0A 4A 53 52 |X.STA T4..%Z.JSR|
00001DF0: 20 24 41 44 38 41 20 3B A1 20 97 20 C5 55 45 00 | $AD8A ;. . .UE.|
00001E00: 1D 26 5C 0A 4A 53 52 20 24 42 37 46 37 20 3B 43 |.&\.JSR $B7F7 ;C|
00001E10: 91 56 45 52 54 20 A4 20 B5 45 47 45 52 00 37 26 |.VERT . .EGER.7&|
00001E20: 5E 0A 4C 44 41 20 24 31 34 20 3B 4C 4F 57 20 42 |^.LDA $14 ;LOW B|
00001E30: 59 54 45 20 A4 20 97 00 52 26 60 0A 4C 44 59 20 |YTE . ..R&`.LDY |
00001E40: 23 30 20 3B 49 4E 44 49 52 45 43 54 20 49 4E 44 |#0 ;INDIRECT IND|
00001E50: 45 58 00 68 26 62 0A 53 45 49 20 3B 54 55 52 4E |EX.h&b.SEI ;TURN|
00001E60: 20 4F 46 46 20 49 52 51 00 83 26 64 0A 53 54 41 | OFF IRQ..&d.STA|
00001E70: 20 28 54 33 29 2C 59 20 3B 94 20 4C 4F 57 20 42 | (T3),Y ;. LOW B|
00001E80: 59 54 45 00 9E 26 66 0A 4C 44 41 20 24 31 35 20 |YTE..&f.LDA $15 |
00001E90: 3B 48 49 47 48 20 42 59 54 45 20 A4 20 97 00 B2 |;HIGH BYTE . ...|
00001EA0: 26 68 0A 49 4E 59 20 3B 42 55 4D 50 20 49 4E 44 |&h.INY ;BUMP IND|
00001EB0: 45 58 00 CE 26 6A 0A 53 54 41 20 28 54 33 29 2C |EX..&j.STA (T3),|
00001EC0: 59 20 3B 94 20 48 49 47 48 20 42 59 54 45 00 E3 |Y ;. HIGH BYTE..|
00001ED0: 26 6C 0A 43 4C 49 20 3B 49 52 51 20 91 20 41 47 |&l.CLI ;IRQ . AG|
00001EE0: 41 49 4E 00 EB 26 6E 0A 52 54 53 00 F1 26 70 0A |AIN..&n.RTS..&p.|
00001EF0: 3B 00 13 27 72 0A 44 45 45 4B 20 4A 53 52 20 24 |;..'r.DEEK JSR $|
00001F00: 41 45 46 34 20 3B A1 20 C5 2C 20 54 45 53 54 20 |AEF4 ;. ., TEST |
00001F10: 27 29 27 00 31 27 74 0A 4A 53 52 20 24 41 44 38 |')'.1't.JSR $AD8|
00001F20: 44 20 3B 54 45 53 54 20 81 20 4E 55 4D 45 52 49 |D ;TEST . NUMERI|
00001F30: 43 00 4C 27 76 0A 4A 53 52 20 24 42 37 46 37 20 |C.L'v.JSR $B7F7 |
00001F40: 3B 43 91 56 20 A4 20 B5 45 47 45 52 00 67 27 78 |;C.V . .EGER.g'x|
00001F50: 0A 4C 44 59 20 23 31 20 3B 49 4E 44 49 52 45 43 |.LDY #1 ;INDIREC|
00001F60: 54 20 49 4E 44 45 58 00 84 27 7A 0A 4C 44 41 20 |T INDEX..'z.LDA |
00001F70: 28 24 31 34 29 2C 59 20 3B A1 20 48 49 47 48 20 |($14),Y ;. HIGH |
00001F80: 42 59 54 45 00 8C 27 7C 0A 50 48 41 00 A3 27 7E |BYTE..'|.PHA..'~|
00001F90: 0A 44 45 59 20 3B 44 45 43 8F 45 4E 54 20 49 4E |.DEY ;DEC.ENT IN|
00001FA0: 44 45 58 00 BF 27 80 0A 4C 44 41 20 28 24 31 34 |DEX..'..LDA ($14|
00001FB0: 29 2C 59 20 3B A1 20 4C 4F 57 20 42 59 54 45 00 |),Y ;. LOW BYTE.|
00001FC0: C7 27 82 0A 54 41 59 00 CF 27 84 0A 50 4C 41 00 |.'..TAY..'..PLA.|
00001FD0: E9 27 86 0A 4A 4D 50 20 55 53 46 50 20 3B 43 91 |.'..JMP USFP ;C.|
00001FE0: 56 45 52 54 20 A4 20 46 50 00 EF 27 88 0A 3B 00 |VERT . FP..'..;.|
00001FF0: 08 28 8A 0A 42 53 45 20 4A 53 52 20 42 50 52 45 |.(..BSE JSR BPRE|
00002000: 50 20 3B 53 45 54 55 50 00 27 28 8C 0A B0 41 20 |P ;SETUP.'(...A |
00002010: 28 24 31 34 29 2C 59 20 3B 53 45 54 20 4D 41 53 |($14),Y ;SET MAS|
00002020: 4B 45 44 20 42 49 54 00 3D 28 8E 0A 53 54 41 20 |KED BIT.=(..STA |
00002030: 28 24 31 34 29 2C 59 20 3B 53 A4 52 45 00 45 28 |($14),Y ;S.RE.E(|
00002040: 90 0A 52 54 53 00 4B 28 92 0A 3B 00 63 28 94 0A |..RTS.K(..;.c(..|
00002050: 42 9C 20 4A 53 52 20 42 50 52 45 50 20 3B 53 45 |B. JSR BPREP ;SE|
00002060: 54 55 50 00 7C 28 96 0A 45 B0 20 23 24 46 46 20 |TUP.|(..E. #$FF |
00002070: 3B 49 4E 56 45 52 54 20 4D 41 53 4B 00 9D 28 98 |;INVERT MASK..(.|
00002080: 0A AF 20 28 24 31 34 29 2C 59 20 3B 43 4C 45 41 |.. ($14),Y ;CLEA|
00002090: 52 20 4D 41 53 4B 45 44 20 42 49 54 53 00 B3 28 |R MASKED BITS..(|
000020A0: 9A 0A 53 54 41 20 28 24 31 34 29 2C 59 20 3B 53 |..STA ($14),Y ;S|
000020B0: A4 52 45 00 BB 28 9C 0A 52 54 53 00 C1 28 9E 0A |.RE..(..RTS..(..|
000020C0: 3B 00 DA 28 A0 0A 46 4C 49 20 4A 53 52 20 42 50 |;..(..FLI JSR BP|
000020D0: 52 45 50 20 3B 53 45 54 55 50 00 FB 28 A2 0A 45 |REP ;SETUP..(..E|
000020E0: B0 20 28 24 31 34 29 2C 59 20 3B 46 4C 49 50 20 |. ($14),Y ;FLIP |
000020F0: 4D 41 53 4B 45 44 20 42 49 54 53 00 11 29 A4 0A |MASKED BITS..)..|
00002100: 53 54 41 20 28 24 31 34 29 2C 59 20 3B 53 A4 52 |STA ($14),Y ;S.R|
00002110: 45 00 19 29 A6 0A 52 54 53 00 1F 29 A8 0A 3B 00 |E..)..RTS..)..;.|
00002120: 43 29 AA 0A 42 50 52 45 50 20 4A 53 52 20 24 42 |C)..BPREP JSR $B|
00002130: 37 45 42 20 3B 41 44 44 52 20 A4 20 24 31 34 AD |7EB ;ADDR . $14.|
00002140: 31 35 2C 00 55 29 AC 0A 54 58 41 20 3B C5 55 45 |15,.U)..TXA ;.UE|
00002150: 20 A4 20 2E 41 00 6F 29 AE 0A 4C 44 59 20 23 30 | . .A.o)..LDY #0|
00002160: 20 3B 53 45 54 20 49 4E 44 45 58 20 A4 20 30 00 | ;SET INDEX . 0.|
00002170: 77 29 B0 0A 52 54 53 00 7D 29 B2 0A 3B 00 9D 29 |w)..RTS.})..;..)|
00002180: B4 0A 47 52 44 20 4A 53 52 20 24 42 37 39 45 20 |..GRD JSR $B79E |
00002190: 3B A1 20 42 59 54 45 20 49 4E 20 2E 58 00 BE 29 |;. BYTE IN .X..)|
000021A0: B6 0A 53 54 58 20 24 44 30 32 31 20 3B 50 55 54 |..STX $D021 ;PUT|
000021B0: 20 49 4E 20 42 41 43 4B 47 52 4F 55 4E 44 00 C6 | IN BACKGROUND..|
000021C0: 29 B8 0A 52 54 53 00 CC 29 BA 0A 3B 00 ED 29 BC |)..RTS..)..;..).|
000021D0: 0A 46 52 41 4D 20 4A 53 52 20 24 42 37 39 45 20 |.FRAM JSR $B79E |
000021E0: 3B A1 20 42 59 54 45 20 49 4E 20 2E 58 00 09 2A |;. BYTE IN .X..*|
000021F0: BE 0A 53 54 58 20 24 44 30 32 30 20 3B 50 55 54 |..STX $D020 ;PUT|
00002200: 20 49 4E 20 42 B0 44 45 52 00 11 2A C0 0A 52 54 | IN B.DER..*..RT|
00002210: 53 00 17 2A C2 0A 3B 00 37 2A C4 0A 54 45 58 20 |S..*..;.7*..TEX |
00002220: 4A 53 52 20 24 42 37 39 45 20 3B A1 20 42 59 54 |JSR $B79E ;. BYT|
00002230: 45 20 49 4E 20 2E 58 00 3F 2A C6 0A 54 58 41 00 |E IN .X.?*..TXA.|
00002240: 5B 2A C8 0A AF 20 23 24 30 46 20 3B 50 55 54 20 |[*... #$0F ;PUT |
00002250: 4C 4F 57 20 42 59 54 45 20 49 4E 00 7C 2A CA 0A |LOW BYTE IN.|*..|
00002260: 53 54 41 20 24 32 38 36 20 3B 54 45 58 54 20 43 |STA $286 ;TEXT C|
00002270: 4F 4C B0 20 52 45 47 49 53 54 45 52 00 84 2A CC |OL. REGISTER..*.|
00002280: 0A 52 54 53 00 8A 2A CE 0A 3B 00 AC 2A D0 0A 43 |.RTS..*..;..*..C|
00002290: 46 49 4C 4C 20 4A 53 52 20 24 42 37 39 45 20 3B |FILL JSR $B79E ;|
000022A0: A1 20 42 59 54 45 20 49 4E 20 2E 58 00 B4 2A D2 |. BYTE IN .X..*.|
000022B0: 0A 54 58 41 00 BF 2A D4 0A 4C 44 59 20 23 30 00 |.TXA..*..LDY #0.|
000022C0: DE 2A D6 0A 43 46 31 20 53 54 41 20 24 44 38 30 |.*..CF1 STA $D80|
000022D0: 30 2C 59 20 3B 46 49 4C 4C 20 43 4F 4C B0 00 F5 |0,Y ;FILL COL...|
000022E0: 2A D8 0A 53 54 41 20 24 44 39 30 30 2C 59 20 3B |*..STA $D900,Y ;|
000022F0: 4D 45 4D B0 59 00 05 2B DA 0A 53 54 41 20 24 44 |MEM.Y..+..STA $D|
00002300: 41 30 30 2C 59 00 15 2B DC 0A 53 54 41 20 24 44 |A00,Y..+..STA $D|
00002310: 42 30 30 2C 59 00 1D 2B DE 0A 49 4E 59 00 29 2B |B00,Y..+..INY.)+|
00002320: E0 0A 42 4E 45 20 43 46 31 00 31 2B E2 0A 52 54 |..BNE CF1.1+..RT|
00002330: 53 00 37 2B E4 0A 3B 00 5A 2B E6 0A 43 4C 45 41 |S.7+..;.Z+..CLEA|
00002340: 20 42 4E 45 20 43 4C 45 31 20 3B 8B 20 4E 4F 20 | BNE CLE1 ;. NO |
00002350: 50 41 52 41 4D 45 54 45 52 53 00 77 2B E8 0A 4A |PARAMETERS.w+..J|
00002360: 4D 50 20 24 45 35 34 34 20 3B 4A 55 53 54 20 9C |MP $E544 ;JUST .|
00002370: 20 53 43 52 45 45 4E 00 94 2B EA 0A 43 4C 45 31 | SCREEN..+..CLE1|
00002380: 20 4A 53 52 20 24 42 37 39 45 20 3B A1 20 41 20 | JSR $B79E ;. A |
00002390: 42 59 54 45 00 AD 2B EC 0A 53 54 58 20 24 31 34 |BYTE..+..STX $14|
000023A0: 20 3B 43 48 45 43 4B 20 52 41 4E 47 45 00 BA 2B | ;CHECK RANGE..+|
000023B0: EE 0A 43 50 58 20 23 24 31 39 00 C7 2B F0 0A 42 |..CPX #$19..+..B|
000023C0: 43 53 20 43 4C 45 35 00 E0 2B F2 0A 4A 53 52 20 |CS CLE5..+..JSR |
000023D0: 24 37 39 20 3B 42 52 41 4E 43 48 20 8B 20 4E 4F |$79 ;BRANCH . NO|
000023E0: 00 FC 2B F4 0A 42 45 51 20 43 4C 45 33 20 3B 32 |..+..BEQ CLE3 ;2|
000023F0: 4E 44 20 50 41 52 41 4D 45 54 45 52 00 19 2C F6 |ND PARAMETER..,.|
00002400: 0A 4A 53 52 20 24 41 45 46 44 20 3B 43 48 45 43 |.JSR $AEFD ;CHEC|
00002410: 4B 20 81 20 43 4F 4D 4D 41 00 3C 2C F8 0A 4A 53 |K . COMMA.<,..JS|
00002420: 52 20 24 42 37 39 45 20 3B 42 45 54 20 53 45 43 |R $B79E ;BET SEC|
00002430: 91 44 20 50 41 52 41 4D 45 54 45 52 00 5A 2C FA |.D PARAMETER.Z,.|
00002440: 0A 43 4C 45 32 20 43 50 58 20 24 31 34 20 3B 45 |.CLE2 CPX $14 ;E|
00002450: 58 49 54 20 8B 20 4C 45 53 53 00 76 2C FC 0A 42 |XIT . LESS.v,..B|
00002460: 43 43 20 43 4C 45 34 20 3B 54 48 41 4E 20 46 49 |CC CLE4 ;THAN FI|
00002470: 52 53 54 20 91 45 00 90 2C FE 0A 43 50 58 20 23 |RST .E..,..CPX #|
00002480: 24 31 39 20 3B 43 48 45 43 4B 20 52 41 4E 47 45 |$19 ;CHECK RANGE|
00002490: 00 9D 2C 00 0B 42 43 53 20 43 4C 45 35 00 AB 2C |..,..BCS CLE5..,|
000024A0: 02 0B 2E 42 59 54 45 20 24 32 43 00 CF 2C 04 0B |...BYTE $2C..,..|
000024B0: 43 4C 45 33 20 4C 44 58 20 23 24 31 38 20 3B 96 |CLE3 LDX #$18 ;.|
000024C0: 41 55 4C 54 20 32 4E 44 20 50 41 52 41 4D 2E 00 |AULT 2ND PARAM..|
000024D0: EB 2C 06 0B 4A 53 52 20 24 45 39 46 46 20 3B 43 |.,..JSR $E9FF ;C|
000024E0: 4C 45 41 52 20 41 20 4C 49 4E 45 00 F3 2C 08 0B |LEAR A LINE..,..|
000024F0: 44 45 58 00 00 2D 0A 0B 42 50 4C 20 43 4C 45 32 |DEX..-..BPL CLE2|
00002500: 00 1C 2D 0C 0B 43 4C 45 34 20 4A 4D 50 20 24 45 |..-..CLE4 JMP $E|
00002510: 35 36 43 20 3B 8C 20 43 55 52 53 B0 00 41 2D 0E |56C ;. CURS..A-.|
00002520: 0B 43 4C 45 35 20 4A 4D 50 20 24 42 32 34 38 20 |.CLE5 JMP $B248 |
00002530: 3B 49 4C 4C 45 47 41 4C 20 51 55 41 4E 54 49 54 |;ILLEGAL QUANTIT|
00002540: 59 00 47 2D 10 0B 3B 00 67 2D 12 0B 43 48 45 43 |Y.G-..;.g-..CHEC|
00002550: 4B 20 53 45 43 20 3B 53 45 54 20 46 4C 41 47 20 |K SEC ;SET FLAG |
00002560: 27 43 48 45 43 4B 27 00 80 2D 14 0B 2E 42 59 54 |'CHECK'..-...BYT|
00002570: 45 20 24 32 34 20 3B 49 47 4E B0 45 20 43 4C 43 |E $24 ;IGN.E CLC|
00002580: 00 98 2D 16 0B 41 92 20 43 4C 43 20 3B 9C 20 46 |..-..A. CLC ;. F|
00002590: 4C 41 47 20 27 41 92 27 00 A8 2D 18 0B 50 48 50 |LAG 'A.'..-..PHP|
000025A0: 20 3B 94 20 46 4C 41 47 00 C6 2D 1A 0B 4A 53 52 | ;. FLAG..-..JSR|
000025B0: 20 24 41 45 46 34 20 3B 45 C5 55 41 54 45 20 53 | $AEF4 ;E.UATE S|
000025C0: 54 52 49 4E 47 2C 00 E3 2D 1C 0B 4A 53 52 20 24 |TRING,..-..JSR $|
000025D0: 42 36 41 33 20 3B 9C 20 44 45 53 43 52 20 53 54 |B6A3 ;. DESCR ST|
000025E0: 41 43 4B 00 FA 2D 1E 0B 53 54 41 20 54 33 20 3B |ACK..-..STA T3 ;|
000025F0: 94 20 53 54 52 20 C3 47 54 48 00 0A 2E 20 0B 50 |. STR .GTH... .P|
00002600: 4C 50 20 3B 94 20 46 4C 41 47 00 23 2E 22 0B 52 |LP ;. FLAG.#.".R|
00002610: B0 20 54 34 20 3B 4D 49 4E 55 53 B2 27 43 48 45 |. T4 ;MINUS.'CHE|
00002620: 43 4B 27 00 45 2E 24 0B 41 57 31 20 4A 53 52 20 |CK'.E.$.AW1 JSR |
00002630: A1 54 45 52 20 3B 54 45 53 54 20 4B 45 59 20 42 |.TER ;TEST KEY B|
00002640: 55 46 46 45 52 00 5B 2E 26 0B 42 49 54 20 54 34 |UFFER.[.&.BIT T4|
00002650: 20 3B 54 45 53 54 20 46 4C 41 47 00 77 2E 28 0B | ;TEST FLAG.w.(.|
00002660: 42 4D 49 20 41 57 32 20 3B 53 4B 49 50 20 8B 20 |BMI AW2 ;SKIP . |
00002670: 27 43 48 45 43 4B 27 00 8C 2E 2A 0B 54 41 59 20 |'CHECK'...*.TAY |
00002680: 3B 54 52 59 20 41 47 41 49 4E 20 8B 00 A6 2E 2C |;TRY AGAIN ....,|
00002690: 0B 42 45 51 20 41 57 31 20 3B 42 55 46 46 45 52 |.BEQ AW1 ;BUFFER|
000026A0: 20 45 4D 50 54 59 00 C9 2E 2E 0B 41 57 32 20 4C | EMPTY.....AW2 L|
000026B0: 44 59 20 23 24 46 46 20 3B 49 4E 49 54 49 41 4C |DY #$FF ;INITIAL|
000026C0: 49 5A 45 20 49 4E 44 45 58 00 E1 2E 30 0B 41 57 |IZE INDEX...0.AW|
000026D0: 33 20 49 4E 59 20 3B 42 55 4D 50 20 49 4E 44 45 |3 INY ;BUMP INDE|
000026E0: 58 00 F6 2E 32 0B 43 50 59 20 54 33 20 3B 53 4B |X...2.CPY T3 ;SK|
000026F0: 49 50 20 8B 20 80 00 0D 2F 34 0B 42 45 51 20 41 |IP . .../4.BEQ A|
00002700: 57 34 20 3B 4F 46 20 53 54 52 49 4E 47 00 2B 2F |W4 ;OF STRING.+/|
00002710: 36 0B 43 4D 50 20 28 24 32 32 29 2C 59 20 3B 54 |6.CMP ($22),Y ;T|
00002720: 45 53 54 20 81 20 4D 41 54 43 48 00 37 2F 38 0B |EST . MATCH.7/8.|
00002730: 42 4E 45 20 41 57 33 00 43 2F 3A 0B 42 45 51 20 |BNE AW3.C/:.BEQ |
00002740: 41 57 35 00 5D 2F 3C 0B 41 57 34 20 42 49 54 20 |AW5.]/<.AW4 BIT |
00002750: 54 34 20 3B 54 45 53 54 20 46 4C 41 47 00 76 2F |T4 ;TEST FLAG.v/|
00002760: 3E 0B 42 50 4C 20 41 57 31 20 3B 4C 4F 4F 50 20 |>.BPL AW1 ;LOOP |
00002770: 8B 20 27 41 92 27 00 88 2F 40 0B 4C 44 59 20 23 |. 'A.'../@.LDY #|
00002780: 24 46 46 20 3B 8E 20 30 00 A3 2F 42 0B 41 57 35 |$FF ;. 0../B.AW5|
00002790: 20 49 4E 59 20 3B B9 27 4E 20 49 4E 20 53 54 52 | INY ;.'N IN STR|
000027A0: 49 4E 47 00 C2 2F 44 0B 4A 4D 50 20 24 42 33 41 |ING../D.JMP $B3A|
000027B0: 32 20 3B 2E 59 20 A4 20 46 50 20 49 4E 20 46 41 |2 ;.Y . FP IN FA|
000027C0: 43 31 00 C8 2F 46 0B 3B 00 E7 2F 48 0B A1 54 45 |C1../F.;../H..TE|
000027D0: 52 20 4A 53 52 20 24 41 38 32 43 20 3B 54 45 53 |R JSR $A82C ;TES|
000027E0: 54 20 90 20 4B 45 59 00 02 30 4A 0B 4A 4D 50 20 |T . KEY..0J.JMP |
000027F0: 24 45 31 32 34 20 3B 42 41 53 49 43 27 53 20 A1 |$E124 ;BASIC'S .|
00002800: 49 4E 00 08 30 4C 0B 3B 00 29 30 C6 0C 50 53 48 |IN..0L.;.)0..PSH|
00002810: 46 50 31 20 4C 44 41 20 23 33 20 3B 46 41 43 23 |FP1 LDA #3 ;FAC#|
00002820: 31 20 A4 20 53 54 41 43 4B 00 49 30 C8 0C 4A 53 |1 . STACK.I0..JS|
00002830: 52 20 24 41 33 46 42 20 3B 43 48 45 43 4B 20 53 |R $A3FB ;CHECK S|
00002840: 54 41 43 4B 20 52 4F 4F 4D 00 5B 30 CA 0C 50 4C |TACK ROOM.[0..PL|
00002850: 41 20 3B 94 20 8E 20 41 44 44 52 00 67 30 CC 0C |A ;. . ADDR.g0..|
00002860: 53 54 41 20 24 37 31 00 6F 30 CE 0C 50 4C 41 00 |STA $71.o0..PLA.|
00002870: 7B 30 D0 0C 53 54 41 20 24 37 32 00 9A 30 D2 0C |{0..STA $72..0..|
00002880: 4A 53 52 20 24 42 42 43 41 20 3B 46 41 43 23 31 |JSR $BBCA ;FAC#1|
00002890: 20 A4 20 24 35 37 AB 24 35 42 00 B2 30 D4 0C 4C | . $57.$5B..0..L|
000028A0: 44 58 20 23 30 20 3B 43 4C 45 41 52 20 49 4E 44 |DX #0 ;CLEAR IND|
000028B0: 45 58 00 D0 30 D6 0C 50 48 46 31 20 4C 44 41 20 |EX..0..PHF1 LDA |
000028C0: 24 35 37 2C 58 20 3B 43 4F 50 59 20 41 52 45 41 |$57,X ;COPY AREA|
000028D0: 00 E1 30 D8 0C 50 48 41 20 3B A4 20 53 54 41 43 |..0..PHA ;. STAC|
000028E0: 4B 00 E9 30 DA 0C 49 4E 58 00 F4 30 DC 0C 43 50 |K..0..INX..0..CP|
000028F0: 58 20 23 35 00 01 31 DE 0C 42 4E 45 20 50 48 46 |X #5..1..BNE PHF|
00002900: 31 00 17 31 E0 0C 50 48 46 32 20 4C 44 41 20 24 |1..1..PHF2 LDA $|
00002910: 37 32 20 3B 8C 20 8E 00 28 31 E2 0C 50 48 41 20 |72 ;. ..(1..PHA |
00002920: 3B 41 44 44 52 45 53 53 00 34 31 E4 0C 4C 44 41 |;ADDRESS.41..LDA|
00002930: 20 24 37 31 00 3C 31 E6 0C 50 48 41 00 44 31 E8 | $71.<1..PHA.D1.|
00002940: 0C 52 54 53 00 4A 31 EA 0C 3B 00 6A 31 EC 0C 50 |.RTS.J1..;.j1..P|
00002950: 55 4C 35 37 20 50 4C 41 20 3B 24 35 37 2E 2E 2E |UL57 PLA ;$57...|
00002960: 46 52 4F 4D 20 53 54 41 43 4B 00 83 31 EE 0C 53 |FROM STACK..1..S|
00002970: 54 41 20 24 37 31 20 3B 94 20 8E 20 41 44 44 52 |TA $71 ;. . ADDR|
00002980: 45 53 53 00 8B 31 F0 0C 50 4C 41 00 97 31 F2 0C |ESS..1..PLA..1..|
00002990: 53 54 41 20 24 37 32 00 B4 31 F4 0C 4C 44 58 20 |STA $72..1..LDX |
000029A0: 23 34 20 3B 49 4E 49 54 49 41 4C 49 5A 45 20 49 |#4 ;INITIALIZE I|
000029B0: 4E 44 45 58 00 CE 31 F6 0C 50 4C 35 37 20 50 4C |NDEX..1..PL57 PL|
000029C0: 41 20 3B 43 4F 50 59 20 A4 20 41 52 45 41 00 ED |A ;COPY . AREA..|
000029D0: 31 F8 0C 53 54 41 20 24 35 37 2C 58 20 3B 53 54 |1..STA $57,X ;ST|
000029E0: 41 52 54 49 4E 47 20 41 54 20 24 35 37 00 F5 31 |ARTING AT $57..1|
000029F0: FA 0C 44 45 58 00 02 32 FC 0C 42 50 4C 20 50 4C |..DEX..2..BPL PL|
00002A00: 35 37 00 1C 32 FE 0C 42 4D 49 20 50 48 46 32 20 |57..2..BMI PHF2 |
00002A10: 3B 8C 20 8E 20 41 44 44 52 45 53 53 00 22 32 00 |;. . ADDRESS."2.|
00002A20: 0D 3B 00 46 32 CA 0D 43 4F 4C 53 50 20 4A 53 52 |.;.F2..COLSP JSR|
00002A30: 20 43 48 53 31 20 3B A1 20 53 50 52 49 54 45 20 | CHS1 ;. SPRITE |
00002A40: 4E 55 4D 42 45 52 00 4E 32 CC 0D 54 58 41 00 5C |NUMBER.N2..TXA.\|
00002A50: 32 CE 0D 50 48 41 20 3B 94 20 49 54 00 79 32 D0 |2..PHA ;. IT.y2.|
00002A60: 0D 4A 53 52 20 24 42 37 46 31 20 3B 43 48 45 43 |.JSR $B7F1 ;CHEC|
00002A70: 4B 20 43 4F 4D 4D 41 20 AF 00 8B 32 D2 0D 50 4C |K COMMA ...2..PL|
00002A80: 41 20 3B A1 20 43 4F 4C 4F 55 52 00 A5 32 D4 0D |A ;. COLOUR..2..|
00002A90: 54 41 59 20 3B 53 50 52 49 54 45 23 20 49 53 20 |TAY ;SPRITE# IS |
00002AA0: 49 4E 44 45 58 00 AD 32 D6 0D 54 58 41 00 C7 32 |INDEX..2..TXA..2|
00002AB0: D8 0D 53 54 41 20 24 44 30 32 37 2C 59 20 3B 97 |..STA $D027,Y ;.|
00002AC0: 20 43 4F 4C 4F 55 52 00 CF 32 DA 0D 52 54 53 00 | COLOUR..2..RTS.|
00002AD0: D5 32 DC 0D 3B 00 F7 32 DE 0D 53 53 50 20 4A 53 |.2..;..2..SSP JS|
00002AE0: 52 20 43 48 53 31 20 3B A1 20 53 50 52 49 54 45 |R CHS1 ;. SPRITE|
00002AF0: 20 4E 55 4D 42 45 52 00 15 33 E0 0D 4C 44 41 20 | NUMBER..3..LDA |
00002B00: 50 4F 57 45 52 53 2C 58 20 3B 53 45 54 20 54 48 |POWERS,X ;SET TH|
00002B10: 45 20 42 49 54 00 33 33 E2 0D B0 41 20 24 44 30 |E BIT.33...A $D0|
00002B20: 31 35 20 3B B0 20 53 50 52 49 54 45 20 45 4E 41 |15 ;. SPRITE ENA|
00002B30: 42 4C 45 00 4F 33 E4 0D 42 4E 45 20 43 53 50 31 |BLE.O3..BNE CSP1|
00002B40: 20 3B 52 47 53 54 52 2C 20 54 55 52 4E 20 91 00 | ;RGSTR, TURN ..|
00002B50: 55 33 E6 0D 3B 00 77 33 E8 0D 43 53 50 20 4A 53 |U3..;.w3..CSP JS|
00002B60: 52 20 43 48 53 31 20 3B A1 20 53 50 52 49 54 45 |R CHS1 ;. SPRITE|
00002B70: 20 4E 55 4D 42 45 52 00 95 33 EA 0D 4C 44 41 20 | NUMBER..3..LDA |
00002B80: 50 4F 57 45 52 53 2C 58 20 3B 53 45 54 20 54 48 |POWERS,X ;SET TH|
00002B90: 45 20 42 49 54 00 AE 33 EC 0D 45 B0 20 23 24 46 |E BIT..3..E. #$F|
00002BA0: 46 20 3B 4D 41 53 4B 20 49 54 20 4F 55 54 00 CB |F ;MASK IT OUT..|
00002BB0: 33 EE 0D AF 20 24 44 30 31 35 20 3B AF 20 53 50 |3... $D015 ;. SP|
00002BC0: 52 49 54 45 20 45 4E 41 42 4C 45 00 EF 33 F0 0D |RITE ENABLE..3..|
00002BD0: 43 53 50 31 20 53 54 41 20 24 44 30 31 35 20 3B |CSP1 STA $D015 ;|
00002BE0: 52 47 53 54 52 2C 20 54 55 52 4E 20 4F 46 46 00 |RGSTR, TURN OFF.|
00002BF0: F7 33 F2 0D 52 54 53 00 FD 33 F4 0D 3B 00 1F 34 |.3..RTS..3..;..4|
00002C00: F6 0D 58 53 50 20 4A 53 52 20 43 48 53 31 20 3B |..XSP JSR CHS1 ;|
00002C10: A1 20 53 50 52 49 54 45 20 4E 55 4D 42 45 52 00 |. SPRITE NUMBER.|
00002C20: 30 34 F8 0D 53 54 58 20 54 33 20 3B 94 20 49 54 |04..STX T3 ;. IT|
00002C30: 00 47 34 FA 0D 4A 53 52 20 24 41 45 46 44 20 3B |.G4..JSR $AEFD ;|
00002C40: A1 20 43 4F 4D 4D 41 00 60 34 FC 0D 4A 53 52 20 |. COMMA.`4..JSR |
00002C50: 24 41 44 38 41 20 3B A1 20 58 20 B9 49 54 49 91 |$AD8A ;. X .ITI.|
00002C60: 00 7B 34 FE 0D 4A 53 52 20 24 42 37 46 37 20 3B |.{4..JSR $B7F7 ;|
00002C70: 43 91 56 20 A4 20 B5 45 47 45 52 00 94 34 00 0E |C.V . .EGER..4..|
00002C80: 4C 44 41 20 24 31 35 20 3B A1 20 48 49 47 48 20 |LDA $15 ;. HIGH |
00002C90: 42 59 54 45 00 A9 34 02 0E 43 4D 50 20 23 32 20 |BYTE..4..CMP #2 |
00002CA0: 3B 42 52 41 4E 43 48 20 8B 00 BE 34 04 0E 42 43 |;BRANCH ...4..BC|
00002CB0: 53 20 58 53 33 20 3B A4 4F 20 48 49 47 48 00 DA |S XS3 ;.O HIGH..|
00002CC0: 34 06 0E 4C 44 58 20 54 33 20 3B A1 20 53 50 52 |4..LDX T3 ;. SPR|
00002CD0: 49 54 45 20 4E 55 4D 42 45 52 00 F3 34 08 0E 52 |ITE NUMBER..4..R|
00002CE0: B0 20 3B 50 55 54 20 4D 53 42 20 49 4E 20 43 41 |. ;PUT MSB IN CA|
00002CF0: 52 52 59 00 11 35 0A 0E 4C 44 41 20 50 4F 57 45 |RRY..5..LDA POWE|
00002D00: 52 53 2C 58 20 3B 53 45 54 20 54 48 45 20 42 49 |RS,X ;SET THE BI|
00002D10: 54 00 2D 35 0C 0E 42 43 43 20 58 53 31 20 3B 42 |T.-5..BCC XS1 ;B|
00002D20: 52 41 4E 43 48 20 91 20 30 20 4D 53 42 00 4A 35 |RANCH . 0 MSB.J5|
00002D30: 0E 0E B0 41 20 24 44 30 31 30 20 3B B0 20 4D 53 |...A $D010 ;. MS|
00002D40: 42 20 52 45 47 49 53 54 45 52 00 5C 35 10 0E 42 |B REGISTER.\5..B|
00002D50: 43 53 20 58 53 32 20 3B 53 4B 49 50 00 7A 35 12 |CS XS2 ;SKIP.z5.|
00002D60: 0E 58 53 31 20 45 B0 20 23 24 46 46 20 3B 4D 41 |.XS1 E. #$FF ;MA|
00002D70: 53 4B 20 54 48 45 20 42 49 54 00 95 35 14 0E AF |SK THE BIT..5...|
00002D80: 20 24 44 30 31 30 20 3B 43 4C 45 41 52 20 54 48 | $D010 ;CLEAR TH|
00002D90: 45 20 42 49 54 00 A8 35 16 0E 58 53 32 20 54 41 |E BIT..5..XS2 TA|
00002DA0: 59 20 3B 94 20 4D 53 42 00 BF 35 18 0E 54 58 41 |Y ;. MSB..5..TXA|
00002DB0: 20 3B 53 50 52 49 54 45 20 4E 55 4D 42 45 52 00 | ;SPRITE NUMBER.|
00002DC0: D2 35 1A 0E 41 53 4C 20 3B 44 4F 55 42 4C 45 20 |.5..ASL ;DOUBLE |
00002DD0: 49 54 00 E8 35 1C 0E 54 41 58 20 3B 55 53 45 20 |IT..5..TAX ;USE |
00002DE0: 41 53 20 49 4E 44 45 58 00 02 36 1E 0E 4C 44 41 |AS INDEX..6..LDA|
00002DF0: 20 24 31 34 20 3B A1 20 58 20 4C 4F 57 20 42 59 | $14 ;. X LOW BY|
00002E00: 54 45 00 1B 36 20 0E 4A 53 52 20 52 C6 48 4B 20 |TE..6 .JSR R.HK |
00002E10: 3B 92 20 81 20 52 41 53 54 45 52 00 34 36 22 0E |;. . RASTER.46".|
00002E20: 53 54 59 20 24 44 30 31 30 20 3B 57 52 49 54 45 |STY $D010 ;WRITE|
00002E30: 20 4D 53 42 00 54 36 24 0E 53 54 41 20 24 44 30 | MSB.T6$.STA $D0|
00002E40: 30 30 2C 58 20 3B 57 52 49 54 45 20 4C 4F 57 20 |00,X ;WRITE LOW |
00002E50: 42 59 54 45 00 5C 36 26 0E 52 54 53 00 80 36 28 |BYTE.\6&.RTS..6(|
00002E60: 0E 58 53 33 20 4A 4D 50 20 24 42 32 34 38 20 3B |.XS3 JMP $B248 ;|
00002E70: 49 4C 4C 45 47 41 4C 20 51 55 41 4E 54 49 54 59 |ILLEGAL QUANTITY|
00002E80: 00 86 36 2A 0E 3B 00 A8 36 2C 0E 59 53 50 20 4A |..6*.;..6,.YSP J|
00002E90: 53 52 20 43 48 53 31 20 3B A1 20 53 50 52 49 54 |SR CHS1 ;. SPRIT|
00002EA0: 45 20 4E 55 4D 42 45 52 00 BF 36 2E 0E 59 53 31 |E NUMBER..6..YS1|
00002EB0: 20 54 58 41 20 3B 44 4F 55 42 4C 45 20 49 54 00 | TXA ;DOUBLE IT.|
00002EC0: C7 36 30 0E 41 53 4C 00 DD 36 32 0E 50 48 41 20 |.60.ASL..62.PHA |
00002ED0: 3B 53 45 54 20 49 54 20 41 53 49 44 45 00 FB 36 |;SET IT ASIDE..6|
00002EE0: 34 0E 4A 53 52 20 24 42 37 46 31 20 3B 43 4F 4D |4.JSR $B7F1 ;COM|
00002EF0: 4D 41 2C 20 59 AB B9 49 54 49 91 00 11 37 36 0E |MA, Y..ITI...76.|
00002F00: 54 58 41 20 3B 4D 4F 56 45 20 49 54 20 A4 20 2E |TXA ;MOVE IT . .|
00002F10: 59 00 19 37 38 0E 54 41 59 00 30 37 3A 0E 50 4C |Y..78.TAY.07:.PL|
00002F20: 41 20 3B A1 20 32 AC 28 53 50 52 49 54 45 23 29 |A ;. 2.(SPRITE#)|
00002F30: 00 46 37 3C 0E 54 41 58 20 3B 55 53 45 20 41 53 |.F7<.TAX ;USE AS|
00002F40: 20 49 4E 44 45 58 00 57 37 3E 0E 54 59 41 20 3B | INDEX.W7>.TYA ;|
00002F50: 59 AB B9 49 54 49 91 00 70 37 40 0E 4A 53 52 20 |Y..ITI..p7@.JSR |
00002F60: 52 C6 48 4B 20 3B 92 20 81 20 52 41 53 54 45 52 |R.HK ;. . RASTER|
00002F70: 00 8D 37 42 0E 53 54 41 20 24 44 30 30 31 2C 58 |..7B.STA $D001,X|
00002F80: 20 3B 57 52 49 54 45 20 B9 49 54 49 91 00 95 37 | ;WRITE .ITI...7|
00002F90: 44 0E 52 54 53 00 9B 37 46 0E 3B 00 BB 37 48 0E |D.RTS..7F.;..7H.|
00002FA0: 58 59 53 50 20 4A 53 52 20 58 53 50 20 3B 57 52 |XYSP JSR XSP ;WR|
00002FB0: 49 54 45 20 58 AB B9 49 54 49 91 00 D7 37 4A 0E |ITE X..ITI...7J.|
00002FC0: 4C 44 58 20 54 33 20 3B A1 20 53 50 52 49 54 45 |LDX T3 ;. SPRITE|
00002FD0: 20 4E 55 4D 42 45 52 00 F2 37 4C 0E 42 50 4C 20 | NUMBER..7L.BPL |
00002FE0: 59 53 31 20 3B 57 52 49 54 45 20 59 AB B9 49 54 |YS1 ;WRITE Y..IT|
00002FF0: 49 91 00 F8 37 4E 0E 3B 00 1A 38 50 0E 43 48 4B |I...7N.;..8P.CHK|
00003000: 53 50 52 20 4A 53 52 20 24 37 33 20 3B 42 55 4D |SPR JSR $73 ;BUM|
00003010: 50 20 43 48 52 A1 20 50 54 52 00 3E 38 52 0E 43 |P CHR. PTR.>8R.C|
00003020: 48 53 31 20 4A 53 52 20 24 42 37 39 45 20 3B A1 |HS1 JSR $B79E ;.|
00003030: 20 53 50 52 49 54 45 20 4E 55 4D 42 45 52 00 5A | SPRITE NUMBER.Z|
00003040: 38 54 0E 43 50 58 20 23 38 20 3B 4D 55 53 54 20 |8T.CPX #8 ;MUST |
00003050: 42 45 20 55 4E 44 45 52 20 38 00 66 38 56 0E 42 |BE UNDER 8.f8V.B|
00003060: 43 53 20 58 53 33 00 6E 38 58 0E 52 54 53 00 74 |CS XS3.n8X.RTS.t|
00003070: 38 5A 0E 3B 00 92 38 5C 0E 52 C6 48 4B 20 50 48 |8Z.;..8\.R.HK PH|
00003080: 41 20 3B 53 A4 52 45 20 41 43 43 55 4D 55 4C 41 |A ;S.RE ACCUMULA|
00003090: A4 52 00 B4 38 5E 0E 52 41 53 31 20 4C 44 41 20 |.R..8^.RAS1 LDA |
000030A0: 24 44 30 31 32 20 3B 87 20 52 41 53 54 45 52 20 |$D012 ;. RASTER |
000030B0: 4C 49 4E 45 00 D7 38 60 0E 53 42 43 20 24 44 30 |LINE..8`.SBC $D0|
000030C0: 30 31 2C 58 20 3B 53 55 42 54 52 41 43 54 20 53 |01,X ;SUBTRACT S|
000030D0: 50 52 49 54 45 AB 59 00 E4 38 62 0E 42 43 43 20 |PRITE.Y..8b.BCC |
000030E0: 52 41 53 32 00 F9 38 64 0E 43 4D 50 20 23 24 32 |RAS2..8d.CMP #$2|
000030F0: 42 20 3B 92 20 54 49 4C 4C 00 17 39 66 0E 42 43 |B ;. TILL..9f.BC|
00003100: 43 20 52 41 53 31 20 3B 43 4C 45 41 52 20 4F 46 |C RAS1 ;CLEAR OF|
00003110: 20 53 50 52 49 54 45 00 24 39 68 0E 52 41 53 32 | SPRITE.$9h.RAS2|
00003120: 20 50 4C 41 00 2C 39 6A 0E 52 54 53 00 32 39 6C | PLA.,9j.RTS.29l|
00003130: 0E 3B 00 58 39 6E 0E 50 4F 57 45 52 53 20 2E 42 |.;.X9n.POWERS .B|
00003140: 59 54 45 20 31 2C 32 2C 34 2C 38 2C 31 36 2C 33 |YTE 1,2,4,8,16,3|
00003150: 32 2C 36 34 2C 31 32 38 00 5E 39 70 0E 3B 00 7D |2,64,128.^9p.;.}|
00003160: 39 72 0E 57 49 54 48 49 4E 20 4A 53 52 20 24 41 |9r.WITHIN JSR $A|
00003170: 44 38 41 20 3B 87 20 4E 55 4D 20 BD 52 00 9D 39 |D8A ;. NUM .R..9|
00003180: 74 0E 4A 53 52 20 43 4F 4D 54 53 54 20 3B 53 45 |t.JSR COMTST ;SE|
00003190: 43 20 8B 20 C5 32 20 57 49 54 48 49 4E 00 B2 39 |C . .2 WITHIN..9|
000031A0: 76 0E 50 48 50 20 3B 42 4F 55 4E 44 53 2C 20 AF |v.PHP ;BOUNDS, .|
000031B0: 20 94 00 C7 39 78 0E 4A 53 52 20 43 4F 4D 54 53 | ...9x.JSR COMTS|
000031C0: 54 20 3B 44 49 54 A4 00 E5 39 7A 0E 42 43 43 20 |T ;DIT...9z.BCC |
000031D0: 57 54 48 31 20 3B 27 46 41 4C 53 45 27 20 91 20 |WTH1 ;'FALSE' . |
000031E0: 43 4C 45 41 52 00 FB 39 7C 0E 50 4C 50 20 3B 52 |CLEAR..9|.PLP ;R|
000031F0: 45 43 4F 56 45 52 20 46 4C 41 47 00 12 3A 7E 0E |ECOVER FLAG..:~.|
00003200: 50 48 41 20 3B 44 45 43 20 53 54 41 43 4B 20 50 |PHA ;DEC STACK P|
00003210: 54 52 00 30 3A 80 0E 42 43 43 20 57 54 48 31 20 |TR.0:..BCC WTH1 |
00003220: 3B 27 46 41 4C 53 45 27 20 91 20 43 4C 45 41 52 |;'FALSE' . CLEAR|
00003230: 00 48 3A 82 0E 4C 44 41 20 23 24 46 46 20 3B AB |.H:..LDA #$FF ;.|
00003240: 31 B2 27 54 52 55 45 27 00 68 3A 84 0E 2E 42 59 |1.'TRUE'.h:...BY|
00003250: 54 45 20 24 32 43 20 3B 27 42 49 54 27 20 A4 20 |TE $2C ;'BIT' . |
00003260: 48 49 44 45 20 4C 44 41 00 83 3A 86 0E 57 54 48 |HIDE LDA..:..WTH|
00003270: 31 20 4C 44 41 20 23 30 20 3B 30 B2 27 46 41 4C |1 LDA #0 ;0.'FAL|
00003280: 53 45 27 00 A3 3A 88 0E 4A 53 52 20 24 42 43 33 |SE'..:..JSR $BC3|
00003290: 43 20 3B 43 91 56 45 52 54 20 53 49 47 48 20 A4 |C ;C.VERT SIGH .|
000032A0: 20 46 50 00 BA 3A 8A 0E 50 4C 41 20 3B 49 4E 43 | FP..:..PLA ;INC|
000032B0: 20 53 54 41 43 4B 20 50 54 52 00 D8 3A 8C 0E 4A | STACK PTR..:..J|
000032C0: 4D 50 20 24 41 45 46 37 20 3B 53 4B 49 50 20 A0 |MP $AEF7 ;SKIP .|
000032D0: 20 42 52 41 43 4B 45 54 00 DE 3A 8E 0E 3B 00 03 | BRACKET..:..;..|
000032E0: 3B 90 0E 43 4F 4D 54 53 54 20 4A 53 52 20 50 53 |;..COMTST JSR PS|
000032F0: 48 46 50 31 20 3B 46 41 43 23 31 20 A4 20 53 54 |HFP1 ;FAC#1 . ST|
00003300: 41 43 4B 00 1D 3B 92 0E 4A 53 52 20 24 37 39 20 |ACK..;..JSR $79 |
00003310: 3B 52 45 87 20 53 45 50 41 52 41 A4 52 00 2D 3B |;RE. SEPARA.R.-;|
00003320: 94 0E 50 48 41 20 3B AF 20 94 20 49 54 00 4A 3B |..PHA ;. . IT.J;|
00003330: 96 0E 4A 53 52 20 24 37 33 20 3B 42 55 4D 50 20 |..JSR $73 ;BUMP |
00003340: 43 48 52 A1 20 50 4F B5 45 52 00 62 3B 98 0E 4A |CHR. PO.ER.b;..J|
00003350: 53 52 20 24 41 44 38 41 20 3B 87 20 4E 55 4D 20 |SR $AD8A ;. NUM |
00003360: BD 52 00 7A 3B 9A 0E 50 4C 41 20 3B 43 48 45 43 |.R.z;..PLA ;CHEC|
00003370: 4B 20 53 45 50 41 52 41 A4 52 00 98 3B 9C 0E 43 |K SEPARA.R..;..C|
00003380: 4D 50 20 23 22 2C 22 20 3B 43 4F 4D 4D 41 20 28 |MP #"," ;COMMA (|
00003390: B3 29 20 49 53 20 4F 4B 00 A4 3B 9E 0E 42 45 51 |.) IS OK..;..BEQ|
000033A0: 20 43 54 31 00 C6 3B A0 0E 43 4D 50 20 23 22 3B | CT1..;..CMP #";|
000033B0: 22 20 3B 53 45 4D 49 43 4F 4C 91 20 28 B3 B2 29 |" ;SEMICOL. (..)|
000033C0: 20 49 53 20 4F 4B 00 E9 3B A2 0E 42 4E 45 20 43 | IS OK..;..BNE C|
000033D0: 54 34 20 3B 41 4E 59 54 48 49 4E 47 20 45 4C 53 |T4 ;ANYTHING ELS|
000033E0: 45 20 49 53 20 57 52 91 47 00 03 3C A4 0E 43 4C |E IS WR.G..<..CL|
000033F0: 43 20 3B 43 4C 45 41 52 20 81 20 53 45 4D 49 43 |C ;CLEAR . SEMIC|
00003400: 4F 4C 91 00 23 3C A6 0E 2E 42 59 54 45 20 24 32 |OL..#<...BYTE $2|
00003410: 34 20 3B 27 42 49 54 27 20 A4 20 48 49 44 45 20 |4 ;'BIT' . HIDE |
00003420: 53 45 43 00 3C 3C A8 0E 43 54 31 20 53 45 43 20 |SEC.<<..CT1 SEC |
00003430: 3B 53 45 54 20 81 20 43 4F 4D 4D 41 00 5A 3C AA |;SET . COMMA.Z<.|
00003440: 0E 52 B0 20 54 33 20 3B 94 20 46 4C 41 47 20 41 |.R. T3 ;. FLAG A|
00003450: 53 20 48 49 47 48 20 42 49 54 00 7A 3C AC 0E 4A |S HIGH BIT.z<..J|
00003460: 53 52 20 50 55 4C 35 37 20 3B 53 54 41 43 4B 20 |SR PUL57 ;STACK |
00003470: A4 20 24 35 37 20 41 52 45 41 00 9E 3C AE 0E 4C |. $57 AREA..<..L|
00003480: 44 41 20 23 24 35 37 20 3B 43 4F 4D 50 41 52 45 |DA #$57 ;COMPARE|
00003490: 20 41 52 45 41 20 57 49 54 48 20 46 41 43 00 A9 | AREA WITH FAC..|
000034A0: 3C B0 0E 4C 44 59 20 23 30 00 B7 3C B2 0E 4A 53 |<..LDY #0..<..JS|
000034B0: 52 20 24 42 43 35 42 00 D1 3C B4 0E 42 4D 49 20 |R $BC5B..<..BMI |
000034C0: 43 54 33 20 3B C5 31 B1 C5 32 2C 20 46 41 4C 53 |CT3 ;.1..2, FALS|
000034D0: 45 00 F0 3C B6 0E 42 49 54 20 54 33 20 3B 43 4F |E..<..BIT T3 ;CO|
000034E0: 4D 4D 41 20 8B 20 4E 20 46 4C 41 47 20 53 45 54 |MMA . N FLAG SET|
000034F0: 00 0A 3D B8 0E 42 50 4C 20 43 54 32 20 3B C5 31 |..=..BPL CT2 ;.1|
00003500: B3 B2 C5 32 2C 20 54 52 55 45 00 12 3D BA 0E 54 |...2, TRUE..=..T|
00003510: 41 58 00 2C 3D BC 0E 42 45 51 20 43 54 33 20 3B |AX.,=..BEQ CT3 ;|
00003520: C5 31 B2 C5 32 2C 20 46 41 4C 53 45 00 40 3D BE |.1..2, FALSE.@=.|
00003530: 0E 43 54 32 20 53 45 43 20 3B 8E 20 54 52 55 45 |.CT2 SEC ;. TRUE|
00003540: 00 48 3D C0 0E 52 54 53 00 5D 3D C2 0E 43 54 33 |.H=..RTS.]=..CT3|
00003550: 20 43 4C 43 20 3B 8E 20 46 41 4C 53 45 00 65 3D | CLC ;. FALSE.e=|
00003560: C4 0E 52 54 53 00 84 3D C6 0E 43 54 34 20 4A 4D |..RTS..=..CT4 JM|
00003570: 50 20 24 41 46 30 38 20 3B 53 59 4E 54 41 58 20 |P $AF08 ;SYNTAX |
00003580: 45 52 52 B0 00 8A 3D C8 0E 3B 00 AD 3D CA 0E 58 |ERR...=..;..=..X|
00003590: 4C 4F 43 20 4A 53 52 20 43 48 53 31 20 3B A1 20 |LOC JSR CHS1 ;. |
000035A0: 53 50 52 49 54 45 20 4E 55 4D 42 45 52 00 C9 3D |SPRITE NUMBER..=|
000035B0: CC 0E 4A 53 52 20 24 41 45 46 37 20 3B 53 4B 49 |..JSR $AEF7 ;SKI|
000035C0: 50 20 42 52 41 43 4B 45 54 00 E2 3D CE 0E 54 58 |P BRACKET..=..TX|
000035D0: 41 20 3B 44 4F 55 42 4C 45 20 53 50 52 49 54 45 |A ;DOUBLE SPRITE|
000035E0: 20 23 00 EA 3D D0 0E 41 53 4C 00 00 3E D2 0E 54 | #..=..ASL..>..T|
000035F0: 41 59 20 3B 55 53 45 20 41 53 20 49 4E 44 45 58 |AY ;USE AS INDEX|
00003600: 00 1E 3E D4 0E 4C 44 41 20 24 44 30 30 30 2C 59 |..>..LDA $D000,Y|
00003610: 20 3B A1 20 58 20 4C 4F 57 20 42 59 54 45 00 28 | ;. X LOW BYTE.(|
00003620: 3E D6 0E 54 41 59 20 3B 00 3B 3E D8 0E 4C 44 41 |>..TAY ;.;>..LDA|
00003630: 20 50 4F 57 45 52 53 2C 58 20 3B 00 4E 3E DA 0E | POWERS,X ;.N>..|
00003640: AF 20 24 44 30 31 30 20 3B A1 20 4D 53 42 00 6B |. $D010 ;. MSB.k|
00003650: 3E DC 0E 42 45 51 20 58 4C 31 20 3B 5A 45 52 4F |>..BEQ XL1 ;ZERO|
00003660: 2C 20 4D 53 42 20 43 4C 45 41 52 00 88 3E DE 0E |, MSB CLEAR..>..|
00003670: 4C 44 41 20 23 31 20 3B 4E 91 AB 5A 45 52 4F 2C |LDA #1 ;N..ZERO,|
00003680: 20 4D 42 53 20 53 45 54 00 A9 3E E0 0E 58 4C 31 | MBS SET..>..XL1|
00003690: 20 4A 4D 50 20 24 42 33 39 31 20 3B 2E 41 AD 2E | JMP $B391 ;.A..|
000036A0: 59 20 A4 20 46 41 43 23 31 00 AF 3E E2 0E 3B 00 |Y . FAC#1..>..;.|
000036B0: D2 3E E4 0E 59 4C 4F 43 20 4A 53 52 20 43 48 53 |.>..YLOC JSR CHS|
000036C0: 31 20 3B A1 20 53 50 52 49 54 45 20 4E 55 4D 42 |1 ;. SPRITE NUMB|
000036D0: 45 52 00 EE 3E E6 0E 4A 53 52 20 24 41 45 46 37 |ER..>..JSR $AEF7|
000036E0: 20 3B 53 4B 49 50 20 42 52 41 43 4B 45 54 00 07 | ;SKIP BRACKET..|
000036F0: 3F E8 0E 54 58 41 20 3B 44 4F 55 42 4C 45 20 53 |?..TXA ;DOUBLE S|
00003700: 50 52 49 54 45 20 23 00 0F 3F EA 0E 41 53 4C 00 |PRITE #..?..ASL.|
00003710: 17 3F EC 0E 54 41 59 00 32 3F EE 0E 4C 44 41 20 |.?..TAY.2?..LDA |
00003720: 24 44 30 30 31 2C 59 20 3B A1 20 59 20 B9 49 54 |$D001,Y ;. Y .IT|
00003730: 49 91 00 3A 3F F0 0E 54 41 59 00 54 3F F2 0E 4A |I..:?..TAY.T?..J|
00003740: 4D 50 20 24 42 33 41 32 20 3B 2E 59 20 A4 20 46 |MP $B3A2 ;.Y . F|
00003750: 41 43 23 31 00 5A 3F F4 0E 3B 00 77 3F 7A 11 58 |AC#1.Z?..;.w?z.X|
00003760: 41 44 44 20 4A 53 52 20 24 41 44 39 45 20 3B A1 |ADD JSR $AD9E ;.|
00003770: 20 46 49 C3 41 4D 45 00 85 3F 7C 11 4A 53 52 20 | FI.AME..?|.JSR |
00003780: 24 42 36 41 33 00 98 3F 7E 11 53 54 41 20 54 33 |$B6A3..?~.STA T3|
00003790: 20 3B 94 20 C3 47 54 48 00 A0 3F 80 11 54 58 41 | ;. .GTH..?..TXA|
000037A0: 00 A8 3F 82 11 50 48 41 00 B0 3F 84 11 54 59 41 |..?..PHA..?..TYA|
000037B0: 00 B8 3F 86 11 50 48 41 00 C3 3F 88 11 4C 44 41 |..?..PHA..?..LDA|
000037C0: 20 54 33 00 E0 3F 8A 11 4A 53 52 20 24 42 34 37 | T3..?..JSR $B47|
000037D0: 44 20 3B 52 45 53 45 52 56 45 20 53 50 41 43 45 |D ;RESERVE SPACE|
000037E0: 00 E8 3F 8C 11 54 41 58 00 F4 3F 8E 11 42 4E 45 |..?..TAX..?..BNE|
000037F0: 20 58 41 31 00 1B 40 90 11 4A 4D 50 20 24 41 46 | XA1..@..JMP $AF|
00003800: 30 38 20 3B 4E 55 4C 4C 20 53 54 52 49 4E 47 20 |08 ;NULL STRING |
00003810: 53 59 4E 54 41 58 20 45 52 52 B0 00 38 40 92 11 |SYNTAX ERR..8@..|
00003820: 58 41 31 20 43 4C 43 20 3B 41 44 44 20 2C 50 20 |XA1 CLC ;ADD ,P |
00003830: A4 20 46 49 C3 41 4D 45 00 43 40 94 11 41 44 43 |. FI.AME.C@..ADC|
00003840: 20 23 32 00 4E 40 96 11 53 54 41 20 54 33 00 5C | #2.N@..STA T3.\|
00003850: 40 98 11 4A 53 52 20 24 42 34 37 44 00 64 40 9A |@..JSR $B47D.d@.|
00003860: 11 54 41 59 00 6C 40 9C 11 50 4C 41 00 78 40 9E |.TAY.l@..PLA.x@.|
00003870: 11 53 54 41 20 24 32 33 00 80 40 A0 11 50 4C 41 |.STA $23..@..PLA|
00003880: 00 8C 40 A2 11 53 54 41 20 24 32 32 00 94 40 A4 |..@..STA $22..@.|
00003890: 11 44 45 59 00 A1 40 A6 11 4C 44 41 20 23 22 50 |.DEY..@..LDA #"P|
000038A0: 22 00 B1 40 A8 11 53 54 41 20 28 24 36 32 29 2C |"..@..STA ($62),|
000038B0: 59 00 B9 40 AA 11 44 45 59 00 C6 40 AC 11 4C 44 |Y..@..DEY..@..LD|
000038C0: 41 20 23 22 2C 22 00 D6 40 AE 11 53 54 41 20 28 |A #","..@..STA (|
000038D0: 24 36 32 29 2C 59 00 E2 40 B0 11 58 41 32 20 44 |$62),Y..@..XA2 D|
000038E0: 45 59 00 EE 40 B2 11 42 4D 49 20 58 41 33 00 FE |EY..@..BMI XA3..|
000038F0: 40 B4 11 4C 44 41 20 28 24 32 32 29 2C 59 00 0E |@..LDA ($22),Y..|
00003900: 41 B6 11 53 54 41 20 28 24 36 32 29 2C 59 00 1A |A..STA ($62),Y..|
00003910: 41 B8 11 42 4E 45 20 58 41 32 00 3A 41 BA 11 58 |A..BNE XA2.:A..X|
00003920: 41 33 20 4C 44 41 20 54 33 20 3B 53 45 54 20 55 |A3 LDA T3 ;SET U|
00003930: 50 20 81 20 53 45 54 4E 41 4D 00 46 41 BC 11 4C |P . SETNAM.FA..L|
00003940: 44 58 20 24 36 32 00 52 41 BE 11 4C 44 59 20 24 |DX $62.RA..LDY $|
00003950: 36 33 00 61 41 C0 11 4A 53 52 20 53 45 54 4E 41 |63.aA..JSR SETNA|
00003960: 4D 00 76 41 C2 11 4A 53 52 20 24 37 39 20 3B 43 |M.vA..JSR $79 ;C|
00003970: 48 45 43 4B 20 81 00 91 41 C4 11 42 45 51 20 58 |HECK ...A..BEQ X|
00003980: 41 34 20 3B 44 45 56 49 43 45 20 4E 55 4D 42 45 |A4 ;DEVICE NUMBE|
00003990: 52 00 9F 41 C6 11 4A 53 52 20 24 41 45 46 44 00 |R..A..JSR $AEFD.|
000039A0: AD 41 C8 11 4A 53 52 20 24 42 37 39 45 00 BB 41 |.A..JSR $B79E..A|
000039B0: CA 11 2E 42 59 54 45 20 24 32 43 00 DA 41 CC 11 |...BYTE $2C..A..|
000039C0: 58 41 34 20 4C 44 58 20 23 38 20 3B 96 41 55 4C |XA4 LDX #8 ;.AUL|
000039D0: 54 20 44 45 56 49 43 45 20 38 00 F6 41 CE 11 4C |T DEVICE 8..A..L|
000039E0: 44 41 20 23 24 36 33 20 3B 46 49 4C 45 20 4E 55 |DA #$63 ;FILE NU|
000039F0: 4D 42 45 52 20 AF 00 10 42 D0 11 54 41 59 20 3B |MBER ...B..TAY ;|
00003A00: 53 45 43 91 44 41 52 59 20 41 44 44 52 20 39 39 |SEC.DARY ADDR 99|
00003A10: 00 1F 42 D2 11 4A 53 52 20 53 45 54 4C 46 53 00 |..B..JSR SETLFS.|
00003A20: 29 42 D4 11 4A 53 52 20 9F 00 36 42 D6 11 4C 44 |)B..JSR ..6B..LD|
00003A30: 58 20 23 24 36 33 00 4F 42 D8 11 4A 53 52 20 43 |X #$63.OB..JSR C|
00003A40: 48 4B 49 4E 20 3B 9F 20 43 48 41 4E 4E 45 4C 00 |HKIN ;. CHANNEL.|
00003A50: 6C 42 DA 11 4A 53 52 20 44 53 4B A1 20 3B 53 4B |lB..JSR DSK. ;SK|
00003A60: 49 50 20 93 20 41 44 44 52 45 53 53 00 79 42 DC |IP . ADDRESS.yB.|
00003A70: 11 4A 53 52 20 44 53 4B A1 00 99 42 DE 11 58 41 |.JSR DSK...B..XA|
00003A80: 35 20 4A 53 52 20 44 53 4B A1 20 3B 4C 49 4E 45 |5 JSR DSK. ;LINE|
00003A90: 20 4C 49 4E 4B 20 4C 4F 57 00 BA 42 E2 11 4A 53 | LINK LOW..B..JS|
00003AA0: 52 20 44 53 4B A1 20 3B 80 20 91 20 5A 45 52 4F |R DSK. ;. . ZERO|
00003AB0: 20 48 49 47 48 20 42 59 54 45 00 C6 42 E4 11 42 | HIGH BYTE..B..B|
00003AC0: 4E 45 20 58 41 37 00 E0 42 E6 11 4A 53 52 20 43 |NE XA7..B..JSR C|
00003AD0: 4C 53 9C 20 3B 57 52 41 59 20 55 50 20 49 AD 4F |LS. ;WRAY UP I.O|
00003AE0: 00 00 43 E8 11 4A 53 52 20 24 41 36 35 39 20 3B |..C..JSR $A659 ;|
00003AF0: 52 45 53 45 54 20 43 48 52 A1 20 50 54 52 2C 9C |RESET CHR. PTR,.|
00003B00: 00 15 43 EA 11 4A 4D 50 20 24 45 33 38 36 20 3B |..C..JMP $E386 ;|
00003B10: 27 87 59 2E 27 00 35 43 EE 11 58 41 37 20 4A 53 |'.Y.'.5C..XA7 JS|
00003B20: 52 20 44 53 4B A1 20 3B 94 20 4C 49 4E 45 20 4E |R DSK. ;. LINE N|
00003B30: 55 4D 42 45 52 00 41 43 F0 11 53 54 41 20 24 31 |UMBER.AC..STA $1|
00003B40: 34 00 4E 43 F2 11 4A 53 52 20 44 53 4B A1 00 5A |4.NC..JSR DSK..Z|
00003B50: 43 F4 11 53 54 41 20 24 31 35 00 65 43 F6 11 4C |C..STA $15.eC..L|
00003B60: 44 59 20 23 30 00 84 43 F8 11 58 41 38 20 4A 53 |DY #0..C..XA8 JS|
00003B70: 52 20 44 53 4B A1 20 3B 4D 4F 56 45 20 52 45 53 |R DSK. ;MOVE RES|
00003B80: 54 20 4F 46 00 9D 43 FA 11 53 54 41 20 24 32 30 |T OF..C..STA $20|
00003B90: 30 2C 59 20 3B 4C 49 4E 45 20 A4 20 85 00 B1 43 |0,Y ;LINE . ...C|
00003BA0: FC 11 42 45 51 20 58 41 39 20 3B 42 55 46 46 45 |..BEQ XA9 ;BUFFE|
00003BB0: 52 00 B9 43 FE 11 49 4E 59 00 C5 43 00 12 42 4E |R..C..INY..C..BN|
00003BC0: 45 20 58 41 38 00 DE 43 02 12 58 41 39 20 54 59 |E XA8..C..XA9 TY|
00003BD0: 41 20 3B 94 20 4C 49 4E 45 20 53 49 5A 45 00 E6 |A ;. LINE SIZE..|
00003BE0: 43 04 12 43 4C 43 00 F1 43 06 12 41 44 43 20 23 |C..CLC..C..ADC #|
00003BF0: 35 00 FD 43 08 12 53 54 41 20 24 30 42 00 1B 44 |5..C..STA $0B..D|
00003C00: 0A 12 4A 53 52 20 24 41 36 31 33 20 3B 53 45 41 |..JSR $A613 ;SEA|
00003C10: 52 43 48 20 81 20 4C 49 4E 45 23 00 38 44 0C 12 |RCH . LINE#.8D..|
00003C20: 42 43 43 20 58 41 31 33 20 3B 53 4B 49 50 20 8B |BCC XA13 ;SKIP .|
00003C30: 20 A8 20 46 4F 55 4E 44 00 43 44 0E 12 4C 44 59 | . FOUND.CD..LDY|
00003C40: 20 23 31 00 5E 44 10 12 4C 44 41 20 28 24 35 46 | #1.^D..LDA ($5F|
00003C50: 29 2C 59 20 3B 44 45 88 45 20 4C 49 4E 45 00 6A |),Y ;DE.E LINE.j|
00003C60: 44 12 12 53 54 41 20 24 32 33 00 76 44 14 12 4C |D..STA $23.vD..L|
00003C70: 44 41 20 24 32 44 00 82 44 16 12 53 54 41 20 24 |DA $2D..D..STA $|
00003C80: 32 32 00 8E 44 18 12 4C 44 41 20 24 36 30 00 9A |22..D..LDA $60..|
00003C90: 44 1A 12 53 54 41 20 24 32 35 00 A6 44 1C 12 4C |D..STA $25..D..L|
00003CA0: 44 41 20 24 35 46 00 AE 44 1E 12 44 45 59 00 BE |DA $5F..D..DEY..|
00003CB0: 44 20 12 53 42 43 20 28 24 35 46 29 2C 59 00 C6 |D .SBC ($5F),Y..|
00003CC0: 44 22 12 43 4C 43 00 D2 44 24 12 41 44 43 20 24 |D".CLC..D$.ADC $|
00003CD0: 32 44 00 DE 44 26 12 53 54 41 20 24 32 44 00 EA |2D..D&.STA $2D..|
00003CE0: 44 28 12 53 54 41 20 24 32 34 00 F6 44 2A 12 4C |D(.STA $24..D*.L|
00003CF0: 44 41 20 24 32 45 00 03 45 2C 12 41 44 43 20 23 |DA $2E..E,.ADC #|
00003D00: 24 46 46 00 0F 45 2E 12 53 54 41 20 24 32 45 00 |$FF..E..STA $2E.|
00003D10: 1B 45 30 12 53 42 43 20 24 36 30 00 23 45 32 12 |.E0.SBC $60.#E2.|
00003D20: 54 41 58 00 2B 45 34 12 53 45 43 00 42 45 36 12 |TAX.+E4.SEC.BE6.|
00003D30: 58 41 31 30 20 42 43 43 20 58 41 35 20 3B 4C 49 |XA10 BCC XA5 ;LI|
00003D40: 4E 4B 00 4E 45 38 12 4C 44 41 20 24 35 46 00 5A |NK.NE8.LDA $5F.Z|
00003D50: 45 3A 12 53 42 43 20 24 32 44 00 62 45 3C 12 54 |E:.SBC $2D.bE<.T|
00003D60: 41 59 00 6F 45 3E 12 42 43 53 20 58 41 31 31 00 |AY.oE>.BCS XA11.|
00003D70: 77 45 40 12 49 4E 58 00 83 45 42 12 44 45 43 20 |wE@.INX..EB.DEC |
00003D80: 24 32 35 00 90 45 44 12 58 41 31 31 20 43 4C 43 |$25..ED.XA11 CLC|
00003D90: 00 9C 45 46 12 41 44 43 20 24 32 32 00 A9 45 48 |..EF.ADC $22..EH|
00003DA0: 12 42 43 43 20 58 41 31 32 00 B5 45 4A 12 44 45 |.BCC XA12..EJ.DE|
00003DB0: 43 20 24 32 33 00 BD 45 4C 12 43 4C 43 00 D2 45 |C $23..EL.CLC..E|
00003DC0: 4E 12 58 41 31 32 20 4C 44 41 20 28 24 32 32 29 |N.XA12 LDA ($22)|
00003DD0: 2C 59 00 E2 45 50 12 53 54 41 20 28 24 32 34 29 |,Y..EP.STA ($24)|
00003DE0: 2C 59 00 EA 45 52 12 49 4E 59 00 F7 45 54 12 42 |,Y..ER.INY..ET.B|
00003DF0: 4E 45 20 58 41 31 32 00 03 46 56 12 49 4E 43 20 |NE XA12..FV.INC |
00003E00: 24 32 33 00 0F 46 58 12 49 4E 43 20 24 32 35 00 |$23..FX.INC $25.|
00003E10: 17 46 5A 12 44 45 58 00 24 46 5C 12 42 4E 45 20 |.FZ.DEX.$F\.BNE |
00003E20: 58 41 31 32 00 3A 46 5E 12 58 41 31 33 20 4A 53 |XA12.:F^.XA13 JS|
00003E30: 52 20 24 41 36 36 33 20 3B 9C 00 51 46 60 12 4A |R $A663 ;..QF`.J|
00003E40: 53 52 20 24 41 35 33 33 20 3B 52 45 AB 4C 49 4E |SR $A533 ;RE.LIN|
00003E50: 4B 00 59 46 62 12 43 4C 43 00 65 46 64 12 4C 44 |K.YFb.CLC.eFd.LD|
00003E60: 41 20 24 32 44 00 71 46 66 12 53 54 41 20 24 35 |A $2D.qFf.STA $5|
00003E70: 41 00 7D 46 68 12 41 44 43 20 24 30 42 00 89 46 |A.}Fh.ADC $0B..F|
00003E80: 6A 12 53 54 41 20 24 35 38 00 95 46 6C 12 4C 44 |j.STA $58..Fl.LD|
00003E90: 59 20 24 32 45 00 A1 46 6E 12 53 54 59 20 24 35 |Y $2E..Fn.STY $5|
00003EA0: 42 00 AE 46 70 12 42 43 43 20 58 41 31 34 00 B6 |B..Fp.BCC XA14..|
00003EB0: 46 72 12 49 4E 59 00 D5 46 74 12 58 41 31 34 20 |Fr.INY..Ft.XA14 |
00003EC0: 53 54 59 20 24 35 39 20 3B 4D 41 4B 45 20 53 50 |STY $59 ;MAKE SP|
00003ED0: 41 43 45 20 81 00 EB 46 76 12 4A 53 52 20 24 41 |ACE ...Fv.JSR $A|
00003EE0: 33 42 38 20 3B A2 20 4C 49 4E 45 00 F7 46 78 12 |3B8 ;. LINE..Fx.|
00003EF0: 4C 44 41 20 24 31 34 00 03 47 7A 12 4C 44 59 20 |LDA $14..Gz.LDY |
00003F00: 24 31 35 00 10 47 7C 12 53 54 41 20 24 31 46 45 |$15..G|.STA $1FE|
00003F10: 00 1D 47 7E 12 53 54 59 20 24 31 46 46 00 29 47 |..G~.STY $1FF.)G|
00003F20: 80 12 4C 44 41 20 24 33 31 00 35 47 82 12 4C 44 |..LDA $31.5G..LD|
00003F30: 59 20 24 33 32 00 41 47 84 12 53 54 41 20 24 32 |Y $32.AG..STA $2|
00003F40: 44 00 4D 47 86 12 53 54 59 20 24 32 45 00 59 47 |D.MG..STY $2E.YG|
00003F50: 88 12 4C 44 59 20 24 30 42 00 61 47 8A 12 44 45 |..LDY $0B.aG..DE|
00003F60: 59 00 81 47 8C 12 58 41 31 35 20 4C 44 41 20 24 |Y..G..XA15 LDA $|
00003F70: 30 31 46 43 2C 59 20 3B 4D 4F 56 45 20 4C 49 4E |01FC,Y ;MOVE LIN|
00003F80: 45 00 9D 47 8E 12 53 54 41 20 28 24 35 46 29 2C |E..G..STA ($5F),|
00003F90: 59 20 3B B5 4F 20 50 52 4F 47 52 41 4D 00 A5 47 |Y ;.O PROGRAM..G|
00003FA0: 90 12 44 45 59 00 B2 47 92 12 42 50 4C 20 58 41 |..DEY..G..BPL XA|
00003FB0: 31 35 00 C3 47 94 12 4A 53 52 20 24 41 36 36 33 |15..G..JSR $A663|
00003FC0: 20 3B 9C 00 DA 47 96 12 4A 53 52 20 24 41 35 33 | ;...G..JSR $A53|
00003FD0: 33 20 3B 52 45 AB 4C 49 4E 4B 00 E2 47 98 12 43 |3 ;RE.LINK..G..C|
00003FE0: 4C 43 00 F9 47 9A 12 42 43 43 20 58 41 31 30 20 |LC..G..BCC XA10 |
00003FF0: 3B 44 4F 20 41 A8 48 45 52 00 FF 47 9C 12 3B 00 |;DO A.HER..G..;.|
00004000: 18 48 9E 12 44 53 4B A1 20 4A 53 52 20 A1 49 4E |.H..DSK. JSR .IN|
00004010: 20 3B A1 20 42 59 54 45 00 20 48 A0 12 50 48 41 | ;. BYTE. H..PHA|
00004020: 00 3A 48 A2 12 4C 44 41 20 24 39 30 20 3B 43 48 |.:H..LDA $90 ;CH|
00004030: 45 43 4B 20 53 54 41 54 55 53 00 45 48 A4 12 AF |ECK STATUS.EH...|
00004040: 20 23 24 42 46 00 52 48 A6 12 42 4E 45 20 44 4B | #$BF.RH..BNE DK|
00004050: 47 31 00 62 48 A8 12 50 4C 41 20 3B 8E 20 8B 20 |G1.bH..PLA ;. . |
00004060: 4F 4B 00 6A 48 AA 12 52 54 53 00 89 48 AC 12 44 |OK.jH..RTS..H..D|
00004070: 4B 47 31 20 4A 53 52 20 43 4C 53 9C 20 3B 57 52 |KG1 JSR CLS. ;WR|
00004080: 41 50 20 55 50 20 49 AD 4F 00 A4 48 AE 12 4C 44 |AP UP I.O..H..LD|
00004090: 58 20 23 24 31 44 20 3B 27 4D 45 52 47 45 20 45 |X #$1D ;'MERGE E|
000040A0: 52 52 B0 27 00 B5 48 B0 12 4C 44 41 20 23 B3 4D |RR.'..H..LDA #.M|
000040B0: 52 47 45 52 52 00 C1 48 B2 12 53 54 41 20 24 32 |RGERR..H..STA $2|
000040C0: 32 00 D2 48 B4 12 4C 44 41 20 23 B1 4D 52 47 45 |2..H..LDA #.MRGE|
000040D0: 52 52 00 E0 48 B6 12 4A 4D 50 20 24 41 34 34 35 |RR..H..JMP $A445|
000040E0: 00 E6 48 B8 12 3B 00 FC 48 BA 12 4D 52 47 45 52 |..H..;..H..MRGER|
000040F0: 52 20 2E C6 20 22 4D 45 52 47 C5 22 00 02 49 BC |R .. "MERG."..I.|
00004100: 12 3B 00 1C 49 BE 12 43 4C 53 9C 20 4C 44 41 20 |.;..I..CLS. LDA |
00004110: 23 24 36 33 20 3B A0 20 46 49 4C 45 00 36 49 C0 |#$63 ;. FILE.6I.|
00004120: 12 4A 53 52 20 A0 20 3B 43 4C 45 41 52 20 43 48 |.JSR . ;CLEAR CH|
00004130: 41 4E 4E 45 4C 53 00 43 49 C2 12 4A 4D 50 20 9C |ANNELS.CI..JMP .|
00004140: 43 48 4E 00 49 49 C4 12 3B 00 62 49 4C 13 4B 57 |CHN.II..;.bIL.KW|
00004150: 52 44 53 20 4A 53 52 20 24 41 41 44 37 20 3B 99 |RDS JSR $AAD7 ;.|
00004160: 20 8E 00 7E 49 4E 13 4C 44 59 20 23 30 20 20 20 | ..~IN.LDY #0 |
00004170: 20 3B 4B 45 59 57 B0 44 20 49 4E 44 45 58 00 A2 | ;KEYW.D INDEX..|
00004180: 49 50 13 4B 57 52 31 20 20 4C 44 58 20 23 30 20 |IP.KWR1 LDX #0 |
00004190: 20 20 20 3B 43 4F 4C 55 4D 4E 20 43 4F 55 4E 54 | ;COLUMN COUNT|
000041A0: 45 52 00 C5 49 52 13 4B 57 52 32 20 20 4C 44 41 |ER..IR.KWR2 LDA|
000041B0: 20 53 4B 57 2C 59 20 3B A1 20 4B 45 59 57 B0 44 | SKW,Y ;. KEYW.D|
000041C0: 20 43 48 41 52 00 E0 49 54 13 42 45 51 20 4B 57 | CHAR..IT.BEQ KW|
000041D0: 52 34 20 20 3B 53 4B 49 50 20 41 54 20 9B 20 80 |R4 ;SKIP AT . .|
000041E0: 00 FC 49 56 13 50 48 50 20 20 20 20 20 20 20 3B |..IV.PHP ;|
000041F0: 94 20 53 54 41 54 55 53 20 52 45 47 00 19 4A 58 |. STATUS REG..JX|
00004200: 13 AF 20 23 24 37 46 20 20 3B 4D 41 4B 45 20 4C |.. #$7F ;MAKE L|
00004210: 4F 57 45 52 20 43 41 53 45 00 34 4A 5A 13 4A 53 |OWER CASE.4JZ.JS|
00004220: 52 20 24 41 42 34 37 20 3B 99 20 43 48 41 52 41 |R $AB47 ;. CHARA|
00004230: 43 54 45 52 00 53 4A 5C 13 49 4E 59 20 20 20 20 |CTER.SJ\.INY |
00004240: 20 20 20 3B 42 55 4D 50 20 4B 57 B0 44 20 49 4E | ;BUMP KW.D IN|
00004250: 44 45 58 00 73 4A 5E 13 49 4E 58 20 20 20 20 20 |DEX.sJ^.INX |
00004260: 20 20 3B 42 55 4D 50 20 43 4F 4C 20 43 4F 55 4E | ;BUMP COL COUN|
00004270: 54 45 52 00 8B 4A 60 13 50 4C 50 20 20 20 20 20 |TER..J`.PLP |
00004280: 20 20 3B 4C 4F 4F 50 20 8B 20 A8 00 A3 4A 62 13 | ;LOOP . ...Jb.|
00004290: 42 50 4C 20 4B 57 52 32 20 20 3B 80 20 4F 46 20 |BPL KWR2 ;. OF |
000042A0: 57 B0 44 00 C3 4A 64 13 4B 57 52 33 20 20 43 50 |W.D..Jd.KWR3 CP|
000042B0: 58 20 23 24 30 41 20 20 3B 99 20 53 50 41 43 45 |X #$0A ;. SPACE|
000042C0: 53 20 A4 00 E0 4A 66 13 42 45 51 20 4B 57 52 31 |S ...Jf.BEQ KWR1|
000042D0: 20 20 3B 50 41 44 20 A4 20 31 30 20 B0 20 32 30 | ;PAD . 10 . 20|
000042E0: 00 F7 4A 68 13 43 50 58 20 23 24 31 34 20 20 3B |..Jh.CPX #$14 ;|
000042F0: 43 4F 4C 55 4D 4E 53 00 04 4B 6A 13 42 45 51 20 |COLUMNS..Kj.BEQ |
00004300: 4B 57 52 31 00 12 4B 6C 13 4A 53 52 20 24 41 42 |KWR1..Kl.JSR $AB|
00004310: 33 46 00 1A 4B 6E 13 49 4E 58 00 27 4B 70 13 42 |3F..Kn.INX.'Kp.B|
00004320: 4E 45 20 4B 57 52 33 00 40 4B 72 13 4B 57 52 34 |NE KWR3.@Kr.KWR4|
00004330: 20 20 4A 4D 50 20 24 41 41 44 37 20 3B 99 20 8E | JMP $AAD7 ;. .|
00004340: 00 46 4B 74 13 3B 00 68 4B 66 14 50 44 4F 57 4E |.FKt.;.hKf.PDOWN|
00004350: 20 52 54 53 20 3B 81 20 55 53 45 52 53 20 4F 46 | RTS ;. USERS OF|
00004360: 20 27 50 4F 57 45 52 27 00 6E 4B 68 14 3B 00 00 | 'POWER'.nKh.;..|
00004370: 00 |. |
..!.... READ SPRITES (AUG 25/84):.'...:.
G.... 0 STATEMENTS, 2 FUNCTIONS.M...:.J.
... KEYWORD CHARACTERS: 10.P...:...... K
EYWORD ROUTINE LINE SER#...... F/X
LOC( XLOC 3786 041...... F/YLOC
( YLOC 3812 042.....:...... U/C
HKSPR (3664/037)...... D/POWERS (3694/03
9). ...:.D.... THIS MODULE ALSO CONTAINS
ONE.H.... LINE FROM SET SPRITES -- 3624
.N...:...... ===========================
=====.....:.B.... ======================
==========.H...:......2,8,1,"@:TB/ADD.OB
J"...... B(773).192 . 29: . TEST IF TRAN
SBASIC ALREADY ENABLED.$...:.D..._A:. 'E
XIT' STATEMENT TOKEN.J...:.T.... 700.`..
..OPT O2.M..... $C000.S. .;...!.T2 . 2 ;
TRANSBASIC TAKES OVER THE...".T3 . 3 ;UN
USED LOCATI. AT 2, ....#.T4 . 4 ;THE NUM
ERIC C.VERSI....$.T5 . 5 ;VEC.RS AT 3 .
5 . ITS...%.T6 . 6 ;ZERO PAGE W.KSPACE.$
.&.;.D.'.SETLFS . $FFBA ;I.O ROUTINE.E.(
.SETNAM . $FFBD ;ADDRESSES IN..).. . $E
1C1 ;KERNAL ROM...*.CHKIN . $E11E...+.
. $E1CC...,..CHN . $FFCC...-..IN . $E124
.F...;.L.[.;.Z.\.JMP START...].JMP EXT ;
EMERGENCY EXIT .49155...^.;.%._.XTRA .BY
TE 20,7 ;STMTS,FUNCTS.+.`.;.7.A..BYTE 0.
=.B.;.].C.SKW . . ;STATEMENT KEYW.D ..O.
D..F "ELSEEXIT"..E..F "CURSOR"...F..F "
DOKE"...G..F "SETCLEARFLIP"...H..F "GROU
NDFRAMETEXT".M.I..F "CRAMCLS"...L..F "CO
LSPRSSPRCSPR"...M..F "XSPRYSPRXYSPR"...R
..F "ADD"...T..F "KEYWORDS".!.V.;.@.W.FK
W . . ;FUNCTI. KEYW.DS ..N.X..F "CLOC".T
.Y..F "DEEK":.BYT $A8 ;DEEK.SH.TED (. .Z
..F "CHECK":.BYT $A8:.F "AWAIT":.BYT $A8
..._..F "WITHIN":.BYTE $A8...`..F "XLOC"
:.BYTE $A8:.F "YLOC":.BYTE $A8 ;A8.SH.TE
D (...H.;...I..BYTE 0 ;KEYW.D . TERMINA.
R...J.;.;.K..S . . ;STATEMENT VEC.R.P.L.
.W.D $A93A,EXT.1._.M..W.D CSR.1.N.N..W.D
DOK.1...O..W.D BSE.1,B..1,FLI.1...P..W.
D GRD.1,FRAM.1,TEX.1...Q..W.D CFILL.1,CL
EA.1.Y.T..W.D COLSP.1,SSP.1,CSP.1...U..W
.D XSP.1,YSP.1,XYSP.1...Z..W.D XADD.1...
\..W.D KWRDS.1...>.;.8.?..CS . . ;FUNCTI
. VEC.RS.J.@..W.D CSRLOC.1.Z.A..W.D DEEK
.1.P.B..W.D CHECK.1,A..1...G..W.D WITHIN
.1...H..W.D XLOC.1,YLOC.1...3.;...4.STAR
T LDX #7 ;SWAP OUT OLD...6.STT1 LDA $304
,X ;BASIC VEC.RS,...8.STA TVEC,X ;SWAP I
N . .ES...:.LDA NUVECS,X...<.STA $304,X.
'.>.DEX.4.@.BPL STT1.Q.B.LDA XTRA ;CALCU
LATE .TAL.Y.D.CLC.H.F.ADC XTRA.1.W.H.STA
XTRA.2...J.LDA #$60 ;DISABLE THIS...L.S
TA START ;ROUTINE WITH RTS...N.RTS...P.;
...R.TVEC .W.D $A57C ;S.RAGE ....T.LVEC
.W.D $A71A ;OLD VEC.RS...V.EVEC .W.D $A7
E4.&.X.FVEC .W.D $AE86.,.Z.;.U.\.NUVECS
.W.D .K,LIS,EXC,FUN ;. VEC.RS.[.^.;.R.`.
.K LDX #0 ;.KENIZE.}.B.LDY #0...D.TK1 LD
A $200,X ;FETCH A BYTE...F.CMP #$22 ;CHE
CK . . QUOTE.H.H.BEQ TK9...J.JSR C.CHR ;
CHECK . ALPHABETIC...L.BCC TK4 ;SKIP . .
...N.STY $71 ;. .X . .Y.".P.STX T3.-.R.L
DY #0.I.T.STY $0B ;SET UP COUNTER.A.V.DE
Y ;SET UP INDICES.I.X.DEX.U.Z.TK2 INY.}.
|.INX...~.TK3 LDA $200,X ;FETCH UN.KENIZ
ED BYTE.....SEC.T...SBC SKW,Y ;COMPARE W
ITH KEYW.D ......BEQ TK2 ;K BACK . A.HER
BYTE.!...CMP #$80 ;CHECK . MATCH EXCEPT
HIGH BIT.;...BNE TK5 ;TRY . KEYW.D.]...
LDA #$5F ;FIRST BYTE OF .KEN,.Y...LDY $7
1 ;THE LEFT ARROW.....STA $200,Y.....INY
.....LDA $0B ;SEC.D BYTE OF .KEN.....ADC
#$3F.I...TK4 INX.X...STA $200,Y.....INY
.....LDA $200,Y ;LOOP UNLESS LINE EXHAUS
TED.....BNE TK1.4. .JMP (TVEC) ;REJOIN B
ASIC.:...;.X...TK5 LDX T3 ;FIND . KEYW.D
.H...TK6 INC $0B.T...LDA $0B.....CMP #$1
E ;SKIP PAST ..ENTIATE .KEN.....BEQ TK6.
....TK7 INY.C...LDA SKW.1,Y.O...BPL TK7.
....LDA SKW,Y.....BNE TK3.....LDY $71 ;N
O MATCHING KEYW.D,.,...LDA $200,X ;GIVE
UP ATTEMPT ..A...BPL TK4 ;.KENIZE.G...;.
G...TK8 LDA $200,X ;SCAN . . OF...B.BEQ
TK4 ;LINE . . OF...D.CMP #$22 ;QUOTES WI
THOUT...F.BEQ TK4 ;.KENIZING.G.H.TK9 STA
$200,Y.O.J.INY.W.L.INX...N.BNE TK8...P.
;...R.LIS CMP #$5F ;. . .. .KENS.(.T.BNE
L2 ;SKIP . . LEFT.ARROW.;.V.INY ;. . BY
TE,.Z.X.LDA ($5F),Y ;C.VERT . .KEN.O.Z.S
BC #$40 ;NUMBER.|...CMP #$1E.....BCC L1.
....SBC #1.....L1 CMP XTRA.2 ;CHECK . IN
BOUNDS.S...BCC L3 ;K SCAN KEYW.D ......
DEY.....LDA ($5F),Y ;REJOIN BASIC.....L2
TAX.....JMP (LVEC).....;.8...L3 STY T3
;COUNTDOWN IN .X.S...LDY #0 ;WHILE SCANN
ING.E...TAX ;KEYW.D ..P...BEQ L5.....L4
LDA SKW,Y.....PHP.....INY.....PLP.....BP
L L4 ;LAST KEYW.D.L...DEX ;CHARACTER HAS
BIT.....BNE L4 ;7 SET.....;.....L5 LDA
SKW,Y ;. KEYW.D.....PHP ;U.G BASIC'S.,..
.. #$7F ;CHARACTER...L...JSR $AB47 ;ROUT
INE AT $AB47.T...INY.\...PLP.G...BPL L5.
R...LDY T3.....L6 JMP $A700 ;REJOIN BASI
C.....;.....EXC JSR $73 ;EXECUTE STATEME
NT.....EX1 CMP #$8B ;'.'.H.LE AT .RTN...
.BEQ EX8...".CMP #$5F ;THE LEFT ARROW.'
.$.BNE EX5 ;SKIP . REJOIN BASIC.=.&.JSR
$73 ;. . BYTE.R.(.JSR EX2 ;EXECUTE.T.*.J
MP $A7AE ;SET UP . STATEMENT.Z.,.;.....E
X2 SEC ;C.VERT .KEN ....0.SBC #$40 ;KEYW
.D NUMBER...2.CMP #$1E.J.4.BCC EX3.U.6.S
BC #1...8.EX3 CMP XTRA ;CHECK . IN BOUND
S...:.BCS EX7 ;SYNTAX ERR....<.ASL.".>.T
AY.>.@.LDA .S.1,Y ;FETCH VEC.R.Z.B.PHA ;
ADDRESS FROM TABLE.G.D.LDA .S,Y...F.PHA
;JUMP THROUGH CHR....H.JMP $73 ;. STATEM
ENT ROUTINE...J.;.I.L.EX5 LDA $7A ;DEC.E
NT CHRGET...N.BNE EX6 ;PO.ER...P.DEC $7B
...R.EX6 DEC $7A...T.JMP (EVEC) ;REJOIN
BASIC...V.;.:.X.EX7 JMP $AF08 ;SYNTAX ER
R..@.Z.;.].\.EX8 JSR EX9; EXECUTE '.'..
^.JMP $A7AE ;SET UP . STATEMENT...`.;...
B.EX9 LDA #..RTN.1 ;JUMP ....D.PHA ;'.'
EXECUTI..R.F.LDA #..RTN.1 ;ROUTINE.Z.H.P
HA...J.JMP $73...L.;...N.FUN JSR $73 ;EE
UATE FUNCTI..%.P.CMP #$5F ;LEFT ARROW.L.
R.BEQ FU2 ;EEUATE TRANSBASIC FUNCTI..H.T
.LDA $7A ;DEC.ENT CHRGET.|.V.BNE FU1 ;PO
.ER,...X.DEC $7B ;REJOIN BASIC...Z.FU1 D
EC $7A...|.JMP (FVEC)...~.;.....FU2 LDA
#0 ;CLEAR . TYPE REGISTER.....STA $0D...
..JSR $73 ;FETCH KEYW.D I.D. BYTE./...SE
C ;C.VERT KEYW.D NUMBER.<...SBC #$40.I..
.CMP #$1E.U...BCC FU3.`...SBC #1.~...FU3
SEC ;CHECK . IN RANGE.....SBC XTRA.....
BCC EX7 ;SYNTAX ERR......CMP XTRA.1.L...
BCS EX7 ;SYNTAX ERR......ASL ;FETCH FUNC
TI......TAY ;VEC.R FROM TABLE.....LDA .C
S.1,Y... .PHA.#...LDA .CS,Y.;...PHA ;JUM
P . FUNCTI..]...JMP $73 ;ROUTINE THROUGH
CHR..C...;......RTN JSR $AD9E ;EEUATE T
EST .RESSI......JSR $79.....CMP #$89 ;MU
ST BE FOLLOWED BY.M...BEQ .1 ;. ($89)...
..LDA #$A7 ;. . ($A7).....JSR $AEFF.....
.1 JSR $79 ;CLEAR CARRY . NUMERIC.:...LD
X $61 ;CHECK . TEST FAILED.\...BEQ ELSRT
N ;YES . SKIP . ELSE.G...BCS .2.X...JMP
$A8A0 ;.......2 PLA ;EXECUTE STATEMENT..
.B.PLA ;AFTER '.'...D.JSR $79.A.F.JMP EX
1.G.P.;...R.ELSRTN JSR $A8F8 ;SKIP STATE
MENT...T.JSR $79.. V.CMP #0 ;RTS . ... X
.BNE ELS1 ;OF ..' Z.RTS.F ..ELS1 JSR $73
;CHECK . ELSE.Y ..CMP #$5F ;.KEN.H ..BN
E ELSRTN.T ..JSR $73.. ..CMP #$40.. ..BN
E ELSRTN.. ..JSR $73 ;EXECUTE.. ..JMP .2
.. ..;.S ..EXT LDX #7 ;EXIT ROUTINE.. ..
EXT1 LDA TVEC,X ;. OLD..!..STA $304,X ;V
EC.RS..!..DEX..!..BPL EXT1.5!..LDA #$A2
;. LDX CODE ..Y!..STA START ;ENABLE STAR
T ROUTINE..!..JMP PDOWN ;DO POWDOWN COMM
. . PRESENT..!..;..!..C.CHR CMP #$5B ;.
CARRY SET.D!..BCC CIC1 ;. ACCUMULA.R.S!.
.CLC ;.AINS..!..BCC CIC2 ;ALPHABETIC..!.
.CIC1 CMP #$41.."..CIC2 RTS.."..;.6"..CS
R JSR $B79E ;. FIRST PARAMETER.U"..CPX #
$19 ;MUST BE UNDER 25.L"..BCS CS2 ;. . S
TACK.T"..TXA.|"..PHA.."..LDY #0 ;ASSUME
COLUMN 0.."..JSR $79 ;BRANCH . NO.N"..BE
Q CS1 ;SEC.D PARAMETER.."..CMP #"," ;HAS
. BE COMMA.."..BNE CS3..#..JSR $B79B ;.
PARAMETER.1#..CPX #$28 ;MUST BE UNDER 4
0.=#..BCS CS2.S# .TXA ;MOVE IT . .Y.[#".
TAY.Z#$.CS1 PLA ;RECOVER ROW PARAM..#&.T
AX..#'.CLC ;JUMP . KERNAL..#(.JMP $FFF0
;PLOT ROUTINE.Y#*.CS2 JMP $B248 ;ILLEGAL
QUANTITY..#+.CS3 JMP $AF08 ;SYNTAX ERR.
..#,.;..$..CSRLOC LDA $D1 ;$D1 . $D2..$0
.CLC ;.AIN THE.H$2.ADC $D3 ;START OF ROW
.^$4.TAY ;LOCATI.. $D3.U$6.LDA $D2 ;.AIN
S THE..$8.ADC #0 ;COLUMN...$:.;..$<.USFP
LDX #0 ;C.VERT .A (HIGH).I$>.STX $0D ;.
.Y (LOW)..$@.STA $62 ;FROM UNSIGNED..$B
.STY $63 ;.EGER ...%D.LDX #$90 ;FLOATING
PO..'%F.SEC ;NUMBER IN.=%H.JMP $BC49 ;F
AC #1.C%J.;.B%L.DOK JSR $AD8A ;. . ADDRE
SS..%N.JSR $B7F7 ;C.VERT . .EGER..%P.JSR
$AEFD ;CHECK . COMMA..%R.LDA $14 ;S.RE
ADDRESS.Q%T.STA T3 ;AS TEMP VEC.R..%V.LD
A $15..%X.STA T4..%Z.JSR $AD8A ;. . EUE.
.&\.JSR $B7F7 ;C.VERT . .EGER.7&^.LDA $1
4 ;LOW BYTE . ..R&`.LDY #0 ;INDIRECT IND
EX.H&B.SEI ;TURN OFF IRQ..&D.STA (T3),Y
;. LOW BYTE..&F.LDA $15 ;HIGH BYTE . ...
&H.INY ;BUMP INDEX.N&J.STA (T3),Y ;. HIG
H BYTE..&L.CLI ;IRQ . AGAIN..&N.RTS..&P.
;..'R.DEEK JSR $AEF4 ;. E, TEST ')'.1'T.
JSR $AD8D ;TEST . NUMERIC.L'V.JSR $B7F7
;C.V . .EGER.G'X.LDY #1 ;INDIRECT INDEX.
.'Z.LDA ($14),Y ;. HIGH BYTE..'|.PHA..'~
.DEY ;DEC.ENT INDEX..'..LDA ($14),Y ;. L
OW BYTE.G'..TAY.O'..PLA..'..JMP USFP ;C.
VERT . FP..'..;..(..BSE JSR BPREP ;SETUP
.'(...A ($14),Y ;SET MASKED BIT.=(..STA
($14),Y ;S.RE.E(..RTS.K(..;.C(..B. JSR B
PREP ;SETUP.|(..E. #$FF ;INVERT MASK..(.
.. ($14),Y ;CLEAR MASKED BITS..(..STA ($
14),Y ;S.RE..(..RTS.A(..;.Z( .FLI JSR BP
REP ;SETUP..(..E. ($14),Y ;FLIP MASKED B
ITS..)..STA ($14),Y ;S.RE..)..RTS..)..;.
C)..BPREP JSR $B7EB ;ADDR . $14.15,.U)..
TXA ;EUE . .A.O)..LDY #0 ;SET INDEX . 0.
W)..RTS.})..;..)..GRD JSR $B79E ;. BYTE
IN .X..)..STX $D021 ;PUT IN BACKGROUND.F
)..RTS.L)..;..)..FRAM JSR $B79E ;. BYTE
IN .X..*..STX $D020 ;PUT IN B.DER..*..RT
S..*B.;.7*D.TEX JSR $B79E ;. BYTE IN .X.
?*F.TXA.[*H.. #$0F ;PUT LOW BYTE IN.|*J.
STA $286 ;TEXT COL. REGISTER..*L.RTS..*N
.;..*P.CFILL JSR $B79E ;. BYTE IN .X..*R
.TXA..*T.LDY #0..*V.CF1 STA $D800,Y ;FIL
L COL...*X.STA $D900,Y ;MEM.Y..+Z.STA $D
A00,Y..+..STA $DB00,Y..+..INY.)+..BNE CF
1.1+..RTS.7+..;.Z+..CLEA BNE CLE1 ;. NO
PARAMETERS.W+..JMP $E544 ;JUST . SCREEN.
.+..CLE1 JSR $B79E ;. A BYTE..+..STX $14
;CHECK RANGE..+..CPX #$19.G+..BCS CLE5.
.+..JSR $79 ;BRANCH . NO..+..BEQ CLE3 ;2
ND PARAMETER..,..JSR $AEFD ;CHECK . COMM
A.<,..JSR $B79E ;BET SEC.D PARAMETER.Z,.
.CLE2 CPX $14 ;EXIT . LESS.V,..BCC CLE4
;THAN FIRST .E..,..CPX #$19 ;CHECK RANGE
..,..BCS CLE5..,...BYTE $2C.O,..CLE3 LDX
#$18 ;.AULT 2ND PARAM...,..JSR $E9FF ;C
LEAR A LINE..,..DEX..-..BPL CLE2..-..CLE
4 JMP $E56C ;. CURS..A-..CLE5 JMP $B248
;ILLEGAL QUANTITY.G-..;.G-..CHECK SEC ;S
ET FLAG 'CHECK'..-...BYTE $24 ;IGN.E CLC
..-..A. CLC ;. FLAG 'A.'..-..PHP ;. FLAG
.F-..JSR $AEF4 ;EEUATE STRING,..-..JSR $
B6A3 ;. DESCR STACK..-..STA T3 ;. STR CG
TH... .PLP ;. FLAG.#.".R. T4 ;MINUS.'CHE
CK'.E.$.AW1 JSR .TER ;TEST KEY BUFFER.[.
&.BIT T4 ;TEST FLAG.W.(.BMI AW2 ;SKIP .
'CHECK'...*.TAY ;TRY AGAIN ....,.BEQ AW1
;BUFFER EMPTY.I...AW2 LDY #$FF ;INITIAL
IZE INDEX...0.AW3 INY ;BUMP INDEX...2.CP
Y T3 ;SKIP . .../4.BEQ AW4 ;OF STRING.+/
6.CMP ($22),Y ;TEST . MATCH.7/8.BNE AW3.
C/:.BEQ AW5.]/<.AW4 BIT T4 ;TEST FLAG.V/
>.BPL AW1 ;LOOP . 'A.'../@.LDY #$FF ;. 0
../B.AW5 INY ;.'N IN STRING.B/D.JMP $B3A
2 ;.Y . FP IN FAC1.H/F.;../H..TER JSR $A
82C ;TEST . KEY..0J.JMP $E124 ;BASIC'S .
IN..0L.;.)0F.PSHFP1 LDA #3 ;FAC#1 . STAC
K.I0H.JSR $A3FB ;CHECK STACK ROOM.[0J.PL
A ;. . ADDR.G0L.STA $71.O0N.PLA.{0P.STA
$72..0R.JSR $BBCA ;FAC#1 . $57.$5B..0T.L
DX #0 ;CLEAR INDEX.P0V.PHF1 LDA $57,X ;C
OPY AREA..0X.PHA ;. STACK..0Z.INX..0..CP
X #5..1..BNE PHF1..1..PHF2 LDA $72 ;. ..
(1..PHA ;ADDRESS.41..LDA $71.<1..PHA.D1.
.RTS.J1..;.J1..PUL57 PLA ;$57...FROM STA
CK..1..STA $71 ;. . ADDRESS..1..PLA..1..
STA $72..1..LDX #4 ;INITIALIZE INDEX.N1.
.PL57 PLA ;COPY . AREA..1..STA $57,X ;ST
ARTING AT $57..1..DEX..2..BPL PL57..2..B
MI PHF2 ;. . ADDRESS."2..;.F2J.COLSP JSR
CHS1 ;. SPRITE NUMBER.N2L.TXA.\2N.PHA ;
. IT.Y2P.JSR $B7F1 ;CHECK COMMA ...2R.PL
A ;. COLOUR..2T.TAY ;SPRITE# IS INDEX..2
V.TXA.G2X.STA $D027,Y ;. COLOUR.O2Z.RTS.
U2..;..2..SSP JSR CHS1 ;. SPRITE NUMBER.
.3..LDA POWERS,X ;SET THE BIT.33...A $D0
15 ;. SPRITE ENABLE.O3..BNE CSP1 ;RGSTR,
TURN ..U3..;.W3..CSP JSR CHS1 ;. SPRITE
NUMBER..3..LDA POWERS,X ;SET THE BIT..3
..E. #$FF ;MASK IT OUT.K3... $D015 ;. SP
RITE ENABLE..3..CSP1 STA $D015 ;RGSTR, T
URN OFF..3..RTS..3..;..4..XSP JSR CHS1 ;
. SPRITE NUMBER.04..STX T3 ;. IT.G4..JSR
$AEFD ;. COMMA.`4..JSR $AD8A ;. X .ITI.
.{4..JSR $B7F7 ;C.V . .EGER..4..LDA $15
;. HIGH BYTE..4..CMP #2 ;BRANCH ...4..BC
S XS3 ;.O HIGH.Z4..LDX T3 ;. SPRITE NUMB
ER..4..R. ;PUT MSB IN CARRY..5..LDA POWE
RS,X ;SET THE BIT.-5..BCC XS1 ;BRANCH .
0 MSB.J5...A $D010 ;. MSB REGISTER.\5..B
CS XS2 ;SKIP.Z5..XS1 E. #$FF ;MASK THE B
IT..5... $D010 ;CLEAR THE BIT..5..XS2 TA
Y ;. MSB..5..TXA ;SPRITE NUMBER.R5..ASL
;DOUBLE IT..5..TAX ;USE AS INDEX..6..LDA
$14 ;. X LOW BYTE..6 .JSR RFHK ;. . RAS
TER.46".STY $D010 ;WRITE MSB.T6$.STA $D0
00,X ;WRITE LOW BYTE.\6&.RTS..6(.XS3 JMP
$B248 ;ILLEGAL QUANTITY..6*.;..6,.YSP J
SR CHS1 ;. SPRITE NUMBER..6..YS1 TXA ;DO
UBLE IT.G60.ASL..62.PHA ;SET IT ASIDE..6
4.JSR $B7F1 ;COMMA, Y..ITI...76.TXA ;MOV
E IT . .Y..78.TAY.07:.PLA ;. 2.(SPRITE#)
.F7<.TAX ;USE AS INDEX.W7>.TYA ;Y..ITI..
P7@.JSR RFHK ;. . RASTER..7B.STA $D001,X
;WRITE .ITI...7D.RTS..7F.;..7H.XYSP JSR
XSP ;WRITE X..ITI..W7J.LDX T3 ;. SPRITE
NUMBER..7L.BPL YS1 ;WRITE Y..ITI...7N.;
..8P.CHKSPR JSR $73 ;BUMP CHR. PTR.>8R.C
HS1 JSR $B79E ;. SPRITE NUMBER.Z8T.CPX #
8 ;MUST BE UNDER 8.F8V.BCS XS3.N8X.RTS.T
8Z.;..8\.RFHK PHA ;S.RE ACCUMULA.R..8^.R
AS1 LDA $D012 ;. RASTER LINE.W8`.SBC $D0
01,X ;SUBTRACT SPRITE.Y..8B.BCC RAS2..8D
.CMP #$2B ;. TILL..9F.BCC RAS1 ;CLEAR OF
SPRITE.$9H.RAS2 PLA.,9J.RTS.29L.;.X9N.P
OWERS .BYTE 1,2,4,8,16,32,64,128.^9P.;.}
9R.WITHIN JSR $AD8A ;. NUM .R..9T.JSR CO
MTST ;SEC . E2 WITHIN..9V.PHP ;BOUNDS, .
..G9X.JSR COMTST ;DIT...9Z.BCC WTH1 ;'F
ALSE' . CLEAR..9|.PLP ;RECOVER FLAG..:~.
PHA ;DEC STACK PTR.0:..BCC WTH1 ;'FALSE'
. CLEAR.H:..LDA #$FF ;.1.'TRUE'.H:...BY
TE $2C ;'BIT' . HIDE LDA..:..WTH1 LDA #0
;0.'FALSE'..:..JSR $BC3C ;C.VERT SIGH .
FP..:..PLA ;INC STACK PTR.X:..JMP $AEF7
;SKIP BRACKET..:..;..;..COMTST JSR PS
HFP1 ;FAC#1 . STACK..;..JSR $79 ;RE. SEP
ARA.R.-;..PHA ;. . IT.J;..JSR $73 ;BUMP
CHR. PO.ER.B;..JSR $AD8A ;. NUM .R.Z;..P
LA ;CHECK SEPARA.R..;..CMP #"," ;COMMA (
.) IS OK..;..BEQ CT1.F; .CMP #";" ;SEMIC
OL. (..) IS OK..;..BNE CT4 ;ANYTHING ELS
E IS WR.G..<..CLC ;CLEAR . SEMICOL..#<..
.BYTE $24 ;'BIT' . HIDE SEC.<<..CT1 SEC
;SET . COMMA.Z<..R. T3 ;. FLAG AS HIGH B
IT.Z<..JSR PUL57 ;STACK . $57 AREA..<..L
DA #$57 ;COMPARE AREA WITH FAC..<..LDY #
0..<..JSR $BC5B.Q<..BMI CT3 ;E1.E2, FALS
E..<..BIT T3 ;COMMA . N FLAG SET..=..BPL
CT2 ;E1..E2, TRUE..=..TAX.,=..BEQ CT3 ;
E1.E2, FALSE.@=..CT2 SEC ;. TRUE.H=..RTS
.]=B.CT3 CLC ;. FALSE.E=D.RTS..=F.CT4 JM
P $AF08 ;SYNTAX ERR...=H.;..=J.XLOC JSR
CHS1 ;. SPRITE NUMBER.I=L.JSR $AEF7 ;SKI
P BRACKET..=N.TXA ;DOUBLE SPRITE #..=P.A
SL..>R.TAY ;USE AS INDEX..>T.LDA $D000,Y
;. X LOW BYTE.(>V.TAY ;.;>X.LDA POWERS,
X ;.N>Z.. $D010 ;. MSB.K>..BEQ XL1 ;ZERO
, MSB CLEAR..>..LDA #1 ;N..ZERO, MBS SET
..>..XL1 JMP $B391 ;.A..Y . FAC#1..>..;.
R>..YLOC JSR CHS1 ;. SPRITE NUMBER..>..J
SR $AEF7 ;SKIP BRACKET..?..TXA ;DOUBLE S
PRITE #..?..ASL..?..TAY.2?..LDA $D001,Y
;. Y .ITI..:?..TAY.T?..JMP $B3A2 ;.Y . F
AC#1.Z?..;.W?Z.XADD JSR $AD9E ;. FICAME.
.?|.JSR $B6A3..?~.STA T3 ;. CGTH. ?..TXA
..?..PHA..?..TYA..?..PHA.C?..LDA T3..?..
JSR $B47D ;RESERVE SPACE..?..TAX..?..BNE
XA1..@..JMP $AF08 ;NULL STRING SYNTAX E
RR..8@..XA1 CLC ;ADD ,P . FICAME.C@..ADC
#2.N@..STA T3.\@..JSR $B47D.D@..TAY.L@.
.PLA.X@..STA $23..@ .PLA..@..STA $22..@.
.DEY..@..LDA #"P"..@..STA ($62),Y..@..DE
Y.F@..LDA #",".V@..STA ($62),Y..@..XA2 D
EY..@..BMI XA3..@..LDA ($22),Y..A..STA (
$62),Y..A..BNE XA2.:A..XA3 LDA T3 ;SET U
P . SETNAM.FA..LDX $62.RA..LDY $63.AA..J
SR SETNAM.VAB.JSR $79 ;CHECK ...AD.BEQ X
A4 ;DEVICE NUMBER..AF.JSR $AEFD..AH.JSR
$B79E..AJ..BYTE $2C.ZAL.XA4 LDX #8 ;.AUL
T DEVICE 8..AN.LDA #$63 ;FILE NUMBER ...
BP.TAY ;SEC.DARY ADDR 99..BR.JSR SETLFS.
)BT.JSR ..6BV.LDX #$63.OBX.JSR CHKIN ;.
CHANNEL.LBZ.JSR DSK. ;SKIP . ADDRESS.YB.
.JSR DSK...B..XA5 JSR DSK. ;LINE LINK LO
W..B..JSR DSK. ;. . ZERO HIGH BYTE.FB..B
NE XA7..B..JSR CLS. ;WRAY UP I.O..C..JSR
$A659 ;RESET CHR. PTR,...C..JMP $E386 ;
'.Y.'.5C..XA7 JSR DSK. ;. LINE NUMBER.AC
..STA $14.NC..JSR DSK..ZC..STA $15.EC..L
DY #0..C..XA8 JSR DSK. ;MOVE REST OF..C.
.STA $200,Y ;LINE . ...C..BEQ XA9 ;BUFFE
R..C..INY.EC..BNE XA8..C..XA9 TYA ;. LIN
E SIZE..C..CLC..C..ADC #5..C..STA $0B..D
..JSR $A613 ;SEARCH . LINE#.8D..BCC XA13
;SKIP . . FOUND.CD..LDY #1.^D..LDA ($5F
),Y ;DE.E LINE.JD..STA $23.VD..LDA $2D..
D..STA $22..D..LDA $60..D..STA $25..D..L
DA $5F..D..DEY..D .SBC ($5F),Y.FD".CLC.R
D$.ADC $2D..D&.STA $2D..D(.STA $24..D*.L
DA $2E..E,.ADC #$FF..E..STA $2E..E0.SBC
$60.#E2.TAX.+E4.SEC.BE6.XA10 BCC XA5 ;LI
NK.NE8.LDA $5F.ZE:.SBC $2D.BE<.TAY.OE>.B
CS XA11.WE@.INX..EB.DEC $25..ED.XA11 CLC
..EF.ADC $22..EH.BCC XA12..EJ.DEC $23..E
L.CLC.REN.XA12 LDA ($22),Y..EP.STA ($24)
,Y..ER.INY..ET.BNE XA12..FV.INC $23..FX.
INC $25..FZ.DEX.$F\.BNE XA12.:F^.XA13 JS
R $A663 ;..QF`.JSR $A533 ;RE.LINK.YFB.CL
C.EFD.LDA $2D.QFF.STA $5A.}FH.ADC $0B..F
J.STA $58..FL.LDY $2E..FN.STY $5B..FP.BC
C XA14..FR.INY.UFT.XA14 STY $59 ;MAKE SP
ACE ...FV.JSR $A3B8 ;. LINE..FX.LDA $14.
.GZ.LDY $15..G|.STA $1FE..G~.STY $1FF.)G
..LDA $31.5G..LDY $32.AG..STA $2D.MG..ST
Y $2E.YG..LDY $0B.AG..DEY..G..XA15 LDA $
01FC,Y ;MOVE LINE..G..STA ($5F),Y ;.O PR
OGRAM..G..DEY..G..BPL XA15.CG..JSR $A663
;..ZG..JSR $A533 ;RE.LINK..G..CLC..G..B
CC XA10 ;DO A.HER..G..;..H..DSK. JSR .IN
;. BYTE. H .PHA.:H..LDA $90 ;CHECK STAT
US.EH... #$BF.RH..BNE DKG1.BH..PLA ;. .
OK.JH..RTS..H..DKG1 JSR CLS. ;WRAP UP I.
O..H..LDX #$1D ;'MERGE ERR.'..H..LDA #.M
RGERR.AH..STA $22.RH..LDA #.MRGERR..H..J
MP $A445..H..;..H..MRGERR .F "MERGE"..I.
.;..I..CLS. LDA #$63 ; FILE.6I..JSR ;
CLEAR CHANNELS.CIB.JMP .CHN.IID.;.BIL.KW
RDS JSR $AAD7 ;. ..~IN.LDY #0 ;KEYW.D
INDEX..IP.KWR1 LDX #0 ;COLUMN COUNT
ER.EIR.KWR2 LDA SKW,Y ;. KEYW.D CHAR..I
T.BEQ KWR4 ;SKIP AT . ...IV.PHP ;
. STATUS REG..JX.. #$7F ;MAKE LOWER CAS
E.4JZ.JSR $AB47 ;. CHARACTER.SJ\.INY
;BUMP KW.D INDEX.SJ^.INX ;BUMP
COL COUNTER..J`.PLP ;LOOP . ...JB.
BPL KWR2 ;. OF W.D.CJD.KWR3 CPX #$0A
;. SPACES ...JF.BEQ KWR1 ;PAD . 10 . 20
..JH.CPX #$14 ;COLUMNS..KJ.BEQ KWR1..KL
.JSR $AB3F..KN.INX.'KP.BNE KWR3.@KR.KWR4
JMP $AAD7 ;. ..FKT.;.HKF.PDOWN RTS ;.
USERS OF 'POWER'.NKH.;...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL