0100 ;SAVE#D:DMPT4.M65 0110 ;---------------------------- 0120 ; Disk Master part 4 0130 ; 0140 ;These are the mnemonics for 0150 ;the disassembler. They are 0160 ;arranged here in alphabetical 0170 ;order. 0180 ;---------------------------- 0190 ; 0200 MNE .BYTE "ADCANDASLBCCBCS" 0210 .BYTE "BEQBITBMIBNEBPL" 0220 .BYTE "BRKBVCBVSCLCCLD" 0230 .BYTE "CLICLVCMPCPXCPY" 0240 .BYTE "DECDEXDEYEORINC" 0250 .BYTE "INXINYJMPJSRLDA" 0260 .BYTE "LDXLDYLSRNOPORA" 0270 .BYTE "PHAPHPPLAPLPROL" 0280 .BYTE "RORRTIRTSSBCSEC" 0290 .BYTE "SEDSEISTASTXSTY" 0300 .BYTE "TAXTAYTSXTXATXS" 0310 .BYTE "TYA" 0320 ; 0330 ;Opcodes 0340 ; 0350 OPCODE 0360 .BYTE $69,$65,$75,$6D ;ADC 0370 .BYTE $7D,$79,$61,$71 0380 .BYTE $29,$25,$35,$2D ;AND 0390 .BYTE $3D,$39,$21,$31 0400 .BYTE $0A,$06,$16,$0E ;ASL 0410 .BYTE $1E 0420 .BYTE $90 ;BCC 0430 .BYTE $B0 ;BCS 0440 .BYTE $F0 ;BEQ 0450 .BYTE $24,$2C ;BIT 0460 .BYTE $30 ;BMI 0470 .BYTE $D0 ;BNE 0480 .BYTE $10 ;BPL 0490 .BYTE $00 ;BRK 0500 .BYTE $50 ;BVC 0510 .BYTE $70 ;BVS 0520 .BYTE $18 ;CLC 0530 .BYTE $D8 ;CLD 0540 .BYTE $58 ;CLI 0550 .BYTE $B8 ;CLV 0560 .BYTE $C9,$C5,$D5,$CD ;CMP 0570 .BYTE $DD,$D9,$C1,$D1 0580 .BYTE $E0,$E4,$EC ;CPX 0590 .BYTE $C0,$C4,$CC ;CPY 0600 .BYTE $C6,$D6,$CE,$DE ;DEC 0610 .BYTE $CA ;DEX 0620 .BYTE $88 ;DEY 0630 .BYTE $49,$45,$55,$4D ;EOR 0640 .BYTE $5D,$59,$41,$51 0650 .BYTE $E6,$F6,$EE,$FE ;INC 0660 .BYTE $E8 ;INX 0670 .BYTE $C8 ;INY 0680 .BYTE $4C,$6C ;JMP 0690 .BYTE $20 ;JSR 0700 .BYTE $A9,$A5,$B5,$AD ;LDA 0710 .BYTE $BD,$B9,$A1,$B1 0720 .BYTE $A2,$A6,$B6,$AE ;LDX 0730 .BYTE $BE 0740 .BYTE $A0,$A4,$B4,$AC ;LDY 0750 .BYTE $BC 0760 .BYTE $4A,$46,$56,$4E ;LSR 0770 .BYTE $5E 0780 .BYTE $EA ;NOP 0790 .BYTE $09,$05,$15,$0D ;ORA 0800 .BYTE $1D,$19,$01,$11 0810 .BYTE $48 ;PHA 0820 .BYTE $08 ;PHP 0830 .BYTE $68 ;PLA 0840 .BYTE $28 ;PLP 0850 .BYTE $2A,$26,$36,$2E ;ROL 0860 .BYTE $3E 0870 .BYTE $6A,$66,$76,$6E ;ROR 0880 .BYTE $7E 0890 .BYTE $40 ;RTI 0900 .BYTE $60 ;RTS 0910 .BYTE $E9,$E5,$F5,$ED ;SBC 0920 .BYTE $FD,$F9,$E1,$F1 0930 .BYTE $38 ;SEC 0940 .BYTE $F8 ;SED 0950 .BYTE $78 ;SEI 0960 .BYTE $85,$95,$8D ;STA 0970 .BYTE $9D,$99,$81,$91 0980 .BYTE $86,$96,$8E ;STX 0990 .BYTE $84,$94,$8C ;STY 1000 .BYTE $AA ;TAX 1010 .BYTE $A8 ;TAY 1020 .BYTE $BA ;TSX 1030 .BYTE $8A ;TXA 1040 .BYTE $9A ;TXS 1050 .BYTE $98 ;TYA 1060 ; 1070 ;Offsets into Mnemonic table 1080 ; 1090 OFFSET 1100 .BYTE 0,0,0,0,0,0,0,0 ;ADC 1110 .BYTE 3,3,3,3,3,3,3,3 ;AND 1120 .BYTE 6,6,6,6,6 ;ASL 1130 .BYTE 9 ;BCC 1140 .BYTE 12 ;BCS 1150 .BYTE 15 ;BEQ 1160 .BYTE 18,18 ;BIT 1170 .BYTE 21 ;BMI 1180 .BYTE 24 ;BNE 1190 .BYTE 27 ;BPL 1200 .BYTE 30 ;BRK 1210 .BYTE 33 ;BVC 1220 .BYTE 36 ;BVS 1230 .BYTE 39 ;CLC 1240 .BYTE 42 ;CLD 1250 .BYTE 45 ;CLI 1260 .BYTE 48 ;CLV 1270 .BYTE 51,51,51,51 ;CMP 1280 .BYTE 51,51,51,51 1290 .BYTE 54,54,54 ;CPX 1300 .BYTE 57,57,57 ;CPY 1310 .BYTE 60,60,60,60 ;DEC 1320 .BYTE 63 ;DEX 1330 .BYTE 66 ;DEY 1340 .BYTE 69,69,69,69 ;EOR 1350 .BYTE 69,69,69,69 1360 .BYTE 72,72,72,72 ;INC 1370 .BYTE 75 ;INX 1380 .BYTE 78 ;INY 1390 .BYTE 81,81 ;JMP 1400 .BYTE 84 ;JSR 1410 .BYTE 87,87,87,87 ;LDA 1420 .BYTE 87,87,87,87 1430 .BYTE 90,90,90,90,90 ;LDX 1440 .BYTE 93,93,93,93,93 ;LDY 1450 .BYTE 96,96,96,96,96 ;LSR 1460 .BYTE 99 ;NOP 1470 .BYTE 102,102,102,102 ;ORA 1480 .BYTE 102,102,102,102 1490 .BYTE 105 ;PHA 1500 .BYTE 108 ;PHP 1510 .BYTE 111 ;PLA 1520 .BYTE 114 ;PLP 1530 .BYTE 117,117,117,117 ;ROL 1540 .BYTE 117 1550 .BYTE 120,120,120,120 ;ROR 1560 .BYTE 120 1570 .BYTE 123 ;RTI 1580 .BYTE 126 ;RTS 1590 .BYTE 129,129,129,129 ;SBC 1600 .BYTE 129,129,129,129 1610 .BYTE 132 ;SEC 1620 .BYTE 135 ;SED 1630 .BYTE 138 ;SEI 1640 .BYTE 141,141,141,141 ;STA 1650 .BYTE 141,141,141 1660 .BYTE 144,144,144 ;STX 1670 .BYTE 147,147,147 ;STY 1680 .BYTE 150 ;TAX 1690 .BYTE 153 ;TAY 1700 .BYTE 156 ;TSX 1710 .BYTE 159 ;TXA 1720 .BYTE 162 ;TXS 1730 .BYTE 165 ;TYA 1740 ; 1750 ;Instruction Types 1760 ; 1770 ; 0 = Immediate 1780 ; 1 = Zero page 1790 ; 2 = Zero page,X 1800 ; 3 = Absolute 1810 ; 4 = Absolute,X 1820 ; 5 = Absolute,Y 1830 ; 6 = Indirect,X 1840 ; 7 = Indirect,Y 1850 ; 8 = Accumulator 1860 ; 9 = Relative 1870 ;10 = Implied 1880 ;11 = Indirect 1890 ;12 = Zero page,Y 1900 ; 1910 ITYPE 1920 .BYTE 0,1,2,3,4,5,6,7 ;ADC 1930 .BYTE 0,1,2,3,4,5,6,7 ;AND 1940 .BYTE 8,1,2,3,4 ;ASL 1950 .BYTE 9 ;BCC 1960 .BYTE 9 ;BCS 1970 .BYTE 9 ;BEQ 1980 .BYTE 1,3 ;BIT 1990 .BYTE 9 ;BMI 2000 .BYTE 9 ;BNE 2010 .BYTE 9 ;BPL 2020 .BYTE 10 ;BRK 2030 .BYTE 9 ;BVC 2040 .BYTE 9 ;BVS 2050 .BYTE 10 ;CLC 2060 .BYTE 10 ;CLD 2070 .BYTE 10 ;CLI 2080 .BYTE 10 ;CLV 2090 .BYTE 0,1,2,3,4,5,6,7 ;CMP 2100 .BYTE 0,1,3 ;CPX 2110 .BYTE 0,1,3 ;CPY 2120 .BYTE 1,2,3,4 ;DEC 2130 .BYTE 10 ;DEX 2140 .BYTE 10 ;DEY 2150 .BYTE 0,1,2,3,4,5,6,7 ;EOR 2160 .BYTE 1,2,3,4 ;INC 2170 .BYTE 10 ;INX 2180 .BYTE 10 ;INY 2190 .BYTE 3,11 ;JMP 2200 .BYTE 3 ;JSR 2210 .BYTE 0,1,2,3,4,5,6,7 ;LDA 2220 .BYTE 0,1,12,3,5 ;LDX 2230 .BYTE 0,1,2,3,4 ;LDY 2240 .BYTE 8,1,2,3,4 ;LSR 2250 .BYTE 10 ;NOP 2260 .BYTE 0,1,2,3,4,5,6,7 ;ORA 2270 .BYTE 10 ;PHA 2280 .BYTE 10 ;PHP 2290 .BYTE 10 ;PLA 2300 .BYTE 10 ;PLP 2310 .BYTE 8,1,2,3,4 ;ROL 2320 .BYTE 8,1,2,3,4 ;ROR 2330 .BYTE 10 ;RTI 2340 .BYTE 10 ;RTS 2350 .BYTE 0,1,2,3,4,5,6,7 ;SBC 2360 .BYTE 10 ;SEC 2370 .BYTE 10 ;SED 2380 .BYTE 10 ;SEI 2390 .BYTE 1,2,3,4,5,6,7 ;STA 2400 .BYTE 1,12,3 ;STX 2410 .BYTE 1,2,3 ;STY 2420 .BYTE 10 ;TAX 2430 .BYTE 10 ;TAY 2440 .BYTE 10 ;TSX 2450 .BYTE 10 ;TXA 2460 .BYTE 10 ;TXS 2470 .BYTE 10 ;TYA 2480 ; 2490 ;Disassembler JMP Tables 2500 ; 2510 DCOMT .WORD IMMED ;2 bytes 2520 .WORD ZPAG ;2 bytes 2530 .WORD ZPAGX ;2 bytes 2540 .WORD ABSOL ;3 bytes 2550 .WORD ABSOLX ;3 bytes 2560 .WORD ABSOLY ;3 bytes 2570 .WORD INDX ;2 bytes 2580 .WORD INDY ;2 bytes 2590 .WORD ACCUM ;1 bytes 2600 .WORD RELA ;2 bytes 2610 .WORD IMP ;1 bytes 2620 .WORD INDI ;3 bytes 2630 .WORD ZPAGY ;2 bytes 2640 NBTAB .BYTE 2,2,2,3,3,3,2 2650 .BYTE 2,1,2,1,3,2 2660 ; 2670 COMMAX .BYTE ",X)" 2680 COMMAY .BYTE "Y,)" 2690 POINTB .BYTE " .BYTE $" 2700 STEN .BYTE " *=$ " 2710 .BYTE ";END=$ ",EOL,EOL,0 2720 ; 2730 INS_DST .BYTE EOL,"Insert des" 2740 .BYTE "t'n, RETURN",EOL,0 2750 ; 2760 INS_SRC .BYTE EOL,"Insert sou" 2770 .BYTE "rce, RETURN",EOL,0 2780 ; 2790 ALL.DONE .BYTE EOL,"Completed" 2800 .BYTE ", RETURN",EOL,0 2810 ; 2820 OUTP .BYTE EOL,"OUTPUT ",0 2830 IN_P .BYTE EOL,"INPUT ",0