_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

MIG14.SID

FILE INFORMATION

FILENAME(S): MIG14.SID

FILE TYPE(S): DEL

FILE SIZE: 11.1K

FIRST SEEN: 2025-10-19 22:49:33

APPEARS ON: 2 disk(s)

FILE HASH

e4b3b2b3899547ea4ce6d8a47fe3268baad03bdfb025fd5ad8cbca07bc19d57d

FOUND ON DISKS (2 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
MIGDTL MIG14.SID DEL Radd Maxx 6 0 DOWNLOAD FILE
MIGDTL MIG14.SID DEL DuncanTwain 6 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 4F 4E 45 2D 31 0D 20 2E  57 4F 52 44 20 44 4F 4E  |ONE-1. .WORD DON|
00000010: 45 2D 31 0D 20 2E 57 4F  52 44 20 44 4F 4E 45 2D  |E-1. .WORD DONE-|
00000020: 31 0D 20 2E 57 4F 52 44  20 44 4F 4E 45 2D 31 0D  |1. .WORD DONE-1.|
00000030: 20 2E 57 4F 52 44 20 44  4F 4E 45 2D 31 20 3B 20  | .WORD DONE-1 ; |
00000040: 24 35 38 0D 20 2E 57 4F  52 44 20 44 4F 4E 45 2D  |$58. .WORD DONE-|
00000050: 31 0D 20 2E 57 4F 52 44  20 44 4F 4E 45 2D 31 0D  |1. .WORD DONE-1.|
00000060: 20 2E 57 4F 52 44 20 44  4F 4E 45 2D 31 0D 20 2E  | .WORD DONE-1. .|
00000070: 57 4F 52 44 20 44 4F 4E  45 2D 31 0D 20 2E 57 4F  |WORD DONE-1. .WO|
00000080: 52 44 20 44 4F 4E 45 2D  31 0D 20 2E 57 4F 52 44  |RD DONE-1. .WORD|
00000090: 20 44 4F 4E 45 2D 31 0D  20 2E 57 4F 52 44 20 44  | DONE-1. .WORD D|
000000A0: 4F 4E 45 2D 31 0D 20 2E  57 4F 52 44 20 4F 46 46  |ONE-1. .WORD OFF|
000000B0: 53 45 54 2D 31 20 3B 24  36 30 0D 20 2E 57 4F 52  |SET-1 ;$60. .WOR|
000000C0: 44 20 49 46 30 2D 31 0D  20 2E 57 4F 52 44 20 44  |D IF0-1. .WORD D|
000000D0: 4F 4E 45 2D 31 20 3B 20  50 52 50 4D 0D 20 2E 57  |ONE-1 ; PRPM. .W|
000000E0: 4F 52 44 20 43 41 4C 4C  2D 31 0D 20 2E 57 4F 52  |ORD CALL-1. .WOR|
000000F0: 44 20 44 4F 4E 45 2D 31  20 3B 20 52 4F 54 41 54  |D DONE-1 ; ROTAT|
00000100: 45 0D 20 2E 57 4F 52 44  20 53 50 52 58 2D 31 0D  |E. .WORD SPRX-1.|
00000110: 20 2E 57 4F 52 44 20 53  50 52 59 2D 31 0D 20 2E  | .WORD SPRY-1. .|
00000120: 57 4F 52 44 20 44 4F 4E  45 2D 31 0D 20 2E 57 4F  |WORD DONE-1. .WO|
00000130: 52 44 20 44 4F 4E 45 2D  31 20 3B 24 36 38 0D 20  |RD DONE-1 ;$68. |
00000140: 2E 57 4F 52 44 20 44 4F  4E 45 2D 31 0D 20 2E 57  |.WORD DONE-1. .W|
00000150: 4F 52 44 20 44 4F 4E 45  2D 31 0D 20 2E 57 4F 52  |ORD DONE-1. .WOR|
00000160: 44 20 44 4F 4E 45 2D 31  0D 20 2E 57 4F 52 44 20  |D DONE-1. .WORD |
00000170: 44 4F 4E 45 2D 31 0D 20  2E 57 4F 52 44 20 44 4F  |DONE-1. .WORD DO|
00000180: 4E 45 2D 31 0D 20 2E 57  4F 52 44 20 44 4F 4E 45  |NE-1. .WORD DONE|
00000190: 2D 31 0D 20 2E 57 4F 52  44 20 44 4F 4E 45 2D 31  |-1. .WORD DONE-1|
000001A0: 0D 20 2E 57 4F 52 44 20  46 4F 52 2D 31 20 3B 24  |. .WORD FOR-1 ;$|
000001B0: 37 30 0D 20 2E 57 4F 52  44 20 49 46 2D 31 0D 20  |70. .WORD IF-1. |
000001C0: 2E 57 4F 52 44 20 52 4E  47 59 2D 31 0D 20 2E 57  |.WORD RNGY-1. .W|
000001D0: 4F 52 44 20 44 4F 4E 45  2D 31 0D 20 2E 57 4F 52  |ORD DONE-1. .WOR|
000001E0: 44 20 44 4F 4E 45 2D 31  0D 20 2E 57 4F 52 44 20  |D DONE-1. .WORD |
000001F0: 44 4F 4E 45 2D 31 0D 20  2E 57 4F 52 44 20 44 4F  |DONE-1. .WORD DO|
00000200: 4E 45 2D 31 0D 20 2E 57  4F 52 44 20 44 4F 4E 45  |NE-1. .WORD DONE|
00000210: 2D 31 0D 20 2E 57 4F 52  44 20 44 4F 4E 45 2D 31  |-1. .WORD DONE-1|
00000220: 20 3B 24 37 38 0D 20 2E  57 4F 52 44 20 44 4F 4E  | ;$78. .WORD DON|
00000230: 45 2D 31 0D 20 2E 57 4F  52 44 20 44 4F 4E 45 2D  |E-1. .WORD DONE-|
00000240: 31 0D 20 2E 57 4F 52 44  20 45 4C 53 45 2D 31 0D  |1. .WORD ELSE-1.|
00000250: 20 2E 57 4F 52 44 20 45  45 45 49 46 2D 31 0D 20  | .WORD EEEIF-1. |
00000260: 2E 57 4F 52 44 20 45 4E  44 49 46 2D 31 0D 20 2E  |.WORD ENDIF-1. .|
00000270: 57 4F 52 44 20 43 4C 52  2D 31 0D 20 2E 57 4F 52  |WORD CLR-1. .WOR|
00000280: 44 20 52 55 4E 2D 31 0D  3B 20 2D 2D 2D 2D 2D 2D  |D RUN-1.; ------|
00000290: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
000002A0: 2D 2D 2D 2D 2D 2D 2D 0D  3B 20 20 4D 41 49 4E 0D  |-------.;  MAIN.|
000002B0: 20 2A 20 3D 20 42 41 53  45 2B 24 33 34 30 0D 20  | * = BASE+$340. |
000002C0: 4A 4D 50 20 4D 41 49 4E  0D 3B 4A 4D 50 20 4C 4F  |JMP MAIN.;JMP LO|
000002D0: 4F 4B 20 20 20 2A 2A 2A  0D 3B 4A 4D 50 20 53 45  |OK   ***.;JMP SE|
000002E0: 54 20 20 20 20 2A 2A 2A  0D 3B 4A 4D 50 20 51 50  |T    ***.;JMP QP|
000002F0: 0D 3B 0D 4D 41 49 4E 20  4C 44 41 20 24 38 30 30  |.;.MAIN LDA $800|
00000300: 31 0D 20 53 54 41 20 50  43 4E 54 2B 31 0D 20 53  |1. STA PCNT+1. S|
00000310: 54 41 20 50 43 53 56 45  2B 31 0D 20 4C 44 41 20  |TA PCSVE+1. LDA |
00000320: 24 38 30 30 30 0D 20 53  54 41 20 50 43 4E 54 0D  |$8000. STA PCNT.|
00000330: 20 53 54 41 20 50 43 53  56 45 0D 20 4A 53 52 20  | STA PCSVE. JSR |
00000340: 52 55 4E 31 0D 4C 4F 4F  50 20 4A 4D 50 20 45 58  |RUN1.LOOP JMP EX|
00000350: 45 43 55 54 0D 3B 20 2D  2D 2D 2D 2D 2D 2D 2D 2D  |ECUT.; ---------|
00000360: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00000370: 2D 2D 2D 2D 0D 3B 20 52  45 54 55 52 4E 20 56 41  |----.; RETURN VA|
00000380: 52 20 56 41 4C 55 45 0D  3B 4C 4F 4F 4B 20 4C 44  |R VALUE.;LOOK LD|
00000390: 41 20 24 38 30 30 30 20  20 20 20 3C 3C 3C 3C 3C  |A $8000    <<<<<|
000003A0: 3C 3C 3C 0D 3B 41 53 4C  20 41 0D 3B 54 41 58 0D  |<<<.;ASL A.;TAX.|
000003B0: 3B 4C 44 41 20 56 41 52  4C 2C 58 0D 3B 54 41 59  |;LDA VARL,X.;TAY|
000003C0: 0D 3B 4C 44 41 20 56 41  52 48 2C 58 0D 3B 52 54  |.;LDA VARH,X.;RT|
000003D0: 53 0D 3B 20 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |S.; ------------|
000003E0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
000003F0: 2D 0D 3B 20 20 53 54 4F  52 45 20 56 41 52 20 56  |-.;  STORE VAR V|
00000400: 41 4C 55 45 0D 3B 53 45  54 20 4C 44 41 20 24 38  |ALUE.;SET LDA $8|
00000410: 30 30 30 20 20 20 20 3C  3C 3C 3C 3C 3C 3C 3C 3C  |000    <<<<<<<<<|
00000420: 0D 3B 41 53 4C 20 41 0D  3B 54 41 59 0D 3B 4C 44  |.;ASL A.;TAY.;LD|
00000430: 41 20 24 38 30 30 33 0D  3B 53 54 41 20 56 41 52  |A $8003.;STA VAR|
00000440: 48 2C 59 0D 3B 4C 44 41  20 24 38 30 30 32 0D 3B  |H,Y.;LDA $8002.;|
00000450: 53 54 41 20 56 41 52 4C  2C 59 0D 3B 52 54 53 0D  |STA VARL,Y.;RTS.|
00000460: 3B 20 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |; --------------|
00000470: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 0D  |---------------.|
00000480: 3B 20 20 45 58 45 43 55  54 45 20 31 20 49 4E 53  |;  EXECUTE 1 INS|
00000490: 54 52 55 43 54 49 4F 4E  0D 45 58 45 43 55 54 20  |TRUCTION.EXECUT |
000004A0: 4C 44 59 20 23 24 30 30  0D 20 4C 44 41 20 28 50  |LDY #$00. LDA (P|
000004B0: 43 4E 54 29 2C 59 20 3B  47 45 54 20 4F 50 45 52  |CNT),Y ;GET OPER|
000004C0: 41 54 4F 52 0D 20 53 54  41 20 4F 50 45 52 0D 20  |ATOR. STA OPER. |
000004D0: 42 49 54 20 4F 50 45 52  20 3B 20 54 45 53 54 20  |BIT OPER ; TEST |
000004E0: 4F 50 45 52 41 54 4F 52  0D 20 42 50 4C 20 45 58  |OPERATOR. BPL EX|
000004F0: 31 0D 20 41 53 4C 20 41  20 3B 20 4C 4F 41 44 2F  |1. ASL A ; LOAD/|
00000500: 53 54 4F 52 45 20 56 41  52 49 41 42 4C 45 0D 20  |STORE VARIABLE. |
00000510: 41 4E 44 20 23 24 37 46  0D 20 54 41 59 0D 20 42  |AND #$7F. TAY. B|
00000520: 56 53 20 45 58 30 0D 20  49 4E 58 0D 20 49 4E 58  |VS EX0. INX. INX|
00000530: 0D 20 4A 53 52 20 4C 4F  41 44 0D 20 4A 4D 50 20  |. JSR LOAD. JMP |
00000540: 45 58 52 54 53 0D 45 58  30 20 4A 53 52 20 53 54  |EXRTS.EX0 JSR ST|
00000550: 4F 52 45 0D 20 4A 4D 50  20 50 4F 50 31 0D 3B 2D  |ORE. JMP POP1.;-|
00000560: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00000570: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 0D 45 58 31 20  |-----------.EX1 |
00000580: 42 56 43 20 45 58 32 20  3B 20 4E 4F 20 41 52 47  |BVC EX2 ; NO ARG|
00000590: 0D 20 43 4D 50 20 23 24  37 41 0D 20 42 43 53 20  |. CMP #$7A. BCS |
000005A0: 53 50 45 43 0D 20 4A 53  52 20 49 4E 43 50 43 20  |SPEC. JSR INCPC |
000005B0: 3B 20 49 4E 43 52 45 4D  45 4E 54 20 50 43 0D 20  |; INCREMENT PC. |
000005C0: 4C 44 41 20 28 50 43 4E  54 29 2C 59 0D 20 53 54  |LDA (PCNT),Y. ST|
000005D0: 41 20 41 52 47 0D 45 58  32 20 4A 53 52 20 47 4F  |A ARG.EX2 JSR GO|
000005E0: 20 3B 20 47 4F 20 54 4F  20 4F 50 45 52 41 54 4F  | ; GO TO OPERATO|
000005F0: 52 0D 45 58 44 4F 4E 45  20 4C 44 41 20 4F 50 45  |R.EXDONE LDA OPE|
00000600: 52 0D 20 41 53 4C 20 41  0D 20 41 53 4C 20 41 0D  |R. ASL A. ASL A.|
00000610: 20 53 54 41 20 4F 50 45  52 0D 20 42 49 54 20 4F  | STA OPER. BIT O|
00000620: 50 45 52 0D 20 42 4D 49  20 45 58 34 20 3B 20 50  |PER. BMI EX4 ; P|
00000630: 4F 50 20 4F 52 20 50 4F  50 58 32 0D 20 42 56 43  |OP OR POPX2. BVC|
00000640: 20 45 58 52 54 53 20 3B  20 4E 4F 0D 45 50 55 53  | EXRTS ; NO.EPUS|
00000650: 48 20 49 4E 58 0D 20 49  4E 58 0D 20 4A 4D 50 20  |H INX. INX. JMP |
00000660: 45 58 52 54 53 0D 45 58  34 20 44 45 58 0D 20 44  |EXRTS.EX4 DEX. D|
00000670: 45 58 0D 20 42 56 43 20  45 58 52 54 53 0D 50 4F  |EX. BVC EXRTS.PO|
00000680: 50 31 20 44 45 58 0D 20  44 45 58 0D 45 58 52 54  |P1 DEX. DEX.EXRT|
00000690: 53 20 4A 53 52 20 49 4E  43 50 43 0D 20 4A 4D 50  |S JSR INCPC. JMP|
000006A0: 20 45 58 45 43 55 54 0D  3B 0D 53 50 45 43 20 4A  | EXECUT.;.SPEC J|
000006B0: 53 52 20 47 4F 0D 20 4C  44 41 20 4F 50 45 52 0D  |SR GO. LDA OPER.|
000006C0: 20 43 4D 50 20 23 24 37  46 0D 20 42 45 51 20 53  | CMP #$7F. BEQ S|
000006D0: 50 45 43 31 0D 20 4A 53  52 20 49 4E 43 50 43 0D  |PEC1. JSR INCPC.|
000006E0: 53 50 45 43 31 20 4A 4D  50 20 45 58 45 43 55 54  |SPEC1 JMP EXECUT|
000006F0: 0D 3B 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |.;--------------|
00000700: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 0D 49  |--------------.I|
00000710: 4E 43 50 43 20 49 4E 43  20 50 43 4E 54 0D 20 42  |NCPC INC PCNT. B|
00000720: 4E 45 20 49 4E 43 50 43  31 0D 20 49 4E 43 20 50  |NE INCPC1. INC P|
00000730: 43 4E 54 2B 31 0D 49 4E  43 50 43 31 20 52 54 53  |CNT+1.INCPC1 RTS|
00000740: 0D 3B 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |.;--------------|
00000750: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 0D 47  |--------------.G|
00000760: 4F 20 4C 44 41 20 4F 50  45 52 0D 20 41 53 4C 20  |O LDA OPER. ASL |
00000770: 41 0D 20 54 41 59 0D 20  4C 44 41 20 4F 50 54 42  |A. TAY. LDA OPTB|
00000780: 4C 2B 31 2C 59 0D 20 50  48 41 0D 20 4C 44 41 20  |L+1,Y. PHA. LDA |
00000790: 4F 50 54 42 4C 2C 59 0D  20 50 48 41 0D 20 4C 44  |OPTBL,Y. PHA. LD|
000007A0: 59 20 41 52 47 0D 20 52  54 53 20 3B 20 47 4F 20  |Y ARG. RTS ; GO |
000007B0: 21 21 0D 3B 20 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |!!.; -----------|
000007C0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
000007D0: 2D 2D 0D 3B 20 20 49 4E  54 45 47 45 52 20 53 55  |--.;  INTEGER SU|
000007E0: 42 52 4F 55 54 49 4E 45  53 0D 3B 0D 3B 20 20 4C  |BROUTINES.;.;  L|
000007F0: 4F 41 44 2C 20 56 41 52  28 59 2B 56 50 4C 55 53  |OAD, VAR(Y+VPLUS|
00000800: 29 3D 3E 53 54 4B 20 24  38 30 2D 24 42 46 0D 4C  |)=>STK $80-$BF.L|
00000810: 4F 41 44 20 43 50 59 20  56 4C 49 4D 0D 20 42 4D  |OAD CPY VLIM. BM|
00000820: 49 20 4C 44 4C 4F 0D 20  54 59 41 0D 20 43 4C 43  |I LDLO. TYA. CLC|
00000830: 0D 20 41 44 43 20 56 50  4C 55 53 0D 20 54 41 59  |. ADC VPLUS. TAY|
00000840: 0D 4C 44 4C 4F 20 4C 44  41 20 56 41 52 4C 2C 59  |.LDLO LDA VARL,Y|
00000850: 0D 20 53 54 41 20 53 54  4C 2C 58 0D 20 4C 44 41  |. STA STL,X. LDA|
00000860: 20 56 41 52 48 2C 59 0D  20 53 54 41 20 53 54 48  | VARH,Y. STA STH|
00000870: 2C 58 0D 20 52 54 53 0D  3B 0D 3B 20 20 53 54 4F  |,X. RTS.;.;  STO|
00000880: 52 45 2C 20 53 54 4B 3D  3E 56 41 52 28 59 2B 56  |RE, STK=>VAR(Y+V|
00000890: 50 4C 55 53 29 20 24 43  30 2D 24 46 46 0D 53 54  |PLUS) $C0-$FF.ST|
000008A0: 4F 52 45 20 43 50 59 20  56 4C 49 4D 0D 20 42 4D  |ORE CPY VLIM. BM|
000008B0: 49 20 53 54 4C 4F 0D 20  54 59 41 0D 20 43 4C 43  |I STLO. TYA. CLC|
000008C0: 0D 20 41 44 43 20 56 50  4C 55 53 0D 20 54 41 59  |. ADC VPLUS. TAY|
000008D0: 0D 53 54 4C 4F 20 4C 44  41 20 53 54 4C 2C 58 0D  |.STLO LDA STL,X.|
000008E0: 20 53 54 41 20 56 41 52  4C 2C 59 0D 20 4C 44 41  | STA VARL,Y. LDA|
000008F0: 20 53 54 48 2C 58 0D 20  53 54 41 20 56 41 52 48  | STH,X. STA VARH|
00000900: 2C 59 0D 20 52 54 53 0D  3B 0D 3B 20 4F 46 46 53  |,Y. RTS.;.; OFFS|
00000910: 45 54 2C 20 53 54 4B 3D  3E 56 50 4C 55 53 20 59  |ET, STK=>VPLUS Y|
00000920: 3D 3E 56 4C 49 4D 20 24  36 30 0D 4F 46 46 53 45  |=>VLIM $60.OFFSE|
00000930: 54 20 54 59 41 0D 20 41  53 4C 20 41 0D 20 53 54  |T TYA. ASL A. ST|
00000940: 41 20 56 4C 49 4D 0D 20  4C 44 41 20 53 54 4C 2C  |A VLIM. LDA STL,|
00000950: 58 0D 20 41 53 4C 20 41  0D 20 53 54 41 20 56 50  |X. ASL A. STA VP|
00000960: 4C 55 53 0D 20 52 54 53  0D 3B 0D 3B 20 20 41 44  |LUS. RTS.;.;  AD|
00000970: 44 2C 20 53 54 4B 2B 4F  50 52 3D 3E 4F 50 52 20  |D, STK+OPR=>OPR |
00000980: 24 32 30 0D 41 44 44 20  43 4C 43 0D 20 4C 44 41  |$20.ADD CLC. LDA|
00000990: 20 53 54 4C 2C 58 0D 20  41 44 43 20 4F 50 4C 2C  | STL,X. ADC OPL,|
000009A0: 58 0D 20 53 54 41 20 4F  50 4C 2C 58 0D 20 4C 44  |X. STA OPL,X. LD|
000009B0: 41 20 53 54 48 2C 58 0D  20 41 44 43 20 4F 50 48  |A STH,X. ADC OPH|
000009C0: 2C 58 0D 20 53 54 41 20  4F 50 48 2C 58 0D 20 52  |,X. STA OPH,X. R|
000009D0: 54 53 0D 3B 0D 3B 20 20  53 55 42 2C 20 4F 50 52  |TS.;.;  SUB, OPR|
000009E0: 2D 53 54 4B 3D 3E 4F 50  52 20 24 32 31 0D 53 55  |-STK=>OPR $21.SU|
000009F0: 42 20 53 45 43 0D 20 4C  44 41 20 4F 50 4C 2C 58  |B SEC. LDA OPL,X|
00000A00: 0D 20 53 42 43 20 53 54  4C 2C 58 0D 20 53 54 41  |. SBC STL,X. STA|
00000A10: 20 4F 50 4C 2C 58 0D 20  4C 44 41 20 4F 50 48 2C  | OPL,X. LDA OPH,|
00000A20: 58 0D 20 53 42 43 20 53  54 48 2C 58 0D 20 53 54  |X. SBC STH,X. ST|
00000A30: 41 20 4F 50 48 2C 58 0D  20 52 54 53 0D 3B 0D 3B  |A OPH,X. RTS.;.;|
00000A40: 20 20 4D 55 4C 54 2C 20  53 54 4B 2A 4F 50 52 3D  |  MULT, STK*OPR=|
00000A50: 3E 4F 50 52 20 24 32 32  0D 3B 20 31 36 20 42 49  |>OPR $22.; 16 BI|
00000A60: 54 20 50 52 45 43 49 53  49 4F 4E 0D 4D 55 4C 54  |T PRECISION.MULT|
00000A70: 20 4C 44 59 20 23 24 31  30 0D 4D 32 20 4C 44 41  | LDY #$10.M2 LDA|
00000A80: 20 23 24 30 30 0D 20 53  54 41 20 53 54 58 32 2C  | #$00. STA STX2,|
00000A90: 58 0D 20 53 54 41 20 53  54 58 31 2C 58 0D 4D 55  |X. STA STX1,X.MU|
00000AA0: 4C 54 32 20 4C 44 41 20  53 54 4C 2C 58 0D 20 4C  |LT2 LDA STL,X. L|
00000AB0: 53 52 20 41 0D 20 42 43  43 20 4D 55 4C 54 34 20  |SR A. BCC MULT4 |
00000AC0: 3B 42 49 54 20 4F 46 46  0D 20 43 4C 43 0D 20 4C  |;BIT OFF. CLC. L|
00000AD0: 44 41 20 53 54 58 31 2C  58 0D 20 41 44 43 20 4F  |DA STX1,X. ADC O|
00000AE0: 50 4C 2C 58 0D 20 53 54  41 20 53 54 58 31 2C 58  |PL,X. STA STX1,X|
00000AF0: 0D 20 4C 44 41 20 53 54  58 32 2C 58 0D 20 41 44  |. LDA STX2,X. AD|
00000B00: 43 20 4F 50 48 2C 58 0D  20 53 54 41 20 53 54 58  |C OPH,X. STA STX|
00000B10: 32 2C 58 0D 4D 55 4C 54  34 20 52 4F 52 20 53 54  |2,X.MULT4 ROR ST|
00000B20: 58 32 2C 58 0D 20 52 4F  52 20 53 54 58 31 2C 58  |X2,X. ROR STX1,X|
00000B30: 0D 20 52 4F 52 20 53 54  48 2C 58 0D 20 52 4F 52  |. ROR STH,X. ROR|
00000B40: 20 53 54 4C 2C 58 0D 20  44 45 59 0D 20 42 4E 45  | STL,X. DEY. BNE|
00000B50: 20 4D 55 4C 54 32 0D 50  55 4E 43 48 20 4C 44 41  | MULT2.PUNCH LDA|
00000B60: 20 53 54 4C 2C 58 0D 20  53 54 41 20 4F 50 4C 2C  | STL,X. STA OPL,|
00000B70: 58 0D 20 4C 44 41 20 53  54 48 2C 58 0D 20 53 54  |X. LDA STH,X. ST|
00000B80: 41 20 4F 50 48 2C 58 0D  20 52 54 53 0D 3B 0D 3B  |A OPH,X. RTS.;.;|
00000B90: 20 20 53 48 49 46 54 20  52 49 47 48 54 2C 20 53  |  SHIFT RIGHT, S|
00000BA0: 54 4B 2F 28 32 5E 59 29  3D 3E 53 54 4B 20 24 34  |TK/(2^Y)=>STK $4|
00000BB0: 31 0D 53 48 49 46 54 52  20 4C 44 41 20 53 54 48  |1.SHIFTR LDA STH|
00000BC0: 2C 58 0D 20 52 4F 4C 20  41 0D 20 52 4F 52 20 53  |,X. ROL A. ROR S|
00000BD0: 54 48 2C 58 0D 20 52 4F  52 20 53 54 4C 2C 58 0D  |TH,X. ROR STL,X.|
00000BE0: 20 44 45 59 0D 20 42 4E  45 20 53 48 49 46 54 52  | DEY. BNE SHIFTR|
00000BF0: 0D 20 52 54 53 0D 3B 0D  3B 20 53 48 49 46 54 20  |. RTS.;.; SHIFT |
00000C00: 52 49 47 48 54 20 50 4F  53 49 54 49 56 45 2C 20  |RIGHT POSITIVE, |
00000C10: 24 34 43 0D 53 48 52 30  20 3D 20 2A 0D 20 4C 53  |$4C.SHR0 = *. LS|
00000C20: 52 20 53 54 48 2C 58 0D  20 52 4F 52 20 53 54 4C  |R STH,X. ROR STL|
00000C30: 2C 58 0D 20 44 45 59 0D  20 42 4E 45 20 53 48 52  |,X. DEY. BNE SHR|
00000C40: 30 0D 20 52 54 53 0D 3B  0D 3B 20 20 53 48 49 46  |0. RTS.;.;  SHIF|
00000C50: 54 20 4C 45 46 54 2C 20  53 54 4B 2A 28 32 5E 59  |T LEFT, STK*(2^Y|
00000C60: 29 3D 53 54 4B 20 24 34  32 0D 53 48 49 46 54 4C  |)=STK $42.SHIFTL|
00000C70: 20 3D 20 2A 0D 20 41 53  4C 20 53 54 4C 2C 58 0D  | = *. ASL STL,X.|
00000C80: 20 52 4F 4C 20 53 54 48  2C 58 0D 20 44 45 59 0D  | ROL STH,X. DEY.|
00000C90: 20 42 4E 45 20 53 48 49  46 54 4C 0D 20 52 54 53  | BNE SHIFTL. RTS|
00000CA0: 0D 3B 0D 3B 20 4E 45 47  41 54 45 2C 20 2D 53 54  |.;.; NEGATE, -ST|
00000CB0: 4B 3D 3E 53 54 4B 20 24  30 32 0D 4E 45 47 20 53  |K=>STK $02.NEG S|
00000CC0: 45 43 0D 20 4C 44 41 20  23 24 30 0D 20 53 42 43  |EC. LDA #$0. SBC|
00000CD0: 20 53 54 4C 2C 58 0D 20  53 54 41 20 53 54 4C 2C  | STL,X. STA STL,|
00000CE0: 58 0D 20 4C 44 41 20 23  24 30 0D 20 53 42 43 20  |X. LDA #$0. SBC |
00000CF0: 53 54 48 2C 58 0D 20 53  54 41 20 53 54 48 2C 58  |STH,X. STA STH,X|
00000D00: 0D 20 52 54 53 0D 3B 0D  4E 45 47 4F 50 52 20 53  |. RTS.;.NEGOPR S|
00000D10: 45 43 0D 20 4C 44 41 20  23 30 0D 20 53 42 43 20  |EC. LDA #0. SBC |
00000D20: 4F 50 4C 2C 58 0D 20 53  54 41 20 4F 50 4C 2C 58  |OPL,X. STA OPL,X|
00000D30: 0D 20 4C 44 41 20 23 24  30 0D 20 53 42 43 20 4F  |. LDA #$0. SBC O|
00000D40: 50 48 2C 58 0D 20 53 54  41 20 4F 50 48 2C 58 0D  |PH,X. STA OPH,X.|
00000D50: 20 52 54 53 0D 3B 0D 3B  20 20 42 49 54 2C 20 46  | RTS.;.;  BIT, F|
00000D60: 49 52 53 54 20 42 49 54  20 53 45 54 2C 20 24 35  |IRST BIT SET, $5|
00000D70: 45 0D 3B 42 49 54 58 20  4C 44 59 20 23 30 0D 3B  |E.;BITX LDY #0.;|
00000D80: 20 54 59 41 0D 3B 20 53  54 41 20 53 54 48 2C 58  | TYA.; STA STH,X|
00000D90: 0D 3B 42 49 54 31 20 4C  53 52 20 53 54 4C 2C 58  |.;BIT1 LSR STL,X|
00000DA0: 0D 3B 20 42 43 53 20 42  49 54 32 0D 3B 20 49 4E  |.; BCS BIT2.; IN|
00000DB0: 59 0D 3B 20 43 50 59 20  23 38 0D 3B 20 42 4D 49  |Y.; CPY #8.; BMI|
00000DC0: 20 42 49 54 31 0D 3B 42  49 54 32 20 54 59 41 0D  | BIT1.;BIT2 TYA.|
00000DD0: 3B 20 53 54 41 20 53 54  4C 2C 58 0D 3B 20 52 54  |; STA STL,X.; RT|
00000DE0: 53 0D 3B 0D 3B 20 43 41  4C 4C 2C 20 41 53 4D 20  |S.;.; CALL, ASM |
00000DF0: 53 55 42 52 4F 55 54 49  4E 45 3B 20 59 3D 50 55  |SUBROUTINE; Y=PU|
00000E00: 53 48 20 46 4C 41 47 0D  43 41 4C 4C 20 44 45 59  |SH FLAG.CALL DEY|
00000E10: 20 3B 20 54 45 53 54 20  46 4F 52 20 41 52 47 0D  | ; TEST FOR ARG.|
00000E20: 20 42 4D 49 20 43 41 4C  4C 31 0D 20 4C 44 41 20  | BMI CALL1. LDA |
00000E30: 53 54 4C 2C 58 0D 20 53  54 41 20 24 38 30 30 30  |STL,X. STA $8000|
00000E40: 0D 20 4C 44 41 20 53 54  48 2C 58 0D 20 53 54 41  |. LDA STH,X. STA|
00000E50: 20 24 38 30 30 31 0D 20  44 45 58 0D 20 44 45 58  | $8001. DEX. DEX|
00000E60: 0D 43 41 4C 4C 31 20 3D  20 2A 0D 20 4C 44 41 20  |.CALL1 = *. LDA |
00000E70: 53 54 4C 2C 58 0D 20 42  4E 45 20 43 41 4C 4C 32  |STL,X. BNE CALL2|
00000E80: 0D 20 44 45 43 20 53 54  48 2C 58 0D 43 41 4C 4C  |. DEC STH,X.CALL|
00000E90: 32 20 4C 44 41 20 53 54  48 2C 58 0D 20 50 48 41  |2 LDA STH,X. PHA|
00000EA0: 0D 20 4C 44 59 20 53 54  4C 2C 58 0D 20 44 45 59  |. LDY STL,X. DEY|
00000EB0: 0D 20 54 59 41 0D 20 50  48 41 0D 20 52 54 53 0D  |. TYA. PHA. RTS.|
00000EC0: 3B 0D 3B 20 20 43 4F 4E  53 54 41 4E 54 2D 38 20  |;.;  CONSTANT-8 |
00000ED0: 42 49 54 53 2C 20 59 3D  3E 53 54 4B 20 30 2D 32  |BITS, Y=>STK 0-2|
00000EE0: 35 35 20 24 35 32 0D 43  4F 4E 50 20 4C 44 41 20  |55 $52.CONP LDA |
00000EF0: 23 30 0D 20 49 4E 58 0D  20 49 4E 58 0D 20 53 54  |#0. INX. INX. ST|
00000F00: 41 20 53 54 48 2C 58 0D  20 54 59 41 0D 20 53 54  |A STH,X. TYA. ST|
00000F10: 41 20 53 54 4C 2C 58 0D  20 44 45 58 0D 20 44 45  |A STL,X. DEX. DE|
00000F20: 58 0D 20 52 54 53 0D 3B  0D 3B 20 20 43 4F 4E 53  |X. RTS.;.;  CONS|
00000F30: 54 41 4E 54 2D 38 20 42  49 54 53 2C 20 59 3D 3E  |TANT-8 BITS, Y=>|
00000F40: 53 54 4B 20 31 32 37 2F  2D 31 32 38 20 24 35 30  |STK 127/-128 $50|
00000F50: 0D 43 4F 4E 20 49 4E 58  0D 20 49 4E 58 0D 20 4A  |.CON INX. INX. J|
00000F60: 53 52 20 43 4F 4E 30 0D  20 44 45 58 0D 20 44 45  |SR CON0. DEX. DE|
00000F70: 58 0D 50 4F 50 20 52 54  53 20 3B 20 50 4F 50 2C  |X.POP RTS ; POP,|
00000F80: 20 20 24 32 42 0D 3B 0D  43 4F 4E 30 20 4C 44 41  |  $2B.;.CON0 LDA|
00000F90: 20 23 24 30 30 0D 20 53  54 41 20 53 54 48 2C 58  | #$00. STA STH,X|
00000FA0: 0D 20 54 59 41 0D 20 42  50 4C 20 43 4F 4E 31 0D  |. TYA. BPL CON1.|
00000FB0: 20 44 45 43 20 53 54 48  2C 58 20 3B 20 4E 45 47  | DEC STH,X ; NEG|
00000FC0: 41 54 49 56 45 20 43 4F  4E 53 54 0D 43 4F 4E 31  |ATIVE CONST.CON1|
00000FD0: 20 53 54 41 20 53 54 4C  2C 58 20 3B 24 30 30 20  | STA STL,X ;$00 |
00000FE0: 4F 52 20 24 46 46 0D 20  52 54 53 0D 3B 0D 3B 20  |OR $FF. RTS.;.; |
00000FF0: 43 4F 4E 53 54 41 4E 54  2D 31 36 20 42 49 54 53  |CONSTANT-16 BITS|
00001000: 2C 20 59 2C 41 3D 3E 53  54 4B 20 24 35 31 0D 43  |, Y,A=>STK $51.C|
00001010: 4F 4E 31 36 20 54 59 41  0D 20 49 4E 58 0D 20 49  |ON16 TYA. INX. I|
00001020: 4E 58 0D 20 53 54 41 20  53 54 4C 2C 58 0D 20 4A  |NX. STA STL,X. J|
00001030: 53 52 20 49 4E 43 50 43  0D 20 4C 44 59 20 23 24  |SR INCPC. LDY #$|
00001040: 30 30 0D 20 4C 44 41 20  28 50 43 4E 54 29 2C 59  |00. LDA (PCNT),Y|
00001050: 0D 20 53 54 41 20 53 54  48 2C 58 0D 20 44 45 58  |. STA STH,X. DEX|
00001060: 0D 20 44 45 58 0D 20 52  54 53 0D 3B 0D 3B 0D 3B  |. DEX. RTS.;.;.;|
00001070: 0D 3B 20 53 50 52 49 54  45 20 43 4F 4D 4D 41 4E  |.; SPRITE COMMAN|
00001080: 44 53 0D 3B 0D 42 4D 41  53 4B 20 2E 42 59 54 45  |DS.;.BMASK .BYTE|
00001090: 20 24 46 45 2C 24 30 31  2C 24 46 44 2C 24 30 32  | $FE,$01,$FD,$02|
000010A0: 2C 24 46 42 2C 24 30 34  2C 24 46 37 2C 24 30 38  |,$FB,$04,$F7,$08|
000010B0: 0D 20 2E 42 59 54 45 20  24 45 46 2C 24 31 30 2C  |. .BYTE $EF,$10,|
000010C0: 24 44 46 2C 24 32 30 2C  24 42 46 2C 24 34 30 2C  |$DF,$20,$BF,$40,|
000010D0: 24 37 46 2C 24 38 30 0D  20 2E 42 59 54 45 20 24  |$7F,$80. .BYTE $|
000010E0: 46 45 2C 24 30 31 2C 24  46 44 2C 24 30 32 2C 24  |FE,$01,$FD,$02,$|
000010F0: 46 42 2C 24 30 34 2C 24  46 37 2C 24 30 38 0D 20  |FB,$04,$F7,$08. |
00001100: 2E 42 59 54 45 20 24 46  45 2C 24 30 31 2C 24 46  |.BYTE $FE,$01,$F|
00001110: 44 2C 24 30 32 2C 24 46  42 2C 24 30 34 2C 24 46  |D,$02,$FB,$04,$F|
00001120: 37 2C 24 30 38 0D 20 2E  42 59 54 45 20 24 45 46  |7,$08. .BYTE $EF|
00001130: 2C 24 31 30 2C 24 44 46  2C 24 32 30 2C 24 42 46  |,$10,$DF,$20,$BF|
00001140: 2C 24 34 30 2C 24 37 46  2C 24 38 30 0D 20 2E 42  |,$40,$7F,$80. .B|
00001150: 59 54 45 20 24 46 45 2C  24 30 31 2C 24 46 44 2C  |YTE $FE,$01,$FD,|
00001160: 24 30 32 2C 24 46 42 2C  24 30 34 2C 24 46 37 2C  |$02,$FB,$04,$F7,|
00001170: 24 30 38 0D 4D 4F 46 53  54 20 2E 57 4F 52 44 20  |$08.MOFST .WORD |
00001180: 30 2C 30 2C 30 2C 30 2C  30 2C 30 2C 30 2C 30 0D  |0,0,0,0,0,0,0,0.|
00001190: 20 2E 57 4F 52 44 20 31  2C 31 2C 31 2C 31 0D 20  | .WORD 1,1,1,1. |
000011A0: 2E 57 4F 52 44 20 32 2C  32 2C 32 2C 32 2C 32 2C  |.WORD 2,2,2,2,2,|
000011B0: 32 2C 32 2C 32 0D 20 2E  57 4F 52 44 20 33 2C 33  |2,2,2. .WORD 3,3|
000011C0: 2C 33 2C 33 0D 3B 0D 3B  20 53 50 58 2C 20 53 54  |,3,3.;.; SPX, ST|
000011D0: 4B 20 3D 3E 20 53 50 52  45 47 58 20 5B 59 5D 28  |K => SPREGX [Y](|
000011E0: 20 4F 52 20 5B 56 41 52  5B 59 5D 5D 20 29 0D 3B  | OR [VAR[Y]] ).;|
000011F0: 0D 53 50 52 58 20 3D 20  2A 0D 20 4A 53 52 20 53  |.SPRX = *. JSR S|
00001200: 50 32 59 20 3B 20 47 45  54 20 53 50 52 49 54 45  |P2Y ; GET SPRITE|
00001210: 20 4E 55 4D 42 45 52 20  4F 46 46 53 45 54 0D 20  | NUMBER OFFSET. |
00001220: 4C 44 41 20 53 54 4C 2C  58 0D 20 53 54 41 20 53  |LDA STL,X. STA S|
00001230: 50 30 58 2C 59 20 3B 20  53 54 4F 52 45 20 4C 53  |P0X,Y ; STORE LS|
00001240: 20 42 59 54 45 0D 20 4C  44 41 20 42 4D 41 53 4B  | BYTE. LDA BMASK|
00001250: 2B 31 2C 59 20 3B 20 53  54 4F 52 45 20 4D 53 20  |+1,Y ; STORE MS |
00001260: 42 49 54 0D 20 50 48 41  0D 20 4C 44 41 20 42 4D  |BIT. PHA. LDA BM|
00001270: 41 53 4B 2C 59 0D 20 50  48 41 0D 20 4C 44 41 20  |ASK,Y. PHA. LDA |
00001280: 4D 4F 46 53 54 2C 59 0D  20 54 41 59 0D 20 50 4C  |MOFST,Y. TAY. PL|
00001290: 41 0D 20 41 4E 44 20 4D  53 42 52 45 47 2C 59 0D  |A. AND MSBREG,Y.|
000012A0: 20 53 54 41 20 54 4D 50  31 0D 20 4C 44 41 20 53  | STA TMP1. LDA S|
000012B0: 54 48 2C 58 0D 20 52 4F  52 20 41 0D 20 50 4C 41  |TH,X. ROR A. PLA|
000012C0: 0D 20 42 43 43 20 53 50  58 31 20 3B 20 53 45 54  |. BCC SPX1 ; SET|
000012D0: 20 4D 53 42 0D 20 4F 52  41 20 54 4D 50 31 0D 20  | MSB. ORA TMP1. |
000012E0: 53 54 41 20 54 4D 50 31  0D 53 50 58 31 20 4C 44  |STA TMP1.SPX1 LD|
000012F0: 41 20 54 4D 50 31 0D 20  53 54 41 20 4D 53 42 52  |A TMP1. STA MSBR|
00001300: 45 47 2C 59 0D 20 52 54  53 0D 3B 0D 3B 0D 3B 20  |EG,Y. RTS.;.;.; |
00001310: 53 50 59 2C 20 53 54 4B  20 3D 3E 20 53 50 52 45  |SPY, STK => SPRE|
00001320: 47 59 20 5B 59 5D 28 20  4F 52 20 56 41 52 29 0D  |GY [Y]( OR VAR).|
00001330: 53 50 52 59 20 3D 20 2A  0D 20 4A 53 52 20 53 50  |SPRY = *. JSR SP|
00001340: 32 59 0D 20 4C 44 41 20  53 54 4C 2C 58 0D 20 53  |2Y. LDA STL,X. S|
00001350: 54 41 20 53 50 30 59 2C  59 0D 20 52 54 53 0D 3B  |TA SP0Y,Y. RTS.;|
00001360: 0D 53 50 32 59 20 3D 20  2A 0D 20 4C 44 41 20 41  |.SP2Y = *. LDA A|
00001370: 52 47 20 3B 20 49 46 20  41 52 47 20 3E 20 31 32  |RG ; IF ARG > 12|
00001380: 37 2C 20 41 52 47 20 49  53 20 53 50 52 49 54 45  |7, ARG IS SPRITE|
00001390: 0D 20 42 4D 49 20 53 50  32 59 31 0D 20 41 53 4C  |. BMI SP2Y1. ASL|
000013A0: 20 41 20 3B 20 45 4C 53  45 20 56 41 52 20 5B 41  | A ; ELSE VAR [A|
000013B0: 52 47 5D 20 49 53 20 53  50 52 49 54 45 20 4E 55  |RG] IS SPRITE NU|
000013C0: 4D 42 45 52 0D 20 54 41  59 0D 20 4C 44 41 20 56  |MBER. TAY. LDA V|
000013D0: 41 52 4C 2C 59 0D 53 50  32 59 31 20 3D 20 2A 0D  |ARL,Y.SP2Y1 = *.|
000013E0: 20 41 53 4C 20 41 0D 20  54 41 59 0D 20 52 54 53  | ASL A. TAY. RTS|
000013F0: 0D 3B 0D 3B 0D 3B 20 57  4F 52 44 2C 20 57 4F 52  |.;.;.; WORD, WOR|
00001400: 44 28 53 54 4B 29 3D 3E  53 54 4B 20 24 30 46 0D  |D(STK)=>STK $0F.|
00001410: 57 52 44 20 4C 44 59 20  53 54 4C 2C 58 0D 20 4A  |WRD LDY STL,X. J|
00001420: 4D 50 20 43 4F 4E 30 0D  3B 0D 3B 20 20 52 4E 44  |MP CON0.;.;  RND|
00001430: 2C 20 53 54 4B 2A 52 4E  44 3D 3E 53 54 4B 20 24  |, STK*RND=>STK $|
00001440: 30 38 0D 52 4E 44 20 49  4E 58 20 3B 20 46 41 4B  |08.RND INX ; FAK|
00001450: 45 20 53 54 41 43 4B 0D  20 49 4E 58 0D 20 4C 44  |E STACK. INX. LD|
00001460: 41 20 52 41 4E 44 4F 4D  0D 52 4E 44 45 20 53 54  |A RANDOM.RNDE ST|
00001470: 41 20 53 54 4C 2C 58 0D  20 4C 44 41 20 23 24 30  |A STL,X. LDA #$0|
00001480: 30 0D 20 53 54 41 20 53  54 48 2C 58 0D 20 53 54  |0. STA STH,X. ST|
00001490: 41 20 54 4D 50 31 0D 20  4C 44 41 20 4F 50 48 2C  |A TMP1. LDA OPH,|
000014A0: 58 0D 20 42 50 4C 20 52  4E 44 32 0D 20 4A 53 52  |X. BPL RND2. JSR|
000014B0: 20 4E 45 47 4F 50 52 20  3B 20 41 42 53 28 4F 50  | NEGOPR ; ABS(OP|
000014C0: 52 29 0D 20 49 4E 43 20  54 4D 50 31 0D 52 4E 44  |R). INC TMP1.RND|
000014D0: 32 20 4C 44 59 20 23 38  0D 20 4A 53 52 20 4D 32  |2 LDY #8. JSR M2|
000014E0: 20 3B 20 44 4F 20 4D 55  4C 54 0D 20 4C 44 41 20  | ; DO MULT. LDA |
000014F0: 53 54 58 32 2C 58 0D 20  53 54 41 20 4F 50 48 2C  |STX2,X. STA OPH,|
00001500: 58 0D 20 4C 44 41 20 53  54 58 31 2C 58 20 20 3B  |X. LDA STX1,X  ;|
00001510: 20 4E 4F 52 4D 41 4C 49  5A 45 0D 20 53 54 41 20  | NORMALIZE. STA |
00001520: 4F 50 4C 2C 58 0D 20 4C  44 41 20 54 4D 50 31 0D  |OPL,X. LDA TMP1.|
00001530: 20 42 45 51 20 52 4E 44  33 0D 20 4A 53 52 20 4E  | BEQ RND3. JSR N|
00001540: 45 47 4F 50 52 0D 52 4E  44 33 20 44 45 58 20 3B  |EGOPR.RND3 DEX ;|
00001550: 20 52 45 53 54 4F 52 45  20 53 54 41 43 4B 0D 20  | RESTORE STACK. |
00001560: 44 45 58 0D 20 52 54 53  0D 3B 0D 3B 0D 42 59 54  |DEX. RTS.;.;.BYT|
00001570: 58 20 4C 44 41 20 23 24  30 30 20 3B 20 20 42 59  |X LDA #$00 ;  BY|
00001580: 54 45 2C 20 53 54 4B 26  46 46 3D 3E 53 54 4B 20  |TE, STK&FF=>STK |
00001590: 24 30 37 0D 20 53 54 41  20 53 54 48 2C 58 20 3B  |$07. STA STH,X ;|
000015A0: 20 30 0D 20 52 54 53 0D  3B 0D 3B 0D 3B 20 20 41  | 0. RTS.;.;.;  A|
000015B0: 42 53 2C 20 41 42 53 28  53 54 4B 29 3D 3E 53 54  |BS, ABS(STK)=>ST|
000015C0: 4B 20 24 30 39 0D 41 42  53 20 4C 44 41 20 53 54  |K $09.ABS LDA ST|
000015D0: 48 2C 58 0D 20 42 50 4C  20 41 42 53 31 0D 20 4A  |H,X. BPL ABS1. J|
000015E0: 53 52 20 4E 45 47 20 3B  20 4E 45 47 41 54 45 20  |SR NEG ; NEGATE |
000015F0: 49 46 20 4E 45 47 0D 41  42 53 31 20 52 54 53 0D  |IF NEG.ABS1 RTS.|
00001600: 3B 0D 3B 20 20 53 47 4E  2C 20 53 47 4E 28 53 54  |;.;  SGN, SGN(ST|
00001610: 4B 29 3D 3E 53 54 4B 20  24 30 41 0D 53 47 4E 20  |K)=>STK $0A.SGN |
00001620: 4C 44 41 20 53 54 48 2C  58 0D 20 42 50 4C 20 53  |LDA STH,X. BPL S|
00001630: 47 4E 31 0D 20 4C 44 59  20 23 24 46 46 20 3B 3C  |GN1. LDY #$FF ;<|
00001640: 30 0D 20 4A 4D 50 20 43  4F 4E 30 0D 53 47 4E 31  |0. JMP CON0.SGN1|
00001650: 20 42 45 51 20 53 47 4E  32 0D 20 4C 44 59 20 23  | BEQ SGN2. LDY #|
00001660: 24 30 31 0D 20 4A 4D 50  20 43 4F 4E 30 20 3B 3E  |$01. JMP CON0 ;>|
00001670: 30 0D 53 47 4E 32 20 4C  44 41 20 53 54 4C 2C 58  |0.SGN2 LDA STL,X|
00001680: 0D 20 42 4E 45 20 53 47  4E 31 0D 20 4C 44 59 20  |. BNE SGN1. LDY |
00001690: 23 24 30 30 20 3B 3D 30  0D 20 4A 4D 50 20 43 4F  |#$00 ;=0. JMP CO|
000016A0: 4E 30 0D 3B 0D 3B 20 20  50 45 45 4B 2C 20 50 45  |N0.;.;  PEEK, PE|
000016B0: 45 4B 28 53 54 4B 29 3D  3E 53 54 4B 20 24 30 42  |EK(STK)=>STK $0B|
000016C0: 0D 50 45 45 4B 20 4A 53  52 20 55 53 52 20 3B 53  |.PEEK JSR USR ;S|
000016D0: 54 4B 3D 3E 46 52 30 0D  20 4C 44 41 20 23 24 30  |TK=>FR0. LDA #$0|
000016E0: 30 0D 20 53 54 41 20 53  54 48 2C 58 0D 20 4C 44  |0. STA STH,X. LD|
000016F0: 59 20 23 24 30 30 0D 20  4C 44 41 20 28 46 52 30  |Y #$00. LDA (FR0|
00001700: 29 2C 59 0D 20 53 54 41  20 53 54 4C 2C 58 0D 20  |),Y. STA STL,X. |
00001710: 52 54 53 0D 3B 0D 3B 20  20 50 4F 4B 45 2C 20 4F  |RTS.;.;  POKE, O|
00001720: 50 52 3D 3E 4C 4F 43 28  53 54 4B 29 20 24 33 30  |PR=>LOC(STK) $30|
00001730: 0D 50 4F 4B 45 20 4A 53  52 20 55 53 52 20 3B 53  |.POKE JSR USR ;S|
00001740: 54 4B 3D 3E 46 52 30 0D  20 4C 44 59 20 23 24 30  |TK=>FR0. LDY #$0|
00001750: 30 0D 50 4F 4B 45 30 20  4C 44 41 20 4F 50 4C 2C  |0.POKE0 LDA OPL,|
00001760: 58 0D 20 53 54 41 20 28  46 52 30 29 2C 59 0D 20  |X. STA (FR0),Y. |
00001770: 52 54 53 0D 3B 0D 50 4F  4B 45 59 20 4A 53 52 20  |RTS.;.POKEY JSR |
00001780: 55 53 52 0D 20 4C 44 59  20 56 41 52 4C 0D 20 4A  |USR. LDY VARL. J|
00001790: 4D 50 20 50 4F 4B 45 30  0D 3B 0D 3B 20 52 41 4E  |MP POKE0.;.; RAN|
000017A0: 47 45 2C 20 56 41 4C 55  45 2C 20 4F 50 52 3D 4C  |GE, VALUE, OPR=L|
000017B0: 4F 20 53 54 4B 3D 48 49  20 24 33 35 0D 3B 20 50  |O STK=HI $35.; P|
000017C0: 4F 53 49 54 49 56 45 20  56 41 4C 55 45 53 20 4F  |OSITIVE VALUES O|
000017D0: 4E 4C 59 20 21 21 0D 52  41 4E 47 45 20 4C 44 41  |NLY !!.RANGE LDA|
000017E0: 20 4F 50 48 2D 32 2C 58  0D 20 42 4D 49 20 4F 52  | OPH-2,X. BMI OR|
000017F0: 4E 47 4C 4F 0D 20 43 4D  50 20 53 54 48 2C 58 0D  |NGLO. CMP STH,X.|
00001800: 20 42 4E 45 20 43 50 48  49 0D 20 4C 44 41 20 4F  | BNE CPHI. LDA O|
00001810: 50 4C 2D 32 2C 58 0D 20  43 4D 50 20 53 54 4C 2C  |PL-2,X. CMP STL,|
00001820: 58 0D 43 50 48 49 20 42  43 53 20 4F 52 4E 47 48  |X.CPHI BCS ORNGH|
00001830: 49 0D 20 4C 44 41 20 4F  50 48 2D 32 2C 58 0D 20  |I. LDA OPH-2,X. |
00001840: 43 4D 50 20 4F 50 48 2C  58 0D 20 42 4E 45 20 43  |CMP OPH,X. BNE C|
00001850: 50 4C 4F 0D 20 4C 44 41  20 4F 50 4C 2D 32 2C 58  |PLO. LDA OPL-2,X|
00001860: 0D 20 43 4D 50 20 4F 50  4C 2C 58 0D 43 50 4C 4F  |. CMP OPL,X.CPLO|
00001870: 20 42 43 43 20 4F 52 4E  47 4C 4F 0D 20 52 54 53  | BCC ORNGLO. RTS|
00001880: 0D 3B 0D 4F 52 4E 47 48  49 20 4C 44 41 20 53 54  |.;.ORNGHI LDA ST|
00001890: 48 2C 58 0D 20 53 54 41  20 4F 50 48 2D 32 2C 58  |H,X. STA OPH-2,X|
000018A0: 0D 20 4C 44 41 20 53 54  4C 2C 58 0D 20 53 54 41  |. LDA STL,X. STA|
000018B0: 20 4F 50 4C 2D 32 2C 58  0D 20 52 54 53 0D 4F 52  | OPL-2,X. RTS.OR|
000018C0: 4E 47 4C 4F 20 4C 44 41  20 4F 50 48 2C 58 0D 20  |NGLO LDA OPH,X. |
000018D0: 53 54 41 20 4F 50 48 2D  32 2C 58 0D 20 4C 44 41  |STA OPH-2,X. LDA|
000018E0: 20 4F 50 4C 2C 58 0D 20  53 54 41 20 4F 50 4C 2D  | OPL,X. STA OPL-|
000018F0: 32 2C 58 0D 20 52 54 53  0D 3B 0D 3B 20 20 52 41  |2,X. RTS.;.;  RA|
00001900: 4E 47 45 59 2C 20 56 41  4C 55 45 2C 20 4F 50 52  |NGEY, VALUE, OPR|
00001910: 3D 4C 4F 20 53 54 4B 3D  48 49 20 24 37 32 0D 3B  |=LO STK=HI $72.;|
00001920: 20 50 4F 53 49 54 49 56  45 20 56 41 4C 55 45 53  | POSITIVE VALUES|
00001930: 20 4F 4E 4C 59 20 21 21  0D 52 4E 47 59 20 4C 44  | ONLY !!.RNGY LD|
00001940: 41 20 4F 50 48 2D 32 2C  58 0D 20 42 4D 49 20 4F  |A OPH-2,X. BMI O|
00001950: 52 4E 47 0D 20 43 4D 50  20 53 54 48 2C 58 0D 20  |RNG. CMP STH,X. |
00001960: 42 4E 45 20 43 50 30 48  49 0D 20 4C 44 41 20 4F  |BNE CP0HI. LDA O|
00001970: 50 4C 2D 32 2C 58 0D 20  43 4D 50 20 53 54 4C 2C  |PL-2,X. CMP STL,|
00001980: 58 0D 43 50 30 48 49 20  42 43 53 20 4F 52 4E 47  |X.CP0HI BCS ORNG|
00001990: 0D 20 4C 44 41 20 4F 50  48 2D 32 2C 58 0D 20 43  |. LDA OPH-2,X. C|
000019A0: 4D 50 20 4F 50 48 2C 58  0D 20 42 4E 45 20 43 50  |MP OPH,X. BNE CP|
000019B0: 30 4C 4F 0D 20 4C 44 41  20 4F 50 4C 2D 32 2C 58  |0LO. LDA OPL-2,X|
000019C0: 0D 20 43 4D 50 20 4F 50  4C 2C 58 0D 43 50 30 4C  |. CMP OPL,X.CP0L|
000019D0: 4F 20 42 43 43 20 4F 52  4E 47 0D 20 52 54 53 0D  |O BCC ORNG. RTS.|
000019E0: 4F 52 4E 47 20 4C 44 41  20 23 30 0D 20 53 54 41  |ORNG LDA #0. STA|
000019F0: 20 4F 50 48 2D 32 2C 58  0D 20 54 59 41 0D 20 53  | OPH-2,X. TYA. S|
00001A00: 54 41 20 4F 50 4C 2D 32  2C 58 0D 20 52 54 53 0D  |TA OPL-2,X. RTS.|
00001A10: 3B 0D 3B 20 20 53 54 49  43 4B 2C 20 28 53 54 4B  |;.;  STICK, (STK|
00001A20: 29 3D 3E 53 54 4B 2D 58  2C 4F 50 52 2D 59 20 24  |)=>STK-X,OPR-Y $|
00001A30: 31 30 0D 53 54 49 43 4B  20 4C 44 59 20 53 54 4C  |10.STICK LDY STL|
00001A40: 2C 58 0D 20 4C 44 41 20  24 44 43 30 30 2C 59 0D  |,X. LDA $DC00,Y.|
00001A50: 20 4C 44 59 20 23 24 30  30 0D 20 52 4F 52 20 41  | LDY #$00. ROR A|
00001A60: 0D 20 42 43 53 20 53 54  31 0D 20 4C 44 59 20 23  |. BCS ST1. LDY #|
00001A70: 24 46 46 0D 53 54 31 20  52 4F 52 20 41 0D 20 42  |$FF.ST1 ROR A. B|
00001A80: 43 53 20 53 54 32 0D 20  4C 44 59 20 23 24 30 31  |CS ST2. LDY #$01|
00001A90: 0D 53 54 32 20 50 48 41  0D 20 4A 53 52 20 43 4F  |.ST2 PHA. JSR CO|
00001AA0: 4E 30 20 3B 20 44 59 0D  20 50 4C 41 0D 20 4C 44  |N0 ; DY. PLA. LD|
00001AB0: 59 20 23 24 30 30 0D 20  52 4F 52 20 41 0D 20 42  |Y #$00. ROR A. B|
00001AC0: 43 53 20 53 54 33 0D 20  44 45 59 0D 53 54 33 20  |CS ST3. DEY.ST3 |
00001AD0: 52 4F 52 20 41 0D 20 42  43 53 20 53 54 34 0D 20  |ROR A. BCS ST4. |
00001AE0: 4C 44 59 20 23 24 30 31  0D 53 54 34 20 4A 4D 50  |LDY #$01.ST4 JMP|
00001AF0: 20 43 4F 4E 20 3B 20 44  58 0D 3B 0D 3B 20 20 53  | CON ; DX.;.;  S|
00001B00: 54 52 49 47 2C 20 28 53  54 4B 29 3D 3E 53 54 4B  |TRIG, (STK)=>STK|
00001B10: 20 24 30 34 0D 53 54 52  49 47 20 4C 44 59 20 53  | $04.STRIG LDY S|
00001B20: 54 4C 2C 58 0D 20 4C 44  41 20 24 44 43 30 30 2C  |TL,X. LDA $DC00,|
00001B30: 59 0D 20 52 4F 52 20 41  0D 20 52 4F 52 20 41 0D  |Y. ROR A. ROR A.|
00001B40: 20 52 4F 52 20 41 0D 20  52 4F 52 20 41 0D 20 41  | ROR A. ROR A. A|
00001B50: 4E 44 20 23 31 0D 20 45  4F 52 20 23 31 0D 20 53  |ND #1. EOR #1. S|
00001B60: 54 41 20 53 54 4C 2C 58  0D 20 4C 44 41 20 23 24  |TA STL,X. LDA #$|
00001B70: 30 30 0D 20 53 54 41 20  53 54 48 2C 58 0D 20 52  |00. STA STH,X. R|
00001B80: 54 53 0D 3B 0D 3B 20 20  49 4E 43 2C 20 53 54 4B  |TS.;.;  INC, STK|
00001B90: 2B 31 3D 3E 53 54 4B 20  24 30 35 0D 49 4E 43 52  |+1=>STK $05.INCR|
00001BA0: 20 49 4E 43 20 53 54 4C  2C 58 0D 20 42 4E 45 20  | INC STL,X. BNE |
00001BB0: 49 4E 43 31 0D 20 49 4E  43 20 53 54 48 2C 58 0D  |INC1. INC STH,X.|
00001BC0: 49 4E 43 31 20 52 54 53  0D 3B 0D 3B 20 20 44 45  |INC1 RTS.;.;  DE|
00001BD0: 43 2C 20 53 54 4B 2D 31  3D 3E 53 54 4B 20 24 30  |C, STK-1=>STK $0|
00001BE0: 36 0D 44 45 43 52 20 4C  44 41 20 53 54 4C 2C 58  |6.DECR LDA STL,X|
00001BF0: 0D 20 42 4E 45 20 44 45  43 31 0D 20 44 45 43 20  |. BNE DEC1. DEC |
00001C00: 53 54 48 2C 58 0D 44 45  43 31 20 44 45 43 20 53  |STH,X.DEC1 DEC S|
00001C10: 54 4C 2C 58 0D 20 52 54  53 0D 3B 0D 3B 20 20 44  |TL,X. RTS.;.;  D|
00001C20: 55 50 2C 20 53 54 4B 3D  3E 53 54 4B 2B 32 20 24  |UP, STK=>STK+2 $|
00001C30: 31 31 0D 44 55 50 20 4C  44 41 20 53 54 4C 2C 58  |11.DUP LDA STL,X|
00001C40: 0D 20 53 54 41 20 53 54  58 31 2C 58 0D 20 4C 44  |. STA STX1,X. LD|
00001C50: 41 20 53 54 48 2C 58 0D  20 53 54 41 20 53 54 58  |A STH,X. STA STX|
00001C60: 32 2C 58 0D 20 52 54 53  0D 3B 0D 3B 20 20 44 50  |2,X. RTS.;.;  DP|
00001C70: 4F 4B 45 2C 20 4F 50 52  3D 3E 4C 4F 43 28 53 54  |OKE, OPR=>LOC(ST|
00001C80: 4B 29 20 24 33 34 0D 44  50 4F 4B 45 20 4C 44 59  |K) $34.DPOKE LDY|
00001C90: 20 23 24 30 30 0D 20 4A  53 52 20 55 53 52 20 3B  | #$00. JSR USR ;|
00001CA0: 53 54 4B 3D 3E 46 52 30  0D 20 4C 44 41 20 4F 50  |STK=>FR0. LDA OP|
00001CB0: 4C 2C 58 0D 20 53 54 41  20 28 46 52 30 29 2C 59  |L,X. STA (FR0),Y|
00001CC0: 0D 20 49 4E 59 0D 20 4C  44 41 20 4F 50 48 2C 58  |. INY. LDA OPH,X|
00001CD0: 0D 20 53 54 41 20 28 46  52 30 29 2C 59 0D 20 52  |. STA (FR0),Y. R|
00001CE0: 54 53 0D 3B 0D 3B 20 20  44 50 45 45 4B 2C 20 50  |TS.;.;  DPEEK, P|
00001CF0: 45 45 4B 28 53 54 4B 29  3D 3E 53 54 4B 20 24 30  |EEK(STK)=>STK $0|
00001D00: 44 0D 44 50 45 45 4B 20  4C 44 59 20 23 24 30 30  |D.DPEEK LDY #$00|
00001D10: 0D 20 4A 53 52 20 55 53  52 0D 20 4C 44 41 20 28  |. JSR USR. LDA (|
00001D20: 46 52 30 29 2C 59 0D 20  53 54 41 20 53 54 4C 2C  |FR0),Y. STA STL,|
00001D30: 58 0D 20 49 4E 59 0D 20  4C 44 41 20 28 46 52 30  |X. INY. LDA (FR0|
00001D40: 29 2C 59 0D 20 53 54 41  20 53 54 48 2C 58 0D 20  |),Y. STA STH,X. |
00001D50: 52 54 53 0D 3B 0D 3B 20  20 44 4F 4E 45 20 24 30  |RTS.;.;  DONE $0|
00001D60: 30 0D 44 4F 4E 45 20 50  4C 41 0D 20 50 4C 41 0D  |0.DONE PLA. PLA.|
00001D70: 20 4C 44 59 20 46 52 30  0D 20 4C 44 41 20 46 52  | LDY FR0. LDA FR|
00001D80: 30 2B 31 0D 20 52 54 53  0D 3B 0D 3B 20 44 49 56  |0+1. RTS.;.; DIV|
00001D90: 49 44 45 2C 20 4F 50 52  2F 53 54 4B 3D 3E 4F 50  |IDE, OPR/STK=>OP|
00001DA0: 52 20 24 32 33 0D 44 49  56 20 4C 44 41 20 23 24  |R $23.DIV LDA #$|
00001DB0: 30 30 0D 20 53 54 41 20  46 4C 41 47 0D 20 4A 53  |00. STA FLAG. JS|
00001DC0: 52 20 44 49 56 38 0D 20  44 45 58 0D 20 44 45 58  |R DIV8. DEX. DEX|
00001DD0: 0D 20 4A 53 52 20 44 49  56 38 0D 20 49 4E 58 0D  |. JSR DIV8. INX.|
00001DE0: 20 49 4E 58 0D 20 4C 44  41 20 23 24 30 30 0D 20  | INX. LDA #$00. |
00001DF0: 53 54 41 20 53 54 58 33  2C 58 0D 20 53 54 41 20  |STA STX3,X. STA |
00001E00: 53 54 58 34 2C 58 0D 20  53 54 41 20 53 54 58 31  |STX4,X. STA STX1|
00001E10: 2C 58 0D 20 53 54 41 20  53 54 58 32 2C 58 0D 20  |,X. STA STX2,X. |
00001E20: 4C 44 59 20 23 24 31 30  20 3B 20 31 36 20 42 49  |LDY #$10 ; 16 BI|
00001E30: 54 53 0D 44 49 56 31 20  41 53 4C 20 53 54 58 33  |TS.DIV1 ASL STX3|
00001E40: 2C 58 0D 20 52 4F 4C 20  53 54 58 34 2C 58 0D 20  |,X. ROL STX4,X. |
00001E50: 41 53 4C 20 4F 50 4C 2C  58 0D 20 52 4F 4C 20 4F  |ASL OPL,X. ROL O|
00001E60: 50 48 2C 58 0D 20 52 4F  4C 20 53 54 58 31 2C 58  |PH,X. ROL STX1,X|
00001E70: 0D 20 52 4F 4C 20 53 54  58 32 2C 58 0D 20 53 45  |. ROL STX2,X. SE|
00001E80: 43 0D 20 4C 44 41 20 53  54 58 31 2C 58 0D 20 53  |C. LDA STX1,X. S|
00001E90: 42 43 20 53 54 4C 2C 58  0D 20 53 54 41 20 54 4D  |BC STL,X. STA TM|
00001EA0: 50 31 20 3B 20 52 45 4D  41 49 4E 44 45 52 0D 20  |P1 ; REMAINDER. |
00001EB0: 4C 44 41 20 53 54 58 32  2C 58 0D 20 53 42 43 20  |LDA STX2,X. SBC |
00001EC0: 53 54 48 2C 58 0D 20 53  54 41 20 54 4D 50 32 0D  |STH,X. STA TMP2.|
00001ED0: 20 42 43 43 20 44 49 56  32 0D 20 49 4E 43 20 53  | BCC DIV2. INC S|
00001EE0: 54 58 33 2C 58 20 3B 20  52 45 53 55 4C 54 0D 20  |TX3,X ; RESULT. |
00001EF0: 4C 44 41 20 54 4D 50 31  20 3B 20 52 45 4D 20 3D  |LDA TMP1 ; REM =|
00001F00: 3E 20 44 49 56 0D 20 53  54 41 20 53 54 58 31 2C  |> DIV. STA STX1,|
00001F10: 58 0D 20 4C 44 41 20 54  4D 50 32 0D 20 53 54 41  |X. LDA TMP2. STA|
00001F20: 20 53 54 58 32 2C 58 0D  44 49 56 32 20 44 45 59  | STX2,X.DIV2 DEY|
00001F30: 0D 20 42 4E 45 20 44 49  56 31 0D 20 4C 44 41 20  |. BNE DIV1. LDA |
00001F40: 53 54 58 34 2C 58 20 3B  20 52 45 53 55 4C 54 20  |STX4,X ; RESULT |
00001F50: 3D 3E 20 4F 50 52 0D 20  53 54 41 20 53 54 48 2C  |=> OPR. STA STH,|
00001F60: 58 0D 20 4C 44 41 20 53  54 58 33 2C 58 0D 20 53  |X. LDA STX3,X. S|
00001F70: 54 41 20 53 54 4C 2C 58  0D 20 4C 44 41 20 46 4C  |TA STL,X. LDA FL|
00001F80: 41 47 0D 20 42 45 51 20  44 49 56 33 0D 20 4A 53  |AG. BEQ DIV3. JS|
00001F90: 52 20 4E 45 47 0D 44 49  56 33 20 4A 4D 50 20 50  |R NEG.DIV3 JMP P|
00001FA0: 55 4E 43 48 0D 3B 0D 44  49 56 38 20 4C 44 41 20  |UNCH.;.DIV8 LDA |
00001FB0: 53 54 48 2C 58 0D 20 42  50 4C 20 44 49 56 39 0D  |STH,X. BPL DIV9.|
00001FC0: 20 4A 53 52 20 4E 45 47  0D 20 4C 44 41 20 23 24  | JSR NEG. LDA #$|
00001FD0: 30 31 0D 20 45 4F 52 20  46 4C 41 47 0D 20 53 54  |01. EOR FLAG. ST|
00001FE0: 41 20 46 4C 41 47 0D 44  49 56 39 20 52 54 53 0D  |A FLAG.DIV9 RTS.|
00001FF0: 3B 0D 3B 20 20 46 4F 52  2C 20 4F 50 52 3D 3E 56  |;.;  FOR, OPR=>V|
00002000: 41 52 28 59 29 2C 53 54  4B 3D 3E 4C 49 4D 20 24  |AR(Y),STK=>LIM $|
00002010: 37 30 0D 46 4F 52 20 44  45 58 0D 20 44 45 58 0D  |70.FOR DEX. DEX.|
00002020: 20 54 59 41 20 3B 20 56  41 52 20 49 4E 44 45 58  | TYA ; VAR INDEX|
00002030: 0D 20 41 53 4C 20 41 0D  20 54 41 59 0D 20 4A 53  |. ASL A. TAY. JS|
00002040: 52 20 53 54 4F 52 45 20  3B 20 4F 50 52 3D 3E 56  |R STORE ; OPR=>V|
00002050: 41 52 28 58 29 0D 20 53  54 59 20 59 53 41 56 45  |AR(X). STY YSAVE|
00002060: 0D 20 4C 44 59 20 46 4F  52 50 20 3B 20 46 4F 52  |. LDY FORP ; FOR|
00002070: 20 50 4E 54 52 0D 20 4C  44 41 20 53 54 58 31 2C  | PNTR. LDA STX1,|
00002080: 58 20 3B 20 53 41 56 45  20 4C 49 4D 0D 20 53 54  |X ; SAVE LIM. ST|
00002090: 41 20 46 4C 4D 4C 2C 59  0D 20 4C 44 41 20 53 54  |A FLML,Y. LDA ST|
000020A0: 58 32 2C 58 0D 20 53 54  41 20 46 4C 4D 48 2C 59  |X2,X. STA FLMH,Y|
000020B0: 0D 20 4C 44 41 20 50 43  4E 54 20 3B 20 53 41 56  |. LDA PCNT ; SAV|
000020C0: 45 20 50 43 0D 20 53 54  41 20 46 50 43 4C 2C 59  |E PC. STA FPCL,Y|
000020D0: 0D 20 4C 44 41 20 50 43  4E 54 2B 31 0D 20 53 54  |. LDA PCNT+1. ST|
000020E0: 41 20 46 50 43 48 2C 59  0D 20 4C 44 41 20 59 53  |A FPCH,Y. LDA YS|
000020F0: 41 56 45 20 3B 20 53 41  56 45 20 56 41 52 23 0D  |AVE ; SAVE VAR#.|
00002100: 20 53 54 41 20 46 56 41  52 2C 59 0D 20 49 4E 59  | STA FVAR,Y. INY|
00002110: 20 3B 20 4E 45 58 54 20  46 53 54 41 43 4B 0D 20  | ; NEXT FSTACK. |
00002120: 49 4E 59 0D 20 49 4E 59  0D 20 49 4E 59 0D 20 49  |INY. INY. INY. I|
00002130: 4E 59 0D 20 53 54 59 20  46 4F 52 50 0D 20 49 4E  |NY. STY FORP. IN|
00002140: 58 0D 20 49 4E 58 0D 20  52 54 53 0D 3B 0D 3B 20  |X. INX. RTS.;.; |
00002150: 20 4E 45 58 54 2C 20 28  59 29 20 24 34 30 0D 4E  | NEXT, (Y) $40.N|
00002160: 45 58 54 20 53 54 59 20  59 53 41 56 45 0D 20 41  |EXT STY YSAVE. A|
00002170: 53 4C 20 59 53 41 56 45  20 3B 20 56 41 52 20 49  |SL YSAVE ; VAR I|
00002180: 4E 44 45 58 0D 20 53 54  58 20 58 53 41 56 45 0D  |NDEX. STX XSAVE.|
00002190: 20 4C 44 59 20 46 4F 52  50 0D 20 53 54 59 20 46  | LDY FORP. STY F|
000021A0: 53 41 56 45 0D 4E 58 54  31 20 44 45 59 0D 20 44  |SAVE.NXT1 DEY. D|
000021B0: 45 59 0D 20 44 45 59 0D  20 44 45 59 0D 20 44 45  |EY. DEY. DEY. DE|
000021C0: 59 0D 20 53 54 59 20 46  4F 52 50 0D 20 42 4D 49  |Y. STY FORP. BMI|
000021D0: 20 4E 58 54 39 20 3B 20  45 52 52 4F 52 0D 20 4C  | NXT9 ; ERROR. L|
000021E0: 44 41 20 46 56 41 52 2C  59 20 3B 20 46 49 4E 44  |DA FVAR,Y ; FIND|
000021F0: 20 46 4F 52 20 45 4E 54  52 59 0D 20 43 4D 50 20  | FOR ENTRY. CMP |
00002200: 59 53 41 56 45 0D 20 42  4E 45 20 4E 58 54 31 0D  |YSAVE. BNE NXT1.|
00002210: 20 4C 44 58 20 59 53 41  56 45 0D 20 49 4E 43 20  | LDX YSAVE. INC |
00002220: 56 41 52 4C 2C 58 0D 20  42 4E 45 20 4E 58 54 32  |VARL,X. BNE NXT2|
00002230: 0D 20 49 4E 43 20 56 41  52 48 2C 58 0D 4E 58 54  |. INC VARH,X.NXT|
00002240: 32 20 53 45 43 0D 20 4C  44 41 20 46 4C 4D 4C 2C  |2 SEC. LDA FLML,|
00002250: 59 0D 20 53 42 43 20 56  41 52 4C 2C 58 0D 20 4C  |Y. SBC VARL,X. L|
00002260: 44 41 20 46 4C 4D 48 2C  59 0D 20 53 42 43 20 56  |DA FLMH,Y. SBC V|
00002270: 41 52 48 2C 58 0D 20 42  4D 49 20 4E 58 54 39 0D  |ARH,X. BMI NXT9.|
00002280: 20 4C 44 41 20 46 50 43  4C 2C 59 20 3B 20 47 4F  | LDA FPCL,Y ; GO|
00002290: 20 42 41 43 4B 0D 20 53  54 41 20 50 43 4E 54 0D  | BACK. STA PCNT.|
000022A0: 20 4C 44 41 20 46 50 43  48 2C 59 0D 20 53 54 41  | LDA FPCH,Y. STA|
000022B0: 20 50 43 4E 54 2B 31 0D  20 4C 44 59 20 46 53 41  | PCNT+1. LDY FSA|
000022C0: 56 45 0D 20 53 54 59 20  46 4F 52 50 0D 4E 58 54  |VE. STY FORP.NXT|
000022D0: 39 20 4C 44 58 20 58 53  41 56 45 0D 20 52 54 53  |9 LDX XSAVE. RTS|
000022E0: 0D 3B 0D 3B 20 20 47 4F  54 4F 2C 20 59 20 24 34  |.;.;  GOTO, Y $4|
000022F0: 42 0D 47 4F 54 4F 20 53  54 59 20 59 53 41 56 45  |B.GOTO STY YSAVE|
00002300: 0D 20 4A 4D 50 20 47 4F  53 55 42 30 0D 3B 0D 3B  |. JMP GOSUB0.;.;|
00002310: 20 20 47 4F 53 55 42 2C  20 50 43 2B 59 20 24 34  |  GOSUB, PC+Y $4|
00002320: 34 0D 47 4F 53 55 42 20  53 54 59 20 59 53 41 56  |4.GOSUB STY YSAV|
00002330: 45 0D 20 4C 44 59 20 47  4F 50 0D 20 4C 44 41 20  |E. LDY GOP. LDA |
00002340: 50 43 4E 54 0D 20 53 54  41 20 47 50 43 4C 2C 59  |PCNT. STA GPCL,Y|
00002350: 0D 20 4C 44 41 20 50 43  4E 54 2B 31 0D 20 53 54  |. LDA PCNT+1. ST|
00002360: 41 20 47 50 43 48 2C 59  0D 20 44 45 59 0D 20 44  |A GPCH,Y. DEY. D|
00002370: 45 59 0D 20 53 54 59 20  47 4F 50 0D 47 4F 53 55  |EY. STY GOP.GOSU|
00002380: 42 30 20 4C 44 59 20 59  53 41 56 45 0D 20 4C 44  |B0 LDY YSAVE. LD|
00002390: 41 20 4A 4D 50 48 49 2C  59 0D 20 42 45 51 20 47  |A JMPHI,Y. BEQ G|
000023A0: 4F 53 55 42 33 0D 20 53  54 41 20 50 43 4E 54 2B  |OSUB3. STA PCNT+|
000023B0: 31 0D 20 4C 44 41 20 4A  4D 50 4C 4F 2C 59 0D 20  |1. LDA JMPLO,Y. |
000023C0: 53 54 41 20 50 43 4E 54  0D 20 52 54 53 0D 3B 0D  |STA PCNT. RTS.;.|
000023D0: 47 4F 53 55 42 33 20 4C  44 41 20 50 43 53 56 45  |GOSUB3 LDA PCSVE|
000023E0: 0D 20 53 54 41 20 50 43  4E 54 0D 20 4C 44 41 20  |. STA PCNT. LDA |
000023F0: 50 43 53 56 45 2B 31 0D  20 53 54 41 20 50 43 4E  |PCSVE+1. STA PCN|
00002400: 54 2B 31 0D 20 4C 44 59  20 23 30 0D 47 4F 53 55  |T+1. LDY #0.GOSU|
00002410: 42 31 20 4A 53 52 20 53  43 41 4E 0D 20 43 4D 50  |B1 JSR SCAN. CMP|
00002420: 20 23 24 34 35 20 3B 20  53 42 52 3F 0D 20 42 4E  | #$45 ; SBR?. BN|
00002430: 45 20 47 4F 53 55 42 31  0D 20 4A 53 52 20 49 4E  |E GOSUB1. JSR IN|
00002440: 43 50 43 0D 20 4C 44 41  20 28 50 43 4E 54 29 2C  |CPC. LDA (PCNT),|
00002450: 59 0D 20 43 4D 50 20 59  53 41 56 45 0D 20 42 45  |Y. CMP YSAVE. BE|
00002460: 51 20 47 4F 53 55 42 32  0D 20 4A 53 52 20 49 4E  |Q GOSUB2. JSR IN|
00002470: 43 50 43 0D 20 4A 4D 50  20 47 4F 53 55 42 31 0D  |CPC. JMP GOSUB1.|
00002480: 47 4F 53 55 42 32 20 4C  44 59 20 59 53 41 56 45  |GOSUB2 LDY YSAVE|
00002490: 0D 20 4C 44 41 20 50 43  4E 54 0D 20 53 54 41 20  |. LDA PCNT. STA |
000024A0: 4A 4D 50 4C 4F 2C 59 0D  20 4C 44 41 20 50 43 4E  |JMPLO,Y. LDA PCN|
000024B0: 54 2B 31 0D 20 53 54 41  20 4A 4D 50 48 49 2C 59  |T+1. STA JMPHI,Y|
000024C0: 0D 20 52 54 53 0D 3B 0D  3B 20 20 52 45 54 55 52  |. RTS.;.;  RETUR|
000024D0: 4E 2C 20 24 30 31 0D 52  45 54 55 52 4E 20 4C 44  |N, $01.RETURN LD|
000024E0: 59 20 47 4F 50 0D 20 49  4E 59 0D 20 49 4E 59 0D  |Y GOP. INY. INY.|
000024F0: 20 4C 44 41 20 47 50 43  4C 2C 59 0D 20 53 54 41  | LDA GPCL,Y. STA|
00002500: 20 50 43 4E 54 0D 20 4C  44 41 20 47 50 43 48 2C  | PCNT. LDA GPCH,|
00002510: 59 0D 20 53 54 41 20 50  43 4E 54 2B 31 0D 20 53  |Y. STA PCNT+1. S|
00002520: 54 59 20 47 4F 50 0D 20  52 54 53 0D 3B 0D 3B 20  |TY GOP. RTS.;.; |
00002530: 20 55 53 52 2C 20 53 54  4B 3D 3E 46 52 30 20 24  | USR, STK=>FR0 $|
00002540: 32 45 0D 55 53 52 20 4C  44 41 20 53 54 4C 2C 58  |2E.USR LDA STL,X|
00002550: 0D 20 53 54 41 20 46 52  30 0D 20 4C 44 41 20 53  |. STA FR0. LDA S|
00002560: 54 48 2C 58 0D 20 53 54  41 20 46 52 30 2B 31 0D  |TH,X. STA FR0+1.|
00002570: 20 52 54 53 0D 3B 0D 3B  0D 3B 20 20 50 52 49 4E  | RTS.;.;.;  PRIN|
00002580: 54 20 2B 2F 2D 2C 20 53  54 4B 20 59 3D 23 42 4C  |T +/-, STK Y=#BL|
00002590: 41 4E 4B 53 20 24 36 32  0D 3B 0D 3B 20 49 46 2C  |ANKS $62.;.; IF,|
000025A0: 20 53 47 4E 28 4F 50 52  2D 53 54 4B 29 3D 59 20  | SGN(OPR-STK)=Y |
000025B0: 24 37 31 0D 49 46 20 53  54 59 20 59 53 41 56 45  |$71.IF STY YSAVE|
000025C0: 0D 20 4A 53 52 20 53 55  42 0D 20 44 45 58 0D 20  |. JSR SUB. DEX. |
000025D0: 44 45 58 0D 20 4A 53 52  20 53 47 4E 0D 20 49 4E  |DEX. JSR SGN. IN|
000025E0: 58 0D 20 49 4E 58 0D 20  4C 44 41 20 4F 50 4C 2C  |X. INX. LDA OPL,|
000025F0: 58 0D 49 46 39 20 43 4D  50 20 59 53 41 56 45 0D  |X.IF9 CMP YSAVE.|
00002600: 20 42 45 51 20 45 45 45  49 46 20 3B 20 54 52 55  | BEQ EEEIF ; TRU|
00002610: 45 0D 45 4C 53 45 20 4C  44 59 20 23 24 30 30 20  |E.ELSE LDY #$00 |
00002620: 3B 45 4C 53 2C 20 24 37  42 0D 20 53 54 59 20 4C  |;ELS, $7B. STY L|
00002630: 45 56 45 4C 0D 49 46 31  20 4A 53 52 20 53 43 41  |EVEL.IF1 JSR SCA|
00002640: 4E 20 3B 20 46 49 4E 44  20 45 4E 44 49 46 0D 20  |N ; FIND ENDIF. |
00002650: 43 4D 50 20 23 24 37 44  0D 20 42 45 51 20 45 49  |CMP #$7D. BEQ EI|
00002660: 46 0D 20 43 4D 50 20 23  24 37 43 20 3B 20 4F 52  |F. CMP #$7C ; OR|
00002670: 20 53 55 50 45 52 20 45  49 46 0D 20 42 45 51 20  | SUPER EIF. BEQ |
00002680: 45 45 45 49 46 0D 20 43  4D 50 20 23 24 37 42 20  |EEEIF. CMP #$7B |
00002690: 3B 20 4F 52 20 45 4C 53  45 0D 20 42 4E 45 20 49  |; OR ELSE. BNE I|
000026A0: 46 32 0D 20 4C 44 41 20  4C 45 56 45 4C 0D 20 42  |F2. LDA LEVEL. B|
000026B0: 4E 45 20 49 46 31 0D 20  42 45 51 20 45 45 45 49  |NE IF1. BEQ EEEI|
000026C0: 46 0D 49 46 32 20 43 4D  50 20 23 24 32 35 20 3B  |F.IF2 CMP #$25 ;|
000026D0: 20 49 46 54 0D 20 42 45  51 20 49 46 33 0D 20 43  | IFT. BEQ IF3. C|
000026E0: 4D 50 20 23 24 32 36 20  3B 20 49 46 46 0D 20 42  |MP #$26 ; IFF. B|
000026F0: 45 51 20 49 46 33 0D 20  43 4D 50 20 23 24 36 31  |EQ IF3. CMP #$61|
00002700: 20 3B 20 49 46 30 0D 20  42 45 51 20 49 46 33 0D  | ; IF0. BEQ IF3.|
00002710: 20 43 4D 50 20 23 24 37  31 20 3B 20 49 46 0D 20  | CMP #$71 ; IF. |
00002720: 42 4E 45 20 49 46 31 0D  49 46 33 20 49 4E 43 20  |BNE IF1.IF3 INC |
00002730: 4C 45 56 45 4C 20 3B 20  50 52 4F 43 45 53 53 20  |LEVEL ; PROCESS |
00002740: 49 46 0D 20 42 4E 45 20  49 46 31 20 3B 20 41 4C  |IF. BNE IF1 ; AL|
00002750: 57 41 59 53 20 42 52 41  4E 43 48 45 53 0D 45 49  |WAYS BRANCHES.EI|
00002760: 46 20 44 45 43 20 4C 45  56 45 4C 20 3B 20 50 52  |F DEC LEVEL ; PR|
00002770: 4F 43 45 53 53 20 45 49  46 53 0D 20 42 50 4C 20  |OCESS EIFS. BPL |
00002780: 49 46 31 20 3B 20 41 4C  57 41 59 53 20 42 52 41  |IF1 ; ALWAYS BRA|
00002790: 4E 43 48 45 53 0D 50 52  4F 54 45 43 20 20 20 3B  |NCHES.PROTEC   ;|
000027A0: 20 24 34 44 0D 45 45 45  49 46 20 20 20 20 3B 20  | $4D.EEEIF    ; |
000027B0: 53 55 50 45 52 20 45 4E  44 49 46 20 24 37 43 0D  |SUPER ENDIF $7C.|
000027C0: 53 42 52 20 20 20 20 20  20 3B 20 4C 41 42 45 4C  |SBR      ; LABEL|
000027D0: 20 4F 50 20 24 34 35 0D  45 4E 44 49 46 20 52 54  | OP $45.ENDIF RT|
000027E0: 53 20 3B 20 45 4E 44 49  46 20 24 37 44 0D 3B 0D  |S ; ENDIF $7D.;.|
000027F0: 3B 20 20 49 46 54 2C 20  53 47 4E 28 53 54 4B 29  |;  IFT, SGN(STK)|
00002800: 3D 31 20 24 32 35 0D 49  46 54 20 4C 44 59 20 23  |=1 $25.IFT LDY #|
00002810: 24 30 31 0D 3B 0D 3B 20  20 49 46 30 2C 20 53 47  |$01.;.;  IF0, SG|
00002820: 4E 28 53 54 4B 29 3D 59  20 24 36 31 0D 49 46 30  |N(STK)=Y $61.IF0|
00002830: 20 53 54 59 20 59 53 41  56 45 0D 20 4A 53 52 20  | STY YSAVE. JSR |
00002840: 53 47 4E 0D 20 4C 44 41  20 53 54 4C 2C 58 0D 20  |SGN. LDA STL,X. |
00002850: 4A 4D 50 20 49 46 39 0D  3B 0D 3B 20 20 49 46 46  |JMP IF9.;.;  IFF|
00002860: 2C 20 53 47 4E 28 53 54  4B 29 3D 30 20 24 32 36  |, SGN(STK)=0 $26|
00002870: 0D 49 46 46 20 4C 44 59  20 23 24 30 30 0D 20 4A  |.IFF LDY #$00. J|
00002880: 4D 50 20 49 46 30 0D 3B  0D 53 43 41 4E 20 4C 44  |MP IF0.;.SCAN LD|
00002890: 41 20 28 50 43 4E 54 29  2C 59 20 3B 59 20 4D 55  |A (PCNT),Y ;Y MU|
000028A0: 53 54 3D 30 0D 20 43 4D  50 20 23 24 37 41 0D 20  |ST=0. CMP #$7A. |
000028B0: 42 43 53 20 53 43 41 4E  33 0D 20 43 4D 50 20 23  |BCS SCAN3. CMP #|
000028C0: 24 34 30 0D 20 42 43 43  20 53 43 41 4E 33 0D 20  |$40. BCC SCAN3. |
000028D0: 43 4D 50 20 23 24 35 31  20 3B 4B 31 36 0D 20 42  |CMP #$51 ;K16. B|
000028E0: 45 51 20 53 43 41 4E 34  0D 53 43 41 4E 31 20 43  |EQ SCAN4.SCAN1 C|
000028F0: 4D 50 20 23 24 34 36 20  3B 20 54 58 54 0D 20 42  |MP #$46 ; TXT. B|
00002900: 4E 45 20 53 43 41 4E 32  0D 53 43 41 4E 34 20 4A  |NE SCAN2.SCAN4 J|
00002910: 53 52 20 49 4E 43 50 43  0D 53 43 41 4E 32 20 4A  |SR INCPC.SCAN2 J|
00002920: 53 52 20 49 4E 43 50 43  0D 53 43 41 4E 33 20 4A  |SR INCPC.SCAN3 J|
00002930: 53 52 20 49 4E 43 50 43  0D 20 4C 44 41 20 28 50  |SR INCPC. LDA (P|
00002940: 43 4E 54 29 2C 59 0D 20  52 54 53 0D 3B 0D 3B 20  |CNT),Y. RTS.;.; |
00002950: 50 4F 53 54 58 54 2C 20  59 2C 59 3D 43 52 58 2C  |POSTXT, Y,Y=CRX,|
00002960: 43 52 59 20 24 34 36 0D  54 50 4F 53 20 53 54 59  |CRY $46.TPOS STY|
00002970: 20 43 4F 4C 43 52 53 20  3B 20 43 52 58 0D 20 4A  | COLCRS ; CRX. J|
00002980: 53 52 20 49 4E 43 50 43  0D 20 4C 44 59 20 23 30  |SR INCPC. LDY #0|
00002990: 30 0D 20 4C 44 41 20 28  50 43 4E 54 29 2C 59 0D  |0. LDA (PCNT),Y.|
000029A0: 20 53 54 41 20 52 4F 57  43 52 53 20 3B 20 43 52  | STA ROWCRS ; CR|
000029B0: 59 0D 20 52 54 53 0D 3B  0D 3B 20 53 57 41 50 2C  |Y. RTS.;.; SWAP,|
000029C0: 20 4F 50 52 3D 3E 53 54  4B 2C 20 53 54 4B 3D 3E  | OPR=>STK, STK=>|
000029D0: 4F 50 52 20 24 30 45 0D  53 57 41 50 20 4C 44 59  |OPR $0E.SWAP LDY|
000029E0: 20 4F 50 4C 2C 58 0D 20  4C 44 41 20 53 54 4C 2C  | OPL,X. LDA STL,|
000029F0: 58 0D 20 53 54 41 20 4F  50 4C 2C 58 0D 20 54 59  |X. STA OPL,X. TY|
00002A00: 41 0D 20 53 54 41 20 53  54 4C 2C 58 0D 20 4C 44  |A. STA STL,X. LD|
00002A10: 59 20 4F 50 48 2C 58 0D  20 4C 44 41 20 53 54 48  |Y OPH,X. LDA STH|
00002A20: 2C 58 0D 20 53 54 41 20  4F 50 48 2C 58 0D 20 54  |,X. STA OPH,X. T|
00002A30: 59 41 0D 20 53 54 41 20  53 54 48 2C 58 0D 20 52  |YA. STA STH,X. R|
00002A40: 54 53 0D 3B 0D 3B 20 20  41 4E 44 2C 20 53 54 4B  |TS.;.;  AND, STK|
00002A50: 26 59 3D 3E 53 54 4B 20  24 34 38 0D 4C 41 4E 44  |&Y=>STK $48.LAND|
00002A60: 20 54 59 41 0D 20 41 4E  44 20 53 54 4C 2C 58 0D  | TYA. AND STL,X.|
00002A70: 20 53 54 41 20 53 54 4C  2C 58 0D 20 4C 44 41 20  | STA STL,X. LDA |
00002A80: 23 24 30 30 0D 20 53 54  41 20 53 54 48 2C 58 0D  |#$00. STA STH,X.|
00002A90: 20 52 54 53 0D 3B 0D 3B  20 41 4E 44 32 2C 20 53  | RTS.;.; AND2, S|
00002AA0: 54 4B 26 4F 50 52 3D 3E  4F 50 52 2C 20 24 32 41  |TK&OPR=>OPR, $2A|
00002AB0: 0D 4C 41 4E 44 32 20 4C  44 41 20 53 54 4C 2C 58  |.LAND2 LDA STL,X|
00002AC0: 0D 20 41 4E 44 20 4F 50  4C 2C 58 0D 20 53 54 41  |. AND OPL,X. STA|
00002AD0: 20 4F 50 4C 2C 58 0D 20  4C 44 41 20 53 54 48 2C  | OPL,X. LDA STH,|
00002AE0: 58 0D 20 41 4E 44 20 4F  50 48 2C 58 0D 20 53 54  |X. AND OPH,X. ST|
00002AF0: 41 20 4F 50 48 2C 58 0D  20 52 54 53 0D 3B 0D 3B  |A OPH,X. RTS.;.;|
00002B00: 20 20 4F 52 2C 20 53 54  4B 5E 59 3D 3E 53 54 4B  |  OR, STK^Y=>STK|
00002B10: 20 24 34 39 0D 4C 4F 52  20 54 59 41 0D 20 4F 52  | $49.LOR TYA. OR|
00002B20: 41 20 53 54 4C 2C 58 0D  20 53 54 41 20 53 54 4C  |A STL,X. STA STL|
00002B30: 2C 58 0D 20 52 54 53 0D  3B 0D 3B 20 20 58 4F 52  |,X. RTS.;.;  XOR|
00002B40: 2C 20 53 54 4B 20 58 4F  52 20 59 3D 3E 53 54 4B  |, STK XOR Y=>STK|
00002B50: 20 24 34 41 0D 4C 58 4F  52 20 54 59 41 0D 20 45  | $4A.LXOR TYA. E|
00002B60: 4F 52 20 53 54 4C 2C 58  0D 20 53 54 41 20 53 54  |OR STL,X. STA ST|
00002B70: 4C 2C 58 0D 20 52 54 53  0D 3B 0D 3B 20 43 4C 52  |L,X. RTS.;.; CLR|
00002B80: 2C 20 43 4C 45 41 52 20  53 54 41 43 4B 20 24 37  |, CLEAR STACK $7|
00002B90: 45 0D 43 4C 52 20 4C 44  58 20 23 24 46 45 0D 20  |E.CLR LDX #$FE. |
00002BA0: 52 54 53 0D 3B 0D 3B 20  52 55 4E 2C 20 53 54 41  |RTS.;.; RUN, STA|
00002BB0: 52 54 20 4F 56 45 52 20  24 37 46 0D 52 55 4E 20  |RT OVER $7F.RUN |
00002BC0: 4C 44 41 20 50 43 53 56  45 2B 31 0D 20 53 54 41  |LDA PCSVE+1. STA|
00002BD0: 20 50 43 4E 54 2B 31 0D  20 4C 44 41 20 50 43 53  | PCNT+1. LDA PCS|
00002BE0: 56 45 0D 20 53 54 41 20  50 43 4E 54 0D 52 55 4E  |VE. STA PCNT.RUN|
00002BF0: 31 20 4C 44 58 20 23 24  37 38 0D 20 53 54 58 20  |1 LDX #$78. STX |
00002C00: 47 4F 50 0D 20 53 54 58  20 56 4C 49 4D 0D 20 4C  |GOP. STX VLIM. L|
00002C10: 44 58 20 23 24 30 30 0D  20 53 54 58 20 56 50 4C  |DX #$00. STX VPL|
00002C20: 55 53 0D 20 53 54 58 20  46 4F 52 50 0D 20 44 45  |US. STX FORP. DE|
00002C30: 58 0D 20 44 45 58 0D 20  52 54 53 0D 3B 0D 20 2E  |X. DEX. RTS.;. .|
00002C40: 45 4E 44 0D                                       |END.            |
ONE-1. .WORD DONE-1. .WORD DONE-1. .WORD
 DONE-1. .WORD DONE-1 ; $58. .WORD DONE-
