home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 1 / 001.d81 / bsave (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  1KB  |  31 lines

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