home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 1
/
001.d81
/
bsave
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
1KB
|
31 lines
10 print"[147]binary save program -- by joel ellis rea";
20 print"[146]addresses are decimal, hex if preceded with '$'":print
25 print"enter <0) for starting address to quit"
30 input"starting address";a$:ifasc(a$)=36thena$=mid$(a$,2):gosub8700:goto50
40 a=val(a$):b=0
50 sa=a:print"starting address ="sa"$";:gosub8600:printa$
52 ifsa=0then6000
55 ifsa<512thenprint"can't save zero page or stack!":end
60 input"ending address";a$:ifasc(a$)=36thena$=mid$(a$,2):gosub8700:goto80
70 a=val(a$)
80 ea=a:print"ending address ="ea"$";:gosub8600:printa$
85 ifea<sathenprint"sorry! no can do!":end
90 input"filename";n$:input"unit# 8[157][157][157]";u%:n$=n$+",p"
100 open2,u%,2,n$:poke254,int(sa/256):poke253,sa-256*peek(254):poke780,253
110 poke782,int(ea/256):poke781,ea-256*peek(782)
120 b=(ea-sa)/256+1:ifb<>int(b)thenb=int(b+1)
130 sys65496:print"done!":close2
140 print"done saving"b"blocks to '"n$"',"u%"starting at"sa"$";:a=sa:gosub8600
150 printa$:end
5999 rem
6000 poke53281,0:print"[147][144]load"chr$(34)"payload"chr$(34)",8":print"run"
6002 poke631,13:poke632,13:poke198,2:end
8000 geta$:ifa$="y"thenprint"yeah!":r%=-1:return
8005 ifa$="n"thenprint"nope.":r%=0:return
8010 goto8000
8500 a$="":ah%=a%/16:al%=a%and15:a%=ah%:gosub8505:a%=al%
8505 a$=a$+chr$(48+a%-7*(a%>9)):return
8600 ah=int(a/256):al=a-256*ah:a%=ah:gosub8500:t$=a$:a%=al:gosub8500:a$=t$+a$
8605 return
8700 a=0:fori=1tolen(a$):a%=asc(mid$(a$,i,1)):a=a*16+a%-48+7*(a%>57):next:return