1. .WORD DONE-1. .WORD DONE-1. .WORD DON
E-1. .WORD DONE-1. .WORD DONE-1. .WORD D
ONE-1. .WORD OFFSET-1 ;$60. .WORD IF0-1.
 .WORD DONE-1 ; PRPM. .WORD CALL-1. .WOR
D DONE-1 ; ROTATE. .WORD SPRX-1. .WORD S
PRY-1. .WORD DONE-1. .WORD DONE-1 ;$68. 
.WORD DONE-1. .WORD DONE-1. .WORD DONE-1
. .WORD DONE-1. .WORD DONE-1. .WORD DONE
-1. .WORD DONE-1. .WORD FOR-1 ;$70. .WOR
D IF-1. .WORD RNGY-1. .WORD DONE-1. .WOR
D DONE-1. .WORD DONE-1. .WORD DONE-1. .W
ORD DONE-1. .WORD DONE-1 ;$78. .WORD DON
E-1. .WORD DONE-1. .WORD ELSE-1. .WORD E
EEIF-1. .WORD ENDIF-1. .WORD CLR-1. .WOR
D RUN-1.; -----------------------------.
;  MAIN. * = BASE+$340. JMP MAIN.;JMP LO
OK   ***.;JMP SET    ***.;JMP QP.;.MAIN 
LDA $8001. STA PCNT+1. STA PCSVE+1. LDA 
$8000. STA PCNT. STA PCSVE. JSR RUN1.LOO
P JMP EXECUT.; -------------------------
----.; RETURN VAR VALUE.;LOOK LDA $8000 
   <<<<<<<<.;ASL A.;TAX.;LDA VARL,X.;TAY
