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

MIG15.SID

FILE INFORMATION

FILENAME(S): MIG15.SID

FILE TYPE(S): DEL

FILE SIZE: 8.8K

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

APPEARS ON: 2 disk(s)

FILE HASH

831247a3556027c5334a691a4c474cd5e1d6f9178a574473c6914ec7ce7d03b9

FOUND ON DISKS (2 DISKS)

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

FILE CONTENT & ANALYSIS

00000000: 44 41 20 53 54 48 2C 58  0D 20 53 54 41 20 56 41  |DA STH,X. STA VA|
00000010: 52 48 2C 59 0D 20 52 54  53 0D 3B 0D 3B 20 4F 46  |RH,Y. RTS.;.; OF|
00000020: 46 53 45 54 2C 20 53 54  4B 3D 3E 56 50 4C 55 53  |FSET, STK=>VPLUS|
00000030: 20 59 3D 3E 56 4C 49 4D  20 24 36 30 0D 4F 46 46  | Y=>VLIM $60.OFF|
00000040: 53 45 54 20 54 59 41 0D  20 41 53 4C 20 41 0D 20  |SET TYA. ASL A. |
00000050: 53 54 41 20 56 4C 49 4D  0D 20 4C 44 41 20 53 54  |STA VLIM. LDA ST|
00000060: 4C 2C 58 0D 20 41 53 4C  20 41 0D 20 53 54 41 20  |L,X. ASL A. STA |
00000070: 56 50 4C 55 53 0D 20 52  54 53 0D 3B 0D 3B 20 20  |VPLUS. RTS.;.;  |
00000080: 41 44 44 2C 20 53 54 4B  2B 4F 50 52 3D 3E 4F 50  |ADD, STK+OPR=>OP|
00000090: 52 20 24 32 30 0D 41 44  44 20 43 4C 43 0D 20 4C  |R $20.ADD CLC. L|
000000A0: 44 41 20 53 54 4C 2C 58  0D 20 41 44 43 20 4F 50  |DA STL,X. ADC OP|
000000B0: 4C 2C 58 0D 20 53 54 41  20 4F 50 4C 2C 58 0D 20  |L,X. STA OPL,X. |
000000C0: 4C 44 41 20 53 54 48 2C  58 0D 20 41 44 43 20 4F  |LDA STH,X. ADC O|
000000D0: 50 48 2C 58 0D 20 53 54  41 20 4F 50 48 2C 58 0D  |PH,X. STA OPH,X.|
000000E0: 20 52 54 53 0D 3B 0D 3B  20 20 53 55 42 2C 20 4F  | RTS.;.;  SUB, O|
000000F0: 50 52 2D 53 54 4B 3D 3E  4F 50 52 20 24 32 31 0D  |PR-STK=>OPR $21.|
00000100: 53 55 42 20 53 45 43 0D  20 4C 44 41 20 4F 50 4C  |SUB SEC. LDA OPL|
00000110: 2C 58 0D 20 53 42 43 20  53 54 4C 2C 58 0D 20 53  |,X. SBC STL,X. S|
00000120: 54 41 20 4F 50 4C 2C 58  0D 20 4C 44 41 20 4F 50  |TA OPL,X. LDA OP|
00000130: 48 2C 58 0D 20 53 42 43  20 53 54 48 2C 58 0D 20  |H,X. SBC STH,X. |
00000140: 53 54 41 20 4F 50 48 2C  58 0D 20 52 54 53 0D 3B  |STA OPH,X. RTS.;|
00000150: 0D 3B 20 20 4D 55 4C 54  2C 20 53 54 4B 2A 4F 50  |.;  MULT, STK*OP|
00000160: 52 3D 3E 4F 50 52 20 24  32 32 0D 3B 20 31 36 20  |R=>OPR $22.; 16 |
00000170: 42 49 54 20 50 52 45 43  49 53 49 4F 4E 0D 4D 55  |BIT PRECISION.MU|
00000180: 4C 54 20 4C 44 59 20 23  24 31 30 0D 4D 32 20 4C  |LT LDY #$10.M2 L|
00000190: 44 41 20 23 24 30 30 0D  20 53 54 41 20 53 54 58  |DA #$00. STA STX|
000001A0: 32 2C 58 0D 20 53 54 41  20 53 54 58 31 2C 58 0D  |2,X. STA STX1,X.|
000001B0: 4D 55 4C 54 32 20 4C 44  41 20 53 54 4C 2C 58 0D  |MULT2 LDA STL,X.|
000001C0: 20 4C 53 52 20 41 0D 20  42 43 43 20 4D 55 4C 54  | LSR A. BCC MULT|
000001D0: 34 20 3B 42 49 54 20 4F  46 46 0D 20 43 4C 43 0D  |4 ;BIT OFF. CLC.|
000001E0: 20 4C 44 41 20 53 54 58  31 2C 58 0D 20 41 44 43  | LDA STX1,X. ADC|
000001F0: 20 4F 50 4C 2C 58 0D 20  53 54 41 20 53 54 58 31  | OPL,X. STA STX1|
00000200: 2C 58 0D 20 4C 44 41 20  53 54 58 32 2C 58 0D 20  |,X. LDA STX2,X. |
00000210: 41 44 43 20 4F 50 48 2C  58 0D 20 53 54 41 20 53  |ADC OPH,X. STA S|
00000220: 54 58 32 2C 58 0D 4D 55  4C 54 34 20 52 4F 52 20  |TX2,X.MULT4 ROR |
00000230: 53 54 58 32 2C 58 0D 20  52 4F 52 20 53 54 58 31  |STX2,X. ROR STX1|
00000240: 2C 58 0D 20 52 4F 52 20  53 54 48 2C 58 0D 20 52  |,X. ROR STH,X. R|
00000250: 4F 52 20 53 54 4C 2C 58  0D 20 44 45 59 0D 20 42  |OR STL,X. DEY. B|
00000260: 4E 45 20 4D 55 4C 54 32  0D 50 55 4E 43 48 20 4C  |NE MULT2.PUNCH L|
00000270: 44 41 20 53 54 4C 2C 58  0D 20 53 54 41 20 4F 50  |DA STL,X. STA OP|
00000280: 4C 2C 58 0D 20 4C 44 41  20 53 54 48 2C 58 0D 20  |L,X. LDA STH,X. |
00000290: 53 54 41 20 4F 50 48 2C  58 0D 20 52 54 53 0D 3B  |STA OPH,X. RTS.;|
000002A0: 0D 3B 20 20 53 48 49 46  54 20 52 49 47 48 54 2C  |.;  SHIFT RIGHT,|
000002B0: 20 53 54 4B 2F 28 32 5E  59 29 3D 3E 53 54 4B 20  | STK/(2^Y)=>STK |
000002C0: 24 34 31 0D 53 48 49 46  54 52 20 4C 44 41 20 53  |$41.SHIFTR LDA S|
000002D0: 54 48 2C 58 0D 20 52 4F  4C 20 41 0D 20 52 4F 52  |TH,X. ROL A. ROR|
000002E0: 20 53 54 48 2C 58 0D 20  52 4F 52 20 53 54 4C 2C  | STH,X. ROR STL,|
000002F0: 58 0D 20 44 45 59 0D 20  42 4E 45 20 53 48 49 46  |X. DEY. BNE SHIF|
00000300: 54 52 0D 20 52 54 53 0D  3B 0D 3B 20 53 48 49 46  |TR. RTS.;.; SHIF|
00000310: 54 20 52 49 47 48 54 20  50 4F 53 49 54 49 56 45  |T RIGHT POSITIVE|
00000320: 2C 20 24 34 43 0D 53 48  52 30 20 3D 20 2A 0D 20  |, $4C.SHR0 = *. |
00000330: 4C 53 52 20 53 54 48 2C  58 0D 20 52 4F 52 20 53  |LSR STH,X. ROR S|
00000340: 54 4C 2C 58 0D 20 44 45  59 0D 20 42 4E 45 20 53  |TL,X. DEY. BNE S|
00000350: 48 52 30 0D 20 52 54 53  0D 3B 0D 3B 20 20 53 48  |HR0. RTS.;.;  SH|
00000360: 49 46 54 20 4C 45 46 54  2C 20 53 54 4B 2A 28 32  |IFT LEFT, STK*(2|
00000370: 5E 59 29 3D 53 54 4B 20  24 34 32 0D 53 48 49 46  |^Y)=STK $42.SHIF|
00000380: 54 4C 20 3D 20 2A 0D 20  41 53 4C 20 53 54 4C 2C  |TL = *. ASL STL,|
00000390: 58 0D 20 52 4F 4C 20 53  54 48 2C 58 0D 20 44 45  |X. ROL STH,X. DE|
000003A0: 59 0D 20 42 4E 45 20 53  48 49 46 54 4C 0D 20 52  |Y. BNE SHIFTL. R|
000003B0: 54 53 0D 3B 0D 3B 20 4E  45 47 41 54 45 2C 20 2D  |TS.;.; NEGATE, -|
000003C0: 53 54 4B 3D 3E 53 54 4B  20 24 30 32 0D 4E 45 47  |STK=>STK $02.NEG|
000003D0: 20 53 45 43 0D 20 4C 44  41 20 23 24 30 0D 20 53  | SEC. LDA #$0. S|
000003E0: 42 43 20 53 54 4C 2C 58  0D 20 53 54 41 20 53 54  |BC STL,X. STA ST|
000003F0: 4C 2C 58 0D 20 4C 44 41  20 23 24 30 0D 20 53 42  |L,X. LDA #$0. SB|
00000400: 43 20 53 54 48 2C 58 0D  20 53 54 41 20 53 54 48  |C STH,X. STA STH|
00000410: 2C 58 0D 20 52 54 53 0D  3B 0D 4E 45 47 4F 50 52  |,X. RTS.;.NEGOPR|
00000420: 20 53 45 43 0D 20 4C 44  41 20 23 30 0D 20 53 42  | SEC. LDA #0. SB|
00000430: 43 20 4F 50 4C 2C 58 0D  20 53 54 41 20 4F 50 4C  |C OPL,X. STA OPL|
00000440: 2C 58 0D 20 4C 44 41 20  23 24 30 0D 20 53 42 43  |,X. LDA #$0. SBC|
00000450: 20 4F 50 48 2C 58 0D 20  53 54 41 20 4F 50 48 2C  | OPH,X. STA OPH,|
00000460: 58 0D 20 52 54 53 0D 3B  0D 3B 20 20 42 49 54 2C  |X. RTS.;.;  BIT,|
00000470: 20 46 49 52 53 54 20 42  49 54 20 53 45 54 2C 20  | FIRST BIT SET, |
00000480: 24 35 45 0D 3B 42 49 54  58 20 4C 44 59 20 23 30  |$5E.;BITX LDY #0|
00000490: 0D 3B 20 54 59 41 0D 3B  20 53 54 41 20 53 54 48  |.; TYA.; STA STH|
000004A0: 2C 58 0D 3B 42 49 54 31  20 4C 53 52 20 53 54 4C  |,X.;BIT1 LSR STL|
000004B0: 2C 58 0D 3B 20 42 43 53  20 42 49 54 32 0D 3B 20  |,X.; BCS BIT2.; |
000004C0: 49 4E 59 0D 3B 20 43 50  59 20 23 38 0D 3B 20 42  |INY.; CPY #8.; B|
000004D0: 4D 49 20 42 49 54 31 0D  3B 42 49 54 32 20 54 59  |MI BIT1.;BIT2 TY|
000004E0: 41 0D 3B 20 53 54 41 20  53 54 4C 2C 58 0D 3B 20  |A.; STA STL,X.; |
000004F0: 52 54 53 0D 3B 0D 3B 20  43 41 4C 4C 2C 20 41 53  |RTS.;.; CALL, AS|
00000500: 4D 20 53 55 42 52 4F 55  54 49 4E 45 3B 20 59 3D  |M SUBROUTINE; Y=|
00000510: 50 55 53 48 20 46 4C 41  47 0D 43 41 4C 4C 20 44  |PUSH FLAG.CALL D|
00000520: 45 59 20 3B 20 54 45 53  54 20 46 4F 52 20 41 52  |EY ; TEST FOR AR|
00000530: 47 0D 20 42 4D 49 20 43  41 4C 4C 31 0D 20 4C 44  |G. BMI CALL1. LD|
00000540: 41 20 53 54 4C 2C 58 0D  20 53 54 41 20 24 38 30  |A STL,X. STA $80|
00000550: 30 30 0D 20 4C 44 41 20  53 54 48 2C 58 0D 20 53  |00. LDA STH,X. S|
00000560: 54 41 20 24 38 30 30 31  0D 20 44 45 58 0D 20 44  |TA $8001. DEX. D|
00000570: 45 58 0D 43 41 4C 4C 31  20 3D 20 2A 0D 20 4C 44  |EX.CALL1 = *. LD|
00000580: 41 20 53 54 4C 2C 58 0D  20 42 4E 45 20 43 41 4C  |A STL,X. BNE CAL|
00000590: 4C 32 0D 20 44 45 43 20  53 54 48 2C 58 0D 43 41  |L2. DEC STH,X.CA|
000005A0: 4C 4C 32 20 4C 44 41 20  53 54 48 2C 58 0D 20 50  |LL2 LDA STH,X. P|
000005B0: 48 41 0D 20 4C 44 59 20  53 54 4C 2C 58 0D 20 44  |HA. LDY STL,X. D|
000005C0: 45 59 0D 20 54 59 41 0D  20 50 48 41 0D 20 52 54  |EY. TYA. PHA. RT|
000005D0: 53 0D 3B 0D 3B 20 20 43  4F 4E 53 54 41 4E 54 2D  |S.;.;  CONSTANT-|
000005E0: 38 20 42 49 54 53 2C 20  59 3D 3E 53 54 4B 20 30  |8 BITS, Y=>STK 0|
000005F0: 2D 32 35 35 20 24 35 32  0D 43 4F 4E 50 20 4C 44  |-255 $52.CONP LD|
00000600: 41 20 23 30 0D 20 49 4E  58 0D 20 49 4E 58 0D 20  |A #0. INX. INX. |
00000610: 53 54 41 20 53 54 48 2C  58 0D 20 54 59 41 0D 20  |STA STH,X. TYA. |
00000620: 53 54 41 20 53 54 4C 2C  58 0D 20 44 45 58 0D 20  |STA STL,X. DEX. |
00000630: 44 45 58 0D 20 52 54 53  0D 3B 0D 3B 20 20 43 4F  |DEX. RTS.;.;  CO|
00000640: 4E 53 54 41 4E 54 2D 38  20 42 49 54 53 2C 20 59  |NSTANT-8 BITS, Y|
00000650: 3D 3E 53 54 4B 20 31 32  37 2F 2D 31 32 38 20 24  |=>STK 127/-128 $|
00000660: 35 30 0D 43 4F 4E 20 49  4E 58 0D 20 49 4E 58 0D  |50.CON INX. INX.|
00000670: 20 4A 53 52 20 43 4F 4E  30 0D 20 44 45 58 0D 20  | JSR CON0. DEX. |
00000680: 44 45 58 0D 50 4F 50 20  52 54 53 20 3B 20 50 4F  |DEX.POP RTS ; PO|
00000690: 50 2C 20 20 24 32 42 0D  3B 0D 43 4F 4E 30 20 4C  |P,  $2B.;.CON0 L|
000006A0: 44 41 20 23 24 30 30 0D  20 53 54 41 20 53 54 48  |DA #$00. STA STH|
000006B0: 2C 58 0D 20 54 59 41 0D  20 42 50 4C 20 43 4F 4E  |,X. TYA. BPL CON|
000006C0: 31 0D 20 44 45 43 20 53  54 48 2C 58 20 3B 20 4E  |1. DEC STH,X ; N|
000006D0: 45 47 41 54 49 56 45 20  43 4F 4E 53 54 0D 43 4F  |EGATIVE CONST.CO|
000006E0: 4E 31 20 53 54 41 20 53  54 4C 2C 58 20 3B 24 30  |N1 STA STL,X ;$0|
000006F0: 30 20 4F 52 20 24 46 46  0D 20 52 54 53 0D 3B 0D  |0 OR $FF. RTS.;.|
00000700: 3B 20 43 4F 4E 53 54 41  4E 54 2D 31 36 20 42 49  |; CONSTANT-16 BI|
00000710: 54 53 2C 20 59 2C 41 3D  3E 53 54 4B 20 24 35 31  |TS, Y,A=>STK $51|
00000720: 0D 43 4F 4E 31 36 20 54  59 41 0D 20 49 4E 58 0D  |.CON16 TYA. INX.|
00000730: 20 49 4E 58 0D 20 53 54  41 20 53 54 4C 2C 58 0D  | INX. STA STL,X.|
00000740: 20 4A 53 52 20 49 4E 43  50 43 0D 20 4C 44 59 20  | JSR INCPC. LDY |
00000750: 23 24 30 30 0D 20 4C 44  41 20 28 50 43 4E 54 29  |#$00. LDA (PCNT)|
00000760: 2C 59 0D 20 53 54 41 20  53 54 48 2C 58 0D 20 44  |,Y. STA STH,X. D|
00000770: 45 58 0D 20 44 45 58 0D  20 52 54 53 0D 3B 0D 3B  |EX. DEX. RTS.;.;|
00000780: 0D 3B 0D 3B 20 53 50 52  49 54 45 20 43 4F 4D 4D  |.;.; SPRITE COMM|
00000790: 41 4E 44 53 0D 3B 0D 42  4D 41 53 4B 20 2E 42 59  |ANDS.;.BMASK .BY|
000007A0: 54 45 20 24 46 45 2C 24  30 31 2C 24 46 44 2C 24  |TE $FE,$01,$FD,$|
000007B0: 30 32 2C 24 46 42 2C 24  30 34 2C 24 46 37 2C 24  |02,$FB,$04,$F7,$|
000007C0: 30 38 0D 20 2E 42 59 54  45 20 24 45 46 2C 24 31  |08. .BYTE $EF,$1|
000007D0: 30 2C 24 44 46 2C 24 32  30 2C 24 42 46 2C 24 34  |0,$DF,$20,$BF,$4|
000007E0: 30 2C 24 37 46 2C 24 38  30 0D 20 2E 42 59 54 45  |0,$7F,$80. .BYTE|
000007F0: 20 24 46 45 2C 24 30 31  2C 24 46 44 2C 24 30 32  | $FE,$01,$FD,$02|
00000800: 2C 24 46 42 2C 24 30 34  2C 24 46 37 2C 24 30 38  |,$FB,$04,$F7,$08|
00000810: 0D 20 2E 42 59 54 45 20  24 46 45 2C 24 30 31 2C  |. .BYTE $FE,$01,|
00000820: 24 46 44 2C 24 30 32 2C  24 46 42 2C 24 30 34 2C  |$FD,$02,$FB,$04,|
00000830: 24 46 37 2C 24 30 38 0D  20 2E 42 59 54 45 20 24  |$F7,$08. .BYTE $|
00000840: 45 46 2C 24 31 30 2C 24  44 46 2C 24 32 30 2C 24  |EF,$10,$DF,$20,$|
00000850: 42 46 2C 24 34 30 2C 24  37 46 2C 24 38 30 0D 20  |BF,$40,$7F,$80. |
00000860: 2E 42 59 54 45 20 24 46  45 2C 24 30 31 2C 24 46  |.BYTE $FE,$01,$F|
00000870: 44 2C 24 30 32 2C 24 46  42 2C 24 30 34 2C 24 46  |D,$02,$FB,$04,$F|
00000880: 37 2C 24 30 38 0D 4D 4F  46 53 54 20 2E 57 4F 52  |7,$08.MOFST .WOR|
00000890: 44 20 30 2C 30 2C 30 2C  30 2C 30 2C 30 2C 30 2C  |D 0,0,0,0,0,0,0,|
000008A0: 30 0D 20 2E 57 4F 52 44  20 31 2C 31 2C 31 2C 31  |0. .WORD 1,1,1,1|
000008B0: 0D 20 2E 57 4F 52 44 20  32 2C 32 2C 32 2C 32 2C  |. .WORD 2,2,2,2,|
000008C0: 32 2C 32 2C 32 2C 32 0D  20 2E 57 4F 52 44 20 33  |2,2,2,2. .WORD 3|
000008D0: 2C 33 2C 33 2C 33 0D 3B  0D 3B 20 53 50 58 2C 20  |,3,3,3.;.; SPX, |
000008E0: 53 54 4B 20 3D 3E 20 53  50 52 45 47 58 20 5B 59  |STK => SPREGX [Y|
000008F0: 5D 28 20 4F 52 20 5B 56  41 52 5B 59 5D 5D 20 29  |]( OR [VAR[Y]] )|
00000900: 0D 3B 0D 53 50 52 58 20  3D 20 2A 0D 20 4A 53 52  |.;.SPRX = *. JSR|
00000910: 20 53 50 32 59 20 3B 20  47 45 54 20 53 50 52 49  | SP2Y ; GET SPRI|
00000920: 54 45 20 4E 55 4D 42 45  52 20 4F 46 46 53 45 54  |TE NUMBER OFFSET|
00000930: 0D 20 4C 44 41 20 53 54  4C 2C 58 0D 20 53 54 41  |. LDA STL,X. STA|
00000940: 20 53 50 30 58 2C 59 20  3B 20 53 54 4F 52 45 20  | SP0X,Y ; STORE |
00000950: 4C 53 20 42 59 54 45 0D  20 4C 44 41 20 42 4D 41  |LS BYTE. LDA BMA|
00000960: 53 4B 2B 31 2C 59 20 3B  20 53 54 4F 52 45 20 4D  |SK+1,Y ; STORE M|
00000970: 53 20 42 49 54 0D 20 50  48 41 0D 20 4C 44 41 20  |S BIT. PHA. LDA |
00000980: 42 4D 41 53 4B 2C 59 0D  20 50 48 41 0D 20 4C 44  |BMASK,Y. PHA. LD|
00000990: 41 20 4D 4F 46 53 54 2C  59 0D 20 54 41 59 0D 20  |A MOFST,Y. TAY. |
000009A0: 50 4C 41 0D 20 41 4E 44  20 4D 53 42 52 45 47 2C  |PLA. AND MSBREG,|
000009B0: 59 0D 20 53 54 41 20 54  4D 50 31 0D 20 4C 44 41  |Y. STA TMP1. LDA|
000009C0: 20 53 54 48 2C 58 0D 20  52 4F 52 20 41 0D 20 50  | STH,X. ROR A. P|
000009D0: 4C 41 0D 20 42 43 43 20  53 50 58 31 20 3B 20 53  |LA. BCC SPX1 ; S|
000009E0: 45 54 20 4D 53 42 0D 20  4F 52 41 20 54 4D 50 31  |ET MSB. ORA TMP1|
000009F0: 0D 20 53 54 41 20 54 4D  50 31 0D 53 50 58 31 20  |. STA TMP1.SPX1 |
00000A00: 4C 44 41 20 54 4D 50 31  0D 20 53 54 41 20 4D 53  |LDA TMP1. STA MS|
00000A10: 42 52 45 47 2C 59 0D 20  52 54 53 0D 3B 0D 3B 0D  |BREG,Y. RTS.;.;.|
00000A20: 3B 20 53 50 59 2C 20 53  54 4B 20 3D 3E 20 53 50  |; SPY, STK => SP|
00000A30: 52 45 47 59 20 5B 59 5D  28 20 4F 52 20 56 41 52  |REGY [Y]( OR VAR|
00000A40: 29 0D 53 50 52 59 20 3D  20 2A 0D 20 4A 53 52 20  |).SPRY = *. JSR |
00000A50: 53 50 32 59 0D 20 4C 44  41 20 53 54 4C 2C 58 0D  |SP2Y. LDA STL,X.|
00000A60: 20 53 54 41 20 53 50 30  59 2C 59 0D 20 52 54 53  | STA SP0Y,Y. RTS|
00000A70: 0D 3B 0D 53 50 32 59 20  3D 20 2A 0D 20 4C 44 41  |.;.SP2Y = *. LDA|
00000A80: 20 41 52 47 20 3B 20 49  46 20 41 52 47 20 3E 20  | ARG ; IF ARG > |
00000A90: 31 32 37 2C 20 41 52 47  20 49 53 20 53 50 52 49  |127, ARG IS SPRI|
00000AA0: 54 45 0D 20 42 4D 49 20  53 50 32 59 31 0D 20 41  |TE. BMI SP2Y1. A|
00000AB0: 53 4C 20 41 20 3B 20 45  4C 53 45 20 56 41 52 20  |SL A ; ELSE VAR |
00000AC0: 5B 41 52 47 5D 20 49 53  20 53 50 52 49 54 45 20  |[ARG] IS SPRITE |
00000AD0: 4E 55 4D 42 45 52 0D 20  54 41 59 0D 20 4C 44 41  |NUMBER. TAY. LDA|
00000AE0: 20 56 41 52 4C 2C 59 0D  53 50 32 59 31 20 3D 20  | VARL,Y.SP2Y1 = |
00000AF0: 2A 0D 20 41 53 4C 20 41  0D 20 54 41 59 0D 20 52  |*. ASL A. TAY. R|
00000B00: 54 53 0D 3B 0D 3B 0D 3B  20 57 4F 52 44 2C 20 57  |TS.;.;.; WORD, W|
00000B10: 4F 52 44 28 53 54 4B 29  3D 3E 53 54 4B 20 24 30  |ORD(STK)=>STK $0|
00000B20: 46 0D 57 52 44 20 4C 44  59 20 53 54 4C 2C 58 0D  |F.WRD LDY STL,X.|
00000B30: 20 4A 4D 50 20 43 4F 4E  30 0D 3B 0D 3B 20 20 52  | JMP CON0.;.;  R|
00000B40: 4E 44 2C 20 53 54 4B 2A  52 4E 44 3D 3E 53 54 4B  |ND, STK*RND=>STK|
00000B50: 20 24 30 38 0D 52 4E 44  20 49 4E 58 20 3B 20 46  | $08.RND INX ; F|
00000B60: 41 4B 45 20 53 54 41 43  4B 0D 20 49 4E 58 0D 20  |AKE STACK. INX. |
00000B70: 4C 44 41 20 52 41 4E 44  4F 4D 0D 52 4E 44 45 20  |LDA RANDOM.RNDE |
00000B80: 53 54 41 20 53 54 4C 2C  58 0D 20 4C 44 41 20 23  |STA STL,X. LDA #|
00000B90: 24 30 30 0D 20 53 54 41  20 53 54 48 2C 58 0D 20  |$00. STA STH,X. |
00000BA0: 53 54 41 20 54 4D 50 31  0D 20 4C 44 41 20 4F 50  |STA TMP1. LDA OP|
00000BB0: 48 2C 58 0D 20 42 50 4C  20 52 4E 44 32 0D 20 4A  |H,X. BPL RND2. J|
00000BC0: 53 52 20 4E 45 47 4F 50  52 20 3B 20 41 42 53 28  |SR NEGOPR ; ABS(|
00000BD0: 4F 50 52 29 0D 20 49 4E  43 20 54 4D 50 31 0D 52  |OPR). INC TMP1.R|
00000BE0: 4E 44 32 20 4C 44 59 20  23 38 0D 20 4A 53 52 20  |ND2 LDY #8. JSR |
00000BF0: 4D 32 20 3B 20 44 4F 20  4D 55 4C 54 0D 20 4C 44  |M2 ; DO MULT. LD|
00000C00: 41 20 53 54 58 32 2C 58  0D 20 53 54 41 20 4F 50  |A STX2,X. STA OP|
00000C10: 48 2C 58 0D 20 4C 44 41  20 53 54 58 31 2C 58 20  |H,X. LDA STX1,X |
00000C20: 20 3B 20 4E 4F 52 4D 41  4C 49 5A 45 0D 20 53 54  | ; NORMALIZE. ST|
00000C30: 41 20 4F 50 4C 2C 58 0D  20 4C 44 41 20 54 4D 50  |A OPL,X. LDA TMP|
00000C40: 31 0D 20 42 45 51 20 52  4E 44 33 0D 20 4A 53 52  |1. BEQ RND3. JSR|
00000C50: 20 4E 45 47 4F 50 52 0D  52 4E 44 33 20 44 45 58  | NEGOPR.RND3 DEX|
00000C60: 20 3B 20 52 45 53 54 4F  52 45 20 53 54 41 43 4B  | ; RESTORE STACK|
00000C70: 0D 20 44 45 58 0D 20 52  54 53 0D 3B 0D 3B 0D 42  |. DEX. RTS.;.;.B|
00000C80: 59 54 58 20 4C 44 41 20  23 24 30 30 20 3B 20 20  |YTX LDA #$00 ;  |
00000C90: 42 59 54 45 2C 20 53 54  4B 26 46 46 3D 3E 53 54  |BYTE, STK&FF=>ST|
00000CA0: 4B 20 24 30 37 0D 20 53  54 41 20 53 54 48 2C 58  |K $07. STA STH,X|
00000CB0: 20 3B 20 30 0D 20 52 54  53 0D 3B 0D 3B 0D 3B 20  | ; 0. RTS.;.;.; |
00000CC0: 20 41 42 53 2C 20 41 42  53 28 53 54 4B 29 3D 3E  | ABS, ABS(STK)=>|
00000CD0: 53 54 4B 20 24 30 39 0D  41 42 53 20 4C 44 41 20  |STK $09.ABS LDA |
00000CE0: 53 54 48 2C 58 0D 20 42  50 4C 20 41 42 53 31 0D  |STH,X. BPL ABS1.|
00000CF0: 20 4A 53 52 20 4E 45 47  20 3B 20 4E 45 47 41 54  | JSR NEG ; NEGAT|
00000D00: 45 20 49 46 20 4E 45 47  0D 41 42 53 31 20 52 54  |E IF NEG.ABS1 RT|
00000D10: 53 0D 3B 0D 3B 20 20 53  47 4E 2C 20 53 47 4E 28  |S.;.;  SGN, SGN(|
00000D20: 53 54 4B 29 3D 3E 53 54  4B 20 24 30 41 0D 53 47  |STK)=>STK $0A.SG|
00000D30: 4E 20 4C 44 41 20 53 54  48 2C 58 0D 20 42 50 4C  |N LDA STH,X. BPL|
00000D40: 20 53 47 4E 31 0D 20 4C  44 59 20 23 24 46 46 20  | SGN1. LDY #$FF |
00000D50: 3B 3C 30 0D 20 4A 4D 50  20 43 4F 4E 30 0D 53 47  |;<0. JMP CON0.SG|
00000D60: 4E 31 20 42 45 51 20 53  47 4E 32 0D 20 4C 44 59  |N1 BEQ SGN2. LDY|
00000D70: 20 23 24 30 31 0D 20 4A  4D 50 20 43 4F 4E 30 20  | #$01. JMP CON0 |
00000D80: 3B 3E 30 0D 53 47 4E 32  20 4C 44 41 20 53 54 4C  |;>0.SGN2 LDA STL|
00000D90: 2C 58 0D 20 42 4E 45 20  53 47 4E 31 0D 20 4C 44  |,X. BNE SGN1. LD|
00000DA0: 59 20 23 24 30 30 20 3B  3D 30 0D 20 4A 4D 50 20  |Y #$00 ;=0. JMP |
00000DB0: 43 4F 4E 30 0D 3B 0D 3B  20 20 50 45 45 4B 2C 20  |CON0.;.;  PEEK, |
00000DC0: 50 45 45 4B 28 53 54 4B  29 3D 3E 53 54 4B 20 24  |PEEK(STK)=>STK $|
00000DD0: 30 42 0D 50 45 45 4B 20  4A 53 52 20 55 53 52 20  |0B.PEEK JSR USR |
00000DE0: 3B 53 54 4B 3D 3E 46 52  30 0D 20 4C 44 41 20 23  |;STK=>FR0. LDA #|
00000DF0: 24 30 30 0D 20 53 54 41  20 53 54 48 2C 58 0D 20  |$00. STA STH,X. |
00000E00: 4C 44 59 20 23 24 30 30  0D 20 4C 44 41 20 28 46  |LDY #$00. LDA (F|
00000E10: 52 30 29 2C 59 0D 20 53  54 41 20 53 54 4C 2C 58  |R0),Y. STA STL,X|
00000E20: 0D 20 52 54 53 0D 3B 0D  3B 20 20 50 4F 4B 45 2C  |. RTS.;.;  POKE,|
00000E30: 20 4F 50 52 3D 3E 4C 4F  43 28 53 54 4B 29 20 24  | OPR=>LOC(STK) $|
00000E40: 33 30 0D 50 4F 4B 45 20  4A 53 52 20 55 53 52 20  |30.POKE JSR USR |
00000E50: 3B 53 54 4B 3D 3E 46 52  30 0D 20 4C 44 59 20 23  |;STK=>FR0. LDY #|
00000E60: 24 30 30 0D 50 4F 4B 45  30 20 4C 44 41 20 4F 50  |$00.POKE0 LDA OP|
00000E70: 4C 2C 58 0D 20 53 54 41  20 28 46 52 30 29 2C 59  |L,X. STA (FR0),Y|
00000E80: 0D 20 52 54 53 0D 3B 0D  50 4F 4B 45 59 20 4A 53  |. RTS.;.POKEY JS|
00000E90: 52 20 55 53 52 0D 20 4C  44 59 20 56 41 52 4C 0D  |R USR. LDY VARL.|
00000EA0: 20 4A 4D 50 20 50 4F 4B  45 30 0D 3B 0D 3B 20 52  | JMP POKE0.;.; R|
00000EB0: 41 4E 47 45 2C 20 56 41  4C 55 45 2C 20 4F 50 52  |ANGE, VALUE, OPR|
00000EC0: 3D 4C 4F 20 53 54 4B 3D  48 49 20 24 33 35 0D 3B  |=LO STK=HI $35.;|
00000ED0: 20 50 4F 53 49 54 49 56  45 20 56 41 4C 55 45 53  | POSITIVE VALUES|
00000EE0: 20 4F 4E 4C 59 20 21 21  0D 52 41 4E 47 45 20 4C  | ONLY !!.RANGE L|
00000EF0: 44 41 20 4F 50 48 2D 32  2C 58 0D 20 42 4D 49 20  |DA OPH-2,X. BMI |
00000F00: 4F 52 4E 47 4C 4F 0D 20  43 4D 50 20 53 54 48 2C  |ORNGLO. CMP STH,|
00000F10: 58 0D 20 42 4E 45 20 43  50 48 49 0D 20 4C 44 41  |X. BNE CPHI. LDA|
00000F20: 20 4F 50 4C 2D 32 2C 58  0D 20 43 4D 50 20 53 54  | OPL-2,X. CMP ST|
00000F30: 4C 2C 58 0D 43 50 48 49  20 42 43 53 20 4F 52 4E  |L,X.CPHI BCS ORN|
00000F40: 47 48 49 0D 20 4C 44 41  20 4F 50 48 2D 32 2C 58  |GHI. LDA OPH-2,X|
00000F50: 0D 20 43 4D 50 20 4F 50  48 2C 58 0D 20 42 4E 45  |. CMP OPH,X. BNE|
00000F60: 20 43 50 4C 4F 0D 20 4C  44 41 20 4F 50 4C 2D 32  | CPLO. LDA OPL-2|
00000F70: 2C 58 0D 20 43 4D 50 20  4F 50 4C 2C 58 0D 43 50  |,X. CMP OPL,X.CP|
00000F80: 4C 4F 20 42 43 43 20 4F  52 4E 47 4C 4F 0D 20 52  |LO BCC ORNGLO. R|
00000F90: 54 53 0D 3B 0D 4F 52 4E  47 48 49 20 4C 44 41 20  |TS.;.ORNGHI LDA |
00000FA0: 53 54 48 2C 58 0D 20 53  54 41 20 4F 50 48 2D 32  |STH,X. STA OPH-2|
00000FB0: 2C 58 0D 20 4C 44 41 20  53 54 4C 2C 58 0D 20 53  |,X. LDA STL,X. S|
00000FC0: 54 41 20 4F 50 4C 2D 32  2C 58 0D 20 52 54 53 0D  |TA OPL-2,X. RTS.|
00000FD0: 4F 52 4E 47 4C 4F 20 4C  44 41 20 4F 50 48 2C 58  |ORNGLO LDA OPH,X|
00000FE0: 0D 20 53 54 41 20 4F 50  48 2D 32 2C 58 0D 20 4C  |. STA OPH-2,X. L|
00000FF0: 44 41 20 4F 50 4C 2C 58  0D 20 53 54 41 20 4F 50  |DA OPL,X. STA OP|
00001000: 4C 2D 32 2C 58 0D 20 52  54 53 0D 3B 0D 3B 20 20  |L-2,X. RTS.;.;  |
00001010: 52 41 4E 47 45 59 2C 20  56 41 4C 55 45 2C 20 4F  |RANGEY, VALUE, O|
00001020: 50 52 3D 4C 4F 20 53 54  4B 3D 48 49 20 24 37 32  |PR=LO STK=HI $72|
00001030: 0D 3B 20 50 4F 53 49 54  49 56 45 20 56 41 4C 55  |.; POSITIVE VALU|
00001040: 45 53 20 4F 4E 4C 59 20  21 21 0D 52 4E 47 59 20  |ES ONLY !!.RNGY |
00001050: 4C 44 41 20 4F 50 48 2D  32 2C 58 0D 20 42 4D 49  |LDA OPH-2,X. BMI|
00001060: 20 4F 52 4E 47 0D 20 43  4D 50 20 53 54 48 2C 58  | ORNG. CMP STH,X|
00001070: 0D 20 42 4E 45 20 43 50  30 48 49 0D 20 4C 44 41  |. BNE CP0HI. LDA|
00001080: 20 4F 50 4C 2D 32 2C 58  0D 20 43 4D 50 20 53 54  | OPL-2,X. CMP ST|
00001090: 4C 2C 58 0D 43 50 30 48  49 20 42 43 53 20 4F 52  |L,X.CP0HI BCS OR|
000010A0: 4E 47 0D 20 4C 44 41 20  4F 50 48 2D 32 2C 58 0D  |NG. LDA OPH-2,X.|
000010B0: 20 43 4D 50 20 4F 50 48  2C 58 0D 20 42 4E 45 20  | CMP OPH,X. BNE |
000010C0: 43 50 30 4C 4F 0D 20 4C  44 41 20 4F 50 4C 2D 32  |CP0LO. LDA OPL-2|
000010D0: 2C 58 0D 20 43 4D 50 20  4F 50 4C 2C 58 0D 43 50  |,X. CMP OPL,X.CP|
000010E0: 30 4C 4F 20 42 43 43 20  4F 52 4E 47 0D 20 52 54  |0LO BCC ORNG. RT|
000010F0: 53 0D 4F 52 4E 47 20 4C  44 41 20 23 30 0D 20 53  |S.ORNG LDA #0. S|
00001100: 54 41 20 4F 50 48 2D 32  2C 58 0D 20 54 59 41 0D  |TA OPH-2,X. TYA.|
00001110: 20 53 54 41 20 4F 50 4C  2D 32 2C 58 0D 20 52 54  | STA OPL-2,X. RT|
00001120: 53 0D 3B 0D 3B 20 20 53  54 49 43 4B 2C 20 28 53  |S.;.;  STICK, (S|
00001130: 54 4B 29 3D 3E 53 54 4B  2D 58 2C 4F 50 52 2D 59  |TK)=>STK-X,OPR-Y|
00001140: 20 24 31 30 0D 53 54 49  43 4B 20 4C 44 59 20 53  | $10.STICK LDY S|
00001150: 54 4C 2C 58 0D 20 4C 44  41 20 24 44 43 30 30 2C  |TL,X. LDA $DC00,|
00001160: 59 0D 20 4C 44 59 20 23  24 30 30 0D 20 52 4F 52  |Y. LDY #$00. ROR|
00001170: 20 41 0D 20 42 43 53 20  53 54 31 0D 20 4C 44 59  | A. BCS ST1. LDY|
00001180: 20 23 24 46 46 0D 53 54  31 20 52 4F 52 20 41 0D  | #$FF.ST1 ROR A.|
00001190: 20 42 43 53 20 53 54 32  0D 20 4C 44 59 20 23 24  | BCS ST2. LDY #$|
000011A0: 30 31 0D 53 54 32 20 50  48 41 0D 20 4A 53 52 20  |01.ST2 PHA. JSR |
000011B0: 43 4F 4E 30 20 3B 20 44  59 0D 20 50 4C 41 0D 20  |CON0 ; DY. PLA. |
000011C0: 4C 44 59 20 23 24 30 30  0D 20 52 4F 52 20 41 0D  |LDY #$00. ROR A.|
000011D0: 20 42 43 53 20 53 54 33  0D 20 44 45 59 0D 53 54  | BCS ST3. DEY.ST|
000011E0: 33 20 52 4F 52 20 41 0D  20 42 43 53 20 53 54 34  |3 ROR A. BCS ST4|
000011F0: 0D 20 4C 44 59 20 23 24  30 31 0D 53 54 34 20 4A  |. LDY #$01.ST4 J|
00001200: 4D 50 20 43 4F 4E 20 3B  20 44 58 0D 3B 0D 3B 20  |MP CON ; DX.;.; |
00001210: 20 53 54 52 49 47 2C 20  28 53 54 4B 29 3D 3E 53  | STRIG, (STK)=>S|
00001220: 54 4B 20 24 30 34 0D 53  54 52 49 47 20 4C 44 59  |TK $04.STRIG LDY|
00001230: 20 53 54 4C 2C 58 0D 20  4C 44 41 20 24 44 43 30  | STL,X. LDA $DC0|
00001240: 30 2C 59 0D 20 52 4F 52  20 41 0D 20 52 4F 52 20  |0,Y. ROR A. ROR |
00001250: 41 0D 20 52 4F 52 20 41  0D 20 52 4F 52 20 41 0D  |A. ROR A. ROR A.|
00001260: 20 41 4E 44 20 23 31 0D  20 45 4F 52 20 23 31 0D  | AND #1. EOR #1.|
00001270: 20 53 54 41 20 53 54 4C  2C 58 0D 20 4C 44 41 20  | STA STL,X. LDA |
00001280: 23 24 30 30 0D 20 53 54  41 20 53 54 48 2C 58 0D  |#$00. STA STH,X.|
00001290: 20 52 54 53 0D 3B 0D 3B  20 20 49 4E 43 2C 20 53  | RTS.;.;  INC, S|
000012A0: 54 4B 2B 31 3D 3E 53 54  4B 20 24 30 35 0D 49 4E  |TK+1=>STK $05.IN|
000012B0: 43 52 20 49 4E 43 20 53  54 4C 2C 58 0D 20 42 4E  |CR INC STL,X. BN|
000012C0: 45 20 49 4E 43 31 0D 20  49 4E 43 20 53 54 48 2C  |E INC1. INC STH,|
000012D0: 58 0D 49 4E 43 31 20 52  54 53 0D 3B 0D 3B 20 20  |X.INC1 RTS.;.;  |
000012E0: 44 45 43 2C 20 53 54 4B  2D 31 3D 3E 53 54 4B 20  |DEC, STK-1=>STK |
000012F0: 24 30 36 0D 44 45 43 52  20 4C 44 41 20 53 54 4C  |$06.DECR LDA STL|
00001300: 2C 58 0D 20 42 4E 45 20  44 45 43 31 0D 20 44 45  |,X. BNE DEC1. DE|
00001310: 43 20 53 54 48 2C 58 0D  44 45 43 31 20 44 45 43  |C STH,X.DEC1 DEC|
00001320: 20 53 54 4C 2C 58 0D 20  52 54 53 0D 3B 0D 3B 20  | STL,X. RTS.;.; |
00001330: 20 44 55 50 2C 20 53 54  4B 3D 3E 53 54 4B 2B 32  | DUP, STK=>STK+2|
00001340: 20 24 31 31 0D 44 55 50  20 4C 44 41 20 53 54 4C  | $11.DUP LDA STL|
00001350: 2C 58 0D 20 53 54 41 20  53 54 58 31 2C 58 0D 20  |,X. STA STX1,X. |
00001360: 4C 44 41 20 53 54 48 2C  58 0D 20 53 54 41 20 53  |LDA STH,X. STA S|
00001370: 54 58 32 2C 58 0D 20 52  54 53 0D 3B 0D 3B 20 20  |TX2,X. RTS.;.;  |
00001380: 44 50 4F 4B 45 2C 20 4F  50 52 3D 3E 4C 4F 43 28  |DPOKE, OPR=>LOC(|
00001390: 53 54 4B 29 20 24 33 34  0D 44 50 4F 4B 45 20 4C  |STK) $34.DPOKE L|
000013A0: 44 59 20 23 24 30 30 0D  20 4A 53 52 20 55 53 52  |DY #$00. JSR USR|
000013B0: 20 3B 53 54 4B 3D 3E 46  52 30 0D 20 4C 44 41 20  | ;STK=>FR0. LDA |
000013C0: 4F 50 4C 2C 58 0D 20 53  54 41 20 28 46 52 30 29  |OPL,X. STA (FR0)|
000013D0: 2C 59 0D 20 49 4E 59 0D  20 4C 44 41 20 4F 50 48  |,Y. INY. LDA OPH|
000013E0: 2C 58 0D 20 53 54 41 20  28 46 52 30 29 2C 59 0D  |,X. STA (FR0),Y.|
000013F0: 20 52 54 53 0D 3B 0D 3B  20 20 44 50 45 45 4B 2C  | RTS.;.;  DPEEK,|
00001400: 20 50 45 45 4B 28 53 54  4B 29 3D 3E 53 54 4B 20  | PEEK(STK)=>STK |
00001410: 24 30 44 0D 44 50 45 45  4B 20 4C 44 59 20 23 24  |$0D.DPEEK LDY #$|
00001420: 30 30 0D 20 4A 53 52 20  55 53 52 0D 20 4C 44 41  |00. JSR USR. LDA|
00001430: 20 28 46 52 30 29 2C 59  0D 20 53 54 41 20 53 54  | (FR0),Y. STA ST|
00001440: 4C 2C 58 0D 20 49 4E 59  0D 20 4C 44 41 20 28 46  |L,X. INY. LDA (F|
00001450: 52 30 29 2C 59 0D 20 53  54 41 20 53 54 48 2C 58  |R0),Y. STA STH,X|
00001460: 0D 20 52 54 53 0D 3B 0D  3B 20 20 44 4F 4E 45 20  |. RTS.;.;  DONE |
00001470: 24 30 30 0D 44 4F 4E 45  20 50 4C 41 0D 20 50 4C  |$00.DONE PLA. PL|
00001480: 41 0D 20 4C 44 59 20 46  52 30 0D 20 4C 44 41 20  |A. LDY FR0. LDA |
00001490: 46 52 30 2B 31 0D 20 52  54 53 0D 3B 0D 3B 20 44  |FR0+1. RTS.;.; D|
000014A0: 49 56 49 44 45 2C 20 4F  50 52 2F 53 54 4B 3D 3E  |IVIDE, OPR/STK=>|
000014B0: 4F 50 52 20 24 32 33 0D  44 49 56 20 4C 44 41 20  |OPR $23.DIV LDA |
000014C0: 23 24 30 30 0D 20 53 54  41 20 46 4C 41 47 0D 20  |#$00. STA FLAG. |
000014D0: 4A 53 52 20 44 49 56 38  0D 20 44 45 58 0D 20 44  |JSR DIV8. DEX. D|
000014E0: 45 58 0D 20 4A 53 52 20  44 49 56 38 0D 20 49 4E  |EX. JSR DIV8. IN|
000014F0: 58 0D 20 49 4E 58 0D 20  4C 44 41 20 23 24 30 30  |X. INX. LDA #$00|
00001500: 0D 20 53 54 41 20 53 54  58 33 2C 58 0D 20 53 54  |. STA STX3,X. ST|
00001510: 41 20 53 54 58 34 2C 58  0D 20 53 54 41 20 53 54  |A STX4,X. STA ST|
00001520: 58 31 2C 58 0D 20 53 54  41 20 53 54 58 32 2C 58  |X1,X. STA STX2,X|
00001530: 0D 20 4C 44 59 20 23 24  31 30 20 3B 20 31 36 20  |. LDY #$10 ; 16 |
00001540: 42 49 54 53 0D 44 49 56  31 20 41 53 4C 20 53 54  |BITS.DIV1 ASL ST|
00001550: 58 33 2C 58 0D 20 52 4F  4C 20 53 54 58 34 2C 58  |X3,X. ROL STX4,X|
00001560: 0D 20 41 53 4C 20 4F 50  4C 2C 58 0D 20 52 4F 4C  |. ASL OPL,X. ROL|
00001570: 20 4F 50 48 2C 58 0D 20  52 4F 4C 20 53 54 58 31  | OPH,X. ROL STX1|
00001580: 2C 58 0D 20 52 4F 4C 20  53 54 58 32 2C 58 0D 20  |,X. ROL STX2,X. |
00001590: 53 45 43 0D 20 4C 44 41  20 53 54 58 31 2C 58 0D  |SEC. LDA STX1,X.|
000015A0: 20 53 42 43 20 53 54 4C  2C 58 0D 20 53 54 41 20  | SBC STL,X. STA |
000015B0: 54 4D 50 31 20 3B 20 52  45 4D 41 49 4E 44 45 52  |TMP1 ; REMAINDER|
000015C0: 0D 20 4C 44 41 20 53 54  58 32 2C 58 0D 20 53 42  |. LDA STX2,X. SB|
000015D0: 43 20 53 54 48 2C 58 0D  20 53 54 41 20 54 4D 50  |C STH,X. STA TMP|
000015E0: 32 0D 20 42 43 43 20 44  49 56 32 0D 20 49 4E 43  |2. BCC DIV2. INC|
000015F0: 20 53 54 58 33 2C 58 20  3B 20 52 45 53 55 4C 54  | STX3,X ; RESULT|
00001600: 0D 20 4C 44 41 20 54 4D  50 31 20 3B 20 52 45 4D  |. LDA TMP1 ; REM|
00001610: 20 3D 3E 20 44 49 56 0D  20 53 54 41 20 53 54 58  | => DIV. STA STX|
00001620: 31 2C 58 0D 20 4C 44 41  20 54 4D 50 32 0D 20 53  |1,X. LDA TMP2. S|
00001630: 54 41 20 53 54 58 32 2C  58 0D 44 49 56 32 20 44  |TA STX2,X.DIV2 D|
00001640: 45 59 0D 20 42 4E 45 20  44 49 56 31 0D 20 4C 44  |EY. BNE DIV1. LD|
00001650: 41 20 53 54 58 34 2C 58  20 3B 20 52 45 53 55 4C  |A STX4,X ; RESUL|
00001660: 54 20 3D 3E 20 4F 50 52  0D 20 53 54 41 20 53 54  |T => OPR. STA ST|
00001670: 48 2C 58 0D 20 4C 44 41  20 53 54 58 33 2C 58 0D  |H,X. LDA STX3,X.|
00001680: 20 53 54 41 20 53 54 4C  2C 58 0D 20 4C 44 41 20  | STA STL,X. LDA |
00001690: 46 4C 41 47 0D 20 42 45  51 20 44 49 56 33 0D 20  |FLAG. BEQ DIV3. |
000016A0: 4A 53 52 20 4E 45 47 0D  44 49 56 33 20 4A 4D 50  |JSR NEG.DIV3 JMP|
000016B0: 20 50 55 4E 43 48 0D 3B  0D 44 49 56 38 20 4C 44  | PUNCH.;.DIV8 LD|
000016C0: 41 20 53 54 48 2C 58 0D  20 42 50 4C 20 44 49 56  |A STH,X. BPL DIV|
000016D0: 39 0D 20 4A 53 52 20 4E  45 47 0D 20 4C 44 41 20  |9. JSR NEG. LDA |
000016E0: 23 24 30 31 0D 20 45 4F  52 20 46 4C 41 47 0D 20  |#$01. EOR FLAG. |
000016F0: 53 54 41 20 46 4C 41 47  0D 44 49 56 39 20 52 54  |STA FLAG.DIV9 RT|
00001700: 53 0D 3B 0D 3B 20 20 46  4F 52 2C 20 4F 50 52 3D  |S.;.;  FOR, OPR=|
00001710: 3E 56 41 52 28 59 29 2C  53 54 4B 3D 3E 4C 49 4D  |>VAR(Y),STK=>LIM|
00001720: 20 24 37 30 0D 46 4F 52  20 44 45 58 0D 20 44 45  | $70.FOR DEX. DE|
00001730: 58 0D 20 54 59 41 20 3B  20 56 41 52 20 49 4E 44  |X. TYA ; VAR IND|
00001740: 45 58 0D 20 41 53 4C 20  41 0D 20 54 41 59 0D 20  |EX. ASL A. TAY. |
00001750: 4A 53 52 20 53 54 4F 52  45 20 3B 20 4F 50 52 3D  |JSR STORE ; OPR=|
00001760: 3E 56 41 52 28 58 29 0D  20 53 54 59 20 59 53 41  |>VAR(X). STY YSA|
00001770: 56 45 0D 20 4C 44 59 20  46 4F 52 50 20 3B 20 46  |VE. LDY FORP ; F|
00001780: 4F 52 20 50 4E 54 52 0D  20 4C 44 41 20 53 54 58  |OR PNTR. LDA STX|
00001790: 31 2C 58 20 3B 20 53 41  56 45 20 4C 49 4D 0D 20  |1,X ; SAVE LIM. |
000017A0: 53 54 41 20 46 4C 4D 4C  2C 59 0D 20 4C 44 41 20  |STA FLML,Y. LDA |
000017B0: 53 54 58 32 2C 58 0D 20  53 54 41 20 46 4C 4D 48  |STX2,X. STA FLMH|
000017C0: 2C 59 0D 20 4C 44 41 20  50 43 4E 54 20 3B 20 53  |,Y. LDA PCNT ; S|
000017D0: 41 56 45 20 50 43 0D 20  53 54 41 20 46 50 43 4C  |AVE PC. STA FPCL|
000017E0: 2C 59 0D 20 4C 44 41 20  50 43 4E 54 2B 31 0D 20  |,Y. LDA PCNT+1. |
000017F0: 53 54 41 20 46 50 43 48  2C 59 0D 20 4C 44 41 20  |STA FPCH,Y. LDA |
00001800: 59 53 41 56 45 20 3B 20  53 41 56 45 20 56 41 52  |YSAVE ; SAVE VAR|
00001810: 23 0D 20 53 54 41 20 46  56 41 52 2C 59 0D 20 49  |#. STA FVAR,Y. I|
00001820: 4E 59 20 3B 20 4E 45 58  54 20 46 53 54 41 43 4B  |NY ; NEXT FSTACK|
00001830: 0D 20 49 4E 59 0D 20 49  4E 59 0D 20 49 4E 59 0D  |. INY. INY. INY.|
00001840: 20 49 4E 59 0D 20 53 54  59 20 46 4F 52 50 0D 20  | INY. STY FORP. |
00001850: 49 4E 58 0D 20 49 4E 58  0D 20 52 54 53 0D 3B 0D  |INX. INX. RTS.;.|
00001860: 3B 20 20 4E 45 58 54 2C  20 28 59 29 20 24 34 30  |;  NEXT, (Y) $40|
00001870: 0D 4E 45 58 54 20 53 54  59 20 59 53 41 56 45 0D  |.NEXT STY YSAVE.|
00001880: 20 41 53 4C 20 59 53 41  56 45 20 3B 20 56 41 52  | ASL YSAVE ; VAR|
00001890: 20 49 4E 44 45 58 0D 20  53 54 58 20 58 53 41 56  | INDEX. STX XSAV|
000018A0: 45 0D 20 4C 44 59 20 46  4F 52 50 0D 20 53 54 59  |E. LDY FORP. STY|
000018B0: 20 46 53 41 56 45 0D 4E  58 54 31 20 44 45 59 0D  | FSAVE.NXT1 DEY.|
000018C0: 20 44 45 59 0D 20 44 45  59 0D 20 44 45 59 0D 20  | DEY. DEY. DEY. |
000018D0: 44 45 59 0D 20 53 54 59  20 46 4F 52 50 0D 20 42  |DEY. STY FORP. B|
000018E0: 4D 49 20 4E 58 54 39 20  3B 20 45 52 52 4F 52 0D  |MI NXT9 ; ERROR.|
000018F0: 20 4C 44 41 20 46 56 41  52 2C 59 20 3B 20 46 49  | LDA FVAR,Y ; FI|
00001900: 4E 44 20 46 4F 52 20 45  4E 54 52 59 0D 20 43 4D  |ND FOR ENTRY. CM|
00001910: 50 20 59 53 41 56 45 0D  20 42 4E 45 20 4E 58 54  |P YSAVE. BNE NXT|
00001920: 31 0D 20 4C 44 58 20 59  53 41 56 45 0D 20 49 4E  |1. LDX YSAVE. IN|
00001930: 43 20 56 41 52 4C 2C 58  0D 20 42 4E 45 20 4E 58  |C VARL,X. BNE NX|
00001940: 54 32 0D 20 49 4E 43 20  56 41 52 48 2C 58 0D 4E  |T2. INC VARH,X.N|
00001950: 58 54 32 20 53 45 43 0D  20 4C 44 41 20 46 4C 4D  |XT2 SEC. LDA FLM|
00001960: 4C 2C 59 0D 20 53 42 43  20 56 41 52 4C 2C 58 0D  |L,Y. SBC VARL,X.|
00001970: 20 4C 44 41 20 46 4C 4D  48 2C 59 0D 20 53 42 43  | LDA FLMH,Y. SBC|
00001980: 20 56 41 52 48 2C 58 0D  20 42 4D 49 20 4E 58 54  | VARH,X. BMI NXT|
00001990: 39 0D 20 4C 44 41 20 46  50 43 4C 2C 59 20 3B 20  |9. LDA FPCL,Y ; |
000019A0: 47 4F 20 42 41 43 4B 0D  20 53 54 41 20 50 43 4E  |GO BACK. STA PCN|
000019B0: 54 0D 20 4C 44 41 20 46  50 43 48 2C 59 0D 20 53  |T. LDA FPCH,Y. S|
000019C0: 54 41 20 50 43 4E 54 2B  31 0D 20 4C 44 59 20 46  |TA PCNT+1. LDY F|
000019D0: 53 41 56 45 0D 20 53 54  59 20 46 4F 52 50 0D 4E  |SAVE. STY FORP.N|
000019E0: 58 54 39 20 4C 44 58 20  58 53 41 56 45 0D 20 52  |XT9 LDX XSAVE. R|
000019F0: 54 53 0D 3B 0D 3B 20 20  47 4F 54 4F 2C 20 59 20  |TS.;.;  GOTO, Y |
00001A00: 24 34 42 0D 47 4F 54 4F  20 53 54 59 20 59 53 41  |$4B.GOTO STY YSA|
00001A10: 56 45 0D 20 4A 4D 50 20  47 4F 53 55 42 30 0D 3B  |VE. JMP GOSUB0.;|
00001A20: 0D 3B 20 20 47 4F 53 55  42 2C 20 50 43 2B 59 20  |.;  GOSUB, PC+Y |
00001A30: 24 34 34 0D 47 4F 53 55  42 20 53 54 59 20 59 53  |$44.GOSUB STY YS|
00001A40: 41 56 45 0D 20 4C 44 59  20 47 4F 50 0D 20 4C 44  |AVE. LDY GOP. LD|
00001A50: 41 20 50 43 4E 54 0D 20  53 54 41 20 47 50 43 4C  |A PCNT. STA GPCL|
00001A60: 2C 59 0D 20 4C 44 41 20  50 43 4E 54 2B 31 0D 20  |,Y. LDA PCNT+1. |
00001A70: 53 54 41 20 47 50 43 48  2C 59 0D 20 44 45 59 0D  |STA GPCH,Y. DEY.|
00001A80: 20 44 45 59 0D 20 53 54  59 20 47 4F 50 0D 47 4F  | DEY. STY GOP.GO|
00001A90: 53 55 42 30 20 4C 44 59  20 59 53 41 56 45 0D 20  |SUB0 LDY YSAVE. |
00001AA0: 4C 44 41 20 4A 4D 50 48  49 2C 59 0D 20 42 45 51  |LDA JMPHI,Y. BEQ|
00001AB0: 20 47 4F 53 55 42 33 0D  20 53 54 41 20 50 43 4E  | GOSUB3. STA PCN|
00001AC0: 54 2B 31 0D 20 4C 44 41  20 4A 4D 50 4C 4F 2C 59  |T+1. LDA JMPLO,Y|
00001AD0: 0D 20 53 54 41 20 50 43  4E 54 0D 20 52 54 53 0D  |. STA PCNT. RTS.|
00001AE0: 3B 0D 47 4F 53 55 42 33  20 4C 44 41 20 50 43 53  |;.GOSUB3 LDA PCS|
00001AF0: 56 45 0D 20 53 54 41 20  50 43 4E 54 0D 20 4C 44  |VE. STA PCNT. LD|
00001B00: 41 20 50 43 53 56 45 2B  31 0D 20 53 54 41 20 50  |A PCSVE+1. STA P|
00001B10: 43 4E 54 2B 31 0D 20 4C  44 59 20 23 30 0D 47 4F  |CNT+1. LDY #0.GO|
00001B20: 53 55 42 31 20 4A 53 52  20 53 43 41 4E 0D 20 43  |SUB1 JSR SCAN. C|
00001B30: 4D 50 20 23 24 34 35 20  3B 20 53 42 52 3F 0D 20  |MP #$45 ; SBR?. |
00001B40: 42 4E 45 20 47 4F 53 55  42 31 0D 20 4A 53 52 20  |BNE GOSUB1. JSR |
00001B50: 49 4E 43 50 43 0D 20 4C  44 41 20 28 50 43 4E 54  |INCPC. LDA (PCNT|
00001B60: 29 2C 59 0D 20 43 4D 50  20 59 53 41 56 45 0D 20  |),Y. CMP YSAVE. |
00001B70: 42 45 51 20 47 4F 53 55  42 32 0D 20 4A 53 52 20  |BEQ GOSUB2. JSR |
00001B80: 49 4E 43 50 43 0D 20 4A  4D 50 20 47 4F 53 55 42  |INCPC. JMP GOSUB|
00001B90: 31 0D 47 4F 53 55 42 32  20 4C 44 59 20 59 53 41  |1.GOSUB2 LDY YSA|
00001BA0: 56 45 0D 20 4C 44 41 20  50 43 4E 54 0D 20 53 54  |VE. LDA PCNT. ST|
00001BB0: 41 20 4A 4D 50 4C 4F 2C  59 0D 20 4C 44 41 20 50  |A JMPLO,Y. LDA P|
00001BC0: 43 4E 54 2B 31 0D 20 53  54 41 20 4A 4D 50 48 49  |CNT+1. STA JMPHI|
00001BD0: 2C 59 0D 20 52 54 53 0D  3B 0D 3B 20 20 52 45 54  |,Y. RTS.;.;  RET|
00001BE0: 55 52 4E 2C 20 24 30 31  0D 52 45 54 55 52 4E 20  |URN, $01.RETURN |
00001BF0: 4C 44 59 20 47 4F 50 0D  20 49 4E 59 0D 20 49 4E  |LDY GOP. INY. IN|
00001C00: 59 0D 20 4C 44 41 20 47  50 43 4C 2C 59 0D 20 53  |Y. LDA GPCL,Y. S|
00001C10: 54 41 20 50 43 4E 54 0D  20 4C 44 41 20 47 50 43  |TA PCNT. LDA GPC|
00001C20: 48 2C 59 0D 20 53 54 41  20 50 43 4E 54 2B 31 0D  |H,Y. STA PCNT+1.|
00001C30: 20 53 54 59 20 47 4F 50  0D 20 52 54 53 0D 3B 0D  | STY GOP. RTS.;.|
00001C40: 3B 20 20 55 53 52 2C 20  53 54 4B 3D 3E 46 52 30  |;  USR, STK=>FR0|
00001C50: 20 24 32 45 0D 55 53 52  20 4C 44 41 20 53 54 4C  | $2E.USR LDA STL|
00001C60: 2C 58 0D 20 53 54 41 20  46 52 30 0D 20 4C 44 41  |,X. STA FR0. LDA|
00001C70: 20 53 54 48 2C 58 0D 20  53 54 41 20 46 52 30 2B  | STH,X. STA FR0+|
00001C80: 31 0D 20 52 54 53 0D 3B  0D 3B 0D 3B 20 20 50 52  |1. RTS.;.;.;  PR|
00001C90: 49 4E 54 20 2B 2F 2D 2C  20 53 54 4B 20 59 3D 23  |INT +/-, STK Y=#|
00001CA0: 42 4C 41 4E 4B 53 20 24  36 32 0D 3B 0D 3B 20 49  |BLANKS $62.;.; I|
00001CB0: 46 2C 20 53 47 4E 28 4F  50 52 2D 53 54 4B 29 3D  |F, SGN(OPR-STK)=|
00001CC0: 59 20 24 37 31 0D 49 46  20 53 54 59 20 59 53 41  |Y $71.IF STY YSA|
00001CD0: 56 45 0D 20 4A 53 52 20  53 55 42 0D 20 44 45 58  |VE. JSR SUB. DEX|
00001CE0: 0D 20 44 45 58 0D 20 4A  53 52 20 53 47 4E 0D 20  |. DEX. JSR SGN. |
00001CF0: 49 4E 58 0D 20 49 4E 58  0D 20 4C 44 41 20 4F 50  |INX. INX. LDA OP|
00001D00: 4C 2C 58 0D 49 46 39 20  43 4D 50 20 59 53 41 56  |L,X.IF9 CMP YSAV|
00001D10: 45 0D 20 42 45 51 20 45  45 45 49 46 20 3B 20 54  |E. BEQ EEEIF ; T|
00001D20: 52 55 45 0D 45 4C 53 45  20 4C 44 59 20 23 24 30  |RUE.ELSE LDY #$0|
00001D30: 30 20 3B 45 4C 53 2C 20  24 37 42 0D 20 53 54 59  |0 ;ELS, $7B. STY|
00001D40: 20 4C 45 56 45 4C 0D 49  46 31 20 4A 53 52 20 53  | LEVEL.IF1 JSR S|
00001D50: 43 41 4E 20 3B 20 46 49  4E 44 20 45 4E 44 49 46  |CAN ; FIND ENDIF|
00001D60: 0D 20 43 4D 50 20 23 24  37 44 0D 20 42 45 51 20  |. CMP #$7D. BEQ |
00001D70: 45 49 46 0D 20 43 4D 50  20 23 24 37 43 20 3B 20  |EIF. CMP #$7C ; |
00001D80: 4F 52 20 53 55 50 45 52  20 45 49 46 0D 20 42 45  |OR SUPER EIF. BE|
00001D90: 51 20 45 45 45 49 46 0D  20 43 4D 50 20 23 24 37  |Q EEEIF. CMP #$7|
00001DA0: 42 20 3B 20 4F 52 20 45  4C 53 45 0D 20 42 4E 45  |B ; OR ELSE. BNE|
00001DB0: 20 49 46 32 0D 20 4C 44  41 20 4C 45 56 45 4C 0D  | IF2. LDA LEVEL.|
00001DC0: 20 42 4E 45 20 49 46 31  0D 20 42 45 51 20 45 45  | BNE IF1. BEQ EE|
00001DD0: 45 49 46 0D 49 46 32 20  43 4D 50 20 23 24 32 35  |EIF.IF2 CMP #$25|
00001DE0: 20 3B 20 49 46 54 0D 20  42 45 51 20 49 46 33 0D  | ; IFT. BEQ IF3.|
00001DF0: 20 43 4D 50 20 23 24 32  36 20 3B 20 49 46 46 0D  | CMP #$26 ; IFF.|
00001E00: 20 42 45 51 20 49 46 33  0D 20 43 4D 50 20 23 24  | BEQ IF3. CMP #$|
00001E10: 36 31 20 3B 20 49 46 30  0D 20 42 45 51 20 49 46  |61 ; IF0. BEQ IF|
00001E20: 33 0D 20 43 4D 50 20 23  24 37 31 20 3B 20 49 46  |3. CMP #$71 ; IF|
00001E30: 0D 20 42 4E 45 20 49 46  31 0D 49 46 33 20 49 4E  |. BNE IF1.IF3 IN|
00001E40: 43 20 4C 45 56 45 4C 20  3B 20 50 52 4F 43 45 53  |C LEVEL ; PROCES|
00001E50: 53 20 49 46 0D 20 42 4E  45 20 49 46 31 20 3B 20  |S IF. BNE IF1 ; |
00001E60: 41 4C 57 41 59 53 20 42  52 41 4E 43 48 45 53 0D  |ALWAYS BRANCHES.|
00001E70: 45 49 46 20 44 45 43 20  4C 45 56 45 4C 20 3B 20  |EIF DEC LEVEL ; |
00001E80: 50 52 4F 43 45 53 53 20  45 49 46 53 0D 20 42 50  |PROCESS EIFS. BP|
00001E90: 4C 20 49 46 31 20 3B 20  41 4C 57 41 59 53 20 42  |L IF1 ; ALWAYS B|
00001EA0: 52 41 4E 43 48 45 53 0D  50 52 4F 54 45 43 20 20  |RANCHES.PROTEC  |
00001EB0: 20 3B 20 24 34 44 0D 45  45 45 49 46 20 20 20 20  | ; $4D.EEEIF    |
00001EC0: 3B 20 53 55 50 45 52 20  45 4E 44 49 46 20 24 37  |; SUPER ENDIF $7|
00001ED0: 43 0D 53 42 52 20 20 20  20 20 20 3B 20 4C 41 42  |C.SBR      ; LAB|
00001EE0: 45 4C 20 4F 50 20 24 34  35 0D 45 4E 44 49 46 20  |EL OP $45.ENDIF |
00001EF0: 52 54 53 20 3B 20 45 4E  44 49 46 20 24 37 44 0D  |RTS ; ENDIF $7D.|
00001F00: 3B 0D 3B 20 20 49 46 54  2C 20 53 47 4E 28 53 54  |;.;  IFT, SGN(ST|
00001F10: 4B 29 3D 31 20 24 32 35  0D 49 46 54 20 4C 44 59  |K)=1 $25.IFT LDY|
00001F20: 20 23 24 30 31 0D 3B 0D  3B 20 20 49 46 30 2C 20  | #$01.;.;  IF0, |
00001F30: 53 47 4E 28 53 54 4B 29  3D 59 20 24 36 31 0D 49  |SGN(STK)=Y $61.I|
00001F40: 46 30 20 53 54 59 20 59  53 41 56 45 0D 20 4A 53  |F0 STY YSAVE. JS|
00001F50: 52 20 53 47 4E 0D 20 4C  44 41 20 53 54 4C 2C 58  |R SGN. LDA STL,X|
00001F60: 0D 20 4A 4D 50 20 49 46  39 0D 3B 0D 3B 20 20 49  |. JMP IF9.;.;  I|
00001F70: 46 46 2C 20 53 47 4E 28  53 54 4B 29 3D 30 20 24  |FF, SGN(STK)=0 $|
00001F80: 32 36 0D 49 46 46 20 4C  44 59 20 23 24 30 30 0D  |26.IFF LDY #$00.|
00001F90: 20 4A 4D 50 20 49 46 30  0D 3B 0D 53 43 41 4E 20  | JMP IF0.;.SCAN |
00001FA0: 4C 44 41 20 28 50 43 4E  54 29 2C 59 20 3B 59 20  |LDA (PCNT),Y ;Y |
00001FB0: 4D 55 53 54 3D 30 0D 20  43 4D 50 20 23 24 37 41  |MUST=0. CMP #$7A|
00001FC0: 0D 20 42 43 53 20 53 43  41 4E 33 0D 20 43 4D 50  |. BCS SCAN3. CMP|
00001FD0: 20 23 24 34 30 0D 20 42  43 43 20 53 43 41 4E 33  | #$40. BCC SCAN3|
00001FE0: 0D 20 43 4D 50 20 23 24  35 31 20 3B 4B 31 36 0D  |. CMP #$51 ;K16.|
00001FF0: 20 42 45 51 20 53 43 41  4E 34 0D 53 43 41 4E 31  | BEQ SCAN4.SCAN1|
00002000: 20 43 4D 50 20 23 24 34  36 20 3B 20 54 58 54 0D  | CMP #$46 ; TXT.|
00002010: 20 42 4E 45 20 53 43 41  4E 32 0D 53 43 41 4E 34  | BNE SCAN2.SCAN4|
00002020: 20 4A 53 52 20 49 4E 43  50 43 0D 53 43 41 4E 32  | JSR INCPC.SCAN2|
00002030: 20 4A 53 52 20 49 4E 43  50 43 0D 53 43 41 4E 33  | JSR INCPC.SCAN3|
00002040: 20 4A 53 52 20 49 4E 43  50 43 0D 20 4C 44 41 20  | JSR INCPC. LDA |
00002050: 28 50 43 4E 54 29 2C 59  0D 20 52 54 53 0D 3B 0D  |(PCNT),Y. RTS.;.|
00002060: 3B 20 50 4F 53 54 58 54  2C 20 59 2C 59 3D 43 52  |; POSTXT, Y,Y=CR|
00002070: 58 2C 43 52 59 20 24 34  36 0D 54 50 4F 53 20 53  |X,CRY $46.TPOS S|
00002080: 54 59 20 43 4F 4C 43 52  53 20 3B 20 43 52 58 0D  |TY COLCRS ; CRX.|
00002090: 20 4A 53 52 20 49 4E 43  50 43 0D 20 4C 44 59 20  | JSR INCPC. LDY |
000020A0: 23 30 30 0D 20 4C 44 41  20 28 50 43 4E 54 29 2C  |#00. LDA (PCNT),|
000020B0: 59 0D 20 53 54 41 20 52  4F 57 43 52 53 20 3B 20  |Y. STA ROWCRS ; |
000020C0: 43 52 59 0D 20 52 54 53  0D 3B 0D 3B 20 53 57 41  |CRY. RTS.;.; SWA|
000020D0: 50 2C 20 4F 50 52 3D 3E  53 54 4B 2C 20 53 54 4B  |P, OPR=>STK, STK|
000020E0: 3D 3E 4F 50 52 20 24 30  45 0D 53 57 41 50 20 4C  |=>OPR $0E.SWAP L|
000020F0: 44 59 20 4F 50 4C 2C 58  0D 20 4C 44 41 20 53 54  |DY OPL,X. LDA ST|
00002100: 4C 2C 58 0D 20 53 54 41  20 4F 50 4C 2C 58 0D 20  |L,X. STA OPL,X. |
00002110: 54 59 41 0D 20 53 54 41  20 53 54 4C 2C 58 0D 20  |TYA. STA STL,X. |
00002120: 4C 44 59 20 4F 50 48 2C  58 0D 20 4C 44 41 20 53  |LDY OPH,X. LDA S|
00002130: 54 48 2C 58 0D 20 53 54  41 20 4F 50 48 2C 58 0D  |TH,X. STA OPH,X.|
00002140: 20 54 59 41 0D 20 53 54  41 20 53 54 48 2C 58 0D  | TYA. STA STH,X.|
00002150: 20 52 54 53 0D 3B 0D 3B  20 20 41 4E 44 2C 20 53  | RTS.;.;  AND, S|
00002160: 54 4B 26 59 3D 3E 53 54  4B 20 24 34 38 0D 4C 41  |TK&Y=>STK $48.LA|
00002170: 4E 44 20 54 59 41 0D 20  41 4E 44 20 53 54 4C 2C  |ND TYA. AND STL,|
00002180: 58 0D 20 53 54 41 20 53  54 4C 2C 58 0D 20 4C 44  |X. STA STL,X. LD|
00002190: 41 20 23 24 30 30 0D 20  53 54 41 20 53 54 48 2C  |A #$00. STA STH,|
000021A0: 58 0D 20 52 54 53 0D 3B  0D 3B 20 41 4E 44 32 2C  |X. RTS.;.; AND2,|
000021B0: 20 53 54 4B 26 4F 50 52  3D 3E 4F 50 52 2C 20 24  | STK&OPR=>OPR, $|
000021C0: 32 41 0D 4C 41 4E 44 32  20 4C 44 41 20 53 54 4C  |2A.LAND2 LDA STL|
000021D0: 2C 58 0D 20 41 4E 44 20  4F 50 4C 2C 58 0D 20 53  |,X. AND OPL,X. S|
000021E0: 54 41 20 4F 50 4C 2C 58  0D 20 4C 44 41 20 53 54  |TA OPL,X. LDA ST|
000021F0: 48 2C 58 0D 20 41 4E 44  20 4F 50 48 2C 58 0D 20  |H,X. AND OPH,X. |
00002200: 53 54 41 20 4F 50 48 2C  58 0D 20 52 54 53 0D 3B  |STA OPH,X. RTS.;|
00002210: 0D 3B 20 20 4F 52 2C 20  53 54 4B 5E 59 3D 3E 53  |.;  OR, STK^Y=>S|
00002220: 54 4B 20 24 34 39 0D 4C  4F 52 20 54 59 41 0D 20  |TK $49.LOR TYA. |
00002230: 4F 52 41 20 53 54 4C 2C  58 0D 20 53 54 41 20 53  |ORA STL,X. STA S|
00002240: 54 4C 2C 58 0D 20 52 54  53 0D 3B 0D 3B 20 20 58  |TL,X. RTS.;.;  X|
00002250: 4F 52 2C 20 53 54 4B 20  58 4F 52 20 59 3D 3E 53  |OR, STK XOR Y=>S|
00002260: 54 4B 20 24 34 41 0D 4C  58 4F 52 20 54 59 41 0D  |TK $4A.LXOR TYA.|
00002270: 20 45 4F 52 20 53 54 4C  2C 58 0D 20 53 54 41 20  | EOR STL,X. STA |
00002280: 53 54 4C 2C 58 0D 20 52  54 53 0D 3B 0D 3B 20 43  |STL,X. RTS.;.; C|
00002290: 4C 52 2C 20 43 4C 45 41  52 20 53 54 41 43 4B 20  |LR, CLEAR STACK |
000022A0: 24 37 45 0D 43 4C 52 20  4C 44 58 20 23 24 46 45  |$7E.CLR LDX #$FE|
000022B0: 0D 20 52 54 53 0D 3B 0D  3B 20 52 55 4E 2C 20 53  |. RTS.;.; RUN, S|
000022C0: 54 41 52 54 20 4F 56 45  52 20 24 37 46 0D 52 55  |TART OVER $7F.RU|
000022D0: 4E 20 4C 44 41 20 50 43  53 56 45 2B 31 0D 20 53  |N LDA PCSVE+1. S|
000022E0: 54 41 20 50 43 4E 54 2B  31 0D 20 4C 44 41 20 50  |TA PCNT+1. LDA P|
000022F0: 43 53 56 45 0D 20 53 54  41 20 50 43 4E 54 0D 52  |CSVE. STA PCNT.R|
00002300: 55 4E 31 20 4C 44 58 20  23 24 37 38 0D 20 53 54  |UN1 LDX #$78. ST|
00002310: 58 20 47 4F 50 0D 20 53  54 58 20 56 4C 49 4D 0D  |X GOP. STX VLIM.|
00002320: 20 4C 44 58 20 23 24 30  30 0D 20 53 54 58 20 56  | LDX #$00. STX V|
00002330: 50 4C 55 53 0D 20 53 54  58 20 46 4F 52 50 0D 20  |PLUS. STX FORP. |
00002340: 44 45 58 0D 20 44 45 58  0D 20 52 54 53 0D 3B 0D  |DEX. DEX. RTS.;.|
00002350: 20 2E 45 4E 44 0D                                 | .END.          |
DA STH,X. STA VARH,Y. RTS.;.; OFFSET, ST
K=>VPLUS Y=>VLIM $60.OFFSET TYA. ASL A. 
STA VLIM. LDA STL,X. ASL A. STA VPLUS. R
TS.;.;  ADD, STK+OPR=>OPR $20.ADD CLC. L
DA STL,X. ADC OPL,X. STA OPL,X. LDA STH,
X. ADC OPH,X. STA OPH,X. RTS.;.;  SUB, O
PR-STK=>OPR $21.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 PRECISION.MULT LDY #$10.M2 L
DA #$00. STA STX2,X. STA STX1,X.MULT2 LD
A 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.MULT4 ROR 
STX2,X. ROR STX1,X. ROR STH,X. ROR STL,X
. DEY. BNE MULT2.PUNCH LDA STL,X. STA OP
L,X. LDA STH,X. STA OPH,X. RTS.;.;  SHIF
T RIGHT, STK/(2^Y)=>STK $41.SHIFTR LDA S
TH,X. ROL A. ROR STH,X. ROR STL,X. DEY. 
BNE SHIFTR. RTS.;.; SHIFT RIGHT POSITIVE
, $4C.SHR0 = *. LSR STH,X. ROR STL,X. DE
Y. BNE SHR0. RTS.;.;  SHIFT LEFT, STK*(2
^Y)=STK $42.SHIFTL = *. ASL STL,X. ROL S
TH,X. DEY. BNE SHIFTL. RTS.;.; NEGATE, -
STK=>STK $02.NEG SEC. LDA #$0. SBC STL,X
. STA STL,X. LDA #$0. SBC STH,X. STA STH
,X. RTS.;.NEGOPR SEC. LDA #0. SBC OPL,X.
 STA OPL,X. LDA #$0. SBC OPH,X. STA OPH,
X. RTS.;.;  BIT, FIRST BIT SET, $5E.;BIT
X LDY #0.; TYA.; STA STH,X.;BIT1 LSR STL
,X.; BCS BIT2.; INY.; CPY #8.; BMI BIT1.
;BIT2 TYA.; STA STL,X.; RTS.;.; CALL, AS
M SUBROUTINE; Y=PUSH FLAG.CALL DEY ; TES
T FOR ARG. BMI CALL1. LDA STL,X. STA $80
00. LDA STH,X. STA $8001. DEX. DEX.CALL1
 = *. LDA STL,X. BNE CALL2. DEC STH,X.CA
LL2 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 STL,X. DEX. DEX. RTS.;.;  CO
NSTANT-8 BITS, Y=>STK 127/-128 $50.CON I
NX. INX. JSR CON0. DEX. DEX.POP RTS ; PO
P,  $2B.;.CON0 LDA #$00. STA STH,X. TYA.
 BPL CON1. DEC STH,X ; NEGATIVE CONST.CO
N1 STA STL,X ;$00 OR $FF. RTS.;.; CONSTA
NT-16 BITS, Y,A=>STK $51.CON16 TYA. INX.
 INX. STA STL,X. JSR INCPC. LDY #$00. LD
A (PCNT),Y. STA STH,X. DEX. DEX. RTS.;.;
.;.; SPRITE COMMANDS.;.BMASK .BYTE $FE,$
01,$FD,$02,$FB,$04,$F7,$08. .BYTE $EF,$1
0,$DF,$20,$BF,$40,$7F,$80. .BYTE $FE,$01
,$FD,$02,$FB,$04,$F7,$08. .BYTE $FE,$01,
$FD,$02,$FB,$04,$F7,$08. .BYTE $EF,$10,$
DF,$20,$BF,$40,$7F,$80. .BYTE $FE,$01,$F
D,$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, STK => S
PREGX [Y]( OR [VAR[Y]] ).;.SPRX = *. JSR
 SP2Y ; GET SPRITE NUMBER OFFSET. LDA ST
L,X. STA SP0X,Y ; STORE LS BYTE. LDA BMA
SK+1,Y ; STORE MS BIT. PHA. LDA BMASK,Y.
 PHA. LDA MOFST,Y. TAY. PLA. AND MSBREG,
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, S
TK => SPREGY [Y]( OR VAR).SPRY = *. JSR 
SP2Y. LDA STL,X. STA SP0Y,Y. RTS.;.SP2Y 
= *. LDA ARG ; IF ARG > 127, ARG IS SPRI
TE. 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.;.;  R
ND, STK*RND=>STK $08.RND INX ; FAKE STAC
K. 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.R
ND2 LDY #8. JSR M2 ; DO MULT. LDA STX2,X
. STA OPH,X. LDA STX1,X  ; NORMALIZE. ST
A OPL,X. LDA TMP1. BEQ RND3. JSR NEGOPR.
RND3 DEX ; RESTORE STACK. DEX. RTS.;.;.B
YTX LDA #$00 ;  BYTE, STK&FF=>STK $07. S
TA STH,X ; 0. RTS.;.;.;  ABS, ABS(STK)=>
STK $09.ABS LDA STH,X. BPL ABS1. JSR NEG
 ; NEGATE IF NEG.ABS1 RTS.;.;  SGN, SGN(
STK)=>STK $0A.SGN LDA STH,X. BPL SGN1. L
DY #$FF ;<0. JMP CON0.SGN1 BEQ SGN2. LDY
 #$01. JMP CON0 ;>0.SGN2 LDA STL,X. BNE 
SGN1. LDY #$00 ;=0. JMP CON0.;.;  PEEK, 
PEEK(STK)=>STK $0B.PEEK JSR USR ;STK=>FR
0. LDA #$00. STA STH,X. LDY #$00. LDA (F
R0),Y. STA STL,X. RTS.;.;  POKE, OPR=>LO
C(STK) $30.POKE JSR USR ;STK=>FR0. LDY #
$00.POKE0 LDA OPL,X. STA (FR0),Y. RTS.;.
POKEY JSR USR. LDY VARL. JMP POKE0.;.; R
ANGE, VALUE, OPR=LO STK=HI $35.; POSITIV
E VALUES ONLY !!.RANGE LDA OPH-2,X. BMI 
ORNGLO. CMP STH,X. BNE CPHI. LDA OPL-2,X
. CMP STL,X.CPHI BCS ORNGHI. LDA OPH-2,X
. CMP OPH,X. BNE 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. L
DA OPL,X. STA OPL-2,X. RTS.;.;  RANGEY, 
VALUE, OPR=LO STK=HI $72.; POSITIVE VALU
ES ONLY !!.RNGY LDA OPH-2,X. BMI ORNG. C
MP STH,X. BNE CP0HI. LDA OPL-2,X. CMP ST
L,X.CP0HI BCS ORNG. LDA OPH-2,X. CMP OPH
,X. BNE CP0LO. LDA OPL-2,X. CMP OPL,X.CP
0LO BCC ORNG. RTS.ORNG LDA #0. STA OPH-2
,X. TYA. STA OPL-2,X. RTS.;.;  STICK, (S
TK)=>STK-X,OPR-Y $10.STICK LDY STL,X. LD
A $DC00,Y. LDY #$00. ROR A. BCS ST1. LDY
 #$FF.ST1 ROR A. BCS ST2. LDY #$01.ST2 P
HA. JSR CON0 ; DY. PLA. LDY #$00. ROR A.
 BCS ST3. DEY.ST3 ROR A. BCS ST4. LDY #$
01.ST4 JMP CON ; DX.;.;  STRIG, (STK)=>S
TK $04.STRIG LDY STL,X. LDA $DC00,Y. ROR
 A. ROR A. ROR A. ROR A. AND #1. EOR #1.
 STA STL,X. LDA #$00. STA STH,X. RTS.;.;
  INC, STK+1=>STK $05.INCR INC STL,X. BN
E INC1. INC STH,X.INC1 RTS.;.;  DEC, STK
-1=>STK $06.DECR LDA STL,X. BNE DEC1. DE
C STH,X.DEC1 DEC STL,X. RTS.;.;  DUP, ST
K=>STK+2 $11.DUP LDA STL,X. STA STX1,X. 
LDA STH,X. STA STX2,X. RTS.;.;  DPOKE, O
PR=>LOC(STK) $34.DPOKE LDY #$00. JSR 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 (F
R0),Y. STA STH,X. RTS.;.;  DONE $00.DONE
 PLA. PLA. LDY FR0. LDA FR0+1. RTS.;.; D
IVIDE, OPR/STK=>OPR $23.DIV LDA #$00. ST
A FLAG. JSR DIV8. DEX. DEX. JSR DIV8. IN
X. 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 OP
L,X. ROL OPH,X. ROL STX1,X. ROL STX2,X. 
SEC. LDA STX1,X. SBC STL,X. STA TMP1 ; R
EMAINDER. LDA STX2,X. SBC STH,X. STA TMP
2. BCC DIV2. INC STX3,X ; RESULT. LDA TM
P1 ; REM => DIV. STA STX1,X. LDA TMP2. S
TA STX2,X.DIV2 DEY. BNE DIV1. LDA STX4,X
 ; RESULT => OPR. STA STH,X. LDA STX3,X.
 STA STL,X. LDA FLAG. BEQ DIV3. JSR NEG.
DIV3 JMP PUNCH.;.DIV8 LDA STH,X. BPL DIV
9. JSR NEG. LDA #$01. EOR FLAG. STA FLAG
.DIV9 RTS.;.;  FOR, OPR=>VAR(Y),STK=>LIM
 $70.FOR DEX. DEX. TYA ; VAR INDEX. ASL 
A. TAY. JSR STORE ; OPR=>VAR(X). STY YSA
VE. LDY FORP ; FOR PNTR. LDA STX1,X ; SA
VE LIM. STA FLML,Y. LDA STX2,X. STA FLMH
,Y. LDA PCNT ; SAVE PC. STA FPCL,Y. LDA 
PCNT+1. STA FPCH,Y. LDA YSAVE ; SAVE VAR
#. STA FVAR,Y. INY ; NEXT FSTACK. INY. I
NY. INY. INY. STY FORP. INX. INX. RTS.;.
;  NEXT, (Y) $40.NEXT STY YSAVE. ASL YSA
VE ; VAR INDEX. STX XSAVE. LDY FORP. STY
 FSAVE.NXT1 DEY. DEY. DEY. DEY. DEY. STY
 FORP. BMI NXT9 ; ERROR. LDA FVAR,Y ; FI
ND FOR ENTRY. CMP YSAVE. BNE NXT1. LDX Y
SAVE. INC VARL,X. BNE NXT2. INC VARH,X.N
XT2 SEC. LDA FLML,Y. SBC VARL,X. LDA FLM
H,Y. SBC VARH,X. BMI NXT9. LDA FPCL,Y ; 
GO BACK. STA PCNT. LDA FPCH,Y. STA PCNT+
1. LDY FSAVE. STY FORP.NXT9 LDX XSAVE. R
TS.;.;  GOTO, Y $4B.GOTO STY YSAVE. JMP 
GOSUB0.;.;  GOSUB, PC+Y $44.GOSUB STY YS
AVE. LDY GOP. LDA PCNT. STA GPCL,Y. LDA 
PCNT+1. STA GPCH,Y. DEY. DEY. STY GOP.GO
SUB0 LDY YSAVE. LDA JMPHI,Y. BEQ GOSUB3.
 STA PCNT+1. LDA JMPLO,Y. STA PCNT. RTS.
;.GOSUB3 LDA PCSVE. STA PCNT. LDA PCSVE+
1. STA PCNT+1. LDY #0.GOSUB1 JSR SCAN. C
MP #$45 ; SBR?. BNE GOSUB1. JSR INCPC. L
DA (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 LDY GOP.
 INY. INY. LDA GPCL,Y. STA PCNT. LDA GPC
H,Y. STA PCNT+1. STY GOP. RTS.;.;  USR, 
STK=>FR0 $2E.USR LDA STL,X. STA FR0. LDA
 STH,X. STA FR0+1. RTS.;.;.;  PRINT +/-,
 STK Y=#BLANKS $62.;.; IF, SGN(OPR-STK)=
Y $71.IF STY YSAVE. JSR SUB. DEX. DEX. J
SR SGN. INX. INX. LDA OPL,X.IF9 CMP YSAV
E. 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 ELSE. BNE
 IF2. LDA LEVEL. 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 ; PROCES
S IF. BNE IF1 ; ALWAYS BRANCHES.EIF DEC 
LEVEL ; PROCESS EIFS. BPL IF1 ; ALWAYS B
RANCHES.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.I
F0 STY YSAVE. JSR SGN. LDA STL,X. JMP IF
9.;.;  IFF, SGN(STK)=0 $26.IFF LDY #$00.
 JMP IF0.;.SCAN LDA (PCNT),Y ;Y MUST=0. 
CMP #$7A. BCS SCAN3. CMP #$40. BCC SCAN3
. CMP #$51 ;K16. BEQ SCAN4.SCAN1 CMP #$4
6 ; TXT. BNE SCAN2.SCAN4 JSR INCPC.SCAN2
 JSR INCPC.SCAN3 JSR INCPC. LDA (PCNT),Y
. RTS.;.; POSTXT, Y,Y=CRX,CRY $46.TPOS S
TY COLCRS ; CRX. JSR INCPC. LDY #00. LDA
 (PCNT),Y. STA ROWCRS ; CRY. RTS.;.; SWA
P, OPR=>STK, STK=>OPR $0E.SWAP LDY OPL,X
. LDA STL,X. STA OPL,X. TYA. STA STL,X. 
LDY OPH,X. LDA STH,X. STA OPH,X. TYA. ST
A STH,X. RTS.;.;  AND, STK&Y=>STK $48.LA
ND 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. ORA STL,
X. STA STL,X. RTS.;.;  XOR, STK XOR Y=>S
TK $4A.LXOR TYA. EOR STL,X. STA STL,X. R
TS.;.; CLR, CLEAR STACK $7E.CLR LDX #$FE
. RTS.;.; RUN, START OVER $7F.RUN LDA PC
SVE+1. STA PCNT+1. LDA PCSVE. STA PCNT.R
UN1 LDX #$78. STX GOP. STX VLIM. LDX #$0
0. STX VPLUS. STX FORP. DEX. DEX. RTS.;.
 .END.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL