home *** CD-ROM | disk | FTP | other *** search
- 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
-