home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Toolkit / DISK-SCAN (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  2.4 KB  |  69 lines

  1. 10 REM * DISK SCAN
  2. 20 REM * V1.0, 5/86, BUMMY
  3. 30 CLR
  4. 40 C$=CHR$(13):O$=CHR$(0):SP$="":T$=CHR$(16)
  5. 50 HY$="   -----------------------------------"
  6. 100 PRINT"ôINPUT DISK TO BE SCANNED AND PRESS      RETURN TO BEGIN OR SPACE";
  7. 110 PRINT" TO ABORT...":POKE198,0
  8. 120 GETE$:IFE$<>" "ANDE$<>C$THEN120
  9. 130 IFE$=C$THEN150
  10. 140 GOTO9900
  11. 150 INPUT"STARTING TRACK  1¥¥¥";T1
  12. 152 IFT1=0THEN9900
  13. 155 INPUT"ENDING TRACK  35¥¥¥¥";EE
  14. 157 IFEE=0THEN9900
  15. 158 IFT1>EETHEN10
  16. 160 OPEN1,8,15,"I0":INPUT#1,EN,EM$,ET,ES:IFEN<20THEN180
  17. 170 PRINT"ôDISK ERRORÆ"EN,EM$:GOTO9900
  18. 180 PRINT#1,"M-W"CHR$(106)CHR$(0)CHR$(1)CHR$(133)
  19. 190 PRINT"ô  ░└└└└└└└└└└└└└└└└└«"C$"20▌"TAB(20)"▌"C$"19▌";
  20. 192 PRINTTAB(20)"¡└└└└└└«"C$"18▌"TAB(27)"¡└└└└└«"
  21. 200 PRINT"17▌"TAB(33)"¡└└└└«":FORF=16TO0STEP-1:Q$=RIGHT$(STR$(F),2):PRINTQ$"▌";
  22. 210 PRINTTAB(38)"▌":NEXTF:PRINT"  ¡└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└╜"
  23. 212 PRINTTAB(12)"1"TAB(22)"2"TAB(32)"3"
  24. 214 PRINTTAB(3);:FORF=1TO35:Q$=RIGHT$(STR$(F),1):PRINTQ$;:NEXT:PRINT""C$
  25. 216 PRINTTAB(29)"ANALYZING";
  26. 220 OPEN2,8,2,"#":PRINT#1,"U1:2 0 18 0":FORF=1TO178:GET#2,Q$:Q$=Q$+O$
  27. 230 BM$=BM$+LEFT$(Q$,1):NEXT:NA$=MID$(BM$,145,16):ID$=MID$(BM$,163,2)
  28. 240 DT$=MID$(BM$,166,2):Q=.:FORF=1TO16:IFASC(MID$(NA$,F,1))=160THENQ=F-1:F=16
  29. 250 NEXT:IFQ<>.THENNA$=LEFT$(NA$,Q)
  30. 260 BF=.:FORF=5TO141STEP4:IFF<>73THENBF=BF+ASC(MID$(BM$,F,1))
  31. 270 NEXT
  32. 280 DIMA$(35):PRINT""TAB(22)NA$C$TAB(21)MID$(STR$(BF),2)" FREE  ID="ID    
  33. 300 FORT=T1TOEE:Y=T+2:X=22:S1=20+((T>17)+(T>24)+(T>30)):IFS1<20THENS1=S1-1
  34. 310 FORS=0TOS1:PRINT#1,"U1:2 0 "T;S:INPUT#1,EN,EM$:GET#2,A$,B$,D$
  35. 320 IFEN<20THEN350
  36. 330 IFEN>29THENPRINT"ôDISK ERRORÆ "EN;EM$:GOTO9900
  37. 340 X$=RIGHT$(STR$(EN),1):GOTO380
  38. 350 A$=A$+O$:B$=B$+O$:D$=D$+O$:A=ASC(A$):B=ASC(B$):D=ASC(D$)
  39. 360 IFA=75ANDB=1ANDD=1THENX$=" ":GOTO380
  40. 370 X$="+"
  41. 380 X=X-1:GOSUB1000:PRINT""X$"Æ";:A$(T)=A$(T)+X$:NEXTS,T:CLOSE2:CLOSE1
  42. 390 X=2:Y=28:GOSUB1000:PRINT"HARDCOPY? ";:POKE204,0:POKE198,0
  43. 400 GETE$:IFE$<>"Y"ANDE$<>"N"THEN400
  44. 410 WAIT207,1,1:POKE204,1:IFE$="N"THEN10
  45. 420 OPEN4,4:PRINT#4,"NAME = "NA$C$"  ID = "ID$C$" DOS     "DT$C$"FREE ="BF;C$
  46. 425 GOSUB1300:GOSUB1100:PRINT#4,HY$
  47. 430 FORF=21TO1STEP-1:PRINT#4,RIGHT$(STR$(F-1),2)"!";:FORF1=1TO35
  48. 450 PRINT#4,MID$(A$(F1),F,1);
  49. 460 NEXTF1:PRINT#4,"!"RIGHT$(STR$(F-1),2)
  50. 480 NEXTF:PRINT#4,HY$:GOSUB1100:CLOSE4
  51. 490 X=2:Y=28:GOSUB1000:PRINT"ANY KEY...";:POKE204,0:POKE198,0
  52. 500 GETE$:IFE$=""THEN500
  53. 510 WAIT207,1,1:POKE204,1:GOTO10
  54. 1000 REM * PLOT
  55. 1010 PRINT"";:PRINTLEFT$(SP$,X)TAB(Y);:RETURN
  56. 1100 PRINT#4,T$"121"T$"222"T$"323"
  57. 1110 PRINT#4,"   ";:FORF=1TO35:PRINT#4,RIGHT$(MID$(STR$(F),2),1);:NEXT:PRINT#4
  58. 1120 RETURN
  59. 1300 IFT1=1THEN1330
  60. 1310 FORF=1TOT1-1:S1=20+((F>17)+(F>24)+(F>30)):IFS1<20THENS1=S1-1
  61. 1320 FORF1=1TOS1+1:A$(F)=A$(F)+" ":NEXTF1,F
  62. 1330 IFEE=35THEN1360
  63. 1340 FORF=EE+1TO35:S    
  64. 1350 FORF1=1TOS1+1:A$(F)=A$(F)+" ":NEXTF1,F
  65. 1360 FORF=1TO35:IFLEN(A$(F))<21THENA$(F)=A$(F)+LEFT$("....",21-LEN(A$(F)))
  66. 1370 NEXTF:RETURN
  67. 9900 REM * FINISHED
  68. 9910 CLOSE2:CLOSE1:PRINT"PROGRAM COMPLETED.":END
  69.