.;LDA VARH,X.;RTS.; --------------------
---------.;  STORE VAR VALUE.;SET LDA $8
000    <<<<<<<<<.;ASL A.;TAY.;LDA $8003.
;STA VARH,Y.;LDA $8002.;STA VARL,Y.;RTS.
; -----------------------------.;  EXECU
TE 1 INSTRUCTION.EXECUT LDY #$00. LDA (P
CNT),Y ;GET OPERATOR. STA OPER. BIT OPER
 ; TEST OPERATOR. BPL EX1. ASL A ; LOAD/
STORE VARIABLE. AND #$7F. TAY. BVS EX0. 
INX. INX. JSR LOAD. JMP EXRTS.EX0 JSR ST
ORE. JMP POP1.;-------------------------
---.EX1 BVC EX2 ; NO ARG. CMP #$7A. BCS 
SPEC. JSR INCPC ; INCREMENT PC. LDA (PCN
T),Y. STA ARG.EX2 JSR GO ; GO TO OPERATO
R.EXDONE LDA OPER. ASL A. ASL A. STA OPE
R. BIT OPER. BMI EX4 ; POP OR POPX2. BVC
 EXRTS ; NO.EPUSH INX. INX. JMP EXRTS.EX
4 DEX. DEX. BVC EXRTS.POP1 DEX. DEX.EXRT
S JSR INCPC. JMP EXECUT.;.SPEC JSR GO. L
DA OPER. CMP #$7F. BEQ SPEC1. JSR INCPC.
SPEC1 JMP EXECUT.;----------------------
------.INCPC INC PCNT. BNE INCPC1. INC P
CNT+1.INCPC1 RTS.;----------------------
------.GO LDA OPER. ASL A. TAY. LDA OPTB
L+1,Y. PHA. LDA OPTBL,Y. PHA. LDY ARG. R
TS ; GO !!.; ---------------------------
--.;  INTEGER SUBROUTINES.;.;  LOAD, VAR
(Y+VPLUS)=>STK $80-$BF.LOAD CPY VLIM. BM
I LDLO. TYA. CLC. ADC VPLUS. TAY.LDLO LD
A VARL,Y. STA STL,X. LDA VARH,Y. STA STH
,X. RTS.;.;  STORE, STK=>VAR(Y+VPLUS) $C
0-$FF.STORE CPY VLIM. BMI STLO. TYA. CLC
. ADC VPLUS. TAY.STLO LDA STL,X. STA VAR
L,Y. LDA STH,X. STA VARH,Y. RTS.;.; OFFS
ET, STK=>VPLUS Y=>VLIM $60.OFFSET TYA. A
SL A. STA VLIM. LDA STL,X. ASL A. STA VP
LUS. RTS.;.;  ADD, STK+OPR=>OPR $20.ADD 
CLC. LDA STL,X. ADC OPL,X. STA OPL,X. LD
A STH,X. ADC OPH,X. STA OPH,X. RTS.;.;  
SUB, OPR-STK=>OPR $21.SUB SEC. LDA OPL,X
. SBC STL,X. STA OPL,X. LDA OPH,X. SBC S
TH,X. STA OPH,X. RTS.;.;  MULT, STK*OPR=
>OPR $22.; 16 BIT PRECISION.MULT LDY #$1
0.M2 LDA #$00. STA STX2,X. STA STX1,X.MU
LT2 LDA STL,X. LSR A. BCC MULT4 ;BIT OFF
. CLC. LDA STX1,X. ADC OPL,X. STA STX1,X
. LDA STX2,X. ADC OPH,X. STA STX2,X.MULT
4 ROR STX2,X. ROR STX1,X. ROR STH,X. ROR
 STL,X. DEY. BNE MULT2.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. ROR STH,X. ROR STL,X.
 DEY. BNE SHIFTR. RTS.;.; SHIFT RIGHT PO
SITIVE, $4C.SHR0 = *. LSR STH,X. ROR STL
,X. DEY. BNE SHR0. RTS.;.;  SHIFT LEFT, 
STK*(2^Y)=STK $42.SHIFTL = *. ASL STL,X.
 ROL STH,X. DEY. BNE SHIFTL. RTS.;.; NEG
ATE, -STK=>STK $02.NEG SEC. LDA #$0. SBC
 STL,X. STA STL,X. LDA #$0. SBC STH,X. S
TA STH,X. RTS.;.NEGOPR SEC. LDA #0. SBC 
OPL,X. STA OPL,X. LDA #$0. SBC OPH,X. ST
A OPH,X. RTS.;.;  BIT, FIRST BIT SET, $5
E.;BITX LDY #0.; TYA.; STA STH,X.;BIT1 L
SR STL,X.; BCS BIT2.; INY.; CPY #8.; BMI
 BIT1.;BIT2 TYA.; STA STL,X.; RTS.;.; CA
LL, ASM SUBROUTINE; Y=PUSH FLAG.CALL DEY
 ; TEST FOR ARG. BMI CALL1. LDA STL,X. S
TA $8000. LDA STH,X. STA $8001. DEX. DEX
.CALL1 = *. LDA STL,X. BNE CALL2. DEC ST
H,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. ST
A STH,X. TYA. STA STL,X. DEX. DEX. RTS.;
.;  CONSTANT-8 BITS, Y=>STK 127/-128 $50
.CON INX. INX. JSR CON0. DEX. DEX.POP RT
S ; POP,  $2B.;.CON0 LDA #$00. STA STH,X
. TYA. BPL CON1. DEC STH,X ; NEGATIVE CO
NST.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. STA STH,X. DEX. DEX. R
TS.;.;.;.; SPRITE COMMANDS.;.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 $F
E,$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.MOFST .WORD 
0,0,0,0,0,0,0,0. .WORD 1,1,1,1. .WORD 2,
2,2,2,2,2,2,2. .WORD 3,3,3,3.;.; SPX, ST
K => SPREGX [Y]( OR [VAR[Y]] ).;.SPRX = 
*. JSR SP2Y ; GET SPRITE NUMBER OFFSET. 
LDA STL,X. STA SP0X,Y ; STORE LS BYTE. L
DA BMASK+1,Y ; STORE MS BIT. PHA. LDA BM
ASK,Y. PHA. LDA MOFST,Y. TAY. PLA. AND M
SBREG,Y. STA TMP1. LDA 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 I
S SPRITE. BMI SP2Y1. ASL A ; ELSE VAR [A
RG] IS SPRITE NUMBER. TAY. LDA VARL,Y.SP
2Y1 = *. ASL A. TAY. RTS.;.;.; WORD, WOR
D(STK)=>STK $0F.WRD LDY STL,X. JMP CON0.
;.;  RND, STK*RND=>STK $08.RND INX ; FAK
E STACK. INX. LDA RANDOM.RNDE STA STL,X.
 LDA #$00. STA STH,X. STA TMP1. LDA OPH,
X. BPL RND2. JSR NEGOPR ; ABS(OPR). INC 
TMP1.RND2 LDY #8. JSR M2 ; DO MULT. LDA 
STX2,X. STA OPH,X. LDA STX1,X  ; NORMALI
ZE. STA OPL,X. LDA TMP1. BEQ RND3. JSR N
EGOPR.RND3 DEX ; RESTORE STACK. DEX. RTS
.;.;.BYTX LDA #$00 ;  BYTE, STK&FF=>STK 
$07. STA STH,X ; 0. RTS.;.;.;  ABS, ABS(
STK)=>STK $09.ABS LDA STH,X. BPL ABS1. J
SR NEG ; NEGATE IF NEG.ABS1 RTS.;.;  SGN
, SGN(STK)=>STK $0A.SGN LDA STH,X. BPL S
GN1. LDY #$FF ;<0. JMP CON0.SGN1 BEQ SGN
2. LDY #$01. JMP CON0 ;>0.SGN2 LDA STL,X
. BNE SGN1. LDY #$00 ;=0. JMP CON0.;.;  
PEEK, PEEK(STK)=>STK $0B.PEEK JSR USR ;S
TK=>FR0. LDA #$00. STA STH,X. LDY #$00. 
LDA (FR0),Y. STA STL,X. RTS.;.;  POKE, O
PR=>LOC(STK) $30.POKE JSR USR ;STK=>FR0.
 LDY #$00.POKE0 LDA OPL,X. STA (FR0),Y. 
RTS.;.POKEY JSR USR. LDY VARL. JMP POKE0
.;.; RANGE, VALUE, OPR=LO STK=HI $35.; P
OSITIVE VALUES ONLY !!.RANGE LDA OPH-2,X
. BMI ORNGLO. CMP STH,X. BNE CPHI. LDA O
PL-2,X. CMP STL,X.CPHI BCS ORNGHI. LDA O
PH-2,X. CMP OPH,X. BNE CPLO. LDA OPL-2,X
. CMP OPL,X.CPLO BCC ORNGLO. RTS.;.ORNGH
I 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.;.;  RA
NGEY, VALUE, OPR=LO STK=HI $72.; POSITIV
E VALUES ONLY !!.RNGY LDA OPH-2,X. BMI O
RNG. CMP STH,X. BNE CP0HI. LDA OPL-2,X. 
CMP STL,X.CP0HI BCS ORNG. LDA OPH-2,X. C
MP OPH,X. BNE CP0LO. LDA OPL-2,X. CMP OP
L,X.CP0LO BCC ORNG. RTS.ORNG LDA #0. STA
 OPH-2,X. TYA. STA OPL-2,X. RTS.;.;  STI
CK, (STK)=>STK-X,OPR-Y $10.STICK LDY STL
,X. LDA $DC00,Y. LDY #$00. ROR A. BCS ST
1. 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, (S
TK)=>STK $04.STRIG LDY STL,X. LDA $DC00,
Y. ROR A. ROR A. ROR A. ROR A. AND #1. E
OR #1. STA STL,X. LDA #$00. STA STH,X. R
TS.;.;  INC, STK+1=>STK $05.INCR INC STL
,X. BNE INC1. INC STH,X.INC1 RTS.;.;  DE
C, STK-1=>STK $06.DECR LDA STL,X. BNE DE
C1. DEC STH,X.DEC1 DEC STL,X. RTS.;.;  D
UP, STK=>STK+2 $11.DUP LDA STL,X. STA ST
X1,X. LDA STH,X. STA STX2,X. RTS.;.;  DP
OKE, OPR=>LOC(STK) $34.DPOKE LDY #$00. J
SR USR ;STK=>FR0. LDA OPL,X. STA (FR0),Y
. INY. LDA OPH,X. STA (FR0),Y. RTS.;.;  
DPEEK, PEEK(STK)=>STK $0D.DPEEK LDY #$00
. JSR USR. LDA (FR0),Y. STA STL,X. INY. 
LDA (FR0),Y. STA STH,X. RTS.;.;  DONE $0
0.DONE PLA. PLA. LDY FR0. LDA FR0+1. RTS
.;.; DIVIDE, OPR/STK=>OPR $23.DIV LDA #$
00. STA FLAG. JSR DIV8. DEX. DEX. JSR DI
V8. 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 ST
X2,X. SEC. LDA STX1,X. SBC STL,X. STA TM
P1 ; REMAINDER. LDA STX2,X. SBC STH,X. S
TA TMP2. BCC DIV2. INC STX3,X ; RESULT. 
LDA TMP1 ; REM => DIV. STA STX1,X. LDA T
MP2. STA STX2,X.DIV2 DEY. BNE DIV1. LDA 
STX4,X ; RESULT => OPR. STA STH,X. LDA S
TX3,X. STA STL,X. LDA FLAG. BEQ DIV3. JS
R NEG.DIV3 JMP PUNCH.;.DIV8 LDA STH,X. B
PL DIV9. JSR NEG. LDA #$01. EOR FLAG. ST
A FLAG.DIV9 RTS.;.;  FOR, OPR=>VAR(Y),ST
K=>LIM $70.FOR DEX. DEX. TYA ; VAR INDEX
. ASL A. TAY. JSR STORE ; OPR=>VAR(X). S
TY YSAVE. LDY FORP ; FOR PNTR. LDA STX1,
X ; SAVE LIM. STA FLML,Y. LDA STX2,X. ST
A FLMH,Y. LDA PCNT ; SAVE PC. STA FPCL,Y
. LDA PCNT+1. STA FPCH,Y. LDA YSAVE ; SA
VE VAR#. STA FVAR,Y. INY ; NEXT FSTACK. 
INY. INY. INY. INY. STY FORP. INX. INX. 
RTS.;.;  NEXT, (Y) $40.NEXT STY YSAVE. A
SL YSAVE ; VAR INDEX. STX XSAVE. LDY FOR
P. STY FSAVE.NXT1 DEY. DEY. DEY. DEY. DE
Y. STY FORP. BMI NXT9 ; ERROR. LDA FVAR,
Y ; FIND FOR ENTRY. CMP YSAVE. BNE NXT1.
 LDX YSAVE. INC VARL,X. BNE NXT2. INC VA
