Anonymous avatar Anonymous committed 88e4ba8 Draft

Initial import of DiskSumo version 1.0 revision 2007.0726.

Comments (0)

Files changed (2)

Binary file added.

+   10 goto 8900
+  100 rem --dump disk to rs232--
+  110 m=fre(0):m=24576:t=1:s=0:b%=1
+  120 open 15,8,15
+  130 open 5,8,5,"#"
+  160 gosub 8000: rem setup display
+  165 print "{home}{grn}ready. start xmodem on other computer";
+  170 get#4,a$: if a$<>chr$(nak%) then 170
+  175 print "{home}                                      ";
+  180 be=val(ti$)
+  200 for t=1 to 35
+  210 gosub 500: rem calc max sec
+  220 gosub 800: rem read track
+  230 gosub 700: rem send track
+  240 next
+  300 print#4, chr$(eot%);
+  310 mi=(val(ti$)-be)/100
+  320 print "{clr}";mi;"minutes elapsed"
+  330 close 15: close 5
+  340 return
+  400 rem --update display--
+  405 poke 55296+(t-1)+40*(s+1), co%
+  410 poke 1024+(t-1)+40*(s+1), sy%
+  420 return
+  500 rem --calc max sec# for trk#t--
+  510 if t<=17 then ms%=20: return
+  520 if t<=24 then ms%=18: return
+  530 if t<=30 then ms%=17: return
+  540 ms%=16: return
+  700 rem --send trk--
+  710 for s=0 to ms%
+  720 co%=4:sy%=87: gosub 400
+  730 mo=m+s*256: gosub 2000: rem send 1st
+  740 co%=10:sy%=87: gosub 400
+  750 mo=mo+128: gosub 2000: rem send 2nd
+  760 co%=5:sy%=81: gosub 400
+  770 next
+  799 return
+  800 rem ---read trk into m---
+  810 gosub 500: rem calc max sec in ms%
+  820 for s=0 to ms%
+  830 mo=m+s*256: gosub 1000
+  840 co%=7:sy%=90: gosub 400
+  850 next
+  899 return
+ 1000 rem ---read sec#s, trk#t into mo---
+ 1010 print#15,"u1";5;0;t;s
+ 1020 for i=mo to mo+255
+ 1030 get#5,a$
+ 1035 if a$="" then a$=chr$(0)
+ 1040 poke i, asc(a$)
+ 1050 next
+ 1060 return
+ 2000 rem ---send 128 bytes at mo to rs232---
+ 2005 ck%=0
+ 2007 print "{home}{yel}b";b%;"{left}      {left}{left}{left}{left}{left}";
+ 2010 print#4, chr$(soh%);chr$(b%);chr$(255-b%);
+ 2020 for i=mo to mo+127
+ 2025 y%=peek(i)
+ 2030 print#4, chr$(y%);
+ 2035 ck%=(ck%+y%) and 255
+ 2040 next
+ 2045 print#4, chr$(ck%);
+ 2050 get#4, a$: if a$="" goto 2050
+ 2055 if a$=chr$(nak%) then print"nak":goto 2005
+ 2060 if a$<>chr$(ack%) then print"???";asc(a$) :goto 2005
+ 2070 print "ack"
+ 2090 b%=b%+1: if b% > 255 then b% = 0
+ 2099 return
+ 7000 rem ---terminal---
+ 7010 print "{clr}{lblu}terminal mode. press ";chr$(95);" to return to menu"
+ 7020 get#4, a$: if a$="" goto 7040
+ 7030 print a$;: goto 7020
+ 7040 get a$:if a$="" goto 7020
+ 7050 print#4, a$;
+ 7055 if a$=chr$(95) then return
+ 7060 goto 7020
+ 8000 rem set up display
+ 8010 print "{clr}{red}{down}";
+ 8020 for i=1 to 17
+ 8030 print "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+ 8040 next
+ 8050 print "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+ 8060 print "ZZZZZZZZZZZZZZZZZZZZZZZZ"
+ 8070 for i=1 to 2
+ 8080 print "ZZZZZZZZZZZZZZZZZ"
+ 8090 next
+ 8099 return
+ 8900 rem ---initialize---
+ 8910 poke 52,96:poke 56,96:clr
+ 8920 open 4, 2, 3, chr$(0)+chr$(0)+chr$(61)+chr$(1)
+ 8930 m=24576:t=1:s=0:b%=1
+ 8940 soh%=1:eot%=4:ack%=6:nak%=21
+ 9000 rem ---main menu---
+ 9010 print "{clr}{cyn}";
+ 9012 poke 53280, 0: poke 53281, 0
+ 9020 print "disksumo v1.0, jul 26 2007"
+ 9025 print "chris pressey, cat's eye technologies"
+ 9027 print "this program is in the public domain"
+ 9030 print "{down}{down}{down}";spc(16);"main menu"
+ 9035 print spc(16);"{CBM-T}{CBM-T}{CBM-T}{CBM-T} {CBM-T}{CBM-T}{CBM-T}{CBM-T}"
+ 9040 print "{down}{rght}{rght}{rght}{rght}{rght} {wht}t{cyn}erminal"
+ 9045 print "{rght}{rght}{rght}{rght}{rght} {wht}d{cyn}irectory"
+ 9050 print "{rght}{rght}{rght}{rght}{rght} {wht}e{cyn}rror status"
+ 9055 print "{rght}{rght}{rght}{rght}{rght} {wht}b{cyn}egin dump"
+ 9060 print "{rght}{rght}{rght}{rght}{rght} {red}q{cyn}uit"
+ 9200 get a$: if a$="" goto 9200
+ 9210 if a$="t" then gosub 7000: goto 9000
+ 9220 if a$="d" then gosub 10000: goto 9500
+ 9230 if a$="e" then gosub 12000: goto 9500
+ 9240 if a$="b" then gosub 100: goto 9500
+ 9250 if a$="q" then goto 15000
+ 9490 goto 9000
+ 9500 print "{wht}press any key to continue";
+ 9510 get a$: if a$="" goto 9510
+ 9990 goto 9000
+ 10000 rem ---directory---
+ 10010 open 1, 8, 0, "$0": get#1, a$, a$
+ 10020 get#1, a$, a$: if a$="" then 10060
+ 10030 get#1, a$, b$: print asc(a$+chr$(0))+asc(b$+chr$(0))*256;
+ 10040 get#1, a$: if a$="" then print: goto 10020
+ 10050 print a$;: goto 10040
+ 10060 close 1: return
+ 12000 rem ---error status---
+ 12010 open 14,8,15
+ 12020 input#14, en, em$, et, es
+ 12030 print en, em$, et, es
+ 12040 close 14: return
+ 15000 rem ---shutdown---
+ 15010 close 4
+ 15099 end
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.