0 DATABRK 10 DATA"ORA(&n,X)" 20 DATA 30 DATA 40 DATATSB &n 50 DATAORA &n 60 DATAASL &n 70 DATA 80 DATAPHP 90 DATAORA #&n 100 DATAASL A 110 DATA 120 DATATSB &nn 130 DATAORA &nn 140 DATAASL &nn 150 DATA 160 DATABPL &n 170 DATA"ORA(&n),Y" 180 DATAORA(&n) 190 DATA 200 DATATRB &n 210 DATA"ORA &n,X" 220 DATA"ASL &n,X" 230 DATA 240 DATACLC 250 DATA"ORA &nn,Y" 260 DATAINC 270 DATA 280 DATATRB &nn 290 DATA"ORA &nn,X" 300 DATA"ASL &nn,X" 310 DATA 320 DATAJSR &nn 330 DATA"AND (&n,X)" 340 DATA 350 DATA 360 DATABIT &n 370 DATAAND &n 380 DATAROL &n 390 DATA 400 DATAPLP 410 DATAAND #&n 420 DATAROL A 430 DATA 440 DATABIT &nn 450 DATAAND &nn 460 DATAROL &nn 470 DATA 480 DATABMI &n 490 DATA"AND (&n),Y" 500 DATAAND (&n) 510 DATA 520 DATA"BIT (&n),X" 530 DATA"AND &n,X" 540 DATA"ROL &n,X" 550 DATA 560 DATASEC 570 DATA"AND &nn,Y" 580 DATADEA 590 DATA 600 DATA"BIT &nn,X" 610 DATA"AND &nn,X" 620 DATA"ROL &nn,X" 630 DATA 640 DATARTI 650 DATA"EOR &n,X" 660 DATA 670 DATA 680 DATA 690 DATAEOR &n 700 DATALSR &n 710 DATA 720 DATAPHA 730 DATAEOR #&n 740 DATALSR A 750 DATA 760 DATAJMP &nn 770 DATAEOR &nn 780 DATALSR &nn 790 DATA 800 DATABVC &n 810 DATA"EOR (&n),Y" 820 DATAEOR (&n) 830 DATA 840 DATA 850 DATA"EOR &n,X" 860 DATA"LSR &n,X" 870 DATA 880 DATACLI 890 DATA"EOR &nn,Y" 900 DATAPHY 910 DATA 920 DATA 930 DATA"EOR &nn,X" 940 DATA"LSR &nn,X" 950 DATA 960 DATARTS 970 DATA"ADC (&n),X" 980 DATA 990 DATA 1000 DATASTZ &n 1010 DATAADC &n 1020 DATAROR &n 1030 DATA 1040 DATAPLA 1050 DATAADC #&n 1060 DATAROR A 1070 DATA 1080 DATAJMP(&nn) 1090 DATAADC &nn 1100 DATAROR &nn 1110 DATA 1120 DATABVS &n 1130 DATA"ADC (&n),Y" 1140 DATAADC (&n) 1150 DATA 1160 DATA"STZ &n,X" 1170 DATA"ADC &n,X" 1180 DATA"ROR &n,X" 1190 DATA 1200 DATASEI 1210 DATA"ADC &nn,Y" 1220 DATAPLY 1230 DATA 1240 DATA"JMP (&nn,X)" 1250 DATA"ADC &nn,X" 1260 DATA"ROR &nn,X" 1270 DATA 1280 DATABRA &n 1290 DATA"STA (&n,X)" 1300 DATA 1310 DATA 1320 DATASTY &n 1330 DATASTA &n 1340 DATASTX &n 1350 DATA 1360 DATADEY 1370 DATABIT #&n 1380 DATATXA 1390 DATA 1400 DATASTY &nn 1410 DATASTA &nn 1420 DATASTX &nn 1430 DATA 1440 DATABCC &n 1450 DATA"STA (&n),Y" 1460 DATASTA (&n) 1470 DATA 1480 DATA"STY &n,X" 1490 DATA"STA &n,X" 1500 DATA"STX &n,Y" 1510 DATA 1520 DATATYA 1530 DATA"STA &nn,Y" 1540 DATATXS 1550 DATA 1560 DATASTZ &nn 1570 DATA"STA &nn,X" 1580 DATA"STZ &nn,X" 1590 DATA 1600 DATALDY #&n 1610 DATA"LDA (&n,X)" 1620 DATALDX #&n 1630 DATA 1640 DATALDY &n 1650 DATALDA &n 1660 DATALDX &n 1670 DATA 1680 DATATAY 1690 DATALDA #&n 1700 DATATAX 1710 DATA 1720 DATALDY &nn 1730 DATALDA &nn 1740 DATALDX &nn 1750 DATA 1760 DATABCS &n 1770 DATA"LDA (&n),Y" 1780 DATALDA (&n) 1790 DATA 1800 DATA"LDY &n,X" 1810 DATA"LDA &n,X" 1820 DATA"LDX &n,Y" 1830 DATA 1840 DATACLV 1850 DATA"LDA &nn,Y" 1860 DATATSX 1870 DATA 1880 DATA"LDY &nn,X" 1890 DATA"LDA &nn,X" 1900 DATA"LDX &nn,Y" 1910 DATA 1920 DATACPY #&n 1930 DATA"CMP (&n,X)" 1940 DATA 1950 DATA 1960 DATACPY &n 1970 DATACMP &n 1980 DATADEC &n 1990 DATA 2000 DATAINY 2010 DATACMP #&n 2020 DATADEX 2030 DATA 2040 DATACPY &nn 2050 DATACMP &nn 2060 DATADEC &nn 2070 DATA 2080 DATABNE &n 2090 DATA"CMP (&n),Y" 2100 DATACMP (&n) 2110 DATA 2120 DATA 2130 DATA"CMP &n,X" 2140 DATA"DEC &n,X" 2150 DATA 2160 DATACLD 2170 DATA"CMP &nn,Y" 2180 DATAPHX 2190 DATA 2200 DATA 2210 DATA"CMP &nn,X" 2220 DATA"DEC &nn,X" 2230 DATA 2240 DATACPX #&n 2250 DATA"SBC (&n,X)" 2260 DATA 2270 DATA 2280 DATACPX &n 2290 DATASBC &n 2300 DATAINC &n 2310 DATA 2320 DATA INX 2330 DATASBC #&n 2340 DATANOP 2350 DATA 2360 DATACPX &nn 2370 DATASBC &nn 2380 DATAINC &nn 2390 DATA 2400 DATABEQ &n 2410 DATA"SBC (&n),Y" 2420 DATASBC (&n) 2430 DATA 2440 DATA 2450 DATA"SBC &n,X" 2460 DATA"INC &n,X" 2470 DATA 2480 DATASED 2490 DATA"SBC &nn,Y" 2500 DATAPLX 2510 DATA 2520 DATA 2530 DATA"SBC &nn,X" 2540 DATA"INC &nn,X" 2550 DATA 2560 DEFFNS="DISM" 2570 MODE7+128 2580 ONERROR:VDU3:REPORT:PRINTERL:CLOSE#0:END 2590 PRINT':PROCp("Disc/Memory Disassemble"):PRINT':PROCp("By C.J.Richardson.") 2600 PRINT':PROCp("65C02 version. List the program and"):PROCp("type GOTO 2870 to convert to 6502"):PRINT' 2610 PRINT"List opcodes? Y/N":IFGET$="Y":VDU2:FORM%=0TO255STEP4:READA$,B$,C$,D$:PRINT"&";~M%;TAB(4);M%;TAB(8);A$;TAB(24);"&";~M%+1;TAB(28);M%+1;TAB(32);B$;TAB(48);"&";~M%+2;TAB(52);M%+2;TAB(56);C$;TAB(71);"&";~M%+3;TAB(75);M%+3;TAB(79);D$:NEXT:VDU3 2620 REPEAT:PRINT"Read from Disc or Memory D/M?":q$=GET$:UNTILq$="D"ORq$="M" 2630 PRINT"Printout Y/N ":pr$=GET$:PRINT"Single jumps or Relative S/R?":f$=GET$ 2640 ct%=1:PRINT"Mode 7 OR 0?":IFGET$="0" MODE0+128 2650 IF q$="M" m%=FNhex:REPEAT:PROCread:m%=m%+c%+1:UNTILFALSE 2660 IF q$="D":INPUT"Filename to read ";fl$:FI%=OPENIN fl$:PTR#FI%=FNhex-1:REPEAT:PROCread:UNTILEOF#FI%:END 2670 DEFPROCread:c%=0:mo$="":ct%=ct%+1:IFpr$="Y"VDU2 2680 IFq$="D" bt%=BGET#FI% ELSE bt%=?m% 2690 RESTORE bt%*10:READ bt$:tem%=INSTR(bt$,"n"):IF tem% c%=1:s2$=MID$(bt$,tem%+1):IF LEFT$(s2$,1)="n" c%=2:s2$=RIGHT$(s2$,LEN(s2$)-1) 2700 IF q$="D" s1$=STR$~PTR#FI% ELSE s1$=STR$ ~m% 2710 s1$="&"+s1$:s1$=s1$+"=":IFc%=0 s1$=s1$+bt$ ELSE s1$=s1$+LEFT$(bt$,INSTR(bt$,"n")-1) 2720 IF q$="M"IFc%=2 s1$=s1$+STR$~(?(m%+1)+?(m%+2)*&100) 2730 IF q$="M"IFc%=1 s1$=s1$+STR$~?(m%+1) 2740 IF q$="D"IFc%=2 s1$=s1$+STR$~((BGET#FI%)+(BGET#FI%)*&100):IF f$="S":PTR#FI%=PTR#FI%-2 2750 IF q$="D"IFc%=1 s1$=s1$+STR$~(BGET#FI%):IF f$="S":PTR#FI%=PTR#FI%-1 2760 IFc%<>0 PRINTs1$+s2$; ELSE PRINTs1$; 2770 IFq$="M"IFc%=2PRINTTAB(20);"&";STR$~(m%+1);"=&";STR$~?(m%+1);" &";STR$~(m%+2);"=&";STR$~?(m%+2) ELSE IF q$="M"IFc%=1PRINTTAB(20);"&";STR$~(m%+1);"=&";STR$~?(m%+1) ELSE PRINT 2780 VDU3:IF q$="M"IF f$="S"c%=0 2790 IFct%MOD10=0:OSCLI"FX21":mo$=GET$:IFmo$="J" IF q$="M" m%=FNhex-1 ELSE IF mo$="J" IFq$="D":PTR#FI%=FNhex-1 2800 IFmo$="B" IF q$="M" m%=m%-90 ELSE IFmo$="B" IF q$="D":PTR#FI%=PTR#FI%-90 2810 ENDPROC 2820 DEFFNhex:INPUT"Read from where ";m$:IF LEFT$(m$,1)<>"&":=VAL(m$) 2830 m$="000"+MID$(m$,2):m$=RIGHT$(m$,4):m%=0:FORHL=1TO4:te%=ASC(MID$(m$,HL)) 2840 IFte%>57 te%=te%-55 ELSE te%=te%-48 2850 m%=m%*16+te%:NEXT:=m% 2860 DEFPROCp(A$):PRINTTAB(18-LENA$/2)""A$'TAB(18-LENA$/2)""A$:ENDPROC 2870 *K.0 40D.|M120D.|M180D.|M200D.|M260D.|M280D.|M520D.|M580D.|M600D.|M820D.|M900D.|M1000D.|M1140D.|M1240D.|M1280D.|M1460D.|M1560D.|M1580D.|M1780D.|M2180D.|M2420D.|M2500D.|M2560DEFFNS="DISB"|M2600PROCp("6502 version")|M2870|M2880|M 2880 *FX138 0 128