100 REM ********************* 110 REM ** DISDUMP ** 120 REM ** M.W. CAPRIO ** 150 REM ** 24 NOVEMBER 84 ** 160 REM ********************* 170 POKE55,255:POKE56,47:POKE643,255:POKE644,47:CLR 180 POKE53280,14:POKE53281,12:PRINT"[151]" 190 REM ** TITLE PAGE ** 200 PRINT"[147]" 210 PRINTTAB(12)" [146]" 220 PRINTTAB(12)" DISDUMP [146]" 230 PRINTTAB(12)" [146]" 240 PRINTTAB(12)" PROGRAM BY MWC [146]" 250 PRINTTAB(12)" [146]" 260 FORI=1TO1500:NEXTI 270 DIM F$(16) 280 F$(0)="0":F$(1)="1":F$(2)="2":F$(3)="3":F$(4)="4":F$(5)="5":F$(6)="6" 290 F$(7)="7":F$(8)="8":F$(9)="9":F$(10)="A":F$(11)="B" 295 F$(12)="C":F$(13)="D" 300 F$(14)="E":F$(15)="F" 310 REM ** MAIN PROGRAM ** 320 PRINT"[147] THIS PROGRAM WILL READ THE CONTENTS OF" 330 PRINT" MEMORY AND OUTPUT THE OBJECT CODE AND" 340 PRINT" THE ASSEMBLY LANGUAGE SOURCE CODE THAT" 350 PRINT" IT FINDS IN THE LOCATIONS YOU REQUEST." 360 INPUT"DO YOU WANT A HARDCOPY (Y OR N)";HD$:S=0:C=0 370 INPUT"STARTING ADDRESS (DECIMAL)";S 380 INPUT" ENDING ADDRESS (DECIMAL)";E:E=E-1:IFE+1>=STHEN410 390 PRINT" THE ENDING ADDRESS MUST BE HIGH-" 400 PRINT" ER THAN THE STARTING ADDRESS.":FORI=1TO2000:NEXTI:GOTO310 410 INPUT" ARE YOU SURE";C$ 420 IFLEFT$(C$,1)<>"Y"THEN310 430 PRINT"[147]WORKING ..." 440 IFLEFT$(HD$,1)<>"Y"THEN470 450 OPEN4,4:CMD4 460 : 470 NN=S:GOSUB610:SS$=S$ 480 ML=PEEK(S) 490 GOSUB690 500 IFN>0THENGOSUB750 510 GOSUB870 520 OP$=V$ 530 IFN=0THEN570 540 FORI=1TON 550 ML=AD(I):GOSUB870:AD$(I)=V$ 560 NEXTI 570 IFHD$="Y"THENGOSUB910:GOTO590 580 GOSUB1030 590 IFS=>E+1THEN2700 600 N=0:S=S+1:C=C+1:AD$(1)="":AD$(2)="":GOTO470 610 REM ** CONVERT S TO HEX ** 620 S$="":SS=INT(NN/4096):S$=S$+F$(SS) 630 F1=NN-SS*4096 640 SS=INT(F1/256):S$=S$+F$(SS) 650 F2=F1-SS*256 660 SS=INT(F2/16):S$=S$+F$(SS) 670 F3=F2-SS*16:S$=S$+F$(F3) 680 RETURN 690 REM ** READ DATA ** 700 RESTORE:FORI=1TO151 710 READOP,CD$,N,SF$ 720 IFOP=MLTHENI=151 730 NEXTI 740 RETURN 750 REM ** READ ADDITIONAL DATA ** 760 FORI=1TON 770 S=S+1 780 AD(I)=PEEK(S) 790 NEXTI 800 IFN=1THEN820 810 T=AD(1):AD(1)=AD(2):AD(2)=T 820 IFLEFT$(CD$,1)<>"B"THEN860 830 IFAD(1)>127THENNN=S-(255-AD(1)):GOTO850 840 NN=S+AD(1)+1 850 GOSUB610:D$=S$ 860 RETURN 870 REM ** CONVERT DEC TO HEX ** 880 V$="":F=INT(ML/16):V$=V$+F$(F) 890 F1=ML-F*16:V$=V$+F$(F1) 900 RETURN 910 REM ** OUTPUT TO PRINTER ** 920 PRINTCCHR$(9);SS$;CHR$(9);OP$; 930 IFAD$(2)=""THENPRINTCHR$(9);AD$(1);CHR$(9);AD$(2);:GOTO950 940 PRINTCHR$(9);AD$(2);CHR$(9);AD$(1); 950 PRINTCHR$(9);CD$; 960 IFN=0THENPRINT:GOTO1020 970 IFN=1ANDLEFT$(CD$,1)="B"THENPRINTD$:GOTO1020 980 FORI=1TON 990 PRINTAD$(I); 1000 NEXTI 1010 PRINTSF$ 1020 RETURN 1030 REM ** OUTPUT TO SCREEN ** 1040 CC=CC+1 1050 PRINTC;TAB(6)SS$;TAB(13)OP$; 1060 IFAD$(2)=""THENPRINTTAB(16)AD$(1);:GOTO1080 1070 PRINTTAB(16)AD$(2);TAB(19)AD$(1); 1080 PRINTTAB(23)CD$; 1090 IFN=0THENPRINT:GOTO 1150 1100 IFN=1ANDLEFT$(CD$,1)="B"THENPRINTD$:GOTO 1150 1110 FORI=1TON 1120 PRINTAD$(I); 1130 NEXTI 1140 PRINTSF$ 1150 IFCC<>20THEN1180 1160 PRINT" PRESS RETURN[146] TO CONTINUE.":CC=0 1170 GETC$:IFC$<>CHR$(13)THEN 1170 1180 RETURN 1190 DATA0,"BRK",0," " 1200 DATA1,"ORA ($",1,",X)" 1210 DATA5,"ORA $",1," " 1220 DATA6,"ASL $",1," " 1230 DATA8,"PHP",0," " 1240 DATA9,"ORA #$",1," " 1250 DATA10,"ASL",0," " 1260 DATA13,"ORA $",2," " 1270 DATA14,"ASL #$",1," " 1280 DATA16,"BPL $",1," " 1290 DATA17,"ORA ($",1,"),Y" 1300 DATA21,"ORA $",1,",X" 1310 DATA22,"ASL $",1,",X" 1320 DATA24,"CLC",0," " 1330 DATA25,"ORA $",2,",Y" 1340 DATA29,"ORA $",2,",X" 1350 DATA30,"ASL $",2,",X" 1360 DATA32,"JSR $",2," " 1370 DATA33,"AND ($",1,",X)" 1380 DATA36,"BIT $",1," " 1390 DATA37,"AND $",1," " 1400 DATA38,"ROL $",1," " 1410 DATA40,"PLP",0," " 1420 DATA41,"AND #$",1," " 1430 DATA42,"ROL",0," " 1440 DATA44,"BIT $",2," " 1450 DATA45,"AND $",2," " 1460 DATA46,"ROL $",2," " 1470 DATA48,"BMI $",1," " 1480 DATA49,"AND ($",1,"),Y" 1490 DATA53,"AND $",1,",X" 1500 DATA54,"ROL $",1,",X" 1510 DATA56,"SEC",0," " 1520 DATA57,"AND $",2," " 1530 DATA61,"AND $",2,",X" 1540 DATA62,"ROL $",2,",X" 1550 DATA64,"RTI",0," " 1560 DATA65,"EOR ($",1,",X)" 1570 DATA69,"EOR $",1," " 1580 DATA70,"LSR $",1," " 1590 DATA72,"PHA",0," " 1600 DATA73,"EOR #$",1," " 1610 DATA74,"LSR",0," " 1620 DATA76,"JMP $",2," " 1630 DATA77,"EOR $",2," " 1640 DATA78,"LSR $",2," " 1650 DATA80,"BVC $",1," " 1660 DATA81,"EOR ($",1,"),Y" 1670 DATA85,"EOR $",1,",X" 1680 DATA86,"LSR $",1,",X" 1690 DATA88,"CLI",0," " 1700 DATA89,"EOR $",2,",Y" 1710 DATA93,"EOR $",2,",X" 1720 DATA94,"LSR $",2,",X" 1730 DATA96,"RTS",0," " 1740 DATA97,"ADC ($",1,",X)" 1750 DATA101,"ADC $",1," " 1760 DATA102,"ROR $",1," " 1770 DATA104,"PLA",0," " 1780 DATA105,"ADC #$",1," " 1790 DATA106,"ROR",0," " 1800 DATA108,"JMP ($",2,")" 1810 DATA109,"ADC $",2," " 1820 DATA110,"ROR $",2," " 1830 DATA112,"BVS $",1," " 1840 DATA113,"ADC ($",1,"),Y" 1850 DATA117,"ADC $",1,",X" 1860 DATA118,"ROR $",1,",X" 1870 DATA120,"SEI",0," " 1880 DATA121,"ADC $",2,",Y" 1890 DATA125,"ADC $",2,",X" 1900 DATA126,"ROR $",2,",X" 1910 DATA129,"STA ($",1,",X)" 1920 DATA132,"STY $",1," " 1930 DATA133,"STA $",1," " 1940 DATA134,"STX $",1," " 1950 DATA136,"DEY",0," " 1960 DATA138,"TXA",0," " 1970 DATA140,"STY $",2," " 1980 DATA141,"STA $",2," " 1990 DATA142,"STX $",2," " 2000 DATA144,"BCC $",1," " 2010 DATA145,"STA ($",1,"),Y" 2020 DATA148,"STY $",1,",X" 2030 DATA149,"STA $",1,",X" 2040 DATA150,"STX $",1,",Y" 2050 DATA152,"TYA",0," " 2060 DATA153,"STA $",2,",Y" 2070 DATA154,"TXS",0," " 2080 DATA157,"STA $",2,",X" 2090 DATA160,"LDY #$",1," " 2100 DATA161,"LDA ($",1,",X)" 2110 DATA162,"LDX #$",1," " 2120 DATA164,"LDY $",1," " 2130 DATA165,"LDA $",1," " 2140 DATA166,"LDX $",1," " 2150 DATA168,"TAY",0," " 2160 DATA169,"LDA #$",1," " 2170 DATA170,"TAX",0," " 2180 DATA172,"LDY $",2," " 2190 DATA173,"LDA $",2," " 2200 DATA174,"LDX $",2," " 2210 DATA176,"BCS $",1," " 2220 DATA177,"LDA ($",1,"),Y" 2230 DATA180,"LDY $",1,",X" 2240 DATA181,"LDA $",1,",X" 2250 DATA182,"LDX $",1,",Y" 2260 DATA184,"CLV",0," " 2270 DATA185,"LDA $",2,",Y" 2280 DATA186,"TSX",0," " 2290 DATA188,"LDY $",2,",X" 2300 DATA189,"LDA $",2,",X" 2310 DATA192,"CPY #$",1," " 2320 DATA193,"CMP ($",1,",X)" 2330 DATA196,"CPY $",1," " 2340 DATA197,"CMP $",1," " 2350 DATA198,"DEC $",1," " 2360 DATA200,"INY",0," " 2370 DATA201,"CMP #$",1," " 2380 DATA202,"DEX",0," " 2390 DATA204,"CPY $",2," " 2400 DATA205,"CMP $",2," " 2410 DATA206,"DEC $",2," " 2420 DATA208,"BNE $",1," " 2430 DATA209,"CMP ($",1,"),Y" 2440 DATA213,"CMP $",1,",X" 2450 DATA214,"DEC $",1,",X" 2460 DATA216,"CLD",0," " 2470 DATA217,"CMP $",2,",Y" 2480 DATA221,"CMP $",2,",X" 2490 DATA222,"DEC $",2,",X" 2500 DATA224,"CPX #$",1," " 2510 DATA225,"SBC ($",1,",X)" 2520 DATA228,"CPX $",1," " 2530 DATA229,"SBC $",1," " 2540 DATA230,"INC $",1," " 2550 DATA232,"INX",0," " 2560 DATA233,"SBC #$",1," " 2570 DATA234,"NOP",0," " 2580 DATA236,"CPX $",2," " 2590 DATA237,"SBC $",2," " 2600 DATA238,"INC $",2," " 2610 DATA240,"BEQ $",1," " 2620 DATA241,"SBC ($",1,"),Y " 2630 DATA245,"SBC $",1,",X" 2640 DATA246,"INC $",1,",X" 2650 DATA248,"SED",0," " 2660 DATA249,"SBC $",2,",Y" 2670 DATA253,"SBC $",2,",X" 2680 DATA254,"INC $",2,",X" 2690 DATA2,"???",0," " 2700 IFLEFT$(HD$,1)="Y"THENPRINT#4:CLOSE4 2710 PRINT"COMPLETE." 2720 PRINT"WOULD YOU LIKE TO DISDUMP SOME MORE?" 2730 POKE198,0:WAIT198,1:GETA$:IFA$<>"Y"ANDA$<>"N"THENPOKE53280,RND(1)*15:GOTO2730 2740 IFA$="Y"THEN360 2750 GOTO63000 2760 : 63000 REM CONNECT BACK TO L.S. 63001 POKE55,0:POKE56,160:POKE643,0:POKE644,160:CLR 63002 PRINT"[147]LOAD"CHR$(34)"PAYLOAD"CHR$(34)",8":PRINT"RUN" 63004 POKE198,0:POKE631,13:POKE632,13:POKE198,2:END