RH,X.NXT2 SEC. LDA FLML,Y. SBC VARL,X. L
DA FLMH,Y. SBC VARH,X. BMI NXT9. LDA FPC
L,Y ; GO BACK. STA PCNT. LDA FPCH,Y. STA
 PCNT+1. LDY FSAVE. STY FORP.NXT9 LDX XS
AVE. RTS.;.;  GOTO, Y $4B.GOTO STY YSAVE
. JMP GOSUB0.;.;  GOSUB, PC+Y $44.GOSUB 
STY YSAVE. LDY GOP. LDA PCNT. STA GPCL,Y
. LDA PCNT+1. STA GPCH,Y. DEY. DEY. STY 
GOP.GOSUB0 LDY YSAVE. LDA JMPHI,Y. BEQ G
OSUB3. STA PCNT+1. LDA JMPLO,Y. STA PCNT
. RTS.;.GOSUB3 LDA PCSVE. STA PCNT. LDA 
PCSVE+1. STA PCNT+1. LDY #0.GOSUB1 JSR S
CAN. CMP #$45 ; SBR?. BNE GOSUB1. JSR IN
CPC. LDA (PCNT),Y. CMP YSAVE. BEQ GOSUB2
. JSR INCPC. JMP GOSUB1.GOSUB2 LDY YSAVE
. LDA PCNT. STA JMPLO,Y. LDA PCNT+1. STA
 JMPHI,Y. RTS.;.;  RETURN, $01.RETURN LD
Y GOP. INY. INY. LDA GPCL,Y. STA PCNT. L
DA GPCH,Y. STA PCNT+1. STY GOP. RTS.;.; 
 USR, STK=>FR0 $2E.USR LDA STL,X. STA FR
0. LDA STH,X. STA FR0+1. RTS.;.;.;  PRIN
T +/-, STK Y=#BLANKS $62.;.; IF, SGN(OPR
-STK)=Y $71.IF STY YSAVE. JSR SUB. DEX. 
DEX. JSR SGN. INX. INX. LDA OPL,X.IF9 CM
P YSAVE. BEQ EEEIF ; TRUE.ELSE LDY #$00 
;ELS, $7B. STY LEVEL.IF1 JSR SCAN ; FIND
 ENDIF. CMP #$7D. BEQ EIF. CMP #$7C ; OR
 SUPER EIF. BEQ EEEIF. CMP #$7B ; OR ELS
E. BNE IF2. LDA LEVEL. BNE IF1. BEQ EEEI
F.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.EI
F DEC LEVEL ; PROCESS EIFS. BPL IF1 ; AL
WAYS BRANCHES.PROTEC   ; $4D.EEEIF    ; 
SUPER ENDIF $7C.SBR      ; LABEL OP $45.
ENDIF RTS ; ENDIF $7D.;.;  IFT, SGN(STK)
=1 $25.IFT LDY #$01.;.;  IF0, SGN(STK)=Y
 $61.IF0 STY YSAVE. JSR SGN. LDA STL,X. 
JMP IF9.;.;  IFF, SGN(STK)=0 $26.IFF LDY
 #$00. JMP IF0.;.SCAN LDA (PCNT),Y ;Y MU
ST=0. CMP #$7A. BCS SCAN3. CMP #$40. BCC
 SCAN3. CMP #$51 ;K16. BEQ SCAN4.SCAN1 C
MP #$46 ; TXT. BNE SCAN2.SCAN4 JSR INCPC
.SCAN2 JSR INCPC.SCAN3 JSR INCPC. LDA (P
CNT),Y. RTS.;.; POSTXT, Y,Y=CRX,CRY $46.
TPOS STY COLCRS ; CRX. JSR INCPC. LDY #0
0. LDA (PCNT),Y. STA ROWCRS ; CRY. RTS.;
.; SWAP, OPR=>STK, STK=>OPR $0E.SWAP LDY
 OPL,X. LDA STL,X. STA OPL,X. TYA. STA S
TL,X. LDY OPH,X. LDA STH,X. STA OPH,X. T
YA. STA STH,X. RTS.;.;  AND, STK&Y=>STK 
$48.LAND TYA. AND STL,X. STA STL,X. LDA 
#$00. STA STH,X. RTS.;.; AND2, STK&OPR=>
OPR, $2A.LAND2 LDA STL,X. AND OPL,X. STA
 OPL,X. LDA STH,X. AND OPH,X. STA OPH,X.
 RTS.;.;  OR, STK^Y=>STK $49.LOR TYA. OR
A STL,X. STA STL,X. RTS.;.;  XOR, STK XO
R Y=>STK $4A.LXOR TYA. EOR STL,X. STA ST
L,X. RTS.;.; CLR, CLEAR STACK $7E.CLR LD
X #$FE. RTS.;.; RUN, START OVER $7F.RUN 
LDA PCSVE+1. STA PCNT+1. LDA PCSVE. STA 
PCNT.RUN1 LDX #$78. STX GOP. STX VLIM. L
DX #$00. STX VPLUS. STX FORP. DEX. DEX. 
RTS.;. .END.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL