Home » Archimedes archive » Zipped Apps » 6502em » !6502Em/src/OpcodesNew

!6502Em/src/OpcodesNew

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Zipped Apps » 6502em
Filename: !6502Em/src/OpcodesNew
Read OK:
File size: 7B0C bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > Opcodes
   20
   30DEFFNopcodes
   40
   50FOR bcd_loop%=0 TO 1
   60opcode%=0
   70IF bcd_loop%=0 THEN [OPTp:.opcode(&0):] ELSE [OPTp:.bcd(0):]
   80
   90[OPTp
  100
  110;.opcode(&0) ; BRK
  120ADD zpc,zpc,#2 << 16
  130MOV R0,zpc,LSR#24
  140FNpush(0)
  150MOV R0,zpc,LSR#16
  160FNpush(0)
  170ORR F,F,#%10000 ; set BRK flag
  180FNpush(F)
  190ORR F,F,#%00100 ; set I flag
  200BIC F,F,#%10000 ; clear BRK flag..... seems to work!
  210MOV R0,#&10000 : SUB R0,R0,#2
  220LDRB zpc,[mem,R0]
  230ADD R0,R0,#1
  240LDRB R0,[mem,R0]
  250ADD zpc,zpc,R0,LSL#8
  260MOV zpc,zpc,LSL#16
  270FNfetch(0,7)
  280;
  290.opcode(&1) ; ORA (n,X)
  300FNgetpre(0,1)
  310FNora(0,2,6)
  320;
  330.opcode(&2) ; ?
  340;FNprint(zpc)
  350;MOV R0,#66
  360;B raw_exit
  370FNundoc(&2)
  380FNfetch(1,2)
  390;
  400.opcode(&3) ; ?
  410;ADDS R0,zpc,#(&10000-&FFF4) << 16
  420;CMPEQ A,#&81 << 24
  430ADD R0,zpc,#1 << 16
  440;LDRB R0,[mem,R0,LSR#16]
  441MOV R2,#pagetable
  442LDRB R2,[R2,R0,LSR#28]
  443MOV R2,R2,LSL#12
  444LDRB R0,[R2,R0,LSR#16]
  450CMP R0,#3
  460BEQ osbput
  470CMP R0,#4
  480BEQ osbget
  490MOV R0,#3
  500B raw_exit
  510FNfetch(1,2)
  520;
  530.opcode(&4) ; TSB n
  540FNgetzero(0,1)
  550FNtsb(0)
  560STRB R0,[mem,R1] ; zero page STRB
  570FNfetch(2,5)
  580;
  590.opcode(&5) ; ORA n
  600FNgetzero(0,1)
  610FNora(0,2,3)
  620;
  630.opcode(&6) ; ASL n
  640FNgetzero(0,1)
  650FNasl(0)
  660STRB R0,[mem,R1] ; zero page STRB
  670FNfetch(2,5)
  680;
  690.opcode(&7) ; (SLO n - ASL n, ORA n)
  700CMP zpc,#&8000 << 16
  710;BHS opcode7
  720MOVHS R0,#7
  730BHS raw_exit
  740FNgetzero(0,1)
  750FNasl(0)
  760ORRS A,A,R0,LSL#24 ; ORA zp
  770STRB R0,[mem,R1]
  780FNfetch(2,0)
  790;
  800.opcode(&8) ; PHP
  810FNpush(F)
  820FNfetch(1,3)
  830;
  840.opcode(&9) ; ORA #N
  850FNgetbyte1(0)
  860FNora(0,2,2)
  870;
  880.opcode(&A) ; ASL A
  890MOVS A,A,LSL#1
  900FNsetupNZC
  910FNfetch(1,2)
  920;
  930.opcode(&B) ; ANC (undocumented - Repton 2)
  940            ; AND #N, ASL A
  950FNgetbyte1(0)
  960AND R0,A,R0,LSL#24
  970MOVS A,A,LSL#1
  980FNsetupNZC
  990FNfetch(2,2)
 1000;
 1010.opcode(&C) ; TSB nn
 1020FNgetabs(0,1)
 1030FNtsb(0)
 1040FNstrb(0,1)
 1050FNfetch(3,6)
 1060;
 1070.opcode(&D) ; ORA nn
 1080FNgetabs(0,1)
 1090FNora(0,3,4)
 1100;
 1110.opcode(&E) ; ASL nn
 1120FNgetabs(0,1)
 1130FNasl(0)
 1140FNstrb(0,1)
 1150FNfetch(3,6)
 1160;
 1170.opcode(&F) ; ?
 1180FNundoc(&F)
 1190FNfetch(1,2)
 1200;
 1210.opcode(&10) ; BPL r
 1220TST F,#%10000000
 1230BNE branch_fetch
 1240FNbranch
 1250;
 1260.opcode(&11) ; ORA (n),Y
 1270FNgetpost(0,1)
 1280FNora(0,2,5)
 1290;
 1300.opcode(&12) ; ORA (n)
 1310FNgetzeroindir(0,1)
 1320FNora(0,2,5)
 1330;
 1340.opcode(&13) ; OSBYTE
 1350FNundoc(&13)
 1360FNfetch(1,2)
 1370;
 1380; ;FNprint(A)
 1390; ;SWI &100+ASC"O"
 1400; CMP A,#19 << 24
 1410; BEQ opcode(&60)
 1420; CMP A,#&81 << 24
 1430; BEQ osbyte81
 1440; CMP A,#&7A << 24
 1450; BEQ generic_osbyte
 1460; CMP A,#&79 << 24
 1470; BEQ generic_osbyte
 1480; CMP A,#&80 << 24
 1490; BEQ osbyte80
 1500; MOV R0,#&200
 1510; ADD R0,R0,#&A
 1520; LDR zpc,[mem,R0]
 1530; MOV zpc,zpc,LSL#16
 1540; FNfetch(0,0)
 1550; .osbyte81
 1560; ;MOVS R0,X,LSR#24
 1570; ;BEQ skip55
 1580; ;FNprint2(0)
 1590; ;SWI "OS_ReadC"
 1600; ;.skip55
 1610; CMP Y,#&80 << 24
 1620; BHS os2
 1630; CMP X,#&20 << 24
 1640; SWIHI "6502_UpdateScreen"
 1650; .os2
 1660; MOV R0,A,LSR#24
 1670; MOV R1,X,LSR#24
 1680; MOV R2,Y,LSR#24
 1690; SWI "OS_Byte"
 1700; CMP Y,#&FF << 24
 1710; BNE os3
 1720; BIC F,F,#%1
 1730; CMP R2,#&FF
 1740; ORREQ F,F,#1
 1750; .os3
 1760; CMP Y,#&80 << 16
 1770; BHS os4
 1780; CMP R2,#0 ; key detected
 1790; CMPEQ R1,#ASC"'"
 1800; MOVEQ R1,#ASC":
 1810; CMP R2,#&FF
 1820; MOVEQ R1,#0
 1830; CMP R1,#&1B
 1840; MOVEQ R2,R1
 1850; ORREQ F,F,#%1
 1860; .os4
 1870; MOV A,R0,LSL#24
 1880; MOV X,R1,LSL#24
 1890; MOV Y,R2,LSL#24
 1900; MOVEQ R0,#&FF
 1910; LDREQB R1,[mem,R0]
 1920; ORR R1,R1,#&80
 1930; STREQB R1,[mem,R0]
 1940; B opcode(&60)
 1950; .generic_osbyte
 1960; MOV R0,A,LSR#24
 1970; MOV R1,X,LSR#24
 1980; MOV R2,Y,LSR#24
 1990; SWI "OS_Byte"
 2000; MOV A,R0,LSL#24
 2010; MOV X,R1,LSL#24
 2020; MOV Y,R2,LSL#24
 2030; B opcode(&60)
 2040; .osbyte80
 2050; MOV X,#0
 2060; B opcode(&60)
 2070
 2080;
 2090.opcode(&14) ; TRB n
 2100FNgetzero(0,1)
 2110FNtrb(0)
 2120STRB R0,[mem,R1] ; zero page STRB
 2130FNfetch(2,5)
 2140;
 2150.opcode(&15) ; ORA n,X
 2160FNgetzeroindex(0,1)
 2170FNora(0,2,4)
 2180;
 2190.opcode(&16) ; ASL n,X
 2200FNgetzeroindex(0,1)
 2210FNasl(0)
 2220STRB R0,[mem,R1,LSR#24] ; zero page STRB
 2230FNfetch(2,6)
 2240;
 2250.opcode(&17) ; ?
 2260FNundoc(&17)
 2270FNfetch(1,2)
 2280;
 2290.opcode(&18) ; CLC
 2300BIC F,F,#%1
 2310FNfetch(1,2)
 2320;
 2330.opcode(&19) ; ORA nn,Y
 2340FNgetabsindex(0,1,Y)
 2350FNora(0,3,4)
 2360;
 2370.opcode(&1A) ; INA
 2380FNinc(A)
 2390FNfetch(1,2)
 2400;
 2410.opcode(&1B) ; ?
 2420FNundoc(&1B)
 2430FNfetch(1,2)
 2440;
 2450.opcode(&1C) ; TRB nn
 2460FNgetabs(0,1)
 2470FNtrb(0)
 2480FNstrb(0,1)
 2490FNfetch(3,6)
 2500;
 2510.opcode(&1D) ; ORA nn,X
 2520FNgetabsindex(0,1,X)
 2530FNora(0,3,4)
 2540;
 2550.opcode(&1E) ; ASL nn,X
 2560FNgetabsindex(0,1,X)
 2570FNasl(0)
 2580FNstrb16(0,1)
 2590FNfetch(3,7)
 2600;
 2610.opcode(&1F) ; ?
 2620FNundoc(&1F)
 2630FNfetch(1,2)
 2640;
 2650.opcode(&20) ; JSR nn
 2660FNgetabs(0,1)
 2670ADD zpc,zpc,#2 << 16
 2680MOV R0,zpc,LSR#24
 2690FNpush(0)
 2700MOV R0,zpc,LSR#16
 2710FNpush(0)
 2720MOV zpc,R1,LSL#16
 2730FNfetch(0,6)
 2740;
 2750.opcode(&21) ; AND (n,X)
 2760FNgetpre(0,1)
 2770FNand(0,2,6)
 2780;
 2790.opcode(&22) ; ?
 2800FNundoc(&22)
 2810FNfetch(1,2)
 2820;
 2830.opcode(&23) ; ?
 2840;MOV R0,#255
 2850;STRB R0,[mem,#lastmode]
 2860BL updatescreen
 2870;BL force_update_pal
 2880;SWI "6502_UpdateScreen"
 2890MOV R0,#229 : MOV R1,#0 : SWI "OS_Byte"
 2900SWI "OS_ReadC"
 2910MOV A,R0,LSL#24
 2920CMP R0,#&1B : ORREQ F,F,#%1
 2930LDREQB R0,[mem,#&FF]
 2940ORREQ R0,R0,#&80
 2950STREQB R0,[mem,#&FF]
 2960MOV R0,#229 : MOV R1,#1 : SWI "OS_Byte"
 2970B opcode(&60)
 2980FNfetch(1,2)
 2990;
 3000.opcode(&24) ; BIT n
 3010FNgetzero(0,1)
 3020FNbit(0,2,3)
 3030;
 3040.opcode(&25) ; AND n
 3050FNgetzero(0,1)
 3060FNand(0,2,3)
 3070;
 3080.opcode(&26) ; ROL n
 3090FNgetzero(0,1)
 3100FNrol(0)
 3110STRB R0,[mem,R1] ; zero page STRB
 3120FNfetch(2,5)
 3130;
 3140.opcode(&27) ; ?
 3150FNundoc(&27)
 3160FNfetch(1,2)
 3170;
 3180.opcode(&28) ; PLP
 3190FNpull(F)
 3200FNfetch(1,4)
 3210;
 3220.opcode(&29) ; AND #N
 3230FNgetbyte1(0)
 3240FNand(0,2,2)
 3250;
 3260.opcode(&2A) ; ROL A
 3270MOV R0,A,LSR#24
 3280FNrol(0)
 3290MOV A,R0,LSL#24
 3300FNfetch(1,2)
 3310;
 3320.opcode(&2B) ; ?
 3330FNundoc(&2B)
 3340FNfetch(1,2)
 3350;
 3360.opcode(&2C) ; BIT nn
 3370FNgetabs(0,1)
 3380FNbit(0,3,4)
 3390;
 3400.opcode(&2D) ; AND nn
 3410FNgetabs(0,1)
 3420FNand(0,3,4)
 3430;
 3440.opcode(&2E) ; ROL nn
 3450FNgetabs(0,1)
 3460FNrol(0)
 3470FNstrb(0,1)
 3480FNfetch(3,6)
 3490;
 3500.opcode(&2F) ; ?
 3510FNundoc(&2F)
 3520FNfetch(1,2)
 3530;
 3540.opcode(&30) ; BMI r
 3550TST F,#%10000000
 3560BEQ branch_fetch
 3570FNbranch
 3580;
 3590.opcode(&31) ; AND (n),Y
 3600FNgetpost(0,1)
 3610FNand(0,2,5)
 3620;
 3630.opcode(&32) ; AND (n)
 3640FNgetzeroindir(0,1)
 3650FNand(0,2,5)
 3660;
 3670.opcode(&33) ; ?
 3680FNundoc(&33)
 3690FNfetch(1,2)
 3700;
 3710.opcode(&34) ; BIT n,X
 3720FNgetzeroindex(0,1)
 3730FNbit(0,2,4)
 3740;
 3750.opcode(&35) ; AND n,X
 3760FNgetzeroindex(0,1)
 3770FNand(0,2,4)
 3780;
 3790.opcode(&36) ; ROL n,X
 3800FNgetzeroindex(0,1)
 3810FNrol(0)
 3820STRB R0,[mem,R1,LSR#24]
 3830FNfetch(2,6)
 3840;
 3850.opcode(&37) ; ?
 3860FNundoc(&37)
 3870FNfetch(1,2)
 3880;
 3890.opcode(&38) ; SEC
 3900ORR F,F,#%1
 3910FNfetch(1,2)
 3920;
 3930.opcode(&39) ; AND nn,Y
 3940FNgetabsindex(0,1,Y)
 3950FNand(0,3,4)
 3960;
 3970.opcode(&3A) ; DEA
 3980FNdec(A)
 3990FNfetch(1,2)
 4000;
 4010.opcode(&3B) ; ?
 4020FNundoc(&3B)
 4030FNfetch(1,2)
 4040;
 4050.opcode(&3C) ; BIT nn,X
 4060FNgetabsindex(0,1,X)
 4070FNbit(0,3,4)
 4080;
 4090.opcode(&3D) ; AND nn,X
 4100FNgetabsindex(0,1,X)
 4110FNand(0,3,4)
 4120;
 4130.opcode(&3E) ; ROL nn,X
 4140FNgetabsindex(0,1,X)
 4150FNrol(0)
 4160FNstrb16(0,1)
 4170FNfetch(3,7)
 4180;
 4190.opcode(&3F) ; ?
 4200FNundoc(&3F)
 4210FNfetch(1,2)
 4220;
 4230.opcode(&40) ; RTI
 4240FNpull(F)
 4250FNpull(1)
 4260FNpull(zpc)
 4270ADD zpc,zpc,R1,LSR#8
 4280BL interrupt
 4290
 4300FNfetch(0,6) ; yes, that should be 0!
 4310;
 4320.opcode(&41) ; EOR (n,X)
 4330FNgetpre(0,1)
 4340FNeor(0,2,6)
 4350;
 4360.opcode(&42) ; ?
 4370FNundoc(&42)
 4380FNfetch(1,2)
 4390;
 4400.opcode(&43) ; ?
 4410FNundoc(&43)
 4420FNfetch(1,2)
 4430;
 4440.opcode(&44) ; ?
 4450FNundoc(&44)
 4460FNfetch(1,2)
 4470;
 4480.opcode(&45) ; EOR n
 4490FNgetzero(0,1)
 4500FNeor(0,2,3)
 4510;
 4520.opcode(&46) ; LSR n
 4530FNgetzero(0,1)
 4540FNlsr(0)
 4550STRB R0,[mem,R1]
 4560FNfetch(2,5)
 4570;
 4580.opcode(&47) ; ?
 4590FNundoc(&47)
 4600FNfetch(1,2)
 4610;
 4620.opcode(&48) ; PHA
 4630FNpush(A)
 4640FNfetch(1,3)
 4650;
 4660.opcode(&49) ; EOR #N
 4670FNgetbyte1(0)
 4680FNeor(0,2,2)
 4690;
 4700.opcode(&4A) ; LSR A
 4710MOVS A,A,LSR#25
 4720MOV A,A,LSL#24
 4730FNsetupNZC
 4740FNfetch(1,2)
 4750;
 4760.opcode(&4B) ; (ASR #N - AND #N, LSR A)
 4770FNgetbyte1(0)      ;
 4780ANDS A,A,R0,LSL#24 ;
 4790;FNsetupNZ         ; FNand
 4800
 4810MOVS A,A,LSR#25    ;
 4820FNsetupC           ;
 4830MOVS A,A,LSL#24    ;
 4840FNsetupNZ          ; LSR A
 4850FNfetch(2,0)
 4860
 4870;SWI &100+ASC"4"
 4880;SWI &100+ASC"B"
 4890;FNfetch(1,2)
 4900;
 4910.opcode(&4C) ; JMP nn
 4920FNgetabs(0,1)
 4930MOV zpc,R1,LSL#16
 4940FNfetch(0,3)
 4950;
 4960.opcode(&4D) ; EOR nn
 4970FNgetabs(0,1)
 4980FNeor(0,3,4)
 4990;
 5000.opcode(&4E) ; LSR nn
 5010FNgetabs(0,1)
 5020FNlsr(0)
 5030FNstrb(0,1)
 5040FNfetch(3,6)
 5050;
 5060.opcode(&4F) ; ?
 5070FNundoc(&4F)
 5080FNfetch(1,2)
 5090;
 5100.opcode(&50) ; BVC r
 5110TST F,#%1000000
 5120BNE branch_fetch
 5130FNbranch
 5140;
 5150.opcode(&51) ; EOR (n),Y
 5160FNgetpost(0,1)
 5170FNeor(0,2,5)
 5180;
 5190.opcode(&52) ; EOR (n)
 5200FNgetzeroindir(0,1)
 5210FNeor(0,2,5)
 5220;
 5230.opcode(&53) ; ?
 5240FNundoc(&53)
 5250FNfetch(1,2)
 5260;
 5270.opcode(&54) ; ?
 5280FNundoc(&54)
 5290FNfetch(1,2)
 5300;
 5310.opcode(&55) ; EOR n,X
 5320FNgetzeroindex(0,1)
 5330FNeor(0,2,4)
 5340;
 5350.opcode(&56) ; LSR n,X
 5360FNgetzeroindex(0,1)
 5370FNlsr(0)
 5380STRB R0,[mem,R1,LSR#24] ; zero page STRB
 5390FNfetch(2,6)
 5400;
 5410.opcode(&57) ; ?
 5420FNundoc(&57)
 5430FNfetch(1,2)
 5440;
 5450.opcode(&58) ; CLI
 5460;B CLI
 5470BIC F,F,#%100
 5480ADD zpc,zpc,#1 << 16
 5490;LDRB R0,keychk
 5500;CMP R0,#0
 5510;BLEQ keyboard
 5520BL keyboard
 5530BL interrupt
 5540FNfetch(0,2)
 5550;
 5560.opcode(&59) ; EOR nn,Y
 5570FNgetabsindex(0,1,Y)
 5580FNeor(0,3,4)
 5590;
 5600.opcode(&5A) ; PHY
 5610FNpush(Y)
 5620FNfetch(1,3)
 5630;
 5640.opcode(&5B) ; ?
 5650FNundoc(&5B)
 5660FNfetch(1,2)
 5670;
 5680.opcode(&5C) ; ?
 5690FNundoc(&5C)
 5700FNfetch(1,2)
 5710;
 5720.opcode(&5D) ; EOR nn,X
 5730FNgetabsindex(0,1,X)
 5740FNeor(0,3,4)
 5750;
 5760.opcode(&5E) ; LSR nn,X
 5770FNgetabsindex(0,1,X)
 5780FNlsr(0)
 5790FNstrb16(0,1)
 5800FNfetch(3,7)
 5810;
 5820.opcode(&5F) ; ?
 5830FNundoc(&5F)
 5840FNfetch(1,2)
 5850;
 5860.opcode(&60) ; RTS
 5870FNpull(1)
 5880FNpull(zpc)
 5890ADD zpc,zpc,R1,LSR#8
 5900FNfetch(1,6) ; yes, that should be 1!
 5910;
 5920.opcode(&61) ; ADC (n,X)
 5930FNgetpre(0,1)
 5940FNadc(0,2,6)
 5950;
 5960.opcode(&62) ; ?
 5970FNundoc(&62)
 5980FNfetch(1,2)
 5990;
 6000.opcode(&63) ; ?
 6010FNundoc(&63)
 6020FNfetch(1,2)
 6030;
 6040.opcode(&64) ; STZ n
 6050FNgetbyte1(0)
 6060MOV R1,#0
 6070STRB R1,[mem,R0] ; zero page STRB
 6080FNfetch(2,3)
 6090;
 6100.opcode(&65) ; ADC n
 6110FNgetzero(0,1)
 6120FNadc(0,2,3)
 6130;
 6140.opcode(&66) ; ROR n
 6150FNgetzero(0,1)
 6160FNror(0)
 6170STRB R0,[mem,R1] ; zero page STRB
 6180FNfetch(2,5)
 6190;
 6200.opcode(&67) ; ?
 6210FNundoc(&67)
 6220FNfetch(1,2)
 6230;
 6240.opcode(&68) ; PLA
 6250FNpull(A)
 6260FNfetch(1,4)
 6270;
 6280.opcode(&69) ; ADC #N
 6290FNgetbyte1(0)
 6300FNadc(0,2,2)
 6310;
 6320.opcode(&6A) ; ROR A
 6330MOV R0,A,LSR#24
 6340FNror(0)
 6350MOV A,R0,LSL#24
 6360FNfetch(1,2)
 6370;
 6380.opcode(&6B) ; ?
 6390FNundoc(&6B)
 6400FNfetch(1,2)
 6410;
 6420.opcode(&6C) ; JMP (nn)
 6430FNgetabs(0,1)
 6440ADD R1,R1,#1
 6450]
 6460
 6470REM JMP (&xxFF) bug
 6480IF NOTmaster OR electron% THEN
 6490[OPTp
 6500TST R1,#&FF
 6510SUBEQ R1,R1,#&100
 6520MOVEQ R1,R1,LSL#16
 6530MOVEQ R1,R1,LSR#16
 6540]
 6550ENDIF
 6560
 6570[OPTp
 6580;LDRB R1,[mem,R1]
 6590MOV R2,#pagetable
 6600LDRB R2,[R2,R1,LSR#12]
 6610LDRB R1,[R1,R2,LSL#12]
 6620
 6630ADD R0,R0,R1,LSL#8
 6640MOV zpc,R0,LSL#16
 6650FNfetch(0,5)
 6660;
 6670.opcode(&6D) ; ADC nn
 6680FNgetabs(0,1)
 6690FNadc(0,3,4)
 6700;
 6710.opcode(&6E) ; ROR nn
 6720FNgetabs(0,1)
 6730FNror(0)
 6740FNstrb(0,1)
 6750FNfetch(3,6)
 6760;
 6770.opcode(&6F) ; ?
 6780FNundoc(&6F)
 6790FNfetch(1,2)
 6800;
 6810.opcode(&70) ; BVS r
 6820TST F,#%1000000
 6830BEQ branch_fetch
 6840FNbranch
 6850;
 6860.opcode(&71) ; ADC (n),Y
 6870FNgetpost(0,1)
 6880FNadc(0,2,5)
 6890;
 6900.opcode(&72) ; ADC (n)
 6910FNgetzeroindir(0,1)
 6920FNadc(0,2,5)
 6930;
 6940.opcode(&73) ; ?
 6950FNundoc(&73)
 6960FNfetch(1,2)
 6970;
 6980.opcode(&74) ; STZ n,X
 6990FNzeroindex(0,1)
 7000MOV R0,#0
 7010STRB R0,[mem,R1,LSR#24]
 7020FNfetch(2,4)
 7030;
 7040.opcode(&75) ; ADC n,X
 7050FNgetzeroindex(0,1)
 7060FNadc(0,2,4)
 7070;
 7080.opcode(&76) ; ROR n,X
 7090FNgetzeroindex(0,1)
 7100FNror(0)
 7110STRB R0,[mem,R1,LSR#24] ; zero page STRB
 7120FNfetch(2,6)
 7130;
 7140.opcode(&77) ; ?
 7150FNundoc(&77)
 7160FNfetch(1,2)
 7170;
 7180.opcode(&78) ; SEI
 7190ORR F,F,#%100
 7200FNfetch(1,2)
 7210;
 7220.opcode(&79) ; ADC nn,Y
 7230FNgetabsindex(0,1,Y)
 7240FNadc(0,3,4)
 7250;
 7260.opcode(&7A) ; PLY
 7270FNpull(Y)
 7280FNfetch(1,4)
 7290;
 7300.opcode(&7B) ; ?
 7310FNundoc(&7B)
 7320FNfetch(1,2)
 7330;
 7340.opcode(&7C) ; JMP (nn,X)
 7350FNabs(0,1)
 7360MOV R0,R1,LSL#16
 7370ADD R0,R0,X,LSR#8
 7380
 7390;LDRB R1,[mem,R0,LSR#16]
 7400MOV R2,#pagetable
 7410LDRB R2,[R2,R0,LSR#28]
 7420MOV R2,R2,LSL#12
 7430LDRB R1,[R2,R0,LSR#16]
 7450
 7460ADD R0,R0,#1 << 16
 7470;LDRB R0,[mem,R0,LSR#16]
 7480MOV R2,#pagetable
 7490LDRB R2,[R2,R0,LSR#28]
 7500MOV R2,R2,LSL#12
 7510LDRB R0,[R2,R0,LSR#16]
 7530
 7540
 7550ADD R0,R1,R0,LSL#8
 7560MOV zpc,R0,LSL#16
 7570FNfetch(0,6)
 7580;
 7590.opcode(&7D) ; ADC nn,X
 7600FNgetabsindex(0,1,X)
 7610FNadc(0,3,4)
 7620;
 7630.opcode(&7E) ; ROR nn,X
 7640FNgetabsindex(0,1,X)
 7650FNror(0)
 7660FNstrb16(0,1)
 7670FNfetch(3,7)
 7680;
 7690.opcode(&7F) ; ?
 7700FNundoc(&7F)
 7710FNfetch(1,2)
 7720;
 7730.opcode(&80) ; BRA r
 7740FNbranch
 7750;
 7760.opcode(&81) ; STA (n,X)
 7770FNpre(0,1)
 7780MOV R0,A,LSR#24
 7790FNstrb(0,1)
 7800FNfetch(2,6)
 7810;
 7820.opcode(&82) ; ?
 7830FNundoc(&82)
 7840FNfetch(1,2)
 7850;
 7860.opcode(&83) ; ?
 7870FNundoc(&83)
 7880FNfetch(1,2)
 7890;
 7900.opcode(&84) ; STY n
 7910FNgetbyte1(1)
 7920MOV R0,Y,LSR#24
 7930STRB R0,[mem,R1] ; zero page STRB
 7940FNfetch(2,3)
 7950;
 7960.opcode(&85) ; STA n
 7970FNgetbyte1(1)
 7980MOV R0,A,LSR#24
 7990STRB R0,[mem,R1] ; zero page STRB
 8000FNfetch(2,3)
 8010;
 8020.opcode(&86) ; STX n
 8030FNgetbyte1(1)
 8040MOV R0,X,LSR#24
 8050STRB R0,[mem,R1] ; zero page STRB
 8060FNfetch(2,3)
 8070;
 8080.opcode(&87) ; (SAX n - store (A AND X) in zero page)
 8090FNgetbyte1(1)
 8100ANDS R0,X,A
 8110FNsetupNZ
 8120MOV R0,R0,LSR#24
 8130STRB R0,[mem,R1] ; zero page STRB
 8140FNfetch(2,0)
 8150;SWI &100+ASC"8"
 8160;SWI &100+ASC"7"
 8170;FNfetch(1,2)
 8180;
 8190.opcode(&88) ; DEY
 8200FNdec(Y)
 8210FNfetch(1,2)
 8220;
 8230.opcode(&89) ; BIT #N
 8240FNgetbyte1(0)
 8250TST R0,A,LSR#24
 8260BIC F,F,#%10 ; N and V unchanged in immediate mode
 8270ORREQ F,F,#%10
 8280.branch_fetch
 8290FNfetch(2,2)
 8300;
 8310.opcode(&8A) ; TXA
 8320MOVS A,X
 8330FNsetupNZ
 8340FNfetch(1,2)
 8350;
 8360.opcode(&8B) ; ?
 8370FNundoc(&8B)
 8380FNfetch(1,2)
 8390;
 8400.opcode(&8C) ; STY nn
 8410FNabs(0,1)
 8420MOV R0,Y,LSR#24
 8430FNstrb(0,1)
 8440FNfetch(3,4)
 8450;
 8460.opcode(&8D) ; STA nn
 8470FNabs(0,1)
 8480MOV R0,A,LSR#24
 8490FNstrb(0,1)
 8500FNfetch(3,4)
 8510;
 8520.opcode(&8E) ; STX nn
 8530FNabs(0,1)
 8540MOV R0,X,LSR#24
 8550FNstrb(0,1)
 8560FNfetch(3,4)
 8570;
 8580.opcode(&8F) ; ?
 8590FNundoc(&8F)
 8600FNfetch(1,2)
 8610;
 8620.opcode(&90) ; BCC r
 8630TST F,#%1
 8640BNE branch_fetch
 8650FNbranch
 8660;
 8670.opcode(&91) ; STA (n),Y
 8680FNpost(0,1)
 8690MOV R0,A,LSR#24
 8700FNstrb16(0,1)
 8710FNfetch(2,6)
 8720;
 8730.opcode(&92) ; STA (n)
 8740FNzeroindir(0,1)
 8750MOV R0,A,LSR#24
 8760FNstrb(0,1)
 8770FNfetch(2,5)
 8780;
 8790.opcode(&93) ; ?
 8800FNundoc(&93)
 8810FNfetch(1,2)
 8820;
 8830.opcode(&94) ; STY n,X
 8840FNgetzeroindex(0,1)
 8850MOV R0,Y,LSR#24
 8860STRB R0,[mem,R1,LSR#24] ; zero page STRB
 8870FNfetch(2,4)
 8880;
 8890.opcode(&95) ; STA n,X
 8900FNzeroindex(0,1)
 8910MOV R0,A,LSR#24
 8920STRB R0,[mem,R1,LSR#24] ; zero page STRB
 8930FNfetch(2,4)
 8940;
 8950.opcode(&96) ; STX n,Y
 8960FNzeroindexY(0,1)
 8970MOV R0,X,LSR#24
 8980STRB R0,[mem,R1,LSR#24] ; zero page STRB
 8990 
 9000FNfetch(2,4)
 9010;
 9020.opcode(&97) ; ?
 9030FNundoc(&97)
 9040FNfetch(1,2)
 9050;
 9060.opcode(&98) ; TYA
 9070MOVS A,Y
 9080FNsetupNZ
 9090FNfetch(1,2)
 9100;
 9110.opcode(&99) ; STA nn,Y
 9120FNabsindex(0,1,Y)
 9130MOV R0,A,LSR#24
 9140FNstrb16(0,1)
 9150FNfetch(3,5)
 9160;
 9170.opcode(&9A) ; TXS
 9180MOVS SP,X ; flags not affected
 9190ORR SP,SP,#1
 9200FNsetupNZ
 9210FNfetch(1,2)
 9220;
 9230.opcode(&9B) ; ?
 9240FNundoc(&9B)
 9250FNfetch(1,2)
 9260;
 9270.opcode(&9C) ; STZ nn
 9280FNabs(0,1)
 9290MOV R0,#0
 9300FNstrb(0,1)
 9310FNfetch(3,4)
 9320;
 9330.opcode(&9D) ; STA nn,X
 9340FNabsindex(0,1,X)
 9350MOV R0,A,LSR#24
 9360FNstrb16(0,1)
 9370FNfetch(3,5)
 9380;
 9390.opcode(&9E) ; STZ nn,X
 9400FNabsindex(0,1,X)
 9410MOV R0,#0
 9420FNstrb16(0,1)
 9430FNfetch(3,5)
 9440;
 9450.opcode(&9F) ; ?
 9460FNundoc(&9F)
 9470FNfetch(1,2)
 9480;
 9490.opcode(&A0) ; LDY #N
 9500FNgetbyte1(0)
 9510FNldy(0,2,2)
 9520;
 9530.opcode(&A1) ; LDA  (n,X)
 9540FNgetpre(0,1)
 9550FNlda(0,2,6)
 9560;
 9570.opcode(&A2) ; LDX #N
 9580FNgetbyte1(0)
 9590FNldx(0,2,2)
 9600;
 9610.opcode(&A3) ; ?
 9620FNundoc(&A3)
 9630FNfetch(1,2)
 9640;
 9650.opcode(&A4) ; LDY n
 9660FNgetzero(0,1)
 9670FNldy(0,2,3)
 9680;
 9690.opcode(&A5) ; LDA n
 9700FNgetzero(0,1)
 9710FNlda(0,2,3)
 9720;
 9730.opcode(&A6) ; LDX n
 9740FNgetzero(0,1)
 9750FNldx(0,2,3)
 9760;
 9770.opcode(&A7) ; ?
 9780FNundoc(&A7)
 9790FNfetch(1,2)
 9800;
 9810.opcode(&A8) ; TAY
 9820MOVS Y,A
 9830FNsetupNZ
 9840FNfetch(1,2)
 9850;
 9860.opcode(&A9) ; LDA #N
 9870FNgetbyte1(0)
 9880FNlda(0,2,2)
 9890;
 9900.opcode(&AA) ; TAX
 9910MOVS X,A
 9920FNsetupNZ
 9930FNfetch(1,2)
 9940;
 9950.opcode(&AB) ; ?
 9960FNundoc(&AB)
 9970FNfetch(1,2)
 9980;
 9990.opcode(&AC) ; LDY nn
10000FNgetabs(0,1)
10010FNldy(0,3,4)
10020;
10030.opcode(&AD) ; LDA nn
10040FNgetabs(0,1)
10050FNlda(0,3,4)
10060;
10070.opcode(&AE) ; LDX nn
10080FNgetabs(0,1)
10090FNldx(0,3,4)
10100;
10110.opcode(&AF) ; ?
10120FNundoc(&AF)
10130FNfetch(1,2)
10140;
10150.opcode(&B0) ; BCS r
10160TST F,#%1
10170BEQ branch_fetch
10180FNbranch
10190;
10200.opcode(&B1) ; LDA (n),Y
10210FNgetpost(0,1)
10220FNlda(0,2,5)
10230;
10240.opcode(&B2) ; LDA (n)
10250FNgetzeroindir(0,1)
10260FNlda(0,2,5)
10270;
10280.opcode(&B3) ; ?
10290FNundoc(&B3)
10300FNfetch(1,2)
10310;
10320.opcode(&B4) ; LDY n,X
10330FNgetzeroindex(0,1)
10340FNldy(0,2,4)
10350;
10360.opcode(&B5) ; LDA n,X
10370FNgetzeroindex(0,1)
10380FNlda(0,2,4)
10390;
10400.opcode(&B6) ; LDX n,Y
10410FNgetzeroindexY(0,1)
10420FNldx(0,2,4)
10430;
10440.opcode(&B7) ; ?
10450FNundoc(&B7)
10460FNfetch(1,2)
10470;
10480.opcode(&B8) ; CLV
10490BIC F,F,#%1000000
10500FNfetch(1,2)
10510;
10520.opcode(&B9) ; LDA nn,Y
10530FNgetabsindex(0,1,Y)
10540FNlda(0,3,4)
10550;
10560.opcode(&BA) ; TSX
10570ANDS X,SP,#&FF000000
10580FNsetupNZ
10590FNfetch(1,2)
10600;
10610.opcode(&BB) ; ?
10620FNundoc(&BB)
10630FNfetch(1,2)
10640;
10650.opcode(&BC) ; LDY nn,X
10660FNgetabsindex(0,1,X)
10670FNldy(0,3,4)
10680;
10690.opcode(&BD) ; LDA nn,X
10700FNgetabsindex(0,1,X)
10710FNlda(0,3,4)
10720;
10730.opcode(&BE) ; LDX nn,Y
10740FNgetabsindex(0,1,Y)
10750FNldx(0,3,4)
10760;
10770.opcode(&BF) ; ?
10780FNundoc(&BF)
10790FNfetch(1,2)
10800;
10810.opcode(&C0) ; CPY #N
10820FNgetbyte1(0)
10830FNcpy(0,2,2)
10840;
10850.opcode(&C1) ; CMP (n,X)
10860FNgetpre(0,1)
10870FNcmp(0,2,6)
10880;
10890.opcode(&C2) ; ?
10900FNundoc(&C2)
10910FNfetch(1,2)
10920;
10930.opcode(&C3) ; ?
10940FNundoc(&C3)
10950FNfetch(1,2)
10960;
10970.opcode(&C4) ; CPY n
10980FNgetzero(0,1)
10990FNcpy(0,2,3)
11000;
11010.opcode(&C5) ; CMP n
11020FNgetzero(0,1)
11030FNcmp(0,2,3)
11040;
11050.opcode(&C6) ; DEC n
11060FNgetzero(0,1)
11070FNdec(0)
11080STRB R0,[mem,R1] ; zero page STRB
11090FNfetch(2,5)
11100;
11110.opcode(&C7) ; ?
11120FNundoc(&C7)
11130FNfetch(1,2)
11140;
11150.opcode(&C8) ; INY
11160FNinc(Y)
11170FNfetch(1,2)
11180;
11190.opcode(&C9) ; CMP #N
11200FNgetbyte1(0)
11210FNcmp(0,2,2)
11220;
11230.opcode(&CA) ; DEX
11240FNdec(X)
11250FNfetch(1,2)
11260;
11270.opcode(&CB) ; ?
11280FNundoc(&CB)
11290FNfetch(1,2)
11300;
11310.opcode(&CC) ; CPY nn
11320FNgetabs(0,1)
11330FNcpy(0,3,4)
11340;
11350.opcode(&CD) ; CMP nn
11360FNgetabs(0,1)
11370FNcmp(0,3,4)
11380;
11390.opcode(&CE) ; DEC nn
11400FNgetabs(0,1)
11410FNdec(0)
11420FNstrb(0,1)
11430FNfetch(3,6)
11440;
11450.opcode(&CF) ; ?
11460FNundoc(&CF)
11470FNfetch(1,2)
11480;
11490.opcode(&D0) ; BNE r
11500TST F,#%10
11510BNE branch_fetch
11520FNbranch
11530;
11540.opcode(&D1) ; CMP (n),Y
11550FNgetpost(0,1)
11560FNcmp(0,2,5)
11570;
11580.opcode(&D2) ; CMP (n)
11590FNgetzeroindir(0,1)
11600FNcmp(0,2,5)
11610;
11620.opcode(&D3) ; ?
11630FNundoc(&D3)
11640FNfetch(1,2)
11650;
11660.opcode(&D4) ; ?
11670FNundoc(&D4)
11680FNfetch(1,2)
11690;
11700.opcode(&D5) ; CMP n,X
11710FNgetzeroindex(0,1)
11720FNcmp(0,2,4)
11730;
11740.opcode(&D6) ; DEC n,X
11750FNgetzeroindex(0,1)
11760FNdec(0)
11770STRB R0,[mem,R1,LSR#24]
11780FNfetch(2,6)
11790;
11800.opcode(&D7) ; ?
11810FNundoc(&D7)
11820FNfetch(1,2)
11830;
11840.opcode(&D8) ; CLD
11850TST F,#%1000
11860SUBNE table,table,#256*64*4
11870BICNE F,F,#%1000
11880;ADR table,opcodetable
11890FNfetch(1,2)
11900;
11910.opcode(&D9) ; CMP nn,Y
11920FNgetabsindex(0,1,Y)
11930FNcmp(0,3,4)
11940;
11950.opcode(&DA) ; PHX
11960FNpush(X)
11970FNfetch(1,3)
11980;
11990.opcode(&DB) ; ?
12000FNundoc(&DB)
12010FNfetch(1,2)
12020;
12030.opcode(&DC) ; (NOP nn,X)
12040;SWI &100+ASC"D"
12050;SWI &100+ASC"C"
12060 
12070FNfetch(3,0)
12080;
12090.opcode(&DD) ; CMP nn,X
12100FNgetabsindex(0,1,X)
12110FNcmp(0,3,4)
12120;
12130.opcode(&DE) ; DEC nn,X
12140FNgetabsindex(0,1,X)
12150FNdec(0)
12160FNstrb16(0,1)
12170FNfetch(3,7)
12180;
12190.opcode(&DF) ; ?
12200FNundoc(&DF)
12210FNfetch(1,2)
12220;
12230.opcode(&E0) ; CPX #N
12240FNgetbyte1(0)
12250FNcpx(0,2,2)
12260;
12270.opcode(&E1) ; SBC (n,X)
12280FNgetpre(0,1)
12290FNsbc(0,2,6)
12300;
12310.opcode(&E2) ; ?
12320FNundoc(&E2)
12330FNfetch(1,2)
12340;
12350.opcode(&E3) ; ?
12360FNundoc(&E3)
12370FNfetch(1,2)
12380;
12390.opcode(&E4) ; CPX n
12400FNgetzero(0,1)
12410FNcpx(0,2,3)
12420;
12430.opcode(&E5) ; SBC n
12440FNgetzero(0,1)
12450FNsbc(0,2,3)
12460;
12470.opcode(&E6) ; INC n
12480FNgetzero(0,1)
12490FNinc(0)
12500STRB R0,[mem,R1] ; zero page STRB
12510FNfetch(2,5)
12520;
12530.opcode(&E7) ; ?
12540FNundoc(&E7)
12550FNfetch(1,2)
12560;
12570.opcode(&E8) ; INX
12580FNinc(X)
12590FNfetch(1,2)
12600;
12610.opcode(&E9) ; SBC #N
12620FNgetbyte1(0)
12630FNsbc(0,2,2)
12640;
12650.opcode(&EA) ; NOP
12660 
12670FNfetch(1,2)
12680;
12690.opcode(&EB) ; ?
12700FNundoc(&EB)
12710FNfetch(1,2)
12720;
12730.opcode(&EC) ; CPX nn
12740FNgetabs(0,1)
12750FNcpx(0,3,4)
12760;
12770.opcode(&ED) ; SBC nn
12780FNgetabs(0,1)
12790FNsbc(0,3,4)
12800;
12810.opcode(&EE) ; INC nn
12820FNgetabs(0,1)
12830FNinc(0)
12840FNstrb(0,1)
12850FNfetch(3,6)
12860;
12870.opcode(&EF) ; ?
12880FNundoc(&EF)
12890FNfetch(1,2)
12900;
12910.opcode(&F0) ; BEQ r
12920TST F,#%10
12930BEQ branch_fetch
12940FNbranch
12950;
12960.opcode(&F1) ; SBC (n),Y
12970FNgetpost(0,1)
12980FNsbc(0,2,5)
12990;
13000.opcode(&F2) ; SBC (n)
13010FNgetzeroindir(0,1)
13020FNsbc(0,2,5)
13030;
13040.opcode(&F3) ; ?
13050FNundoc(&F3)
13060FNfetch(1,2)
13070;
13080.opcode(&F4) ; ?
13090FNundoc(&F4)
13100FNfetch(1,2)
13110;
13120.opcode(&F5) ; SBC n,X
13130FNgetzeroindex(0,1)
13140FNsbc(0,2,4)
13150;
13160.opcode(&F6) ; INC n,X
13170FNgetzeroindex(0,1)
13180FNinc(0)
13190STRB R0,[mem,R1,LSR#24] ; zero page STRB
13200FNfetch(2,6)
13210;
13220.opcode(&F7) ; ?
13230FNundoc(&F7)
13240FNfetch(1,2)
13250;
13260.opcode(&F8) ; SED
13270TST F,#%1000
13280ADDEQ table,table,#256*64*4
13290ORREQ F,F,#%1000
13300;ADR table,bcdtable
13310FNfetch(1,2)
13320;
13330.opcode(&F9) ; SBC nn,Y
13340FNgetabsindex(0,1,Y)
13350FNsbc(0,3,4)
13360;
13370.opcode(&FA) ; PLX
13380FNpull(X)
13390FNfetch(1,4)
13400;
13410.opcode(&FB) ; ?
13420FNundoc(&FB)
13430FNfetch(1,2)
13440;
13450.opcode(&FC) ; ?
13460FNundoc(&FC)
13470FNfetch(1,2)
13480;
13490.opcode(&FD) ; SBC nn,X
13500FNgetabsindex(0,1,X)
13510FNsbc(0,3,4)
13520;
13530.opcode(&FE) ; INC nn,X
13540FNgetabsindex(0,1,X)
13550FNinc(0)
13560FNstrb16(0,1)
13570FNfetch(3,7)
13580;
13590.opcode(&FF) ; ?
13600FNundoc(&FF)
13610FNfetch(1,2)
13620;
13630]
13640NEXT bcd_loop%
13650
13660REMFOR I%=code+0 TO code+255*4*64 STEP 4
13670REMbcd(0)!I%=opcode(0)!I%
13680REMNEXT
13690P%=bcd(0)
13700O%=P%+code
13710[OPTp
13720FNbcd(&61)
13730.bcd(&61) ; ADC (n,X)
13740FNgetpre(0,1)
13750FNadcBCD(0,2,6)
13760
13770FNbcd(&65)
13780.bcd(&65) ; ADC n
13790FNgetzero(0,1)
13800FNadcBCD(0,2,3)
13810
13820FNbcd(&69)
13830.bcd(&69) ; ADC #N
13840FNgetbyte1(0)
13850FNadcBCD(0,2,2)
13860
13870FNbcd(&6D)
13880.bcd(&6D) ; ADC nn
13890FNgetabs(0,1)
13900FNadcBCD(0,3,4)
13910
13920FNbcd(&71)
13930.bcd(&71) ; ADC (n),Y
13940FNgetpost(0,1)
13950FNadcBCD(0,2,5)
13960
13970FNbcd(&72)
13980.bcd(&72) ; ADC (n)
13990FNgetzeroindir(0,1)
14000FNadcBCD(0,2,5)
14010
14020FNbcd(&75)
14030.bcd(&75) ; ADC n,X
14040FNgetzeroindex(0,1)
14050FNadcBCD(0,2,4)
14060
14070FNbcd(&79)
14080.bcd(&79) ; ADC nn,Y
14090FNgetabsindex(0,1,Y)
14100FNadcBCD(0,3,4)
14110
14120FNbcd(&7D)
14130.bcd(&7D) ; ADC nn,X
14140FNgetabsindex(0,1,X)
14150FNadcBCD(0,3,4)
14160
14170FNbcd(&E1)
14180.bcd(&E1) ; SBC (n,X)
14190FNgetpre(0,1)
14200FNsbcBCD(0,2,6)
14210
14220FNbcd(&E5)
14230.bcd(&E5) ; SBC n
14240FNgetzero(0,1)
14250FNsbcBCD(0,2,3)
14260FNbcd(&E6)
14270
14280FNbcd(&E9)
14290.bcd(&E9) ; SBC #N
14300FNgetbyte1(0)
14310FNsbcBCD(0,2,2)
14320
14330FNbcd(&ED)
14340.bcd(&ED) ; SBC nn
14350FNgetabs(0,1)
14360FNsbcBCD(0,3,4)
14370
14380FNbcd(&F1)
14390.bcd(&F1) ; SBC (n),Y
14400FNgetpost(0,1)
14410FNsbcBCD(0,2,5)
14420
14430FNbcd(&F2)
14440.bcd(&F2) ; SBC (n)
14450FNgetzeroindir(0,1)
14460FNsbcBCD(0,2,5)
14470
14480FNbcd(&F5)
14490.bcd(&F5) ; SBC n,X
14500FNgetzeroindex(0,1)
14510FNsbcBCD(0,2,4)
14520
14530FNbcd(&F9)
14540.bcd(&F9) ; SBC nn,Y
14550FNgetabsindex(0,1,Y)
14560FNsbcBCD(0,3,4)
14570
14580FNbcd(&FD)
14590.bcd(&FD) ; SBC nn,X
14600FNgetabsindex(0,1,X)
14610FNsbcBCD(0,3,4)
14620
14630FNbcd(&100)
14640]
14650
14660=""
14670
14680DEFFNbranch
14690[OPTp
14700MOV R12,zpc,LSR#24
14710FNgetbyte1(0)
14720ADD zpc,zpc,R0,LSL#16
14730CMP R0,#&80
14740SUBGE zpc,zpc,#254 << 16
14750ADDLT zpc,zpc,#2 << 16
14760CMP R12,zpc,LSR#24
14770SUBEQ time,time,#1 ; page boundary not crossed
14780SUBNE time,time,#2 ; page boundary crossed
14790FNfetch(0,2)
14800]
14810=""
14820
14830DEFFNtrb(R)
14840[OPTp
14850TST R,A,LSR#24
14860FNsetupZ
14870BIC R,R,A,LSR#24
14880]
14890=""
14900
14910DEFFNtsb(R)
14920[OPTp
14930TST R,A,LSR#24
14940FNsetupZ
14950ORR R,R,A,LSR#24
14960]
14970=""
14980
14990DEFFNasl(R)
15000[OPTp
15010MOVS R,R,LSL#25
15020MOV R,R,LSR#24
15030FNsetupNZC
15040]
15050=""
15060
15070DEFFNlsr(R)
15080[OPTp
15090BIC F,F,#%10000011
15100MOVS R,R,LSR#1
15110ORRCS F,F,#%1
15120MOVS R2,R,LSL#24
15130ORRMI F,F,#%10000000
15140ORREQ F,F,#%10
15150]
15160=""
15170
15180DEFFNrol(R)
15190IF R=1 STOP
15200[OPTp
15210;MOVS R2,F,RRX ; MOVE 6502 CARRY INTO ARM CARRY
15220AND R2,F,#%1
15230BIC F,F,#%10000011
15240MOVS R,R,LSL#24
15250ORR R,R,R2,LSL#23
15260MOVS R,R,LSL#1
15270MOV R,R,LSR#24
15280FNsetupNZC
15290]
15300=""
15310
15320DEFFNror(R)
15330IF R=1 STOP
15340[OPTp
15350MOVS R2,F,RRX ; MOVE 6502 CARRY INTO ARM CARRY
15360BIC F,F,#%10000011
15370ORRCS F,F,#%10000000 ; N -> what C was
15380ADD R,R,R,LSL#24
15390MOVS R,R,RRX
15400ORRCS F,F,#%1
15410MOVS R,R,LSR#24
15420ORREQ F,F,#%10
15430]
15440=""
15450
15460
15470DEFFNcmp(R,F%,T%)
15480[OPTp
15490SUBS R0,A,R,LSL#24
15500FNsetupNZC
15510FNfetch(F%,T%)
15520]
15530=""
15540
15550DEFFNcpx(R,F%,T%)
15560[OPTp
15570SUBS R0,X,R,LSL#24
15580FNsetupNZC
15590FNfetch(F%,T%)
15600]
15610=""
15620
15630DEFFNcpy(R,F%,T%)
15640[OPTp
15650SUBS R0,Y,R,LSL#24
15660FNsetupNZC
15670FNfetch(F%,T%)
15680]
15690=""
15700
15710REMDEFFNadc(R,F%,T%)
15720[OPTp
15730MOVS R2,F,RRX ; MOVE 6502 CARRY INTO ARM CARRY
15740MVN R2,#0 ; R2=-1
15750BIC R2,R2,#&FF << 24
15760ADD R2,R2,A
15770ADCS R2,R2,R,LSL#24
15780ANDS A,R2,#&FF << 24 ; only affects Z,N!
15790FNsetupCZVN
15800FNfetch(F%,T%)
15810]
15820=""
15830
15840DEFFNadc(R,F%,T%)
15850[OPTp
15860AND R2,F,#%1
15870ADD R2,R2,R
15880ADDS A,A,R2,LSL#24
15890FNsetupCZVN
15900CMP R2,#&100 : ORREQ F,F,#%1
15910FNfetch(F%,T%)
15920]
15930=""
15940
15950DEFFNadcBCD(R,F%,T%)
15960[OPTp
15970MOVS R2,F,RRX ; MOVE 6502 CARRY INTO ARM CARRY
15980AND R2,A,#&0F << 24
15990AND R13,R,#&F
16000;ADDCS R2,R2,#1 << 24
16010ADC R13,R13,R2,LSR#24
16020CMP R13,#&A
16030ADDGE R13,R13,#&06
16040
16050CMP R13,#&20
16060SUBGE R13,R13,#&10
16070
16080MOV R,R,LSR#4
16090ADD R,R,A,LSR#28
16100ADD A,R13,R,LSL#4
16110CMP A,#&A0
16120ADDGE A,A,#&60
16130ANDS R2,A,#&300
16140ORRNE F,F,#%1
16150BICEQ F,F,#%1
16160MOVS A,A,LSL#24
16170FNsetupNZ ; Master elite needs N flag?
16180FNfetch3(F%,T%)
16190]
16200=""
16210
16220DEFFNsbcBCD(R,F%,T%)
16230[OPTp
16240
16250MOVS R2,F,RRX ; MOVE 6502 CARRY INTO ARM CARRY
16260AND R2,A,#&0F << 24
16270AND R13,R,#&F
16280RSCS R13,R13,R2,LSR#24
16290SUBCC R13,R13,#6
16300AND R13,R13,#&F
16310MOV R,R,LSR#4
16320RSCS R,R,A,LSR#28
16330SUBCC R,R,#6
16340FNsetupC
16350
16360AND R,R,#&F
16370ADD A,R13,R,LSL#4
16380MOVS A,A,LSL#24
16390FNsetupNZ
16400FNfetch3(F%,T%)
16410]
16420=""
16430
16440DEFFNsbc(R,F%,T%)
16450[OPTp
16460MOVS R2,F,RRX ; MOVE 6502 CARRY INTO ARM CARRY
16470SBCS A,A,R,LSL#24
16480FNsetupCZVN
16490ANDS A,A,#&FF << 24
16500BICNE F,F,#%10
16510ORREQ F,F,#%10 ; FNsetupZ
16520FNfetch(F%,T%)
16530]
16540=""
16550
16560
16570MOVS R2,F,RRX ; MOVE 6502 CARRY INTO ARM CARRY
16580MOV A,A,ASR#24
16590MOV R,R,LSL#24
16600MOV R,R,ASR#24
16610EOR R,R,#&FF << 24
16620EOR R,R,#&FF << 16
16630EOR R,R,#&FF << 8
16640EOR A,A,#&FF << 24
16650EOR A,A,#&FF << 16
16660EOR A,A,#&FF << 8
16670SBCS A,A,R
16680MOV A,A,LSL#24
16690FNsetupCZVN
16700FNfetch(F%,T%)
16710]
16720=""
16730
16740DEFFNbit(R,F%,T%)
16750[OPTp
16760AND R2,R,#%11000000
16770ANDS R,R,A,LSR#24
16780BIC F,F,#%11000010
16790ADD F,F,R2
16800ORREQ F,F,#%10
16810FNfetch(F%,T%)
16820]
16830=""
16840
16850DEFFNeor(R,F%,T%)
16860[OPTp
16870EORS A,A,R,LSL#24
16880FNsetupNZ
16890FNfetch(F%,T%)
16900]
16910=""
16920
16930DEFFNand(R,F%,T%)
16940[OPTp
16950ANDS A,A,R,LSL#24
16960FNsetupNZ
16970FNfetch(F%,T%)
16980]
16990=""
17000
17010DEFFNora(R,F%,T%)
17020[OPTp
17030ORRS A,A,R,LSL#24
17040FNsetupNZ
17050FNfetch(F%,T%)
17060]
17070=""
17080
17090DEFFNlda(R,F%,T%)
17100[OPTp
17110MOVS A,R,LSL#24
17120FNsetupNZ
17130FNfetch(F%,T%)
17140]
17150=""
17160
17170DEFFNldx(R,F%,T%)
17180[OPTp
17190MOVS X,R,LSL#24
17200FNsetupNZ
17210FNfetch(F%,T%)
17220]
17230=""
17240
17250DEFFNldy(R,F%,T%)
17260[OPTp
17270MOVS Y,R,LSL#24
17280FNsetupNZ
17290FNfetch(F%,T%)
17300]
17310=""
17320
17330DEFFNinc(R)
17340IF R=X OR R=Y OR R=A THEN
17350[OPTp
17360ADDS R,R,#1 << 24
17370]
17380ELSE
17390[OPTp
17400ADD R,R,#1
17410MOVS R2,R,LSL#24
17420]
17430ENDIF
17440[OPTp
17450FNsetupNZ
17460]
17470=""
17480
17490DEFFNdec(R)
17500IF R=X OR R=Y OR R=A THEN
17510[OPTp
17520SUBS R,R,#1 << 24
17530]
17540ELSE
17550[OPTp
17560SUB R,R,#1
17570MOVS R2,R,LSL#24
17580]
17590ENDIF
17600[OPTp
17610FNsetupNZ
17620]
17630=""
17640
17650DEFFNsetupNZ
17660[OPTp
17670BIC F,F,#%10000010
17680ORREQ F,F,#%10
17690ORRMI F,F,#%10000000
17700]
17710=""
17720
17730DEFFNsetupZ
17740[OPTp
17750BIC F,F,#%10
17760ORREQ F,F,#%10
17770]
17780=""
17790
17800DEFFNsetupC
17810[OPTp
17820BIC F,F,#%1
17830ORRCS F,F,#%1
17840]
17850=""
17860
17870DEFFNsetupNZC
17880[OPTp
17890BIC F,F,#%10000011
17900ORRCS F,F,#%1
17910ORREQ F,F,#%10
17920ORRMI F,F,#%10000000
17930]
17940=""
17950
17960DEFFNsetupCZVN
17970[OPTp
17980BIC F,F,#%11000011
17990ORRCS F,F,#%1
18000ORREQ F,F,#%10
18010ORRVS F,F,#%1000000
18020ORRMI F,F,#%10000000
18030]
18040=""
18050
18060DEFFNsetupCzVN
18070[OPTp
18080BIC F,F,#%11000011
18090ORRCS F,F,#%1
18100ORRVS F,F,#%1000000
18110ORRMI F,F,#%10000000
18120]
18130=""
18140
18150DEFFNgetpre(R,S)
18160[OPTp
18170FNpre(R,S)
18180;LDRB R,[mem,R]
18190FNldrb2(R,S)
18200]
18210=""
18220
18230DEFFNpre(R,S)
18240[OPTp
18250FNgetbyte1(R)
18260ADD R,X,R,LSL#24
18270LDRB S,[mem,R,LSR#24] ; zero page LDRB
18280ADD R,R,#1 << 24
18290LDRB R,[mem,R,LSR#24] ; zero page LDRB
18300ADD S,S,R,LSL#8
18310]
18320=""
18330
18340DEFFNgetzero(R,S)
18350[OPTp
18360FNgetbyte1(S)
18370LDRB R,[mem,S] ; zero page LDRB
18380]
18390=""
18400
18410DEFFNgetabs(R,S)
18420[OPTp
18430FNabs(R,S)
18440;LDRB R,[mem,S]
18450FNldrb2(R,S)
18460]
18470=""
18480
18490DEFFNabs(R,S)
18500[OPTp
18510FNgetbyte2(R,S)
18520ADD S,R,S,LSL#8
18530;FNstrb
18540]
18550=""
18560
18570DEFFNgetpost(R,S)
18580[OPTp
18590FNpost(R,S)
18600;LDRB R,[mem,R,LSR#16]
18610FNldrb16(R,S)
18620]
18630=""
18640
18650DEFFNpost(R,S)
18660[OPTp
18670FNgetbyte1(R)
18680MOV R,R,LSL#24
18690LDRB S,[mem,R,LSR#24] ; zero page LDRB
18700ADD R,R,#1 << 24
18710LDRB R,[mem,R,LSR#24] ; zero page LDRB
18720ADD R,S,R,LSL#8
18730MOV R,R,LSL#16
18740ADD S,R,Y,LSR#8
18750;FNstrb16
18760]
18770=""
18780
18790DEFFNgetzeroindir(R,S)
18800[OPTp
18810FNzeroindir(R,S)
18820;LDRB R,[mem,S]
18830FNldrb2(R,S)
18840]
18850=""
18860
18870DEFFNzeroindir(R,S)
18880[OPTp
18890FNgetbyte1(R)
18900MOV R,R,LSL#24
18910LDRB S,[mem,R,LSR#24] ; zero page LDRB
18920ADD R,R,#1 << 24
18930LDRB R,[mem,R,LSR#24] ; zero page LDRB
18940ADD S,S,R,LSL#8
18950]
18960=""
18970
18980DEFFNgetabsindex(R,S,T) REM T=X or Y
18990[OPTp
19000FNabsindex(R,S,T)
19010;LDRB R,[mem,S,LSR#16]
19020FNldrb16(R,S)
19030]
19040=""
19050
19060DEFFNabsindex(R,S,T) REM T=X or Y
19070[OPTp
19080FNgetbyte2(R,S)
19090ADD R,R,S,LSL#8
19100MOV R,R,LSL#16
19110ADD S,R,T,LSR#8
19120]
19130=""
19140
19150DEFFNgetzeroindex(R,S)
19160[OPTp
19170FNzeroindex(R,S)
19180LDRB R,[mem,S,LSR#24] ; zero page LDRB
19190]
19200=""
19210
19220DEFFNzeroindex(R,S)
19230[OPTp
19240FNgetbyte1(R)
19250ADD S,X,R,LSL#24
19260]
19270=""
19280
19290DEFFNgetzeroindexY(R,S)
19300[OPTp
19310FNzeroindexY(R,S)
19320LDRB R,[mem,S,LSR#24] ; zero page LDRB
19330]
19340=""
19350
19360DEFFNzeroindexY(R,S)
19370[OPTp
19380FNgetbyte1(R)
19390ADD S,Y,R,LSL#24
19400]
19410=""
19420
19430DEFFNgetbyte1(R)
19440[OPTp
19450ADD R,zpc,#1 << 16
19460;LDRB R,[mem,R,LSR#16] ; instruction fetch
19470MOV R2,#pagetable
19480LDRB R2,[R2,R,LSR#28]
19490MOV R2,R2,LSL#12
19500LDRB R,[R2,R,LSR#16]
19510]
19520=""
19530
19540DEFFNXXgetbyte2(R,S)
19550[OPTp
19560ADD S,mem,zpc,LSR#16
19570LDRB R,[S,#1]
19580LDRB S,[S,#2] ; instruction fetches
19590]
19600=""
19610
19620DEFFNgetbyte2(R,S)
19630[OPTp
19640;ADD S,mem,zpc,LSR#16
19650;LDRB R,[S,#1]
19660;LDRB S,[S,#2] ; instruction fetches
19670ADD R,zpc,#1 << 16
19680MOV R2,#pagetable
19690LDRB S,[R2,R,LSR#28]
19700MOV S,S,LSL#12
19710LDRB R,[S,R,LSR#16]
19720ADD S,zpc,#2 << 16
19730;MOV R2,#pagetable
19740LDRB R2,[R2,S,LSR#28]
19750MOV R2,R2,LSL#12
19760LDRB S,[R2,S,LSR#16]
19770
19780]
19790=""
19800
19810DEFFNpull(R)
19820CASE R OF
19830WHEN F
19840[OPTp
19850ADD SP,SP,#1 << 24
19860LDRB R1,[mem,SP,ROR#24]
19870BIC F,F,#&FF
19880ORR F,F,R1
19890BL reset_bcdflag
19900]
19910WHEN A,X,Y
19920[OPTp
19930ADD SP,SP,#1 << 24
19940LDRB R0,[mem,SP,ROR#24]
19950MOVS R,R0,LSL#24
19960FNsetupNZ
19970]
19980OTHERWISE
19990[OPTp
20000ADD SP,SP,#1 << 24
20010LDRB R0,[mem,SP,ROR#24]
20020MOV R,R0,LSL#24
20030]
20040ENDCASE
20050=""
20060
20070DEFFNpush(R)
20080IF R=F OR R=0 OR R=1 THEN
20090[OPTp
20100STRB R,[mem,SP,ROR#24]
20110SUB SP,SP,#1 << 24
20120]
20130ELSE
20140[OPTp
20150MOV R0,R,LSR#24
20160STRB R0,[mem,SP,ROR#24]
20170SUB SP,SP,#1 << 24
20180]
20190ENDIF
20200=""
20210

� > Opcodes


ݤopcodes
(
2� bcd_loop%=0 � 1
<
opcode%=0
F9� bcd_loop%=0 � [OPTp:.opcode(&0):] � [OPTp:.bcd(0):]
P
Z	[OPTp
d
n;.opcode(&0) ; BRK
xADD zpc,zpc,#2 << 16
�MOV R0,zpc,LSR#24
��push(0)
�MOV R0,zpc,LSR#16
��push(0)
�!�R F,F,#%10000 ; set BRK flag
��push(F)
��R F,F,#%00100 ; set I flag
�8BIC F,F,#%10000 ; clear BRK flag..... seems to work!
�!MOV R0,#&10000 : SUB R0,R0,#2
�LDRB zpc,[mem,R0]
�ADD R0,R0,#1
�LDRB R0,[mem,R0]
�ADD zpc,zpc,R0,LSL#8
MOV zpc,zpc,LSL#16
�fetch(0,7)
;
".opcode(&1) ; �A (n,X)
,�getpre(0,1)
6�ora(0,2,6)
@;
J.opcode(&2) ; ?
T;�print(zpc)
^;MOV R0,#66
h;B raw_exit
r�undoc(&2)
|�fetch(1,2)
�;
�.opcode(&3) ; ?
�&;ADDS R0,zpc,#(&10000-&FFF4) << 16
�;CMPEQ A,#&81 << 24
�ADD R0,zpc,#1 << 16
�;LDRB R0,[mem,R0,LSR#16]
�MOV R2,#pagetable
�LDRB R2,[R2,R0,LSR#28]
�MOV R2,R2,LSL#12
�LDRB R0,[R2,R0,LSR#16]
�
CMP R0,#3
�BEQ osbput
�
CMP R0,#4
�BEQ osbget
�
MOV R0,#3
�B raw_exit
��fetch(1,2)
;
.opcode(&4) ; TSB n
�getzero(0,1)
&�tsb(0)
0%STRB R0,[mem,R1] ; zero page STRB
:�fetch(2,5)
D;
N.opcode(&5) ; �A n
X�getzero(0,1)
b�ora(0,2,3)
l;
v.opcode(&6) ; ASL n
��getzero(0,1)
��asl(0)
�%STRB R0,[mem,R1] ; zero page STRB
��fetch(2,5)
�;
�'.opcode(&7) ; (SLO n - ASL n, �A n)
�CMP zpc,#&8000 << 16
�;BHS opcode7
�MOVHS R0,#7
�BHS raw_exit
��getzero(0,1)
��asl(0)
��RS A,A,R0,LSL#24 ; �A zp
STRB R0,[mem,R1]
�fetch(2,0)
;
 .opcode(&8) ; PHP
*�push(F)
4�fetch(1,3)
>;
H.opcode(&9) ; �A #N
R�getbyte1(0)
\�ora(0,2,2)
f;
p.opcode(&A) ; ASL A
zMOVS A,A,LSL#1
�
�setupNZC
��fetch(1,2)
�;
�/.opcode(&B) ; ANC (undocumented - Repton 2)
�            ; � #N, ASL A
��getbyte1(0)
�� R0,A,R0,LSL#24
�MOVS A,A,LSL#1
�
�setupNZC
��fetch(2,2)
�;
�.opcode(&C) ; TSB nn
��getabs(0,1)
�tsb(0)
�strb(0,1)
�fetch(3,6)
$;
..opcode(&D) ; �A nn
8�getabs(0,1)
B�ora(0,3,4)
L;
V.opcode(&E) ; ASL nn
`�getabs(0,1)
j�asl(0)
t�strb(0,1)
~�fetch(3,6)
�;
�.opcode(&F) ; ?
��undoc(&F)
��fetch(1,2)
�;
�.opcode(&10) ; BPL r
�TST F,#%10000000
�BNE branch_fetch
��branch
�;
�.opcode(&11) ; �A (n),Y
��getpost(0,1)
�ora(0,2,5)

;
.opcode(&12) ; �A (n)
�getzeroindir(0,1)
(�ora(0,2,5)
2;
<.opcode(&13) ; OSBYTE
F�undoc(&13)
P�fetch(1,2)
Z;
d; ;�print(A)
n; ;SWI &100+�"O"
x; CMP A,#19 << 24
�; BEQ opcode(&60)
�; CMP A,#&81 << 24
�; BEQ osbyte81
�; CMP A,#&7A << 24
�; BEQ generic_osbyte
�; CMP A,#&79 << 24
�; BEQ generic_osbyte
�; CMP A,#&80 << 24
�; BEQ osbyte80
�; MOV R0,#&200
�; ADD R0,R0,#&A
�; LDR zpc,[mem,R0]
�; MOV zpc,zpc,LSL#16
; �fetch(0,0)
; .osbyte81
; ;MOVS R0,X,LSR#24
"; ;BEQ skip55
,; ;�print2(0)
6; ;SWI "OS_ReadC"
@; ;.skip55
J; CMP Y,#&80 << 24
T
; BHS os2
^; CMP X,#&20 << 24
h; SWIHI "6502_UpdateScreen"
r
; .os2
|; MOV R0,A,LSR#24
�; MOV R1,X,LSR#24
�; MOV R2,Y,LSR#24
�; SWI "OS_Byte"
�; CMP Y,#&FF << 24
�
; BNE os3
�; BIC F,F,#%1
�; CMP R2,#&FF
�; �REQ F,F,#1
�
; .os3
�; CMP Y,#&80 << 16
�
; BHS os4
�; CMP R2,#0 ; key detected
�; CMPEQ R1,#�"'"
; �Q R1,#�":
; CMP R2,#&FF
; �Q R1,#0
&; CMP R1,#&1B
0; �Q R2,R1
:; �REQ F,F,#%1
D
; .os4
N; MOV A,R0,LSL#24
X; MOV X,R1,LSL#24
b; MOV Y,R2,LSL#24
l; �Q R0,#&FF
v; LDREQB R1,[mem,R0]
�; �R R1,R1,#&80
�; STREQB R1,[mem,R0]
�; B opcode(&60)
�; .generic_osbyte
�; MOV R0,A,LSR#24
�; MOV R1,X,LSR#24
�; MOV R2,Y,LSR#24
�; SWI "OS_Byte"
�; MOV A,R0,LSL#24
�; MOV X,R1,LSL#24
�; MOV Y,R2,LSL#24
�; B opcode(&60)
�; .osbyte80
; MOV X,#0
; B opcode(&60)

 ;
*.opcode(&14) ; TRB n
4�getzero(0,1)
>�trb(0)
H%STRB R0,[mem,R1] ; zero page STRB
R�fetch(2,5)
\;
f.opcode(&15) ; �A n,X
p�getzeroindex(0,1)
z�ora(0,2,4)
�;
�.opcode(&16) ; ASL n,X
��getzeroindex(0,1)
��asl(0)
�,STRB R0,[mem,R1,LSR#24] ; zero page STRB
��fetch(2,6)
�;
�.opcode(&17) ; ?
��undoc(&17)
��fetch(1,2)
�;
�.opcode(&18) ; CLC
�BIC F,F,#%1
	�fetch(1,2)
	;
	.opcode(&19) ; �A nn,Y
	$�getabsindex(0,1,Y)
	.�ora(0,3,4)
	8;
	B.opcode(&1A) ; INA
	L�inc(A)
	V�fetch(1,2)
	`;
	j.opcode(&1B) ; ?
	t�undoc(&1B)
	~�fetch(1,2)
	�;
	�.opcode(&1C) ; TRB nn
	��getabs(0,1)
	��trb(0)
	��strb(0,1)
	��fetch(3,6)
	�;
	�.opcode(&1D) ; �A nn,X
	��getabsindex(0,1,X)
	��ora(0,3,4)
	�;
	�.opcode(&1E) ; ASL nn,X
�getabsindex(0,1,X)

�asl(0)
�strb16(0,1)
�fetch(3,7)
(;
2.opcode(&1F) ; ?
<�undoc(&1F)
F�fetch(1,2)
P;
Z.opcode(&20) ; JSR nn
d�getabs(0,1)
nADD zpc,zpc,#2 << 16
xMOV R0,zpc,LSR#24
��push(0)
�MOV R0,zpc,LSR#16
��push(0)
�MOV zpc,R1,LSL#16
��fetch(0,6)
�;
�.opcode(&21) ; � (n,X)
��getpre(0,1)
��and(0,2,6)
�;
�.opcode(&22) ; ?
��undoc(&22)
��fetch(1,2)
;
.opcode(&23) ; ?
;MOV R0,#255
";STRB R0,[mem,#lastmode]
,BL updatescreen
6;BL force_update_pal
@;SWI "6502_UpdateScreen"
J+MOV R0,#229 : MOV R1,#0 : SWI "OS_Byte"
TSWI "OS_ReadC"
^MOV A,R0,LSL#24
hCMP R0,#&1B : �REQ F,F,#%1
rLDREQB R0,[mem,#&FF]
|�REQ R0,R0,#&80
�STREQB R0,[mem,#&FF]
�+MOV R0,#229 : MOV R1,#1 : SWI "OS_Byte"
�B opcode(&60)
��fetch(1,2)
�;
�.opcode(&24) ; BIT n
��getzero(0,1)
��bit(0,2,3)
�;
�.opcode(&25) ; � n
��getzero(0,1)
��and(0,2,3)
�;
.opcode(&26) ; ROL n
�getzero(0,1)
�rol(0)
&%STRB R0,[mem,R1] ; zero page STRB
0�fetch(2,5)
:;
D.opcode(&27) ; ?
N�undoc(&27)
X�fetch(1,2)
b;
l.opcode(&28) ; PLP
v�pull(F)
��fetch(1,4)
�;
�.opcode(&29) ; � #N
��getbyte1(0)
��and(0,2,2)
�;
�.opcode(&2A) ; ROL A
�MOV R0,A,LSR#24
��rol(0)
�MOV A,R0,LSL#24
��fetch(1,2)
�;
�.opcode(&2B) ; ?

�undoc(&2B)

�fetch(1,2)

;

 .opcode(&2C) ; BIT nn

*�getabs(0,1)

4�bit(0,3,4)

>;

H.opcode(&2D) ; � nn

R�getabs(0,1)

\�and(0,3,4)

f;

p.opcode(&2E) ; ROL nn

z�getabs(0,1)

��rol(0)

��strb(0,1)

��fetch(3,6)

�;

�.opcode(&2F) ; ?

��undoc(&2F)

��fetch(1,2)

�;

�.opcode(&30) ; BMI r

�TST F,#%10000000

�BEQ branch_fetch

��branch

�;
.opcode(&31) ; � (n),Y
�getpost(0,1)
�and(0,2,5)
$;
..opcode(&32) ; � (n)
8�getzeroindir(0,1)
B�and(0,2,5)
L;
V.opcode(&33) ; ?
`�undoc(&33)
j�fetch(1,2)
t;
~.opcode(&34) ; BIT n,X
��getzeroindex(0,1)
��bit(0,2,4)
�;
�.opcode(&35) ; � n,X
��getzeroindex(0,1)
��and(0,2,4)
�;
�.opcode(&36) ; ROL n,X
��getzeroindex(0,1)
��rol(0)
�STRB R0,[mem,R1,LSR#24]
��fetch(2,6)
;

.opcode(&37) ; ?
�undoc(&37)
�fetch(1,2)
(;
2.opcode(&38) ; SEC
<�R F,F,#%1
F�fetch(1,2)
P;
Z.opcode(&39) ; � nn,Y
d�getabsindex(0,1,Y)
n�and(0,3,4)
x;
�.opcode(&3A) ; DEA
��dec(A)
��fetch(1,2)
�;
�.opcode(&3B) ; ?
��undoc(&3B)
��fetch(1,2)
�;
�.opcode(&3C) ; BIT nn,X
��getabsindex(0,1,X)
��bit(0,3,4)
�;
�.opcode(&3D) ; � nn,X
�getabsindex(0,1,X)
�and(0,3,4)
;
".opcode(&3E) ; ROL nn,X
,�getabsindex(0,1,X)
6�rol(0)
@�strb16(0,1)
J�fetch(3,7)
T;
^.opcode(&3F) ; ?
h�undoc(&3F)
r�fetch(1,2)
|;
�.opcode(&40) ; RTI
��pull(F)
��pull(1)
��pull(zpc)
�ADD zpc,zpc,R1,LSR#8
�BL interrupt
�
�(�fetch(0,6) ; yes, that should be 0!
�;
�.opcode(&41) ; � (n,X)
��getpre(0,1)
��eor(0,2,6)
�;
.opcode(&42) ; ?
�undoc(&42)
�fetch(1,2)
&;
0.opcode(&43) ; ?
:�undoc(&43)
D�fetch(1,2)
N;
X.opcode(&44) ; ?
b�undoc(&44)
l�fetch(1,2)
v;
�.opcode(&45) ; � n
��getzero(0,1)
��eor(0,2,3)
�;
�.opcode(&46) ; LSR n
��getzero(0,1)
��lsr(0)
�STRB R0,[mem,R1]
��fetch(2,5)
�;
�.opcode(&47) ; ?
��undoc(&47)
��fetch(1,2)
;
.opcode(&48) ; PHA
�push(A)
 �fetch(1,3)
*;
4.opcode(&49) ; � #N
>�getbyte1(0)
H�eor(0,2,2)
R;
\.opcode(&4A) ; LSR A
fMOVS A,A,LSR#25
pMOV A,A,LSL#24
z
�setupNZC
��fetch(1,2)
�;
�).opcode(&4B) ; (ASR #N - � #N, LSR A)
��getbyte1(0)      ;
��S A,A,R0,LSL#24 ;
�;�setupNZ         ; �and
�
�MOVS A,A,LSR#25    ;
��setupC           ;
�MOVS A,A,LSL#24    ;
��setupNZ          ; LSR A
��fetch(2,0)
�
;SWI &100+�"4"
;SWI &100+�"B"
;�fetch(1,2)
$;
..opcode(&4C) ; JMP nn
8�getabs(0,1)
BMOV zpc,R1,LSL#16
L�fetch(0,3)
V;
`.opcode(&4D) ; � nn
j�getabs(0,1)
t�eor(0,3,4)
~;
�.opcode(&4E) ; LSR nn
��getabs(0,1)
��lsr(0)
��strb(0,1)
��fetch(3,6)
�;
�.opcode(&4F) ; ?
��undoc(&4F)
��fetch(1,2)
�;
�.opcode(&50) ; BVC r
�TST F,#%1000000
BNE branch_fetch

�branch
;
.opcode(&51) ; � (n),Y
(�getpost(0,1)
2�eor(0,2,5)
<;
F.opcode(&52) ; � (n)
P�getzeroindir(0,1)
Z�eor(0,2,5)
d;
n.opcode(&53) ; ?
x�undoc(&53)
��fetch(1,2)
�;
�.opcode(&54) ; ?
��undoc(&54)
��fetch(1,2)
�;
�.opcode(&55) ; � n,X
��getzeroindex(0,1)
��eor(0,2,4)
�;
�.opcode(&56) ; LSR n,X
��getzeroindex(0,1)
��lsr(0)
,STRB R0,[mem,R1,LSR#24] ; zero page STRB
�fetch(2,6)
;
".opcode(&57) ; ?
,�undoc(&57)
6�fetch(1,2)
@;
J.opcode(&58) ; CLI
T
;B CLI
^BIC F,F,#%100
hADD zpc,zpc,#1 << 16
r;LDRB R0,keychk
|;CMP R0,#0
�;BLEQ keyboard
�BL keyboard
�BL interrupt
��fetch(0,2)
�;
�.opcode(&59) ; � nn,Y
��getabsindex(0,1,Y)
��eor(0,3,4)
�;
�.opcode(&5A) ; PHY
��push(Y)
��fetch(1,3)
�;
.opcode(&5B) ; ?
�undoc(&5B)
�fetch(1,2)
&;
0.opcode(&5C) ; ?
:�undoc(&5C)
D�fetch(1,2)
N;
X.opcode(&5D) ; � nn,X
b�getabsindex(0,1,X)
l�eor(0,3,4)
v;
�.opcode(&5E) ; LSR nn,X
��getabsindex(0,1,X)
��lsr(0)
��strb16(0,1)
��fetch(3,7)
�;
�.opcode(&5F) ; ?
��undoc(&5F)
��fetch(1,2)
�;
�.opcode(&60) ; RTS
��pull(1)
��pull(zpc)
ADD zpc,zpc,R1,LSR#8
(�fetch(1,6) ; yes, that should be 1!
;
 .opcode(&61) ; ADC (n,X)
*�getpre(0,1)
4�adc(0,2,6)
>;
H.opcode(&62) ; ?
R�undoc(&62)
\�fetch(1,2)
f;
p.opcode(&63) ; ?
z�undoc(&63)
��fetch(1,2)
�;
�.opcode(&64) ; STZ n
��getbyte1(0)
�
MOV R1,#0
�%STRB R1,[mem,R0] ; zero page STRB
��fetch(2,3)
�;
�.opcode(&65) ; ADC n
��getzero(0,1)
��adc(0,2,3)
�;
�.opcode(&66) ; ROR n
�getzero(0,1)
�ror(0)
%STRB R0,[mem,R1] ; zero page STRB
$�fetch(2,5)
.;
8.opcode(&67) ; ?
B�undoc(&67)
L�fetch(1,2)
V;
`.opcode(&68) ; PLA
j�pull(A)
t�fetch(1,4)
~;
�.opcode(&69) ; ADC #N
��getbyte1(0)
��adc(0,2,2)
�;
�.opcode(&6A) ; ROR A
�MOV R0,A,LSR#24
��ror(0)
�MOV A,R0,LSL#24
��fetch(1,2)
�;
�.opcode(&6B) ; ?
��undoc(&6B)
�fetch(1,2)

;
.opcode(&6C) ; JMP (nn)
�getabs(0,1)
(ADD R1,R1,#1
2]
<
F� JMP (&xxFF) bug
P� �master � electron% �
Z	[OPTp
dTST R1,#&FF
nSUBEQ R1,R1,#&100
x�Q R1,R1,LSL#16
��Q R1,R1,LSR#16
�]
��
�
�	[OPTp
�;LDRB R1,[mem,R1]
�MOV R2,#pagetable
�LDRB R2,[R2,R1,LSR#12]
�LDRB R1,[R1,R2,LSL#12]
�
�ADD R0,R0,R1,LSL#8
�MOV zpc,R0,LSL#16
��fetch(0,5)
;
.opcode(&6D) ; ADC nn
�getabs(0,1)
"�adc(0,3,4)
,;
6.opcode(&6E) ; ROR nn
@�getabs(0,1)
J�ror(0)
T�strb(0,1)
^�fetch(3,6)
h;
r.opcode(&6F) ; ?
|�undoc(&6F)
��fetch(1,2)
�;
�.opcode(&70) ; BVS r
�TST F,#%1000000
�BEQ branch_fetch
��branch
�;
�.opcode(&71) ; ADC (n),Y
��getpost(0,1)
��adc(0,2,5)
�;
�.opcode(&72) ; ADC (n)
��getzeroindir(0,1)
�adc(0,2,5)
;
.opcode(&73) ; ?
&�undoc(&73)
0�fetch(1,2)
:;
D.opcode(&74) ; STZ n,X
N�zeroindex(0,1)
X
MOV R0,#0
bSTRB R0,[mem,R1,LSR#24]
l�fetch(2,4)
v;
�.opcode(&75) ; ADC n,X
��getzeroindex(0,1)
��adc(0,2,4)
�;
�.opcode(&76) ; ROR n,X
��getzeroindex(0,1)
��ror(0)
�,STRB R0,[mem,R1,LSR#24] ; zero page STRB
��fetch(2,6)
�;
�.opcode(&77) ; ?
��undoc(&77)
��fetch(1,2)
;
.opcode(&78) ; SEI
�R F,F,#%100
 �fetch(1,2)
*;
4.opcode(&79) ; ADC nn,Y
>�getabsindex(0,1,Y)
H�adc(0,3,4)
R;
\.opcode(&7A) ; PLY
f�pull(Y)
p�fetch(1,4)
z;
�.opcode(&7B) ; ?
��undoc(&7B)
��fetch(1,2)
�;
�.opcode(&7C) ; JMP (nn,X)
�
�abs(0,1)
�MOV R0,R1,LSL#16
�ADD R0,R0,X,LSR#8
�
�;LDRB R1,[mem,R0,LSR#16]
�MOV R2,#pagetable
�LDRB R2,[R2,R0,LSR#28]
�MOV R2,R2,LSL#12
LDRB R1,[R2,R0,LSR#16]

$ADD R0,R0,#1 << 16
.;LDRB R0,[mem,R0,LSR#16]
8MOV R2,#pagetable
BLDRB R2,[R2,R0,LSR#28]
LMOV R2,R2,LSL#12
VLDRB R0,[R2,R0,LSR#16]
j
t
~ADD R0,R1,R0,LSL#8
�MOV zpc,R0,LSL#16
��fetch(0,6)
�;
�.opcode(&7D) ; ADC nn,X
��getabsindex(0,1,X)
��adc(0,3,4)
�;
�.opcode(&7E) ; ROR nn,X
��getabsindex(0,1,X)
��ror(0)
��strb16(0,1)
��fetch(3,7)
;

.opcode(&7F) ; ?
�undoc(&7F)
�fetch(1,2)
(;
2.opcode(&80) ; BRA r
<�branch
F;
P.opcode(&81) ; STA (n,X)
Z
�pre(0,1)
dMOV R0,A,LSR#24
n�strb(0,1)
x�fetch(2,6)
�;
�.opcode(&82) ; ?
��undoc(&82)
��fetch(1,2)
�;
�.opcode(&83) ; ?
��undoc(&83)
��fetch(1,2)
�;
�.opcode(&84) ; STY n
��getbyte1(1)
�MOV R0,Y,LSR#24
�%STRB R0,[mem,R1] ; zero page STRB
�fetch(2,3)
;
.opcode(&85) ; STA n
"�getbyte1(1)
,MOV R0,A,LSR#24
6%STRB R0,[mem,R1] ; zero page STRB
@�fetch(2,3)
J;
T.opcode(&86) ; STX n
^�getbyte1(1)
hMOV R0,X,LSR#24
r%STRB R0,[mem,R1] ; zero page STRB
|�fetch(2,3)
�;
�7.opcode(&87) ; (SAX n - store (A � X) in zero page)
��getbyte1(1)
�
�S R0,X,A
��setupNZ
�MOV R0,R0,LSR#24
�%STRB R0,[mem,R1] ; zero page STRB
��fetch(2,0)
�;SWI &100+�"8"
�;SWI &100+�"7"
�;�fetch(1,2)
�;
�.opcode(&88) ; DEY
 �dec(Y)
 �fetch(1,2)
 ;
 &.opcode(&89) ; BIT #N
 0�getbyte1(0)
 :TST R0,A,LSR#24
 D6BIC F,F,#%10 ; N and V unchanged in immediate mode
 N�REQ F,F,#%10
 X.branch_fetch
 b�fetch(2,2)
 l;
 v.opcode(&8A) ; TXA
 �MOVS A,X
 ��setupNZ
 ��fetch(1,2)
 �;
 �.opcode(&8B) ; ?
 ��undoc(&8B)
 ��fetch(1,2)
 �;
 �.opcode(&8C) ; STY nn
 �
�abs(0,1)
 �MOV R0,Y,LSR#24
 ��strb(0,1)
 ��fetch(3,4)
!;
!.opcode(&8D) ; STA nn
!
�abs(0,1)
! MOV R0,A,LSR#24
!*�strb(0,1)
!4�fetch(3,4)
!>;
!H.opcode(&8E) ; STX nn
!R
�abs(0,1)
!\MOV R0,X,LSR#24
!f�strb(0,1)
!p�fetch(3,4)
!z;
!�.opcode(&8F) ; ?
!��undoc(&8F)
!��fetch(1,2)
!�;
!�.opcode(&90) ; BCC r
!�
TST F,#%1
!�BNE branch_fetch
!��branch
!�;
!�.opcode(&91) ; STA (n),Y
!��post(0,1)
!�MOV R0,A,LSR#24
!��strb16(0,1)
"�fetch(2,6)
";
".opcode(&92) ; STA (n)
"$�zeroindir(0,1)
".MOV R0,A,LSR#24
"8�strb(0,1)
"B�fetch(2,5)
"L;
"V.opcode(&93) ; ?
"`�undoc(&93)
"j�fetch(1,2)
"t;
"~.opcode(&94) ; STY n,X
"��getzeroindex(0,1)
"�MOV R0,Y,LSR#24
"�,STRB R0,[mem,R1,LSR#24] ; zero page STRB
"��fetch(2,4)
"�;
"�.opcode(&95) ; STA n,X
"��zeroindex(0,1)
"�MOV R0,A,LSR#24
"�,STRB R0,[mem,R1,LSR#24] ; zero page STRB
"��fetch(2,4)
"�;
"�.opcode(&96) ; STX n,Y
#�zeroindexY(0,1)
#
MOV R0,X,LSR#24
#,STRB R0,[mem,R1,LSR#24] ; zero page STRB
# 
#(�fetch(2,4)
#2;
#<.opcode(&97) ; ?
#F�undoc(&97)
#P�fetch(1,2)
#Z;
#d.opcode(&98) ; TYA
#nMOVS A,Y
#x�setupNZ
#��fetch(1,2)
#�;
#�.opcode(&99) ; STA nn,Y
#��absindex(0,1,Y)
#�MOV R0,A,LSR#24
#��strb16(0,1)
#��fetch(3,5)
#�;
#�.opcode(&9A) ; TXS
#�"MOVS SP,X ; flags not affected
#��R SP,SP,#1
#��setupNZ
#��fetch(1,2)
$;
$.opcode(&9B) ; ?
$�undoc(&9B)
$"�fetch(1,2)
$,;
$6.opcode(&9C) ; STZ nn
$@
�abs(0,1)
$J
MOV R0,#0
$T�strb(0,1)
$^�fetch(3,4)
$h;
$r.opcode(&9D) ; STA nn,X
$|�absindex(0,1,X)
$�MOV R0,A,LSR#24
$��strb16(0,1)
$��fetch(3,5)
$�;
$�.opcode(&9E) ; STZ nn,X
$��absindex(0,1,X)
$�
MOV R0,#0
$��strb16(0,1)
$��fetch(3,5)
$�;
$�.opcode(&9F) ; ?
$��undoc(&9F)
$��fetch(1,2)
%;
%.opcode(&A0) ; LDY #N
%�getbyte1(0)
%&�ldy(0,2,2)
%0;
%:.opcode(&A1) ; LDA  (n,X)
%D�getpre(0,1)
%N�lda(0,2,6)
%X;
%b.opcode(&A2) ; LDX #N
%l�getbyte1(0)
%v�ldx(0,2,2)
%�;
%�.opcode(&A3) ; ?
%��undoc(&A3)
%��fetch(1,2)
%�;
%�.opcode(&A4) ; LDY n
%��getzero(0,1)
%��ldy(0,2,3)
%�;
%�.opcode(&A5) ; LDA n
%��getzero(0,1)
%��lda(0,2,3)
%�;
&.opcode(&A6) ; LDX n
&�getzero(0,1)
&�ldx(0,2,3)
& ;
&*.opcode(&A7) ; ?
&4�undoc(&A7)
&>�fetch(1,2)
&H;
&R.opcode(&A8) ; TAY
&\MOVS Y,A
&f�setupNZ
&p�fetch(1,2)
&z;
&�.opcode(&A9) ; LDA #N
&��getbyte1(0)
&��lda(0,2,2)
&�;
&�.opcode(&AA) ; TAX
&�MOVS X,A
&��setupNZ
&��fetch(1,2)
&�;
&�.opcode(&AB) ; ?
&��undoc(&AB)
&��fetch(1,2)
&�;
'.opcode(&AC) ; LDY nn
'�getabs(0,1)
'�ldy(0,3,4)
'$;
'..opcode(&AD) ; LDA nn
'8�getabs(0,1)
'B�lda(0,3,4)
'L;
'V.opcode(&AE) ; LDX nn
'`�getabs(0,1)
'j�ldx(0,3,4)
't;
'~.opcode(&AF) ; ?
'��undoc(&AF)
'��fetch(1,2)
'�;
'�.opcode(&B0) ; BCS r
'�
TST F,#%1
'�BEQ branch_fetch
'��branch
'�;
'�.opcode(&B1) ; LDA (n),Y
'��getpost(0,1)
'��lda(0,2,5)
'�;
(.opcode(&B2) ; LDA (n)
(
�getzeroindir(0,1)
(�lda(0,2,5)
(;
((.opcode(&B3) ; ?
(2�undoc(&B3)
(<�fetch(1,2)
(F;
(P.opcode(&B4) ; LDY n,X
(Z�getzeroindex(0,1)
(d�ldy(0,2,4)
(n;
(x.opcode(&B5) ; LDA n,X
(��getzeroindex(0,1)
(��lda(0,2,4)
(�;
(�.opcode(&B6) ; LDX n,Y
(��getzeroindexY(0,1)
(��ldx(0,2,4)
(�;
(�.opcode(&B7) ; ?
(��undoc(&B7)
(��fetch(1,2)
(�;
(�.opcode(&B8) ; CLV
(�BIC F,F,#%1000000
)�fetch(1,2)
);
).opcode(&B9) ; LDA nn,Y
)"�getabsindex(0,1,Y)
),�lda(0,3,4)
)6;
)@.opcode(&BA) ; TSX
)J�S X,SP,#&FF000000
)T�setupNZ
)^�fetch(1,2)
)h;
)r.opcode(&BB) ; ?
)|�undoc(&BB)
)��fetch(1,2)
)�;
)�.opcode(&BC) ; LDY nn,X
)��getabsindex(0,1,X)
)��ldy(0,3,4)
)�;
)�.opcode(&BD) ; LDA nn,X
)��getabsindex(0,1,X)
)��lda(0,3,4)
)�;
)�.opcode(&BE) ; LDX nn,Y
)��getabsindex(0,1,Y)
)��ldx(0,3,4)
*;
*.opcode(&BF) ; ?
*�undoc(&BF)
*&�fetch(1,2)
*0;
*:.opcode(&C0) ; CPY #N
*D�getbyte1(0)
*N�cpy(0,2,2)
*X;
*b.opcode(&C1) ; CMP (n,X)
*l�getpre(0,1)
*v�cmp(0,2,6)
*�;
*�.opcode(&C2) ; ?
*��undoc(&C2)
*��fetch(1,2)
*�;
*�.opcode(&C3) ; ?
*��undoc(&C3)
*��fetch(1,2)
*�;
*�.opcode(&C4) ; CPY n
*��getzero(0,1)
*��cpy(0,2,3)
*�;
+.opcode(&C5) ; CMP n
+�getzero(0,1)
+�cmp(0,2,3)
+ ;
+*.opcode(&C6) ; DEC n
+4�getzero(0,1)
+>�dec(0)
+H%STRB R0,[mem,R1] ; zero page STRB
+R�fetch(2,5)
+\;
+f.opcode(&C7) ; ?
+p�undoc(&C7)
+z�fetch(1,2)
+�;
+�.opcode(&C8) ; INY
+��inc(Y)
+��fetch(1,2)
+�;
+�.opcode(&C9) ; CMP #N
+��getbyte1(0)
+��cmp(0,2,2)
+�;
+�.opcode(&CA) ; DEX
+��dec(X)
+��fetch(1,2)
+�;
,.opcode(&CB) ; ?
,�undoc(&CB)
,�fetch(1,2)
,$;
,..opcode(&CC) ; CPY nn
,8�getabs(0,1)
,B�cpy(0,3,4)
,L;
,V.opcode(&CD) ; CMP nn
,`�getabs(0,1)
,j�cmp(0,3,4)
,t;
,~.opcode(&CE) ; DEC nn
,��getabs(0,1)
,��dec(0)
,��strb(0,1)
,��fetch(3,6)
,�;
,�.opcode(&CF) ; ?
,��undoc(&CF)
,��fetch(1,2)
,�;
,�.opcode(&D0) ; BNE r
,�TST F,#%10
,�BNE branch_fetch
-�branch
-
;
-.opcode(&D1) ; CMP (n),Y
-�getpost(0,1)
-(�cmp(0,2,5)
-2;
-<.opcode(&D2) ; CMP (n)
-F�getzeroindir(0,1)
-P�cmp(0,2,5)
-Z;
-d.opcode(&D3) ; ?
-n�undoc(&D3)
-x�fetch(1,2)
-�;
-�.opcode(&D4) ; ?
-��undoc(&D4)
-��fetch(1,2)
-�;
-�.opcode(&D5) ; CMP n,X
-��getzeroindex(0,1)
-��cmp(0,2,4)
-�;
-�.opcode(&D6) ; DEC n,X
-��getzeroindex(0,1)
-��dec(0)
-�STRB R0,[mem,R1,LSR#24]
.�fetch(2,6)
.;
..opcode(&D7) ; ?
."�undoc(&D7)
.,�fetch(1,2)
.6;
.@.opcode(&D8) ; CLD
.JTST F,#%1000
.TSUBNE table,table,#256*64*4
.^BICNE F,F,#%1000
.h;ADR table,opcodetable
.r�fetch(1,2)
.|;
.�.opcode(&D9) ; CMP nn,Y
.��getabsindex(0,1,Y)
.��cmp(0,3,4)
.�;
.�.opcode(&DA) ; PHX
.��push(X)
.��fetch(1,3)
.�;
.�.opcode(&DB) ; ?
.��undoc(&DB)
.��fetch(1,2)
.�;
.�.opcode(&DC) ; (NOP nn,X)
/;SWI &100+�"D"
/;SWI &100+�"C"
/ 
/&�fetch(3,0)
/0;
/:.opcode(&DD) ; CMP nn,X
/D�getabsindex(0,1,X)
/N�cmp(0,3,4)
/X;
/b.opcode(&DE) ; DEC nn,X
/l�getabsindex(0,1,X)
/v�dec(0)
/��strb16(0,1)
/��fetch(3,7)
/�;
/�.opcode(&DF) ; ?
/��undoc(&DF)
/��fetch(1,2)
/�;
/�.opcode(&E0) ; CPX #N
/��getbyte1(0)
/��cpx(0,2,2)
/�;
/�.opcode(&E1) ; SBC (n,X)
/��getpre(0,1)
0�sbc(0,2,6)
0;
0.opcode(&E2) ; ?
0 �undoc(&E2)
0*�fetch(1,2)
04;
0>.opcode(&E3) ; ?
0H�undoc(&E3)
0R�fetch(1,2)
0\;
0f.opcode(&E4) ; CPX n
0p�getzero(0,1)
0z�cpx(0,2,3)
0�;
0�.opcode(&E5) ; SBC n
0��getzero(0,1)
0��sbc(0,2,3)
0�;
0�.opcode(&E6) ; INC n
0��getzero(0,1)
0��inc(0)
0�%STRB R0,[mem,R1] ; zero page STRB
0��fetch(2,5)
0�;
0�.opcode(&E7) ; ?
0��undoc(&E7)
1�fetch(1,2)
1;
1.opcode(&E8) ; INX
1$�inc(X)
1.�fetch(1,2)
18;
1B.opcode(&E9) ; SBC #N
1L�getbyte1(0)
1V�sbc(0,2,2)
1`;
1j.opcode(&EA) ; NOP
1t 
1~�fetch(1,2)
1�;
1�.opcode(&EB) ; ?
1��undoc(&EB)
1��fetch(1,2)
1�;
1�.opcode(&EC) ; CPX nn
1��getabs(0,1)
1��cpx(0,3,4)
1�;
1�.opcode(&ED) ; SBC nn
1��getabs(0,1)
1��sbc(0,3,4)
2;
2
.opcode(&EE) ; INC nn
2�getabs(0,1)
2�inc(0)
2(�strb(0,1)
22�fetch(3,6)
2<;
2F.opcode(&EF) ; ?
2P�undoc(&EF)
2Z�fetch(1,2)
2d;
2n.opcode(&F0) ; BEQ r
2xTST F,#%10
2�BEQ branch_fetch
2��branch
2�;
2�.opcode(&F1) ; SBC (n),Y
2��getpost(0,1)
2��sbc(0,2,5)
2�;
2�.opcode(&F2) ; SBC (n)
2��getzeroindir(0,1)
2��sbc(0,2,5)
2�;
2�.opcode(&F3) ; ?
2��undoc(&F3)
3�fetch(1,2)
3;
3.opcode(&F4) ; ?
3"�undoc(&F4)
3,�fetch(1,2)
36;
3@.opcode(&F5) ; SBC n,X
3J�getzeroindex(0,1)
3T�sbc(0,2,4)
3^;
3h.opcode(&F6) ; INC n,X
3r�getzeroindex(0,1)
3|�inc(0)
3�,STRB R0,[mem,R1,LSR#24] ; zero page STRB
3��fetch(2,6)
3�;
3�.opcode(&F7) ; ?
3��undoc(&F7)
3��fetch(1,2)
3�;
3�.opcode(&F8) ; SED
3�TST F,#%1000
3�ADDEQ table,table,#256*64*4
3��REQ F,F,#%1000
3�;ADR table,bcdtable
3��fetch(1,2)
4;
4.opcode(&F9) ; SBC nn,Y
4�getabsindex(0,1,Y)
4&�sbc(0,3,4)
40;
4:.opcode(&FA) ; PLX
4D�pull(X)
4N�fetch(1,4)
4X;
4b.opcode(&FB) ; ?
4l�undoc(&FB)
4v�fetch(1,2)
4�;
4�.opcode(&FC) ; ?
4��undoc(&FC)
4��fetch(1,2)
4�;
4�.opcode(&FD) ; SBC nn,X
4��getabsindex(0,1,X)
4��sbc(0,3,4)
4�;
4�.opcode(&FE) ; INC nn,X
4��getabsindex(0,1,X)
4��inc(0)
4��strb16(0,1)
5�fetch(3,7)
5;
5.opcode(&FF) ; ?
5 �undoc(&FF)
5*�fetch(1,2)
54;
5>]
5H� bcd_loop%
5R
5\*�FOR I%=code+0 TO code+255*4*64 STEP 4
5f�bcd(0)!I%=opcode(0)!I%
5p	�NEXT
5z
P%=bcd(0)
5�O%=P%+code
5�	[OPTp
5�
�bcd(&61)
5�.bcd(&61) ; ADC (n,X)
5��getpre(0,1)
5��adcBCD(0,2,6)
5�
5�
�bcd(&65)
5�.bcd(&65) ; ADC n
5��getzero(0,1)
5��adcBCD(0,2,3)
5�
5�
�bcd(&69)
6.bcd(&69) ; ADC #N
6�getbyte1(0)
6�adcBCD(0,2,2)
6$
6.
�bcd(&6D)
68.bcd(&6D) ; ADC nn
6B�getabs(0,1)
6L�adcBCD(0,3,4)
6V
6`
�bcd(&71)
6j.bcd(&71) ; ADC (n),Y
6t�getpost(0,1)
6~�adcBCD(0,2,5)
6�
6�
�bcd(&72)
6�.bcd(&72) ; ADC (n)
6��getzeroindir(0,1)
6��adcBCD(0,2,5)
6�
6�
�bcd(&75)
6�.bcd(&75) ; ADC n,X
6��getzeroindex(0,1)
6��adcBCD(0,2,4)
6�
6�
�bcd(&79)
7.bcd(&79) ; ADC nn,Y
7
�getabsindex(0,1,Y)
7�adcBCD(0,3,4)
7
7(
�bcd(&7D)
72.bcd(&7D) ; ADC nn,X
7<�getabsindex(0,1,X)
7F�adcBCD(0,3,4)
7P
7Z
�bcd(&E1)
7d.bcd(&E1) ; SBC (n,X)
7n�getpre(0,1)
7x�sbcBCD(0,2,6)
7�
7�
�bcd(&E5)
7�.bcd(&E5) ; SBC n
7��getzero(0,1)
7��sbcBCD(0,2,3)
7�
�bcd(&E6)
7�
7�
�bcd(&E9)
7�.bcd(&E9) ; SBC #N
7��getbyte1(0)
7��sbcBCD(0,2,2)
7�
7�
�bcd(&ED)
8.bcd(&ED) ; SBC nn
8�getabs(0,1)
8�sbcBCD(0,3,4)
8"
8,
�bcd(&F1)
86.bcd(&F1) ; SBC (n),Y
8@�getpost(0,1)
8J�sbcBCD(0,2,5)
8T
8^
�bcd(&F2)
8h.bcd(&F2) ; SBC (n)
8r�getzeroindir(0,1)
8|�sbcBCD(0,2,5)
8�
8�
�bcd(&F5)
8�.bcd(&F5) ; SBC n,X
8��getzeroindex(0,1)
8��sbcBCD(0,2,4)
8�
8�
�bcd(&F9)
8�.bcd(&F9) ; SBC nn,Y
8��getabsindex(0,1,Y)
8��sbcBCD(0,3,4)
8�
8�
�bcd(&FD)
8�.bcd(&FD) ; SBC nn,X
9�getabsindex(0,1,X)
9�sbcBCD(0,3,4)
9
9&�bcd(&100)
90]
9:
9D=""
9N
9Xݤbranch
9b	[OPTp
9lMOV R12,zpc,LSR#24
9v�getbyte1(0)
9�ADD zpc,zpc,R0,LSL#16
9�CMP R0,#&80
9�SUBGE zpc,zpc,#254 << 16
9�ADDLT zpc,zpc,#2 << 16
9�CMP R12,zpc,LSR#24
9�2SUBEQ time,time,#1 ; page boundary not crossed
9�.SUBNE time,time,#2 ; page boundary crossed
9��fetch(0,2)
9�]
9�=""
9�
9�ݤtrb(R)
9�	[OPTp
:TST R,A,LSR#24
:�setupZ
:BIC R,R,A,LSR#24
: ]
:*=""
:4
:>ݤtsb(R)
:H	[OPTp
:RTST R,A,LSR#24
:\�setupZ
:f�R R,R,A,LSR#24
:p]
:z=""
:�
:�ݤasl(R)
:�	[OPTp
:�MOVS R,R,LSL#25
:�MOV R,R,LSR#24
:�
�setupNZC
:�]
:�=""
:�
:�ݤlsr(R)
:�	[OPTp
:�BIC F,F,#%10000011
:�MOVS R,R,LSR#1
;�RCS F,F,#%1
;MOVS R2,R,LSL#24
;�RMI F,F,#%10000000
;$�REQ F,F,#%10
;.]
;8=""
;B
;Lݤrol(R)
;V� R=1 �
;`	[OPTp
;j.;MOVS R2,F,RRX ; � 6502 CARRY �O ARM CARRY
;t� R2,F,#%1
;~BIC F,F,#%10000011
;�MOVS R,R,LSL#24
;��R R,R,R2,LSL#23
;�MOVS R,R,LSL#1
;�MOV R,R,LSR#24
;�
�setupNZC
;�]
;�=""
;�
;�ݤror(R)
;�� R=1 �
;�	[OPTp
;�-MOVS R2,F,RRX ; � 6502 CARRY �O ARM CARRY
<BIC F,F,#%10000011
<
)�RCS F,F,#%10000000 ; N -> what C was
<ADD R,R,R,LSL#24
<MOVS R,R,RRX
<(�RCS F,F,#%1
<2MOVS R,R,LSR#24
<<�REQ F,F,#%10
<F]
<P=""
<Z
<d
<nݤcmp(R,F%,T%)
<x	[OPTp
<�SUBS R0,A,R,LSL#24
<�
�setupNZC
<��fetch(F%,T%)
<�]
<�=""
<�
<�ݤcpx(R,F%,T%)
<�	[OPTp
<�SUBS R0,X,R,LSL#24
<�
�setupNZC
<��fetch(F%,T%)
<�]
<�=""
=
=ݤcpy(R,F%,T%)
=	[OPTp
="SUBS R0,Y,R,LSL#24
=,
�setupNZC
=6�fetch(F%,T%)
=@]
=J=""
=T
=^�DEFFNadc(R,F%,T%)
=h	[OPTp
=r-MOVS R2,F,RRX ; � 6502 CARRY �O ARM CARRY
=|MVN R2,#0 ; R2=-1
=�BIC R2,R2,#&FF << 24
=�ADD R2,R2,A
=�ADCS R2,R2,R,LSL#24
=�*�S A,R2,#&FF << 24 ; only affects Z,N!
=��setupCZVN
=��fetch(F%,T%)
=�]
=�=""
=�
=�ݤadc(R,F%,T%)
=�	[OPTp
=�� R2,F,#%1
=�ADD R2,R2,R
>ADDS A,A,R2,LSL#24
>�setupCZVN
>CMP R2,#&100 : �REQ F,F,#%1
>&�fetch(F%,T%)
>0]
>:=""
>D
>NݤadcBCD(R,F%,T%)
>X	[OPTp
>b-MOVS R2,F,RRX ; � 6502 CARRY �O ARM CARRY
>l� R2,A,#&0F << 24
>v� R13,R,#&F
>�;ADDCS R2,R2,#1 << 24
>�ADC R13,R13,R2,LSR#24
>�CMP R13,#&A
>�ADDGE R13,R13,#&06
>�
>�CMP R13,#&20
>�SUBGE R13,R13,#&10
>�
>�MOV R,R,LSR#4
>�ADD R,R,A,LSR#28
>�ADD A,R13,R,LSL#4
>�CMP A,#&A0
>�ADDGE A,A,#&60
?�S R2,A,#&300
?�RNE F,F,#%1
?BICEQ F,F,#%1
? MOVS A,A,LSL#24
?*)�setupNZ ; Master elite needs N flag?
?4�fetch3(F%,T%)
?>]
?H=""
?R
?\ݤsbcBCD(R,F%,T%)
?f	[OPTp
?p
?z-MOVS R2,F,RRX ; � 6502 CARRY �O ARM CARRY
?�� R2,A,#&0F << 24
?�� R13,R,#&F
?�RSCS R13,R13,R2,LSR#24
?�SUBCC R13,R13,#6
?�� R13,R13,#&F
?�MOV R,R,LSR#4
?�RSCS R,R,A,LSR#28
?�SUBCC R,R,#6
?��setupC
?�
?�
� R,R,#&F
?�ADD A,R13,R,LSL#4
?�MOVS A,A,LSL#24
@�setupNZ
@�fetch3(F%,T%)
@]
@$=""
@.
@8ݤsbc(R,F%,T%)
@B	[OPTp
@L-MOVS R2,F,RRX ; � 6502 CARRY �O ARM CARRY
@VSBCS A,A,R,LSL#24
@`�setupCZVN
@j�S A,A,#&FF << 24
@tBICNE F,F,#%10
@~�REQ F,F,#%10 ; �setupZ
@��fetch(F%,T%)
@�]
@�=""
@�
@�
@�-MOVS R2,F,RRX ; � 6502 CARRY �O ARM CARRY
@�MOV A,A,ASR#24
@�MOV R,R,LSL#24
@�MOV R,R,ASR#24
@�� R,R,#&FF << 24
@�� R,R,#&FF << 16
@�� R,R,#&FF << 8
A� A,A,#&FF << 24
A
� A,A,#&FF << 16
A� A,A,#&FF << 8
ASBCS A,A,R
A(MOV A,A,LSL#24
A2�setupCZVN
A<�fetch(F%,T%)
AF]
AP=""
AZ
Adݤbit(R,F%,T%)
An	[OPTp
Ax� R2,R,#%11000000
A��S R,R,A,LSR#24
A�BIC F,F,#%11000010
A�ADD F,F,R2
A��REQ F,F,#%10
A��fetch(F%,T%)
A�]
A�=""
A�
A�ݤeor(R,F%,T%)
A�	[OPTp
A��S A,A,R,LSL#24
A��setupNZ
A��fetch(F%,T%)
B]
B=""
B
B"ݤand(R,F%,T%)
B,	[OPTp
B6�S A,A,R,LSL#24
B@�setupNZ
BJ�fetch(F%,T%)
BT]
B^=""
Bh
Brݤora(R,F%,T%)
B|	[OPTp
B��RS A,A,R,LSL#24
B��setupNZ
B��fetch(F%,T%)
B�]
B�=""
B�
B�ݤlda(R,F%,T%)
B�	[OPTp
B�MOVS A,R,LSL#24
B��setupNZ
B��fetch(F%,T%)
B�]
B�=""
C
Cݤldx(R,F%,T%)
C	[OPTp
C&MOVS X,R,LSL#24
C0�setupNZ
C:�fetch(F%,T%)
CD]
CN=""
CX
Cbݤldy(R,F%,T%)
Cl	[OPTp
CvMOVS Y,R,LSL#24
C��setupNZ
C��fetch(F%,T%)
C�]
C�=""
C�
C�ݤinc(R)
C�� R=X � R=Y � R=A �
C�	[OPTp
C�ADDS R,R,#1 << 24
C�]
C��
C�	[OPTp
C�ADD R,R,#1
DMOVS R2,R,LSL#24
D]
D�
D 	[OPTp
D*�setupNZ
D4]
D>=""
DH
DRݤdec(R)
D\� R=X � R=Y � R=A �
Df	[OPTp
DpSUBS R,R,#1 << 24
Dz]
D��
D�	[OPTp
D�SUB R,R,#1
D�MOVS R2,R,LSL#24
D�]
D��
D�	[OPTp
D��setupNZ
D�]
D�=""
D�
D�
ݤsetupNZ
D�	[OPTp
EBIC F,F,#%10000010
E�REQ F,F,#%10
E�RMI F,F,#%10000000
E$]
E.=""
E8
EBݤsetupZ
EL	[OPTp
EVBIC F,F,#%10
E`�REQ F,F,#%10
Ej]
Et=""
E~
E�ݤsetupC
E�	[OPTp
E�BIC F,F,#%1
E��RCS F,F,#%1
E�]
E�=""
E�
E�ݤsetupNZC
E�	[OPTp
E�BIC F,F,#%10000011
E��RCS F,F,#%1
E��REQ F,F,#%10
F�RMI F,F,#%10000000
F
]
F=""
F
F(ݤsetupCZVN
F2	[OPTp
F<BIC F,F,#%11000011
FF�RCS F,F,#%1
FP�REQ F,F,#%10
FZ�RVS F,F,#%1000000
Fd�RMI F,F,#%10000000
Fn]
Fx=""
F�
F�ݤsetupCzVN
F�	[OPTp
F�BIC F,F,#%11000011
F��RCS F,F,#%1
F��RVS F,F,#%1000000
F��RMI F,F,#%10000000
F�]
F�=""
F�
F�ݤgetpre(R,S)
F�	[OPTp
F�
�pre(R,S)
G;LDRB R,[mem,R]
G�ldrb2(R,S)
G]
G"=""
G,
G6ݤpre(R,S)
G@	[OPTp
GJ�getbyte1(R)
GTADD R,X,R,LSL#24
G^*LDRB S,[mem,R,LSR#24] ; zero page LDRB
GhADD R,R,#1 << 24
Gr*LDRB R,[mem,R,LSR#24] ; zero page LDRB
G|ADD S,S,R,LSL#8
G�]
G�=""
G�
G�ݤgetzero(R,S)
G�	[OPTp
G��getbyte1(S)
G�#LDRB R,[mem,S] ; zero page LDRB
G�]
G�=""
G�
G�ݤgetabs(R,S)
G�	[OPTp
G�
�abs(R,S)
H;LDRB R,[mem,S]
H�ldrb2(R,S)
H]
H&=""
H0
H:ݤabs(R,S)
HD	[OPTp
HN�getbyte2(R,S)
HXADD S,R,S,LSL#8
Hb
;�strb
Hl]
Hv=""
H�
H�ݤgetpost(R,S)
H�	[OPTp
H��post(R,S)
H�;LDRB R,[mem,R,LSR#16]
H��ldrb16(R,S)
H�]
H�=""
H�
H�ݤpost(R,S)
H�	[OPTp
H��getbyte1(R)
H�MOV R,R,LSL#24
I*LDRB S,[mem,R,LSR#24] ; zero page LDRB
IADD R,R,#1 << 24
I*LDRB R,[mem,R,LSR#24] ; zero page LDRB
I ADD R,S,R,LSL#8
I*MOV R,R,LSL#16
I4ADD S,R,Y,LSR#8
I>;�strb16
IH]
IR=""
I\
Ifݤgetzeroindir(R,S)
Ip	[OPTp
Iz�zeroindir(R,S)
I�;LDRB R,[mem,S]
I��ldrb2(R,S)
I�]
I�=""
I�
I�ݤzeroindir(R,S)
I�	[OPTp
I��getbyte1(R)
I�MOV R,R,LSL#24
I�*LDRB S,[mem,R,LSR#24] ; zero page LDRB
I�ADD R,R,#1 << 24
I�*LDRB R,[mem,R,LSR#24] ; zero page LDRB
I�ADD S,S,R,LSL#8
J]
J=""
J
J$#ݤgetabsindex(R,S,T) � T=X or Y
J.	[OPTp
J8�absindex(R,S,T)
JB;LDRB R,[mem,S,LSR#16]
JL�ldrb16(R,S)
JV]
J`=""
Jj
Jt ݤabsindex(R,S,T) � T=X or Y
J~	[OPTp
J��getbyte2(R,S)
J�ADD R,R,S,LSL#8
J�MOV R,R,LSL#16
J�ADD S,R,T,LSR#8
J�]
J�=""
J�
J�ݤgetzeroindex(R,S)
J�	[OPTp
J��zeroindex(R,S)
J�*LDRB R,[mem,S,LSR#24] ; zero page LDRB
J�]
K=""
K

Kݤzeroindex(R,S)
K	[OPTp
K(�getbyte1(R)
K2ADD S,X,R,LSL#24
K<]
KF=""
KP
KZݤgetzeroindexY(R,S)
Kd	[OPTp
Kn�zeroindexY(R,S)
Kx*LDRB R,[mem,S,LSR#24] ; zero page LDRB
K�]
K�=""
K�
K�ݤzeroindexY(R,S)
K�	[OPTp
K��getbyte1(R)
K�ADD S,Y,R,LSL#24
K�]
K�=""
K�
K�ݤgetbyte1(R)
K�	[OPTp
K�ADD R,zpc,#1 << 16
L.;LDRB R,[mem,R,LSR#16] ; instruction fetch
LMOV R2,#pagetable
LLDRB R2,[R2,R,LSR#28]
L"MOV R2,R2,LSL#12
L,LDRB R,[R2,R,LSR#16]
L6]
L@=""
LJ
LTݤXXgetbyte2(R,S)
L^	[OPTp
LhADD S,mem,zpc,LSR#16
LrLDRB R,[S,#1]
L|'LDRB S,[S,#2] ; instruction fetches
L�]
L�=""
L�
L�ݤgetbyte2(R,S)
L�	[OPTp
L�;ADD S,mem,zpc,LSR#16
L�;LDRB R,[S,#1]
L�(;LDRB S,[S,#2] ; instruction fetches
L�ADD R,zpc,#1 << 16
L�MOV R2,#pagetable
L�LDRB S,[R2,R,LSR#28]
L�MOV S,S,LSL#12
L�LDRB R,[S,R,LSR#16]
MADD S,zpc,#2 << 16
M;MOV R2,#pagetable
MLDRB R2,[R2,S,LSR#28]
M&MOV R2,R2,LSL#12
M0LDRB S,[R2,S,LSR#16]
M:
MD]
MN=""
MX
Mb
ݤpull(R)
Ml
Ȏ R �
Mv� F
M�	[OPTp
M�ADD SP,SP,#1 << 24
M�LDRB R1,[mem,SP,ROR#24]
M�BIC F,F,#&FF
M�
�R F,F,R1
M�BL reset_bcdflag
M�]
M�� A,X,Y
M�	[OPTp
M�ADD SP,SP,#1 << 24
M�LDRB R0,[mem,SP,ROR#24]
M�MOVS R,R0,LSL#24
M��setupNZ
N]
N
N	[OPTp
N ADD SP,SP,#1 << 24
N*LDRB R0,[mem,SP,ROR#24]
N4MOV R,R0,LSL#24
N>]
NH�
NR=""
N\
Nf
ݤpush(R)
Np� R=F � R=0 � R=1 �
Nz	[OPTp
N�STRB R,[mem,SP,ROR#24]
N�SUB SP,SP,#1 << 24
N�]
N��
N�	[OPTp
N�MOV R0,R,LSR#24
N�STRB R0,[mem,SP,ROR#24]
N�SUB SP,SP,#1 << 24
N�]
N��
N�=""
N�
�
00000000  0d 00 0a 0f f4 20 3e 20  4f 70 63 6f 64 65 73 0d  |..... > Opcodes.|
00000010  00 14 04 0d 00 1e 0d dd  a4 6f 70 63 6f 64 65 73  |.........opcodes|
00000020  0d 00 28 04 0d 00 32 15  e3 20 62 63 64 5f 6c 6f  |..(...2.. bcd_lo|
00000030  6f 70 25 3d 30 20 b8 20  31 0d 00 3c 0d 6f 70 63  |op%=0 . 1..<.opc|
00000040  6f 64 65 25 3d 30 0d 00  46 39 e7 20 62 63 64 5f  |ode%=0..F9. bcd_|
00000050  6c 6f 6f 70 25 3d 30 20  8c 20 5b 4f 50 54 70 3a  |loop%=0 . [OPTp:|
00000060  2e 6f 70 63 6f 64 65 28  26 30 29 3a 5d 20 8b 20  |.opcode(&0):] . |
00000070  5b 4f 50 54 70 3a 2e 62  63 64 28 30 29 3a 5d 0d  |[OPTp:.bcd(0):].|
00000080  00 50 04 0d 00 5a 09 5b  4f 50 54 70 0d 00 64 04  |.P...Z.[OPTp..d.|
00000090  0d 00 6e 16 3b 2e 6f 70  63 6f 64 65 28 26 30 29  |..n.;.opcode(&0)|
000000a0  20 3b 20 42 52 4b 0d 00  78 18 41 44 44 20 7a 70  | ; BRK..x.ADD zp|
000000b0  63 2c 7a 70 63 2c 23 32  20 3c 3c 20 31 36 0d 00  |c,zpc,#2 << 16..|
000000c0  82 15 4d 4f 56 20 52 30  2c 7a 70 63 2c 4c 53 52  |..MOV R0,zpc,LSR|
000000d0  23 32 34 0d 00 8c 0c a4  70 75 73 68 28 30 29 0d  |#24.....push(0).|
000000e0  00 96 15 4d 4f 56 20 52  30 2c 7a 70 63 2c 4c 53  |...MOV R0,zpc,LS|
000000f0  52 23 31 36 0d 00 a0 0c  a4 70 75 73 68 28 30 29  |R#16.....push(0)|
00000100  0d 00 aa 21 84 52 20 46  2c 46 2c 23 25 31 30 30  |...!.R F,F,#%100|
00000110  30 30 20 3b 20 73 65 74  20 42 52 4b 20 66 6c 61  |00 ; set BRK fla|
00000120  67 0d 00 b4 0c a4 70 75  73 68 28 46 29 0d 00 be  |g.....push(F)...|
00000130  1f 84 52 20 46 2c 46 2c  23 25 30 30 31 30 30 20  |..R F,F,#%00100 |
00000140  3b 20 73 65 74 20 49 20  66 6c 61 67 0d 00 c8 38  |; set I flag...8|
00000150  42 49 43 20 46 2c 46 2c  23 25 31 30 30 30 30 20  |BIC F,F,#%10000 |
00000160  3b 20 63 6c 65 61 72 20  42 52 4b 20 66 6c 61 67  |; clear BRK flag|
00000170  2e 2e 2e 2e 2e 20 73 65  65 6d 73 20 74 6f 20 77  |..... seems to w|
00000180  6f 72 6b 21 0d 00 d2 21  4d 4f 56 20 52 30 2c 23  |ork!...!MOV R0,#|
00000190  26 31 30 30 30 30 20 3a  20 53 55 42 20 52 30 2c  |&10000 : SUB R0,|
000001a0  52 30 2c 23 32 0d 00 dc  15 4c 44 52 42 20 7a 70  |R0,#2....LDRB zp|
000001b0  63 2c 5b 6d 65 6d 2c 52  30 5d 0d 00 e6 10 41 44  |c,[mem,R0]....AD|
000001c0  44 20 52 30 2c 52 30 2c  23 31 0d 00 f0 14 4c 44  |D R0,R0,#1....LD|
000001d0  52 42 20 52 30 2c 5b 6d  65 6d 2c 52 30 5d 0d 00  |RB R0,[mem,R0]..|
000001e0  fa 18 41 44 44 20 7a 70  63 2c 7a 70 63 2c 52 30  |..ADD zpc,zpc,R0|
000001f0  2c 4c 53 4c 23 38 0d 01  04 16 4d 4f 56 20 7a 70  |,LSL#8....MOV zp|
00000200  63 2c 7a 70 63 2c 4c 53  4c 23 31 36 0d 01 0e 0f  |c,zpc,LSL#16....|
00000210  a4 66 65 74 63 68 28 30  2c 37 29 0d 01 18 05 3b  |.fetch(0,7)....;|
00000220  0d 01 22 1a 2e 6f 70 63  6f 64 65 28 26 31 29 20  |.."..opcode(&1) |
00000230  3b 20 84 41 20 28 6e 2c  58 29 0d 01 2c 10 a4 67  |; .A (n,X)..,..g|
00000240  65 74 70 72 65 28 30 2c  31 29 0d 01 36 0f a4 6f  |etpre(0,1)..6..o|
00000250  72 61 28 30 2c 32 2c 36  29 0d 01 40 05 3b 0d 01  |ra(0,2,6)..@.;..|
00000260  4a 13 2e 6f 70 63 6f 64  65 28 26 32 29 20 3b 20  |J..opcode(&2) ; |
00000270  3f 0d 01 54 10 3b a4 70  72 69 6e 74 28 7a 70 63  |?..T.;.print(zpc|
00000280  29 0d 01 5e 0f 3b 4d 4f  56 20 52 30 2c 23 36 36  |)..^.;MOV R0,#66|
00000290  0d 01 68 0f 3b 42 20 72  61 77 5f 65 78 69 74 0d  |..h.;B raw_exit.|
000002a0  01 72 0e a4 75 6e 64 6f  63 28 26 32 29 0d 01 7c  |.r..undoc(&2)..||
000002b0  0f a4 66 65 74 63 68 28  31 2c 32 29 0d 01 86 05  |..fetch(1,2)....|
000002c0  3b 0d 01 90 13 2e 6f 70  63 6f 64 65 28 26 33 29  |;.....opcode(&3)|
000002d0  20 3b 20 3f 0d 01 9a 26  3b 41 44 44 53 20 52 30  | ; ?...&;ADDS R0|
000002e0  2c 7a 70 63 2c 23 28 26  31 30 30 30 30 2d 26 46  |,zpc,#(&10000-&F|
000002f0  46 46 34 29 20 3c 3c 20  31 36 0d 01 a4 17 3b 43  |FF4) << 16....;C|
00000300  4d 50 45 51 20 41 2c 23  26 38 31 20 3c 3c 20 32  |MPEQ A,#&81 << 2|
00000310  34 0d 01 ae 17 41 44 44  20 52 30 2c 7a 70 63 2c  |4....ADD R0,zpc,|
00000320  23 31 20 3c 3c 20 31 36  0d 01 b8 1c 3b 4c 44 52  |#1 << 16....;LDR|
00000330  42 20 52 30 2c 5b 6d 65  6d 2c 52 30 2c 4c 53 52  |B R0,[mem,R0,LSR|
00000340  23 31 36 5d 0d 01 b9 15  4d 4f 56 20 52 32 2c 23  |#16]....MOV R2,#|
00000350  70 61 67 65 74 61 62 6c  65 0d 01 ba 1a 4c 44 52  |pagetable....LDR|
00000360  42 20 52 32 2c 5b 52 32  2c 52 30 2c 4c 53 52 23  |B R2,[R2,R0,LSR#|
00000370  32 38 5d 0d 01 bb 14 4d  4f 56 20 52 32 2c 52 32  |28]....MOV R2,R2|
00000380  2c 4c 53 4c 23 31 32 0d  01 bc 1a 4c 44 52 42 20  |,LSL#12....LDRB |
00000390  52 30 2c 5b 52 32 2c 52  30 2c 4c 53 52 23 31 36  |R0,[R2,R0,LSR#16|
000003a0  5d 0d 01 c2 0d 43 4d 50  20 52 30 2c 23 33 0d 01  |]....CMP R0,#3..|
000003b0  cc 0e 42 45 51 20 6f 73  62 70 75 74 0d 01 d6 0d  |..BEQ osbput....|
000003c0  43 4d 50 20 52 30 2c 23  34 0d 01 e0 0e 42 45 51  |CMP R0,#4....BEQ|
000003d0  20 6f 73 62 67 65 74 0d  01 ea 0d 4d 4f 56 20 52  | osbget....MOV R|
000003e0  30 2c 23 33 0d 01 f4 0e  42 20 72 61 77 5f 65 78  |0,#3....B raw_ex|
000003f0  69 74 0d 01 fe 0f a4 66  65 74 63 68 28 31 2c 32  |it.....fetch(1,2|
00000400  29 0d 02 08 05 3b 0d 02  12 17 2e 6f 70 63 6f 64  |)....;.....opcod|
00000410  65 28 26 34 29 20 3b 20  54 53 42 20 6e 0d 02 1c  |e(&4) ; TSB n...|
00000420  11 a4 67 65 74 7a 65 72  6f 28 30 2c 31 29 0d 02  |..getzero(0,1)..|
00000430  26 0b a4 74 73 62 28 30  29 0d 02 30 25 53 54 52  |&..tsb(0)..0%STR|
00000440  42 20 52 30 2c 5b 6d 65  6d 2c 52 31 5d 20 3b 20  |B R0,[mem,R1] ; |
00000450  7a 65 72 6f 20 70 61 67  65 20 53 54 52 42 0d 02  |zero page STRB..|
00000460  3a 0f a4 66 65 74 63 68  28 32 2c 35 29 0d 02 44  |:..fetch(2,5)..D|
00000470  05 3b 0d 02 4e 16 2e 6f  70 63 6f 64 65 28 26 35  |.;..N..opcode(&5|
00000480  29 20 3b 20 84 41 20 6e  0d 02 58 11 a4 67 65 74  |) ; .A n..X..get|
00000490  7a 65 72 6f 28 30 2c 31  29 0d 02 62 0f a4 6f 72  |zero(0,1)..b..or|
000004a0  61 28 30 2c 32 2c 33 29  0d 02 6c 05 3b 0d 02 76  |a(0,2,3)..l.;..v|
000004b0  17 2e 6f 70 63 6f 64 65  28 26 36 29 20 3b 20 41  |..opcode(&6) ; A|
000004c0  53 4c 20 6e 0d 02 80 11  a4 67 65 74 7a 65 72 6f  |SL n.....getzero|
000004d0  28 30 2c 31 29 0d 02 8a  0b a4 61 73 6c 28 30 29  |(0,1).....asl(0)|
000004e0  0d 02 94 25 53 54 52 42  20 52 30 2c 5b 6d 65 6d  |...%STRB R0,[mem|
000004f0  2c 52 31 5d 20 3b 20 7a  65 72 6f 20 70 61 67 65  |,R1] ; zero page|
00000500  20 53 54 52 42 0d 02 9e  0f a4 66 65 74 63 68 28  | STRB.....fetch(|
00000510  32 2c 35 29 0d 02 a8 05  3b 0d 02 b2 27 2e 6f 70  |2,5)....;...'.op|
00000520  63 6f 64 65 28 26 37 29  20 3b 20 28 53 4c 4f 20  |code(&7) ; (SLO |
00000530  6e 20 2d 20 41 53 4c 20  6e 2c 20 84 41 20 6e 29  |n - ASL n, .A n)|
00000540  0d 02 bc 18 43 4d 50 20  7a 70 63 2c 23 26 38 30  |....CMP zpc,#&80|
00000550  30 30 20 3c 3c 20 31 36  0d 02 c6 10 3b 42 48 53  |00 << 16....;BHS|
00000560  20 6f 70 63 6f 64 65 37  0d 02 d0 0f 4d 4f 56 48  | opcode7....MOVH|
00000570  53 20 52 30 2c 23 37 0d  02 da 10 42 48 53 20 72  |S R0,#7....BHS r|
00000580  61 77 5f 65 78 69 74 0d  02 e4 11 a4 67 65 74 7a  |aw_exit.....getz|
00000590  65 72 6f 28 30 2c 31 29  0d 02 ee 0b a4 61 73 6c  |ero(0,1).....asl|
000005a0  28 30 29 0d 02 f8 1d 84  52 53 20 41 2c 41 2c 52  |(0).....RS A,A,R|
000005b0  30 2c 4c 53 4c 23 32 34  20 3b 20 84 41 20 7a 70  |0,LSL#24 ; .A zp|
000005c0  0d 03 02 14 53 54 52 42  20 52 30 2c 5b 6d 65 6d  |....STRB R0,[mem|
000005d0  2c 52 31 5d 0d 03 0c 0f  a4 66 65 74 63 68 28 32  |,R1].....fetch(2|
000005e0  2c 30 29 0d 03 16 05 3b  0d 03 20 15 2e 6f 70 63  |,0)....;.. ..opc|
000005f0  6f 64 65 28 26 38 29 20  3b 20 50 48 50 0d 03 2a  |ode(&8) ; PHP..*|
00000600  0c a4 70 75 73 68 28 46  29 0d 03 34 0f a4 66 65  |..push(F)..4..fe|
00000610  74 63 68 28 31 2c 33 29  0d 03 3e 05 3b 0d 03 48  |tch(1,3)..>.;..H|
00000620  17 2e 6f 70 63 6f 64 65  28 26 39 29 20 3b 20 84  |..opcode(&9) ; .|
00000630  41 20 23 4e 0d 03 52 10  a4 67 65 74 62 79 74 65  |A #N..R..getbyte|
00000640  31 28 30 29 0d 03 5c 0f  a4 6f 72 61 28 30 2c 32  |1(0)..\..ora(0,2|
00000650  2c 32 29 0d 03 66 05 3b  0d 03 70 17 2e 6f 70 63  |,2)..f.;..p..opc|
00000660  6f 64 65 28 26 41 29 20  3b 20 41 53 4c 20 41 0d  |ode(&A) ; ASL A.|
00000670  03 7a 12 4d 4f 56 53 20  41 2c 41 2c 4c 53 4c 23  |.z.MOVS A,A,LSL#|
00000680  31 0d 03 84 0d a4 73 65  74 75 70 4e 5a 43 0d 03  |1.....setupNZC..|
00000690  8e 0f a4 66 65 74 63 68  28 31 2c 32 29 0d 03 98  |...fetch(1,2)...|
000006a0  05 3b 0d 03 a2 2f 2e 6f  70 63 6f 64 65 28 26 42  |.;.../.opcode(&B|
000006b0  29 20 3b 20 41 4e 43 20  28 75 6e 64 6f 63 75 6d  |) ; ANC (undocum|
000006c0  65 6e 74 65 64 20 2d 20  52 65 70 74 6f 6e 20 32  |ented - Repton 2|
000006d0  29 0d 03 ac 1d 20 20 20  20 20 20 20 20 20 20 20  |)....           |
000006e0  20 3b 20 80 20 23 4e 2c  20 41 53 4c 20 41 0d 03  | ; . #N, ASL A..|
000006f0  b6 10 a4 67 65 74 62 79  74 65 31 28 30 29 0d 03  |...getbyte1(0)..|
00000700  c0 14 80 20 52 30 2c 41  2c 52 30 2c 4c 53 4c 23  |... R0,A,R0,LSL#|
00000710  32 34 0d 03 ca 12 4d 4f  56 53 20 41 2c 41 2c 4c  |24....MOVS A,A,L|
00000720  53 4c 23 31 0d 03 d4 0d  a4 73 65 74 75 70 4e 5a  |SL#1.....setupNZ|
00000730  43 0d 03 de 0f a4 66 65  74 63 68 28 32 2c 32 29  |C.....fetch(2,2)|
00000740  0d 03 e8 05 3b 0d 03 f2  18 2e 6f 70 63 6f 64 65  |....;.....opcode|
00000750  28 26 43 29 20 3b 20 54  53 42 20 6e 6e 0d 03 fc  |(&C) ; TSB nn...|
00000760  10 a4 67 65 74 61 62 73  28 30 2c 31 29 0d 04 06  |..getabs(0,1)...|
00000770  0b a4 74 73 62 28 30 29  0d 04 10 0e a4 73 74 72  |..tsb(0).....str|
00000780  62 28 30 2c 31 29 0d 04  1a 0f a4 66 65 74 63 68  |b(0,1).....fetch|
00000790  28 33 2c 36 29 0d 04 24  05 3b 0d 04 2e 17 2e 6f  |(3,6)..$.;.....o|
000007a0  70 63 6f 64 65 28 26 44  29 20 3b 20 84 41 20 6e  |pcode(&D) ; .A n|
000007b0  6e 0d 04 38 10 a4 67 65  74 61 62 73 28 30 2c 31  |n..8..getabs(0,1|
000007c0  29 0d 04 42 0f a4 6f 72  61 28 30 2c 33 2c 34 29  |)..B..ora(0,3,4)|
000007d0  0d 04 4c 05 3b 0d 04 56  18 2e 6f 70 63 6f 64 65  |..L.;..V..opcode|
000007e0  28 26 45 29 20 3b 20 41  53 4c 20 6e 6e 0d 04 60  |(&E) ; ASL nn..`|
000007f0  10 a4 67 65 74 61 62 73  28 30 2c 31 29 0d 04 6a  |..getabs(0,1)..j|
00000800  0b a4 61 73 6c 28 30 29  0d 04 74 0e a4 73 74 72  |..asl(0)..t..str|
00000810  62 28 30 2c 31 29 0d 04  7e 0f a4 66 65 74 63 68  |b(0,1)..~..fetch|
00000820  28 33 2c 36 29 0d 04 88  05 3b 0d 04 92 13 2e 6f  |(3,6)....;.....o|
00000830  70 63 6f 64 65 28 26 46  29 20 3b 20 3f 0d 04 9c  |pcode(&F) ; ?...|
00000840  0e a4 75 6e 64 6f 63 28  26 46 29 0d 04 a6 0f a4  |..undoc(&F).....|
00000850  66 65 74 63 68 28 31 2c  32 29 0d 04 b0 05 3b 0d  |fetch(1,2)....;.|
00000860  04 ba 18 2e 6f 70 63 6f  64 65 28 26 31 30 29 20  |....opcode(&10) |
00000870  3b 20 42 50 4c 20 72 0d  04 c4 14 54 53 54 20 46  |; BPL r....TST F|
00000880  2c 23 25 31 30 30 30 30  30 30 30 0d 04 ce 14 42  |,#%10000000....B|
00000890  4e 45 20 62 72 61 6e 63  68 5f 66 65 74 63 68 0d  |NE branch_fetch.|
000008a0  04 d8 0b a4 62 72 61 6e  63 68 0d 04 e2 05 3b 0d  |....branch....;.|
000008b0  04 ec 1b 2e 6f 70 63 6f  64 65 28 26 31 31 29 20  |....opcode(&11) |
000008c0  3b 20 84 41 20 28 6e 29  2c 59 0d 04 f6 11 a4 67  |; .A (n),Y.....g|
000008d0  65 74 70 6f 73 74 28 30  2c 31 29 0d 05 00 0f a4  |etpost(0,1).....|
000008e0  6f 72 61 28 30 2c 32 2c  35 29 0d 05 0a 05 3b 0d  |ora(0,2,5)....;.|
000008f0  05 14 19 2e 6f 70 63 6f  64 65 28 26 31 32 29 20  |....opcode(&12) |
00000900  3b 20 84 41 20 28 6e 29  0d 05 1e 16 a4 67 65 74  |; .A (n).....get|
00000910  7a 65 72 6f 69 6e 64 69  72 28 30 2c 31 29 0d 05  |zeroindir(0,1)..|
00000920  28 0f a4 6f 72 61 28 30  2c 32 2c 35 29 0d 05 32  |(..ora(0,2,5)..2|
00000930  05 3b 0d 05 3c 19 2e 6f  70 63 6f 64 65 28 26 31  |.;..<..opcode(&1|
00000940  33 29 20 3b 20 4f 53 42  59 54 45 0d 05 46 0f a4  |3) ; OSBYTE..F..|
00000950  75 6e 64 6f 63 28 26 31  33 29 0d 05 50 0f a4 66  |undoc(&13)..P..f|
00000960  65 74 63 68 28 31 2c 32  29 0d 05 5a 05 3b 0d 05  |etch(1,2)..Z.;..|
00000970  64 10 3b 20 3b a4 70 72  69 6e 74 28 41 29 0d 05  |d.; ;.print(A)..|
00000980  6e 14 3b 20 3b 53 57 49  20 26 31 30 30 2b 97 22  |n.; ;SWI &100+."|
00000990  4f 22 0d 05 78 15 3b 20  43 4d 50 20 41 2c 23 31  |O"..x.; CMP A,#1|
000009a0  39 20 3c 3c 20 32 34 0d  05 82 15 3b 20 42 45 51  |9 << 24....; BEQ|
000009b0  20 6f 70 63 6f 64 65 28  26 36 30 29 0d 05 8c 16  | opcode(&60)....|
000009c0  3b 20 43 4d 50 20 41 2c  23 26 38 31 20 3c 3c 20  |; CMP A,#&81 << |
000009d0  32 34 0d 05 96 12 3b 20  42 45 51 20 6f 73 62 79  |24....; BEQ osby|
000009e0  74 65 38 31 0d 05 a0 16  3b 20 43 4d 50 20 41 2c  |te81....; CMP A,|
000009f0  23 26 37 41 20 3c 3c 20  32 34 0d 05 aa 18 3b 20  |#&7A << 24....; |
00000a00  42 45 51 20 67 65 6e 65  72 69 63 5f 6f 73 62 79  |BEQ generic_osby|
00000a10  74 65 0d 05 b4 16 3b 20  43 4d 50 20 41 2c 23 26  |te....; CMP A,#&|
00000a20  37 39 20 3c 3c 20 32 34  0d 05 be 18 3b 20 42 45  |79 << 24....; BE|
00000a30  51 20 67 65 6e 65 72 69  63 5f 6f 73 62 79 74 65  |Q generic_osbyte|
00000a40  0d 05 c8 16 3b 20 43 4d  50 20 41 2c 23 26 38 30  |....; CMP A,#&80|
00000a50  20 3c 3c 20 32 34 0d 05  d2 12 3b 20 42 45 51 20  | << 24....; BEQ |
00000a60  6f 73 62 79 74 65 38 30  0d 05 dc 12 3b 20 4d 4f  |osbyte80....; MO|
00000a70  56 20 52 30 2c 23 26 32  30 30 0d 05 e6 13 3b 20  |V R0,#&200....; |
00000a80  41 44 44 20 52 30 2c 52  30 2c 23 26 41 0d 05 f0  |ADD R0,R0,#&A...|
00000a90  16 3b 20 4c 44 52 20 7a  70 63 2c 5b 6d 65 6d 2c  |.; LDR zpc,[mem,|
00000aa0  52 30 5d 0d 05 fa 18 3b  20 4d 4f 56 20 7a 70 63  |R0]....; MOV zpc|
00000ab0  2c 7a 70 63 2c 4c 53 4c  23 31 36 0d 06 04 11 3b  |,zpc,LSL#16....;|
00000ac0  20 a4 66 65 74 63 68 28  30 2c 30 29 0d 06 0e 0f  | .fetch(0,0)....|
00000ad0  3b 20 2e 6f 73 62 79 74  65 38 31 0d 06 18 17 3b  |; .osbyte81....;|
00000ae0  20 3b 4d 4f 56 53 20 52  30 2c 58 2c 4c 53 52 23  | ;MOVS R0,X,LSR#|
00000af0  32 34 0d 06 22 11 3b 20  3b 42 45 51 20 73 6b 69  |24..".; ;BEQ ski|
00000b00  70 35 35 0d 06 2c 11 3b  20 3b a4 70 72 69 6e 74  |p55..,.; ;.print|
00000b10  32 28 30 29 0d 06 36 15  3b 20 3b 53 57 49 20 22  |2(0)..6.; ;SWI "|
00000b20  4f 53 5f 52 65 61 64 43  22 0d 06 40 0e 3b 20 3b  |OS_ReadC"..@.; ;|
00000b30  2e 73 6b 69 70 35 35 0d  06 4a 16 3b 20 43 4d 50  |.skip55..J.; CMP|
00000b40  20 59 2c 23 26 38 30 20  3c 3c 20 32 34 0d 06 54  | Y,#&80 << 24..T|
00000b50  0d 3b 20 42 48 53 20 6f  73 32 0d 06 5e 16 3b 20  |.; BHS os2..^.; |
00000b60  43 4d 50 20 58 2c 23 26  32 30 20 3c 3c 20 32 34  |CMP X,#&20 << 24|
00000b70  0d 06 68 1f 3b 20 53 57  49 48 49 20 22 36 35 30  |..h.; SWIHI "650|
00000b80  32 5f 55 70 64 61 74 65  53 63 72 65 65 6e 22 0d  |2_UpdateScreen".|
00000b90  06 72 0a 3b 20 2e 6f 73  32 0d 06 7c 15 3b 20 4d  |.r.; .os2..|.; M|
00000ba0  4f 56 20 52 30 2c 41 2c  4c 53 52 23 32 34 0d 06  |OV R0,A,LSR#24..|
00000bb0  86 15 3b 20 4d 4f 56 20  52 31 2c 58 2c 4c 53 52  |..; MOV R1,X,LSR|
00000bc0  23 32 34 0d 06 90 15 3b  20 4d 4f 56 20 52 32 2c  |#24....; MOV R2,|
00000bd0  59 2c 4c 53 52 23 32 34  0d 06 9a 13 3b 20 53 57  |Y,LSR#24....; SW|
00000be0  49 20 22 4f 53 5f 42 79  74 65 22 0d 06 a4 16 3b  |I "OS_Byte"....;|
00000bf0  20 43 4d 50 20 59 2c 23  26 46 46 20 3c 3c 20 32  | CMP Y,#&FF << 2|
00000c00  34 0d 06 ae 0d 3b 20 42  4e 45 20 6f 73 33 0d 06  |4....; BNE os3..|
00000c10  b8 11 3b 20 42 49 43 20  46 2c 46 2c 23 25 31 0d  |..; BIC F,F,#%1.|
00000c20  06 c2 11 3b 20 43 4d 50  20 52 32 2c 23 26 46 46  |...; CMP R2,#&FF|
00000c30  0d 06 cc 11 3b 20 84 52  45 51 20 46 2c 46 2c 23  |....; .REQ F,F,#|
00000c40  31 0d 06 d6 0a 3b 20 2e  6f 73 33 0d 06 e0 16 3b  |1....; .os3....;|
00000c50  20 43 4d 50 20 59 2c 23  26 38 30 20 3c 3c 20 31  | CMP Y,#&80 << 1|
00000c60  36 0d 06 ea 0d 3b 20 42  48 53 20 6f 73 34 0d 06  |6....; BHS os4..|
00000c70  f4 1e 3b 20 43 4d 50 20  52 32 2c 23 30 20 3b 20  |..; CMP R2,#0 ; |
00000c80  6b 65 79 20 64 65 74 65  63 74 65 64 0d 06 fe 14  |key detected....|
00000c90  3b 20 43 4d 50 45 51 20  52 31 2c 23 97 22 27 22  |; CMPEQ R1,#."'"|
00000ca0  0d 07 08 10 3b 20 ec 51  20 52 31 2c 23 97 22 3a  |....; .Q R1,#.":|
00000cb0  0d 07 12 11 3b 20 43 4d  50 20 52 32 2c 23 26 46  |....; CMP R2,#&F|
00000cc0  46 0d 07 1c 0e 3b 20 ec  51 20 52 31 2c 23 30 0d  |F....; .Q R1,#0.|
00000cd0  07 26 11 3b 20 43 4d 50  20 52 31 2c 23 26 31 42  |.&.; CMP R1,#&1B|
00000ce0  0d 07 30 0e 3b 20 ec 51  20 52 32 2c 52 31 0d 07  |..0.; .Q R2,R1..|
00000cf0  3a 12 3b 20 84 52 45 51  20 46 2c 46 2c 23 25 31  |:.; .REQ F,F,#%1|
00000d00  0d 07 44 0a 3b 20 2e 6f  73 34 0d 07 4e 15 3b 20  |..D.; .os4..N.; |
00000d10  4d 4f 56 20 41 2c 52 30  2c 4c 53 4c 23 32 34 0d  |MOV A,R0,LSL#24.|
00000d20  07 58 15 3b 20 4d 4f 56  20 58 2c 52 31 2c 4c 53  |.X.; MOV X,R1,LS|
00000d30  4c 23 32 34 0d 07 62 15  3b 20 4d 4f 56 20 59 2c  |L#24..b.; MOV Y,|
00000d40  52 32 2c 4c 53 4c 23 32  34 0d 07 6c 10 3b 20 ec  |R2,LSL#24..l.; .|
00000d50  51 20 52 30 2c 23 26 46  46 0d 07 76 18 3b 20 4c  |Q R0,#&FF..v.; L|
00000d60  44 52 45 51 42 20 52 31  2c 5b 6d 65 6d 2c 52 30  |DREQB R1,[mem,R0|
00000d70  5d 0d 07 80 13 3b 20 84  52 20 52 31 2c 52 31 2c  |]....; .R R1,R1,|
00000d80  23 26 38 30 0d 07 8a 18  3b 20 53 54 52 45 51 42  |#&80....; STREQB|
00000d90  20 52 31 2c 5b 6d 65 6d  2c 52 30 5d 0d 07 94 13  | R1,[mem,R0]....|
00000da0  3b 20 42 20 6f 70 63 6f  64 65 28 26 36 30 29 0d  |; B opcode(&60).|
00000db0  07 9e 15 3b 20 2e 67 65  6e 65 72 69 63 5f 6f 73  |...; .generic_os|
00000dc0  62 79 74 65 0d 07 a8 15  3b 20 4d 4f 56 20 52 30  |byte....; MOV R0|
00000dd0  2c 41 2c 4c 53 52 23 32  34 0d 07 b2 15 3b 20 4d  |,A,LSR#24....; M|
00000de0  4f 56 20 52 31 2c 58 2c  4c 53 52 23 32 34 0d 07  |OV R1,X,LSR#24..|
00000df0  bc 15 3b 20 4d 4f 56 20  52 32 2c 59 2c 4c 53 52  |..; MOV R2,Y,LSR|
00000e00  23 32 34 0d 07 c6 13 3b  20 53 57 49 20 22 4f 53  |#24....; SWI "OS|
00000e10  5f 42 79 74 65 22 0d 07  d0 15 3b 20 4d 4f 56 20  |_Byte"....; MOV |
00000e20  41 2c 52 30 2c 4c 53 4c  23 32 34 0d 07 da 15 3b  |A,R0,LSL#24....;|
00000e30  20 4d 4f 56 20 58 2c 52  31 2c 4c 53 4c 23 32 34  | MOV X,R1,LSL#24|
00000e40  0d 07 e4 15 3b 20 4d 4f  56 20 59 2c 52 32 2c 4c  |....; MOV Y,R2,L|
00000e50  53 4c 23 32 34 0d 07 ee  13 3b 20 42 20 6f 70 63  |SL#24....; B opc|
00000e60  6f 64 65 28 26 36 30 29  0d 07 f8 0f 3b 20 2e 6f  |ode(&60)....; .o|
00000e70  73 62 79 74 65 38 30 0d  08 02 0e 3b 20 4d 4f 56  |sbyte80....; MOV|
00000e80  20 58 2c 23 30 0d 08 0c  13 3b 20 42 20 6f 70 63  | X,#0....; B opc|
00000e90  6f 64 65 28 26 36 30 29  0d 08 16 04 0d 08 20 05  |ode(&60)...... .|
00000ea0  3b 0d 08 2a 18 2e 6f 70  63 6f 64 65 28 26 31 34  |;..*..opcode(&14|
00000eb0  29 20 3b 20 54 52 42 20  6e 0d 08 34 11 a4 67 65  |) ; TRB n..4..ge|
00000ec0  74 7a 65 72 6f 28 30 2c  31 29 0d 08 3e 0b a4 74  |tzero(0,1)..>..t|
00000ed0  72 62 28 30 29 0d 08 48  25 53 54 52 42 20 52 30  |rb(0)..H%STRB R0|
00000ee0  2c 5b 6d 65 6d 2c 52 31  5d 20 3b 20 7a 65 72 6f  |,[mem,R1] ; zero|
00000ef0  20 70 61 67 65 20 53 54  52 42 0d 08 52 0f a4 66  | page STRB..R..f|
00000f00  65 74 63 68 28 32 2c 35  29 0d 08 5c 05 3b 0d 08  |etch(2,5)..\.;..|
00000f10  66 19 2e 6f 70 63 6f 64  65 28 26 31 35 29 20 3b  |f..opcode(&15) ;|
00000f20  20 84 41 20 6e 2c 58 0d  08 70 16 a4 67 65 74 7a  | .A n,X..p..getz|
00000f30  65 72 6f 69 6e 64 65 78  28 30 2c 31 29 0d 08 7a  |eroindex(0,1)..z|
00000f40  0f a4 6f 72 61 28 30 2c  32 2c 34 29 0d 08 84 05  |..ora(0,2,4)....|
00000f50  3b 0d 08 8e 1a 2e 6f 70  63 6f 64 65 28 26 31 36  |;.....opcode(&16|
00000f60  29 20 3b 20 41 53 4c 20  6e 2c 58 0d 08 98 16 a4  |) ; ASL n,X.....|
00000f70  67 65 74 7a 65 72 6f 69  6e 64 65 78 28 30 2c 31  |getzeroindex(0,1|
00000f80  29 0d 08 a2 0b a4 61 73  6c 28 30 29 0d 08 ac 2c  |).....asl(0)...,|
00000f90  53 54 52 42 20 52 30 2c  5b 6d 65 6d 2c 52 31 2c  |STRB R0,[mem,R1,|
00000fa0  4c 53 52 23 32 34 5d 20  3b 20 7a 65 72 6f 20 70  |LSR#24] ; zero p|
00000fb0  61 67 65 20 53 54 52 42  0d 08 b6 0f a4 66 65 74  |age STRB.....fet|
00000fc0  63 68 28 32 2c 36 29 0d  08 c0 05 3b 0d 08 ca 14  |ch(2,6)....;....|
00000fd0  2e 6f 70 63 6f 64 65 28  26 31 37 29 20 3b 20 3f  |.opcode(&17) ; ?|
00000fe0  0d 08 d4 0f a4 75 6e 64  6f 63 28 26 31 37 29 0d  |.....undoc(&17).|
00000ff0  08 de 0f a4 66 65 74 63  68 28 31 2c 32 29 0d 08  |....fetch(1,2)..|
00001000  e8 05 3b 0d 08 f2 16 2e  6f 70 63 6f 64 65 28 26  |..;.....opcode(&|
00001010  31 38 29 20 3b 20 43 4c  43 0d 08 fc 0f 42 49 43  |18) ; CLC....BIC|
00001020  20 46 2c 46 2c 23 25 31  0d 09 06 0f a4 66 65 74  | F,F,#%1.....fet|
00001030  63 68 28 31 2c 32 29 0d  09 10 05 3b 0d 09 1a 1a  |ch(1,2)....;....|
00001040  2e 6f 70 63 6f 64 65 28  26 31 39 29 20 3b 20 84  |.opcode(&19) ; .|
00001050  41 20 6e 6e 2c 59 0d 09  24 17 a4 67 65 74 61 62  |A nn,Y..$..getab|
00001060  73 69 6e 64 65 78 28 30  2c 31 2c 59 29 0d 09 2e  |sindex(0,1,Y)...|
00001070  0f a4 6f 72 61 28 30 2c  33 2c 34 29 0d 09 38 05  |..ora(0,3,4)..8.|
00001080  3b 0d 09 42 16 2e 6f 70  63 6f 64 65 28 26 31 41  |;..B..opcode(&1A|
00001090  29 20 3b 20 49 4e 41 0d  09 4c 0b a4 69 6e 63 28  |) ; INA..L..inc(|
000010a0  41 29 0d 09 56 0f a4 66  65 74 63 68 28 31 2c 32  |A)..V..fetch(1,2|
000010b0  29 0d 09 60 05 3b 0d 09  6a 14 2e 6f 70 63 6f 64  |)..`.;..j..opcod|
000010c0  65 28 26 31 42 29 20 3b  20 3f 0d 09 74 0f a4 75  |e(&1B) ; ?..t..u|
000010d0  6e 64 6f 63 28 26 31 42  29 0d 09 7e 0f a4 66 65  |ndoc(&1B)..~..fe|
000010e0  74 63 68 28 31 2c 32 29  0d 09 88 05 3b 0d 09 92  |tch(1,2)....;...|
000010f0  19 2e 6f 70 63 6f 64 65  28 26 31 43 29 20 3b 20  |..opcode(&1C) ; |
00001100  54 52 42 20 6e 6e 0d 09  9c 10 a4 67 65 74 61 62  |TRB nn.....getab|
00001110  73 28 30 2c 31 29 0d 09  a6 0b a4 74 72 62 28 30  |s(0,1).....trb(0|
00001120  29 0d 09 b0 0e a4 73 74  72 62 28 30 2c 31 29 0d  |).....strb(0,1).|
00001130  09 ba 0f a4 66 65 74 63  68 28 33 2c 36 29 0d 09  |....fetch(3,6)..|
00001140  c4 05 3b 0d 09 ce 1a 2e  6f 70 63 6f 64 65 28 26  |..;.....opcode(&|
00001150  31 44 29 20 3b 20 84 41  20 6e 6e 2c 58 0d 09 d8  |1D) ; .A nn,X...|
00001160  17 a4 67 65 74 61 62 73  69 6e 64 65 78 28 30 2c  |..getabsindex(0,|
00001170  31 2c 58 29 0d 09 e2 0f  a4 6f 72 61 28 30 2c 33  |1,X).....ora(0,3|
00001180  2c 34 29 0d 09 ec 05 3b  0d 09 f6 1b 2e 6f 70 63  |,4)....;.....opc|
00001190  6f 64 65 28 26 31 45 29  20 3b 20 41 53 4c 20 6e  |ode(&1E) ; ASL n|
000011a0  6e 2c 58 0d 0a 00 17 a4  67 65 74 61 62 73 69 6e  |n,X.....getabsin|
000011b0  64 65 78 28 30 2c 31 2c  58 29 0d 0a 0a 0b a4 61  |dex(0,1,X).....a|
000011c0  73 6c 28 30 29 0d 0a 14  10 a4 73 74 72 62 31 36  |sl(0).....strb16|
000011d0  28 30 2c 31 29 0d 0a 1e  0f a4 66 65 74 63 68 28  |(0,1).....fetch(|
000011e0  33 2c 37 29 0d 0a 28 05  3b 0d 0a 32 14 2e 6f 70  |3,7)..(.;..2..op|
000011f0  63 6f 64 65 28 26 31 46  29 20 3b 20 3f 0d 0a 3c  |code(&1F) ; ?..<|
00001200  0f a4 75 6e 64 6f 63 28  26 31 46 29 0d 0a 46 0f  |..undoc(&1F)..F.|
00001210  a4 66 65 74 63 68 28 31  2c 32 29 0d 0a 50 05 3b  |.fetch(1,2)..P.;|
00001220  0d 0a 5a 19 2e 6f 70 63  6f 64 65 28 26 32 30 29  |..Z..opcode(&20)|
00001230  20 3b 20 4a 53 52 20 6e  6e 0d 0a 64 10 a4 67 65  | ; JSR nn..d..ge|
00001240  74 61 62 73 28 30 2c 31  29 0d 0a 6e 18 41 44 44  |tabs(0,1)..n.ADD|
00001250  20 7a 70 63 2c 7a 70 63  2c 23 32 20 3c 3c 20 31  | zpc,zpc,#2 << 1|
00001260  36 0d 0a 78 15 4d 4f 56  20 52 30 2c 7a 70 63 2c  |6..x.MOV R0,zpc,|
00001270  4c 53 52 23 32 34 0d 0a  82 0c a4 70 75 73 68 28  |LSR#24.....push(|
00001280  30 29 0d 0a 8c 15 4d 4f  56 20 52 30 2c 7a 70 63  |0)....MOV R0,zpc|
00001290  2c 4c 53 52 23 31 36 0d  0a 96 0c a4 70 75 73 68  |,LSR#16.....push|
000012a0  28 30 29 0d 0a a0 15 4d  4f 56 20 7a 70 63 2c 52  |(0)....MOV zpc,R|
000012b0  31 2c 4c 53 4c 23 31 36  0d 0a aa 0f a4 66 65 74  |1,LSL#16.....fet|
000012c0  63 68 28 30 2c 36 29 0d  0a b4 05 3b 0d 0a be 1a  |ch(0,6)....;....|
000012d0  2e 6f 70 63 6f 64 65 28  26 32 31 29 20 3b 20 80  |.opcode(&21) ; .|
000012e0  20 28 6e 2c 58 29 0d 0a  c8 10 a4 67 65 74 70 72  | (n,X).....getpr|
000012f0  65 28 30 2c 31 29 0d 0a  d2 0f a4 61 6e 64 28 30  |e(0,1).....and(0|
00001300  2c 32 2c 36 29 0d 0a dc  05 3b 0d 0a e6 14 2e 6f  |,2,6)....;.....o|
00001310  70 63 6f 64 65 28 26 32  32 29 20 3b 20 3f 0d 0a  |pcode(&22) ; ?..|
00001320  f0 0f a4 75 6e 64 6f 63  28 26 32 32 29 0d 0a fa  |...undoc(&22)...|
00001330  0f a4 66 65 74 63 68 28  31 2c 32 29 0d 0b 04 05  |..fetch(1,2)....|
00001340  3b 0d 0b 0e 14 2e 6f 70  63 6f 64 65 28 26 32 33  |;.....opcode(&23|
00001350  29 20 3b 20 3f 0d 0b 18  10 3b 4d 4f 56 20 52 30  |) ; ?....;MOV R0|
00001360  2c 23 32 35 35 0d 0b 22  1c 3b 53 54 52 42 20 52  |,#255..".;STRB R|
00001370  30 2c 5b 6d 65 6d 2c 23  6c 61 73 74 6d 6f 64 65  |0,[mem,#lastmode|
00001380  5d 0d 0b 2c 13 42 4c 20  75 70 64 61 74 65 73 63  |]..,.BL updatesc|
00001390  72 65 65 6e 0d 0b 36 18  3b 42 4c 20 66 6f 72 63  |reen..6.;BL forc|
000013a0  65 5f 75 70 64 61 74 65  5f 70 61 6c 0d 0b 40 1c  |e_update_pal..@.|
000013b0  3b 53 57 49 20 22 36 35  30 32 5f 55 70 64 61 74  |;SWI "6502_Updat|
000013c0  65 53 63 72 65 65 6e 22  0d 0b 4a 2b 4d 4f 56 20  |eScreen"..J+MOV |
000013d0  52 30 2c 23 32 32 39 20  3a 20 4d 4f 56 20 52 31  |R0,#229 : MOV R1|
000013e0  2c 23 30 20 3a 20 53 57  49 20 22 4f 53 5f 42 79  |,#0 : SWI "OS_By|
000013f0  74 65 22 0d 0b 54 12 53  57 49 20 22 4f 53 5f 52  |te"..T.SWI "OS_R|
00001400  65 61 64 43 22 0d 0b 5e  13 4d 4f 56 20 41 2c 52  |eadC"..^.MOV A,R|
00001410  30 2c 4c 53 4c 23 32 34  0d 0b 68 1e 43 4d 50 20  |0,LSL#24..h.CMP |
00001420  52 30 2c 23 26 31 42 20  3a 20 84 52 45 51 20 46  |R0,#&1B : .REQ F|
00001430  2c 46 2c 23 25 31 0d 0b  72 18 4c 44 52 45 51 42  |,F,#%1..r.LDREQB|
00001440  20 52 30 2c 5b 6d 65 6d  2c 23 26 46 46 5d 0d 0b  | R0,[mem,#&FF]..|
00001450  7c 13 84 52 45 51 20 52  30 2c 52 30 2c 23 26 38  ||..REQ R0,R0,#&8|
00001460  30 0d 0b 86 18 53 54 52  45 51 42 20 52 30 2c 5b  |0....STREQB R0,[|
00001470  6d 65 6d 2c 23 26 46 46  5d 0d 0b 90 2b 4d 4f 56  |mem,#&FF]...+MOV|
00001480  20 52 30 2c 23 32 32 39  20 3a 20 4d 4f 56 20 52  | R0,#229 : MOV R|
00001490  31 2c 23 31 20 3a 20 53  57 49 20 22 4f 53 5f 42  |1,#1 : SWI "OS_B|
000014a0  79 74 65 22 0d 0b 9a 11  42 20 6f 70 63 6f 64 65  |yte"....B opcode|
000014b0  28 26 36 30 29 0d 0b a4  0f a4 66 65 74 63 68 28  |(&60).....fetch(|
000014c0  31 2c 32 29 0d 0b ae 05  3b 0d 0b b8 18 2e 6f 70  |1,2)....;.....op|
000014d0  63 6f 64 65 28 26 32 34  29 20 3b 20 42 49 54 20  |code(&24) ; BIT |
000014e0  6e 0d 0b c2 11 a4 67 65  74 7a 65 72 6f 28 30 2c  |n.....getzero(0,|
000014f0  31 29 0d 0b cc 0f a4 62  69 74 28 30 2c 32 2c 33  |1).....bit(0,2,3|
00001500  29 0d 0b d6 05 3b 0d 0b  e0 16 2e 6f 70 63 6f 64  |)....;.....opcod|
00001510  65 28 26 32 35 29 20 3b  20 80 20 6e 0d 0b ea 11  |e(&25) ; . n....|
00001520  a4 67 65 74 7a 65 72 6f  28 30 2c 31 29 0d 0b f4  |.getzero(0,1)...|
00001530  0f a4 61 6e 64 28 30 2c  32 2c 33 29 0d 0b fe 05  |..and(0,2,3)....|
00001540  3b 0d 0c 08 18 2e 6f 70  63 6f 64 65 28 26 32 36  |;.....opcode(&26|
00001550  29 20 3b 20 52 4f 4c 20  6e 0d 0c 12 11 a4 67 65  |) ; ROL n.....ge|
00001560  74 7a 65 72 6f 28 30 2c  31 29 0d 0c 1c 0b a4 72  |tzero(0,1).....r|
00001570  6f 6c 28 30 29 0d 0c 26  25 53 54 52 42 20 52 30  |ol(0)..&%STRB R0|
00001580  2c 5b 6d 65 6d 2c 52 31  5d 20 3b 20 7a 65 72 6f  |,[mem,R1] ; zero|
00001590  20 70 61 67 65 20 53 54  52 42 0d 0c 30 0f a4 66  | page STRB..0..f|
000015a0  65 74 63 68 28 32 2c 35  29 0d 0c 3a 05 3b 0d 0c  |etch(2,5)..:.;..|
000015b0  44 14 2e 6f 70 63 6f 64  65 28 26 32 37 29 20 3b  |D..opcode(&27) ;|
000015c0  20 3f 0d 0c 4e 0f a4 75  6e 64 6f 63 28 26 32 37  | ?..N..undoc(&27|
000015d0  29 0d 0c 58 0f a4 66 65  74 63 68 28 31 2c 32 29  |)..X..fetch(1,2)|
000015e0  0d 0c 62 05 3b 0d 0c 6c  16 2e 6f 70 63 6f 64 65  |..b.;..l..opcode|
000015f0  28 26 32 38 29 20 3b 20  50 4c 50 0d 0c 76 0c a4  |(&28) ; PLP..v..|
00001600  70 75 6c 6c 28 46 29 0d  0c 80 0f a4 66 65 74 63  |pull(F).....fetc|
00001610  68 28 31 2c 34 29 0d 0c  8a 05 3b 0d 0c 94 17 2e  |h(1,4)....;.....|
00001620  6f 70 63 6f 64 65 28 26  32 39 29 20 3b 20 80 20  |opcode(&29) ; . |
00001630  23 4e 0d 0c 9e 10 a4 67  65 74 62 79 74 65 31 28  |#N.....getbyte1(|
00001640  30 29 0d 0c a8 0f a4 61  6e 64 28 30 2c 32 2c 32  |0).....and(0,2,2|
00001650  29 0d 0c b2 05 3b 0d 0c  bc 18 2e 6f 70 63 6f 64  |)....;.....opcod|
00001660  65 28 26 32 41 29 20 3b  20 52 4f 4c 20 41 0d 0c  |e(&2A) ; ROL A..|
00001670  c6 13 4d 4f 56 20 52 30  2c 41 2c 4c 53 52 23 32  |..MOV R0,A,LSR#2|
00001680  34 0d 0c d0 0b a4 72 6f  6c 28 30 29 0d 0c da 13  |4.....rol(0)....|
00001690  4d 4f 56 20 41 2c 52 30  2c 4c 53 4c 23 32 34 0d  |MOV A,R0,LSL#24.|
000016a0  0c e4 0f a4 66 65 74 63  68 28 31 2c 32 29 0d 0c  |....fetch(1,2)..|
000016b0  ee 05 3b 0d 0c f8 14 2e  6f 70 63 6f 64 65 28 26  |..;.....opcode(&|
000016c0  32 42 29 20 3b 20 3f 0d  0d 02 0f a4 75 6e 64 6f  |2B) ; ?.....undo|
000016d0  63 28 26 32 42 29 0d 0d  0c 0f a4 66 65 74 63 68  |c(&2B).....fetch|
000016e0  28 31 2c 32 29 0d 0d 16  05 3b 0d 0d 20 19 2e 6f  |(1,2)....;.. ..o|
000016f0  70 63 6f 64 65 28 26 32  43 29 20 3b 20 42 49 54  |pcode(&2C) ; BIT|
00001700  20 6e 6e 0d 0d 2a 10 a4  67 65 74 61 62 73 28 30  | nn..*..getabs(0|
00001710  2c 31 29 0d 0d 34 0f a4  62 69 74 28 30 2c 33 2c  |,1)..4..bit(0,3,|
00001720  34 29 0d 0d 3e 05 3b 0d  0d 48 17 2e 6f 70 63 6f  |4)..>.;..H..opco|
00001730  64 65 28 26 32 44 29 20  3b 20 80 20 6e 6e 0d 0d  |de(&2D) ; . nn..|
00001740  52 10 a4 67 65 74 61 62  73 28 30 2c 31 29 0d 0d  |R..getabs(0,1)..|
00001750  5c 0f a4 61 6e 64 28 30  2c 33 2c 34 29 0d 0d 66  |\..and(0,3,4)..f|
00001760  05 3b 0d 0d 70 19 2e 6f  70 63 6f 64 65 28 26 32  |.;..p..opcode(&2|
00001770  45 29 20 3b 20 52 4f 4c  20 6e 6e 0d 0d 7a 10 a4  |E) ; ROL nn..z..|
00001780  67 65 74 61 62 73 28 30  2c 31 29 0d 0d 84 0b a4  |getabs(0,1).....|
00001790  72 6f 6c 28 30 29 0d 0d  8e 0e a4 73 74 72 62 28  |rol(0).....strb(|
000017a0  30 2c 31 29 0d 0d 98 0f  a4 66 65 74 63 68 28 33  |0,1).....fetch(3|
000017b0  2c 36 29 0d 0d a2 05 3b  0d 0d ac 14 2e 6f 70 63  |,6)....;.....opc|
000017c0  6f 64 65 28 26 32 46 29  20 3b 20 3f 0d 0d b6 0f  |ode(&2F) ; ?....|
000017d0  a4 75 6e 64 6f 63 28 26  32 46 29 0d 0d c0 0f a4  |.undoc(&2F).....|
000017e0  66 65 74 63 68 28 31 2c  32 29 0d 0d ca 05 3b 0d  |fetch(1,2)....;.|
000017f0  0d d4 18 2e 6f 70 63 6f  64 65 28 26 33 30 29 20  |....opcode(&30) |
00001800  3b 20 42 4d 49 20 72 0d  0d de 14 54 53 54 20 46  |; BMI r....TST F|
00001810  2c 23 25 31 30 30 30 30  30 30 30 0d 0d e8 14 42  |,#%10000000....B|
00001820  45 51 20 62 72 61 6e 63  68 5f 66 65 74 63 68 0d  |EQ branch_fetch.|
00001830  0d f2 0b a4 62 72 61 6e  63 68 0d 0d fc 05 3b 0d  |....branch....;.|
00001840  0e 06 1a 2e 6f 70 63 6f  64 65 28 26 33 31 29 20  |....opcode(&31) |
00001850  3b 20 80 20 28 6e 29 2c  59 0d 0e 10 11 a4 67 65  |; . (n),Y.....ge|
00001860  74 70 6f 73 74 28 30 2c  31 29 0d 0e 1a 0f a4 61  |tpost(0,1).....a|
00001870  6e 64 28 30 2c 32 2c 35  29 0d 0e 24 05 3b 0d 0e  |nd(0,2,5)..$.;..|
00001880  2e 18 2e 6f 70 63 6f 64  65 28 26 33 32 29 20 3b  |...opcode(&32) ;|
00001890  20 80 20 28 6e 29 0d 0e  38 16 a4 67 65 74 7a 65  | . (n)..8..getze|
000018a0  72 6f 69 6e 64 69 72 28  30 2c 31 29 0d 0e 42 0f  |roindir(0,1)..B.|
000018b0  a4 61 6e 64 28 30 2c 32  2c 35 29 0d 0e 4c 05 3b  |.and(0,2,5)..L.;|
000018c0  0d 0e 56 14 2e 6f 70 63  6f 64 65 28 26 33 33 29  |..V..opcode(&33)|
000018d0  20 3b 20 3f 0d 0e 60 0f  a4 75 6e 64 6f 63 28 26  | ; ?..`..undoc(&|
000018e0  33 33 29 0d 0e 6a 0f a4  66 65 74 63 68 28 31 2c  |33)..j..fetch(1,|
000018f0  32 29 0d 0e 74 05 3b 0d  0e 7e 1a 2e 6f 70 63 6f  |2)..t.;..~..opco|
00001900  64 65 28 26 33 34 29 20  3b 20 42 49 54 20 6e 2c  |de(&34) ; BIT n,|
00001910  58 0d 0e 88 16 a4 67 65  74 7a 65 72 6f 69 6e 64  |X.....getzeroind|
00001920  65 78 28 30 2c 31 29 0d  0e 92 0f a4 62 69 74 28  |ex(0,1).....bit(|
00001930  30 2c 32 2c 34 29 0d 0e  9c 05 3b 0d 0e a6 18 2e  |0,2,4)....;.....|
00001940  6f 70 63 6f 64 65 28 26  33 35 29 20 3b 20 80 20  |opcode(&35) ; . |
00001950  6e 2c 58 0d 0e b0 16 a4  67 65 74 7a 65 72 6f 69  |n,X.....getzeroi|
00001960  6e 64 65 78 28 30 2c 31  29 0d 0e ba 0f a4 61 6e  |ndex(0,1).....an|
00001970  64 28 30 2c 32 2c 34 29  0d 0e c4 05 3b 0d 0e ce  |d(0,2,4)....;...|
00001980  1a 2e 6f 70 63 6f 64 65  28 26 33 36 29 20 3b 20  |..opcode(&36) ; |
00001990  52 4f 4c 20 6e 2c 58 0d  0e d8 16 a4 67 65 74 7a  |ROL n,X.....getz|
000019a0  65 72 6f 69 6e 64 65 78  28 30 2c 31 29 0d 0e e2  |eroindex(0,1)...|
000019b0  0b a4 72 6f 6c 28 30 29  0d 0e ec 1b 53 54 52 42  |..rol(0)....STRB|
000019c0  20 52 30 2c 5b 6d 65 6d  2c 52 31 2c 4c 53 52 23  | R0,[mem,R1,LSR#|
000019d0  32 34 5d 0d 0e f6 0f a4  66 65 74 63 68 28 32 2c  |24].....fetch(2,|
000019e0  36 29 0d 0f 00 05 3b 0d  0f 0a 14 2e 6f 70 63 6f  |6)....;.....opco|
000019f0  64 65 28 26 33 37 29 20  3b 20 3f 0d 0f 14 0f a4  |de(&37) ; ?.....|
00001a00  75 6e 64 6f 63 28 26 33  37 29 0d 0f 1e 0f a4 66  |undoc(&37).....f|
00001a10  65 74 63 68 28 31 2c 32  29 0d 0f 28 05 3b 0d 0f  |etch(1,2)..(.;..|
00001a20  32 16 2e 6f 70 63 6f 64  65 28 26 33 38 29 20 3b  |2..opcode(&38) ;|
00001a30  20 53 45 43 0d 0f 3c 0e  84 52 20 46 2c 46 2c 23  | SEC..<..R F,F,#|
00001a40  25 31 0d 0f 46 0f a4 66  65 74 63 68 28 31 2c 32  |%1..F..fetch(1,2|
00001a50  29 0d 0f 50 05 3b 0d 0f  5a 19 2e 6f 70 63 6f 64  |)..P.;..Z..opcod|
00001a60  65 28 26 33 39 29 20 3b  20 80 20 6e 6e 2c 59 0d  |e(&39) ; . nn,Y.|
00001a70  0f 64 17 a4 67 65 74 61  62 73 69 6e 64 65 78 28  |.d..getabsindex(|
00001a80  30 2c 31 2c 59 29 0d 0f  6e 0f a4 61 6e 64 28 30  |0,1,Y)..n..and(0|
00001a90  2c 33 2c 34 29 0d 0f 78  05 3b 0d 0f 82 16 2e 6f  |,3,4)..x.;.....o|
00001aa0  70 63 6f 64 65 28 26 33  41 29 20 3b 20 44 45 41  |pcode(&3A) ; DEA|
00001ab0  0d 0f 8c 0b a4 64 65 63  28 41 29 0d 0f 96 0f a4  |.....dec(A).....|
00001ac0  66 65 74 63 68 28 31 2c  32 29 0d 0f a0 05 3b 0d  |fetch(1,2)....;.|
00001ad0  0f aa 14 2e 6f 70 63 6f  64 65 28 26 33 42 29 20  |....opcode(&3B) |
00001ae0  3b 20 3f 0d 0f b4 0f a4  75 6e 64 6f 63 28 26 33  |; ?.....undoc(&3|
00001af0  42 29 0d 0f be 0f a4 66  65 74 63 68 28 31 2c 32  |B).....fetch(1,2|
00001b00  29 0d 0f c8 05 3b 0d 0f  d2 1b 2e 6f 70 63 6f 64  |)....;.....opcod|
00001b10  65 28 26 33 43 29 20 3b  20 42 49 54 20 6e 6e 2c  |e(&3C) ; BIT nn,|
00001b20  58 0d 0f dc 17 a4 67 65  74 61 62 73 69 6e 64 65  |X.....getabsinde|
00001b30  78 28 30 2c 31 2c 58 29  0d 0f e6 0f a4 62 69 74  |x(0,1,X).....bit|
00001b40  28 30 2c 33 2c 34 29 0d  0f f0 05 3b 0d 0f fa 19  |(0,3,4)....;....|
00001b50  2e 6f 70 63 6f 64 65 28  26 33 44 29 20 3b 20 80  |.opcode(&3D) ; .|
00001b60  20 6e 6e 2c 58 0d 10 04  17 a4 67 65 74 61 62 73  | nn,X.....getabs|
00001b70  69 6e 64 65 78 28 30 2c  31 2c 58 29 0d 10 0e 0f  |index(0,1,X)....|
00001b80  a4 61 6e 64 28 30 2c 33  2c 34 29 0d 10 18 05 3b  |.and(0,3,4)....;|
00001b90  0d 10 22 1b 2e 6f 70 63  6f 64 65 28 26 33 45 29  |.."..opcode(&3E)|
00001ba0  20 3b 20 52 4f 4c 20 6e  6e 2c 58 0d 10 2c 17 a4  | ; ROL nn,X..,..|
00001bb0  67 65 74 61 62 73 69 6e  64 65 78 28 30 2c 31 2c  |getabsindex(0,1,|
00001bc0  58 29 0d 10 36 0b a4 72  6f 6c 28 30 29 0d 10 40  |X)..6..rol(0)..@|
00001bd0  10 a4 73 74 72 62 31 36  28 30 2c 31 29 0d 10 4a  |..strb16(0,1)..J|
00001be0  0f a4 66 65 74 63 68 28  33 2c 37 29 0d 10 54 05  |..fetch(3,7)..T.|
00001bf0  3b 0d 10 5e 14 2e 6f 70  63 6f 64 65 28 26 33 46  |;..^..opcode(&3F|
00001c00  29 20 3b 20 3f 0d 10 68  0f a4 75 6e 64 6f 63 28  |) ; ?..h..undoc(|
00001c10  26 33 46 29 0d 10 72 0f  a4 66 65 74 63 68 28 31  |&3F)..r..fetch(1|
00001c20  2c 32 29 0d 10 7c 05 3b  0d 10 86 16 2e 6f 70 63  |,2)..|.;.....opc|
00001c30  6f 64 65 28 26 34 30 29  20 3b 20 52 54 49 0d 10  |ode(&40) ; RTI..|
00001c40  90 0c a4 70 75 6c 6c 28  46 29 0d 10 9a 0c a4 70  |...pull(F).....p|
00001c50  75 6c 6c 28 31 29 0d 10  a4 0e a4 70 75 6c 6c 28  |ull(1).....pull(|
00001c60  7a 70 63 29 0d 10 ae 18  41 44 44 20 7a 70 63 2c  |zpc)....ADD zpc,|
00001c70  7a 70 63 2c 52 31 2c 4c  53 52 23 38 0d 10 b8 10  |zpc,R1,LSR#8....|
00001c80  42 4c 20 69 6e 74 65 72  72 75 70 74 0d 10 c2 04  |BL interrupt....|
00001c90  0d 10 cc 28 a4 66 65 74  63 68 28 30 2c 36 29 20  |...(.fetch(0,6) |
00001ca0  3b 20 79 65 73 2c 20 74  68 61 74 20 73 68 6f 75  |; yes, that shou|
00001cb0  6c 64 20 62 65 20 30 21  0d 10 d6 05 3b 0d 10 e0  |ld be 0!....;...|
00001cc0  1a 2e 6f 70 63 6f 64 65  28 26 34 31 29 20 3b 20  |..opcode(&41) ; |
00001cd0  82 20 28 6e 2c 58 29 0d  10 ea 10 a4 67 65 74 70  |. (n,X).....getp|
00001ce0  72 65 28 30 2c 31 29 0d  10 f4 0f a4 65 6f 72 28  |re(0,1).....eor(|
00001cf0  30 2c 32 2c 36 29 0d 10  fe 05 3b 0d 11 08 14 2e  |0,2,6)....;.....|
00001d00  6f 70 63 6f 64 65 28 26  34 32 29 20 3b 20 3f 0d  |opcode(&42) ; ?.|
00001d10  11 12 0f a4 75 6e 64 6f  63 28 26 34 32 29 0d 11  |....undoc(&42)..|
00001d20  1c 0f a4 66 65 74 63 68  28 31 2c 32 29 0d 11 26  |...fetch(1,2)..&|
00001d30  05 3b 0d 11 30 14 2e 6f  70 63 6f 64 65 28 26 34  |.;..0..opcode(&4|
00001d40  33 29 20 3b 20 3f 0d 11  3a 0f a4 75 6e 64 6f 63  |3) ; ?..:..undoc|
00001d50  28 26 34 33 29 0d 11 44  0f a4 66 65 74 63 68 28  |(&43)..D..fetch(|
00001d60  31 2c 32 29 0d 11 4e 05  3b 0d 11 58 14 2e 6f 70  |1,2)..N.;..X..op|
00001d70  63 6f 64 65 28 26 34 34  29 20 3b 20 3f 0d 11 62  |code(&44) ; ?..b|
00001d80  0f a4 75 6e 64 6f 63 28  26 34 34 29 0d 11 6c 0f  |..undoc(&44)..l.|
00001d90  a4 66 65 74 63 68 28 31  2c 32 29 0d 11 76 05 3b  |.fetch(1,2)..v.;|
00001da0  0d 11 80 16 2e 6f 70 63  6f 64 65 28 26 34 35 29  |.....opcode(&45)|
00001db0  20 3b 20 82 20 6e 0d 11  8a 11 a4 67 65 74 7a 65  | ; . n.....getze|
00001dc0  72 6f 28 30 2c 31 29 0d  11 94 0f a4 65 6f 72 28  |ro(0,1).....eor(|
00001dd0  30 2c 32 2c 33 29 0d 11  9e 05 3b 0d 11 a8 18 2e  |0,2,3)....;.....|
00001de0  6f 70 63 6f 64 65 28 26  34 36 29 20 3b 20 4c 53  |opcode(&46) ; LS|
00001df0  52 20 6e 0d 11 b2 11 a4  67 65 74 7a 65 72 6f 28  |R n.....getzero(|
00001e00  30 2c 31 29 0d 11 bc 0b  a4 6c 73 72 28 30 29 0d  |0,1).....lsr(0).|
00001e10  11 c6 14 53 54 52 42 20  52 30 2c 5b 6d 65 6d 2c  |...STRB R0,[mem,|
00001e20  52 31 5d 0d 11 d0 0f a4  66 65 74 63 68 28 32 2c  |R1].....fetch(2,|
00001e30  35 29 0d 11 da 05 3b 0d  11 e4 14 2e 6f 70 63 6f  |5)....;.....opco|
00001e40  64 65 28 26 34 37 29 20  3b 20 3f 0d 11 ee 0f a4  |de(&47) ; ?.....|
00001e50  75 6e 64 6f 63 28 26 34  37 29 0d 11 f8 0f a4 66  |undoc(&47).....f|
00001e60  65 74 63 68 28 31 2c 32  29 0d 12 02 05 3b 0d 12  |etch(1,2)....;..|
00001e70  0c 16 2e 6f 70 63 6f 64  65 28 26 34 38 29 20 3b  |...opcode(&48) ;|
00001e80  20 50 48 41 0d 12 16 0c  a4 70 75 73 68 28 41 29  | PHA.....push(A)|
00001e90  0d 12 20 0f a4 66 65 74  63 68 28 31 2c 33 29 0d  |.. ..fetch(1,3).|
00001ea0  12 2a 05 3b 0d 12 34 17  2e 6f 70 63 6f 64 65 28  |.*.;..4..opcode(|
00001eb0  26 34 39 29 20 3b 20 82  20 23 4e 0d 12 3e 10 a4  |&49) ; . #N..>..|
00001ec0  67 65 74 62 79 74 65 31  28 30 29 0d 12 48 0f a4  |getbyte1(0)..H..|
00001ed0  65 6f 72 28 30 2c 32 2c  32 29 0d 12 52 05 3b 0d  |eor(0,2,2)..R.;.|
00001ee0  12 5c 18 2e 6f 70 63 6f  64 65 28 26 34 41 29 20  |.\..opcode(&4A) |
00001ef0  3b 20 4c 53 52 20 41 0d  12 66 13 4d 4f 56 53 20  |; LSR A..f.MOVS |
00001f00  41 2c 41 2c 4c 53 52 23  32 35 0d 12 70 12 4d 4f  |A,A,LSR#25..p.MO|
00001f10  56 20 41 2c 41 2c 4c 53  4c 23 32 34 0d 12 7a 0d  |V A,A,LSL#24..z.|
00001f20  a4 73 65 74 75 70 4e 5a  43 0d 12 84 0f a4 66 65  |.setupNZC.....fe|
00001f30  74 63 68 28 31 2c 32 29  0d 12 8e 05 3b 0d 12 98  |tch(1,2)....;...|
00001f40  29 2e 6f 70 63 6f 64 65  28 26 34 42 29 20 3b 20  |).opcode(&4B) ; |
00001f50  28 41 53 52 20 23 4e 20  2d 20 80 20 23 4e 2c 20  |(ASR #N - . #N, |
00001f60  4c 53 52 20 41 29 0d 12  a2 17 a4 67 65 74 62 79  |LSR A).....getby|
00001f70  74 65 31 28 30 29 20 20  20 20 20 20 3b 0d 12 ac  |te1(0)      ;...|
00001f80  16 80 53 20 41 2c 41 2c  52 30 2c 4c 53 4c 23 32  |..S A,A,R0,LSL#2|
00001f90  34 20 3b 0d 12 b6 1c 3b  a4 73 65 74 75 70 4e 5a  |4 ;....;.setupNZ|
00001fa0  20 20 20 20 20 20 20 20  20 3b 20 a4 61 6e 64 0d  |         ; .and.|
00001fb0  12 c0 04 0d 12 ca 18 4d  4f 56 53 20 41 2c 41 2c  |.......MOVS A,A,|
00001fc0  4c 53 52 23 32 35 20 20  20 20 3b 0d 12 d4 17 a4  |LSR#25    ;.....|
00001fd0  73 65 74 75 70 43 20 20  20 20 20 20 20 20 20 20  |setupC          |
00001fe0  20 3b 0d 12 de 18 4d 4f  56 53 20 41 2c 41 2c 4c  | ;....MOVS A,A,L|
00001ff0  53 4c 23 32 34 20 20 20  20 3b 0d 12 e8 1d a4 73  |SL#24    ;.....s|
00002000  65 74 75 70 4e 5a 20 20  20 20 20 20 20 20 20 20  |etupNZ          |
00002010  3b 20 4c 53 52 20 41 0d  12 f2 0f a4 66 65 74 63  |; LSR A.....fetc|
00002020  68 28 32 2c 30 29 0d 12  fc 04 0d 13 06 12 3b 53  |h(2,0)........;S|
00002030  57 49 20 26 31 30 30 2b  97 22 34 22 0d 13 10 12  |WI &100+."4"....|
00002040  3b 53 57 49 20 26 31 30  30 2b 97 22 42 22 0d 13  |;SWI &100+."B"..|
00002050  1a 10 3b a4 66 65 74 63  68 28 31 2c 32 29 0d 13  |..;.fetch(1,2)..|
00002060  24 05 3b 0d 13 2e 19 2e  6f 70 63 6f 64 65 28 26  |$.;.....opcode(&|
00002070  34 43 29 20 3b 20 4a 4d  50 20 6e 6e 0d 13 38 10  |4C) ; JMP nn..8.|
00002080  a4 67 65 74 61 62 73 28  30 2c 31 29 0d 13 42 15  |.getabs(0,1)..B.|
00002090  4d 4f 56 20 7a 70 63 2c  52 31 2c 4c 53 4c 23 31  |MOV zpc,R1,LSL#1|
000020a0  36 0d 13 4c 0f a4 66 65  74 63 68 28 30 2c 33 29  |6..L..fetch(0,3)|
000020b0  0d 13 56 05 3b 0d 13 60  17 2e 6f 70 63 6f 64 65  |..V.;..`..opcode|
000020c0  28 26 34 44 29 20 3b 20  82 20 6e 6e 0d 13 6a 10  |(&4D) ; . nn..j.|
000020d0  a4 67 65 74 61 62 73 28  30 2c 31 29 0d 13 74 0f  |.getabs(0,1)..t.|
000020e0  a4 65 6f 72 28 30 2c 33  2c 34 29 0d 13 7e 05 3b  |.eor(0,3,4)..~.;|
000020f0  0d 13 88 19 2e 6f 70 63  6f 64 65 28 26 34 45 29  |.....opcode(&4E)|
00002100  20 3b 20 4c 53 52 20 6e  6e 0d 13 92 10 a4 67 65  | ; LSR nn.....ge|
00002110  74 61 62 73 28 30 2c 31  29 0d 13 9c 0b a4 6c 73  |tabs(0,1).....ls|
00002120  72 28 30 29 0d 13 a6 0e  a4 73 74 72 62 28 30 2c  |r(0).....strb(0,|
00002130  31 29 0d 13 b0 0f a4 66  65 74 63 68 28 33 2c 36  |1).....fetch(3,6|
00002140  29 0d 13 ba 05 3b 0d 13  c4 14 2e 6f 70 63 6f 64  |)....;.....opcod|
00002150  65 28 26 34 46 29 20 3b  20 3f 0d 13 ce 0f a4 75  |e(&4F) ; ?.....u|
00002160  6e 64 6f 63 28 26 34 46  29 0d 13 d8 0f a4 66 65  |ndoc(&4F).....fe|
00002170  74 63 68 28 31 2c 32 29  0d 13 e2 05 3b 0d 13 ec  |tch(1,2)....;...|
00002180  18 2e 6f 70 63 6f 64 65  28 26 35 30 29 20 3b 20  |..opcode(&50) ; |
00002190  42 56 43 20 72 0d 13 f6  13 54 53 54 20 46 2c 23  |BVC r....TST F,#|
000021a0  25 31 30 30 30 30 30 30  0d 14 00 14 42 4e 45 20  |%1000000....BNE |
000021b0  62 72 61 6e 63 68 5f 66  65 74 63 68 0d 14 0a 0b  |branch_fetch....|
000021c0  a4 62 72 61 6e 63 68 0d  14 14 05 3b 0d 14 1e 1a  |.branch....;....|
000021d0  2e 6f 70 63 6f 64 65 28  26 35 31 29 20 3b 20 82  |.opcode(&51) ; .|
000021e0  20 28 6e 29 2c 59 0d 14  28 11 a4 67 65 74 70 6f  | (n),Y..(..getpo|
000021f0  73 74 28 30 2c 31 29 0d  14 32 0f a4 65 6f 72 28  |st(0,1)..2..eor(|
00002200  30 2c 32 2c 35 29 0d 14  3c 05 3b 0d 14 46 18 2e  |0,2,5)..<.;..F..|
00002210  6f 70 63 6f 64 65 28 26  35 32 29 20 3b 20 82 20  |opcode(&52) ; . |
00002220  28 6e 29 0d 14 50 16 a4  67 65 74 7a 65 72 6f 69  |(n)..P..getzeroi|
00002230  6e 64 69 72 28 30 2c 31  29 0d 14 5a 0f a4 65 6f  |ndir(0,1)..Z..eo|
00002240  72 28 30 2c 32 2c 35 29  0d 14 64 05 3b 0d 14 6e  |r(0,2,5)..d.;..n|
00002250  14 2e 6f 70 63 6f 64 65  28 26 35 33 29 20 3b 20  |..opcode(&53) ; |
00002260  3f 0d 14 78 0f a4 75 6e  64 6f 63 28 26 35 33 29  |?..x..undoc(&53)|
00002270  0d 14 82 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |.....fetch(1,2).|
00002280  14 8c 05 3b 0d 14 96 14  2e 6f 70 63 6f 64 65 28  |...;.....opcode(|
00002290  26 35 34 29 20 3b 20 3f  0d 14 a0 0f a4 75 6e 64  |&54) ; ?.....und|
000022a0  6f 63 28 26 35 34 29 0d  14 aa 0f a4 66 65 74 63  |oc(&54).....fetc|
000022b0  68 28 31 2c 32 29 0d 14  b4 05 3b 0d 14 be 18 2e  |h(1,2)....;.....|
000022c0  6f 70 63 6f 64 65 28 26  35 35 29 20 3b 20 82 20  |opcode(&55) ; . |
000022d0  6e 2c 58 0d 14 c8 16 a4  67 65 74 7a 65 72 6f 69  |n,X.....getzeroi|
000022e0  6e 64 65 78 28 30 2c 31  29 0d 14 d2 0f a4 65 6f  |ndex(0,1).....eo|
000022f0  72 28 30 2c 32 2c 34 29  0d 14 dc 05 3b 0d 14 e6  |r(0,2,4)....;...|
00002300  1a 2e 6f 70 63 6f 64 65  28 26 35 36 29 20 3b 20  |..opcode(&56) ; |
00002310  4c 53 52 20 6e 2c 58 0d  14 f0 16 a4 67 65 74 7a  |LSR n,X.....getz|
00002320  65 72 6f 69 6e 64 65 78  28 30 2c 31 29 0d 14 fa  |eroindex(0,1)...|
00002330  0b a4 6c 73 72 28 30 29  0d 15 04 2c 53 54 52 42  |..lsr(0)...,STRB|
00002340  20 52 30 2c 5b 6d 65 6d  2c 52 31 2c 4c 53 52 23  | R0,[mem,R1,LSR#|
00002350  32 34 5d 20 3b 20 7a 65  72 6f 20 70 61 67 65 20  |24] ; zero page |
00002360  53 54 52 42 0d 15 0e 0f  a4 66 65 74 63 68 28 32  |STRB.....fetch(2|
00002370  2c 36 29 0d 15 18 05 3b  0d 15 22 14 2e 6f 70 63  |,6)....;.."..opc|
00002380  6f 64 65 28 26 35 37 29  20 3b 20 3f 0d 15 2c 0f  |ode(&57) ; ?..,.|
00002390  a4 75 6e 64 6f 63 28 26  35 37 29 0d 15 36 0f a4  |.undoc(&57)..6..|
000023a0  66 65 74 63 68 28 31 2c  32 29 0d 15 40 05 3b 0d  |fetch(1,2)..@.;.|
000023b0  15 4a 16 2e 6f 70 63 6f  64 65 28 26 35 38 29 20  |.J..opcode(&58) |
000023c0  3b 20 43 4c 49 0d 15 54  0a 3b 42 20 43 4c 49 0d  |; CLI..T.;B CLI.|
000023d0  15 5e 11 42 49 43 20 46  2c 46 2c 23 25 31 30 30  |.^.BIC F,F,#%100|
000023e0  0d 15 68 18 41 44 44 20  7a 70 63 2c 7a 70 63 2c  |..h.ADD zpc,zpc,|
000023f0  23 31 20 3c 3c 20 31 36  0d 15 72 13 3b 4c 44 52  |#1 << 16..r.;LDR|
00002400  42 20 52 30 2c 6b 65 79  63 68 6b 0d 15 7c 0e 3b  |B R0,keychk..|.;|
00002410  43 4d 50 20 52 30 2c 23  30 0d 15 86 12 3b 42 4c  |CMP R0,#0....;BL|
00002420  45 51 20 6b 65 79 62 6f  61 72 64 0d 15 90 0f 42  |EQ keyboard....B|
00002430  4c 20 6b 65 79 62 6f 61  72 64 0d 15 9a 10 42 4c  |L keyboard....BL|
00002440  20 69 6e 74 65 72 72 75  70 74 0d 15 a4 0f a4 66  | interrupt.....f|
00002450  65 74 63 68 28 30 2c 32  29 0d 15 ae 05 3b 0d 15  |etch(0,2)....;..|
00002460  b8 19 2e 6f 70 63 6f 64  65 28 26 35 39 29 20 3b  |...opcode(&59) ;|
00002470  20 82 20 6e 6e 2c 59 0d  15 c2 17 a4 67 65 74 61  | . nn,Y.....geta|
00002480  62 73 69 6e 64 65 78 28  30 2c 31 2c 59 29 0d 15  |bsindex(0,1,Y)..|
00002490  cc 0f a4 65 6f 72 28 30  2c 33 2c 34 29 0d 15 d6  |...eor(0,3,4)...|
000024a0  05 3b 0d 15 e0 16 2e 6f  70 63 6f 64 65 28 26 35  |.;.....opcode(&5|
000024b0  41 29 20 3b 20 50 48 59  0d 15 ea 0c a4 70 75 73  |A) ; PHY.....pus|
000024c0  68 28 59 29 0d 15 f4 0f  a4 66 65 74 63 68 28 31  |h(Y).....fetch(1|
000024d0  2c 33 29 0d 15 fe 05 3b  0d 16 08 14 2e 6f 70 63  |,3)....;.....opc|
000024e0  6f 64 65 28 26 35 42 29  20 3b 20 3f 0d 16 12 0f  |ode(&5B) ; ?....|
000024f0  a4 75 6e 64 6f 63 28 26  35 42 29 0d 16 1c 0f a4  |.undoc(&5B).....|
00002500  66 65 74 63 68 28 31 2c  32 29 0d 16 26 05 3b 0d  |fetch(1,2)..&.;.|
00002510  16 30 14 2e 6f 70 63 6f  64 65 28 26 35 43 29 20  |.0..opcode(&5C) |
00002520  3b 20 3f 0d 16 3a 0f a4  75 6e 64 6f 63 28 26 35  |; ?..:..undoc(&5|
00002530  43 29 0d 16 44 0f a4 66  65 74 63 68 28 31 2c 32  |C)..D..fetch(1,2|
00002540  29 0d 16 4e 05 3b 0d 16  58 19 2e 6f 70 63 6f 64  |)..N.;..X..opcod|
00002550  65 28 26 35 44 29 20 3b  20 82 20 6e 6e 2c 58 0d  |e(&5D) ; . nn,X.|
00002560  16 62 17 a4 67 65 74 61  62 73 69 6e 64 65 78 28  |.b..getabsindex(|
00002570  30 2c 31 2c 58 29 0d 16  6c 0f a4 65 6f 72 28 30  |0,1,X)..l..eor(0|
00002580  2c 33 2c 34 29 0d 16 76  05 3b 0d 16 80 1b 2e 6f  |,3,4)..v.;.....o|
00002590  70 63 6f 64 65 28 26 35  45 29 20 3b 20 4c 53 52  |pcode(&5E) ; LSR|
000025a0  20 6e 6e 2c 58 0d 16 8a  17 a4 67 65 74 61 62 73  | nn,X.....getabs|
000025b0  69 6e 64 65 78 28 30 2c  31 2c 58 29 0d 16 94 0b  |index(0,1,X)....|
000025c0  a4 6c 73 72 28 30 29 0d  16 9e 10 a4 73 74 72 62  |.lsr(0).....strb|
000025d0  31 36 28 30 2c 31 29 0d  16 a8 0f a4 66 65 74 63  |16(0,1).....fetc|
000025e0  68 28 33 2c 37 29 0d 16  b2 05 3b 0d 16 bc 14 2e  |h(3,7)....;.....|
000025f0  6f 70 63 6f 64 65 28 26  35 46 29 20 3b 20 3f 0d  |opcode(&5F) ; ?.|
00002600  16 c6 0f a4 75 6e 64 6f  63 28 26 35 46 29 0d 16  |....undoc(&5F)..|
00002610  d0 0f a4 66 65 74 63 68  28 31 2c 32 29 0d 16 da  |...fetch(1,2)...|
00002620  05 3b 0d 16 e4 16 2e 6f  70 63 6f 64 65 28 26 36  |.;.....opcode(&6|
00002630  30 29 20 3b 20 52 54 53  0d 16 ee 0c a4 70 75 6c  |0) ; RTS.....pul|
00002640  6c 28 31 29 0d 16 f8 0e  a4 70 75 6c 6c 28 7a 70  |l(1).....pull(zp|
00002650  63 29 0d 17 02 18 41 44  44 20 7a 70 63 2c 7a 70  |c)....ADD zpc,zp|
00002660  63 2c 52 31 2c 4c 53 52  23 38 0d 17 0c 28 a4 66  |c,R1,LSR#8...(.f|
00002670  65 74 63 68 28 31 2c 36  29 20 3b 20 79 65 73 2c  |etch(1,6) ; yes,|
00002680  20 74 68 61 74 20 73 68  6f 75 6c 64 20 62 65 20  | that should be |
00002690  31 21 0d 17 16 05 3b 0d  17 20 1c 2e 6f 70 63 6f  |1!....;.. ..opco|
000026a0  64 65 28 26 36 31 29 20  3b 20 41 44 43 20 28 6e  |de(&61) ; ADC (n|
000026b0  2c 58 29 0d 17 2a 10 a4  67 65 74 70 72 65 28 30  |,X)..*..getpre(0|
000026c0  2c 31 29 0d 17 34 0f a4  61 64 63 28 30 2c 32 2c  |,1)..4..adc(0,2,|
000026d0  36 29 0d 17 3e 05 3b 0d  17 48 14 2e 6f 70 63 6f  |6)..>.;..H..opco|
000026e0  64 65 28 26 36 32 29 20  3b 20 3f 0d 17 52 0f a4  |de(&62) ; ?..R..|
000026f0  75 6e 64 6f 63 28 26 36  32 29 0d 17 5c 0f a4 66  |undoc(&62)..\..f|
00002700  65 74 63 68 28 31 2c 32  29 0d 17 66 05 3b 0d 17  |etch(1,2)..f.;..|
00002710  70 14 2e 6f 70 63 6f 64  65 28 26 36 33 29 20 3b  |p..opcode(&63) ;|
00002720  20 3f 0d 17 7a 0f a4 75  6e 64 6f 63 28 26 36 33  | ?..z..undoc(&63|
00002730  29 0d 17 84 0f a4 66 65  74 63 68 28 31 2c 32 29  |).....fetch(1,2)|
00002740  0d 17 8e 05 3b 0d 17 98  18 2e 6f 70 63 6f 64 65  |....;.....opcode|
00002750  28 26 36 34 29 20 3b 20  53 54 5a 20 6e 0d 17 a2  |(&64) ; STZ n...|
00002760  10 a4 67 65 74 62 79 74  65 31 28 30 29 0d 17 ac  |..getbyte1(0)...|
00002770  0d 4d 4f 56 20 52 31 2c  23 30 0d 17 b6 25 53 54  |.MOV R1,#0...%ST|
00002780  52 42 20 52 31 2c 5b 6d  65 6d 2c 52 30 5d 20 3b  |RB R1,[mem,R0] ;|
00002790  20 7a 65 72 6f 20 70 61  67 65 20 53 54 52 42 0d  | zero page STRB.|
000027a0  17 c0 0f a4 66 65 74 63  68 28 32 2c 33 29 0d 17  |....fetch(2,3)..|
000027b0  ca 05 3b 0d 17 d4 18 2e  6f 70 63 6f 64 65 28 26  |..;.....opcode(&|
000027c0  36 35 29 20 3b 20 41 44  43 20 6e 0d 17 de 11 a4  |65) ; ADC n.....|
000027d0  67 65 74 7a 65 72 6f 28  30 2c 31 29 0d 17 e8 0f  |getzero(0,1)....|
000027e0  a4 61 64 63 28 30 2c 32  2c 33 29 0d 17 f2 05 3b  |.adc(0,2,3)....;|
000027f0  0d 17 fc 18 2e 6f 70 63  6f 64 65 28 26 36 36 29  |.....opcode(&66)|
00002800  20 3b 20 52 4f 52 20 6e  0d 18 06 11 a4 67 65 74  | ; ROR n.....get|
00002810  7a 65 72 6f 28 30 2c 31  29 0d 18 10 0b a4 72 6f  |zero(0,1).....ro|
00002820  72 28 30 29 0d 18 1a 25  53 54 52 42 20 52 30 2c  |r(0)...%STRB R0,|
00002830  5b 6d 65 6d 2c 52 31 5d  20 3b 20 7a 65 72 6f 20  |[mem,R1] ; zero |
00002840  70 61 67 65 20 53 54 52  42 0d 18 24 0f a4 66 65  |page STRB..$..fe|
00002850  74 63 68 28 32 2c 35 29  0d 18 2e 05 3b 0d 18 38  |tch(2,5)....;..8|
00002860  14 2e 6f 70 63 6f 64 65  28 26 36 37 29 20 3b 20  |..opcode(&67) ; |
00002870  3f 0d 18 42 0f a4 75 6e  64 6f 63 28 26 36 37 29  |?..B..undoc(&67)|
00002880  0d 18 4c 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |..L..fetch(1,2).|
00002890  18 56 05 3b 0d 18 60 16  2e 6f 70 63 6f 64 65 28  |.V.;..`..opcode(|
000028a0  26 36 38 29 20 3b 20 50  4c 41 0d 18 6a 0c a4 70  |&68) ; PLA..j..p|
000028b0  75 6c 6c 28 41 29 0d 18  74 0f a4 66 65 74 63 68  |ull(A)..t..fetch|
000028c0  28 31 2c 34 29 0d 18 7e  05 3b 0d 18 88 19 2e 6f  |(1,4)..~.;.....o|
000028d0  70 63 6f 64 65 28 26 36  39 29 20 3b 20 41 44 43  |pcode(&69) ; ADC|
000028e0  20 23 4e 0d 18 92 10 a4  67 65 74 62 79 74 65 31  | #N.....getbyte1|
000028f0  28 30 29 0d 18 9c 0f a4  61 64 63 28 30 2c 32 2c  |(0).....adc(0,2,|
00002900  32 29 0d 18 a6 05 3b 0d  18 b0 18 2e 6f 70 63 6f  |2)....;.....opco|
00002910  64 65 28 26 36 41 29 20  3b 20 52 4f 52 20 41 0d  |de(&6A) ; ROR A.|
00002920  18 ba 13 4d 4f 56 20 52  30 2c 41 2c 4c 53 52 23  |...MOV R0,A,LSR#|
00002930  32 34 0d 18 c4 0b a4 72  6f 72 28 30 29 0d 18 ce  |24.....ror(0)...|
00002940  13 4d 4f 56 20 41 2c 52  30 2c 4c 53 4c 23 32 34  |.MOV A,R0,LSL#24|
00002950  0d 18 d8 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |.....fetch(1,2).|
00002960  18 e2 05 3b 0d 18 ec 14  2e 6f 70 63 6f 64 65 28  |...;.....opcode(|
00002970  26 36 42 29 20 3b 20 3f  0d 18 f6 0f a4 75 6e 64  |&6B) ; ?.....und|
00002980  6f 63 28 26 36 42 29 0d  19 00 0f a4 66 65 74 63  |oc(&6B).....fetc|
00002990  68 28 31 2c 32 29 0d 19  0a 05 3b 0d 19 14 1b 2e  |h(1,2)....;.....|
000029a0  6f 70 63 6f 64 65 28 26  36 43 29 20 3b 20 4a 4d  |opcode(&6C) ; JM|
000029b0  50 20 28 6e 6e 29 0d 19  1e 10 a4 67 65 74 61 62  |P (nn).....getab|
000029c0  73 28 30 2c 31 29 0d 19  28 10 41 44 44 20 52 31  |s(0,1)..(.ADD R1|
000029d0  2c 52 31 2c 23 31 0d 19  32 05 5d 0d 19 3c 04 0d  |,R1,#1..2.]..<..|
000029e0  19 46 15 f4 20 4a 4d 50  20 28 26 78 78 46 46 29  |.F.. JMP (&xxFF)|
000029f0  20 62 75 67 0d 19 50 1b  e7 20 ac 6d 61 73 74 65  | bug..P.. .maste|
00002a00  72 20 84 20 65 6c 65 63  74 72 6f 6e 25 20 8c 0d  |r . electron% ..|
00002a10  19 5a 09 5b 4f 50 54 70  0d 19 64 0f 54 53 54 20  |.Z.[OPTp..d.TST |
00002a20  52 31 2c 23 26 46 46 0d  19 6e 15 53 55 42 45 51  |R1,#&FF..n.SUBEQ|
00002a30  20 52 31 2c 52 31 2c 23  26 31 30 30 0d 19 78 13  | R1,R1,#&100..x.|
00002a40  ec 51 20 52 31 2c 52 31  2c 4c 53 4c 23 31 36 0d  |.Q R1,R1,LSL#16.|
00002a50  19 82 13 ec 51 20 52 31  2c 52 31 2c 4c 53 52 23  |....Q R1,R1,LSR#|
00002a60  31 36 0d 19 8c 05 5d 0d  19 96 05 cd 0d 19 a0 04  |16....].........|
00002a70  0d 19 aa 09 5b 4f 50 54  70 0d 19 b4 15 3b 4c 44  |....[OPTp....;LD|
00002a80  52 42 20 52 31 2c 5b 6d  65 6d 2c 52 31 5d 0d 19  |RB R1,[mem,R1]..|
00002a90  be 15 4d 4f 56 20 52 32  2c 23 70 61 67 65 74 61  |..MOV R2,#pageta|
00002aa0  62 6c 65 0d 19 c8 1a 4c  44 52 42 20 52 32 2c 5b  |ble....LDRB R2,[|
00002ab0  52 32 2c 52 31 2c 4c 53  52 23 31 32 5d 0d 19 d2  |R2,R1,LSR#12]...|
00002ac0  1a 4c 44 52 42 20 52 31  2c 5b 52 31 2c 52 32 2c  |.LDRB R1,[R1,R2,|
00002ad0  4c 53 4c 23 31 32 5d 0d  19 dc 04 0d 19 e6 16 41  |LSL#12]........A|
00002ae0  44 44 20 52 30 2c 52 30  2c 52 31 2c 4c 53 4c 23  |DD R0,R0,R1,LSL#|
00002af0  38 0d 19 f0 15 4d 4f 56  20 7a 70 63 2c 52 30 2c  |8....MOV zpc,R0,|
00002b00  4c 53 4c 23 31 36 0d 19  fa 0f a4 66 65 74 63 68  |LSL#16.....fetch|
00002b10  28 30 2c 35 29 0d 1a 04  05 3b 0d 1a 0e 19 2e 6f  |(0,5)....;.....o|
00002b20  70 63 6f 64 65 28 26 36  44 29 20 3b 20 41 44 43  |pcode(&6D) ; ADC|
00002b30  20 6e 6e 0d 1a 18 10 a4  67 65 74 61 62 73 28 30  | nn.....getabs(0|
00002b40  2c 31 29 0d 1a 22 0f a4  61 64 63 28 30 2c 33 2c  |,1).."..adc(0,3,|
00002b50  34 29 0d 1a 2c 05 3b 0d  1a 36 19 2e 6f 70 63 6f  |4)..,.;..6..opco|
00002b60  64 65 28 26 36 45 29 20  3b 20 52 4f 52 20 6e 6e  |de(&6E) ; ROR nn|
00002b70  0d 1a 40 10 a4 67 65 74  61 62 73 28 30 2c 31 29  |..@..getabs(0,1)|
00002b80  0d 1a 4a 0b a4 72 6f 72  28 30 29 0d 1a 54 0e a4  |..J..ror(0)..T..|
00002b90  73 74 72 62 28 30 2c 31  29 0d 1a 5e 0f a4 66 65  |strb(0,1)..^..fe|
00002ba0  74 63 68 28 33 2c 36 29  0d 1a 68 05 3b 0d 1a 72  |tch(3,6)..h.;..r|
00002bb0  14 2e 6f 70 63 6f 64 65  28 26 36 46 29 20 3b 20  |..opcode(&6F) ; |
00002bc0  3f 0d 1a 7c 0f a4 75 6e  64 6f 63 28 26 36 46 29  |?..|..undoc(&6F)|
00002bd0  0d 1a 86 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |.....fetch(1,2).|
00002be0  1a 90 05 3b 0d 1a 9a 18  2e 6f 70 63 6f 64 65 28  |...;.....opcode(|
00002bf0  26 37 30 29 20 3b 20 42  56 53 20 72 0d 1a a4 13  |&70) ; BVS r....|
00002c00  54 53 54 20 46 2c 23 25  31 30 30 30 30 30 30 0d  |TST F,#%1000000.|
00002c10  1a ae 14 42 45 51 20 62  72 61 6e 63 68 5f 66 65  |...BEQ branch_fe|
00002c20  74 63 68 0d 1a b8 0b a4  62 72 61 6e 63 68 0d 1a  |tch.....branch..|
00002c30  c2 05 3b 0d 1a cc 1c 2e  6f 70 63 6f 64 65 28 26  |..;.....opcode(&|
00002c40  37 31 29 20 3b 20 41 44  43 20 28 6e 29 2c 59 0d  |71) ; ADC (n),Y.|
00002c50  1a d6 11 a4 67 65 74 70  6f 73 74 28 30 2c 31 29  |....getpost(0,1)|
00002c60  0d 1a e0 0f a4 61 64 63  28 30 2c 32 2c 35 29 0d  |.....adc(0,2,5).|
00002c70  1a ea 05 3b 0d 1a f4 1a  2e 6f 70 63 6f 64 65 28  |...;.....opcode(|
00002c80  26 37 32 29 20 3b 20 41  44 43 20 28 6e 29 0d 1a  |&72) ; ADC (n)..|
00002c90  fe 16 a4 67 65 74 7a 65  72 6f 69 6e 64 69 72 28  |...getzeroindir(|
00002ca0  30 2c 31 29 0d 1b 08 0f  a4 61 64 63 28 30 2c 32  |0,1).....adc(0,2|
00002cb0  2c 35 29 0d 1b 12 05 3b  0d 1b 1c 14 2e 6f 70 63  |,5)....;.....opc|
00002cc0  6f 64 65 28 26 37 33 29  20 3b 20 3f 0d 1b 26 0f  |ode(&73) ; ?..&.|
00002cd0  a4 75 6e 64 6f 63 28 26  37 33 29 0d 1b 30 0f a4  |.undoc(&73)..0..|
00002ce0  66 65 74 63 68 28 31 2c  32 29 0d 1b 3a 05 3b 0d  |fetch(1,2)..:.;.|
00002cf0  1b 44 1a 2e 6f 70 63 6f  64 65 28 26 37 34 29 20  |.D..opcode(&74) |
00002d00  3b 20 53 54 5a 20 6e 2c  58 0d 1b 4e 13 a4 7a 65  |; STZ n,X..N..ze|
00002d10  72 6f 69 6e 64 65 78 28  30 2c 31 29 0d 1b 58 0d  |roindex(0,1)..X.|
00002d20  4d 4f 56 20 52 30 2c 23  30 0d 1b 62 1b 53 54 52  |MOV R0,#0..b.STR|
00002d30  42 20 52 30 2c 5b 6d 65  6d 2c 52 31 2c 4c 53 52  |B R0,[mem,R1,LSR|
00002d40  23 32 34 5d 0d 1b 6c 0f  a4 66 65 74 63 68 28 32  |#24]..l..fetch(2|
00002d50  2c 34 29 0d 1b 76 05 3b  0d 1b 80 1a 2e 6f 70 63  |,4)..v.;.....opc|
00002d60  6f 64 65 28 26 37 35 29  20 3b 20 41 44 43 20 6e  |ode(&75) ; ADC n|
00002d70  2c 58 0d 1b 8a 16 a4 67  65 74 7a 65 72 6f 69 6e  |,X.....getzeroin|
00002d80  64 65 78 28 30 2c 31 29  0d 1b 94 0f a4 61 64 63  |dex(0,1).....adc|
00002d90  28 30 2c 32 2c 34 29 0d  1b 9e 05 3b 0d 1b a8 1a  |(0,2,4)....;....|
00002da0  2e 6f 70 63 6f 64 65 28  26 37 36 29 20 3b 20 52  |.opcode(&76) ; R|
00002db0  4f 52 20 6e 2c 58 0d 1b  b2 16 a4 67 65 74 7a 65  |OR n,X.....getze|
00002dc0  72 6f 69 6e 64 65 78 28  30 2c 31 29 0d 1b bc 0b  |roindex(0,1)....|
00002dd0  a4 72 6f 72 28 30 29 0d  1b c6 2c 53 54 52 42 20  |.ror(0)...,STRB |
00002de0  52 30 2c 5b 6d 65 6d 2c  52 31 2c 4c 53 52 23 32  |R0,[mem,R1,LSR#2|
00002df0  34 5d 20 3b 20 7a 65 72  6f 20 70 61 67 65 20 53  |4] ; zero page S|
00002e00  54 52 42 0d 1b d0 0f a4  66 65 74 63 68 28 32 2c  |TRB.....fetch(2,|
00002e10  36 29 0d 1b da 05 3b 0d  1b e4 14 2e 6f 70 63 6f  |6)....;.....opco|
00002e20  64 65 28 26 37 37 29 20  3b 20 3f 0d 1b ee 0f a4  |de(&77) ; ?.....|
00002e30  75 6e 64 6f 63 28 26 37  37 29 0d 1b f8 0f a4 66  |undoc(&77).....f|
00002e40  65 74 63 68 28 31 2c 32  29 0d 1c 02 05 3b 0d 1c  |etch(1,2)....;..|
00002e50  0c 16 2e 6f 70 63 6f 64  65 28 26 37 38 29 20 3b  |...opcode(&78) ;|
00002e60  20 53 45 49 0d 1c 16 10  84 52 20 46 2c 46 2c 23  | SEI.....R F,F,#|
00002e70  25 31 30 30 0d 1c 20 0f  a4 66 65 74 63 68 28 31  |%100.. ..fetch(1|
00002e80  2c 32 29 0d 1c 2a 05 3b  0d 1c 34 1b 2e 6f 70 63  |,2)..*.;..4..opc|
00002e90  6f 64 65 28 26 37 39 29  20 3b 20 41 44 43 20 6e  |ode(&79) ; ADC n|
00002ea0  6e 2c 59 0d 1c 3e 17 a4  67 65 74 61 62 73 69 6e  |n,Y..>..getabsin|
00002eb0  64 65 78 28 30 2c 31 2c  59 29 0d 1c 48 0f a4 61  |dex(0,1,Y)..H..a|
00002ec0  64 63 28 30 2c 33 2c 34  29 0d 1c 52 05 3b 0d 1c  |dc(0,3,4)..R.;..|
00002ed0  5c 16 2e 6f 70 63 6f 64  65 28 26 37 41 29 20 3b  |\..opcode(&7A) ;|
00002ee0  20 50 4c 59 0d 1c 66 0c  a4 70 75 6c 6c 28 59 29  | PLY..f..pull(Y)|
00002ef0  0d 1c 70 0f a4 66 65 74  63 68 28 31 2c 34 29 0d  |..p..fetch(1,4).|
00002f00  1c 7a 05 3b 0d 1c 84 14  2e 6f 70 63 6f 64 65 28  |.z.;.....opcode(|
00002f10  26 37 42 29 20 3b 20 3f  0d 1c 8e 0f a4 75 6e 64  |&7B) ; ?.....und|
00002f20  6f 63 28 26 37 42 29 0d  1c 98 0f a4 66 65 74 63  |oc(&7B).....fetc|
00002f30  68 28 31 2c 32 29 0d 1c  a2 05 3b 0d 1c ac 1d 2e  |h(1,2)....;.....|
00002f40  6f 70 63 6f 64 65 28 26  37 43 29 20 3b 20 4a 4d  |opcode(&7C) ; JM|
00002f50  50 20 28 6e 6e 2c 58 29  0d 1c b6 0d a4 61 62 73  |P (nn,X).....abs|
00002f60  28 30 2c 31 29 0d 1c c0  14 4d 4f 56 20 52 30 2c  |(0,1)....MOV R0,|
00002f70  52 31 2c 4c 53 4c 23 31  36 0d 1c ca 15 41 44 44  |R1,LSL#16....ADD|
00002f80  20 52 30 2c 52 30 2c 58  2c 4c 53 52 23 38 0d 1c  | R0,R0,X,LSR#8..|
00002f90  d4 04 0d 1c de 1c 3b 4c  44 52 42 20 52 31 2c 5b  |......;LDRB R1,[|
00002fa0  6d 65 6d 2c 52 30 2c 4c  53 52 23 31 36 5d 0d 1c  |mem,R0,LSR#16]..|
00002fb0  e8 15 4d 4f 56 20 52 32  2c 23 70 61 67 65 74 61  |..MOV R2,#pageta|
00002fc0  62 6c 65 0d 1c f2 1a 4c  44 52 42 20 52 32 2c 5b  |ble....LDRB R2,[|
00002fd0  52 32 2c 52 30 2c 4c 53  52 23 32 38 5d 0d 1c fc  |R2,R0,LSR#28]...|
00002fe0  14 4d 4f 56 20 52 32 2c  52 32 2c 4c 53 4c 23 31  |.MOV R2,R2,LSL#1|
00002ff0  32 0d 1d 06 1a 4c 44 52  42 20 52 31 2c 5b 52 32  |2....LDRB R1,[R2|
00003000  2c 52 30 2c 4c 53 52 23  31 36 5d 0d 1d 1a 04 0d  |,R0,LSR#16].....|
00003010  1d 24 16 41 44 44 20 52  30 2c 52 30 2c 23 31 20  |.$.ADD R0,R0,#1 |
00003020  3c 3c 20 31 36 0d 1d 2e  1c 3b 4c 44 52 42 20 52  |<< 16....;LDRB R|
00003030  30 2c 5b 6d 65 6d 2c 52  30 2c 4c 53 52 23 31 36  |0,[mem,R0,LSR#16|
00003040  5d 0d 1d 38 15 4d 4f 56  20 52 32 2c 23 70 61 67  |]..8.MOV R2,#pag|
00003050  65 74 61 62 6c 65 0d 1d  42 1a 4c 44 52 42 20 52  |etable..B.LDRB R|
00003060  32 2c 5b 52 32 2c 52 30  2c 4c 53 52 23 32 38 5d  |2,[R2,R0,LSR#28]|
00003070  0d 1d 4c 14 4d 4f 56 20  52 32 2c 52 32 2c 4c 53  |..L.MOV R2,R2,LS|
00003080  4c 23 31 32 0d 1d 56 1a  4c 44 52 42 20 52 30 2c  |L#12..V.LDRB R0,|
00003090  5b 52 32 2c 52 30 2c 4c  53 52 23 31 36 5d 0d 1d  |[R2,R0,LSR#16]..|
000030a0  6a 04 0d 1d 74 04 0d 1d  7e 16 41 44 44 20 52 30  |j...t...~.ADD R0|
000030b0  2c 52 31 2c 52 30 2c 4c  53 4c 23 38 0d 1d 88 15  |,R1,R0,LSL#8....|
000030c0  4d 4f 56 20 7a 70 63 2c  52 30 2c 4c 53 4c 23 31  |MOV zpc,R0,LSL#1|
000030d0  36 0d 1d 92 0f a4 66 65  74 63 68 28 30 2c 36 29  |6.....fetch(0,6)|
000030e0  0d 1d 9c 05 3b 0d 1d a6  1b 2e 6f 70 63 6f 64 65  |....;.....opcode|
000030f0  28 26 37 44 29 20 3b 20  41 44 43 20 6e 6e 2c 58  |(&7D) ; ADC nn,X|
00003100  0d 1d b0 17 a4 67 65 74  61 62 73 69 6e 64 65 78  |.....getabsindex|
00003110  28 30 2c 31 2c 58 29 0d  1d ba 0f a4 61 64 63 28  |(0,1,X).....adc(|
00003120  30 2c 33 2c 34 29 0d 1d  c4 05 3b 0d 1d ce 1b 2e  |0,3,4)....;.....|
00003130  6f 70 63 6f 64 65 28 26  37 45 29 20 3b 20 52 4f  |opcode(&7E) ; RO|
00003140  52 20 6e 6e 2c 58 0d 1d  d8 17 a4 67 65 74 61 62  |R nn,X.....getab|
00003150  73 69 6e 64 65 78 28 30  2c 31 2c 58 29 0d 1d e2  |sindex(0,1,X)...|
00003160  0b a4 72 6f 72 28 30 29  0d 1d ec 10 a4 73 74 72  |..ror(0).....str|
00003170  62 31 36 28 30 2c 31 29  0d 1d f6 0f a4 66 65 74  |b16(0,1).....fet|
00003180  63 68 28 33 2c 37 29 0d  1e 00 05 3b 0d 1e 0a 14  |ch(3,7)....;....|
00003190  2e 6f 70 63 6f 64 65 28  26 37 46 29 20 3b 20 3f  |.opcode(&7F) ; ?|
000031a0  0d 1e 14 0f a4 75 6e 64  6f 63 28 26 37 46 29 0d  |.....undoc(&7F).|
000031b0  1e 1e 0f a4 66 65 74 63  68 28 31 2c 32 29 0d 1e  |....fetch(1,2)..|
000031c0  28 05 3b 0d 1e 32 18 2e  6f 70 63 6f 64 65 28 26  |(.;..2..opcode(&|
000031d0  38 30 29 20 3b 20 42 52  41 20 72 0d 1e 3c 0b a4  |80) ; BRA r..<..|
000031e0  62 72 61 6e 63 68 0d 1e  46 05 3b 0d 1e 50 1c 2e  |branch..F.;..P..|
000031f0  6f 70 63 6f 64 65 28 26  38 31 29 20 3b 20 53 54  |opcode(&81) ; ST|
00003200  41 20 28 6e 2c 58 29 0d  1e 5a 0d a4 70 72 65 28  |A (n,X)..Z..pre(|
00003210  30 2c 31 29 0d 1e 64 13  4d 4f 56 20 52 30 2c 41  |0,1)..d.MOV R0,A|
00003220  2c 4c 53 52 23 32 34 0d  1e 6e 0e a4 73 74 72 62  |,LSR#24..n..strb|
00003230  28 30 2c 31 29 0d 1e 78  0f a4 66 65 74 63 68 28  |(0,1)..x..fetch(|
00003240  32 2c 36 29 0d 1e 82 05  3b 0d 1e 8c 14 2e 6f 70  |2,6)....;.....op|
00003250  63 6f 64 65 28 26 38 32  29 20 3b 20 3f 0d 1e 96  |code(&82) ; ?...|
00003260  0f a4 75 6e 64 6f 63 28  26 38 32 29 0d 1e a0 0f  |..undoc(&82)....|
00003270  a4 66 65 74 63 68 28 31  2c 32 29 0d 1e aa 05 3b  |.fetch(1,2)....;|
00003280  0d 1e b4 14 2e 6f 70 63  6f 64 65 28 26 38 33 29  |.....opcode(&83)|
00003290  20 3b 20 3f 0d 1e be 0f  a4 75 6e 64 6f 63 28 26  | ; ?.....undoc(&|
000032a0  38 33 29 0d 1e c8 0f a4  66 65 74 63 68 28 31 2c  |83).....fetch(1,|
000032b0  32 29 0d 1e d2 05 3b 0d  1e dc 18 2e 6f 70 63 6f  |2)....;.....opco|
000032c0  64 65 28 26 38 34 29 20  3b 20 53 54 59 20 6e 0d  |de(&84) ; STY n.|
000032d0  1e e6 10 a4 67 65 74 62  79 74 65 31 28 31 29 0d  |....getbyte1(1).|
000032e0  1e f0 13 4d 4f 56 20 52  30 2c 59 2c 4c 53 52 23  |...MOV R0,Y,LSR#|
000032f0  32 34 0d 1e fa 25 53 54  52 42 20 52 30 2c 5b 6d  |24...%STRB R0,[m|
00003300  65 6d 2c 52 31 5d 20 3b  20 7a 65 72 6f 20 70 61  |em,R1] ; zero pa|
00003310  67 65 20 53 54 52 42 0d  1f 04 0f a4 66 65 74 63  |ge STRB.....fetc|
00003320  68 28 32 2c 33 29 0d 1f  0e 05 3b 0d 1f 18 18 2e  |h(2,3)....;.....|
00003330  6f 70 63 6f 64 65 28 26  38 35 29 20 3b 20 53 54  |opcode(&85) ; ST|
00003340  41 20 6e 0d 1f 22 10 a4  67 65 74 62 79 74 65 31  |A n.."..getbyte1|
00003350  28 31 29 0d 1f 2c 13 4d  4f 56 20 52 30 2c 41 2c  |(1)..,.MOV R0,A,|
00003360  4c 53 52 23 32 34 0d 1f  36 25 53 54 52 42 20 52  |LSR#24..6%STRB R|
00003370  30 2c 5b 6d 65 6d 2c 52  31 5d 20 3b 20 7a 65 72  |0,[mem,R1] ; zer|
00003380  6f 20 70 61 67 65 20 53  54 52 42 0d 1f 40 0f a4  |o page STRB..@..|
00003390  66 65 74 63 68 28 32 2c  33 29 0d 1f 4a 05 3b 0d  |fetch(2,3)..J.;.|
000033a0  1f 54 18 2e 6f 70 63 6f  64 65 28 26 38 36 29 20  |.T..opcode(&86) |
000033b0  3b 20 53 54 58 20 6e 0d  1f 5e 10 a4 67 65 74 62  |; STX n..^..getb|
000033c0  79 74 65 31 28 31 29 0d  1f 68 13 4d 4f 56 20 52  |yte1(1)..h.MOV R|
000033d0  30 2c 58 2c 4c 53 52 23  32 34 0d 1f 72 25 53 54  |0,X,LSR#24..r%ST|
000033e0  52 42 20 52 30 2c 5b 6d  65 6d 2c 52 31 5d 20 3b  |RB R0,[mem,R1] ;|
000033f0  20 7a 65 72 6f 20 70 61  67 65 20 53 54 52 42 0d  | zero page STRB.|
00003400  1f 7c 0f a4 66 65 74 63  68 28 32 2c 33 29 0d 1f  |.|..fetch(2,3)..|
00003410  86 05 3b 0d 1f 90 37 2e  6f 70 63 6f 64 65 28 26  |..;...7.opcode(&|
00003420  38 37 29 20 3b 20 28 53  41 58 20 6e 20 2d 20 73  |87) ; (SAX n - s|
00003430  74 6f 72 65 20 28 41 20  80 20 58 29 20 69 6e 20  |tore (A . X) in |
00003440  7a 65 72 6f 20 70 61 67  65 29 0d 1f 9a 10 a4 67  |zero page).....g|
00003450  65 74 62 79 74 65 31 28  31 29 0d 1f a4 0d 80 53  |etbyte1(1).....S|
00003460  20 52 30 2c 58 2c 41 0d  1f ae 0c a4 73 65 74 75  | R0,X,A.....setu|
00003470  70 4e 5a 0d 1f b8 14 4d  4f 56 20 52 30 2c 52 30  |pNZ....MOV R0,R0|
00003480  2c 4c 53 52 23 32 34 0d  1f c2 25 53 54 52 42 20  |,LSR#24...%STRB |
00003490  52 30 2c 5b 6d 65 6d 2c  52 31 5d 20 3b 20 7a 65  |R0,[mem,R1] ; ze|
000034a0  72 6f 20 70 61 67 65 20  53 54 52 42 0d 1f cc 0f  |ro page STRB....|
000034b0  a4 66 65 74 63 68 28 32  2c 30 29 0d 1f d6 12 3b  |.fetch(2,0)....;|
000034c0  53 57 49 20 26 31 30 30  2b 97 22 38 22 0d 1f e0  |SWI &100+."8"...|
000034d0  12 3b 53 57 49 20 26 31  30 30 2b 97 22 37 22 0d  |.;SWI &100+."7".|
000034e0  1f ea 10 3b a4 66 65 74  63 68 28 31 2c 32 29 0d  |...;.fetch(1,2).|
000034f0  1f f4 05 3b 0d 1f fe 16  2e 6f 70 63 6f 64 65 28  |...;.....opcode(|
00003500  26 38 38 29 20 3b 20 44  45 59 0d 20 08 0b a4 64  |&88) ; DEY. ...d|
00003510  65 63 28 59 29 0d 20 12  0f a4 66 65 74 63 68 28  |ec(Y). ...fetch(|
00003520  31 2c 32 29 0d 20 1c 05  3b 0d 20 26 19 2e 6f 70  |1,2). ..;. &..op|
00003530  63 6f 64 65 28 26 38 39  29 20 3b 20 42 49 54 20  |code(&89) ; BIT |
00003540  23 4e 0d 20 30 10 a4 67  65 74 62 79 74 65 31 28  |#N. 0..getbyte1(|
00003550  30 29 0d 20 3a 13 54 53  54 20 52 30 2c 41 2c 4c  |0). :.TST R0,A,L|
00003560  53 52 23 32 34 0d 20 44  36 42 49 43 20 46 2c 46  |SR#24. D6BIC F,F|
00003570  2c 23 25 31 30 20 3b 20  4e 20 61 6e 64 20 56 20  |,#%10 ; N and V |
00003580  75 6e 63 68 61 6e 67 65  64 20 69 6e 20 69 6d 6d  |unchanged in imm|
00003590  65 64 69 61 74 65 20 6d  6f 64 65 0d 20 4e 11 84  |ediate mode. N..|
000035a0  52 45 51 20 46 2c 46 2c  23 25 31 30 0d 20 58 11  |REQ F,F,#%10. X.|
000035b0  2e 62 72 61 6e 63 68 5f  66 65 74 63 68 0d 20 62  |.branch_fetch. b|
000035c0  0f a4 66 65 74 63 68 28  32 2c 32 29 0d 20 6c 05  |..fetch(2,2). l.|
000035d0  3b 0d 20 76 16 2e 6f 70  63 6f 64 65 28 26 38 41  |;. v..opcode(&8A|
000035e0  29 20 3b 20 54 58 41 0d  20 80 0c 4d 4f 56 53 20  |) ; TXA. ..MOVS |
000035f0  41 2c 58 0d 20 8a 0c a4  73 65 74 75 70 4e 5a 0d  |A,X. ...setupNZ.|
00003600  20 94 0f a4 66 65 74 63  68 28 31 2c 32 29 0d 20  | ...fetch(1,2). |
00003610  9e 05 3b 0d 20 a8 14 2e  6f 70 63 6f 64 65 28 26  |..;. ...opcode(&|
00003620  38 42 29 20 3b 20 3f 0d  20 b2 0f a4 75 6e 64 6f  |8B) ; ?. ...undo|
00003630  63 28 26 38 42 29 0d 20  bc 0f a4 66 65 74 63 68  |c(&8B). ...fetch|
00003640  28 31 2c 32 29 0d 20 c6  05 3b 0d 20 d0 19 2e 6f  |(1,2). ..;. ...o|
00003650  70 63 6f 64 65 28 26 38  43 29 20 3b 20 53 54 59  |pcode(&8C) ; STY|
00003660  20 6e 6e 0d 20 da 0d a4  61 62 73 28 30 2c 31 29  | nn. ...abs(0,1)|
00003670  0d 20 e4 13 4d 4f 56 20  52 30 2c 59 2c 4c 53 52  |. ..MOV R0,Y,LSR|
00003680  23 32 34 0d 20 ee 0e a4  73 74 72 62 28 30 2c 31  |#24. ...strb(0,1|
00003690  29 0d 20 f8 0f a4 66 65  74 63 68 28 33 2c 34 29  |). ...fetch(3,4)|
000036a0  0d 21 02 05 3b 0d 21 0c  19 2e 6f 70 63 6f 64 65  |.!..;.!...opcode|
000036b0  28 26 38 44 29 20 3b 20  53 54 41 20 6e 6e 0d 21  |(&8D) ; STA nn.!|
000036c0  16 0d a4 61 62 73 28 30  2c 31 29 0d 21 20 13 4d  |...abs(0,1).! .M|
000036d0  4f 56 20 52 30 2c 41 2c  4c 53 52 23 32 34 0d 21  |OV R0,A,LSR#24.!|
000036e0  2a 0e a4 73 74 72 62 28  30 2c 31 29 0d 21 34 0f  |*..strb(0,1).!4.|
000036f0  a4 66 65 74 63 68 28 33  2c 34 29 0d 21 3e 05 3b  |.fetch(3,4).!>.;|
00003700  0d 21 48 19 2e 6f 70 63  6f 64 65 28 26 38 45 29  |.!H..opcode(&8E)|
00003710  20 3b 20 53 54 58 20 6e  6e 0d 21 52 0d a4 61 62  | ; STX nn.!R..ab|
00003720  73 28 30 2c 31 29 0d 21  5c 13 4d 4f 56 20 52 30  |s(0,1).!\.MOV R0|
00003730  2c 58 2c 4c 53 52 23 32  34 0d 21 66 0e a4 73 74  |,X,LSR#24.!f..st|
00003740  72 62 28 30 2c 31 29 0d  21 70 0f a4 66 65 74 63  |rb(0,1).!p..fetc|
00003750  68 28 33 2c 34 29 0d 21  7a 05 3b 0d 21 84 14 2e  |h(3,4).!z.;.!...|
00003760  6f 70 63 6f 64 65 28 26  38 46 29 20 3b 20 3f 0d  |opcode(&8F) ; ?.|
00003770  21 8e 0f a4 75 6e 64 6f  63 28 26 38 46 29 0d 21  |!...undoc(&8F).!|
00003780  98 0f a4 66 65 74 63 68  28 31 2c 32 29 0d 21 a2  |...fetch(1,2).!.|
00003790  05 3b 0d 21 ac 18 2e 6f  70 63 6f 64 65 28 26 39  |.;.!...opcode(&9|
000037a0  30 29 20 3b 20 42 43 43  20 72 0d 21 b6 0d 54 53  |0) ; BCC r.!..TS|
000037b0  54 20 46 2c 23 25 31 0d  21 c0 14 42 4e 45 20 62  |T F,#%1.!..BNE b|
000037c0  72 61 6e 63 68 5f 66 65  74 63 68 0d 21 ca 0b a4  |ranch_fetch.!...|
000037d0  62 72 61 6e 63 68 0d 21  d4 05 3b 0d 21 de 1c 2e  |branch.!..;.!...|
000037e0  6f 70 63 6f 64 65 28 26  39 31 29 20 3b 20 53 54  |opcode(&91) ; ST|
000037f0  41 20 28 6e 29 2c 59 0d  21 e8 0e a4 70 6f 73 74  |A (n),Y.!...post|
00003800  28 30 2c 31 29 0d 21 f2  13 4d 4f 56 20 52 30 2c  |(0,1).!..MOV R0,|
00003810  41 2c 4c 53 52 23 32 34  0d 21 fc 10 a4 73 74 72  |A,LSR#24.!...str|
00003820  62 31 36 28 30 2c 31 29  0d 22 06 0f a4 66 65 74  |b16(0,1)."...fet|
00003830  63 68 28 32 2c 36 29 0d  22 10 05 3b 0d 22 1a 1a  |ch(2,6)."..;."..|
00003840  2e 6f 70 63 6f 64 65 28  26 39 32 29 20 3b 20 53  |.opcode(&92) ; S|
00003850  54 41 20 28 6e 29 0d 22  24 13 a4 7a 65 72 6f 69  |TA (n)."$..zeroi|
00003860  6e 64 69 72 28 30 2c 31  29 0d 22 2e 13 4d 4f 56  |ndir(0,1)."..MOV|
00003870  20 52 30 2c 41 2c 4c 53  52 23 32 34 0d 22 38 0e  | R0,A,LSR#24."8.|
00003880  a4 73 74 72 62 28 30 2c  31 29 0d 22 42 0f a4 66  |.strb(0,1)."B..f|
00003890  65 74 63 68 28 32 2c 35  29 0d 22 4c 05 3b 0d 22  |etch(2,5)."L.;."|
000038a0  56 14 2e 6f 70 63 6f 64  65 28 26 39 33 29 20 3b  |V..opcode(&93) ;|
000038b0  20 3f 0d 22 60 0f a4 75  6e 64 6f 63 28 26 39 33  | ?."`..undoc(&93|
000038c0  29 0d 22 6a 0f a4 66 65  74 63 68 28 31 2c 32 29  |)."j..fetch(1,2)|
000038d0  0d 22 74 05 3b 0d 22 7e  1a 2e 6f 70 63 6f 64 65  |."t.;."~..opcode|
000038e0  28 26 39 34 29 20 3b 20  53 54 59 20 6e 2c 58 0d  |(&94) ; STY n,X.|
000038f0  22 88 16 a4 67 65 74 7a  65 72 6f 69 6e 64 65 78  |"...getzeroindex|
00003900  28 30 2c 31 29 0d 22 92  13 4d 4f 56 20 52 30 2c  |(0,1)."..MOV R0,|
00003910  59 2c 4c 53 52 23 32 34  0d 22 9c 2c 53 54 52 42  |Y,LSR#24.".,STRB|
00003920  20 52 30 2c 5b 6d 65 6d  2c 52 31 2c 4c 53 52 23  | R0,[mem,R1,LSR#|
00003930  32 34 5d 20 3b 20 7a 65  72 6f 20 70 61 67 65 20  |24] ; zero page |
00003940  53 54 52 42 0d 22 a6 0f  a4 66 65 74 63 68 28 32  |STRB."...fetch(2|
00003950  2c 34 29 0d 22 b0 05 3b  0d 22 ba 1a 2e 6f 70 63  |,4)."..;."...opc|
00003960  6f 64 65 28 26 39 35 29  20 3b 20 53 54 41 20 6e  |ode(&95) ; STA n|
00003970  2c 58 0d 22 c4 13 a4 7a  65 72 6f 69 6e 64 65 78  |,X."...zeroindex|
00003980  28 30 2c 31 29 0d 22 ce  13 4d 4f 56 20 52 30 2c  |(0,1)."..MOV R0,|
00003990  41 2c 4c 53 52 23 32 34  0d 22 d8 2c 53 54 52 42  |A,LSR#24.".,STRB|
000039a0  20 52 30 2c 5b 6d 65 6d  2c 52 31 2c 4c 53 52 23  | R0,[mem,R1,LSR#|
000039b0  32 34 5d 20 3b 20 7a 65  72 6f 20 70 61 67 65 20  |24] ; zero page |
000039c0  53 54 52 42 0d 22 e2 0f  a4 66 65 74 63 68 28 32  |STRB."...fetch(2|
000039d0  2c 34 29 0d 22 ec 05 3b  0d 22 f6 1a 2e 6f 70 63  |,4)."..;."...opc|
000039e0  6f 64 65 28 26 39 36 29  20 3b 20 53 54 58 20 6e  |ode(&96) ; STX n|
000039f0  2c 59 0d 23 00 14 a4 7a  65 72 6f 69 6e 64 65 78  |,Y.#...zeroindex|
00003a00  59 28 30 2c 31 29 0d 23  0a 13 4d 4f 56 20 52 30  |Y(0,1).#..MOV R0|
00003a10  2c 58 2c 4c 53 52 23 32  34 0d 23 14 2c 53 54 52  |,X,LSR#24.#.,STR|
00003a20  42 20 52 30 2c 5b 6d 65  6d 2c 52 31 2c 4c 53 52  |B R0,[mem,R1,LSR|
00003a30  23 32 34 5d 20 3b 20 7a  65 72 6f 20 70 61 67 65  |#24] ; zero page|
00003a40  20 53 54 52 42 0d 23 1e  05 20 0d 23 28 0f a4 66  | STRB.#.. .#(..f|
00003a50  65 74 63 68 28 32 2c 34  29 0d 23 32 05 3b 0d 23  |etch(2,4).#2.;.#|
00003a60  3c 14 2e 6f 70 63 6f 64  65 28 26 39 37 29 20 3b  |<..opcode(&97) ;|
00003a70  20 3f 0d 23 46 0f a4 75  6e 64 6f 63 28 26 39 37  | ?.#F..undoc(&97|
00003a80  29 0d 23 50 0f a4 66 65  74 63 68 28 31 2c 32 29  |).#P..fetch(1,2)|
00003a90  0d 23 5a 05 3b 0d 23 64  16 2e 6f 70 63 6f 64 65  |.#Z.;.#d..opcode|
00003aa0  28 26 39 38 29 20 3b 20  54 59 41 0d 23 6e 0c 4d  |(&98) ; TYA.#n.M|
00003ab0  4f 56 53 20 41 2c 59 0d  23 78 0c a4 73 65 74 75  |OVS A,Y.#x..setu|
00003ac0  70 4e 5a 0d 23 82 0f a4  66 65 74 63 68 28 31 2c  |pNZ.#...fetch(1,|
00003ad0  32 29 0d 23 8c 05 3b 0d  23 96 1b 2e 6f 70 63 6f  |2).#..;.#...opco|
00003ae0  64 65 28 26 39 39 29 20  3b 20 53 54 41 20 6e 6e  |de(&99) ; STA nn|
00003af0  2c 59 0d 23 a0 14 a4 61  62 73 69 6e 64 65 78 28  |,Y.#...absindex(|
00003b00  30 2c 31 2c 59 29 0d 23  aa 13 4d 4f 56 20 52 30  |0,1,Y).#..MOV R0|
00003b10  2c 41 2c 4c 53 52 23 32  34 0d 23 b4 10 a4 73 74  |,A,LSR#24.#...st|
00003b20  72 62 31 36 28 30 2c 31  29 0d 23 be 0f a4 66 65  |rb16(0,1).#...fe|
00003b30  74 63 68 28 33 2c 35 29  0d 23 c8 05 3b 0d 23 d2  |tch(3,5).#..;.#.|
00003b40  16 2e 6f 70 63 6f 64 65  28 26 39 41 29 20 3b 20  |..opcode(&9A) ; |
00003b50  54 58 53 0d 23 dc 22 4d  4f 56 53 20 53 50 2c 58  |TXS.#."MOVS SP,X|
00003b60  20 3b 20 66 6c 61 67 73  20 6e 6f 74 20 61 66 66  | ; flags not aff|
00003b70  65 63 74 65 64 0d 23 e6  0f 84 52 20 53 50 2c 53  |ected.#...R SP,S|
00003b80  50 2c 23 31 0d 23 f0 0c  a4 73 65 74 75 70 4e 5a  |P,#1.#...setupNZ|
00003b90  0d 23 fa 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |.#...fetch(1,2).|
00003ba0  24 04 05 3b 0d 24 0e 14  2e 6f 70 63 6f 64 65 28  |$..;.$...opcode(|
00003bb0  26 39 42 29 20 3b 20 3f  0d 24 18 0f a4 75 6e 64  |&9B) ; ?.$...und|
00003bc0  6f 63 28 26 39 42 29 0d  24 22 0f a4 66 65 74 63  |oc(&9B).$"..fetc|
00003bd0  68 28 31 2c 32 29 0d 24  2c 05 3b 0d 24 36 19 2e  |h(1,2).$,.;.$6..|
00003be0  6f 70 63 6f 64 65 28 26  39 43 29 20 3b 20 53 54  |opcode(&9C) ; ST|
00003bf0  5a 20 6e 6e 0d 24 40 0d  a4 61 62 73 28 30 2c 31  |Z nn.$@..abs(0,1|
00003c00  29 0d 24 4a 0d 4d 4f 56  20 52 30 2c 23 30 0d 24  |).$J.MOV R0,#0.$|
00003c10  54 0e a4 73 74 72 62 28  30 2c 31 29 0d 24 5e 0f  |T..strb(0,1).$^.|
00003c20  a4 66 65 74 63 68 28 33  2c 34 29 0d 24 68 05 3b  |.fetch(3,4).$h.;|
00003c30  0d 24 72 1b 2e 6f 70 63  6f 64 65 28 26 39 44 29  |.$r..opcode(&9D)|
00003c40  20 3b 20 53 54 41 20 6e  6e 2c 58 0d 24 7c 14 a4  | ; STA nn,X.$|..|
00003c50  61 62 73 69 6e 64 65 78  28 30 2c 31 2c 58 29 0d  |absindex(0,1,X).|
00003c60  24 86 13 4d 4f 56 20 52  30 2c 41 2c 4c 53 52 23  |$..MOV R0,A,LSR#|
00003c70  32 34 0d 24 90 10 a4 73  74 72 62 31 36 28 30 2c  |24.$...strb16(0,|
00003c80  31 29 0d 24 9a 0f a4 66  65 74 63 68 28 33 2c 35  |1).$...fetch(3,5|
00003c90  29 0d 24 a4 05 3b 0d 24  ae 1b 2e 6f 70 63 6f 64  |).$..;.$...opcod|
00003ca0  65 28 26 39 45 29 20 3b  20 53 54 5a 20 6e 6e 2c  |e(&9E) ; STZ nn,|
00003cb0  58 0d 24 b8 14 a4 61 62  73 69 6e 64 65 78 28 30  |X.$...absindex(0|
00003cc0  2c 31 2c 58 29 0d 24 c2  0d 4d 4f 56 20 52 30 2c  |,1,X).$..MOV R0,|
00003cd0  23 30 0d 24 cc 10 a4 73  74 72 62 31 36 28 30 2c  |#0.$...strb16(0,|
00003ce0  31 29 0d 24 d6 0f a4 66  65 74 63 68 28 33 2c 35  |1).$...fetch(3,5|
00003cf0  29 0d 24 e0 05 3b 0d 24  ea 14 2e 6f 70 63 6f 64  |).$..;.$...opcod|
00003d00  65 28 26 39 46 29 20 3b  20 3f 0d 24 f4 0f a4 75  |e(&9F) ; ?.$...u|
00003d10  6e 64 6f 63 28 26 39 46  29 0d 24 fe 0f a4 66 65  |ndoc(&9F).$...fe|
00003d20  74 63 68 28 31 2c 32 29  0d 25 08 05 3b 0d 25 12  |tch(1,2).%..;.%.|
00003d30  19 2e 6f 70 63 6f 64 65  28 26 41 30 29 20 3b 20  |..opcode(&A0) ; |
00003d40  4c 44 59 20 23 4e 0d 25  1c 10 a4 67 65 74 62 79  |LDY #N.%...getby|
00003d50  74 65 31 28 30 29 0d 25  26 0f a4 6c 64 79 28 30  |te1(0).%&..ldy(0|
00003d60  2c 32 2c 32 29 0d 25 30  05 3b 0d 25 3a 1d 2e 6f  |,2,2).%0.;.%:..o|
00003d70  70 63 6f 64 65 28 26 41  31 29 20 3b 20 4c 44 41  |pcode(&A1) ; LDA|
00003d80  20 20 28 6e 2c 58 29 0d  25 44 10 a4 67 65 74 70  |  (n,X).%D..getp|
00003d90  72 65 28 30 2c 31 29 0d  25 4e 0f a4 6c 64 61 28  |re(0,1).%N..lda(|
00003da0  30 2c 32 2c 36 29 0d 25  58 05 3b 0d 25 62 19 2e  |0,2,6).%X.;.%b..|
00003db0  6f 70 63 6f 64 65 28 26  41 32 29 20 3b 20 4c 44  |opcode(&A2) ; LD|
00003dc0  58 20 23 4e 0d 25 6c 10  a4 67 65 74 62 79 74 65  |X #N.%l..getbyte|
00003dd0  31 28 30 29 0d 25 76 0f  a4 6c 64 78 28 30 2c 32  |1(0).%v..ldx(0,2|
00003de0  2c 32 29 0d 25 80 05 3b  0d 25 8a 14 2e 6f 70 63  |,2).%..;.%...opc|
00003df0  6f 64 65 28 26 41 33 29  20 3b 20 3f 0d 25 94 0f  |ode(&A3) ; ?.%..|
00003e00  a4 75 6e 64 6f 63 28 26  41 33 29 0d 25 9e 0f a4  |.undoc(&A3).%...|
00003e10  66 65 74 63 68 28 31 2c  32 29 0d 25 a8 05 3b 0d  |fetch(1,2).%..;.|
00003e20  25 b2 18 2e 6f 70 63 6f  64 65 28 26 41 34 29 20  |%...opcode(&A4) |
00003e30  3b 20 4c 44 59 20 6e 0d  25 bc 11 a4 67 65 74 7a  |; LDY n.%...getz|
00003e40  65 72 6f 28 30 2c 31 29  0d 25 c6 0f a4 6c 64 79  |ero(0,1).%...ldy|
00003e50  28 30 2c 32 2c 33 29 0d  25 d0 05 3b 0d 25 da 18  |(0,2,3).%..;.%..|
00003e60  2e 6f 70 63 6f 64 65 28  26 41 35 29 20 3b 20 4c  |.opcode(&A5) ; L|
00003e70  44 41 20 6e 0d 25 e4 11  a4 67 65 74 7a 65 72 6f  |DA n.%...getzero|
00003e80  28 30 2c 31 29 0d 25 ee  0f a4 6c 64 61 28 30 2c  |(0,1).%...lda(0,|
00003e90  32 2c 33 29 0d 25 f8 05  3b 0d 26 02 18 2e 6f 70  |2,3).%..;.&...op|
00003ea0  63 6f 64 65 28 26 41 36  29 20 3b 20 4c 44 58 20  |code(&A6) ; LDX |
00003eb0  6e 0d 26 0c 11 a4 67 65  74 7a 65 72 6f 28 30 2c  |n.&...getzero(0,|
00003ec0  31 29 0d 26 16 0f a4 6c  64 78 28 30 2c 32 2c 33  |1).&...ldx(0,2,3|
00003ed0  29 0d 26 20 05 3b 0d 26  2a 14 2e 6f 70 63 6f 64  |).& .;.&*..opcod|
00003ee0  65 28 26 41 37 29 20 3b  20 3f 0d 26 34 0f a4 75  |e(&A7) ; ?.&4..u|
00003ef0  6e 64 6f 63 28 26 41 37  29 0d 26 3e 0f a4 66 65  |ndoc(&A7).&>..fe|
00003f00  74 63 68 28 31 2c 32 29  0d 26 48 05 3b 0d 26 52  |tch(1,2).&H.;.&R|
00003f10  16 2e 6f 70 63 6f 64 65  28 26 41 38 29 20 3b 20  |..opcode(&A8) ; |
00003f20  54 41 59 0d 26 5c 0c 4d  4f 56 53 20 59 2c 41 0d  |TAY.&\.MOVS Y,A.|
00003f30  26 66 0c a4 73 65 74 75  70 4e 5a 0d 26 70 0f a4  |&f..setupNZ.&p..|
00003f40  66 65 74 63 68 28 31 2c  32 29 0d 26 7a 05 3b 0d  |fetch(1,2).&z.;.|
00003f50  26 84 19 2e 6f 70 63 6f  64 65 28 26 41 39 29 20  |&...opcode(&A9) |
00003f60  3b 20 4c 44 41 20 23 4e  0d 26 8e 10 a4 67 65 74  |; LDA #N.&...get|
00003f70  62 79 74 65 31 28 30 29  0d 26 98 0f a4 6c 64 61  |byte1(0).&...lda|
00003f80  28 30 2c 32 2c 32 29 0d  26 a2 05 3b 0d 26 ac 16  |(0,2,2).&..;.&..|
00003f90  2e 6f 70 63 6f 64 65 28  26 41 41 29 20 3b 20 54  |.opcode(&AA) ; T|
00003fa0  41 58 0d 26 b6 0c 4d 4f  56 53 20 58 2c 41 0d 26  |AX.&..MOVS X,A.&|
00003fb0  c0 0c a4 73 65 74 75 70  4e 5a 0d 26 ca 0f a4 66  |...setupNZ.&...f|
00003fc0  65 74 63 68 28 31 2c 32  29 0d 26 d4 05 3b 0d 26  |etch(1,2).&..;.&|
00003fd0  de 14 2e 6f 70 63 6f 64  65 28 26 41 42 29 20 3b  |...opcode(&AB) ;|
00003fe0  20 3f 0d 26 e8 0f a4 75  6e 64 6f 63 28 26 41 42  | ?.&...undoc(&AB|
00003ff0  29 0d 26 f2 0f a4 66 65  74 63 68 28 31 2c 32 29  |).&...fetch(1,2)|
00004000  0d 26 fc 05 3b 0d 27 06  19 2e 6f 70 63 6f 64 65  |.&..;.'...opcode|
00004010  28 26 41 43 29 20 3b 20  4c 44 59 20 6e 6e 0d 27  |(&AC) ; LDY nn.'|
00004020  10 10 a4 67 65 74 61 62  73 28 30 2c 31 29 0d 27  |...getabs(0,1).'|
00004030  1a 0f a4 6c 64 79 28 30  2c 33 2c 34 29 0d 27 24  |...ldy(0,3,4).'$|
00004040  05 3b 0d 27 2e 19 2e 6f  70 63 6f 64 65 28 26 41  |.;.'...opcode(&A|
00004050  44 29 20 3b 20 4c 44 41  20 6e 6e 0d 27 38 10 a4  |D) ; LDA nn.'8..|
00004060  67 65 74 61 62 73 28 30  2c 31 29 0d 27 42 0f a4  |getabs(0,1).'B..|
00004070  6c 64 61 28 30 2c 33 2c  34 29 0d 27 4c 05 3b 0d  |lda(0,3,4).'L.;.|
00004080  27 56 19 2e 6f 70 63 6f  64 65 28 26 41 45 29 20  |'V..opcode(&AE) |
00004090  3b 20 4c 44 58 20 6e 6e  0d 27 60 10 a4 67 65 74  |; LDX nn.'`..get|
000040a0  61 62 73 28 30 2c 31 29  0d 27 6a 0f a4 6c 64 78  |abs(0,1).'j..ldx|
000040b0  28 30 2c 33 2c 34 29 0d  27 74 05 3b 0d 27 7e 14  |(0,3,4).'t.;.'~.|
000040c0  2e 6f 70 63 6f 64 65 28  26 41 46 29 20 3b 20 3f  |.opcode(&AF) ; ?|
000040d0  0d 27 88 0f a4 75 6e 64  6f 63 28 26 41 46 29 0d  |.'...undoc(&AF).|
000040e0  27 92 0f a4 66 65 74 63  68 28 31 2c 32 29 0d 27  |'...fetch(1,2).'|
000040f0  9c 05 3b 0d 27 a6 18 2e  6f 70 63 6f 64 65 28 26  |..;.'...opcode(&|
00004100  42 30 29 20 3b 20 42 43  53 20 72 0d 27 b0 0d 54  |B0) ; BCS r.'..T|
00004110  53 54 20 46 2c 23 25 31  0d 27 ba 14 42 45 51 20  |ST F,#%1.'..BEQ |
00004120  62 72 61 6e 63 68 5f 66  65 74 63 68 0d 27 c4 0b  |branch_fetch.'..|
00004130  a4 62 72 61 6e 63 68 0d  27 ce 05 3b 0d 27 d8 1c  |.branch.'..;.'..|
00004140  2e 6f 70 63 6f 64 65 28  26 42 31 29 20 3b 20 4c  |.opcode(&B1) ; L|
00004150  44 41 20 28 6e 29 2c 59  0d 27 e2 11 a4 67 65 74  |DA (n),Y.'...get|
00004160  70 6f 73 74 28 30 2c 31  29 0d 27 ec 0f a4 6c 64  |post(0,1).'...ld|
00004170  61 28 30 2c 32 2c 35 29  0d 27 f6 05 3b 0d 28 00  |a(0,2,5).'..;.(.|
00004180  1a 2e 6f 70 63 6f 64 65  28 26 42 32 29 20 3b 20  |..opcode(&B2) ; |
00004190  4c 44 41 20 28 6e 29 0d  28 0a 16 a4 67 65 74 7a  |LDA (n).(...getz|
000041a0  65 72 6f 69 6e 64 69 72  28 30 2c 31 29 0d 28 14  |eroindir(0,1).(.|
000041b0  0f a4 6c 64 61 28 30 2c  32 2c 35 29 0d 28 1e 05  |..lda(0,2,5).(..|
000041c0  3b 0d 28 28 14 2e 6f 70  63 6f 64 65 28 26 42 33  |;.((..opcode(&B3|
000041d0  29 20 3b 20 3f 0d 28 32  0f a4 75 6e 64 6f 63 28  |) ; ?.(2..undoc(|
000041e0  26 42 33 29 0d 28 3c 0f  a4 66 65 74 63 68 28 31  |&B3).(<..fetch(1|
000041f0  2c 32 29 0d 28 46 05 3b  0d 28 50 1a 2e 6f 70 63  |,2).(F.;.(P..opc|
00004200  6f 64 65 28 26 42 34 29  20 3b 20 4c 44 59 20 6e  |ode(&B4) ; LDY n|
00004210  2c 58 0d 28 5a 16 a4 67  65 74 7a 65 72 6f 69 6e  |,X.(Z..getzeroin|
00004220  64 65 78 28 30 2c 31 29  0d 28 64 0f a4 6c 64 79  |dex(0,1).(d..ldy|
00004230  28 30 2c 32 2c 34 29 0d  28 6e 05 3b 0d 28 78 1a  |(0,2,4).(n.;.(x.|
00004240  2e 6f 70 63 6f 64 65 28  26 42 35 29 20 3b 20 4c  |.opcode(&B5) ; L|
00004250  44 41 20 6e 2c 58 0d 28  82 16 a4 67 65 74 7a 65  |DA n,X.(...getze|
00004260  72 6f 69 6e 64 65 78 28  30 2c 31 29 0d 28 8c 0f  |roindex(0,1).(..|
00004270  a4 6c 64 61 28 30 2c 32  2c 34 29 0d 28 96 05 3b  |.lda(0,2,4).(..;|
00004280  0d 28 a0 1a 2e 6f 70 63  6f 64 65 28 26 42 36 29  |.(...opcode(&B6)|
00004290  20 3b 20 4c 44 58 20 6e  2c 59 0d 28 aa 17 a4 67  | ; LDX n,Y.(...g|
000042a0  65 74 7a 65 72 6f 69 6e  64 65 78 59 28 30 2c 31  |etzeroindexY(0,1|
000042b0  29 0d 28 b4 0f a4 6c 64  78 28 30 2c 32 2c 34 29  |).(...ldx(0,2,4)|
000042c0  0d 28 be 05 3b 0d 28 c8  14 2e 6f 70 63 6f 64 65  |.(..;.(...opcode|
000042d0  28 26 42 37 29 20 3b 20  3f 0d 28 d2 0f a4 75 6e  |(&B7) ; ?.(...un|
000042e0  64 6f 63 28 26 42 37 29  0d 28 dc 0f a4 66 65 74  |doc(&B7).(...fet|
000042f0  63 68 28 31 2c 32 29 0d  28 e6 05 3b 0d 28 f0 16  |ch(1,2).(..;.(..|
00004300  2e 6f 70 63 6f 64 65 28  26 42 38 29 20 3b 20 43  |.opcode(&B8) ; C|
00004310  4c 56 0d 28 fa 15 42 49  43 20 46 2c 46 2c 23 25  |LV.(..BIC F,F,#%|
00004320  31 30 30 30 30 30 30 0d  29 04 0f a4 66 65 74 63  |1000000.)...fetc|
00004330  68 28 31 2c 32 29 0d 29  0e 05 3b 0d 29 18 1b 2e  |h(1,2).)..;.)...|
00004340  6f 70 63 6f 64 65 28 26  42 39 29 20 3b 20 4c 44  |opcode(&B9) ; LD|
00004350  41 20 6e 6e 2c 59 0d 29  22 17 a4 67 65 74 61 62  |A nn,Y.)"..getab|
00004360  73 69 6e 64 65 78 28 30  2c 31 2c 59 29 0d 29 2c  |sindex(0,1,Y).),|
00004370  0f a4 6c 64 61 28 30 2c  33 2c 34 29 0d 29 36 05  |..lda(0,3,4).)6.|
00004380  3b 0d 29 40 16 2e 6f 70  63 6f 64 65 28 26 42 41  |;.)@..opcode(&BA|
00004390  29 20 3b 20 54 53 58 0d  29 4a 16 80 53 20 58 2c  |) ; TSX.)J..S X,|
000043a0  53 50 2c 23 26 46 46 30  30 30 30 30 30 0d 29 54  |SP,#&FF000000.)T|
000043b0  0c a4 73 65 74 75 70 4e  5a 0d 29 5e 0f a4 66 65  |..setupNZ.)^..fe|
000043c0  74 63 68 28 31 2c 32 29  0d 29 68 05 3b 0d 29 72  |tch(1,2).)h.;.)r|
000043d0  14 2e 6f 70 63 6f 64 65  28 26 42 42 29 20 3b 20  |..opcode(&BB) ; |
000043e0  3f 0d 29 7c 0f a4 75 6e  64 6f 63 28 26 42 42 29  |?.)|..undoc(&BB)|
000043f0  0d 29 86 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |.)...fetch(1,2).|
00004400  29 90 05 3b 0d 29 9a 1b  2e 6f 70 63 6f 64 65 28  |)..;.)...opcode(|
00004410  26 42 43 29 20 3b 20 4c  44 59 20 6e 6e 2c 58 0d  |&BC) ; LDY nn,X.|
00004420  29 a4 17 a4 67 65 74 61  62 73 69 6e 64 65 78 28  |)...getabsindex(|
00004430  30 2c 31 2c 58 29 0d 29  ae 0f a4 6c 64 79 28 30  |0,1,X).)...ldy(0|
00004440  2c 33 2c 34 29 0d 29 b8  05 3b 0d 29 c2 1b 2e 6f  |,3,4).)..;.)...o|
00004450  70 63 6f 64 65 28 26 42  44 29 20 3b 20 4c 44 41  |pcode(&BD) ; LDA|
00004460  20 6e 6e 2c 58 0d 29 cc  17 a4 67 65 74 61 62 73  | nn,X.)...getabs|
00004470  69 6e 64 65 78 28 30 2c  31 2c 58 29 0d 29 d6 0f  |index(0,1,X).)..|
00004480  a4 6c 64 61 28 30 2c 33  2c 34 29 0d 29 e0 05 3b  |.lda(0,3,4).)..;|
00004490  0d 29 ea 1b 2e 6f 70 63  6f 64 65 28 26 42 45 29  |.)...opcode(&BE)|
000044a0  20 3b 20 4c 44 58 20 6e  6e 2c 59 0d 29 f4 17 a4  | ; LDX nn,Y.)...|
000044b0  67 65 74 61 62 73 69 6e  64 65 78 28 30 2c 31 2c  |getabsindex(0,1,|
000044c0  59 29 0d 29 fe 0f a4 6c  64 78 28 30 2c 33 2c 34  |Y).)...ldx(0,3,4|
000044d0  29 0d 2a 08 05 3b 0d 2a  12 14 2e 6f 70 63 6f 64  |).*..;.*...opcod|
000044e0  65 28 26 42 46 29 20 3b  20 3f 0d 2a 1c 0f a4 75  |e(&BF) ; ?.*...u|
000044f0  6e 64 6f 63 28 26 42 46  29 0d 2a 26 0f a4 66 65  |ndoc(&BF).*&..fe|
00004500  74 63 68 28 31 2c 32 29  0d 2a 30 05 3b 0d 2a 3a  |tch(1,2).*0.;.*:|
00004510  19 2e 6f 70 63 6f 64 65  28 26 43 30 29 20 3b 20  |..opcode(&C0) ; |
00004520  43 50 59 20 23 4e 0d 2a  44 10 a4 67 65 74 62 79  |CPY #N.*D..getby|
00004530  74 65 31 28 30 29 0d 2a  4e 0f a4 63 70 79 28 30  |te1(0).*N..cpy(0|
00004540  2c 32 2c 32 29 0d 2a 58  05 3b 0d 2a 62 1c 2e 6f  |,2,2).*X.;.*b..o|
00004550  70 63 6f 64 65 28 26 43  31 29 20 3b 20 43 4d 50  |pcode(&C1) ; CMP|
00004560  20 28 6e 2c 58 29 0d 2a  6c 10 a4 67 65 74 70 72  | (n,X).*l..getpr|
00004570  65 28 30 2c 31 29 0d 2a  76 0f a4 63 6d 70 28 30  |e(0,1).*v..cmp(0|
00004580  2c 32 2c 36 29 0d 2a 80  05 3b 0d 2a 8a 14 2e 6f  |,2,6).*..;.*...o|
00004590  70 63 6f 64 65 28 26 43  32 29 20 3b 20 3f 0d 2a  |pcode(&C2) ; ?.*|
000045a0  94 0f a4 75 6e 64 6f 63  28 26 43 32 29 0d 2a 9e  |...undoc(&C2).*.|
000045b0  0f a4 66 65 74 63 68 28  31 2c 32 29 0d 2a a8 05  |..fetch(1,2).*..|
000045c0  3b 0d 2a b2 14 2e 6f 70  63 6f 64 65 28 26 43 33  |;.*...opcode(&C3|
000045d0  29 20 3b 20 3f 0d 2a bc  0f a4 75 6e 64 6f 63 28  |) ; ?.*...undoc(|
000045e0  26 43 33 29 0d 2a c6 0f  a4 66 65 74 63 68 28 31  |&C3).*...fetch(1|
000045f0  2c 32 29 0d 2a d0 05 3b  0d 2a da 18 2e 6f 70 63  |,2).*..;.*...opc|
00004600  6f 64 65 28 26 43 34 29  20 3b 20 43 50 59 20 6e  |ode(&C4) ; CPY n|
00004610  0d 2a e4 11 a4 67 65 74  7a 65 72 6f 28 30 2c 31  |.*...getzero(0,1|
00004620  29 0d 2a ee 0f a4 63 70  79 28 30 2c 32 2c 33 29  |).*...cpy(0,2,3)|
00004630  0d 2a f8 05 3b 0d 2b 02  18 2e 6f 70 63 6f 64 65  |.*..;.+...opcode|
00004640  28 26 43 35 29 20 3b 20  43 4d 50 20 6e 0d 2b 0c  |(&C5) ; CMP n.+.|
00004650  11 a4 67 65 74 7a 65 72  6f 28 30 2c 31 29 0d 2b  |..getzero(0,1).+|
00004660  16 0f a4 63 6d 70 28 30  2c 32 2c 33 29 0d 2b 20  |...cmp(0,2,3).+ |
00004670  05 3b 0d 2b 2a 18 2e 6f  70 63 6f 64 65 28 26 43  |.;.+*..opcode(&C|
00004680  36 29 20 3b 20 44 45 43  20 6e 0d 2b 34 11 a4 67  |6) ; DEC n.+4..g|
00004690  65 74 7a 65 72 6f 28 30  2c 31 29 0d 2b 3e 0b a4  |etzero(0,1).+>..|
000046a0  64 65 63 28 30 29 0d 2b  48 25 53 54 52 42 20 52  |dec(0).+H%STRB R|
000046b0  30 2c 5b 6d 65 6d 2c 52  31 5d 20 3b 20 7a 65 72  |0,[mem,R1] ; zer|
000046c0  6f 20 70 61 67 65 20 53  54 52 42 0d 2b 52 0f a4  |o page STRB.+R..|
000046d0  66 65 74 63 68 28 32 2c  35 29 0d 2b 5c 05 3b 0d  |fetch(2,5).+\.;.|
000046e0  2b 66 14 2e 6f 70 63 6f  64 65 28 26 43 37 29 20  |+f..opcode(&C7) |
000046f0  3b 20 3f 0d 2b 70 0f a4  75 6e 64 6f 63 28 26 43  |; ?.+p..undoc(&C|
00004700  37 29 0d 2b 7a 0f a4 66  65 74 63 68 28 31 2c 32  |7).+z..fetch(1,2|
00004710  29 0d 2b 84 05 3b 0d 2b  8e 16 2e 6f 70 63 6f 64  |).+..;.+...opcod|
00004720  65 28 26 43 38 29 20 3b  20 49 4e 59 0d 2b 98 0b  |e(&C8) ; INY.+..|
00004730  a4 69 6e 63 28 59 29 0d  2b a2 0f a4 66 65 74 63  |.inc(Y).+...fetc|
00004740  68 28 31 2c 32 29 0d 2b  ac 05 3b 0d 2b b6 19 2e  |h(1,2).+..;.+...|
00004750  6f 70 63 6f 64 65 28 26  43 39 29 20 3b 20 43 4d  |opcode(&C9) ; CM|
00004760  50 20 23 4e 0d 2b c0 10  a4 67 65 74 62 79 74 65  |P #N.+...getbyte|
00004770  31 28 30 29 0d 2b ca 0f  a4 63 6d 70 28 30 2c 32  |1(0).+...cmp(0,2|
00004780  2c 32 29 0d 2b d4 05 3b  0d 2b de 16 2e 6f 70 63  |,2).+..;.+...opc|
00004790  6f 64 65 28 26 43 41 29  20 3b 20 44 45 58 0d 2b  |ode(&CA) ; DEX.+|
000047a0  e8 0b a4 64 65 63 28 58  29 0d 2b f2 0f a4 66 65  |...dec(X).+...fe|
000047b0  74 63 68 28 31 2c 32 29  0d 2b fc 05 3b 0d 2c 06  |tch(1,2).+..;.,.|
000047c0  14 2e 6f 70 63 6f 64 65  28 26 43 42 29 20 3b 20  |..opcode(&CB) ; |
000047d0  3f 0d 2c 10 0f a4 75 6e  64 6f 63 28 26 43 42 29  |?.,...undoc(&CB)|
000047e0  0d 2c 1a 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |.,...fetch(1,2).|
000047f0  2c 24 05 3b 0d 2c 2e 19  2e 6f 70 63 6f 64 65 28  |,$.;.,...opcode(|
00004800  26 43 43 29 20 3b 20 43  50 59 20 6e 6e 0d 2c 38  |&CC) ; CPY nn.,8|
00004810  10 a4 67 65 74 61 62 73  28 30 2c 31 29 0d 2c 42  |..getabs(0,1).,B|
00004820  0f a4 63 70 79 28 30 2c  33 2c 34 29 0d 2c 4c 05  |..cpy(0,3,4).,L.|
00004830  3b 0d 2c 56 19 2e 6f 70  63 6f 64 65 28 26 43 44  |;.,V..opcode(&CD|
00004840  29 20 3b 20 43 4d 50 20  6e 6e 0d 2c 60 10 a4 67  |) ; CMP nn.,`..g|
00004850  65 74 61 62 73 28 30 2c  31 29 0d 2c 6a 0f a4 63  |etabs(0,1).,j..c|
00004860  6d 70 28 30 2c 33 2c 34  29 0d 2c 74 05 3b 0d 2c  |mp(0,3,4).,t.;.,|
00004870  7e 19 2e 6f 70 63 6f 64  65 28 26 43 45 29 20 3b  |~..opcode(&CE) ;|
00004880  20 44 45 43 20 6e 6e 0d  2c 88 10 a4 67 65 74 61  | DEC nn.,...geta|
00004890  62 73 28 30 2c 31 29 0d  2c 92 0b a4 64 65 63 28  |bs(0,1).,...dec(|
000048a0  30 29 0d 2c 9c 0e a4 73  74 72 62 28 30 2c 31 29  |0).,...strb(0,1)|
000048b0  0d 2c a6 0f a4 66 65 74  63 68 28 33 2c 36 29 0d  |.,...fetch(3,6).|
000048c0  2c b0 05 3b 0d 2c ba 14  2e 6f 70 63 6f 64 65 28  |,..;.,...opcode(|
000048d0  26 43 46 29 20 3b 20 3f  0d 2c c4 0f a4 75 6e 64  |&CF) ; ?.,...und|
000048e0  6f 63 28 26 43 46 29 0d  2c ce 0f a4 66 65 74 63  |oc(&CF).,...fetc|
000048f0  68 28 31 2c 32 29 0d 2c  d8 05 3b 0d 2c e2 18 2e  |h(1,2).,..;.,...|
00004900  6f 70 63 6f 64 65 28 26  44 30 29 20 3b 20 42 4e  |opcode(&D0) ; BN|
00004910  45 20 72 0d 2c ec 0e 54  53 54 20 46 2c 23 25 31  |E r.,..TST F,#%1|
00004920  30 0d 2c f6 14 42 4e 45  20 62 72 61 6e 63 68 5f  |0.,..BNE branch_|
00004930  66 65 74 63 68 0d 2d 00  0b a4 62 72 61 6e 63 68  |fetch.-...branch|
00004940  0d 2d 0a 05 3b 0d 2d 14  1c 2e 6f 70 63 6f 64 65  |.-..;.-...opcode|
00004950  28 26 44 31 29 20 3b 20  43 4d 50 20 28 6e 29 2c  |(&D1) ; CMP (n),|
00004960  59 0d 2d 1e 11 a4 67 65  74 70 6f 73 74 28 30 2c  |Y.-...getpost(0,|
00004970  31 29 0d 2d 28 0f a4 63  6d 70 28 30 2c 32 2c 35  |1).-(..cmp(0,2,5|
00004980  29 0d 2d 32 05 3b 0d 2d  3c 1a 2e 6f 70 63 6f 64  |).-2.;.-<..opcod|
00004990  65 28 26 44 32 29 20 3b  20 43 4d 50 20 28 6e 29  |e(&D2) ; CMP (n)|
000049a0  0d 2d 46 16 a4 67 65 74  7a 65 72 6f 69 6e 64 69  |.-F..getzeroindi|
000049b0  72 28 30 2c 31 29 0d 2d  50 0f a4 63 6d 70 28 30  |r(0,1).-P..cmp(0|
000049c0  2c 32 2c 35 29 0d 2d 5a  05 3b 0d 2d 64 14 2e 6f  |,2,5).-Z.;.-d..o|
000049d0  70 63 6f 64 65 28 26 44  33 29 20 3b 20 3f 0d 2d  |pcode(&D3) ; ?.-|
000049e0  6e 0f a4 75 6e 64 6f 63  28 26 44 33 29 0d 2d 78  |n..undoc(&D3).-x|
000049f0  0f a4 66 65 74 63 68 28  31 2c 32 29 0d 2d 82 05  |..fetch(1,2).-..|
00004a00  3b 0d 2d 8c 14 2e 6f 70  63 6f 64 65 28 26 44 34  |;.-...opcode(&D4|
00004a10  29 20 3b 20 3f 0d 2d 96  0f a4 75 6e 64 6f 63 28  |) ; ?.-...undoc(|
00004a20  26 44 34 29 0d 2d a0 0f  a4 66 65 74 63 68 28 31  |&D4).-...fetch(1|
00004a30  2c 32 29 0d 2d aa 05 3b  0d 2d b4 1a 2e 6f 70 63  |,2).-..;.-...opc|
00004a40  6f 64 65 28 26 44 35 29  20 3b 20 43 4d 50 20 6e  |ode(&D5) ; CMP n|
00004a50  2c 58 0d 2d be 16 a4 67  65 74 7a 65 72 6f 69 6e  |,X.-...getzeroin|
00004a60  64 65 78 28 30 2c 31 29  0d 2d c8 0f a4 63 6d 70  |dex(0,1).-...cmp|
00004a70  28 30 2c 32 2c 34 29 0d  2d d2 05 3b 0d 2d dc 1a  |(0,2,4).-..;.-..|
00004a80  2e 6f 70 63 6f 64 65 28  26 44 36 29 20 3b 20 44  |.opcode(&D6) ; D|
00004a90  45 43 20 6e 2c 58 0d 2d  e6 16 a4 67 65 74 7a 65  |EC n,X.-...getze|
00004aa0  72 6f 69 6e 64 65 78 28  30 2c 31 29 0d 2d f0 0b  |roindex(0,1).-..|
00004ab0  a4 64 65 63 28 30 29 0d  2d fa 1b 53 54 52 42 20  |.dec(0).-..STRB |
00004ac0  52 30 2c 5b 6d 65 6d 2c  52 31 2c 4c 53 52 23 32  |R0,[mem,R1,LSR#2|
00004ad0  34 5d 0d 2e 04 0f a4 66  65 74 63 68 28 32 2c 36  |4].....fetch(2,6|
00004ae0  29 0d 2e 0e 05 3b 0d 2e  18 14 2e 6f 70 63 6f 64  |)....;.....opcod|
00004af0  65 28 26 44 37 29 20 3b  20 3f 0d 2e 22 0f a4 75  |e(&D7) ; ?.."..u|
00004b00  6e 64 6f 63 28 26 44 37  29 0d 2e 2c 0f a4 66 65  |ndoc(&D7)..,..fe|
00004b10  74 63 68 28 31 2c 32 29  0d 2e 36 05 3b 0d 2e 40  |tch(1,2)..6.;..@|
00004b20  16 2e 6f 70 63 6f 64 65  28 26 44 38 29 20 3b 20  |..opcode(&D8) ; |
00004b30  43 4c 44 0d 2e 4a 10 54  53 54 20 46 2c 23 25 31  |CLD..J.TST F,#%1|
00004b40  30 30 30 0d 2e 54 1f 53  55 42 4e 45 20 74 61 62  |000..T.SUBNE tab|
00004b50  6c 65 2c 74 61 62 6c 65  2c 23 32 35 36 2a 36 34  |le,table,#256*64|
00004b60  2a 34 0d 2e 5e 14 42 49  43 4e 45 20 46 2c 46 2c  |*4..^.BICNE F,F,|
00004b70  23 25 31 30 30 30 0d 2e  68 1a 3b 41 44 52 20 74  |#%1000..h.;ADR t|
00004b80  61 62 6c 65 2c 6f 70 63  6f 64 65 74 61 62 6c 65  |able,opcodetable|
00004b90  0d 2e 72 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |..r..fetch(1,2).|
00004ba0  2e 7c 05 3b 0d 2e 86 1b  2e 6f 70 63 6f 64 65 28  |.|.;.....opcode(|
00004bb0  26 44 39 29 20 3b 20 43  4d 50 20 6e 6e 2c 59 0d  |&D9) ; CMP nn,Y.|
00004bc0  2e 90 17 a4 67 65 74 61  62 73 69 6e 64 65 78 28  |....getabsindex(|
00004bd0  30 2c 31 2c 59 29 0d 2e  9a 0f a4 63 6d 70 28 30  |0,1,Y).....cmp(0|
00004be0  2c 33 2c 34 29 0d 2e a4  05 3b 0d 2e ae 16 2e 6f  |,3,4)....;.....o|
00004bf0  70 63 6f 64 65 28 26 44  41 29 20 3b 20 50 48 58  |pcode(&DA) ; PHX|
00004c00  0d 2e b8 0c a4 70 75 73  68 28 58 29 0d 2e c2 0f  |.....push(X)....|
00004c10  a4 66 65 74 63 68 28 31  2c 33 29 0d 2e cc 05 3b  |.fetch(1,3)....;|
00004c20  0d 2e d6 14 2e 6f 70 63  6f 64 65 28 26 44 42 29  |.....opcode(&DB)|
00004c30  20 3b 20 3f 0d 2e e0 0f  a4 75 6e 64 6f 63 28 26  | ; ?.....undoc(&|
00004c40  44 42 29 0d 2e ea 0f a4  66 65 74 63 68 28 31 2c  |DB).....fetch(1,|
00004c50  32 29 0d 2e f4 05 3b 0d  2e fe 1d 2e 6f 70 63 6f  |2)....;.....opco|
00004c60  64 65 28 26 44 43 29 20  3b 20 28 4e 4f 50 20 6e  |de(&DC) ; (NOP n|
00004c70  6e 2c 58 29 0d 2f 08 12  3b 53 57 49 20 26 31 30  |n,X)./..;SWI &10|
00004c80  30 2b 97 22 44 22 0d 2f  12 12 3b 53 57 49 20 26  |0+."D"./..;SWI &|
00004c90  31 30 30 2b 97 22 43 22  0d 2f 1c 05 20 0d 2f 26  |100+."C"./.. ./&|
00004ca0  0f a4 66 65 74 63 68 28  33 2c 30 29 0d 2f 30 05  |..fetch(3,0)./0.|
00004cb0  3b 0d 2f 3a 1b 2e 6f 70  63 6f 64 65 28 26 44 44  |;./:..opcode(&DD|
00004cc0  29 20 3b 20 43 4d 50 20  6e 6e 2c 58 0d 2f 44 17  |) ; CMP nn,X./D.|
00004cd0  a4 67 65 74 61 62 73 69  6e 64 65 78 28 30 2c 31  |.getabsindex(0,1|
00004ce0  2c 58 29 0d 2f 4e 0f a4  63 6d 70 28 30 2c 33 2c  |,X)./N..cmp(0,3,|
00004cf0  34 29 0d 2f 58 05 3b 0d  2f 62 1b 2e 6f 70 63 6f  |4)./X.;./b..opco|
00004d00  64 65 28 26 44 45 29 20  3b 20 44 45 43 20 6e 6e  |de(&DE) ; DEC nn|
00004d10  2c 58 0d 2f 6c 17 a4 67  65 74 61 62 73 69 6e 64  |,X./l..getabsind|
00004d20  65 78 28 30 2c 31 2c 58  29 0d 2f 76 0b a4 64 65  |ex(0,1,X)./v..de|
00004d30  63 28 30 29 0d 2f 80 10  a4 73 74 72 62 31 36 28  |c(0)./...strb16(|
00004d40  30 2c 31 29 0d 2f 8a 0f  a4 66 65 74 63 68 28 33  |0,1)./...fetch(3|
00004d50  2c 37 29 0d 2f 94 05 3b  0d 2f 9e 14 2e 6f 70 63  |,7)./..;./...opc|
00004d60  6f 64 65 28 26 44 46 29  20 3b 20 3f 0d 2f a8 0f  |ode(&DF) ; ?./..|
00004d70  a4 75 6e 64 6f 63 28 26  44 46 29 0d 2f b2 0f a4  |.undoc(&DF)./...|
00004d80  66 65 74 63 68 28 31 2c  32 29 0d 2f bc 05 3b 0d  |fetch(1,2)./..;.|
00004d90  2f c6 19 2e 6f 70 63 6f  64 65 28 26 45 30 29 20  |/...opcode(&E0) |
00004da0  3b 20 43 50 58 20 23 4e  0d 2f d0 10 a4 67 65 74  |; CPX #N./...get|
00004db0  62 79 74 65 31 28 30 29  0d 2f da 0f a4 63 70 78  |byte1(0)./...cpx|
00004dc0  28 30 2c 32 2c 32 29 0d  2f e4 05 3b 0d 2f ee 1c  |(0,2,2)./..;./..|
00004dd0  2e 6f 70 63 6f 64 65 28  26 45 31 29 20 3b 20 53  |.opcode(&E1) ; S|
00004de0  42 43 20 28 6e 2c 58 29  0d 2f f8 10 a4 67 65 74  |BC (n,X)./...get|
00004df0  70 72 65 28 30 2c 31 29  0d 30 02 0f a4 73 62 63  |pre(0,1).0...sbc|
00004e00  28 30 2c 32 2c 36 29 0d  30 0c 05 3b 0d 30 16 14  |(0,2,6).0..;.0..|
00004e10  2e 6f 70 63 6f 64 65 28  26 45 32 29 20 3b 20 3f  |.opcode(&E2) ; ?|
00004e20  0d 30 20 0f a4 75 6e 64  6f 63 28 26 45 32 29 0d  |.0 ..undoc(&E2).|
00004e30  30 2a 0f a4 66 65 74 63  68 28 31 2c 32 29 0d 30  |0*..fetch(1,2).0|
00004e40  34 05 3b 0d 30 3e 14 2e  6f 70 63 6f 64 65 28 26  |4.;.0>..opcode(&|
00004e50  45 33 29 20 3b 20 3f 0d  30 48 0f a4 75 6e 64 6f  |E3) ; ?.0H..undo|
00004e60  63 28 26 45 33 29 0d 30  52 0f a4 66 65 74 63 68  |c(&E3).0R..fetch|
00004e70  28 31 2c 32 29 0d 30 5c  05 3b 0d 30 66 18 2e 6f  |(1,2).0\.;.0f..o|
00004e80  70 63 6f 64 65 28 26 45  34 29 20 3b 20 43 50 58  |pcode(&E4) ; CPX|
00004e90  20 6e 0d 30 70 11 a4 67  65 74 7a 65 72 6f 28 30  | n.0p..getzero(0|
00004ea0  2c 31 29 0d 30 7a 0f a4  63 70 78 28 30 2c 32 2c  |,1).0z..cpx(0,2,|
00004eb0  33 29 0d 30 84 05 3b 0d  30 8e 18 2e 6f 70 63 6f  |3).0..;.0...opco|
00004ec0  64 65 28 26 45 35 29 20  3b 20 53 42 43 20 6e 0d  |de(&E5) ; SBC n.|
00004ed0  30 98 11 a4 67 65 74 7a  65 72 6f 28 30 2c 31 29  |0...getzero(0,1)|
00004ee0  0d 30 a2 0f a4 73 62 63  28 30 2c 32 2c 33 29 0d  |.0...sbc(0,2,3).|
00004ef0  30 ac 05 3b 0d 30 b6 18  2e 6f 70 63 6f 64 65 28  |0..;.0...opcode(|
00004f00  26 45 36 29 20 3b 20 49  4e 43 20 6e 0d 30 c0 11  |&E6) ; INC n.0..|
00004f10  a4 67 65 74 7a 65 72 6f  28 30 2c 31 29 0d 30 ca  |.getzero(0,1).0.|
00004f20  0b a4 69 6e 63 28 30 29  0d 30 d4 25 53 54 52 42  |..inc(0).0.%STRB|
00004f30  20 52 30 2c 5b 6d 65 6d  2c 52 31 5d 20 3b 20 7a  | R0,[mem,R1] ; z|
00004f40  65 72 6f 20 70 61 67 65  20 53 54 52 42 0d 30 de  |ero page STRB.0.|
00004f50  0f a4 66 65 74 63 68 28  32 2c 35 29 0d 30 e8 05  |..fetch(2,5).0..|
00004f60  3b 0d 30 f2 14 2e 6f 70  63 6f 64 65 28 26 45 37  |;.0...opcode(&E7|
00004f70  29 20 3b 20 3f 0d 30 fc  0f a4 75 6e 64 6f 63 28  |) ; ?.0...undoc(|
00004f80  26 45 37 29 0d 31 06 0f  a4 66 65 74 63 68 28 31  |&E7).1...fetch(1|
00004f90  2c 32 29 0d 31 10 05 3b  0d 31 1a 16 2e 6f 70 63  |,2).1..;.1...opc|
00004fa0  6f 64 65 28 26 45 38 29  20 3b 20 49 4e 58 0d 31  |ode(&E8) ; INX.1|
00004fb0  24 0b a4 69 6e 63 28 58  29 0d 31 2e 0f a4 66 65  |$..inc(X).1...fe|
00004fc0  74 63 68 28 31 2c 32 29  0d 31 38 05 3b 0d 31 42  |tch(1,2).18.;.1B|
00004fd0  19 2e 6f 70 63 6f 64 65  28 26 45 39 29 20 3b 20  |..opcode(&E9) ; |
00004fe0  53 42 43 20 23 4e 0d 31  4c 10 a4 67 65 74 62 79  |SBC #N.1L..getby|
00004ff0  74 65 31 28 30 29 0d 31  56 0f a4 73 62 63 28 30  |te1(0).1V..sbc(0|
00005000  2c 32 2c 32 29 0d 31 60  05 3b 0d 31 6a 16 2e 6f  |,2,2).1`.;.1j..o|
00005010  70 63 6f 64 65 28 26 45  41 29 20 3b 20 4e 4f 50  |pcode(&EA) ; NOP|
00005020  0d 31 74 05 20 0d 31 7e  0f a4 66 65 74 63 68 28  |.1t. .1~..fetch(|
00005030  31 2c 32 29 0d 31 88 05  3b 0d 31 92 14 2e 6f 70  |1,2).1..;.1...op|
00005040  63 6f 64 65 28 26 45 42  29 20 3b 20 3f 0d 31 9c  |code(&EB) ; ?.1.|
00005050  0f a4 75 6e 64 6f 63 28  26 45 42 29 0d 31 a6 0f  |..undoc(&EB).1..|
00005060  a4 66 65 74 63 68 28 31  2c 32 29 0d 31 b0 05 3b  |.fetch(1,2).1..;|
00005070  0d 31 ba 19 2e 6f 70 63  6f 64 65 28 26 45 43 29  |.1...opcode(&EC)|
00005080  20 3b 20 43 50 58 20 6e  6e 0d 31 c4 10 a4 67 65  | ; CPX nn.1...ge|
00005090  74 61 62 73 28 30 2c 31  29 0d 31 ce 0f a4 63 70  |tabs(0,1).1...cp|
000050a0  78 28 30 2c 33 2c 34 29  0d 31 d8 05 3b 0d 31 e2  |x(0,3,4).1..;.1.|
000050b0  19 2e 6f 70 63 6f 64 65  28 26 45 44 29 20 3b 20  |..opcode(&ED) ; |
000050c0  53 42 43 20 6e 6e 0d 31  ec 10 a4 67 65 74 61 62  |SBC nn.1...getab|
000050d0  73 28 30 2c 31 29 0d 31  f6 0f a4 73 62 63 28 30  |s(0,1).1...sbc(0|
000050e0  2c 33 2c 34 29 0d 32 00  05 3b 0d 32 0a 19 2e 6f  |,3,4).2..;.2...o|
000050f0  70 63 6f 64 65 28 26 45  45 29 20 3b 20 49 4e 43  |pcode(&EE) ; INC|
00005100  20 6e 6e 0d 32 14 10 a4  67 65 74 61 62 73 28 30  | nn.2...getabs(0|
00005110  2c 31 29 0d 32 1e 0b a4  69 6e 63 28 30 29 0d 32  |,1).2...inc(0).2|
00005120  28 0e a4 73 74 72 62 28  30 2c 31 29 0d 32 32 0f  |(..strb(0,1).22.|
00005130  a4 66 65 74 63 68 28 33  2c 36 29 0d 32 3c 05 3b  |.fetch(3,6).2<.;|
00005140  0d 32 46 14 2e 6f 70 63  6f 64 65 28 26 45 46 29  |.2F..opcode(&EF)|
00005150  20 3b 20 3f 0d 32 50 0f  a4 75 6e 64 6f 63 28 26  | ; ?.2P..undoc(&|
00005160  45 46 29 0d 32 5a 0f a4  66 65 74 63 68 28 31 2c  |EF).2Z..fetch(1,|
00005170  32 29 0d 32 64 05 3b 0d  32 6e 18 2e 6f 70 63 6f  |2).2d.;.2n..opco|
00005180  64 65 28 26 46 30 29 20  3b 20 42 45 51 20 72 0d  |de(&F0) ; BEQ r.|
00005190  32 78 0e 54 53 54 20 46  2c 23 25 31 30 0d 32 82  |2x.TST F,#%10.2.|
000051a0  14 42 45 51 20 62 72 61  6e 63 68 5f 66 65 74 63  |.BEQ branch_fetc|
000051b0  68 0d 32 8c 0b a4 62 72  61 6e 63 68 0d 32 96 05  |h.2...branch.2..|
000051c0  3b 0d 32 a0 1c 2e 6f 70  63 6f 64 65 28 26 46 31  |;.2...opcode(&F1|
000051d0  29 20 3b 20 53 42 43 20  28 6e 29 2c 59 0d 32 aa  |) ; SBC (n),Y.2.|
000051e0  11 a4 67 65 74 70 6f 73  74 28 30 2c 31 29 0d 32  |..getpost(0,1).2|
000051f0  b4 0f a4 73 62 63 28 30  2c 32 2c 35 29 0d 32 be  |...sbc(0,2,5).2.|
00005200  05 3b 0d 32 c8 1a 2e 6f  70 63 6f 64 65 28 26 46  |.;.2...opcode(&F|
00005210  32 29 20 3b 20 53 42 43  20 28 6e 29 0d 32 d2 16  |2) ; SBC (n).2..|
00005220  a4 67 65 74 7a 65 72 6f  69 6e 64 69 72 28 30 2c  |.getzeroindir(0,|
00005230  31 29 0d 32 dc 0f a4 73  62 63 28 30 2c 32 2c 35  |1).2...sbc(0,2,5|
00005240  29 0d 32 e6 05 3b 0d 32  f0 14 2e 6f 70 63 6f 64  |).2..;.2...opcod|
00005250  65 28 26 46 33 29 20 3b  20 3f 0d 32 fa 0f a4 75  |e(&F3) ; ?.2...u|
00005260  6e 64 6f 63 28 26 46 33  29 0d 33 04 0f a4 66 65  |ndoc(&F3).3...fe|
00005270  74 63 68 28 31 2c 32 29  0d 33 0e 05 3b 0d 33 18  |tch(1,2).3..;.3.|
00005280  14 2e 6f 70 63 6f 64 65  28 26 46 34 29 20 3b 20  |..opcode(&F4) ; |
00005290  3f 0d 33 22 0f a4 75 6e  64 6f 63 28 26 46 34 29  |?.3"..undoc(&F4)|
000052a0  0d 33 2c 0f a4 66 65 74  63 68 28 31 2c 32 29 0d  |.3,..fetch(1,2).|
000052b0  33 36 05 3b 0d 33 40 1a  2e 6f 70 63 6f 64 65 28  |36.;.3@..opcode(|
000052c0  26 46 35 29 20 3b 20 53  42 43 20 6e 2c 58 0d 33  |&F5) ; SBC n,X.3|
000052d0  4a 16 a4 67 65 74 7a 65  72 6f 69 6e 64 65 78 28  |J..getzeroindex(|
000052e0  30 2c 31 29 0d 33 54 0f  a4 73 62 63 28 30 2c 32  |0,1).3T..sbc(0,2|
000052f0  2c 34 29 0d 33 5e 05 3b  0d 33 68 1a 2e 6f 70 63  |,4).3^.;.3h..opc|
00005300  6f 64 65 28 26 46 36 29  20 3b 20 49 4e 43 20 6e  |ode(&F6) ; INC n|
00005310  2c 58 0d 33 72 16 a4 67  65 74 7a 65 72 6f 69 6e  |,X.3r..getzeroin|
00005320  64 65 78 28 30 2c 31 29  0d 33 7c 0b a4 69 6e 63  |dex(0,1).3|..inc|
00005330  28 30 29 0d 33 86 2c 53  54 52 42 20 52 30 2c 5b  |(0).3.,STRB R0,[|
00005340  6d 65 6d 2c 52 31 2c 4c  53 52 23 32 34 5d 20 3b  |mem,R1,LSR#24] ;|
00005350  20 7a 65 72 6f 20 70 61  67 65 20 53 54 52 42 0d  | zero page STRB.|
00005360  33 90 0f a4 66 65 74 63  68 28 32 2c 36 29 0d 33  |3...fetch(2,6).3|
00005370  9a 05 3b 0d 33 a4 14 2e  6f 70 63 6f 64 65 28 26  |..;.3...opcode(&|
00005380  46 37 29 20 3b 20 3f 0d  33 ae 0f a4 75 6e 64 6f  |F7) ; ?.3...undo|
00005390  63 28 26 46 37 29 0d 33  b8 0f a4 66 65 74 63 68  |c(&F7).3...fetch|
000053a0  28 31 2c 32 29 0d 33 c2  05 3b 0d 33 cc 16 2e 6f  |(1,2).3..;.3...o|
000053b0  70 63 6f 64 65 28 26 46  38 29 20 3b 20 53 45 44  |pcode(&F8) ; SED|
000053c0  0d 33 d6 10 54 53 54 20  46 2c 23 25 31 30 30 30  |.3..TST F,#%1000|
000053d0  0d 33 e0 1f 41 44 44 45  51 20 74 61 62 6c 65 2c  |.3..ADDEQ table,|
000053e0  74 61 62 6c 65 2c 23 32  35 36 2a 36 34 2a 34 0d  |table,#256*64*4.|
000053f0  33 ea 13 84 52 45 51 20  46 2c 46 2c 23 25 31 30  |3...REQ F,F,#%10|
00005400  30 30 0d 33 f4 17 3b 41  44 52 20 74 61 62 6c 65  |00.3..;ADR table|
00005410  2c 62 63 64 74 61 62 6c  65 0d 33 fe 0f a4 66 65  |,bcdtable.3...fe|
00005420  74 63 68 28 31 2c 32 29  0d 34 08 05 3b 0d 34 12  |tch(1,2).4..;.4.|
00005430  1b 2e 6f 70 63 6f 64 65  28 26 46 39 29 20 3b 20  |..opcode(&F9) ; |
00005440  53 42 43 20 6e 6e 2c 59  0d 34 1c 17 a4 67 65 74  |SBC nn,Y.4...get|
00005450  61 62 73 69 6e 64 65 78  28 30 2c 31 2c 59 29 0d  |absindex(0,1,Y).|
00005460  34 26 0f a4 73 62 63 28  30 2c 33 2c 34 29 0d 34  |4&..sbc(0,3,4).4|
00005470  30 05 3b 0d 34 3a 16 2e  6f 70 63 6f 64 65 28 26  |0.;.4:..opcode(&|
00005480  46 41 29 20 3b 20 50 4c  58 0d 34 44 0c a4 70 75  |FA) ; PLX.4D..pu|
00005490  6c 6c 28 58 29 0d 34 4e  0f a4 66 65 74 63 68 28  |ll(X).4N..fetch(|
000054a0  31 2c 34 29 0d 34 58 05  3b 0d 34 62 14 2e 6f 70  |1,4).4X.;.4b..op|
000054b0  63 6f 64 65 28 26 46 42  29 20 3b 20 3f 0d 34 6c  |code(&FB) ; ?.4l|
000054c0  0f a4 75 6e 64 6f 63 28  26 46 42 29 0d 34 76 0f  |..undoc(&FB).4v.|
000054d0  a4 66 65 74 63 68 28 31  2c 32 29 0d 34 80 05 3b  |.fetch(1,2).4..;|
000054e0  0d 34 8a 14 2e 6f 70 63  6f 64 65 28 26 46 43 29  |.4...opcode(&FC)|
000054f0  20 3b 20 3f 0d 34 94 0f  a4 75 6e 64 6f 63 28 26  | ; ?.4...undoc(&|
00005500  46 43 29 0d 34 9e 0f a4  66 65 74 63 68 28 31 2c  |FC).4...fetch(1,|
00005510  32 29 0d 34 a8 05 3b 0d  34 b2 1b 2e 6f 70 63 6f  |2).4..;.4...opco|
00005520  64 65 28 26 46 44 29 20  3b 20 53 42 43 20 6e 6e  |de(&FD) ; SBC nn|
00005530  2c 58 0d 34 bc 17 a4 67  65 74 61 62 73 69 6e 64  |,X.4...getabsind|
00005540  65 78 28 30 2c 31 2c 58  29 0d 34 c6 0f a4 73 62  |ex(0,1,X).4...sb|
00005550  63 28 30 2c 33 2c 34 29  0d 34 d0 05 3b 0d 34 da  |c(0,3,4).4..;.4.|
00005560  1b 2e 6f 70 63 6f 64 65  28 26 46 45 29 20 3b 20  |..opcode(&FE) ; |
00005570  49 4e 43 20 6e 6e 2c 58  0d 34 e4 17 a4 67 65 74  |INC nn,X.4...get|
00005580  61 62 73 69 6e 64 65 78  28 30 2c 31 2c 58 29 0d  |absindex(0,1,X).|
00005590  34 ee 0b a4 69 6e 63 28  30 29 0d 34 f8 10 a4 73  |4...inc(0).4...s|
000055a0  74 72 62 31 36 28 30 2c  31 29 0d 35 02 0f a4 66  |trb16(0,1).5...f|
000055b0  65 74 63 68 28 33 2c 37  29 0d 35 0c 05 3b 0d 35  |etch(3,7).5..;.5|
000055c0  16 14 2e 6f 70 63 6f 64  65 28 26 46 46 29 20 3b  |...opcode(&FF) ;|
000055d0  20 3f 0d 35 20 0f a4 75  6e 64 6f 63 28 26 46 46  | ?.5 ..undoc(&FF|
000055e0  29 0d 35 2a 0f a4 66 65  74 63 68 28 31 2c 32 29  |).5*..fetch(1,2)|
000055f0  0d 35 34 05 3b 0d 35 3e  05 5d 0d 35 48 0f ed 20  |.54.;.5>.].5H.. |
00005600  62 63 64 5f 6c 6f 6f 70  25 0d 35 52 04 0d 35 5c  |bcd_loop%.5R..5\|
00005610  2a f4 46 4f 52 20 49 25  3d 63 6f 64 65 2b 30 20  |*.FOR I%=code+0 |
00005620  54 4f 20 63 6f 64 65 2b  32 35 35 2a 34 2a 36 34  |TO code+255*4*64|
00005630  20 53 54 45 50 20 34 0d  35 66 1b f4 62 63 64 28  | STEP 4.5f..bcd(|
00005640  30 29 21 49 25 3d 6f 70  63 6f 64 65 28 30 29 21  |0)!I%=opcode(0)!|
00005650  49 25 0d 35 70 09 f4 4e  45 58 54 0d 35 7a 0d 50  |I%.5p..NEXT.5z.P|
00005660  25 3d 62 63 64 28 30 29  0d 35 84 0e 4f 25 3d 50  |%=bcd(0).5..O%=P|
00005670  25 2b 63 6f 64 65 0d 35  8e 09 5b 4f 50 54 70 0d  |%+code.5..[OPTp.|
00005680  35 98 0d a4 62 63 64 28  26 36 31 29 0d 35 a2 19  |5...bcd(&61).5..|
00005690  2e 62 63 64 28 26 36 31  29 20 3b 20 41 44 43 20  |.bcd(&61) ; ADC |
000056a0  28 6e 2c 58 29 0d 35 ac  10 a4 67 65 74 70 72 65  |(n,X).5...getpre|
000056b0  28 30 2c 31 29 0d 35 b6  12 a4 61 64 63 42 43 44  |(0,1).5...adcBCD|
000056c0  28 30 2c 32 2c 36 29 0d  35 c0 04 0d 35 ca 0d a4  |(0,2,6).5...5...|
000056d0  62 63 64 28 26 36 35 29  0d 35 d4 15 2e 62 63 64  |bcd(&65).5...bcd|
000056e0  28 26 36 35 29 20 3b 20  41 44 43 20 6e 0d 35 de  |(&65) ; ADC n.5.|
000056f0  11 a4 67 65 74 7a 65 72  6f 28 30 2c 31 29 0d 35  |..getzero(0,1).5|
00005700  e8 12 a4 61 64 63 42 43  44 28 30 2c 32 2c 33 29  |...adcBCD(0,2,3)|
00005710  0d 35 f2 04 0d 35 fc 0d  a4 62 63 64 28 26 36 39  |.5...5...bcd(&69|
00005720  29 0d 36 06 16 2e 62 63  64 28 26 36 39 29 20 3b  |).6...bcd(&69) ;|
00005730  20 41 44 43 20 23 4e 0d  36 10 10 a4 67 65 74 62  | ADC #N.6...getb|
00005740  79 74 65 31 28 30 29 0d  36 1a 12 a4 61 64 63 42  |yte1(0).6...adcB|
00005750  43 44 28 30 2c 32 2c 32  29 0d 36 24 04 0d 36 2e  |CD(0,2,2).6$..6.|
00005760  0d a4 62 63 64 28 26 36  44 29 0d 36 38 16 2e 62  |..bcd(&6D).68..b|
00005770  63 64 28 26 36 44 29 20  3b 20 41 44 43 20 6e 6e  |cd(&6D) ; ADC nn|
00005780  0d 36 42 10 a4 67 65 74  61 62 73 28 30 2c 31 29  |.6B..getabs(0,1)|
00005790  0d 36 4c 12 a4 61 64 63  42 43 44 28 30 2c 33 2c  |.6L..adcBCD(0,3,|
000057a0  34 29 0d 36 56 04 0d 36  60 0d a4 62 63 64 28 26  |4).6V..6`..bcd(&|
000057b0  37 31 29 0d 36 6a 19 2e  62 63 64 28 26 37 31 29  |71).6j..bcd(&71)|
000057c0  20 3b 20 41 44 43 20 28  6e 29 2c 59 0d 36 74 11  | ; ADC (n),Y.6t.|
000057d0  a4 67 65 74 70 6f 73 74  28 30 2c 31 29 0d 36 7e  |.getpost(0,1).6~|
000057e0  12 a4 61 64 63 42 43 44  28 30 2c 32 2c 35 29 0d  |..adcBCD(0,2,5).|
000057f0  36 88 04 0d 36 92 0d a4  62 63 64 28 26 37 32 29  |6...6...bcd(&72)|
00005800  0d 36 9c 17 2e 62 63 64  28 26 37 32 29 20 3b 20  |.6...bcd(&72) ; |
00005810  41 44 43 20 28 6e 29 0d  36 a6 16 a4 67 65 74 7a  |ADC (n).6...getz|
00005820  65 72 6f 69 6e 64 69 72  28 30 2c 31 29 0d 36 b0  |eroindir(0,1).6.|
00005830  12 a4 61 64 63 42 43 44  28 30 2c 32 2c 35 29 0d  |..adcBCD(0,2,5).|
00005840  36 ba 04 0d 36 c4 0d a4  62 63 64 28 26 37 35 29  |6...6...bcd(&75)|
00005850  0d 36 ce 17 2e 62 63 64  28 26 37 35 29 20 3b 20  |.6...bcd(&75) ; |
00005860  41 44 43 20 6e 2c 58 0d  36 d8 16 a4 67 65 74 7a  |ADC n,X.6...getz|
00005870  65 72 6f 69 6e 64 65 78  28 30 2c 31 29 0d 36 e2  |eroindex(0,1).6.|
00005880  12 a4 61 64 63 42 43 44  28 30 2c 32 2c 34 29 0d  |..adcBCD(0,2,4).|
00005890  36 ec 04 0d 36 f6 0d a4  62 63 64 28 26 37 39 29  |6...6...bcd(&79)|
000058a0  0d 37 00 18 2e 62 63 64  28 26 37 39 29 20 3b 20  |.7...bcd(&79) ; |
000058b0  41 44 43 20 6e 6e 2c 59  0d 37 0a 17 a4 67 65 74  |ADC nn,Y.7...get|
000058c0  61 62 73 69 6e 64 65 78  28 30 2c 31 2c 59 29 0d  |absindex(0,1,Y).|
000058d0  37 14 12 a4 61 64 63 42  43 44 28 30 2c 33 2c 34  |7...adcBCD(0,3,4|
000058e0  29 0d 37 1e 04 0d 37 28  0d a4 62 63 64 28 26 37  |).7...7(..bcd(&7|
000058f0  44 29 0d 37 32 18 2e 62  63 64 28 26 37 44 29 20  |D).72..bcd(&7D) |
00005900  3b 20 41 44 43 20 6e 6e  2c 58 0d 37 3c 17 a4 67  |; ADC nn,X.7<..g|
00005910  65 74 61 62 73 69 6e 64  65 78 28 30 2c 31 2c 58  |etabsindex(0,1,X|
00005920  29 0d 37 46 12 a4 61 64  63 42 43 44 28 30 2c 33  |).7F..adcBCD(0,3|
00005930  2c 34 29 0d 37 50 04 0d  37 5a 0d a4 62 63 64 28  |,4).7P..7Z..bcd(|
00005940  26 45 31 29 0d 37 64 19  2e 62 63 64 28 26 45 31  |&E1).7d..bcd(&E1|
00005950  29 20 3b 20 53 42 43 20  28 6e 2c 58 29 0d 37 6e  |) ; SBC (n,X).7n|
00005960  10 a4 67 65 74 70 72 65  28 30 2c 31 29 0d 37 78  |..getpre(0,1).7x|
00005970  12 a4 73 62 63 42 43 44  28 30 2c 32 2c 36 29 0d  |..sbcBCD(0,2,6).|
00005980  37 82 04 0d 37 8c 0d a4  62 63 64 28 26 45 35 29  |7...7...bcd(&E5)|
00005990  0d 37 96 15 2e 62 63 64  28 26 45 35 29 20 3b 20  |.7...bcd(&E5) ; |
000059a0  53 42 43 20 6e 0d 37 a0  11 a4 67 65 74 7a 65 72  |SBC n.7...getzer|
000059b0  6f 28 30 2c 31 29 0d 37  aa 12 a4 73 62 63 42 43  |o(0,1).7...sbcBC|
000059c0  44 28 30 2c 32 2c 33 29  0d 37 b4 0d a4 62 63 64  |D(0,2,3).7...bcd|
000059d0  28 26 45 36 29 0d 37 be  04 0d 37 c8 0d a4 62 63  |(&E6).7...7...bc|
000059e0  64 28 26 45 39 29 0d 37  d2 16 2e 62 63 64 28 26  |d(&E9).7...bcd(&|
000059f0  45 39 29 20 3b 20 53 42  43 20 23 4e 0d 37 dc 10  |E9) ; SBC #N.7..|
00005a00  a4 67 65 74 62 79 74 65  31 28 30 29 0d 37 e6 12  |.getbyte1(0).7..|
00005a10  a4 73 62 63 42 43 44 28  30 2c 32 2c 32 29 0d 37  |.sbcBCD(0,2,2).7|
00005a20  f0 04 0d 37 fa 0d a4 62  63 64 28 26 45 44 29 0d  |...7...bcd(&ED).|
00005a30  38 04 16 2e 62 63 64 28  26 45 44 29 20 3b 20 53  |8...bcd(&ED) ; S|
00005a40  42 43 20 6e 6e 0d 38 0e  10 a4 67 65 74 61 62 73  |BC nn.8...getabs|
00005a50  28 30 2c 31 29 0d 38 18  12 a4 73 62 63 42 43 44  |(0,1).8...sbcBCD|
00005a60  28 30 2c 33 2c 34 29 0d  38 22 04 0d 38 2c 0d a4  |(0,3,4).8"..8,..|
00005a70  62 63 64 28 26 46 31 29  0d 38 36 19 2e 62 63 64  |bcd(&F1).86..bcd|
00005a80  28 26 46 31 29 20 3b 20  53 42 43 20 28 6e 29 2c  |(&F1) ; SBC (n),|
00005a90  59 0d 38 40 11 a4 67 65  74 70 6f 73 74 28 30 2c  |Y.8@..getpost(0,|
00005aa0  31 29 0d 38 4a 12 a4 73  62 63 42 43 44 28 30 2c  |1).8J..sbcBCD(0,|
00005ab0  32 2c 35 29 0d 38 54 04  0d 38 5e 0d a4 62 63 64  |2,5).8T..8^..bcd|
00005ac0  28 26 46 32 29 0d 38 68  17 2e 62 63 64 28 26 46  |(&F2).8h..bcd(&F|
00005ad0  32 29 20 3b 20 53 42 43  20 28 6e 29 0d 38 72 16  |2) ; SBC (n).8r.|
00005ae0  a4 67 65 74 7a 65 72 6f  69 6e 64 69 72 28 30 2c  |.getzeroindir(0,|
00005af0  31 29 0d 38 7c 12 a4 73  62 63 42 43 44 28 30 2c  |1).8|..sbcBCD(0,|
00005b00  32 2c 35 29 0d 38 86 04  0d 38 90 0d a4 62 63 64  |2,5).8...8...bcd|
00005b10  28 26 46 35 29 0d 38 9a  17 2e 62 63 64 28 26 46  |(&F5).8...bcd(&F|
00005b20  35 29 20 3b 20 53 42 43  20 6e 2c 58 0d 38 a4 16  |5) ; SBC n,X.8..|
00005b30  a4 67 65 74 7a 65 72 6f  69 6e 64 65 78 28 30 2c  |.getzeroindex(0,|
00005b40  31 29 0d 38 ae 12 a4 73  62 63 42 43 44 28 30 2c  |1).8...sbcBCD(0,|
00005b50  32 2c 34 29 0d 38 b8 04  0d 38 c2 0d a4 62 63 64  |2,4).8...8...bcd|
00005b60  28 26 46 39 29 0d 38 cc  18 2e 62 63 64 28 26 46  |(&F9).8...bcd(&F|
00005b70  39 29 20 3b 20 53 42 43  20 6e 6e 2c 59 0d 38 d6  |9) ; SBC nn,Y.8.|
00005b80  17 a4 67 65 74 61 62 73  69 6e 64 65 78 28 30 2c  |..getabsindex(0,|
00005b90  31 2c 59 29 0d 38 e0 12  a4 73 62 63 42 43 44 28  |1,Y).8...sbcBCD(|
00005ba0  30 2c 33 2c 34 29 0d 38  ea 04 0d 38 f4 0d a4 62  |0,3,4).8...8...b|
00005bb0  63 64 28 26 46 44 29 0d  38 fe 18 2e 62 63 64 28  |cd(&FD).8...bcd(|
00005bc0  26 46 44 29 20 3b 20 53  42 43 20 6e 6e 2c 58 0d  |&FD) ; SBC nn,X.|
00005bd0  39 08 17 a4 67 65 74 61  62 73 69 6e 64 65 78 28  |9...getabsindex(|
00005be0  30 2c 31 2c 58 29 0d 39  12 12 a4 73 62 63 42 43  |0,1,X).9...sbcBC|
00005bf0  44 28 30 2c 33 2c 34 29  0d 39 1c 04 0d 39 26 0e  |D(0,3,4).9...9&.|
00005c00  a4 62 63 64 28 26 31 30  30 29 0d 39 30 05 5d 0d  |.bcd(&100).90.].|
00005c10  39 3a 04 0d 39 44 07 3d  22 22 0d 39 4e 04 0d 39  |9:..9D.="".9N..9|
00005c20  58 0c dd a4 62 72 61 6e  63 68 0d 39 62 09 5b 4f  |X...branch.9b.[O|
00005c30  50 54 70 0d 39 6c 16 4d  4f 56 20 52 31 32 2c 7a  |PTp.9l.MOV R12,z|
00005c40  70 63 2c 4c 53 52 23 32  34 0d 39 76 10 a4 67 65  |pc,LSR#24.9v..ge|
00005c50  74 62 79 74 65 31 28 30  29 0d 39 80 19 41 44 44  |tbyte1(0).9..ADD|
00005c60  20 7a 70 63 2c 7a 70 63  2c 52 30 2c 4c 53 4c 23  | zpc,zpc,R0,LSL#|
00005c70  31 36 0d 39 8a 0f 43 4d  50 20 52 30 2c 23 26 38  |16.9..CMP R0,#&8|
00005c80  30 0d 39 94 1c 53 55 42  47 45 20 7a 70 63 2c 7a  |0.9..SUBGE zpc,z|
00005c90  70 63 2c 23 32 35 34 20  3c 3c 20 31 36 0d 39 9e  |pc,#254 << 16.9.|
00005ca0  1a 41 44 44 4c 54 20 7a  70 63 2c 7a 70 63 2c 23  |.ADDLT zpc,zpc,#|
00005cb0  32 20 3c 3c 20 31 36 0d  39 a8 16 43 4d 50 20 52  |2 << 16.9..CMP R|
00005cc0  31 32 2c 7a 70 63 2c 4c  53 52 23 32 34 0d 39 b2  |12,zpc,LSR#24.9.|
00005cd0  32 53 55 42 45 51 20 74  69 6d 65 2c 74 69 6d 65  |2SUBEQ time,time|
00005ce0  2c 23 31 20 3b 20 70 61  67 65 20 62 6f 75 6e 64  |,#1 ; page bound|
00005cf0  61 72 79 20 6e 6f 74 20  63 72 6f 73 73 65 64 0d  |ary not crossed.|
00005d00  39 bc 2e 53 55 42 4e 45  20 74 69 6d 65 2c 74 69  |9..SUBNE time,ti|
00005d10  6d 65 2c 23 32 20 3b 20  70 61 67 65 20 62 6f 75  |me,#2 ; page bou|
00005d20  6e 64 61 72 79 20 63 72  6f 73 73 65 64 0d 39 c6  |ndary crossed.9.|
00005d30  0f a4 66 65 74 63 68 28  30 2c 32 29 0d 39 d0 05  |..fetch(0,2).9..|
00005d40  5d 0d 39 da 07 3d 22 22  0d 39 e4 04 0d 39 ee 0c  |].9..="".9...9..|
00005d50  dd a4 74 72 62 28 52 29  0d 39 f8 09 5b 4f 50 54  |..trb(R).9..[OPT|
00005d60  70 0d 3a 02 12 54 53 54  20 52 2c 41 2c 4c 53 52  |p.:..TST R,A,LSR|
00005d70  23 32 34 0d 3a 0c 0b a4  73 65 74 75 70 5a 0d 3a  |#24.:...setupZ.:|
00005d80  16 14 42 49 43 20 52 2c  52 2c 41 2c 4c 53 52 23  |..BIC R,R,A,LSR#|
00005d90  32 34 0d 3a 20 05 5d 0d  3a 2a 07 3d 22 22 0d 3a  |24.: .].:*.="".:|
00005da0  34 04 0d 3a 3e 0c dd a4  74 73 62 28 52 29 0d 3a  |4..:>...tsb(R).:|
00005db0  48 09 5b 4f 50 54 70 0d  3a 52 12 54 53 54 20 52  |H.[OPTp.:R.TST R|
00005dc0  2c 41 2c 4c 53 52 23 32  34 0d 3a 5c 0b a4 73 65  |,A,LSR#24.:\..se|
00005dd0  74 75 70 5a 0d 3a 66 13  84 52 20 52 2c 52 2c 41  |tupZ.:f..R R,R,A|
00005de0  2c 4c 53 52 23 32 34 0d  3a 70 05 5d 0d 3a 7a 07  |,LSR#24.:p.].:z.|
00005df0  3d 22 22 0d 3a 84 04 0d  3a 8e 0c dd a4 61 73 6c  |="".:...:....asl|
00005e00  28 52 29 0d 3a 98 09 5b  4f 50 54 70 0d 3a a2 13  |(R).:..[OPTp.:..|
00005e10  4d 4f 56 53 20 52 2c 52  2c 4c 53 4c 23 32 35 0d  |MOVS R,R,LSL#25.|
00005e20  3a ac 12 4d 4f 56 20 52  2c 52 2c 4c 53 52 23 32  |:..MOV R,R,LSR#2|
00005e30  34 0d 3a b6 0d a4 73 65  74 75 70 4e 5a 43 0d 3a  |4.:...setupNZC.:|
00005e40  c0 05 5d 0d 3a ca 07 3d  22 22 0d 3a d4 04 0d 3a  |..].:..="".:...:|
00005e50  de 0c dd a4 6c 73 72 28  52 29 0d 3a e8 09 5b 4f  |....lsr(R).:..[O|
00005e60  50 54 70 0d 3a f2 16 42  49 43 20 46 2c 46 2c 23  |PTp.:..BIC F,F,#|
00005e70  25 31 30 30 30 30 30 31  31 0d 3a fc 12 4d 4f 56  |%10000011.:..MOV|
00005e80  53 20 52 2c 52 2c 4c 53  52 23 31 0d 3b 06 10 84  |S R,R,LSR#1.;...|
00005e90  52 43 53 20 46 2c 46 2c  23 25 31 0d 3b 10 14 4d  |RCS F,F,#%1.;..M|
00005ea0  4f 56 53 20 52 32 2c 52  2c 4c 53 4c 23 32 34 0d  |OVS R2,R,LSL#24.|
00005eb0  3b 1a 17 84 52 4d 49 20  46 2c 46 2c 23 25 31 30  |;...RMI F,F,#%10|
00005ec0  30 30 30 30 30 30 0d 3b  24 11 84 52 45 51 20 46  |000000.;$..REQ F|
00005ed0  2c 46 2c 23 25 31 30 0d  3b 2e 05 5d 0d 3b 38 07  |,F,#%10.;..].;8.|
00005ee0  3d 22 22 0d 3b 42 04 0d  3b 4c 0c dd a4 72 6f 6c  |="".;B..;L...rol|
00005ef0  28 52 29 0d 3b 56 0b e7  20 52 3d 31 20 fa 0d 3b  |(R).;V.. R=1 ..;|
00005f00  60 09 5b 4f 50 54 70 0d  3b 6a 2e 3b 4d 4f 56 53  |`.[OPTp.;j.;MOVS|
00005f10  20 52 32 2c 46 2c 52 52  58 20 3b 20 ec 20 36 35  | R2,F,RRX ; . 65|
00005f20  30 32 20 43 41 52 52 59  20 a8 4f 20 41 52 4d 20  |02 CARRY .O ARM |
00005f30  43 41 52 52 59 0d 3b 74  0e 80 20 52 32 2c 46 2c  |CARRY.;t.. R2,F,|
00005f40  23 25 31 0d 3b 7e 16 42  49 43 20 46 2c 46 2c 23  |#%1.;~.BIC F,F,#|
00005f50  25 31 30 30 30 30 30 31  31 0d 3b 88 13 4d 4f 56  |%10000011.;..MOV|
00005f60  53 20 52 2c 52 2c 4c 53  4c 23 32 34 0d 3b 92 14  |S R,R,LSL#24.;..|
00005f70  84 52 20 52 2c 52 2c 52  32 2c 4c 53 4c 23 32 33  |.R R,R,R2,LSL#23|
00005f80  0d 3b 9c 12 4d 4f 56 53  20 52 2c 52 2c 4c 53 4c  |.;..MOVS R,R,LSL|
00005f90  23 31 0d 3b a6 12 4d 4f  56 20 52 2c 52 2c 4c 53  |#1.;..MOV R,R,LS|
00005fa0  52 23 32 34 0d 3b b0 0d  a4 73 65 74 75 70 4e 5a  |R#24.;...setupNZ|
00005fb0  43 0d 3b ba 05 5d 0d 3b  c4 07 3d 22 22 0d 3b ce  |C.;..].;..="".;.|
00005fc0  04 0d 3b d8 0c dd a4 72  6f 72 28 52 29 0d 3b e2  |..;....ror(R).;.|
00005fd0  0b e7 20 52 3d 31 20 fa  0d 3b ec 09 5b 4f 50 54  |.. R=1 ..;..[OPT|
00005fe0  70 0d 3b f6 2d 4d 4f 56  53 20 52 32 2c 46 2c 52  |p.;.-MOVS R2,F,R|
00005ff0  52 58 20 3b 20 ec 20 36  35 30 32 20 43 41 52 52  |RX ; . 6502 CARR|
00006000  59 20 a8 4f 20 41 52 4d  20 43 41 52 52 59 0d 3c  |Y .O ARM CARRY.<|
00006010  00 16 42 49 43 20 46 2c  46 2c 23 25 31 30 30 30  |..BIC F,F,#%1000|
00006020  30 30 31 31 0d 3c 0a 29  84 52 43 53 20 46 2c 46  |0011.<.).RCS F,F|
00006030  2c 23 25 31 30 30 30 30  30 30 30 20 3b 20 4e 20  |,#%10000000 ; N |
00006040  2d 3e 20 77 68 61 74 20  43 20 77 61 73 0d 3c 14  |-> what C was.<.|
00006050  14 41 44 44 20 52 2c 52  2c 52 2c 4c 53 4c 23 32  |.ADD R,R,R,LSL#2|
00006060  34 0d 3c 1e 10 4d 4f 56  53 20 52 2c 52 2c 52 52  |4.<..MOVS R,R,RR|
00006070  58 0d 3c 28 10 84 52 43  53 20 46 2c 46 2c 23 25  |X.<(..RCS F,F,#%|
00006080  31 0d 3c 32 13 4d 4f 56  53 20 52 2c 52 2c 4c 53  |1.<2.MOVS R,R,LS|
00006090  52 23 32 34 0d 3c 3c 11  84 52 45 51 20 46 2c 46  |R#24.<<..REQ F,F|
000060a0  2c 23 25 31 30 0d 3c 46  05 5d 0d 3c 50 07 3d 22  |,#%10.<F.].<P.="|
000060b0  22 0d 3c 5a 04 0d 3c 64  04 0d 3c 6e 12 dd a4 63  |".<Z..<d..<n...c|
000060c0  6d 70 28 52 2c 46 25 2c  54 25 29 0d 3c 78 09 5b  |mp(R,F%,T%).<x.[|
000060d0  4f 50 54 70 0d 3c 82 16  53 55 42 53 20 52 30 2c  |OPTp.<..SUBS R0,|
000060e0  41 2c 52 2c 4c 53 4c 23  32 34 0d 3c 8c 0d a4 73  |A,R,LSL#24.<...s|
000060f0  65 74 75 70 4e 5a 43 0d  3c 96 11 a4 66 65 74 63  |etupNZC.<...fetc|
00006100  68 28 46 25 2c 54 25 29  0d 3c a0 05 5d 0d 3c aa  |h(F%,T%).<..].<.|
00006110  07 3d 22 22 0d 3c b4 04  0d 3c be 12 dd a4 63 70  |.="".<...<....cp|
00006120  78 28 52 2c 46 25 2c 54  25 29 0d 3c c8 09 5b 4f  |x(R,F%,T%).<..[O|
00006130  50 54 70 0d 3c d2 16 53  55 42 53 20 52 30 2c 58  |PTp.<..SUBS R0,X|
00006140  2c 52 2c 4c 53 4c 23 32  34 0d 3c dc 0d a4 73 65  |,R,LSL#24.<...se|
00006150  74 75 70 4e 5a 43 0d 3c  e6 11 a4 66 65 74 63 68  |tupNZC.<...fetch|
00006160  28 46 25 2c 54 25 29 0d  3c f0 05 5d 0d 3c fa 07  |(F%,T%).<..].<..|
00006170  3d 22 22 0d 3d 04 04 0d  3d 0e 12 dd a4 63 70 79  |="".=...=....cpy|
00006180  28 52 2c 46 25 2c 54 25  29 0d 3d 18 09 5b 4f 50  |(R,F%,T%).=..[OP|
00006190  54 70 0d 3d 22 16 53 55  42 53 20 52 30 2c 59 2c  |Tp.=".SUBS R0,Y,|
000061a0  52 2c 4c 53 4c 23 32 34  0d 3d 2c 0d a4 73 65 74  |R,LSL#24.=,..set|
000061b0  75 70 4e 5a 43 0d 3d 36  11 a4 66 65 74 63 68 28  |upNZC.=6..fetch(|
000061c0  46 25 2c 54 25 29 0d 3d  40 05 5d 0d 3d 4a 07 3d  |F%,T%).=@.].=J.=|
000061d0  22 22 0d 3d 54 04 0d 3d  5e 16 f4 44 45 46 46 4e  |"".=T..=^..DEFFN|
000061e0  61 64 63 28 52 2c 46 25  2c 54 25 29 0d 3d 68 09  |adc(R,F%,T%).=h.|
000061f0  5b 4f 50 54 70 0d 3d 72  2d 4d 4f 56 53 20 52 32  |[OPTp.=r-MOVS R2|
00006200  2c 46 2c 52 52 58 20 3b  20 ec 20 36 35 30 32 20  |,F,RRX ; . 6502 |
00006210  43 41 52 52 59 20 a8 4f  20 41 52 4d 20 43 41 52  |CARRY .O ARM CAR|
00006220  52 59 0d 3d 7c 15 4d 56  4e 20 52 32 2c 23 30 20  |RY.=|.MVN R2,#0 |
00006230  3b 20 52 32 3d 2d 31 0d  3d 86 18 42 49 43 20 52  |; R2=-1.=..BIC R|
00006240  32 2c 52 32 2c 23 26 46  46 20 3c 3c 20 32 34 0d  |2,R2,#&FF << 24.|
00006250  3d 90 0f 41 44 44 20 52  32 2c 52 32 2c 41 0d 3d  |=..ADD R2,R2,A.=|
00006260  9a 17 41 44 43 53 20 52  32 2c 52 32 2c 52 2c 4c  |..ADCS R2,R2,R,L|
00006270  53 4c 23 32 34 0d 3d a4  2a 80 53 20 41 2c 52 32  |SL#24.=.*.S A,R2|
00006280  2c 23 26 46 46 20 3c 3c  20 32 34 20 3b 20 6f 6e  |,#&FF << 24 ; on|
00006290  6c 79 20 61 66 66 65 63  74 73 20 5a 2c 4e 21 0d  |ly affects Z,N!.|
000062a0  3d ae 0e a4 73 65 74 75  70 43 5a 56 4e 0d 3d b8  |=...setupCZVN.=.|
000062b0  11 a4 66 65 74 63 68 28  46 25 2c 54 25 29 0d 3d  |..fetch(F%,T%).=|
000062c0  c2 05 5d 0d 3d cc 07 3d  22 22 0d 3d d6 04 0d 3d  |..].=..="".=...=|
000062d0  e0 12 dd a4 61 64 63 28  52 2c 46 25 2c 54 25 29  |....adc(R,F%,T%)|
000062e0  0d 3d ea 09 5b 4f 50 54  70 0d 3d f4 0e 80 20 52  |.=..[OPTp.=... R|
000062f0  32 2c 46 2c 23 25 31 0d  3d fe 0f 41 44 44 20 52  |2,F,#%1.=..ADD R|
00006300  32 2c 52 32 2c 52 0d 3e  08 16 41 44 44 53 20 41  |2,R2,R.>..ADDS A|
00006310  2c 41 2c 52 32 2c 4c 53  4c 23 32 34 0d 3e 12 0e  |,A,R2,LSL#24.>..|
00006320  a4 73 65 74 75 70 43 5a  56 4e 0d 3e 1c 1f 43 4d  |.setupCZVN.>..CM|
00006330  50 20 52 32 2c 23 26 31  30 30 20 3a 20 84 52 45  |P R2,#&100 : .RE|
00006340  51 20 46 2c 46 2c 23 25  31 0d 3e 26 11 a4 66 65  |Q F,F,#%1.>&..fe|
00006350  74 63 68 28 46 25 2c 54  25 29 0d 3e 30 05 5d 0d  |tch(F%,T%).>0.].|
00006360  3e 3a 07 3d 22 22 0d 3e  44 04 0d 3e 4e 15 dd a4  |>:.="".>D..>N...|
00006370  61 64 63 42 43 44 28 52  2c 46 25 2c 54 25 29 0d  |adcBCD(R,F%,T%).|
00006380  3e 58 09 5b 4f 50 54 70  0d 3e 62 2d 4d 4f 56 53  |>X.[OPTp.>b-MOVS|
00006390  20 52 32 2c 46 2c 52 52  58 20 3b 20 ec 20 36 35  | R2,F,RRX ; . 65|
000063a0  30 32 20 43 41 52 52 59  20 a8 4f 20 41 52 4d 20  |02 CARRY .O ARM |
000063b0  43 41 52 52 59 0d 3e 6c  15 80 20 52 32 2c 41 2c  |CARRY.>l.. R2,A,|
000063c0  23 26 30 46 20 3c 3c 20  32 34 0d 3e 76 0f 80 20  |#&0F << 24.>v.. |
000063d0  52 31 33 2c 52 2c 23 26  46 0d 3e 80 19 3b 41 44  |R13,R,#&F.>..;AD|
000063e0  44 43 53 20 52 32 2c 52  32 2c 23 31 20 3c 3c 20  |DCS R2,R2,#1 << |
000063f0  32 34 0d 3e 8a 19 41 44  43 20 52 31 33 2c 52 31  |24.>..ADC R13,R1|
00006400  33 2c 52 32 2c 4c 53 52  23 32 34 0d 3e 94 0f 43  |3,R2,LSR#24.>..C|
00006410  4d 50 20 52 31 33 2c 23  26 41 0d 3e 9e 16 41 44  |MP R13,#&A.>..AD|
00006420  44 47 45 20 52 31 33 2c  52 31 33 2c 23 26 30 36  |DGE R13,R13,#&06|
00006430  0d 3e a8 04 0d 3e b2 10  43 4d 50 20 52 31 33 2c  |.>...>..CMP R13,|
00006440  23 26 32 30 0d 3e bc 16  53 55 42 47 45 20 52 31  |#&20.>..SUBGE R1|
00006450  33 2c 52 31 33 2c 23 26  31 30 0d 3e c6 04 0d 3e  |3,R13,#&10.>...>|
00006460  d0 11 4d 4f 56 20 52 2c  52 2c 4c 53 52 23 34 0d  |..MOV R,R,LSR#4.|
00006470  3e da 14 41 44 44 20 52  2c 52 2c 41 2c 4c 53 52  |>..ADD R,R,A,LSR|
00006480  23 32 38 0d 3e e4 15 41  44 44 20 41 2c 52 31 33  |#28.>..ADD A,R13|
00006490  2c 52 2c 4c 53 4c 23 34  0d 3e ee 0e 43 4d 50 20  |,R,LSL#4.>..CMP |
000064a0  41 2c 23 26 41 30 0d 3e  f8 12 41 44 44 47 45 20  |A,#&A0.>..ADDGE |
000064b0  41 2c 41 2c 23 26 36 30  0d 3f 02 11 80 53 20 52  |A,A,#&60.?...S R|
000064c0  32 2c 41 2c 23 26 33 30  30 0d 3f 0c 10 84 52 4e  |2,A,#&300.?...RN|
000064d0  45 20 46 2c 46 2c 23 25  31 0d 3f 16 11 42 49 43  |E F,F,#%1.?..BIC|
000064e0  45 51 20 46 2c 46 2c 23  25 31 0d 3f 20 13 4d 4f  |EQ F,F,#%1.? .MO|
000064f0  56 53 20 41 2c 41 2c 4c  53 4c 23 32 34 0d 3f 2a  |VS A,A,LSL#24.?*|
00006500  29 a4 73 65 74 75 70 4e  5a 20 3b 20 4d 61 73 74  |).setupNZ ; Mast|
00006510  65 72 20 65 6c 69 74 65  20 6e 65 65 64 73 20 4e  |er elite needs N|
00006520  20 66 6c 61 67 3f 0d 3f  34 12 a4 66 65 74 63 68  | flag?.?4..fetch|
00006530  33 28 46 25 2c 54 25 29  0d 3f 3e 05 5d 0d 3f 48  |3(F%,T%).?>.].?H|
00006540  07 3d 22 22 0d 3f 52 04  0d 3f 5c 15 dd a4 73 62  |.="".?R..?\...sb|
00006550  63 42 43 44 28 52 2c 46  25 2c 54 25 29 0d 3f 66  |cBCD(R,F%,T%).?f|
00006560  09 5b 4f 50 54 70 0d 3f  70 04 0d 3f 7a 2d 4d 4f  |.[OPTp.?p..?z-MO|
00006570  56 53 20 52 32 2c 46 2c  52 52 58 20 3b 20 ec 20  |VS R2,F,RRX ; . |
00006580  36 35 30 32 20 43 41 52  52 59 20 a8 4f 20 41 52  |6502 CARRY .O AR|
00006590  4d 20 43 41 52 52 59 0d  3f 84 15 80 20 52 32 2c  |M CARRY.?... R2,|
000065a0  41 2c 23 26 30 46 20 3c  3c 20 32 34 0d 3f 8e 0f  |A,#&0F << 24.?..|
000065b0  80 20 52 31 33 2c 52 2c  23 26 46 0d 3f 98 1a 52  |. R13,R,#&F.?..R|
000065c0  53 43 53 20 52 31 33 2c  52 31 33 2c 52 32 2c 4c  |SCS R13,R13,R2,L|
000065d0  53 52 23 32 34 0d 3f a2  14 53 55 42 43 43 20 52  |SR#24.?..SUBCC R|
000065e0  31 33 2c 52 31 33 2c 23  36 0d 3f ac 11 80 20 52  |13,R13,#6.?... R|
000065f0  31 33 2c 52 31 33 2c 23  26 46 0d 3f b6 11 4d 4f  |13,R13,#&F.?..MO|
00006600  56 20 52 2c 52 2c 4c 53  52 23 34 0d 3f c0 15 52  |V R,R,LSR#4.?..R|
00006610  53 43 53 20 52 2c 52 2c  41 2c 4c 53 52 23 32 38  |SCS R,R,A,LSR#28|
00006620  0d 3f ca 10 53 55 42 43  43 20 52 2c 52 2c 23 36  |.?..SUBCC R,R,#6|
00006630  0d 3f d4 0b a4 73 65 74  75 70 43 0d 3f de 04 0d  |.?...setupC.?...|
00006640  3f e8 0d 80 20 52 2c 52  2c 23 26 46 0d 3f f2 15  |?... R,R,#&F.?..|
00006650  41 44 44 20 41 2c 52 31  33 2c 52 2c 4c 53 4c 23  |ADD A,R13,R,LSL#|
00006660  34 0d 3f fc 13 4d 4f 56  53 20 41 2c 41 2c 4c 53  |4.?..MOVS A,A,LS|
00006670  4c 23 32 34 0d 40 06 0c  a4 73 65 74 75 70 4e 5a  |L#24.@...setupNZ|
00006680  0d 40 10 12 a4 66 65 74  63 68 33 28 46 25 2c 54  |.@...fetch3(F%,T|
00006690  25 29 0d 40 1a 05 5d 0d  40 24 07 3d 22 22 0d 40  |%).@..].@$.="".@|
000066a0  2e 04 0d 40 38 12 dd a4  73 62 63 28 52 2c 46 25  |...@8...sbc(R,F%|
000066b0  2c 54 25 29 0d 40 42 09  5b 4f 50 54 70 0d 40 4c  |,T%).@B.[OPTp.@L|
000066c0  2d 4d 4f 56 53 20 52 32  2c 46 2c 52 52 58 20 3b  |-MOVS R2,F,RRX ;|
000066d0  20 ec 20 36 35 30 32 20  43 41 52 52 59 20 a8 4f  | . 6502 CARRY .O|
000066e0  20 41 52 4d 20 43 41 52  52 59 0d 40 56 15 53 42  | ARM CARRY.@V.SB|
000066f0  43 53 20 41 2c 41 2c 52  2c 4c 53 4c 23 32 34 0d  |CS A,A,R,LSL#24.|
00006700  40 60 0e a4 73 65 74 75  70 43 5a 56 4e 0d 40 6a  |@`..setupCZVN.@j|
00006710  15 80 53 20 41 2c 41 2c  23 26 46 46 20 3c 3c 20  |..S A,A,#&FF << |
00006720  32 34 0d 40 74 12 42 49  43 4e 45 20 46 2c 46 2c  |24.@t.BICNE F,F,|
00006730  23 25 31 30 0d 40 7e 1b  84 52 45 51 20 46 2c 46  |#%10.@~..REQ F,F|
00006740  2c 23 25 31 30 20 3b 20  a4 73 65 74 75 70 5a 0d  |,#%10 ; .setupZ.|
00006750  40 88 11 a4 66 65 74 63  68 28 46 25 2c 54 25 29  |@...fetch(F%,T%)|
00006760  0d 40 92 05 5d 0d 40 9c  07 3d 22 22 0d 40 a6 04  |.@..].@..="".@..|
00006770  0d 40 b0 04 0d 40 ba 2d  4d 4f 56 53 20 52 32 2c  |.@...@.-MOVS R2,|
00006780  46 2c 52 52 58 20 3b 20  ec 20 36 35 30 32 20 43  |F,RRX ; . 6502 C|
00006790  41 52 52 59 20 a8 4f 20  41 52 4d 20 43 41 52 52  |ARRY .O ARM CARR|
000067a0  59 0d 40 c4 12 4d 4f 56  20 41 2c 41 2c 41 53 52  |Y.@..MOV A,A,ASR|
000067b0  23 32 34 0d 40 ce 12 4d  4f 56 20 52 2c 52 2c 4c  |#24.@..MOV R,R,L|
000067c0  53 4c 23 32 34 0d 40 d8  12 4d 4f 56 20 52 2c 52  |SL#24.@..MOV R,R|
000067d0  2c 41 53 52 23 32 34 0d  40 e2 14 82 20 52 2c 52  |,ASR#24.@... R,R|
000067e0  2c 23 26 46 46 20 3c 3c  20 32 34 0d 40 ec 14 82  |,#&FF << 24.@...|
000067f0  20 52 2c 52 2c 23 26 46  46 20 3c 3c 20 31 36 0d  | R,R,#&FF << 16.|
00006800  40 f6 13 82 20 52 2c 52  2c 23 26 46 46 20 3c 3c  |@... R,R,#&FF <<|
00006810  20 38 0d 41 00 14 82 20  41 2c 41 2c 23 26 46 46  | 8.A... A,A,#&FF|
00006820  20 3c 3c 20 32 34 0d 41  0a 14 82 20 41 2c 41 2c  | << 24.A... A,A,|
00006830  23 26 46 46 20 3c 3c 20  31 36 0d 41 14 13 82 20  |#&FF << 16.A... |
00006840  41 2c 41 2c 23 26 46 46  20 3c 3c 20 38 0d 41 1e  |A,A,#&FF << 8.A.|
00006850  0e 53 42 43 53 20 41 2c  41 2c 52 0d 41 28 12 4d  |.SBCS A,A,R.A(.M|
00006860  4f 56 20 41 2c 41 2c 4c  53 4c 23 32 34 0d 41 32  |OV A,A,LSL#24.A2|
00006870  0e a4 73 65 74 75 70 43  5a 56 4e 0d 41 3c 11 a4  |..setupCZVN.A<..|
00006880  66 65 74 63 68 28 46 25  2c 54 25 29 0d 41 46 05  |fetch(F%,T%).AF.|
00006890  5d 0d 41 50 07 3d 22 22  0d 41 5a 04 0d 41 64 12  |].AP.="".AZ..Ad.|
000068a0  dd a4 62 69 74 28 52 2c  46 25 2c 54 25 29 0d 41  |..bit(R,F%,T%).A|
000068b0  6e 09 5b 4f 50 54 70 0d  41 78 15 80 20 52 32 2c  |n.[OPTp.Ax.. R2,|
000068c0  52 2c 23 25 31 31 30 30  30 30 30 30 0d 41 82 13  |R,#%11000000.A..|
000068d0  80 53 20 52 2c 52 2c 41  2c 4c 53 52 23 32 34 0d  |.S R,R,A,LSR#24.|
000068e0  41 8c 16 42 49 43 20 46  2c 46 2c 23 25 31 31 30  |A..BIC F,F,#%110|
000068f0  30 30 30 31 30 0d 41 96  0e 41 44 44 20 46 2c 46  |00010.A..ADD F,F|
00006900  2c 52 32 0d 41 a0 11 84  52 45 51 20 46 2c 46 2c  |,R2.A...REQ F,F,|
00006910  23 25 31 30 0d 41 aa 11  a4 66 65 74 63 68 28 46  |#%10.A...fetch(F|
00006920  25 2c 54 25 29 0d 41 b4  05 5d 0d 41 be 07 3d 22  |%,T%).A..].A..="|
00006930  22 0d 41 c8 04 0d 41 d2  12 dd a4 65 6f 72 28 52  |".A...A....eor(R|
00006940  2c 46 25 2c 54 25 29 0d  41 dc 09 5b 4f 50 54 70  |,F%,T%).A..[OPTp|
00006950  0d 41 e6 13 82 53 20 41  2c 41 2c 52 2c 4c 53 4c  |.A...S A,A,R,LSL|
00006960  23 32 34 0d 41 f0 0c a4  73 65 74 75 70 4e 5a 0d  |#24.A...setupNZ.|
00006970  41 fa 11 a4 66 65 74 63  68 28 46 25 2c 54 25 29  |A...fetch(F%,T%)|
00006980  0d 42 04 05 5d 0d 42 0e  07 3d 22 22 0d 42 18 04  |.B..].B..="".B..|
00006990  0d 42 22 12 dd a4 61 6e  64 28 52 2c 46 25 2c 54  |.B"...and(R,F%,T|
000069a0  25 29 0d 42 2c 09 5b 4f  50 54 70 0d 42 36 13 80  |%).B,.[OPTp.B6..|
000069b0  53 20 41 2c 41 2c 52 2c  4c 53 4c 23 32 34 0d 42  |S A,A,R,LSL#24.B|
000069c0  40 0c a4 73 65 74 75 70  4e 5a 0d 42 4a 11 a4 66  |@..setupNZ.BJ..f|
000069d0  65 74 63 68 28 46 25 2c  54 25 29 0d 42 54 05 5d  |etch(F%,T%).BT.]|
000069e0  0d 42 5e 07 3d 22 22 0d  42 68 04 0d 42 72 12 dd  |.B^.="".Bh..Br..|
000069f0  a4 6f 72 61 28 52 2c 46  25 2c 54 25 29 0d 42 7c  |.ora(R,F%,T%).B||
00006a00  09 5b 4f 50 54 70 0d 42  86 14 84 52 53 20 41 2c  |.[OPTp.B...RS A,|
00006a10  41 2c 52 2c 4c 53 4c 23  32 34 0d 42 90 0c a4 73  |A,R,LSL#24.B...s|
00006a20  65 74 75 70 4e 5a 0d 42  9a 11 a4 66 65 74 63 68  |etupNZ.B...fetch|
00006a30  28 46 25 2c 54 25 29 0d  42 a4 05 5d 0d 42 ae 07  |(F%,T%).B..].B..|
00006a40  3d 22 22 0d 42 b8 04 0d  42 c2 12 dd a4 6c 64 61  |="".B...B....lda|
00006a50  28 52 2c 46 25 2c 54 25  29 0d 42 cc 09 5b 4f 50  |(R,F%,T%).B..[OP|
00006a60  54 70 0d 42 d6 13 4d 4f  56 53 20 41 2c 52 2c 4c  |Tp.B..MOVS A,R,L|
00006a70  53 4c 23 32 34 0d 42 e0  0c a4 73 65 74 75 70 4e  |SL#24.B...setupN|
00006a80  5a 0d 42 ea 11 a4 66 65  74 63 68 28 46 25 2c 54  |Z.B...fetch(F%,T|
00006a90  25 29 0d 42 f4 05 5d 0d  42 fe 07 3d 22 22 0d 43  |%).B..].B..="".C|
00006aa0  08 04 0d 43 12 12 dd a4  6c 64 78 28 52 2c 46 25  |...C....ldx(R,F%|
00006ab0  2c 54 25 29 0d 43 1c 09  5b 4f 50 54 70 0d 43 26  |,T%).C..[OPTp.C&|
00006ac0  13 4d 4f 56 53 20 58 2c  52 2c 4c 53 4c 23 32 34  |.MOVS X,R,LSL#24|
00006ad0  0d 43 30 0c a4 73 65 74  75 70 4e 5a 0d 43 3a 11  |.C0..setupNZ.C:.|
00006ae0  a4 66 65 74 63 68 28 46  25 2c 54 25 29 0d 43 44  |.fetch(F%,T%).CD|
00006af0  05 5d 0d 43 4e 07 3d 22  22 0d 43 58 04 0d 43 62  |.].CN.="".CX..Cb|
00006b00  12 dd a4 6c 64 79 28 52  2c 46 25 2c 54 25 29 0d  |...ldy(R,F%,T%).|
00006b10  43 6c 09 5b 4f 50 54 70  0d 43 76 13 4d 4f 56 53  |Cl.[OPTp.Cv.MOVS|
00006b20  20 59 2c 52 2c 4c 53 4c  23 32 34 0d 43 80 0c a4  | Y,R,LSL#24.C...|
00006b30  73 65 74 75 70 4e 5a 0d  43 8a 11 a4 66 65 74 63  |setupNZ.C...fetc|
00006b40  68 28 46 25 2c 54 25 29  0d 43 94 05 5d 0d 43 9e  |h(F%,T%).C..].C.|
00006b50  07 3d 22 22 0d 43 a8 04  0d 43 b2 0c dd a4 69 6e  |.="".C...C....in|
00006b60  63 28 52 29 0d 43 bc 17  e7 20 52 3d 58 20 84 20  |c(R).C... R=X . |
00006b70  52 3d 59 20 84 20 52 3d  41 20 8c 0d 43 c6 09 5b  |R=Y . R=A ..C..[|
00006b80  4f 50 54 70 0d 43 d0 15  41 44 44 53 20 52 2c 52  |OPTp.C..ADDS R,R|
00006b90  2c 23 31 20 3c 3c 20 32  34 0d 43 da 05 5d 0d 43  |,#1 << 24.C..].C|
00006ba0  e4 05 cc 0d 43 ee 09 5b  4f 50 54 70 0d 43 f8 0e  |....C..[OPTp.C..|
00006bb0  41 44 44 20 52 2c 52 2c  23 31 0d 44 02 14 4d 4f  |ADD R,R,#1.D..MO|
00006bc0  56 53 20 52 32 2c 52 2c  4c 53 4c 23 32 34 0d 44  |VS R2,R,LSL#24.D|
00006bd0  0c 05 5d 0d 44 16 05 cd  0d 44 20 09 5b 4f 50 54  |..].D....D .[OPT|
00006be0  70 0d 44 2a 0c a4 73 65  74 75 70 4e 5a 0d 44 34  |p.D*..setupNZ.D4|
00006bf0  05 5d 0d 44 3e 07 3d 22  22 0d 44 48 04 0d 44 52  |.].D>.="".DH..DR|
00006c00  0c dd a4 64 65 63 28 52  29 0d 44 5c 17 e7 20 52  |...dec(R).D\.. R|
00006c10  3d 58 20 84 20 52 3d 59  20 84 20 52 3d 41 20 8c  |=X . R=Y . R=A .|
00006c20  0d 44 66 09 5b 4f 50 54  70 0d 44 70 15 53 55 42  |.Df.[OPTp.Dp.SUB|
00006c30  53 20 52 2c 52 2c 23 31  20 3c 3c 20 32 34 0d 44  |S R,R,#1 << 24.D|
00006c40  7a 05 5d 0d 44 84 05 cc  0d 44 8e 09 5b 4f 50 54  |z.].D....D..[OPT|
00006c50  70 0d 44 98 0e 53 55 42  20 52 2c 52 2c 23 31 0d  |p.D..SUB R,R,#1.|
00006c60  44 a2 14 4d 4f 56 53 20  52 32 2c 52 2c 4c 53 4c  |D..MOVS R2,R,LSL|
00006c70  23 32 34 0d 44 ac 05 5d  0d 44 b6 05 cd 0d 44 c0  |#24.D..].D....D.|
00006c80  09 5b 4f 50 54 70 0d 44  ca 0c a4 73 65 74 75 70  |.[OPTp.D...setup|
00006c90  4e 5a 0d 44 d4 05 5d 0d  44 de 07 3d 22 22 0d 44  |NZ.D..].D..="".D|
00006ca0  e8 04 0d 44 f2 0d dd a4  73 65 74 75 70 4e 5a 0d  |...D....setupNZ.|
00006cb0  44 fc 09 5b 4f 50 54 70  0d 45 06 16 42 49 43 20  |D..[OPTp.E..BIC |
00006cc0  46 2c 46 2c 23 25 31 30  30 30 30 30 31 30 0d 45  |F,F,#%10000010.E|
00006cd0  10 11 84 52 45 51 20 46  2c 46 2c 23 25 31 30 0d  |...REQ F,F,#%10.|
00006ce0  45 1a 17 84 52 4d 49 20  46 2c 46 2c 23 25 31 30  |E...RMI F,F,#%10|
00006cf0  30 30 30 30 30 30 0d 45  24 05 5d 0d 45 2e 07 3d  |000000.E$.].E..=|
00006d00  22 22 0d 45 38 04 0d 45  42 0c dd a4 73 65 74 75  |"".E8..EB...setu|
00006d10  70 5a 0d 45 4c 09 5b 4f  50 54 70 0d 45 56 10 42  |pZ.EL.[OPTp.EV.B|
00006d20  49 43 20 46 2c 46 2c 23  25 31 30 0d 45 60 11 84  |IC F,F,#%10.E`..|
00006d30  52 45 51 20 46 2c 46 2c  23 25 31 30 0d 45 6a 05  |REQ F,F,#%10.Ej.|
00006d40  5d 0d 45 74 07 3d 22 22  0d 45 7e 04 0d 45 88 0c  |].Et.="".E~..E..|
00006d50  dd a4 73 65 74 75 70 43  0d 45 92 09 5b 4f 50 54  |..setupC.E..[OPT|
00006d60  70 0d 45 9c 0f 42 49 43  20 46 2c 46 2c 23 25 31  |p.E..BIC F,F,#%1|
00006d70  0d 45 a6 10 84 52 43 53  20 46 2c 46 2c 23 25 31  |.E...RCS F,F,#%1|
00006d80  0d 45 b0 05 5d 0d 45 ba  07 3d 22 22 0d 45 c4 04  |.E..].E..="".E..|
00006d90  0d 45 ce 0e dd a4 73 65  74 75 70 4e 5a 43 0d 45  |.E....setupNZC.E|
00006da0  d8 09 5b 4f 50 54 70 0d  45 e2 16 42 49 43 20 46  |..[OPTp.E..BIC F|
00006db0  2c 46 2c 23 25 31 30 30  30 30 30 31 31 0d 45 ec  |,F,#%10000011.E.|
00006dc0  10 84 52 43 53 20 46 2c  46 2c 23 25 31 0d 45 f6  |..RCS F,F,#%1.E.|
00006dd0  11 84 52 45 51 20 46 2c  46 2c 23 25 31 30 0d 46  |..REQ F,F,#%10.F|
00006de0  00 17 84 52 4d 49 20 46  2c 46 2c 23 25 31 30 30  |...RMI F,F,#%100|
00006df0  30 30 30 30 30 0d 46 0a  05 5d 0d 46 14 07 3d 22  |00000.F..].F..="|
00006e00  22 0d 46 1e 04 0d 46 28  0f dd a4 73 65 74 75 70  |".F...F(...setup|
00006e10  43 5a 56 4e 0d 46 32 09  5b 4f 50 54 70 0d 46 3c  |CZVN.F2.[OPTp.F<|
00006e20  16 42 49 43 20 46 2c 46  2c 23 25 31 31 30 30 30  |.BIC F,F,#%11000|
00006e30  30 31 31 0d 46 46 10 84  52 43 53 20 46 2c 46 2c  |011.FF..RCS F,F,|
00006e40  23 25 31 0d 46 50 11 84  52 45 51 20 46 2c 46 2c  |#%1.FP..REQ F,F,|
00006e50  23 25 31 30 0d 46 5a 16  84 52 56 53 20 46 2c 46  |#%10.FZ..RVS F,F|
00006e60  2c 23 25 31 30 30 30 30  30 30 0d 46 64 17 84 52  |,#%1000000.Fd..R|
00006e70  4d 49 20 46 2c 46 2c 23  25 31 30 30 30 30 30 30  |MI F,F,#%1000000|
00006e80  30 0d 46 6e 05 5d 0d 46  78 07 3d 22 22 0d 46 82  |0.Fn.].Fx.="".F.|
00006e90  04 0d 46 8c 0f dd a4 73  65 74 75 70 43 7a 56 4e  |..F....setupCzVN|
00006ea0  0d 46 96 09 5b 4f 50 54  70 0d 46 a0 16 42 49 43  |.F..[OPTp.F..BIC|
00006eb0  20 46 2c 46 2c 23 25 31  31 30 30 30 30 31 31 0d  | F,F,#%11000011.|
00006ec0  46 aa 10 84 52 43 53 20  46 2c 46 2c 23 25 31 0d  |F...RCS F,F,#%1.|
00006ed0  46 b4 16 84 52 56 53 20  46 2c 46 2c 23 25 31 30  |F...RVS F,F,#%10|
00006ee0  30 30 30 30 30 0d 46 be  17 84 52 4d 49 20 46 2c  |00000.F...RMI F,|
00006ef0  46 2c 23 25 31 30 30 30  30 30 30 30 0d 46 c8 05  |F,#%10000000.F..|
00006f00  5d 0d 46 d2 07 3d 22 22  0d 46 dc 04 0d 46 e6 11  |].F..="".F...F..|
00006f10  dd a4 67 65 74 70 72 65  28 52 2c 53 29 0d 46 f0  |..getpre(R,S).F.|
00006f20  09 5b 4f 50 54 70 0d 46  fa 0d a4 70 72 65 28 52  |.[OPTp.F...pre(R|
00006f30  2c 53 29 0d 47 04 13 3b  4c 44 52 42 20 52 2c 5b  |,S).G..;LDRB R,[|
00006f40  6d 65 6d 2c 52 5d 0d 47  0e 0f a4 6c 64 72 62 32  |mem,R].G...ldrb2|
00006f50  28 52 2c 53 29 0d 47 18  05 5d 0d 47 22 07 3d 22  |(R,S).G..].G".="|
00006f60  22 0d 47 2c 04 0d 47 36  0e dd a4 70 72 65 28 52  |".G,..G6...pre(R|
00006f70  2c 53 29 0d 47 40 09 5b  4f 50 54 70 0d 47 4a 10  |,S).G@.[OPTp.GJ.|
00006f80  a4 67 65 74 62 79 74 65  31 28 52 29 0d 47 54 14  |.getbyte1(R).GT.|
00006f90  41 44 44 20 52 2c 58 2c  52 2c 4c 53 4c 23 32 34  |ADD R,X,R,LSL#24|
00006fa0  0d 47 5e 2a 4c 44 52 42  20 53 2c 5b 6d 65 6d 2c  |.G^*LDRB S,[mem,|
00006fb0  52 2c 4c 53 52 23 32 34  5d 20 3b 20 7a 65 72 6f  |R,LSR#24] ; zero|
00006fc0  20 70 61 67 65 20 4c 44  52 42 0d 47 68 14 41 44  | page LDRB.Gh.AD|
00006fd0  44 20 52 2c 52 2c 23 31  20 3c 3c 20 32 34 0d 47  |D R,R,#1 << 24.G|
00006fe0  72 2a 4c 44 52 42 20 52  2c 5b 6d 65 6d 2c 52 2c  |r*LDRB R,[mem,R,|
00006ff0  4c 53 52 23 32 34 5d 20  3b 20 7a 65 72 6f 20 70  |LSR#24] ; zero p|
00007000  61 67 65 20 4c 44 52 42  0d 47 7c 13 41 44 44 20  |age LDRB.G|.ADD |
00007010  53 2c 53 2c 52 2c 4c 53  4c 23 38 0d 47 86 05 5d  |S,S,R,LSL#8.G..]|
00007020  0d 47 90 07 3d 22 22 0d  47 9a 04 0d 47 a4 12 dd  |.G..="".G...G...|
00007030  a4 67 65 74 7a 65 72 6f  28 52 2c 53 29 0d 47 ae  |.getzero(R,S).G.|
00007040  09 5b 4f 50 54 70 0d 47  b8 10 a4 67 65 74 62 79  |.[OPTp.G...getby|
00007050  74 65 31 28 53 29 0d 47  c2 23 4c 44 52 42 20 52  |te1(S).G.#LDRB R|
00007060  2c 5b 6d 65 6d 2c 53 5d  20 3b 20 7a 65 72 6f 20  |,[mem,S] ; zero |
00007070  70 61 67 65 20 4c 44 52  42 0d 47 cc 05 5d 0d 47  |page LDRB.G..].G|
00007080  d6 07 3d 22 22 0d 47 e0  04 0d 47 ea 11 dd a4 67  |..="".G...G....g|
00007090  65 74 61 62 73 28 52 2c  53 29 0d 47 f4 09 5b 4f  |etabs(R,S).G..[O|
000070a0  50 54 70 0d 47 fe 0d a4  61 62 73 28 52 2c 53 29  |PTp.G...abs(R,S)|
000070b0  0d 48 08 13 3b 4c 44 52  42 20 52 2c 5b 6d 65 6d  |.H..;LDRB R,[mem|
000070c0  2c 53 5d 0d 48 12 0f a4  6c 64 72 62 32 28 52 2c  |,S].H...ldrb2(R,|
000070d0  53 29 0d 48 1c 05 5d 0d  48 26 07 3d 22 22 0d 48  |S).H..].H&.="".H|
000070e0  30 04 0d 48 3a 0e dd a4  61 62 73 28 52 2c 53 29  |0..H:...abs(R,S)|
000070f0  0d 48 44 09 5b 4f 50 54  70 0d 48 4e 12 a4 67 65  |.HD.[OPTp.HN..ge|
00007100  74 62 79 74 65 32 28 52  2c 53 29 0d 48 58 13 41  |tbyte2(R,S).HX.A|
00007110  44 44 20 53 2c 52 2c 53  2c 4c 53 4c 23 38 0d 48  |DD S,R,S,LSL#8.H|
00007120  62 0a 3b a4 73 74 72 62  0d 48 6c 05 5d 0d 48 76  |b.;.strb.Hl.].Hv|
00007130  07 3d 22 22 0d 48 80 04  0d 48 8a 12 dd a4 67 65  |.="".H...H....ge|
00007140  74 70 6f 73 74 28 52 2c  53 29 0d 48 94 09 5b 4f  |tpost(R,S).H..[O|
00007150  50 54 70 0d 48 9e 0e a4  70 6f 73 74 28 52 2c 53  |PTp.H...post(R,S|
00007160  29 0d 48 a8 1a 3b 4c 44  52 42 20 52 2c 5b 6d 65  |).H..;LDRB R,[me|
00007170  6d 2c 52 2c 4c 53 52 23  31 36 5d 0d 48 b2 10 a4  |m,R,LSR#16].H...|
00007180  6c 64 72 62 31 36 28 52  2c 53 29 0d 48 bc 05 5d  |ldrb16(R,S).H..]|
00007190  0d 48 c6 07 3d 22 22 0d  48 d0 04 0d 48 da 0f dd  |.H..="".H...H...|
000071a0  a4 70 6f 73 74 28 52 2c  53 29 0d 48 e4 09 5b 4f  |.post(R,S).H..[O|
000071b0  50 54 70 0d 48 ee 10 a4  67 65 74 62 79 74 65 31  |PTp.H...getbyte1|
000071c0  28 52 29 0d 48 f8 12 4d  4f 56 20 52 2c 52 2c 4c  |(R).H..MOV R,R,L|
000071d0  53 4c 23 32 34 0d 49 02  2a 4c 44 52 42 20 53 2c  |SL#24.I.*LDRB S,|
000071e0  5b 6d 65 6d 2c 52 2c 4c  53 52 23 32 34 5d 20 3b  |[mem,R,LSR#24] ;|
000071f0  20 7a 65 72 6f 20 70 61  67 65 20 4c 44 52 42 0d  | zero page LDRB.|
00007200  49 0c 14 41 44 44 20 52  2c 52 2c 23 31 20 3c 3c  |I..ADD R,R,#1 <<|
00007210  20 32 34 0d 49 16 2a 4c  44 52 42 20 52 2c 5b 6d  | 24.I.*LDRB R,[m|
00007220  65 6d 2c 52 2c 4c 53 52  23 32 34 5d 20 3b 20 7a  |em,R,LSR#24] ; z|
00007230  65 72 6f 20 70 61 67 65  20 4c 44 52 42 0d 49 20  |ero page LDRB.I |
00007240  13 41 44 44 20 52 2c 53  2c 52 2c 4c 53 4c 23 38  |.ADD R,S,R,LSL#8|
00007250  0d 49 2a 12 4d 4f 56 20  52 2c 52 2c 4c 53 4c 23  |.I*.MOV R,R,LSL#|
00007260  31 36 0d 49 34 13 41 44  44 20 53 2c 52 2c 59 2c  |16.I4.ADD S,R,Y,|
00007270  4c 53 52 23 38 0d 49 3e  0c 3b a4 73 74 72 62 31  |LSR#8.I>.;.strb1|
00007280  36 0d 49 48 05 5d 0d 49  52 07 3d 22 22 0d 49 5c  |6.IH.].IR.="".I\|
00007290  04 0d 49 66 17 dd a4 67  65 74 7a 65 72 6f 69 6e  |..If...getzeroin|
000072a0  64 69 72 28 52 2c 53 29  0d 49 70 09 5b 4f 50 54  |dir(R,S).Ip.[OPT|
000072b0  70 0d 49 7a 13 a4 7a 65  72 6f 69 6e 64 69 72 28  |p.Iz..zeroindir(|
000072c0  52 2c 53 29 0d 49 84 13  3b 4c 44 52 42 20 52 2c  |R,S).I..;LDRB R,|
000072d0  5b 6d 65 6d 2c 53 5d 0d  49 8e 0f a4 6c 64 72 62  |[mem,S].I...ldrb|
000072e0  32 28 52 2c 53 29 0d 49  98 05 5d 0d 49 a2 07 3d  |2(R,S).I..].I..=|
000072f0  22 22 0d 49 ac 04 0d 49  b6 14 dd a4 7a 65 72 6f  |"".I...I....zero|
00007300  69 6e 64 69 72 28 52 2c  53 29 0d 49 c0 09 5b 4f  |indir(R,S).I..[O|
00007310  50 54 70 0d 49 ca 10 a4  67 65 74 62 79 74 65 31  |PTp.I...getbyte1|
00007320  28 52 29 0d 49 d4 12 4d  4f 56 20 52 2c 52 2c 4c  |(R).I..MOV R,R,L|
00007330  53 4c 23 32 34 0d 49 de  2a 4c 44 52 42 20 53 2c  |SL#24.I.*LDRB S,|
00007340  5b 6d 65 6d 2c 52 2c 4c  53 52 23 32 34 5d 20 3b  |[mem,R,LSR#24] ;|
00007350  20 7a 65 72 6f 20 70 61  67 65 20 4c 44 52 42 0d  | zero page LDRB.|
00007360  49 e8 14 41 44 44 20 52  2c 52 2c 23 31 20 3c 3c  |I..ADD R,R,#1 <<|
00007370  20 32 34 0d 49 f2 2a 4c  44 52 42 20 52 2c 5b 6d  | 24.I.*LDRB R,[m|
00007380  65 6d 2c 52 2c 4c 53 52  23 32 34 5d 20 3b 20 7a  |em,R,LSR#24] ; z|
00007390  65 72 6f 20 70 61 67 65  20 4c 44 52 42 0d 49 fc  |ero page LDRB.I.|
000073a0  13 41 44 44 20 53 2c 53  2c 52 2c 4c 53 4c 23 38  |.ADD S,S,R,LSL#8|
000073b0  0d 4a 06 05 5d 0d 4a 10  07 3d 22 22 0d 4a 1a 04  |.J..].J..="".J..|
000073c0  0d 4a 24 23 dd a4 67 65  74 61 62 73 69 6e 64 65  |.J$#..getabsinde|
000073d0  78 28 52 2c 53 2c 54 29  20 f4 20 54 3d 58 20 6f  |x(R,S,T) . T=X o|
000073e0  72 20 59 0d 4a 2e 09 5b  4f 50 54 70 0d 4a 38 14  |r Y.J..[OPTp.J8.|
000073f0  a4 61 62 73 69 6e 64 65  78 28 52 2c 53 2c 54 29  |.absindex(R,S,T)|
00007400  0d 4a 42 1a 3b 4c 44 52  42 20 52 2c 5b 6d 65 6d  |.JB.;LDRB R,[mem|
00007410  2c 53 2c 4c 53 52 23 31  36 5d 0d 4a 4c 10 a4 6c  |,S,LSR#16].JL..l|
00007420  64 72 62 31 36 28 52 2c  53 29 0d 4a 56 05 5d 0d  |drb16(R,S).JV.].|
00007430  4a 60 07 3d 22 22 0d 4a  6a 04 0d 4a 74 20 dd a4  |J`.="".Jj..Jt ..|
00007440  61 62 73 69 6e 64 65 78  28 52 2c 53 2c 54 29 20  |absindex(R,S,T) |
00007450  f4 20 54 3d 58 20 6f 72  20 59 0d 4a 7e 09 5b 4f  |. T=X or Y.J~.[O|
00007460  50 54 70 0d 4a 88 12 a4  67 65 74 62 79 74 65 32  |PTp.J...getbyte2|
00007470  28 52 2c 53 29 0d 4a 92  13 41 44 44 20 52 2c 52  |(R,S).J..ADD R,R|
00007480  2c 53 2c 4c 53 4c 23 38  0d 4a 9c 12 4d 4f 56 20  |,S,LSL#8.J..MOV |
00007490  52 2c 52 2c 4c 53 4c 23  31 36 0d 4a a6 13 41 44  |R,R,LSL#16.J..AD|
000074a0  44 20 53 2c 52 2c 54 2c  4c 53 52 23 38 0d 4a b0  |D S,R,T,LSR#8.J.|
000074b0  05 5d 0d 4a ba 07 3d 22  22 0d 4a c4 04 0d 4a ce  |.].J..="".J...J.|
000074c0  17 dd a4 67 65 74 7a 65  72 6f 69 6e 64 65 78 28  |...getzeroindex(|
000074d0  52 2c 53 29 0d 4a d8 09  5b 4f 50 54 70 0d 4a e2  |R,S).J..[OPTp.J.|
000074e0  13 a4 7a 65 72 6f 69 6e  64 65 78 28 52 2c 53 29  |..zeroindex(R,S)|
000074f0  0d 4a ec 2a 4c 44 52 42  20 52 2c 5b 6d 65 6d 2c  |.J.*LDRB R,[mem,|
00007500  53 2c 4c 53 52 23 32 34  5d 20 3b 20 7a 65 72 6f  |S,LSR#24] ; zero|
00007510  20 70 61 67 65 20 4c 44  52 42 0d 4a f6 05 5d 0d  | page LDRB.J..].|
00007520  4b 00 07 3d 22 22 0d 4b  0a 04 0d 4b 14 14 dd a4  |K..="".K...K....|
00007530  7a 65 72 6f 69 6e 64 65  78 28 52 2c 53 29 0d 4b  |zeroindex(R,S).K|
00007540  1e 09 5b 4f 50 54 70 0d  4b 28 10 a4 67 65 74 62  |..[OPTp.K(..getb|
00007550  79 74 65 31 28 52 29 0d  4b 32 14 41 44 44 20 53  |yte1(R).K2.ADD S|
00007560  2c 58 2c 52 2c 4c 53 4c  23 32 34 0d 4b 3c 05 5d  |,X,R,LSL#24.K<.]|
00007570  0d 4b 46 07 3d 22 22 0d  4b 50 04 0d 4b 5a 18 dd  |.KF.="".KP..KZ..|
00007580  a4 67 65 74 7a 65 72 6f  69 6e 64 65 78 59 28 52  |.getzeroindexY(R|
00007590  2c 53 29 0d 4b 64 09 5b  4f 50 54 70 0d 4b 6e 14  |,S).Kd.[OPTp.Kn.|
000075a0  a4 7a 65 72 6f 69 6e 64  65 78 59 28 52 2c 53 29  |.zeroindexY(R,S)|
000075b0  0d 4b 78 2a 4c 44 52 42  20 52 2c 5b 6d 65 6d 2c  |.Kx*LDRB R,[mem,|
000075c0  53 2c 4c 53 52 23 32 34  5d 20 3b 20 7a 65 72 6f  |S,LSR#24] ; zero|
000075d0  20 70 61 67 65 20 4c 44  52 42 0d 4b 82 05 5d 0d  | page LDRB.K..].|
000075e0  4b 8c 07 3d 22 22 0d 4b  96 04 0d 4b a0 15 dd a4  |K..="".K...K....|
000075f0  7a 65 72 6f 69 6e 64 65  78 59 28 52 2c 53 29 0d  |zeroindexY(R,S).|
00007600  4b aa 09 5b 4f 50 54 70  0d 4b b4 10 a4 67 65 74  |K..[OPTp.K...get|
00007610  62 79 74 65 31 28 52 29  0d 4b be 14 41 44 44 20  |byte1(R).K..ADD |
00007620  53 2c 59 2c 52 2c 4c 53  4c 23 32 34 0d 4b c8 05  |S,Y,R,LSL#24.K..|
00007630  5d 0d 4b d2 07 3d 22 22  0d 4b dc 04 0d 4b e6 11  |].K..="".K...K..|
00007640  dd a4 67 65 74 62 79 74  65 31 28 52 29 0d 4b f0  |..getbyte1(R).K.|
00007650  09 5b 4f 50 54 70 0d 4b  fa 16 41 44 44 20 52 2c  |.[OPTp.K..ADD R,|
00007660  7a 70 63 2c 23 31 20 3c  3c 20 31 36 0d 4c 04 2e  |zpc,#1 << 16.L..|
00007670  3b 4c 44 52 42 20 52 2c  5b 6d 65 6d 2c 52 2c 4c  |;LDRB R,[mem,R,L|
00007680  53 52 23 31 36 5d 20 3b  20 69 6e 73 74 72 75 63  |SR#16] ; instruc|
00007690  74 69 6f 6e 20 66 65 74  63 68 0d 4c 0e 15 4d 4f  |tion fetch.L..MO|
000076a0  56 20 52 32 2c 23 70 61  67 65 74 61 62 6c 65 0d  |V R2,#pagetable.|
000076b0  4c 18 19 4c 44 52 42 20  52 32 2c 5b 52 32 2c 52  |L..LDRB R2,[R2,R|
000076c0  2c 4c 53 52 23 32 38 5d  0d 4c 22 14 4d 4f 56 20  |,LSR#28].L".MOV |
000076d0  52 32 2c 52 32 2c 4c 53  4c 23 31 32 0d 4c 2c 18  |R2,R2,LSL#12.L,.|
000076e0  4c 44 52 42 20 52 2c 5b  52 32 2c 52 2c 4c 53 52  |LDRB R,[R2,R,LSR|
000076f0  23 31 36 5d 0d 4c 36 05  5d 0d 4c 40 07 3d 22 22  |#16].L6.].L@.=""|
00007700  0d 4c 4a 04 0d 4c 54 15  dd a4 58 58 67 65 74 62  |.LJ..LT...XXgetb|
00007710  79 74 65 32 28 52 2c 53  29 0d 4c 5e 09 5b 4f 50  |yte2(R,S).L^.[OP|
00007720  54 70 0d 4c 68 18 41 44  44 20 53 2c 6d 65 6d 2c  |Tp.Lh.ADD S,mem,|
00007730  7a 70 63 2c 4c 53 52 23  31 36 0d 4c 72 11 4c 44  |zpc,LSR#16.Lr.LD|
00007740  52 42 20 52 2c 5b 53 2c  23 31 5d 0d 4c 7c 27 4c  |RB R,[S,#1].L|'L|
00007750  44 52 42 20 53 2c 5b 53  2c 23 32 5d 20 3b 20 69  |DRB S,[S,#2] ; i|
00007760  6e 73 74 72 75 63 74 69  6f 6e 20 66 65 74 63 68  |nstruction fetch|
00007770  65 73 0d 4c 86 05 5d 0d  4c 90 07 3d 22 22 0d 4c  |es.L..].L..="".L|
00007780  9a 04 0d 4c a4 13 dd a4  67 65 74 62 79 74 65 32  |...L....getbyte2|
00007790  28 52 2c 53 29 0d 4c ae  09 5b 4f 50 54 70 0d 4c  |(R,S).L..[OPTp.L|
000077a0  b8 19 3b 41 44 44 20 53  2c 6d 65 6d 2c 7a 70 63  |..;ADD S,mem,zpc|
000077b0  2c 4c 53 52 23 31 36 0d  4c c2 12 3b 4c 44 52 42  |,LSR#16.L..;LDRB|
000077c0  20 52 2c 5b 53 2c 23 31  5d 0d 4c cc 28 3b 4c 44  | R,[S,#1].L.(;LD|
000077d0  52 42 20 53 2c 5b 53 2c  23 32 5d 20 3b 20 69 6e  |RB S,[S,#2] ; in|
000077e0  73 74 72 75 63 74 69 6f  6e 20 66 65 74 63 68 65  |struction fetche|
000077f0  73 0d 4c d6 16 41 44 44  20 52 2c 7a 70 63 2c 23  |s.L..ADD R,zpc,#|
00007800  31 20 3c 3c 20 31 36 0d  4c e0 15 4d 4f 56 20 52  |1 << 16.L..MOV R|
00007810  32 2c 23 70 61 67 65 74  61 62 6c 65 0d 4c ea 18  |2,#pagetable.L..|
00007820  4c 44 52 42 20 53 2c 5b  52 32 2c 52 2c 4c 53 52  |LDRB S,[R2,R,LSR|
00007830  23 32 38 5d 0d 4c f4 12  4d 4f 56 20 53 2c 53 2c  |#28].L..MOV S,S,|
00007840  4c 53 4c 23 31 32 0d 4c  fe 17 4c 44 52 42 20 52  |LSL#12.L..LDRB R|
00007850  2c 5b 53 2c 52 2c 4c 53  52 23 31 36 5d 0d 4d 08  |,[S,R,LSR#16].M.|
00007860  16 41 44 44 20 53 2c 7a  70 63 2c 23 32 20 3c 3c  |.ADD S,zpc,#2 <<|
00007870  20 31 36 0d 4d 12 16 3b  4d 4f 56 20 52 32 2c 23  | 16.M..;MOV R2,#|
00007880  70 61 67 65 74 61 62 6c  65 0d 4d 1c 19 4c 44 52  |pagetable.M..LDR|
00007890  42 20 52 32 2c 5b 52 32  2c 53 2c 4c 53 52 23 32  |B R2,[R2,S,LSR#2|
000078a0  38 5d 0d 4d 26 14 4d 4f  56 20 52 32 2c 52 32 2c  |8].M&.MOV R2,R2,|
000078b0  4c 53 4c 23 31 32 0d 4d  30 18 4c 44 52 42 20 53  |LSL#12.M0.LDRB S|
000078c0  2c 5b 52 32 2c 53 2c 4c  53 52 23 31 36 5d 0d 4d  |,[R2,S,LSR#16].M|
000078d0  3a 04 0d 4d 44 05 5d 0d  4d 4e 07 3d 22 22 0d 4d  |:..MD.].MN.="".M|
000078e0  58 04 0d 4d 62 0d dd a4  70 75 6c 6c 28 52 29 0d  |X..Mb...pull(R).|
000078f0  4d 6c 0a c8 8e 20 52 20  ca 0d 4d 76 07 c9 20 46  |Ml... R ..Mv.. F|
00007900  0d 4d 80 09 5b 4f 50 54  70 0d 4d 8a 16 41 44 44  |.M..[OPTp.M..ADD|
00007910  20 53 50 2c 53 50 2c 23  31 20 3c 3c 20 32 34 0d  | SP,SP,#1 << 24.|
00007920  4d 94 1b 4c 44 52 42 20  52 31 2c 5b 6d 65 6d 2c  |M..LDRB R1,[mem,|
00007930  53 50 2c 52 4f 52 23 32  34 5d 0d 4d 9e 10 42 49  |SP,ROR#24].M..BI|
00007940  43 20 46 2c 46 2c 23 26  46 46 0d 4d a8 0d 84 52  |C F,F,#&FF.M...R|
00007950  20 46 2c 46 2c 52 31 0d  4d b2 14 42 4c 20 72 65  | F,F,R1.M..BL re|
00007960  73 65 74 5f 62 63 64 66  6c 61 67 0d 4d bc 05 5d  |set_bcdflag.M..]|
00007970  0d 4d c6 0b c9 20 41 2c  58 2c 59 0d 4d d0 09 5b  |.M... A,X,Y.M..[|
00007980  4f 50 54 70 0d 4d da 16  41 44 44 20 53 50 2c 53  |OPTp.M..ADD SP,S|
00007990  50 2c 23 31 20 3c 3c 20  32 34 0d 4d e4 1b 4c 44  |P,#1 << 24.M..LD|
000079a0  52 42 20 52 30 2c 5b 6d  65 6d 2c 53 50 2c 52 4f  |RB R0,[mem,SP,RO|
000079b0  52 23 32 34 5d 0d 4d ee  14 4d 4f 56 53 20 52 2c  |R#24].M..MOVS R,|
000079c0  52 30 2c 4c 53 4c 23 32  34 0d 4d f8 0c a4 73 65  |R0,LSL#24.M...se|
000079d0  74 75 70 4e 5a 0d 4e 02  05 5d 0d 4e 0c 05 7f 0d  |tupNZ.N..].N....|
000079e0  4e 16 09 5b 4f 50 54 70  0d 4e 20 16 41 44 44 20  |N..[OPTp.N .ADD |
000079f0  53 50 2c 53 50 2c 23 31  20 3c 3c 20 32 34 0d 4e  |SP,SP,#1 << 24.N|
00007a00  2a 1b 4c 44 52 42 20 52  30 2c 5b 6d 65 6d 2c 53  |*.LDRB R0,[mem,S|
00007a10  50 2c 52 4f 52 23 32 34  5d 0d 4e 34 13 4d 4f 56  |P,ROR#24].N4.MOV|
00007a20  20 52 2c 52 30 2c 4c 53  4c 23 32 34 0d 4e 3e 05  | R,R0,LSL#24.N>.|
00007a30  5d 0d 4e 48 05 cb 0d 4e  52 07 3d 22 22 0d 4e 5c  |].NH...NR.="".N\|
00007a40  04 0d 4e 66 0d dd a4 70  75 73 68 28 52 29 0d 4e  |..Nf...push(R).N|
00007a50  70 17 e7 20 52 3d 46 20  84 20 52 3d 30 20 84 20  |p.. R=F . R=0 . |
00007a60  52 3d 31 20 8c 0d 4e 7a  09 5b 4f 50 54 70 0d 4e  |R=1 ..Nz.[OPTp.N|
00007a70  84 1a 53 54 52 42 20 52  2c 5b 6d 65 6d 2c 53 50  |..STRB R,[mem,SP|
00007a80  2c 52 4f 52 23 32 34 5d  0d 4e 8e 16 53 55 42 20  |,ROR#24].N..SUB |
00007a90  53 50 2c 53 50 2c 23 31  20 3c 3c 20 32 34 0d 4e  |SP,SP,#1 << 24.N|
00007aa0  98 05 5d 0d 4e a2 05 cc  0d 4e ac 09 5b 4f 50 54  |..].N....N..[OPT|
00007ab0  70 0d 4e b6 13 4d 4f 56  20 52 30 2c 52 2c 4c 53  |p.N..MOV R0,R,LS|
00007ac0  52 23 32 34 0d 4e c0 1b  53 54 52 42 20 52 30 2c  |R#24.N..STRB R0,|
00007ad0  5b 6d 65 6d 2c 53 50 2c  52 4f 52 23 32 34 5d 0d  |[mem,SP,ROR#24].|
00007ae0  4e ca 16 53 55 42 20 53  50 2c 53 50 2c 23 31 20  |N..SUB SP,SP,#1 |
00007af0  3c 3c 20 32 34 0d 4e d4  05 5d 0d 4e de 05 cd 0d  |<< 24.N..].N....|
00007b00  4e e8 07 3d 22 22 0d 4e  f2 04 0d ff              |N..="".N....|
00007b0c