SIDCODE.ASM
FILE INFORMATION
FILENAME(S): SIDCODE.ASM
FILE TYPE(S): DEL
FILE SIZE: 13.5K
FIRST SEEN: 2025-10-19 22:49:33
APPEARS ON: 2 disk(s)
FILE HASH
69bc9f0e4805a5d0ab22fab024b419755febec3c8b70f214d2a46e949ff80b14
FOUND ON DISKS (2 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| MIGDTL | SIDCODE.ASM | DEL | Radd Maxx | 7 | 9 | DOWNLOAD FILE |
| MIGDTL | SIDCODE.ASM | DEL | DuncanTwain | 7 | 9 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 3B 20 20 4D 41 49 4E 4C 49 4E 45 0D 3B 20 20 30 |; MAINLINE.; 0| 00000010: 37 2F 32 34 2F 38 34 20 41 47 49 0D 3B 20 20 42 |7/24/84 AGI.; B| 00000020: 49 47 20 56 54 41 42 4C 45 20 21 21 21 0D 3B 0D |IG VTABLE !!!.;.| 00000030: 3B 20 20 41 44 44 45 44 20 4E 45 57 20 4A 55 4D |; ADDED NEW JUM| 00000040: 50 20 41 4E 44 20 4A 53 52 20 4C 4F 47 49 43 20 |P AND JSR LOGIC | 00000050: 21 0D 3B 0D 3B 20 20 44 45 46 49 4E 45 20 4C 41 |!.;.; DEFINE LA| 00000060: 42 45 4C 53 0D 53 54 4B 20 3D 20 42 41 53 45 2B |BELS.STK = BASE+| 00000070: 24 38 30 20 3B 20 45 58 50 52 45 53 53 49 4F 4E |$80 ; EXPRESSION| 00000080: 20 53 54 41 43 4B 0D 53 54 4C 20 3D 20 53 54 4B | STACK.STL = STK| 00000090: 20 3B 20 43 55 52 52 45 4E 54 20 56 41 4C 55 45 | ; CURRENT VALUE| 000000A0: 20 28 4C 4F 57 29 0D 53 54 48 20 3D 20 53 54 4B | (LOW).STH = STK| 000000B0: 2B 31 20 3B 20 43 55 52 52 45 4E 54 20 56 41 4C |+1 ; CURRENT VAL| 000000C0: 55 45 20 28 48 49 47 48 29 0D 53 54 58 31 20 3D |UE (HIGH).STX1 =| 000000D0: 20 53 54 4B 2B 32 20 3B 20 45 58 54 45 4E 44 45 | STK+2 ; EXTENDE| 000000E0: 44 20 53 54 41 43 4B 0D 53 54 58 32 20 3D 20 53 |D STACK.STX2 = S| 000000F0: 54 4B 2B 33 0D 53 54 58 33 20 3D 20 53 54 4B 2B |TK+3.STX3 = STK+| 00000100: 34 0D 53 54 58 34 20 3D 20 53 54 4B 2B 35 0D 54 |4.STX4 = STK+5.T| 00000110: 4D 50 31 20 3D 20 53 54 4B 2D 33 20 3B 20 32 34 |MP1 = STK-3 ; 24| 00000120: 20 42 49 54 20 57 4F 52 4B 20 41 52 45 0D 54 4D | BIT WORK ARE.TM| 00000130: 50 32 20 3D 20 53 54 4B 2D 32 0D 54 4D 50 33 20 |P2 = STK-2.TMP3 | 00000140: 3D 20 53 54 4B 2D 31 0D 4F 50 4C 20 3D 20 53 54 |= STK-1.OPL = ST| 00000150: 4B 2D 32 20 3B 20 4F 50 45 52 41 54 4F 52 20 28 |K-2 ; OPERATOR (| 00000160: 4C 4F 57 29 0D 4F 50 48 20 3D 20 4F 50 4C 2B 31 |LOW).OPH = OPL+1| 00000170: 20 3B 20 4F 50 45 52 41 54 4F 52 20 28 48 49 47 | ; OPERATOR (HIG| 00000180: 48 29 0D 56 41 52 20 3D 20 42 41 53 45 2B 24 31 |H).VAR = BASE+$1| 00000190: 30 30 20 3B 20 56 41 52 49 41 42 4C 45 20 54 41 |00 ; VARIABLE TA| 000001A0: 42 4C 45 0D 56 41 52 4C 20 3D 20 56 41 52 0D 56 |BLE.VARL = VAR.V| 000001B0: 41 52 48 20 3D 20 56 41 52 2B 31 0D 4A 4D 50 48 |ARH = VAR+1.JMPH| 000001C0: 49 20 3D 20 42 41 53 45 2B 24 32 30 30 0D 4A 4D |I = BASE+$200.JM| 000001D0: 50 4C 4F 20 3D 20 42 41 53 45 2B 24 32 32 30 0D |PLO = BASE+$220.| 000001E0: 4F 50 54 42 4C 20 3D 20 42 41 53 45 2B 24 32 34 |OPTBL = BASE+$24| 000001F0: 30 0D 50 43 4E 54 20 3D 20 24 39 45 20 3B 20 50 |0.PCNT = $9E ; P| 00000200: 47 4D 20 43 4F 55 4E 54 45 52 20 28 55 53 45 53 |GM COUNTER (USES| 00000210: 20 54 41 50 45 20 45 52 52 4F 52 20 52 45 47 53 | TAPE ERROR REGS| 00000220: 29 0D 4F 50 45 52 20 3D 20 42 41 53 45 2B 24 46 |).OPER = BASE+$F| 00000230: 30 20 3B 20 43 55 52 52 45 4E 54 20 4F 50 45 52 |0 ; CURRENT OPER| 00000240: 41 54 4F 52 0D 41 52 47 20 3D 20 4F 50 45 52 2B |ATOR.ARG = OPER+| 00000250: 31 20 3B 20 41 52 47 55 4D 45 4E 54 0D 58 53 41 |1 ; ARGUMENT.XSA| 00000260: 56 45 20 3D 20 4F 50 45 52 2B 32 0D 59 53 41 56 |VE = OPER+2.YSAV| 00000270: 45 20 3D 20 4F 50 45 52 2B 33 0D 46 4F 52 50 20 |E = OPER+3.FORP | 00000280: 3D 20 4F 50 45 52 2B 34 0D 46 53 41 56 45 20 3D |= OPER+4.FSAVE =| 00000290: 20 4F 50 45 52 2B 35 0D 47 4F 50 20 3D 20 4F 50 | OPER+5.GOP = OP| 000002A0: 45 52 2B 36 0D 46 4C 41 47 20 3D 20 4F 50 45 52 |ER+6.FLAG = OPER| 000002B0: 2B 37 0D 56 50 4C 55 53 20 3D 20 4F 50 45 52 2B |+7.VPLUS = OPER+| 000002C0: 38 20 3B 20 56 41 52 49 41 42 4C 45 20 4F 46 46 |8 ; VARIABLE OFF| 000002D0: 53 45 54 0D 56 4C 49 4D 20 3D 20 4F 50 45 52 2B |SET.VLIM = OPER+| 000002E0: 39 20 3B 20 4F 46 46 53 45 54 20 4C 49 4D 49 54 |9 ; OFFSET LIMIT| 000002F0: 0D 50 43 53 56 45 20 3D 20 4F 50 45 52 2B 31 30 |.PCSVE = OPER+10| 00000300: 0D 4C 49 42 20 3D 20 4F 50 45 52 2B 31 34 0D 4C |.LIB = OPER+14.L| 00000310: 45 56 45 4C 20 3D 20 4F 50 45 52 2B 31 34 0D 46 |EVEL = OPER+14.F| 00000320: 4C 4D 4C 20 3D 20 42 41 53 45 20 3B 20 46 4F 52 |LML = BASE ; FOR| 00000330: 20 53 54 41 43 4B 0D 46 4C 4D 48 20 3D 20 46 4C | STACK.FLMH = FL| 00000340: 4D 4C 2B 31 20 3B 4C 49 4D 49 54 0D 46 50 43 4C |ML+1 ;LIMIT.FPCL| 00000350: 20 3D 20 46 4C 4D 4C 2B 32 0D 46 50 43 48 20 3D | = FLML+2.FPCH =| 00000360: 20 46 4C 4D 4C 2B 33 20 3B 20 53 41 56 45 20 50 | FLML+3 ; SAVE P| 00000370: 43 0D 46 56 41 52 20 3D 20 46 4C 4D 4C 2B 34 20 |C.FVAR = FLML+4 | 00000380: 3B 20 56 41 52 20 23 0D 47 50 43 4C 20 3D 20 46 |; VAR #.GPCL = F| 00000390: 4C 4D 4C 20 3B 20 47 4F 53 55 42 20 53 41 56 45 |LML ; GOSUB SAVE| 000003A0: 20 50 43 0D 47 50 43 48 20 3D 20 46 4C 4D 4C 2B | PC.GPCH = FLML+| 000003B0: 31 0D 46 52 30 20 3D 20 24 36 31 0D 3B 0D 52 41 |1.FR0 = $61.;.RA| 000003C0: 4E 44 4F 4D 20 3D 20 24 44 30 31 32 0D 53 50 30 |NDOM = $D012.SP0| 000003D0: 58 20 3D 20 24 38 36 35 30 20 3B 20 32 34 20 53 |X = $8650 ; 24 S| 000003E0: 50 52 49 54 45 20 45 58 54 45 4E 53 49 4F 4E 0D |PRITE EXTENSION.| 000003F0: 53 50 30 59 20 3D 20 24 38 36 35 31 0D 4D 53 42 |SP0Y = $8651.MSB| 00000400: 52 45 47 20 3D 20 24 38 36 42 34 20 3B 20 34 20 |REG = $86B4 ; 4 | 00000410: 52 45 47 53 2D 38 2C 20 34 2C 20 38 2C 20 34 0D |REGS-8, 4, 8, 4.| 00000420: 52 4F 57 43 52 53 20 3D 20 24 33 46 43 20 3B 20 |ROWCRS = $3FC ; | 00000430: 53 49 44 54 52 41 4E 20 4C 49 4E 45 20 50 4F 49 |SIDTRAN LINE POI| 00000440: 4E 54 45 52 0D 43 4F 4C 43 52 53 20 3D 20 24 33 |NTER.COLCRS = $3| 00000450: 46 44 20 3B 20 53 49 44 54 52 41 4E 20 43 4F 4C |FD ; SIDTRAN COL| 00000460: 55 4D 4E 20 49 4E 20 4C 49 4E 45 0D 54 58 54 20 |UMN IN LINE.TXT | 00000470: 3D 20 36 34 38 20 3B 20 53 54 41 52 54 20 50 41 |= 648 ; START PA| 00000480: 47 45 20 4F 46 20 53 43 52 45 45 4E 20 49 4D 41 |GE OF SCREEN IMA| 00000490: 47 45 0D 42 55 46 52 20 3D 20 24 32 41 37 0D 4E |GE.BUFR = $2A7.N| 000004A0: 4C 20 3D 20 24 32 46 45 0D 4E 48 20 3D 20 4E 4C |L = $2FE.NH = NL| 000004B0: 2B 31 0D 20 2A 20 3D 20 4F 50 54 42 4C 0D 20 2E |+1. * = OPTBL. .| 000004C0: 57 4F 52 44 20 44 4F 4E 45 2D 31 20 3B 20 24 30 |WORD DONE-1 ; $0| 000004D0: 30 0D 20 2E 57 4F 52 44 20 52 45 54 55 52 4E 2D |0. .WORD RETURN-| 000004E0: 31 0D 20 2E 57 4F 52 44 20 4E 45 47 2D 31 0D 20 |1. .WORD NEG-1. | 000004F0: 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 |.WORD DONE-1. .W| 00000500: 4F 52 44 20 53 54 52 49 47 2D 31 0D 20 2E 57 4F |ORD STRIG-1. .WO| 00000510: 52 44 20 49 4E 43 52 2D 31 0D 20 2E 57 4F 52 44 |RD INCR-1. .WORD| 00000520: 20 44 45 43 52 2D 31 0D 20 2E 57 4F 52 44 20 42 | DECR-1. .WORD B| 00000530: 59 54 58 2D 31 0D 20 2E 57 4F 52 44 20 52 4E 44 |YTX-1. .WORD RND| 00000540: 2D 31 20 3B 20 24 30 38 0D 20 2E 57 4F 52 44 20 |-1 ; $08. .WORD | 00000550: 41 42 53 2D 31 0D 20 2E 57 4F 52 44 20 53 47 4E |ABS-1. .WORD SGN| 00000560: 2D 31 0D 20 2E 57 4F 52 44 20 50 45 45 4B 2D 31 |-1. .WORD PEEK-1| 00000570: 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 |. .WORD DONE-1. | 00000580: 2E 57 4F 52 44 20 44 50 45 45 4B 2D 31 0D 20 2E |.WORD DPEEK-1. .| 00000590: 57 4F 52 44 20 53 57 41 50 2D 31 0D 20 2E 57 4F |WORD SWAP-1. .WO| 000005A0: 52 44 20 57 52 44 2D 31 0D 20 2E 57 4F 52 44 20 |RD WRD-1. .WORD | 000005B0: 53 54 49 43 4B 2D 31 20 3B 20 24 31 30 0D 20 2E |STICK-1 ; $10. .| 000005C0: 57 4F 52 44 20 44 55 50 2D 31 0D 20 2E 57 4F 52 |WORD DUP-1. .WOR| 000005D0: 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 |D DONE-1. .WORD | 000005E0: 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F |DONE-1. .WORD DO| 000005F0: 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 |NE-1. .WORD DONE| 00000600: 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 |-1. .WORD DONE-1| 00000610: 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 |. .WORD DONE-1. | 00000620: 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 20 3B 20 24 |.WORD DONE-1 ; $| 00000630: 31 38 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 |18. .WORD DONE-1| 00000640: 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 |. .WORD DONE-1. | 00000650: 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 |.WORD DONE-1. .W| 00000660: 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 |ORD DONE-1. .WOR| 00000670: 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 |D DONE-1. .WORD | 00000680: 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F |DONE-1. .WORD DO| 00000690: 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 41 44 44 2D |NE-1. .WORD ADD-| 000006A0: 31 20 3B 20 24 32 30 0D 20 2E 57 4F 52 44 20 53 |1 ; $20. .WORD S| 000006B0: 55 42 2D 31 0D 20 2E 57 4F 52 44 20 4D 55 4C 54 |UB-1. .WORD MULT| 000006C0: 2D 31 0D 20 2E 57 4F 52 44 20 44 49 56 2D 31 0D |-1. .WORD DIV-1.| 000006D0: 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E | .WORD DONE-1. .| 000006E0: 57 4F 52 44 20 49 46 54 2D 31 0D 20 2E 57 4F 52 |WORD IFT-1. .WOR| 000006F0: 44 20 49 46 46 2D 31 0D 20 2E 57 4F 52 44 20 44 |D IFF-1. .WORD D| 00000700: 4F 4E 45 2D 31 20 3B 20 51 50 52 4E 54 2D 31 0D |ONE-1 ; QPRNT-1.| 00000710: 20 2E 57 4F 52 44 20 53 49 4E 2D 31 20 3B 20 24 | .WORD SIN-1 ; $| 00000720: 32 38 0D 20 2E 57 4F 52 44 20 43 4F 53 2D 31 0D |28. .WORD COS-1.| 00000730: 20 2E 57 4F 52 44 20 4C 41 4E 44 32 2D 31 0D 20 | .WORD LAND2-1. | 00000740: 2E 57 4F 52 44 20 50 4F 50 2D 31 0D 20 2E 57 4F |.WORD POP-1. .WO| 00000750: 52 44 20 44 4F 4E 45 2D 31 20 3B 20 44 4F 4E 54 |RD DONE-1 ; DONT| 00000760: 20 55 53 45 20 21 21 20 22 2C 22 0D 20 2E 57 4F | USE !! ",". .WO| 00000770: 52 44 20 44 4F 4E 45 2D 31 20 3B 20 43 4F 4C 4F |RD DONE-1 ; COLO| 00000780: 52 0D 20 2E 57 4F 52 44 20 55 53 52 2D 31 0D 20 |R. .WORD USR-1. | 00000790: 2E 57 4F 52 44 20 41 54 4E 2D 31 0D 20 2E 57 4F |.WORD ATN-1. .WO| 000007A0: 52 44 20 50 4F 4B 45 2D 31 20 3B 20 24 33 30 0D |RD POKE-1 ; $30.| 000007B0: 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 20 3B 20 | .WORD DONE-1 ; | 000007C0: 43 44 52 41 57 0D 20 2E 57 4F 52 44 20 44 4F 4E |CDRAW. .WORD DON| 000007D0: 45 2D 31 20 3B 20 51 50 4C 4F 54 0D 20 2E 57 4F |E-1 ; QPLOT. .WO| 000007E0: 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 |RD DONE-1. .WORD| 000007F0: 20 44 50 4F 4B 45 2D 31 0D 20 2E 57 4F 52 44 20 | DPOKE-1. .WORD | 00000800: 52 41 4E 47 45 2D 31 0D 20 2E 57 4F 52 44 20 50 |RANGE-1. .WORD P| 00000810: 4F 4B 45 59 2D 31 0D 20 2E 57 4F 52 44 20 44 4F |OKEY-1. .WORD DO| 00000820: 4E 45 2D 31 20 3B 20 4F 42 4A 45 43 54 0D 20 2E |NE-1 ; OBJECT. .| 00000830: 57 4F 52 44 20 44 4F 4E 45 2D 31 20 3B 20 24 33 |WORD DONE-1 ; $3| 00000840: 38 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D |8. .WORD DONE-1.| 00000850: 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E | .WORD DONE-1. .| 00000860: 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F |WORD DONE-1. .WO| 00000870: 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 |RD DONE-1. .WORD| 00000880: 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 | DONE-1. .WORD D| 00000890: 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E |ONE-1. .WORD DON| 000008A0: 45 2D 31 0D 20 2E 57 4F 52 44 20 4E 45 58 54 2D |E-1. .WORD NEXT-| 000008B0: 31 20 3B 20 24 34 30 0D 20 2E 57 4F 52 44 20 53 |1 ; $40. .WORD S| 000008C0: 48 49 46 54 52 2D 31 0D 20 2E 57 4F 52 44 20 53 |HIFTR-1. .WORD S| 000008D0: 48 49 46 54 4C 2D 31 0D 20 2E 57 4F 52 44 20 44 |HIFTL-1. .WORD D| 000008E0: 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 47 4F 53 |ONE-1. .WORD GOS| 000008F0: 55 42 2D 31 0D 20 2E 57 4F 52 44 20 53 42 52 2D |UB-1. .WORD SBR-| 00000900: 31 0D 20 2E 57 4F 52 44 20 54 50 4F 53 2D 31 0D |1. .WORD TPOS-1.| 00000910: 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E | .WORD DONE-1. .| 00000920: 57 4F 52 44 20 4C 41 4E 44 2D 31 20 3B 20 24 34 |WORD LAND-1 ; $4| 00000930: 38 0D 20 2E 57 4F 52 44 20 4C 4F 52 2D 31 0D 20 |8. .WORD LOR-1. | 00000940: 2E 57 4F 52 44 20 4C 58 4F 52 2D 31 0D 20 2E 57 |.WORD LXOR-1. .W| 00000950: 4F 52 44 20 47 4F 54 4F 2D 31 0D 20 2E 57 4F 52 |ORD GOTO-1. .WOR| 00000960: 44 20 53 48 52 30 2D 31 0D 20 2E 57 4F 52 44 20 |D SHR0-1. .WORD | 00000970: 50 52 4F 54 45 43 2D 31 0D 20 2E 57 4F 52 44 20 |PROTEC-1. .WORD | 00000980: 44 4F 4E 45 2D 31 20 3B 20 42 49 54 58 0D 20 2E |DONE-1 ; BITX. .| 00000990: 57 4F 52 44 20 44 4F 4E 45 2D 31 20 3B 20 43 4C |WORD DONE-1 ; CL| 000009A0: 45 41 52 0D 20 2E 57 4F 52 44 20 43 4F 4E 2D 31 |EAR. .WORD CON-1| 000009B0: 20 20 20 3B 20 24 35 30 0D 20 2E 57 4F 52 44 20 | ; $50. .WORD | 000009C0: 43 4F 4E 31 36 2D 31 0D 20 2E 57 4F 52 44 20 43 |CON16-1. .WORD C| 000009D0: 4F 4E 50 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E |ONP-1. .WORD DON| 000009E0: 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D |E-1. .WORD DONE-| 000009F0: 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D |1. .WORD DONE-1.| 00000A00: 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E | .WORD DONE-1. .| 00000A10: 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F |WORD DONE-1. .WO| 00000A20: 52 44 20 44 4F 4E 45 2D 31 20 3B 20 24 35 38 0D |RD DONE-1 ; $58.| 00000A30: 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E | .WORD DONE-1. .| 00000A40: 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F |WORD DONE-1. .WO| 00000A50: 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 |RD DONE-1. .WORD| 00000A60: 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 | DONE-1. .WORD D| 00000A70: 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E |ONE-1. .WORD DON| 00000A80: 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D |E-1. .WORD DONE-| 00000A90: 31 0D 20 2E 57 4F 52 44 20 4F 46 46 53 45 54 2D |1. .WORD OFFSET-| 00000AA0: 31 20 3B 24 36 30 0D 20 2E 57 4F 52 44 20 49 46 |1 ;$60. .WORD IF| 00000AB0: 30 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D |0-1. .WORD DONE-| 00000AC0: 31 20 3B 20 50 52 50 4D 0D 20 2E 57 4F 52 44 20 |1 ; PRPM. .WORD | 00000AD0: 43 41 4C 4C 2D 31 0D 20 2E 57 4F 52 44 20 44 4F |CALL-1. .WORD DO| 00000AE0: 4E 45 2D 31 20 3B 20 52 4F 54 41 54 45 0D 20 2E |NE-1 ; ROTATE. .| 00000AF0: 57 4F 52 44 20 53 50 52 58 2D 31 0D 20 2E 57 4F |WORD SPRX-1. .WO| 00000B00: 52 44 20 53 50 52 59 2D 31 0D 20 2E 57 4F 52 44 |RD SPRY-1. .WORD| 00000B10: 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 | DONE-1. .WORD D| 00000B20: 4F 4E 45 2D 31 20 3B 24 36 38 0D 20 2E 57 4F 52 |ONE-1 ;$68. .WOR| 00000B30: 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 |D DONE-1. .WORD | 00000B40: 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F |DONE-1. .WORD DO| 00000B50: 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 |NE-1. .WORD DONE| 00000B60: 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 |-1. .WORD DONE-1| 00000B70: 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 |. .WORD DONE-1. | 00000B80: 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E 57 |.WORD DONE-1. .W| 00000B90: 4F 52 44 20 46 4F 52 2D 31 20 3B 24 37 30 0D 20 |ORD FOR-1 ;$70. | 00000BA0: 2E 57 4F 52 44 20 49 46 2D 31 0D 20 2E 57 4F 52 |.WORD IF-1. .WOR| 00000BB0: 44 20 52 4E 47 59 2D 31 0D 20 2E 57 4F 52 44 20 |D RNGY-1. .WORD | 00000BC0: 44 4F 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F |DONE-1. .WORD DO| 00000BD0: 4E 45 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 |NE-1. .WORD DONE| 00000BE0: 2D 31 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 |-1. .WORD DONE-1| 00000BF0: 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 |. .WORD DONE-1. | 00000C00: 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 20 3B 24 37 |.WORD DONE-1 ;$7| 00000C10: 38 0D 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D |8. .WORD DONE-1.| 00000C20: 20 2E 57 4F 52 44 20 44 4F 4E 45 2D 31 0D 20 2E | .WORD DONE-1. .| 00000C30: 57 4F 52 44 20 45 4C 53 45 2D 31 0D 20 2E 57 4F |WORD ELSE-1. .WO| 00000C40: 52 44 20 45 45 45 49 46 2D 31 0D 20 2E 57 4F 52 |RD EEEIF-1. .WOR| 00000C50: 44 20 45 4E 44 49 46 2D 31 0D 20 2E 57 4F 52 44 |D ENDIF-1. .WORD| 00000C60: 20 43 4C 52 2D 31 0D 20 2E 57 4F 52 44 20 52 55 | CLR-1. .WORD RU| 00000C70: 4E 2D 31 0D 3B 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |N-1.; ----------| 00000C80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000C90: 2D 2D 2D 0D 3B 20 20 4D 41 49 4E 0D 20 2A 20 3D |---.; MAIN. * =| 00000CA0: 20 42 41 53 45 2B 24 33 34 30 0D 20 4A 4D 50 20 | BASE+$340. JMP | 00000CB0: 4D 41 49 4E 0D 3B 4A 4D 50 20 4C 4F 4F 4B 20 20 |MAIN.;JMP LOOK | 00000CC0: 20 2A 2A 2A 0D 3B 4A 4D 50 20 53 45 54 20 20 20 | ***.;JMP SET | 00000CD0: 20 2A 2A 2A 0D 3B 4A 4D 50 20 51 50 0D 3B 0D 4D | ***.;JMP QP.;.M| 00000CE0: 41 49 4E 20 4C 44 41 20 24 38 30 30 31 0D 20 53 |AIN LDA $8001. S| 00000CF0: 54 41 20 50 43 4E 54 2B 31 0D 20 53 54 41 20 50 |TA PCNT+1. STA P| 00000D00: 43 53 56 45 2B 31 0D 20 4C 44 41 20 24 38 30 30 |CSVE+1. LDA $800| 00000D10: 30 0D 20 53 54 41 20 50 43 4E 54 0D 20 53 54 41 |0. STA PCNT. STA| 00000D20: 20 50 43 53 56 45 0D 20 4A 53 52 20 52 55 4E 31 | PCSVE. JSR RUN1| 00000D30: 0D 4C 4F 4F 50 20 4A 4D 50 20 45 58 45 43 55 54 |.LOOP JMP EXECUT| 00000D40: 0D 3B 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |.; -------------| 00000D50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000D60: 0D 3B 20 52 45 54 55 52 4E 20 56 41 52 20 56 41 |.; RETURN VAR VA| 00000D70: 4C 55 45 0D 3B 4C 4F 4F 4B 20 4C 44 41 20 24 38 |LUE.;LOOK LDA $8| 00000D80: 30 30 30 20 20 20 20 3C 3C 3C 3C 3C 3C 3C 3C 0D |000 <<<<<<<<.| 00000D90: 3B 41 53 4C 20 41 0D 3B 54 41 58 0D 3B 4C 44 41 |;ASL A.;TAX.;LDA| 00000DA0: 20 56 41 52 4C 2C 58 0D 3B 54 41 59 0D 3B 4C 44 | VARL,X.;TAY.;LD| 00000DB0: 41 20 56 41 52 48 2C 58 0D 3B 52 54 53 0D 3B 20 |A VARH,X.;RTS.; | 00000DC0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000DD0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 3B 20 |-------------.; | 00000DE0: 20 53 54 4F 52 45 20 56 41 52 20 56 41 4C 55 45 | STORE VAR VALUE| 00000DF0: 0D 3B 53 45 54 20 4C 44 41 20 24 38 30 30 30 20 |.;SET LDA $8000 | 00000E00: 20 20 20 3C 3C 3C 3C 3C 3C 3C 3C 3C 0D 3B 41 53 | <<<<<<<<<.;AS| 00000E10: 4C 20 41 0D 3B 54 41 59 0D 3B 4C 44 41 20 24 38 |L A.;TAY.;LDA $8| 00000E20: 30 30 33 0D 3B 53 54 41 20 56 41 52 48 2C 59 0D |003.;STA VARH,Y.| 00000E30: 3B 4C 44 41 20 24 38 30 30 32 0D 3B 53 54 41 20 |;LDA $8002.;STA | 00000E40: 56 41 52 4C 2C 59 0D 3B 52 54 53 0D 3B 20 2D 2D |VARL,Y.;RTS.; --| 00000E50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000E60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 3B 20 20 45 |-----------.; E| 00000E70: 58 45 43 55 54 45 20 31 20 49 4E 53 54 52 55 43 |XECUTE 1 INSTRUC| 00000E80: 54 49 4F 4E 0D 45 58 45 43 55 54 20 4C 44 59 20 |TION.EXECUT LDY | 00000E90: 23 24 30 30 0D 20 4C 44 41 20 28 50 43 4E 54 29 |#$00. LDA (PCNT)| 00000EA0: 2C 59 20 3B 47 45 54 20 4F 50 45 52 41 54 4F 52 |,Y ;GET OPERATOR| 00000EB0: 0D 20 53 54 41 20 4F 50 45 52 0D 20 42 49 54 20 |. STA OPER. BIT | 00000EC0: 4F 50 45 52 20 3B 20 54 45 53 54 20 4F 50 45 52 |OPER ; TEST OPER| 00000ED0: 41 54 4F 52 0D 20 42 50 4C 20 45 58 31 0D 20 41 |ATOR. BPL EX1. A| 00000EE0: 53 4C 20 41 20 3B 20 4C 4F 41 44 2F 53 54 4F 52 |SL A ; LOAD/STOR| 00000EF0: 45 20 56 41 52 49 41 42 4C 45 0D 20 41 4E 44 20 |E VARIABLE. AND | 00000F00: 23 24 37 46 0D 20 54 41 59 0D 20 42 56 53 20 45 |#$7F. TAY. BVS E| 00000F10: 58 30 0D 20 49 4E 58 0D 20 49 4E 58 0D 20 4A 53 |X0. INX. INX. JS| 00000F20: 52 20 4C 4F 41 44 0D 20 4A 4D 50 20 45 58 52 54 |R LOAD. JMP EXRT| 00000F30: 53 0D 45 58 30 20 4A 53 52 20 53 54 4F 52 45 0D |S.EX0 JSR STORE.| 00000F40: 20 4A 4D 50 20 50 4F 50 31 0D 3B 2D 2D 2D 2D 2D | JMP POP1.;-----| 00000F50: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000F60: 2D 2D 2D 2D 2D 2D 2D 0D 45 58 31 20 42 56 43 20 |-------.EX1 BVC | 00000F70: 45 58 32 20 3B 20 4E 4F 20 41 52 47 0D 20 43 4D |EX2 ; NO ARG. CM| 00000F80: 50 20 23 24 37 41 0D 20 42 43 53 20 53 50 45 43 |P #$7A. BCS SPEC| 00000F90: 0D 20 4A 53 52 20 49 4E 43 50 43 20 3B 20 49 4E |. JSR INCPC ; IN| 00000FA0: 43 52 45 4D 45 4E 54 20 50 43 0D 20 4C 44 41 20 |CREMENT PC. LDA | 00000FB0: 28 50 43 4E 54 29 2C 59 0D 20 53 54 41 20 41 52 |(PCNT),Y. STA AR| 00000FC0: 47 0D 45 58 32 20 4A 53 52 20 47 4F 20 3B 20 47 |G.EX2 JSR GO ; G| 00000FD0: 4F 20 54 4F 20 4F 50 45 52 41 54 4F 52 0D 45 58 |O TO OPERATOR.EX| 00000FE0: 44 4F 4E 45 20 4C 44 41 20 4F 50 45 52 0D 20 41 |DONE LDA OPER. A| 00000FF0: 53 4C 20 41 0D 20 41 53 4C 20 41 0D 20 53 54 41 |SL A. ASL A. STA| 00001000: 20 4F 50 45 52 0D 20 42 49 54 20 4F 50 45 52 0D | OPER. BIT OPER.| 00001010: 20 42 4D 49 20 45 58 34 20 3B 20 50 4F 50 20 4F | BMI EX4 ; POP O| 00001020: 52 20 50 4F 50 58 32 0D 20 42 56 43 20 45 58 52 |R POPX2. BVC EXR| 00001030: 54 53 20 3B 20 4E 4F 0D 45 50 55 53 48 20 49 4E |TS ; NO.EPUSH IN| 00001040: 58 0D 20 49 4E 58 0D 20 4A 4D 50 20 45 58 52 54 |X. INX. JMP EXRT| 00001050: 53 0D 45 58 34 20 44 45 58 0D 20 44 45 58 0D 20 |S.EX4 DEX. DEX. | 00001060: 42 56 43 20 45 58 52 54 53 0D 50 4F 50 31 20 44 |BVC EXRTS.POP1 D| 00001070: 45 58 0D 20 44 45 58 0D 45 58 52 54 53 20 4A 53 |EX. DEX.EXRTS JS| 00001080: 52 20 49 4E 43 50 43 0D 20 4A 4D 50 20 45 58 45 |R INCPC. JMP EXE| 00001090: 43 55 54 0D 3B 0D 53 50 45 43 20 4A 53 52 20 47 |CUT.;.SPEC JSR G| 000010A0: 4F 0D 20 4C 44 41 20 4F 50 45 52 0D 20 43 4D 50 |O. LDA OPER. CMP| 000010B0: 20 23 24 37 46 0D 20 42 45 51 20 53 50 45 43 31 | #$7F. BEQ SPEC1| 000010C0: 0D 20 4A 53 52 20 49 4E 43 50 43 0D 53 50 45 43 |. JSR INCPC.SPEC| 000010D0: 31 20 4A 4D 50 20 45 58 45 43 55 54 0D 3B 2D 2D |1 JMP EXECUT.;--| 000010E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 000010F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 49 4E 43 50 43 |----------.INCPC| 00001100: 20 49 4E 43 20 50 43 4E 54 0D 20 42 4E 45 20 49 | INC PCNT. BNE I| 00001110: 4E 43 50 43 31 0D 20 49 4E 43 20 50 43 4E 54 2B |NCPC1. INC PCNT+| 00001120: 31 0D 49 4E 43 50 43 31 20 52 54 53 0D 3B 2D 2D |1.INCPC1 RTS.;--| 00001130: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00001140: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 47 4F 20 4C 44 |----------.GO LD| 00001150: 41 20 4F 50 45 52 0D 20 41 53 4C 20 41 0D 20 54 |A OPER. ASL A. T| 00001160: 41 59 0D 20 4C 44 41 20 4F 50 54 42 4C 2B 31 2C |AY. LDA OPTBL+1,| 00001170: 59 0D 20 50 48 41 0D 20 4C 44 41 20 4F 50 54 42 |Y. PHA. LDA OPTB| 00001180: 4C 2C 59 0D 20 50 48 41 0D 20 4C 44 59 20 41 52 |L,Y. PHA. LDY AR| 00001190: 47 0D 20 52 54 53 20 3B 20 47 4F 20 21 21 0D 3B |G. RTS ; GO !!.;| 000011A0: 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D | ---------------| 000011B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 0D 3B |--------------.;| 000011C0: 20 20 49 4E 54 45 47 45 52 20 53 55 42 52 4F 55 | INTEGER SUBROU| 000011D0: 54 49 4E 45 53 0D 3B 0D 3B 20 20 4C 4F 41 44 2C |TINES.;.; LOAD,| 000011E0: 20 56 41 52 28 59 2B 56 50 4C 55 53 29 3D 3E 53 | VAR(Y+VPLUS)=>S| 000011F0: 54 4B 20 24 38 30 2D 24 42 46 0D 4C 4F 41 44 20 |TK $80-$BF.LOAD | 00001200: 43 50 59 20 56 4C 49 4D 0D 20 42 4D 49 20 4C 44 |CPY VLIM. BMI LD| 00001210: 4C 4F 0D 20 54 59 41 0D 20 43 4C 43 0D 20 41 44 |LO. TYA. CLC. AD| 00001220: 43 20 56 50 4C 55 53 0D 20 54 41 59 0D 4C 44 4C |C VPLUS. TAY.LDL| 00001230: 4F 20 4C 44 41 20 56 41 52 4C 2C 59 0D 20 53 54 |O LDA VARL,Y. ST| 00001240: 41 20 53 54 4C 2C 58 0D 20 4C 44 41 20 56 41 52 |A STL,X. LDA VAR| 00001250: 48 2C 59 0D 20 53 54 41 20 53 54 48 2C 58 0D 20 |H,Y. STA STH,X. | 00001260: 52 54 53 0D 3B 0D 3B 20 20 53 54 4F 52 45 2C 20 |RTS.;.; STORE, | 00001270: 53 54 4B 3D 3E 56 41 52 28 59 2B 56 50 4C 55 53 |STK=>VAR(Y+VPLUS| 00001280: 29 20 24 43 30 2D 24 46 46 0D 53 54 4F 52 45 20 |) $C0-$FF.STORE | 00001290: 43 50 59 20 56 4C 49 4D 0D 20 42 4D 49 20 53 54 |CPY VLIM. BMI ST| 000012A0: 4C 4F 0D 20 54 59 41 0D 20 43 4C 43 0D 20 41 44 |LO. TYA. CLC. AD| 000012B0: 43 20 56 50 4C 55 53 0D 20 54 41 59 0D 53 54 4C |C VPLUS. TAY.STL| 000012C0: 4F 20 4C 44 41 20 53 54 4C 2C 58 0D 20 53 54 41 |O LDA STL,X. STA| 000012D0: 20 56 41 52 4C 2C 59 0D 20 4C 44 41 20 53 54 48 | VARL,Y. LDA STH| 000012E0: 2C 58 0D 20 53 54 41 20 56 41 52 48 2C 59 0D 20 |,X. STA VARH,Y. | 000012F0: 52 54 53 0D 3B 0D 3B 20 4F 46 46 53 45 54 2C 20 |RTS.;.; OFFSET, | 00001300: 53 54 4B 3D 3E 56 50 4C 55 53 20 59 3D 3E 56 4C |STK=>VPLUS Y=>VL| 00001310: 49 4D 20 24 36 30 0D 4F 46 46 53 45 54 20 54 59 |IM $60.OFFSET TY| 00001320: 41 0D 20 41 53 4C 20 41 0D 20 53 54 41 20 56 4C |A. ASL A. STA VL| 00001330: 49 4D 0D 20 4C 44 41 20 53 54 4C 2C 58 0D 20 41 |IM. LDA STL,X. A| 00001340: 53 4C 20 41 0D 20 53 54 41 20 56 50 4C 55 53 0D |SL A. STA VPLUS.| 00001350: 20 52 54 53 0D 3B 0D 3B 20 20 41 44 44 2C 20 53 | RTS.;.; ADD, S| 00001360: 54 4B 2B 4F 50 52 3D 3E 4F 50 52 20 24 32 30 0D |TK+OPR=>OPR $20.| 00001370: 41 44 44 20 43 4C 43 0D 20 4C 44 41 20 53 54 4C |ADD CLC. LDA STL| 00001380: 2C 58 0D 20 41 44 43 20 4F 50 4C 2C 58 0D 20 53 |,X. ADC OPL,X. S| 00001390: 54 41 20 4F 50 4C 2C 58 0D 20 4C 44 41 20 53 54 |TA OPL,X. LDA ST| 000013A0: 48 2C 58 0D 20 41 44 43 20 4F 50 48 2C 58 0D 20 |H,X. ADC OPH,X. | 000013B0: 53 54 41 20 4F 50 48 2C 58 0D 20 52 54 53 0D 3B |STA OPH,X. RTS.;| 000013C0: 0D 3B 20 20 53 55 42 2C 20 4F 50 52 2D 53 54 4B |.; SUB, OPR-STK| 000013D0: 3D 3E 4F 50 52 20 24 32 31 0D 53 55 42 20 53 45 |=>OPR $21.SUB SE| 000013E0: 43 0D 20 4C 44 41 20 4F 50 4C 2C 58 0D 20 53 42 |C. LDA OPL,X. SB| 000013F0: 43 20 53 54 4C 2C 58 0D 20 53 54 41 20 4F 50 4C |C STL,X. STA OPL| 00001400: 2C 58 0D 20 4C 44 41 20 4F 50 48 2C 58 0D 20 53 |,X. LDA OPH,X. S| 00001410: 42 43 20 53 54 48 2C 58 0D 20 53 54 41 20 4F 50 |BC STH,X. STA OP| 00001420: 48 2C 58 0D 20 52 54 53 0D 3B 0D 3B 20 20 4D 55 |H,X. RTS.;.; MU| 00001430: 4C 54 2C 20 53 54 4B 2A 4F 50 52 3D 3E 4F 50 52 |LT, STK*OPR=>OPR| 00001440: 20 24 32 32 0D 3B 20 31 36 20 42 49 54 20 50 52 | $22.; 16 BIT PR| 00001450: 45 43 49 53 49 4F 4E 0D 4D 55 4C 54 20 4C 44 59 |ECISION.MULT LDY| 00001460: 20 23 24 31 30 0D 4D 32 20 4C 44 41 20 23 24 30 | #$10.M2 LDA #$0| 00001470: 30 0D 20 53 54 41 20 53 54 58 32 2C 58 0D 20 53 |0. STA STX2,X. S| 00001480: 54 41 20 53 54 58 31 2C 58 0D 4D 55 4C 54 32 20 |TA STX1,X.MULT2 | 00001490: 4C 44 41 20 53 54 4C 2C 58 0D 20 4C 53 52 20 41 |LDA STL,X. LSR A| 000014A0: 0D 20 42 43 43 20 4D 55 4C 54 34 20 3B 42 49 54 |. BCC MULT4 ;BIT| 000014B0: 20 4F 46 46 0D 20 43 4C 43 0D 20 4C 44 41 20 53 | OFF. CLC. LDA S| 000014C0: 54 58 31 2C 58 0D 20 41 44 43 20 4F 50 4C 2C 58 |TX1,X. ADC OPL,X| 000014D0: 0D 20 53 54 41 20 53 54 58 31 2C 58 0D 20 4C 44 |. STA STX1,X. LD| 000014E0: 41 20 53 54 58 32 2C 58 0D 20 41 44 43 20 4F 50 |A STX2,X. ADC OP| 000014F0: 48 2C 58 0D 20 53 54 41 20 53 54 58 32 2C 58 0D |H,X. STA STX2,X.| 00001500: 4D 55 4C 54 34 20 52 4F 52 20 53 54 58 32 2C 58 |MULT4 ROR STX2,X| 00001510: 0D 20 52 4F 52 20 53 54 58 31 2C 58 0D 20 52 4F |. ROR STX1,X. RO| 00001520: 52 20 53 54 48 2C 58 0D 20 52 4F 52 20 53 54 4C |R STH,X. ROR STL| 00001530: 2C 58 0D 20 44 45 59 0D 20 42 4E 45 20 4D 55 4C |,X. DEY. BNE MUL| 00001540: 54 32 0D 50 55 4E 43 48 20 4C 44 41 20 53 54 4C |T2.PUNCH LDA STL| 00001550: 2C 58 0D 20 53 54 41 20 4F 50 4C 2C 58 0D 20 4C |,X. STA OPL,X. L| 00001560: 44 41 20 53 54 48 2C 58 0D 20 53 54 41 20 4F 50 |DA STH,X. STA OP| 00001570: 48 2C 58 0D 20 52 54 53 0D 3B 0D 3B 20 20 53 48 |H,X. RTS.;.; SH| 00001580: 49 46 54 20 52 49 47 48 54 2C 20 53 54 4B 2F 28 |IFT RIGHT, STK/(| 00001590: 32 5E 59 29 3D 3E 53 54 4B 20 24 34 31 0D 53 48 |2^Y)=>STK $41.SH| 000015A0: 49 46 54 52 20 4C 44 41 20 53 54 48 2C 58 0D 20 |IFTR LDA STH,X. | 000015B0: 52 4F 4C 20 41 0D 20 52 4F 52 20 53 54 48 2C 58 |ROL A. ROR STH,X| 000015C0: 0D 20 52 4F 52 20 53 54 4C 2C 58 0D 20 44 45 59 |. ROR STL,X. DEY| 000015D0: 0D 20 42 4E 45 20 53 48 49 46 54 52 0D 20 52 54 |. BNE SHIFTR. RT| 000015E0: 53 0D 3B 0D 3B 20 53 48 49 46 54 20 52 49 47 48 |S.;.; SHIFT RIGH| 000015F0: 54 20 50 4F 53 49 54 49 56 45 2C 20 24 34 43 0D |T POSITIVE, $4C.| 00001600: 53 48 52 30 20 3D 20 2A 0D 20 4C 53 52 20 53 54 |SHR0 = *. LSR ST| 00001610: 48 2C 58 0D 20 52 4F 52 20 53 54 4C 2C 58 0D 20 |H,X. ROR STL,X. | 00001620: 44 45 59 0D 20 42 4E 45 20 53 48 52 30 0D 20 52 |DEY. BNE SHR0. R| 00001630: 54 53 0D 3B 0D 3B 20 20 53 48 49 46 54 20 4C 45 |TS.;.; SHIFT LE| 00001640: 46 54 2C 20 53 54 4B 2A 28 32 5E 59 29 3D 53 54 |FT, STK*(2^Y)=ST| 00001650: 4B 20 24 34 32 0D 53 48 49 46 54 4C 20 3D 20 2A |K $42.SHIFTL = *| 00001660: 0D 20 41 53 4C 20 53 54 4C 2C 58 0D 20 52 4F 4C |. ASL STL,X. ROL| 00001670: 20 53 54 48 2C 58 0D 20 44 45 59 0D 20 42 4E 45 | STH,X. DEY. BNE| 00001680: 20 53 48 49 46 54 4C 0D 20 52 54 53 0D 3B 0D 3B | SHIFTL. RTS.;.;| 00001690: 20 4E 45 47 41 54 45 2C 20 2D 53 54 4B 3D 3E 53 | NEGATE, -STK=>S| 000016A0: 54 4B 20 24 30 32 0D 4E 45 47 20 53 45 43 0D 20 |TK $02.NEG SEC. | 000016B0: 4C 44 41 20 23 24 30 0D 20 53 42 43 20 53 54 4C |LDA #$0. SBC STL| 000016C0: 2C 58 0D 20 53 54 41 20 53 54 4C 2C 58 0D 20 4C |,X. STA STL,X. L| 000016D0: 44 41 20 23 24 30 0D 20 53 42 43 20 53 54 48 2C |DA #$0. SBC STH,| 000016E0: 58 0D 20 53 54 41 20 53 54 48 2C 58 0D 20 52 54 |X. STA STH,X. RT| 000016F0: 53 0D 3B 0D 4E 45 47 4F 50 52 20 53 45 43 0D 20 |S.;.NEGOPR SEC. | 00001700: 4C 44 41 20 23 30 0D 20 53 42 43 20 4F 50 4C 2C |LDA #0. SBC OPL,| 00001710: 58 0D 20 53 54 41 20 4F 50 4C 2C 58 0D 20 4C 44 |X. STA OPL,X. LD| 00001720: 41 20 23 24 30 0D 20 53 42 43 20 4F 50 48 2C 58 |A #$0. SBC OPH,X| 00001730: 0D 20 53 54 41 20 4F 50 48 2C 58 0D 20 52 54 53 |. STA OPH,X. RTS| 00001740: 0D 3B 0D 3B 20 20 42 49 54 2C 20 46 49 52 53 54 |.;.; BIT, FIRST| 00001750: 20 42 49 54 20 53 45 54 2C 20 24 35 45 0D 3B 42 | BIT SET, $5E.;B| 00001760: 49 54 58 20 4C 44 59 20 23 30 0D 3B 20 54 59 41 |ITX LDY #0.; TYA| 00001770: 0D 3B 20 53 54 41 20 53 54 48 2C 58 0D 3B 42 49 |.; STA STH,X.;BI| 00001780: 54 31 20 4C 53 52 20 53 54 4C 2C 58 0D 3B 20 42 |T1 LSR STL,X.; B| 00001790: 43 53 20 42 49 54 32 0D 3B 20 49 4E 59 0D 3B 20 |CS BIT2.; INY.; | 000017A0: 43 50 59 20 23 38 0D 3B 20 42 4D 49 20 42 49 54 |CPY #8.; BMI BIT| 000017B0: 31 0D 3B 42 49 54 32 20 54 59 41 0D 3B 20 53 54 |1.;BIT2 TYA.; ST| 000017C0: 41 20 53 54 4C 2C 58 0D 3B 20 52 54 53 0D 3B 0D |A STL,X.; RTS.;.| 000017D0: 3B 20 43 41 4C 4C 2C 20 41 53 4D 20 53 55 42 52 |; CALL, ASM SUBR| 000017E0: 4F 55 54 49 4E 45 3B 20 59 3D 50 55 53 48 20 46 |OUTINE; Y=PUSH F| 000017F0: 4C 41 47 0D 43 41 4C 4C 20 44 45 59 20 3B 20 54 |LAG.CALL DEY ; T| 00001800: 45 53 54 20 46 4F 52 20 41 52 47 0D 20 42 4D 49 |EST FOR ARG. BMI| 00001810: 20 43 41 4C 4C 31 0D 20 4C 44 41 20 53 54 4C 2C | CALL1. LDA STL,| 00001820: 58 0D 20 53 54 41 20 24 38 30 30 30 0D 20 4C 44 |X. STA $8000. LD| 00001830: 41 20 53 54 48 2C 58 0D 20 53 54 41 20 24 38 30 |A STH,X. STA $80| 00001840: 30 31 0D 20 44 45 58 0D 20 44 45 58 0D 43 41 4C |01. DEX. DEX.CAL| 00001850: 4C 31 20 3D 20 2A 0D 20 4C 44 41 20 53 54 4C 2C |L1 = *. LDA STL,| 00001860: 58 0D 20 42 4E 45 20 43 41 4C 4C 32 0D 20 44 45 |X. BNE CALL2. DE| 00001870: 43 20 53 54 48 2C 58 0D 43 41 4C 4C 32 20 4C 44 |C STH,X.CALL2 LD| 00001880: 41 20 53 54 48 2C 58 0D 20 50 48 41 0D 20 4C 44 |A STH,X. PHA. LD| 00001890: 59 20 53 54 4C 2C 58 0D 20 44 45 59 0D 20 54 59 |Y STL,X. DEY. TY| 000018A0: 41 0D 20 50 48 41 0D 20 52 54 53 0D 3B 0D 3B 20 |A. PHA. RTS.;.; | 000018B0: 20 43 4F 4E 53 54 41 4E 54 2D 38 20 42 49 54 53 | CONSTANT-8 BITS| 000018C0: 2C 20 59 3D 3E 53 54 4B 20 30 2D 32 35 35 20 24 |, Y=>STK 0-255 $| 000018D0: 35 32 0D 43 4F 4E 50 20 4C 44 41 20 23 30 0D 20 |52.CONP LDA #0. | 000018E0: 49 4E 58 0D 20 49 4E 58 0D 20 53 54 41 20 53 54 |INX. INX. STA ST| 000018F0: 48 2C 58 0D 20 54 59 41 0D 20 53 54 41 20 53 54 |H,X. TYA. STA ST| 00001900: 4C 2C 58 0D 20 44 45 58 0D 20 44 45 58 0D 20 52 |L,X. DEX. DEX. R| 00001910: 54 53 0D 3B 0D 3B 20 20 43 4F 4E 53 54 41 4E 54 |TS.;.; CONSTANT| 00001920: 2D 38 20 42 49 54 53 2C 20 59 3D 3E 53 54 4B 20 |-8 BITS, Y=>STK | 00001930: 31 32 37 2F 2D 31 32 38 20 24 35 30 0D 43 4F 4E |127/-128 $50.CON| 00001940: 20 49 4E 58 0D 20 49 4E 58 0D 20 4A 53 52 20 43 | INX. INX. JSR C| 00001950: 4F 4E 30 0D 20 44 45 58 0D 20 44 45 58 0D 50 4F |ON0. DEX. DEX.PO| 00001960: 50 20 52 54 53 20 3B 20 50 4F 50 2C 20 20 24 32 |P RTS ; POP, $2| 00001970: 42 0D 3B 0D 43 4F 4E 30 20 4C 44 41 20 23 24 30 |B.;.CON0 LDA #$0| 00001980: 30 0D 20 53 54 41 20 53 54 48 2C 58 0D 20 54 59 |0. STA STH,X. TY| 00001990: 41 0D 20 42 50 4C 20 43 4F 4E 31 0D 20 44 45 43 |A. BPL CON1. DEC| 000019A0: 20 53 54 48 2C 58 20 3B 20 4E 45 47 41 54 49 56 | STH,X ; NEGATIV| 000019B0: 45 20 43 4F 4E 53 54 0D 43 4F 4E 31 20 53 54 41 |E CONST.CON1 STA| 000019C0: 20 53 54 4C 2C 58 20 3B 24 30 30 20 4F 52 20 24 | STL,X ;$00 OR $| 000019D0: 46 46 0D 20 52 54 53 0D 3B 0D 3B 20 43 4F 4E 53 |FF. RTS.;.; CONS| 000019E0: 54 41 4E 54 2D 31 36 20 42 49 54 53 2C 20 59 2C |TANT-16 BITS, Y,| 000019F0: 41 3D 3E 53 54 4B 20 24 35 31 0D 43 4F 4E 31 36 |A=>STK $51.CON16| 00001A00: 20 54 59 41 0D 20 49 4E 58 0D 20 49 4E 58 0D 20 | TYA. INX. INX. | 00001A10: 53 54 41 20 53 54 4C 2C 58 0D 20 4A 53 52 20 49 |STA STL,X. JSR I| 00001A20: 4E 43 50 43 0D 20 4C 44 59 20 23 24 30 30 0D 20 |NCPC. LDY #$00. | 00001A30: 4C 44 41 20 28 50 43 4E 54 29 2C 59 0D 20 53 54 |LDA (PCNT),Y. ST| 00001A40: 41 20 53 54 48 2C 58 0D 20 44 45 58 0D 20 44 45 |A STH,X. DEX. DE| 00001A50: 58 0D 20 52 54 53 0D 3B 0D 3B 0D 3B 0D 3B 20 53 |X. RTS.;.;.;.; S| 00001A60: 50 52 49 54 45 20 43 4F 4D 4D 41 4E 44 53 0D 3B |PRITE COMMANDS.;| 00001A70: 0D 42 4D 41 53 4B 20 2E 42 59 54 45 20 24 46 45 |.BMASK .BYTE $FE| 00001A80: 2C 24 30 31 2C 24 46 44 2C 24 30 32 2C 24 46 42 |,$01,$FD,$02,$FB| 00001A90: 2C 24 30 34 2C 24 46 37 2C 24 30 38 0D 20 2E 42 |,$04,$F7,$08. .B| 00001AA0: 59 54 45 20 24 45 46 2C 24 31 30 2C 24 44 46 2C |YTE $EF,$10,$DF,| 00001AB0: 24 32 30 2C 24 42 46 2C 24 34 30 2C 24 37 46 2C |$20,$BF,$40,$7F,| 00001AC0: 24 38 30 0D 20 2E 42 59 54 45 20 24 46 45 2C 24 |$80. .BYTE $FE,$| 00001AD0: 30 31 2C 24 46 44 2C 24 30 32 2C 24 46 42 2C 24 |01,$FD,$02,$FB,$| 00001AE0: 30 34 2C 24 46 37 2C 24 30 38 0D 20 2E 42 59 54 |04,$F7,$08. .BYT| 00001AF0: 45 20 24 46 45 2C 24 30 31 2C 24 46 44 2C 24 30 |E $FE,$01,$FD,$0| 00001B00: 32 2C 24 46 42 2C 24 30 34 2C 24 46 37 2C 24 30 |2,$FB,$04,$F7,$0| 00001B10: 38 0D 20 2E 42 59 54 45 20 24 45 46 2C 24 31 30 |8. .BYTE $EF,$10| 00001B20: 2C 24 44 46 2C 24 32 30 2C 24 42 46 2C 24 34 30 |,$DF,$20,$BF,$40| 00001B30: 2C 24 37 46 2C 24 38 30 0D 20 2E 42 59 54 45 20 |,$7F,$80. .BYTE | 00001B40: 24 46 45 2C 24 30 31 2C 24 46 44 2C 24 30 32 2C |$FE,$01,$FD,$02,| 00001B50: 24 46 42 2C 24 30 34 2C 24 46 37 2C 24 30 38 0D |$FB,$04,$F7,$08.| 00001B60: 4D 4F 46 53 54 20 2E 57 4F 52 44 20 30 2C 30 2C |MOFST .WORD 0,0,| 00001B70: 30 2C 30 2C 30 2C 30 2C 30 2C 30 0D 20 2E 57 4F |0,0,0,0,0,0. .WO| 00001B80: 52 44 20 31 2C 31 2C 31 2C 31 0D 20 2E 57 4F 52 |RD 1,1,1,1. .WOR| 00001B90: 44 20 32 2C 32 2C 32 2C 32 2C 32 2C 32 2C 32 2C |D 2,2,2,2,2,2,2,| 00001BA0: 32 0D 20 2E 57 4F 52 44 20 33 2C 33 2C 33 2C 33 |2. .WORD 3,3,3,3| 00001BB0: 0D 3B 0D 3B 20 53 50 58 2C 20 53 54 4B 20 3D 3E |.;.; SPX, STK =>| 00001BC0: 20 53 50 52 45 47 58 20 5B 59 5D 28 20 4F 52 20 | SPREGX [Y]( OR | 00001BD0: 5B 56 41 52 5B 59 5D 5D 20 29 0D 3B 0D 53 50 52 |[VAR[Y]] ).;.SPR| 00001BE0: 58 20 3D 20 2A 0D 20 4A 53 52 20 53 50 32 59 20 |X = *. JSR SP2Y | 00001BF0: 3B 20 47 45 54 20 53 50 52 49 54 45 20 4E 55 4D |; GET SPRITE NUM| 00001C00: 42 45 52 20 4F 46 46 53 45 54 0D 20 4C 44 41 20 |BER OFFSET. LDA | 00001C10: 53 54 4C 2C 58 0D 20 53 54 41 20 53 50 30 58 2C |STL,X. STA SP0X,| 00001C20: 59 20 3B 20 53 54 4F 52 45 20 4C 53 20 42 59 54 |Y ; STORE LS BYT| 00001C30: 45 0D 20 4C 44 41 20 42 4D 41 53 4B 2B 31 2C 59 |E. LDA BMASK+1,Y| 00001C40: 20 3B 20 53 54 4F 52 45 20 4D 53 20 42 49 54 0D | ; STORE MS BIT.| 00001C50: 20 50 48 41 0D 20 4C 44 41 20 42 4D 41 53 4B 2C | PHA. LDA BMASK,| 00001C60: 59 0D 20 50 48 41 0D 20 4C 44 41 20 4D 4F 46 53 |Y. PHA. LDA MOFS| 00001C70: 54 2C 59 0D 20 54 41 59 0D 20 50 4C 41 0D 20 41 |T,Y. TAY. PLA. A| 00001C80: 4E 44 20 4D 53 42 52 45 47 2C 59 0D 20 53 54 41 |ND MSBREG,Y. STA| 00001C90: 20 54 4D 50 31 0D 20 4C 44 41 20 53 54 48 2C 58 | TMP1. LDA STH,X| 00001CA0: 0D 20 52 4F 52 20 41 0D 20 50 4C 41 0D 20 42 43 |. ROR A. PLA. BC| 00001CB0: 43 20 53 50 58 31 20 3B 20 53 45 54 20 4D 53 42 |C SPX1 ; SET MSB| 00001CC0: 0D 20 4F 52 41 20 54 4D 50 31 0D 20 53 54 41 20 |. ORA TMP1. STA | 00001CD0: 54 4D 50 31 0D 53 50 58 31 20 4C 44 41 20 54 4D |TMP1.SPX1 LDA TM| 00001CE0: 50 31 0D 20 53 54 41 20 4D 53 42 52 45 47 2C 59 |P1. STA MSBREG,Y| 00001CF0: 0D 20 52 54 53 0D 3B 0D 3B 0D 3B 20 53 50 59 2C |. RTS.;.;.; SPY,| 00001D00: 20 53 54 4B 20 3D 3E 20 53 50 52 45 47 59 20 5B | STK => SPREGY [| 00001D10: 59 5D 28 20 4F 52 20 56 41 52 29 0D 53 50 52 59 |Y]( OR VAR).SPRY| 00001D20: 20 3D 20 2A 0D 20 4A 53 52 20 53 50 32 59 0D 20 | = *. JSR SP2Y. | 00001D30: 4C 44 41 20 53 54 4C 2C 58 0D 20 53 54 41 20 53 |LDA STL,X. STA S| 00001D40: 50 30 59 2C 59 0D 20 52 54 53 0D 3B 0D 53 50 32 |P0Y,Y. RTS.;.SP2| 00001D50: 59 20 3D 20 2A 0D 20 4C 44 41 20 41 52 47 20 3B |Y = *. LDA ARG ;| 00001D60: 20 49 46 20 41 52 47 20 3E 20 31 32 37 2C 20 41 | IF ARG > 127, A| 00001D70: 52 47 20 49 53 20 53 50 52 49 54 45 0D 20 42 4D |RG IS SPRITE. BM| 00001D80: 49 20 53 50 32 59 31 0D 20 41 53 4C 20 41 20 3B |I SP2Y1. ASL A ;| 00001D90: 20 45 4C 53 45 20 56 41 52 20 5B 41 52 47 5D 20 | ELSE VAR [ARG] | 00001DA0: 49 53 20 53 50 52 49 54 45 20 4E 55 4D 42 45 52 |IS SPRITE NUMBER| 00001DB0: 0D 20 54 41 59 0D 20 4C 44 41 20 56 41 52 4C 2C |. TAY. LDA VARL,| 00001DC0: 59 0D 53 50 32 59 31 20 3D 20 2A 0D 20 41 53 4C |Y.SP2Y1 = *. ASL| 00001DD0: 20 41 0D 20 54 41 59 0D 20 52 54 53 0D 3B 0D 3B | A. TAY. RTS.;.;| 00001DE0: 0D 3B 20 57 4F 52 44 2C 20 57 4F 52 44 28 53 54 |.; WORD, WORD(ST| 00001DF0: 4B 29 3D 3E 53 54 4B 20 24 30 46 0D 57 52 44 20 |K)=>STK $0F.WRD | 00001E00: 4C 44 59 20 53 54 4C 2C 58 0D 20 4A 4D 50 20 43 |LDY STL,X. JMP C| 00001E10: 4F 4E 30 0D 3B 0D 3B 20 20 52 4E 44 2C 20 53 54 |ON0.;.; RND, ST| 00001E20: 4B 2A 52 4E 44 3D 3E 53 54 4B 20 24 30 38 0D 52 |K*RND=>STK $08.R| 00001E30: 4E 44 20 49 4E 58 20 3B 20 46 41 4B 45 20 53 54 |ND INX ; FAKE ST| 00001E40: 41 43 4B 0D 20 49 4E 58 0D 20 4C 44 41 20 52 41 |ACK. INX. LDA RA| 00001E50: 4E 44 4F 4D 0D 52 4E 44 45 20 53 54 41 20 53 54 |NDOM.RNDE STA ST| 00001E60: 4C 2C 58 0D 20 4C 44 41 20 23 24 30 30 0D 20 53 |L,X. LDA #$00. S| 00001E70: 54 41 20 53 54 48 2C 58 0D 20 53 54 41 20 54 4D |TA STH,X. STA TM| 00001E80: 50 31 0D 20 4C 44 41 20 4F 50 48 2C 58 0D 20 42 |P1. LDA OPH,X. B| 00001E90: 50 4C 20 52 4E 44 32 0D 20 4A 53 52 20 4E 45 47 |PL RND2. JSR NEG| 00001EA0: 4F 50 52 20 3B 20 41 42 53 28 4F 50 52 29 0D 20 |OPR ; ABS(OPR). | 00001EB0: 49 4E 43 20 54 4D 50 31 0D 52 4E 44 32 20 4C 44 |INC TMP1.RND2 LD| 00001EC0: 59 20 23 38 0D 20 4A 53 52 20 4D 32 20 3B 20 44 |Y #8. JSR M2 ; D| 00001ED0: 4F 20 4D 55 4C 54 0D 20 4C 44 41 20 53 54 58 32 |O MULT. LDA STX2| 00001EE0: 2C 58 0D 20 53 54 41 20 4F 50 48 2C 58 0D 20 4C |,X. STA OPH,X. L| 00001EF0: 44 41 20 53 54 58 31 2C 58 20 20 3B 20 4E 4F 52 |DA STX1,X ; NOR| 00001F00: 4D 41 4C 49 5A 45 0D 20 53 54 41 20 4F 50 4C 2C |MALIZE. STA OPL,| 00001F10: 58 0D 20 4C 44 41 20 54 4D 50 31 0D 20 42 45 51 |X. LDA TMP1. BEQ| 00001F20: 20 52 4E 44 33 0D 20 4A 53 52 20 4E 45 47 4F 50 | RND3. JSR NEGOP| 00001F30: 52 0D 52 4E 44 33 20 44 45 58 20 3B 20 52 45 53 |R.RND3 DEX ; RES| 00001F40: 54 4F 52 45 20 53 54 41 43 4B 0D 20 44 45 58 0D |TORE STACK. DEX.| 00001F50: 20 52 54 53 0D 3B 0D 3B 0D 42 59 54 58 20 4C 44 | RTS.;.;.BYTX LD| 00001F60: 41 20 23 24 30 30 20 3B 20 20 42 59 54 45 2C 20 |A #$00 ; BYTE, | 00001F70: 53 54 4B 26 46 46 3D 3E 53 54 4B 20 24 30 37 0D |STK&FF=>STK $07.| 00001F80: 20 53 54 41 20 53 54 48 2C 58 20 3B 20 30 0D 20 | STA STH,X ; 0. | 00001F90: 52 54 53 0D 3B 0D 3B 0D 3B 20 20 41 42 53 2C 20 |RTS.;.;.; ABS, | 00001FA0: 41 42 53 28 53 54 4B 29 3D 3E 53 54 4B 20 24 30 |ABS(STK)=>STK $0| 00001FB0: 39 0D 41 42 53 20 4C 44 41 20 53 54 48 2C 58 0D |9.ABS LDA STH,X.| 00001FC0: 20 42 50 4C 20 41 42 53 31 0D 20 4A 53 52 20 4E | BPL ABS1. JSR N| 00001FD0: 45 47 20 3B 20 4E 45 47 41 54 45 20 49 46 20 4E |EG ; NEGATE IF N| 00001FE0: 45 47 0D 41 42 53 31 20 52 54 53 0D 3B 0D 3B 20 |EG.ABS1 RTS.;.; | 00001FF0: 20 53 47 4E 2C 20 53 47 4E 28 53 54 4B 29 3D 3E | SGN, SGN(STK)=>| 00002000: 53 54 4B 20 24 30 41 0D 53 47 4E 20 4C 44 41 20 |STK $0A.SGN LDA | 00002010: 53 54 48 2C 58 0D 20 42 50 4C 20 53 47 4E 31 0D |STH,X. BPL SGN1.| 00002020: 20 4C 44 59 20 23 24 46 46 20 3B 3C 30 0D 20 4A | LDY #$FF ;<0. J| 00002030: 4D 50 20 43 4F 4E 30 0D 53 47 4E 31 20 42 45 51 |MP CON0.SGN1 BEQ| 00002040: 20 53 47 4E 32 0D 20 4C 44 59 20 23 24 30 31 0D | SGN2. LDY #$01.| 00002050: 20 4A 4D 50 20 43 4F 4E 30 20 3B 3E 30 0D 53 47 | JMP CON0 ;>0.SG| 00002060: 4E 32 20 4C 44 41 20 53 54 4C 2C 58 0D 20 42 4E |N2 LDA STL,X. BN| 00002070: 45 20 53 47 4E 31 0D 20 4C 44 59 20 23 24 30 30 |E SGN1. LDY #$00| 00002080: 20 3B 3D 30 0D 20 4A 4D 50 20 43 4F 4E 30 0D 3B | ;=0. JMP CON0.;| 00002090: 0D 3B 20 20 50 45 45 4B 2C 20 50 45 45 4B 28 53 |.; PEEK, PEEK(S| 000020A0: 54 4B 29 3D 3E 53 54 4B 20 24 30 42 0D 50 45 45 |TK)=>STK $0B.PEE| 000020B0: 4B 20 4A 53 52 20 55 53 52 20 3B 53 54 4B 3D 3E |K JSR USR ;STK=>| 000020C0: 46 52 30 0D 20 4C 44 41 20 23 24 30 30 0D 20 53 |FR0. LDA #$00. S| 000020D0: 54 41 20 53 54 48 2C 58 0D 20 4C 44 59 20 23 24 |TA STH,X. LDY #$| 000020E0: 30 30 0D 20 4C 44 41 20 28 46 52 30 29 2C 59 0D |00. LDA (FR0),Y.| 000020F0: 20 53 54 41 20 53 54 4C 2C 58 0D 20 52 54 53 0D | STA STL,X. RTS.| 00002100: 3B 0D 3B 20 20 50 4F 4B 45 2C 20 4F 50 52 3D 3E |;.; POKE, OPR=>| 00002110: 4C 4F 43 28 53 54 4B 29 20 24 33 30 0D 50 4F 4B |LOC(STK) $30.POK| 00002120: 45 20 4A 53 52 20 55 53 52 20 3B 53 54 4B 3D 3E |E JSR USR ;STK=>| 00002130: 46 52 30 0D 20 4C 44 59 20 23 24 30 30 0D 50 4F |FR0. LDY #$00.PO| 00002140: 4B 45 30 20 4C 44 41 20 4F 50 4C 2C 58 0D 20 53 |KE0 LDA OPL,X. S| 00002150: 54 41 20 28 46 52 30 29 2C 59 0D 20 52 54 53 0D |TA (FR0),Y. RTS.| 00002160: 3B 0D 50 4F 4B 45 59 20 4A 53 52 20 55 53 52 0D |;.POKEY JSR USR.| 00002170: 20 4C 44 59 20 56 41 52 4C 0D 20 4A 4D 50 20 50 | LDY VARL. JMP P| 00002180: 4F 4B 45 30 0D 3B 0D 3B 20 52 41 4E 47 45 2C 20 |OKE0.;.; RANGE, | 00002190: 56 41 4C 55 45 2C 20 4F 50 52 3D 4C 4F 20 53 54 |VALUE, OPR=LO ST| 000021A0: 4B 3D 48 49 20 24 33 35 0D 3B 20 50 4F 53 49 54 |K=HI $35.; POSIT| 000021B0: 49 56 45 20 56 41 4C 55 45 53 20 4F 4E 4C 59 20 |IVE VALUES ONLY | 000021C0: 21 21 0D 52 41 4E 47 45 20 4C 44 41 20 4F 50 48 |!!.RANGE LDA OPH| 000021D0: 2D 32 2C 58 0D 20 42 4D 49 20 4F 52 4E 47 4C 4F |-2,X. BMI ORNGLO| 000021E0: 0D 20 43 4D 50 20 53 54 48 2C 58 0D 20 42 4E 45 |. CMP STH,X. BNE| 000021F0: 20 43 50 48 49 0D 20 4C 44 41 20 4F 50 4C 2D 32 | CPHI. LDA OPL-2| 00002200: 2C 58 0D 20 43 4D 50 20 53 54 4C 2C 58 0D 43 50 |,X. CMP STL,X.CP| 00002210: 48 49 20 42 43 53 20 4F 52 4E 47 48 49 0D 20 4C |HI BCS ORNGHI. L| 00002220: 44 41 20 4F 50 48 2D 32 2C 58 0D 20 43 4D 50 20 |DA OPH-2,X. CMP | 00002230: 4F 50 48 2C 58 0D 20 42 4E 45 20 43 50 4C 4F 0D |OPH,X. BNE CPLO.| 00002240: 20 4C 44 41 20 4F 50 4C 2D 32 2C 58 0D 20 43 4D | LDA OPL-2,X. CM| 00002250: 50 20 4F 50 4C 2C 58 0D 43 50 4C 4F 20 42 43 43 |P OPL,X.CPLO BCC| 00002260: 20 4F 52 4E 47 4C 4F 0D 20 52 54 53 0D 3B 0D 4F | ORNGLO. RTS.;.O| 00002270: 52 4E 47 48 49 20 4C 44 41 20 53 54 48 2C 58 0D |RNGHI LDA STH,X.| 00002280: 20 53 54 41 20 4F 50 48 2D 32 2C 58 0D 20 4C 44 | STA OPH-2,X. LD| 00002290: 41 20 53 54 4C 2C 58 0D 20 53 54 41 20 4F 50 4C |A STL,X. STA OPL| 000022A0: 2D 32 2C 58 0D 20 52 54 53 0D 4F 52 4E 47 4C 4F |-2,X. RTS.ORNGLO| 000022B0: 20 4C 44 41 20 4F 50 48 2C 58 0D 20 53 54 41 20 | LDA OPH,X. STA | 000022C0: 4F 50 48 2D 32 2C 58 0D 20 4C 44 41 20 4F 50 4C |OPH-2,X. LDA OPL| 000022D0: 2C 58 0D 20 53 54 41 20 4F 50 4C 2D 32 2C 58 0D |,X. STA OPL-2,X.| 000022E0: 20 52 54 53 0D 3B 0D 3B 20 20 52 41 4E 47 45 59 | RTS.;.; RANGEY| 000022F0: 2C 20 56 41 4C 55 45 2C 20 4F 50 52 3D 4C 4F 20 |, VALUE, OPR=LO | 00002300: 53 54 4B 3D 48 49 20 24 37 32 0D 3B 20 50 4F 53 |STK=HI $72.; POS| 00002310: 49 54 49 56 45 20 56 41 4C 55 45 53 20 4F 4E 4C |ITIVE VALUES ONL| 00002320: 59 20 21 21 0D 52 4E 47 59 20 4C 44 41 20 4F 50 |Y !!.RNGY LDA OP| 00002330: 48 2D 32 2C 58 0D 20 42 4D 49 20 4F 52 4E 47 0D |H-2,X. BMI ORNG.| 00002340: 20 43 4D 50 20 53 54 48 2C 58 0D 20 42 4E 45 20 | CMP STH,X. BNE | 00002350: 43 50 30 48 49 0D 20 4C 44 41 20 4F 50 4C 2D 32 |CP0HI. LDA OPL-2| 00002360: 2C 58 0D 20 43 4D 50 20 53 54 4C 2C 58 0D 43 50 |,X. CMP STL,X.CP| 00002370: 30 48 49 20 42 43 53 20 4F 52 4E 47 0D 20 4C 44 |0HI BCS ORNG. LD| 00002380: 41 20 4F 50 48 2D 32 2C 58 0D 20 43 4D 50 20 4F |A OPH-2,X. CMP O| 00002390: 50 48 2C 58 0D 20 42 4E 45 20 43 50 30 4C 4F 0D |PH,X. BNE CP0LO.| 000023A0: 20 4C 44 41 20 4F 50 4C 2D 32 2C 58 0D 20 43 4D | LDA OPL-2,X. CM| 000023B0: 50 20 4F 50 4C 2C 58 0D 43 50 30 4C 4F 20 42 43 |P OPL,X.CP0LO BC| 000023C0: 43 20 4F 52 4E 47 0D 20 52 54 53 0D 4F 52 4E 47 |C ORNG. RTS.ORNG| 000023D0: 20 4C 44 41 20 23 30 0D 20 53 54 41 20 4F 50 48 | LDA #0. STA OPH| 000023E0: 2D 32 2C 58 0D 20 54 59 41 0D 20 53 54 41 20 4F |-2,X. TYA. STA O| 000023F0: 50 4C 2D 32 2C 58 0D 20 52 54 53 0D 3B 0D 3B 20 |PL-2,X. RTS.;.; | 00002400: 20 53 54 49 43 4B 2C 20 28 53 54 4B 29 3D 3E 53 | STICK, (STK)=>S| 00002410: 54 4B 2D 58 2C 4F 50 52 2D 59 20 24 31 30 0D 53 |TK-X,OPR-Y $10.S| 00002420: 54 49 43 4B 20 4C 44 59 20 53 54 4C 2C 58 0D 20 |TICK LDY STL,X. | 00002430: 4C 44 41 20 24 44 43 30 30 2C 59 0D 20 4C 44 59 |LDA $DC00,Y. LDY| 00002440: 20 23 24 30 30 0D 20 52 4F 52 20 41 0D 20 42 43 | #$00. ROR A. BC| 00002450: 53 20 53 54 31 0D 20 4C 44 59 20 23 24 46 46 0D |S ST1. LDY #$FF.| 00002460: 53 54 31 20 52 4F 52 20 41 0D 20 42 43 53 20 53 |ST1 ROR A. BCS S| 00002470: 54 32 0D 20 4C 44 59 20 23 24 30 31 0D 53 54 32 |T2. LDY #$01.ST2| 00002480: 20 50 48 41 0D 20 4A 53 52 20 43 4F 4E 30 20 3B | PHA. JSR CON0 ;| 00002490: 20 44 59 0D 20 50 4C 41 0D 20 4C 44 59 20 23 24 | DY. PLA. LDY #$| 000024A0: 30 30 0D 20 52 4F 52 20 41 0D 20 42 43 53 20 53 |00. ROR A. BCS S| 000024B0: 54 33 0D 20 44 45 59 0D 53 54 33 20 52 4F 52 20 |T3. DEY.ST3 ROR | 000024C0: 41 0D 20 42 43 53 20 53 54 34 0D 20 4C 44 59 20 |A. BCS ST4. LDY | 000024D0: 23 24 30 31 0D 53 54 34 20 4A 4D 50 20 43 4F 4E |#$01.ST4 JMP CON| 000024E0: 20 3B 20 44 58 0D 3B 0D 3B 20 20 53 54 52 49 47 | ; DX.;.; STRIG| 000024F0: 2C 20 28 53 54 4B 29 3D 3E 53 54 4B 20 24 30 34 |, (STK)=>STK $04| 00002500: 0D 53 54 52 49 47 20 4C 44 59 20 53 54 4C 2C 58 |.STRIG LDY STL,X| 00002510: 0D 20 4C 44 41 20 24 44 43 30 30 2C 59 0D 20 52 |. LDA $DC00,Y. R| 00002520: 4F 52 20 41 0D 20 52 4F 52 20 41 0D 20 52 4F 52 |OR A. ROR A. ROR| 00002530: 20 41 0D 20 52 4F 52 20 41 0D 20 41 4E 44 20 23 | A. ROR A. AND #| 00002540: 31 0D 20 45 4F 52 20 23 31 0D 20 53 54 41 20 53 |1. EOR #1. STA S| 00002550: 54 4C 2C 58 0D 20 4C 44 41 20 23 24 30 30 0D 20 |TL,X. LDA #$00. | 00002560: 53 54 41 20 53 54 48 2C 58 0D 20 52 54 53 0D 3B |STA STH,X. RTS.;| 00002570: 0D 3B 20 20 49 4E 43 2C 20 53 54 4B 2B 31 3D 3E |.; INC, STK+1=>| 00002580: 53 54 4B 20 24 30 35 0D 49 4E 43 52 20 49 4E 43 |STK $05.INCR INC| 00002590: 20 53 54 4C 2C 58 0D 20 42 4E 45 20 49 4E 43 31 | STL,X. BNE INC1| 000025A0: 0D 20 49 4E 43 20 53 54 48 2C 58 0D 49 4E 43 31 |. INC STH,X.INC1| 000025B0: 20 52 54 53 0D 3B 0D 3B 20 20 44 45 43 2C 20 53 | RTS.;.; DEC, S| 000025C0: 54 4B 2D 31 3D 3E 53 54 4B 20 24 30 36 0D 44 45 |TK-1=>STK $06.DE| 000025D0: 43 52 20 4C 44 41 20 53 54 4C 2C 58 0D 20 42 4E |CR LDA STL,X. BN| 000025E0: 45 20 44 45 43 31 0D 20 44 45 43 20 53 54 48 2C |E DEC1. DEC STH,| 000025F0: 58 0D 44 45 43 31 20 44 45 43 20 53 54 4C 2C 58 |X.DEC1 DEC STL,X| 00002600: 0D 20 52 54 53 0D 3B 0D 3B 20 20 44 55 50 2C 20 |. RTS.;.; DUP, | 00002610: 53 54 4B 3D 3E 53 54 4B 2B 32 20 24 31 31 0D 44 |STK=>STK+2 $11.D| 00002620: 55 50 20 4C 44 41 20 53 54 4C 2C 58 0D 20 53 54 |UP LDA STL,X. ST| 00002630: 41 20 53 54 58 31 2C 58 0D 20 4C 44 41 20 53 54 |A STX1,X. LDA ST| 00002640: 48 2C 58 0D 20 53 54 41 20 53 54 58 32 2C 58 0D |H,X. STA STX2,X.| 00002650: 20 52 54 53 0D 3B 0D 3B 20 20 44 50 4F 4B 45 2C | RTS.;.; DPOKE,| 00002660: 20 4F 50 52 3D 3E 4C 4F 43 28 53 54 4B 29 20 24 | OPR=>LOC(STK) $| 00002670: 33 34 0D 44 50 4F 4B 45 20 4C 44 59 20 23 24 30 |34.DPOKE LDY #$0| 00002680: 30 0D 20 4A 53 52 20 55 53 52 20 3B 53 54 4B 3D |0. JSR USR ;STK=| 00002690: 3E 46 52 30 0D 20 4C 44 41 20 4F 50 4C 2C 58 0D |>FR0. LDA OPL,X.| 000026A0: 20 53 54 41 20 28 46 52 30 29 2C 59 0D 20 49 4E | STA (FR0),Y. IN| 000026B0: 59 0D 20 4C 44 41 20 4F 50 48 2C 58 0D 20 53 54 |Y. LDA OPH,X. ST| 000026C0: 41 20 28 46 52 30 29 2C 59 0D 20 52 54 53 0D 3B |A (FR0),Y. RTS.;| 000026D0: 0D 3B 20 20 44 50 45 45 4B 2C 20 50 45 45 4B 28 |.; DPEEK, PEEK(| 000026E0: 53 54 4B 29 3D 3E 53 54 4B 20 24 30 44 0D 44 50 |STK)=>STK $0D.DP| 000026F0: 45 45 4B 20 4C 44 59 20 23 24 30 30 0D 20 4A 53 |EEK LDY #$00. JS| 00002700: 52 20 55 53 52 0D 20 4C 44 41 20 28 46 52 30 29 |R USR. LDA (FR0)| 00002710: 2C 59 0D 20 53 54 41 20 53 54 4C 2C 58 0D 20 49 |,Y. STA STL,X. I| 00002720: 4E 59 0D 20 4C 44 41 20 28 46 52 30 29 2C 59 0D |NY. LDA (FR0),Y.| 00002730: 20 53 54 41 20 53 54 48 2C 58 0D 20 52 54 53 0D | STA STH,X. RTS.| 00002740: 3B 0D 3B 20 20 44 4F 4E 45 20 24 30 30 0D 44 4F |;.; DONE $00.DO| 00002750: 4E 45 20 50 4C 41 0D 20 50 4C 41 0D 20 4C 44 59 |NE PLA. PLA. LDY| 00002760: 20 46 52 30 0D 20 4C 44 41 20 46 52 30 2B 31 0D | FR0. LDA FR0+1.| 00002770: 20 52 54 53 0D 3B 0D 3B 20 44 49 56 49 44 45 2C | RTS.;.; DIVIDE,| 00002780: 20 4F 50 52 2F 53 54 4B 3D 3E 4F 50 52 20 24 32 | OPR/STK=>OPR $2| 00002790: 33 0D 44 49 56 20 4C 44 41 20 23 24 30 30 0D 20 |3.DIV LDA #$00. | 000027A0: 53 54 41 20 46 4C 41 47 0D 20 4A 53 52 20 44 49 |STA FLAG. JSR DI| 000027B0: 56 38 0D 20 44 45 58 0D 20 44 45 58 0D 20 4A 53 |V8. DEX. DEX. JS| 000027C0: 52 20 44 49 56 38 0D 20 49 4E 58 0D 20 49 4E 58 |R DIV8. INX. INX| 000027D0: 0D 20 4C 44 41 20 23 24 30 30 0D 20 53 54 41 20 |. LDA #$00. STA | 000027E0: 53 54 58 33 2C 58 0D 20 53 54 41 20 53 54 58 34 |STX3,X. STA STX4| 000027F0: 2C 58 0D 20 53 54 41 20 53 54 58 31 2C 58 0D 20 |,X. STA STX1,X. | 00002800: 53 54 41 20 53 54 58 32 2C 58 0D 20 4C 44 59 20 |STA STX2,X. LDY | 00002810: 23 24 31 30 20 3B 20 31 36 20 42 49 54 53 0D 44 |#$10 ; 16 BITS.D| 00002820: 49 56 31 20 41 53 4C 20 53 54 58 33 2C 58 0D 20 |IV1 ASL STX3,X. | 00002830: 52 4F 4C 20 53 54 58 34 2C 58 0D 20 41 53 4C 20 |ROL STX4,X. ASL | 00002840: 4F 50 4C 2C 58 0D 20 52 4F 4C 20 4F 50 48 2C 58 |OPL,X. ROL OPH,X| 00002850: 0D 20 52 4F 4C 20 53 54 58 31 2C 58 0D 20 52 4F |. ROL STX1,X. RO| 00002860: 4C 20 53 54 58 32 2C 58 0D 20 53 45 43 0D 20 4C |L STX2,X. SEC. L| 00002870: 44 41 20 53 54 58 31 2C 58 0D 20 53 42 43 20 53 |DA STX1,X. SBC S| 00002880: 54 4C 2C 58 0D 20 53 54 41 20 54 4D 50 31 20 3B |TL,X. STA TMP1 ;| 00002890: 20 52 45 4D 41 49 4E 44 45 52 0D 20 4C 44 41 20 | REMAINDER. LDA | 000028A0: 53 54 58 32 2C 58 0D 20 53 42 43 20 53 54 48 2C |STX2,X. SBC STH,| 000028B0: 58 0D 20 53 54 41 20 54 4D 50 32 0D 20 42 43 43 |X. STA TMP2. BCC| 000028C0: 20 44 49 56 32 0D 20 49 4E 43 20 53 54 58 33 2C | DIV2. INC STX3,| 000028D0: 58 20 3B 20 52 45 53 55 4C 54 0D 20 4C 44 41 20 |X ; RESULT. LDA | 000028E0: 54 4D 50 31 20 3B 20 52 45 4D 20 3D 3E 20 44 49 |TMP1 ; REM => DI| 000028F0: 56 0D 20 53 54 41 20 53 54 58 31 2C 58 0D 20 4C |V. STA STX1,X. L| 00002900: 44 41 20 54 4D 50 32 0D 20 53 54 41 20 53 54 58 |DA TMP2. STA STX| 00002910: 32 2C 58 0D 44 49 56 32 20 44 45 59 0D 20 42 4E |2,X.DIV2 DEY. BN| 00002920: 45 20 44 49 56 31 0D 20 4C 44 41 20 53 54 58 34 |E DIV1. LDA STX4| 00002930: 2C 58 20 3B 20 52 45 53 55 4C 54 20 3D 3E 20 4F |,X ; RESULT => O| 00002940: 50 52 0D 20 53 54 41 20 53 54 48 2C 58 0D 20 4C |PR. STA STH,X. L| 00002950: 44 41 20 53 54 58 33 2C 58 0D 20 53 54 41 20 53 |DA STX3,X. STA S| 00002960: 54 4C 2C 58 0D 20 4C 44 41 20 46 4C 41 47 0D 20 |TL,X. LDA FLAG. | 00002970: 42 45 51 20 44 49 56 33 0D 20 4A 53 52 20 4E 45 |BEQ DIV3. JSR NE| 00002980: 47 0D 44 49 56 33 20 4A 4D 50 20 50 55 4E 43 48 |G.DIV3 JMP PUNCH| 00002990: 0D 3B 0D 44 49 56 38 20 4C 44 41 20 53 54 48 2C |.;.DIV8 LDA STH,| 000029A0: 58 0D 20 42 50 4C 20 44 49 56 39 0D 20 4A 53 52 |X. BPL DIV9. JSR| 000029B0: 20 4E 45 47 0D 20 4C 44 41 20 23 24 30 31 0D 20 | NEG. LDA #$01. | 000029C0: 45 4F 52 20 46 4C 41 47 0D 20 53 54 41 20 46 4C |EOR FLAG. STA FL| 000029D0: 41 47 0D 44 49 56 39 20 52 54 53 0D 3B 0D 3B 20 |AG.DIV9 RTS.;.; | 000029E0: 20 46 4F 52 2C 20 4F 50 52 3D 3E 56 41 52 28 59 | FOR, OPR=>VAR(Y| 000029F0: 29 2C 53 54 4B 3D 3E 4C 49 4D 20 24 37 30 0D 46 |),STK=>LIM $70.F| 00002A00: 4F 52 20 44 45 58 0D 20 44 45 58 0D 20 54 59 41 |OR DEX. DEX. TYA| 00002A10: 20 3B 20 56 41 52 20 49 4E 44 45 58 0D 20 41 53 | ; VAR INDEX. AS| 00002A20: 4C 20 41 0D 20 54 41 59 0D 20 4A 53 52 20 53 54 |L A. TAY. JSR ST| 00002A30: 4F 52 45 20 3B 20 4F 50 52 3D 3E 56 41 52 28 58 |ORE ; OPR=>VAR(X| 00002A40: 29 0D 20 53 54 59 20 59 53 41 56 45 0D 20 4C 44 |). STY YSAVE. LD| 00002A50: 59 20 46 4F 52 50 20 3B 20 46 4F 52 20 50 4E 54 |Y FORP ; FOR PNT| 00002A60: 52 0D 20 4C 44 41 20 53 54 58 31 2C 58 20 3B 20 |R. LDA STX1,X ; | 00002A70: 53 41 56 45 20 4C 49 4D 0D 20 53 54 41 20 46 4C |SAVE LIM. STA FL| 00002A80: 4D 4C 2C 59 0D 20 4C 44 41 20 53 54 58 32 2C 58 |ML,Y. LDA STX2,X| 00002A90: 0D 20 53 54 41 20 46 4C 4D 48 2C 59 0D 20 4C 44 |. STA FLMH,Y. LD| 00002AA0: 41 20 50 43 4E 54 20 3B 20 53 41 56 45 20 50 43 |A PCNT ; SAVE PC| 00002AB0: 0D 20 53 54 41 20 46 50 43 4C 2C 59 0D 20 4C 44 |. STA FPCL,Y. LD| 00002AC0: 41 20 50 43 4E 54 2B 31 0D 20 53 54 41 20 46 50 |A PCNT+1. STA FP| 00002AD0: 43 48 2C 59 0D 20 4C 44 41 20 59 53 41 56 45 20 |CH,Y. LDA YSAVE | 00002AE0: 3B 20 53 41 56 45 20 56 41 52 23 0D 20 53 54 41 |; SAVE VAR#. STA| 00002AF0: 20 46 56 41 52 2C 59 0D 20 49 4E 59 20 3B 20 4E | FVAR,Y. INY ; N| 00002B00: 45 58 54 20 46 53 54 41 43 4B 0D 20 49 4E 59 0D |EXT FSTACK. INY.| 00002B10: 20 49 4E 59 0D 20 49 4E 59 0D 20 49 4E 59 0D 20 | INY. INY. INY. | 00002B20: 53 54 59 20 46 4F 52 50 0D 20 49 4E 58 0D 20 49 |STY FORP. INX. I| 00002B30: 4E 58 0D 20 52 54 53 0D 3B 0D 3B 20 20 4E 45 58 |NX. RTS.;.; NEX| 00002B40: 54 2C 20 28 59 29 20 24 34 30 0D 4E 45 58 54 20 |T, (Y) $40.NEXT | 00002B50: 53 54 59 20 59 53 41 56 45 0D 20 41 53 4C 20 59 |STY YSAVE. ASL Y| 00002B60: 53 41 56 45 20 3B 20 56 41 52 20 49 4E 44 45 58 |SAVE ; VAR INDEX| 00002B70: 0D 20 53 54 58 20 58 53 41 56 45 0D 20 4C 44 59 |. STX XSAVE. LDY| 00002B80: 20 46 4F 52 50 0D 20 53 54 59 20 46 53 41 56 45 | FORP. STY FSAVE| 00002B90: 0D 4E 58 54 31 20 44 45 59 0D 20 44 45 59 0D 20 |.NXT1 DEY. DEY. | 00002BA0: 44 45 59 0D 20 44 45 59 0D 20 44 45 59 0D 20 53 |DEY. DEY. DEY. S| 00002BB0: 54 59 20 46 4F 52 50 0D 20 42 4D 49 20 4E 58 54 |TY FORP. BMI NXT| 00002BC0: 39 20 3B 20 45 52 52 4F 52 0D 20 4C 44 41 20 46 |9 ; ERROR. LDA F| 00002BD0: 56 41 52 2C 59 20 3B 20 46 49 4E 44 20 46 4F 52 |VAR,Y ; FIND FOR| 00002BE0: 20 45 4E 54 52 59 0D 20 43 4D 50 20 59 53 41 56 | ENTRY. CMP YSAV| 00002BF0: 45 0D 20 42 4E 45 20 4E 58 54 31 0D 20 4C 44 58 |E. BNE NXT1. LDX| 00002C00: 20 59 53 41 56 45 0D 20 49 4E 43 20 56 41 52 4C | YSAVE. INC VARL| 00002C10: 2C 58 0D 20 42 4E 45 20 4E 58 54 32 0D 20 49 4E |,X. BNE NXT2. IN| 00002C20: 43 20 56 41 52 48 2C 58 0D 4E 58 54 32 20 53 45 |C VARH,X.NXT2 SE| 00002C30: 43 0D 20 4C 44 41 20 46 4C 4D 4C 2C 59 0D 20 53 |C. LDA FLML,Y. S| 00002C40: 42 43 20 56 41 52 4C 2C 58 0D 20 4C 44 41 20 46 |BC VARL,X. LDA F| 00002C50: 4C 4D 48 2C 59 0D 20 53 42 43 20 56 41 52 48 2C |LMH,Y. SBC VARH,| 00002C60: 58 0D 20 42 4D 49 20 4E 58 54 39 0D 20 4C 44 41 |X. BMI NXT9. LDA| 00002C70: 20 46 50 43 4C 2C 59 20 3B 20 47 4F 20 42 41 43 | FPCL,Y ; GO BAC| 00002C80: 4B 0D 20 53 54 41 20 50 43 4E 54 0D 20 4C 44 41 |K. STA PCNT. LDA| 00002C90: 20 46 50 43 48 2C 59 0D 20 53 54 41 20 50 43 4E | FPCH,Y. STA PCN| 00002CA0: 54 2B 31 0D 20 4C 44 59 20 46 53 41 56 45 0D 20 |T+1. LDY FSAVE. | 00002CB0: 53 54 59 20 46 4F 52 50 0D 4E 58 54 39 20 4C 44 |STY FORP.NXT9 LD| 00002CC0: 58 20 58 53 41 56 45 0D 20 52 54 53 0D 3B 0D 3B |X XSAVE. RTS.;.;| 00002CD0: 20 20 47 4F 54 4F 2C 20 59 20 24 34 42 0D 47 4F | GOTO, Y $4B.GO| 00002CE0: 54 4F 20 53 54 59 20 59 53 41 56 45 0D 20 4A 4D |TO STY YSAVE. JM| 00002CF0: 50 20 47 4F 53 55 42 30 0D 3B 0D 3B 20 20 47 4F |P GOSUB0.;.; GO| 00002D00: 53 55 42 2C 20 50 43 2B 59 20 24 34 34 0D 47 4F |SUB, PC+Y $44.GO| 00002D10: 53 55 42 20 53 54 59 20 59 53 41 56 45 0D 20 4C |SUB STY YSAVE. L| 00002D20: 44 59 20 47 4F 50 0D 20 4C 44 41 20 50 43 4E 54 |DY GOP. LDA PCNT| 00002D30: 0D 20 53 54 41 20 47 50 43 4C 2C 59 0D 20 4C 44 |. STA GPCL,Y. LD| 00002D40: 41 20 50 43 4E 54 2B 31 0D 20 53 54 41 20 47 50 |A PCNT+1. STA GP| 00002D50: 43 48 2C 59 0D 20 44 45 59 0D 20 44 45 59 0D 20 |CH,Y. DEY. DEY. | 00002D60: 53 54 59 20 47 4F 50 0D 47 4F 53 55 42 30 20 4C |STY GOP.GOSUB0 L| 00002D70: 44 59 20 59 53 41 56 45 0D 20 4C 44 41 20 4A 4D |DY YSAVE. LDA JM| 00002D80: 50 48 49 2C 59 0D 20 42 45 51 20 47 4F 53 55 42 |PHI,Y. BEQ GOSUB| 00002D90: 33 0D 20 53 54 41 20 50 43 4E 54 2B 31 0D 20 4C |3. STA PCNT+1. L| 00002DA0: 44 41 20 4A 4D 50 4C 4F 2C 59 0D 20 53 54 41 20 |DA JMPLO,Y. STA | 00002DB0: 50 43 4E 54 0D 20 52 54 53 0D 3B 0D 47 4F 53 55 |PCNT. RTS.;.GOSU| 00002DC0: 42 33 20 4C 44 41 20 50 43 53 56 45 0D 20 53 54 |B3 LDA PCSVE. ST| 00002DD0: 41 20 50 43 4E 54 0D 20 4C 44 41 20 50 43 53 56 |A PCNT. LDA PCSV| 00002DE0: 45 2B 31 0D 20 53 54 41 20 50 43 4E 54 2B 31 0D |E+1. STA PCNT+1.| 00002DF0: 20 4C 44 59 20 23 30 0D 47 4F 53 55 42 31 20 4A | LDY #0.GOSUB1 J| 00002E00: 53 52 20 53 43 41 4E 0D 20 43 4D 50 20 23 24 34 |SR SCAN. CMP #$4| 00002E10: 35 20 3B 20 53 42 52 3F 0D 20 42 4E 45 20 47 4F |5 ; SBR?. BNE GO| 00002E20: 53 55 42 31 0D 20 4A 53 52 20 49 4E 43 50 43 0D |SUB1. JSR INCPC.| 00002E30: 20 4C 44 41 20 28 50 43 4E 54 29 2C 59 0D 20 43 | LDA (PCNT),Y. C| 00002E40: 4D 50 20 59 53 41 56 45 0D 20 42 45 51 20 47 4F |MP YSAVE. BEQ GO| 00002E50: 53 55 42 32 0D 20 4A 53 52 20 49 4E 43 50 43 0D |SUB2. JSR INCPC.| 00002E60: 20 4A 4D 50 20 47 4F 53 55 42 31 0D 47 4F 53 55 | JMP GOSUB1.GOSU| 00002E70: 42 32 20 4C 44 59 20 59 53 41 56 45 0D 20 4C 44 |B2 LDY YSAVE. LD| 00002E80: 41 20 50 43 4E 54 0D 20 53 54 41 20 4A 4D 50 4C |A PCNT. STA JMPL| 00002E90: 4F 2C 59 0D 20 4C 44 41 20 50 43 4E 54 2B 31 0D |O,Y. LDA PCNT+1.| 00002EA0: 20 53 54 41 20 4A 4D 50 48 49 2C 59 0D 20 52 54 | STA JMPHI,Y. RT| 00002EB0: 53 0D 3B 0D 3B 20 20 52 45 54 55 52 4E 2C 20 24 |S.;.; RETURN, $| 00002EC0: 30 31 0D 52 45 54 55 52 4E 20 4C 44 59 20 47 4F |01.RETURN LDY GO| 00002ED0: 50 0D 20 49 4E 59 0D 20 49 4E 59 0D 20 4C 44 41 |P. INY. INY. LDA| 00002EE0: 20 47 50 43 4C 2C 59 0D 20 53 54 41 20 50 43 4E | GPCL,Y. STA PCN| 00002EF0: 54 0D 20 4C 44 41 20 47 50 43 48 2C 59 0D 20 53 |T. LDA GPCH,Y. S| 00002F00: 54 41 20 50 43 4E 54 2B 31 0D 20 53 54 59 20 47 |TA PCNT+1. STY G| 00002F10: 4F 50 0D 20 52 54 53 0D 3B 0D 3B 20 20 55 53 52 |OP. RTS.;.; USR| 00002F20: 2C 20 53 54 4B 3D 3E 46 52 30 20 24 32 45 0D 55 |, STK=>FR0 $2E.U| 00002F30: 53 52 20 4C 44 41 20 53 54 4C 2C 58 0D 20 53 54 |SR LDA STL,X. ST| 00002F40: 41 20 46 52 30 0D 20 4C 44 41 20 53 54 48 2C 58 |A FR0. LDA STH,X| 00002F50: 0D 20 53 54 41 20 46 52 30 2B 31 0D 20 52 54 53 |. STA FR0+1. RTS| 00002F60: 0D 3B 0D 3B 0D 3B 20 20 50 52 49 4E 54 20 2B 2F |.;.;.; PRINT +/| 00002F70: 2D 2C 20 53 54 4B 20 59 3D 23 42 4C 41 4E 4B 53 |-, STK Y=#BLANKS| 00002F80: 20 24 36 32 0D 3B 0D 3B 20 49 46 2C 20 53 47 4E | $62.;.; IF, SGN| 00002F90: 28 4F 50 52 2D 53 54 4B 29 3D 59 20 24 37 31 0D |(OPR-STK)=Y $71.| 00002FA0: 49 46 20 53 54 59 20 59 53 41 56 45 0D 20 4A 53 |IF STY YSAVE. JS| 00002FB0: 52 20 53 55 42 0D 20 44 45 58 0D 20 44 45 58 0D |R SUB. DEX. DEX.| 00002FC0: 20 4A 53 52 20 53 47 4E 0D 20 49 4E 58 0D 20 49 | JSR SGN. INX. I| 00002FD0: 4E 58 0D 20 4C 44 41 20 4F 50 4C 2C 58 0D 49 46 |NX. LDA OPL,X.IF| 00002FE0: 39 20 43 4D 50 20 59 53 41 56 45 0D 20 42 45 51 |9 CMP YSAVE. BEQ| 00002FF0: 20 45 45 45 49 46 20 3B 20 54 52 55 45 0D 45 4C | EEEIF ; TRUE.EL| 00003000: 53 45 20 4C 44 59 20 23 24 30 30 20 3B 45 4C 53 |SE LDY #$00 ;ELS| 00003010: 2C 20 24 37 42 0D 20 53 54 59 20 4C 45 56 45 4C |, $7B. STY LEVEL| 00003020: 0D 49 46 31 20 4A 53 52 20 53 43 41 4E 20 3B 20 |.IF1 JSR SCAN ; | 00003030: 46 49 4E 44 20 45 4E 44 49 46 0D 20 43 4D 50 20 |FIND ENDIF. CMP | 00003040: 23 24 37 44 0D 20 42 45 51 20 45 49 46 0D 20 43 |#$7D. BEQ EIF. C| 00003050: 4D 50 20 23 24 37 43 20 3B 20 4F 52 20 53 55 50 |MP #$7C ; OR SUP| 00003060: 45 52 20 45 49 46 0D 20 42 45 51 20 45 45 45 49 |ER EIF. BEQ EEEI| 00003070: 46 0D 20 43 4D 50 20 23 24 37 42 20 3B 20 4F 52 |F. CMP #$7B ; OR| 00003080: 20 45 4C 53 45 0D 20 42 4E 45 20 49 46 32 0D 20 | ELSE. BNE IF2. | 00003090: 4C 44 41 20 4C 45 56 45 4C 0D 20 42 4E 45 20 49 |LDA LEVEL. BNE I| 000030A0: 46 31 0D 20 42 45 51 20 45 45 45 49 46 0D 49 46 |F1. BEQ EEEIF.IF| 000030B0: 32 20 43 4D 50 20 23 24 32 35 20 3B 20 49 46 54 |2 CMP #$25 ; IFT| 000030C0: 0D 20 42 45 51 20 49 46 33 0D 20 43 4D 50 20 23 |. BEQ IF3. CMP #| 000030D0: 24 32 36 20 3B 20 49 46 46 0D 20 42 45 51 20 49 |$26 ; IFF. BEQ I| 000030E0: 46 33 0D 20 43 4D 50 20 23 24 36 31 20 3B 20 49 |F3. CMP #$61 ; I| 000030F0: 46 30 0D 20 42 45 51 20 49 46 33 0D 20 43 4D 50 |F0. BEQ IF3. CMP| 00003100: 20 23 24 37 31 20 3B 20 49 46 0D 20 42 4E 45 20 | #$71 ; IF. BNE | 00003110: 49 46 31 0D 49 46 33 20 49 4E 43 20 4C 45 56 45 |IF1.IF3 INC LEVE| 00003120: 4C 20 3B 20 50 52 4F 43 45 53 53 20 49 46 0D 20 |L ; PROCESS IF. | 00003130: 42 4E 45 20 49 46 31 20 3B 20 41 4C 57 41 59 53 |BNE IF1 ; ALWAYS| 00003140: 20 42 52 41 4E 43 48 45 53 0D 45 49 46 20 44 45 | BRANCHES.EIF DE| 00003150: 43 20 4C 45 56 45 4C 20 3B 20 50 52 4F 43 45 53 |C LEVEL ; PROCES| 00003160: 53 20 45 49 46 53 0D 20 42 50 4C 20 49 46 31 20 |S EIFS. BPL IF1 | 00003170: 3B 20 41 4C 57 41 59 53 20 42 52 41 4E 43 48 45 |; ALWAYS BRANCHE| 00003180: 53 0D 50 52 4F 54 45 43 20 20 20 3B 20 24 34 44 |S.PROTEC ; $4D| 00003190: 0D 45 45 45 49 46 20 20 20 20 3B 20 53 55 50 45 |.EEEIF ; SUPE| 000031A0: 52 20 45 4E 44 49 46 20 24 37 43 0D 53 42 52 20 |R ENDIF $7C.SBR | 000031B0: 20 20 20 20 20 3B 20 4C 41 42 45 4C 20 4F 50 20 | ; LABEL OP | 000031C0: 24 34 35 0D 45 4E 44 49 46 20 52 54 53 20 3B 20 |$45.ENDIF RTS ; | 000031D0: 45 4E 44 49 46 20 24 37 44 0D 3B 0D 3B 20 20 49 |ENDIF $7D.;.; I| 000031E0: 46 54 2C 20 53 47 4E 28 53 54 4B 29 3D 31 20 24 |FT, SGN(STK)=1 $| 000031F0: 32 35 0D 49 46 54 20 4C 44 59 20 23 24 30 31 0D |25.IFT LDY #$01.| 00003200: 3B 0D 3B 20 20 49 46 30 2C 20 53 47 4E 28 53 54 |;.; IF0, SGN(ST| 00003210: 4B 29 3D 59 20 24 36 31 0D 49 46 30 20 53 54 59 |K)=Y $61.IF0 STY| 00003220: 20 59 53 41 56 45 0D 20 4A 53 52 20 53 47 4E 0D | YSAVE. JSR SGN.| 00003230: 20 4C 44 41 20 53 54 4C 2C 58 0D 20 4A 4D 50 20 | LDA STL,X. JMP | 00003240: 49 46 39 0D 3B 0D 3B 20 20 49 46 46 2C 20 53 47 |IF9.;.; IFF, SG| 00003250: 4E 28 53 54 4B 29 3D 30 20 24 32 36 0D 49 46 46 |N(STK)=0 $26.IFF| 00003260: 20 4C 44 59 20 23 24 30 30 0D 20 4A 4D 50 20 49 | LDY #$00. JMP I| 00003270: 46 30 0D 3B 0D 53 43 41 4E 20 4C 44 41 20 28 50 |F0.;.SCAN LDA (P| 00003280: 43 4E 54 29 2C 59 20 3B 59 20 4D 55 53 54 3D 30 |CNT),Y ;Y MUST=0| 00003290: 0D 20 43 4D 50 20 23 24 37 41 0D 20 42 43 53 20 |. CMP #$7A. BCS | 000032A0: 53 43 41 4E 33 0D 20 43 4D 50 20 23 24 34 30 0D |SCAN3. CMP #$40.| 000032B0: 20 42 43 43 20 53 43 41 4E 33 0D 20 43 4D 50 20 | BCC SCAN3. CMP | 000032C0: 23 24 35 31 20 3B 4B 31 36 0D 20 42 45 51 20 53 |#$51 ;K16. BEQ S| 000032D0: 43 41 4E 34 0D 53 43 41 4E 31 20 43 4D 50 20 23 |CAN4.SCAN1 CMP #| 000032E0: 24 34 36 20 3B 20 54 58 54 0D 20 42 4E 45 20 53 |$46 ; TXT. BNE S| 000032F0: 43 41 4E 32 0D 53 43 41 4E 34 20 4A 53 52 20 49 |CAN2.SCAN4 JSR I| 00003300: 4E 43 50 43 0D 53 43 41 4E 32 20 4A 53 52 20 49 |NCPC.SCAN2 JSR I| 00003310: 4E 43 50 43 0D 53 43 41 4E 33 20 4A 53 52 20 49 |NCPC.SCAN3 JSR I| 00003320: 4E 43 50 43 0D 20 4C 44 41 20 28 50 43 4E 54 29 |NCPC. LDA (PCNT)| 00003330: 2C 59 0D 20 52 54 53 0D 3B 0D 3B 20 50 4F 53 54 |,Y. RTS.;.; POST| 00003340: 58 54 2C 20 59 2C 59 3D 43 52 58 2C 43 52 59 20 |XT, Y,Y=CRX,CRY | 00003350: 24 34 36 0D 54 50 4F 53 20 53 54 59 20 43 4F 4C |$46.TPOS STY COL| 00003360: 43 52 53 20 3B 20 43 52 58 0D 20 4A 53 52 20 49 |CRS ; CRX. JSR I| 00003370: 4E 43 50 43 0D 20 4C 44 59 20 23 30 30 0D 20 4C |NCPC. LDY #00. L| 00003380: 44 41 20 28 50 43 4E 54 29 2C 59 0D 20 53 54 41 |DA (PCNT),Y. STA| 00003390: 20 52 4F 57 43 52 53 20 3B 20 43 52 59 0D 20 52 | ROWCRS ; CRY. R| 000033A0: 54 53 0D 3B 0D 3B 20 53 57 41 50 2C 20 4F 50 52 |TS.;.; SWAP, OPR| 000033B0: 3D 3E 53 54 4B 2C 20 53 54 4B 3D 3E 4F 50 52 20 |=>STK, STK=>OPR | 000033C0: 24 30 45 0D 53 57 41 50 20 4C 44 59 20 4F 50 4C |$0E.SWAP LDY OPL| 000033D0: 2C 58 0D 20 4C 44 41 20 53 54 4C 2C 58 0D 20 53 |,X. LDA STL,X. S| 000033E0: 54 41 20 4F 50 4C 2C 58 0D 20 54 59 41 0D 20 53 |TA OPL,X. TYA. S| 000033F0: 54 41 20 53 54 4C 2C 58 0D 20 4C 44 59 20 4F 50 |TA STL,X. LDY OP| 00003400: 48 2C 58 0D 20 4C 44 41 20 53 54 48 2C 58 0D 20 |H,X. LDA STH,X. | 00003410: 53 54 41 20 4F 50 48 2C 58 0D 20 54 59 41 0D 20 |STA OPH,X. TYA. | 00003420: 53 54 41 20 53 54 48 2C 58 0D 20 52 54 53 0D 3B |STA STH,X. RTS.;| 00003430: 0D 3B 20 20 41 4E 44 2C 20 53 54 4B 26 59 3D 3E |.; AND, STK&Y=>| 00003440: 53 54 4B 20 24 34 38 0D 4C 41 4E 44 20 54 59 41 |STK $48.LAND TYA| 00003450: 0D 20 41 4E 44 20 53 54 4C 2C 58 0D 20 53 54 41 |. AND STL,X. STA| 00003460: 20 53 54 4C 2C 58 0D 20 4C 44 41 20 23 24 30 30 | STL,X. LDA #$00| 00003470: 0D 20 53 54 41 20 53 54 48 2C 58 0D 20 52 54 53 |. STA STH,X. RTS| 00003480: 0D 3B 0D 3B 20 41 4E 44 32 2C 20 53 54 4B 26 4F |.;.; AND2, STK&O| 00003490: 50 52 3D 3E 4F 50 52 2C 20 24 32 41 0D 4C 41 4E |PR=>OPR, $2A.LAN| 000034A0: 44 32 20 4C 44 41 20 53 54 4C 2C 58 0D 20 41 4E |D2 LDA STL,X. AN| 000034B0: 44 20 4F 50 4C 2C 58 0D 20 53 54 41 20 4F 50 4C |D OPL,X. STA OPL| 000034C0: 2C 58 0D 20 4C 44 41 20 53 54 48 2C 58 0D 20 41 |,X. LDA STH,X. A| 000034D0: 4E 44 20 4F 50 48 2C 58 0D 20 53 54 41 20 4F 50 |ND OPH,X. STA OP| 000034E0: 48 2C 58 0D 20 52 54 53 0D 3B 0D 3B 20 20 4F 52 |H,X. RTS.;.; OR| 000034F0: 2C 20 53 54 4B 5E 59 3D 3E 53 54 4B 20 24 34 39 |, STK^Y=>STK $49| 00003500: 0D 4C 4F 52 20 54 59 41 0D 20 4F 52 41 20 53 54 |.LOR TYA. ORA ST| 00003510: 4C 2C 58 0D 20 53 54 41 20 53 54 4C 2C 58 0D 20 |L,X. STA STL,X. | 00003520: 52 54 53 0D 3B 0D 3B 20 20 58 4F 52 2C 20 53 54 |RTS.;.; XOR, ST| 00003530: 4B 20 58 4F 52 20 59 3D 3E 53 54 4B 20 24 34 41 |K XOR Y=>STK $4A| 00003540: 0D 4C 58 4F 52 20 54 59 41 0D 20 45 4F 52 20 53 |.LXOR TYA. EOR S| 00003550: 54 4C 2C 58 0D 20 53 54 41 20 53 54 4C 2C 58 0D |TL,X. STA STL,X.| 00003560: 20 52 54 53 0D 3B 0D 3B 20 43 4C 52 2C 20 43 4C | RTS.;.; CLR, CL| 00003570: 45 41 52 20 53 54 41 43 4B 20 24 37 45 0D 43 4C |EAR STACK $7E.CL| 00003580: 52 20 4C 44 58 20 23 24 46 45 0D 20 52 54 53 0D |R LDX #$FE. RTS.| 00003590: 3B 0D 3B 20 52 55 4E 2C 20 53 54 41 52 54 20 4F |;.; RUN, START O| 000035A0: 56 45 52 20 24 37 46 0D 52 55 4E 20 4C 44 41 20 |VER $7F.RUN LDA | 000035B0: 50 43 53 56 45 2B 31 0D 20 53 54 41 20 50 43 4E |PCSVE+1. STA PCN| 000035C0: 54 2B 31 0D 20 4C 44 41 20 50 43 53 56 45 0D 20 |T+1. LDA PCSVE. | 000035D0: 53 54 41 20 50 43 4E 54 0D 52 55 4E 31 20 4C 44 |STA PCNT.RUN1 LD| 000035E0: 58 20 23 24 37 38 0D 20 53 54 58 20 47 4F 50 0D |X #$78. STX GOP.| 000035F0: 20 53 54 58 20 56 4C 49 4D 0D 20 4C 44 58 20 23 | STX VLIM. LDX #| 00003600: 24 30 30 0D 20 53 54 58 20 56 50 4C 55 53 0D 20 |$00. STX VPLUS. | 00003610: 53 54 58 20 46 4F 52 50 0D 20 44 45 58 0D 20 44 |STX FORP. DEX. D| 00003620: 45 58 0D 20 52 54 53 0D 3B 0D 20 2E 45 4E 44 0D |EX. RTS.;. .END.|
; MAINLINE.; 07/24/84 AGI.; BIG VTABL
E !!!.;.; ADDED NEW JUMP AND JSR LOGIC
!.;.; DEFINE LABELS.STK = BASE+$80 ; EX
PRESSION STACK.STL = STK ; CURRENT VALUE
(LOW).STH = STK+1 ; CURRENT VALUE (HIGH
).STX1 = STK+2 ; EXTENDED STACK.STX2 = S
TK+3.STX3 = STK+4.STX4 = STK+5.TMP1 = ST
K-3 ; 24 BIT WORK ARE.TMP2 = STK-2.TMP3
= STK-1.OPL = STK-2 ; OPERATOR (LOW).OPH
= OPL+1 ; OPERATOR (HIGH).VAR = BASE+$1
00 ; VARIABLE TABLE.VARL = VAR.VARH = VA
R+1.JMPHI = BASE+$200.JMPLO = BASE+$220.
OPTBL = BASE+$240.PCNT = $9E ; PGM COUNT
ER (USES TAPE ERROR REGS).OPER = BASE+$F
0 ; CURRENT OPERATOR.ARG = OPER+1 ; ARGU
MENT.XSAVE = OPER+2.YSAVE = OPER+3.FORP
= OPER+4.FSAVE = OPER+5.GOP = OPER+6.FLA
G = OPER+7.VPLUS = OPER+8 ; VARIABLE OFF
SET.VLIM = OPER+9 ; OFFSET LIMIT.PCSVE =
OPER+10.LIB = OPER+14.LEVEL = OPER+14.F
LML = BASE ; FOR STACK.FLMH = FLML+1 ;LI
MIT.FPCL = FLML+2.FPCH = FLML+3 ; SAVE P
C.FVAR = FLML+4 ; VAR #.GPCL = FLML ; GO
SUB SAVE PC.GPCH = FLML+1.FR0 = $61.;.RA
NDOM = $D012.SP0X = $8650 ; 24 SPRITE EX
TENSION.SP0Y = $8651.MSBREG = $86B4 ; 4
REGS-8, 4, 8, 4.ROWCRS = $3FC ; SIDTRAN
LINE POINTER.COLCRS = $3FD ; SIDTRAN COL
UMN IN LINE.TXT = 648 ; START PAGE OF SC
REEN IMAGE.BUFR = $2A7.NL = $2FE.NH = NL
+1. * = OPTBL. .WORD DONE-1 ; $00. .WORD
RETURN-1. .WORD NEG-1. .WORD DONE-1. .W
ORD STRIG-1. .WORD INCR-1. .WORD DECR-1.
.WORD BYTX-1. .WORD RND-1 ; $08. .WORD
ABS-1. .WORD SGN-1. .WORD PEEK-1. .WORD
DONE-1. .WORD DPEEK-1. .WORD SWAP-1. .WO
RD WRD-1. .WORD STICK-1 ; $10. .WORD DUP
-1. .WORD DONE-1. .WORD DONE-1. .WORD DO
NE-1. .WORD DONE-1. .WORD DONE-1. .WORD
DONE-1. .WORD DONE-1 ; $18. .WORD DONE-1
. .WORD DONE-1. .WORD DONE-1. .WORD DONE
-1. .WORD DONE-1. .WORD DONE-1. .WORD DO
NE-1. .WORD ADD-1 ; $20. .WORD SUB-1. .W
ORD MULT-1. .WORD DIV-1. .WORD DONE-1. .
WORD IFT-1. .WORD IFF-1. .WORD DONE-1 ;
QPRNT-1. .WORD SIN-1 ; $28. .WORD COS-1.
.WORD LAND2-1. .WORD POP-1. .WORD DONE-
1 ; DONT USE !! ",". .WORD DONE-1 ; COLO
R. .WORD USR-1. .WORD ATN-1. .WORD POKE-
1 ; $30. .WORD DONE-1 ; CDRAW. .WORD DON
E-1 ; QPLOT. .WORD DONE-1. .WORD DPOKE-1
. .WORD RANGE-1. .WORD POKEY-1. .WORD DO
NE-1 ; OBJECT. .WORD DONE-1 ; $38. .WORD
DONE-1. .WORD DONE-1. .WORD DONE-1. .WO
RD DONE-1. .WORD DONE-1. .WORD DONE-1. .
WORD DONE-1. .WORD NEXT-1 ; $40. .WORD S
HIFTR-1. .WORD SHIFTL-1. .WORD DONE-1. .
WORD GOSUB-1. .WORD SBR-1. .WORD TPOS-1.
.WORD DONE-1. .WORD LAND-1 ; $48. .WORD
LOR-1. .WORD LXOR-1. .WORD GOTO-1. .WOR
D SHR0-1. .WORD PROTEC-1. .WORD DONE-1 ;
BITX. .WORD DONE-1 ; CLEAR. .WORD CON-1
; $50. .WORD CON16-1. .WORD CONP-1. .
WORD DONE-1. .WORD DONE-1. .WORD DONE-1.
.WORD DONE-1. .WORD DONE-1. .WORD DONE-
1 ; $58. .WORD DONE-1. .WORD DONE-1. .WO
RD DONE-1. .WORD DONE-1. .WORD DONE-1. .
WORD DONE-1. .WORD DONE-1. .WORD OFFSET-
1 ;$60. .WORD IF0-1. .WORD DONE-1 ; PRPM
. .WORD CALL-1. .WORD DONE-1 ; ROTATE. .
WORD SPRX-1. .WORD SPRY-1. .WORD DONE-1.
.WORD DONE-1 ;$68. .WORD DONE-1. .WORD
DONE-1. .WORD DONE-1. .WORD DONE-1. .WOR
D DONE-1. .WORD DONE-1. .WORD DONE-1. .W
ORD FOR-1 ;$70. .WORD IF-1. .WORD RNGY-1
. .WORD DONE-1. .WORD DONE-1. .WORD DONE
-1. .WORD DONE-1. .WORD DONE-1. .WORD DO
NE-1 ;$78. .WORD DONE-1. .WORD DONE-1. .
WORD ELSE-1. .WORD EEEIF-1. .WORD ENDIF-
1. .WORD CLR-1. .WORD RUN-1.; ----------
-------------------.; MAIN. * = BASE+$3
40. JMP MAIN.;JMP LOOK ***.;JMP SET
***.;JMP QP.;.MAIN LDA $8001. STA PCNT+
1. STA PCSVE+1. LDA $8000. STA PCNT. STA
PCSVE. JSR RUN1.LOOP JMP EXECUT.; -----
------------------------.; RETURN VAR VA
LUE.;LOOK LDA $8000 <<<<<<<<.;ASL A.;
TAX.;LDA VARL,X.;TAY.;LDA VARH,X.;RTS.;
-----------------------------.; STORE V
AR VALUE.;SET LDA $8000 <<<<<<<<<.;AS
L A.;TAY.;LDA $8003.;STA VARH,Y.;LDA $80
02.;STA VARL,Y.;RTS.; ------------------
-----------.; EXECUTE 1 INSTRUCTION.EXE
CUT LDY #$00. LDA (PCNT),Y ;GET OPERATOR
. STA OPER. BIT OPER ; TEST OPERATOR. BP
L EX1. ASL A ; LOAD/STORE VARIABLE. AND
#$7F. TAY. BVS EX0. INX. INX. JSR LOAD.
JMP EXRTS.EX0 JSR STORE. JMP POP1.;-----
-----------------------.EX1 BVC EX2 ; NO
ARG. CMP #$7A. BCS SPEC. JSR INCPC ; IN
CREMENT PC. LDA (PCNT),Y. STA ARG.EX2 JS
R GO ; GO TO OPERATOR.EXDONE LDA OPER. A
SL A. ASL A. STA OPER. BIT OPER. BMI EX4
; POP OR POPX2. BVC EXRTS ; NO.EPUSH IN
X. INX. JMP EXRTS.EX4 DEX. DEX. BVC EXRT
S.POP1 DEX. DEX.EXRTS JSR INCPC. JMP EXE
CUT.;.SPEC JSR GO. LDA OPER. CMP #$7F. B
EQ SPEC1. JSR INCPC.SPEC1 JMP EXECUT.;--
--------------------------.INCPC INC PCN
T. BNE INCPC1. INC PCNT+1.INCPC1 RTS.;--
--------------------------.GO LDA OPER.
ASL A. TAY. LDA OPTBL+1,Y. PHA. LDA OPTB
L,Y. PHA. LDY ARG. RTS ; GO !!.; -------
----------------------.; INTEGER SUBROU
TINES.;.; LOAD, VAR(Y+VPLUS)=>STK $80-$
BF.LOAD CPY VLIM. BMI LDLO. TYA. CLC. AD
C VPLUS. TAY.LDLO LDA VARL,Y. STA STL,X.
LDA VARH,Y. STA STH,X. RTS.;.; STORE,
STK=>VAR(Y+VPLUS) $C0-$FF.STORE CPY VLIM
. BMI STLO. TYA. CLC. ADC VPLUS. TAY.STL
O LDA STL,X. STA VARL,Y. LDA STH,X. STA
VARH,Y. RTS.;.; OFFSET, STK=>VPLUS Y=>VL
IM $60.OFFSET TYA. ASL A. STA VLIM. LDA
STL,X. ASL A. STA VPLUS. RTS.;.; ADD, S
TK+OPR=>OPR $20.ADD CLC. LDA STL,X. ADC
OPL,X. STA OPL,X. LDA STH,X. ADC OPH,X.
STA OPH,X. RTS.;.; SUB, OPR-STK=>OPR $2
1.SUB SEC. LDA OPL,X. SBC STL,X. STA OPL
,X. LDA OPH,X. SBC STH,X. STA OPH,X. RTS
.;.; MULT, STK*OPR=>OPR $22.; 16 BIT PR
ECISION.MULT LDY #$10.M2 LDA #$00. STA S
TX2,X. STA STX1,X.MULT2 LDA STL,X. LSR A
. BCC MULT4 ;BIT OFF. CLC. LDA STX1,X. A
DC OPL,X. STA STX1,X. LDA STX2,X. ADC OP
H,X. STA STX2,X.MULT4 ROR STX2,X. ROR ST
X1,X. ROR STH,X. ROR STL,X. DEY. BNE MUL
T2.PUNCH LDA STL,X. STA OPL,X. LDA STH,X
. STA OPH,X. RTS.;.; SHIFT RIGHT, STK/(
2^Y)=>STK $41.SHIFTR LDA STH,X. ROL A. R
OR STH,X. ROR STL,X. DEY. BNE SHIFTR. RT
S.;.; SHIFT RIGHT POSITIVE, $4C.SHR0 = *
. LSR STH,X. ROR STL,X. DEY. BNE SHR0. R
TS.;.; SHIFT LEFT, STK*(2^Y)=STK $42.SH
IFTL = *. ASL STL,X. ROL STH,X. DEY. BNE
SHIFTL. RTS.;.; NEGATE, -STK=>STK $02.N
EG SEC. LDA #$0. SBC STL,X. STA STL,X. L
DA #$0. SBC STH,X. STA STH,X. RTS.;.NEGO
PR SEC. LDA #0. SBC OPL,X. STA OPL,X. LD
A #$0. SBC OPH,X. STA OPH,X. RTS.;.; BI
T, FIRST BIT SET, $5E.;BITX LDY #0.; TYA
.; STA STH,X.;BIT1 LSR STL,X.; BCS BIT2.
; INY.; CPY #8.; BMI BIT1.;BIT2 TYA.; ST
A STL,X.; RTS.;.; CALL, ASM SUBROUTINE;
Y=PUSH FLAG.CALL DEY ; TEST FOR ARG. BMI
CALL1. LDA STL,X. STA $8000. LDA STH,X.
STA $8001. DEX. DEX.CALL1 = *. LDA STL,
X. BNE CALL2. DEC STH,X.CALL2 LDA STH,X.
PHA. LDY STL,X. DEY. TYA. PHA. RTS.;.;
CONSTANT-8 BITS, Y=>STK 0-255 $52.CONP
LDA #0. INX. INX. STA STH,X. TYA. STA ST
L,X. DEX. DEX. RTS.;.; CONSTANT-8 BITS,
Y=>STK 127/-128 $50.CON INX. INX. JSR C
ON0. DEX. DEX.POP RTS ; POP, $2B.;.CON0
LDA #$00. STA STH,X. TYA. BPL CON1. DEC
STH,X ; NEGATIVE CONST.CON1 STA STL,X ;
$00 OR $FF. RTS.;.; CONSTANT-16 BITS, Y,
A=>STK $51.CON16 TYA. INX. INX. STA STL,
X. JSR INCPC. LDY #$00. LDA (PCNT),Y. ST
A STH,X. DEX. DEX. RTS.;.;.;.; SPRITE CO
MMANDS.;.BMASK .BYTE $FE,$01,$FD,$02,$FB
,$04,$F7,$08. .BYTE $EF,$10,$DF,$20,$BF,
$40,$7F,$80. .BYTE $FE,$01,$FD,$02,$FB,$
04,$F7,$08. .BYTE $FE,$01,$FD,$02,$FB,$0
4,$F7,$08. .BYTE $EF,$10,$DF,$20,$BF,$40
,$7F,$80. .BYTE $FE,$01,$FD,$02,$FB,$04,
$F7,$08.MOFST .WORD 0,0,0,0,0,0,0,0. .WO
RD 1,1,1,1. .WORD 2,2,2,2,2,2,2,2. .WORD
3,3,3,3.;.; SPX, STK => SPREGX [Y]( OR
[VAR[Y]] ).;.SPRX = *. JSR SP2Y ; GET SP
RITE NUMBER OFFSET. LDA STL,X. STA SP0X,
Y ; STORE LS BYTE. LDA BMASK+1,Y ; STORE
MS BIT. PHA. LDA BMASK,Y. PHA. LDA MOFS
T,Y. TAY. PLA. AND MSBREG,Y. STA TMP1. L
DA STH,X. ROR A. PLA. BCC SPX1 ; SET MSB
. ORA TMP1. STA TMP1.SPX1 LDA TMP1. STA
MSBREG,Y. RTS.;.;.; SPY, STK => SPREGY [
Y]( OR VAR).SPRY = *. JSR SP2Y. LDA STL,
X. STA SP0Y,Y. RTS.;.SP2Y = *. LDA ARG ;
IF ARG > 127, ARG IS SPRITE. BMI SP2Y1.
ASL A ; ELSE VAR [ARG] IS SPRITE NUMBER
. TAY. LDA VARL,Y.SP2Y1 = *. ASL A. TAY.
RTS.;.;.; WORD, WORD(STK)=>STK $0F.WRD
LDY STL,X. JMP CON0.;.; RND, STK*RND=>S
TK $08.RND INX ; FAKE STACK. INX. LDA RA
NDOM.RNDE STA STL,X. LDA #$00. STA STH,X
. STA TMP1. LDA OPH,X. BPL RND2. JSR NEG
OPR ; ABS(OPR). INC TMP1.RND2 LDY #8. JS
R M2 ; DO MULT. LDA STX2,X. STA OPH,X. L
DA STX1,X ; NORMALIZE. STA OPL,X. LDA T
MP1. BEQ RND3. JSR NEGOPR.RND3 DEX ; RES
TORE STACK. DEX. RTS.;.;.BYTX LDA #$00 ;
BYTE, STK&FF=>STK $07. STA STH,X ; 0.
RTS.;.;.; ABS, ABS(STK)=>STK $09.ABS LD
A STH,X. BPL ABS1. JSR NEG ; NEGATE IF N
EG.ABS1 RTS.;.; SGN, SGN(STK)=>STK $0A.
SGN LDA STH,X. BPL SGN1. LDY #$FF ;<0. J
MP CON0.SGN1 BEQ SGN2. LDY #$01. JMP CON
0 ;>0.SGN2 LDA STL,X. BNE SGN1. LDY #$00
;=0. JMP CON0.;.; PEEK, PEEK(STK)=>STK
$0B.PEEK JSR USR ;STK=>FR0. LDA #$00. S
TA STH,X. LDY #$00. LDA (FR0),Y. STA STL
,X. RTS.;.; POKE, OPR=>LOC(STK) $30.POK
E JSR USR ;STK=>FR0. LDY #$00.POKE0 LDA
OPL,X. STA (FR0),Y. RTS.;.POKEY JSR USR.
LDY VARL. JMP POKE0.;.; RANGE, VALUE, O
PR=LO STK=HI $35.; POSITIVE VALUES ONLY
!!.RANGE LDA OPH-2,X. BMI ORNGLO. CMP ST
H,X. BNE CPHI. LDA OPL-2,X. CMP STL,X.CP
HI BCS ORNGHI. LDA OPH-2,X. CMP OPH,X. B
NE CPLO. LDA OPL-2,X. CMP OPL,X.CPLO BCC
ORNGLO. RTS.;.ORNGHI LDA STH,X. STA OPH
-2,X. LDA STL,X. STA OPL-2,X. RTS.ORNGLO
LDA OPH,X. STA OPH-2,X. LDA OPL,X. STA
OPL-2,X. RTS.;.; RANGEY, VALUE, OPR=LO
STK=HI $72.; POSITIVE VALUES ONLY !!.RNG
Y LDA OPH-2,X. BMI ORNG. CMP STH,X. BNE
CP0HI. LDA OPL-2,X. CMP STL,X.CP0HI BCS
ORNG. LDA OPH-2,X. CMP OPH,X. BNE CP0LO.
LDA OPL-2,X. CMP OPL,X.CP0LO BCC ORNG.
RTS.ORNG LDA #0. STA OPH-2,X. TYA. STA O
PL-2,X. RTS.;.; STICK, (STK)=>STK-X,OPR
-Y $10.STICK LDY STL,X. LDA $DC00,Y. LDY
#$00. ROR A. BCS ST1. LDY #$FF.ST1 ROR
A. BCS ST2. LDY #$01.ST2 PHA. JSR CON0 ;
DY. PLA. LDY #$00. ROR A. BCS ST3. DEY.
ST3 ROR A. BCS ST4. LDY #$01.ST4 JMP CON
; DX.;.; STRIG, (STK)=>STK $04.STRIG L
DY STL,X. LDA $DC00,Y. ROR A. ROR A. ROR
A. ROR A. AND #1. EOR #1. STA STL,X. LD
A #$00. STA STH,X. RTS.;.; INC, STK+1=>
STK $05.INCR INC STL,X. BNE INC1. INC ST
H,X.INC1 RTS.;.; DEC, STK-1=>STK $06.DE
CR LDA STL,X. BNE DEC1. DEC STH,X.DEC1 D
EC STL,X. RTS.;.; DUP, STK=>STK+2 $11.D
UP LDA STL,X. STA STX1,X. LDA STH,X. STA
STX2,X. RTS.;.; DPOKE, OPR=>LOC(STK) $
34.DPOKE LDY #$00. JSR USR ;STK=>FR0. LD
A OPL,X. STA (FR0),Y. INY. LDA OPH,X. ST
A (FR0),Y. RTS.;.; DPEEK, PEEK(STK)=>ST
K $0D.DPEEK LDY #$00. JSR USR. LDA (FR0)
,Y. STA STL,X. INY. LDA (FR0),Y. STA STH
,X. RTS.;.; DONE $00.DONE PLA. PLA. LDY
FR0. LDA FR0+1. RTS.;.; DIVIDE, OPR/STK
=>OPR $23.DIV LDA #$00. STA FLAG. JSR DI
V8. DEX. DEX. JSR DIV8. INX. INX. LDA #$
00. STA STX3,X. STA STX4,X. STA STX1,X.
STA STX2,X. LDY #$10 ; 16 BITS.DIV1 ASL
STX3,X. ROL STX4,X. ASL OPL,X. ROL OPH,X
. ROL STX1,X. ROL STX2,X. SEC. LDA STX1,
X. SBC STL,X. STA TMP1 ; REMAINDER. LDA
STX2,X. SBC STH,X. STA TMP2. BCC DIV2. I
NC STX3,X ; RESULT. LDA TMP1 ; REM => DI
V. STA STX1,X. LDA TMP2. STA STX2,X.DIV2
DEY. BNE DIV1. LDA STX4,X ; RESULT => O
PR. STA STH,X. LDA STX3,X. STA STL,X. LD
A FLAG. BEQ DIV3. JSR NEG.DIV3 JMP PUNCH
.;.DIV8 LDA STH,X. BPL DIV9. JSR NEG. LD
A #$01. EOR FLAG. STA FLAG.DIV9 RTS.;.;
FOR, OPR=>VAR(Y),STK=>LIM $70.FOR DEX.
DEX. TYA ; VAR INDEX. ASL A. TAY. JSR ST
ORE ; OPR=>VAR(X). STY YSAVE. LDY FORP ;
FOR PNTR. LDA STX1,X ; SAVE LIM. STA FL
ML,Y. LDA STX2,X. STA FLMH,Y. LDA PCNT ;
SAVE PC. STA FPCL,Y. LDA PCNT+1. STA FP
CH,Y. LDA YSAVE ; SAVE VAR#. STA FVAR,Y.
INY ; NEXT FSTACK. INY. INY. INY. INY.
STY FORP. INX. INX. RTS.;.; NEXT, (Y) $
40.NEXT STY YSAVE. ASL YSAVE ; VAR INDEX
. STX XSAVE. LDY FORP. STY FSAVE.NXT1 DE
Y. DEY. DEY. DEY. DEY. STY FORP. BMI NXT
9 ; ERROR. LDA FVAR,Y ; FIND FOR ENTRY.
CMP YSAVE. BNE NXT1. LDX YSAVE. INC VARL
,X. BNE NXT2. INC VARH,X.NXT2 SEC. LDA F
LML,Y. SBC VARL,X. LDA FLMH,Y. SBC VARH,
X. BMI NXT9. LDA FPCL,Y ; GO BACK. STA P
CNT. LDA FPCH,Y. STA PCNT+1. LDY FSAVE.
STY FORP.NXT9 LDX XSAVE. RTS.;.; GOTO,
Y $4B.GOTO STY YSAVE. JMP GOSUB0.;.; GO
SUB, PC+Y $44.GOSUB STY YSAVE. LDY GOP.
LDA PCNT. STA GPCL,Y. LDA PCNT+1. STA GP
CH,Y. DEY. DEY. STY GOP.GOSUB0 LDY YSAVE
. LDA JMPHI,Y. BEQ GOSUB3. STA PCNT+1. L
DA JMPLO,Y. STA PCNT. RTS.;.GOSUB3 LDA P
CSVE. STA PCNT. LDA PCSVE+1. STA PCNT+1.
LDY #0.GOSUB1 JSR SCAN. CMP #$45 ; SBR?
. BNE GOSUB1. JSR INCPC. LDA (PCNT),Y. C
MP YSAVE. BEQ GOSUB2. JSR INCPC. JMP GOS
UB1.GOSUB2 LDY YSAVE. LDA PCNT. STA JMPL
O,Y. LDA PCNT+1. STA JMPHI,Y. RTS.;.; R
ETURN, $01.RETURN LDY GOP. INY. INY. LDA
GPCL,Y. STA PCNT. LDA GPCH,Y. STA PCNT+
1. STY GOP. RTS.;.; USR, STK=>FR0 $2E.U
SR LDA STL,X. STA FR0. LDA STH,X. STA FR
0+1. RTS.;.;.; PRINT +/-, STK Y=#BLANKS
$62.;.; IF, SGN(OPR-STK)=Y $71.IF STY Y
SAVE. JSR SUB. DEX. DEX. JSR SGN. INX. I
NX. LDA OPL,X.IF9 CMP YSAVE. BEQ EEEIF ;
TRUE.ELSE LDY #$00 ;ELS, $7B. STY LEVEL
.IF1 JSR SCAN ; FIND ENDIF. CMP #$7D. BE
Q EIF. CMP #$7C ; OR SUPER EIF. BEQ EEEI
F. CMP #$7B ; OR ELSE. BNE IF2. LDA LEVE
L. BNE IF1. BEQ EEEIF.IF2 CMP #$25 ; IFT
. BEQ IF3. CMP #$26 ; IFF. BEQ IF3. CMP
#$61 ; IF0. BEQ IF3. CMP #$71 ; IF. BNE
IF1.IF3 INC LEVEL ; PROCESS IF. BNE IF1
; ALWAYS BRANCHES.EIF DEC LEVEL ; PROCES
S EIFS. BPL IF1 ; ALWAYS BRANCHES.PROTEC
; $4D.EEEIF ; SUPER ENDIF $7C.SBR
; LABEL OP $45.ENDIF RTS ; ENDIF $7
D.;.; IFT, SGN(STK)=1 $25.IFT LDY #$01.
;.; IF0, SGN(STK)=Y $61.IF0 STY YSAVE.
JSR SGN. LDA STL,X. JMP IF9.;.; IFF, SG
N(STK)=0 $26.IFF LDY #$00. JMP IF0.;.SCA
N LDA (PCNT),Y ;Y MUST=0. CMP #$7A. BCS
SCAN3. CMP #$40. BCC SCAN3. CMP #$51 ;K1
6. BEQ SCAN4.SCAN1 CMP #$46 ; TXT. BNE S
CAN2.SCAN4 JSR INCPC.SCAN2 JSR INCPC.SCA
N3 JSR INCPC. LDA (PCNT),Y. RTS.;.; POST
XT, Y,Y=CRX,CRY $46.TPOS STY COLCRS ; CR
X. JSR INCPC. LDY #00. LDA (PCNT),Y. STA
ROWCRS ; CRY. RTS.;.; SWAP, OPR=>STK, S
TK=>OPR $0E.SWAP LDY OPL,X. LDA STL,X. S
TA OPL,X. TYA. STA STL,X. LDY OPH,X. LDA
STH,X. STA OPH,X. TYA. STA STH,X. RTS.;
.; AND, STK&Y=>STK $48.LAND TYA. AND ST
L,X. STA STL,X. LDA #$00. STA STH,X. RTS
.;.; AND2, STK&OPR=>OPR, $2A.LAND2 LDA S
TL,X. AND OPL,X. STA OPL,X. LDA STH,X. A
ND OPH,X. STA OPH,X. RTS.;.; OR, STK^Y=
>STK $49.LOR TYA. ORA STL,X. STA STL,X.
RTS.;.; XOR, STK XOR Y=>STK $4A.LXOR TY
A. EOR STL,X. STA STL,X. RTS.;.; CLR, CL
EAR STACK $7E.CLR LDX #$FE. RTS.;.; RUN,
START OVER $7F.RUN LDA PCSVE+1. STA PCN
T+1. LDA PCSVE. STA PCNT.RUN1 LDX #$78.
STX GOP. STX VLIM. LDX #$00. STX VPLUS.
STX FORP. DEX. DEX. RTS.;. .END.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL