home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
genie-commodore-file-library
/
C64Toolkit
/
DISK-O-RAMA
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
10KB
|
359 lines
10 POKE53280,0:POKE53281,0:POKE646,11
11 CR$=CHR$(13):V=0:DF$=""
12 FL=200
13 DIMTN$(FL),ID$(FL),DN$(FL)
14 PRINTCHR$(142)
15 OPEN15,8,15
16 BL$(1)="[213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]
17 BL$(2)[178]"MID$TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN(null)
18 BL$(3)="[158][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"
20 GOTO1000
80 RF$=DF$:PRINT"[147]"
81 PRINTSPC(6)"ENTER THE NAME OF THE FILE "
82 PRINTSPC(12);"TO WORK ON:"
83 IFX$="1"THENV=0
84 IFV=1THENPRINTSPC(6);"OR HIT RETURN FOR SAME FILE"
85 PRINTSPC(10);:INPUT"[155][145]";DF$
86 IFDF$=RF$ANDV=1THEN132
87 V=1
88 IFX$="1"THENV=0
89 IFLEN(DF$)>16THENGOSUB965
90 IFX$="1"THENN=0:FORZ=1TON:TN$(Z)="":NEXT:GOTO790
100 PRINTSPC(15)"LOADING...."
102 OPEN2,8,2,"0:"+DF$+",S,R"
103 GOSUB500
104 INPUT#2,N
105 GOSUB500
107 FORI=1TON
110 INPUT#2,TN$(I)
112 NEXT
120 GOSUB500
130 CLOSE2
131 IFX$="1"THENV=0
132 IFX$="2"THEN600
133 IFX$="3"THENDC=0:GOTO790
135 IFX$="4"THENED=0:GOTO699
136 IFX$="5"THEN790
200 PRINTSPC(15)"SAVING...."
205 OPEN2,8,2,"@0:"+DF$+",S,W"
210 GOSUB500
211 PRINT#2,N
212 GOSUB500
215 FORI=1TON
220 PRINT#2,TN$(I)
225 NEXTI
230 GOSUB500
240 CLOSE2
242 IFN=200THEN900
250 IFX$="1"THEN600
251 IFX$="3"ORX$="2"ORX$="5"THENGOTO1100
252 IFX$="4"THEN600
253 IFED=1THEN1100
260 GP=N:PRINTSPC(15)"SORTING...[145][145]"
263 GP=INT(GP/2):IFGP=0THENRETURN
265 F=0
267 FORJ=1TO(N-GP)
269 IFTN$(J)<TN$(J+GP)THEN275
271 T$=TN$(J):TN$(J)=TN$(J+GP):TN$(J+GP)=T$
275 NEXT
277 GOTO263
280 RETURN
300 LD$=""
301 PRINT"[145] ENTER THE ID TO CHANGE/DELETE "
302 PRINT"HIT <RETURN> IF NONE [157][157][157][157][157][157][157][157][157][152]";:INPUTLD$
303 IFLD$=""THEN1100
304 FORI=1TON
305 IFLEFT$(TN$(I),2)=LD$THEN320
307 NEXT
320 PRINT"[147]IS THIS THE DISK TO CHANGE?[149]"
321 PRINT""SPC(6)BL$(1)
322 PRINTSPC(6)"[149][221] [221]"
325 PRINTSPC(6)"[145][149][221] "LEFT$(TN$(I),2)" "MID$(TN$(I),3)
327 PRINTSPC(6)BL$(2)
329 GETA$:IFA$=""THEN329
330 IFA$="Y"THEN333
331 IFA$="N"THEN700
332 GOTO330
333 PRINTSPC(6)""BL$(1):PRINTSPC(6)"[221] MAKE ENTRIES EVEN IF NAME [221]"
335 PRINTSPC(6)"[221] OR ID IS TO BE THE SAME [221]"
336 PRINTSPC(6)"[221] IF DELETING, USE 'DELETED' [221]"
337 PRINTSPC(6)"[221] AS THE NAME AND EDIT LATER [221]"
339 PRINTSPC(6)BL$(2)
340 PRINT"CHANGE "LEFT$(TN$(I),2)" TO ";:INPUT"[157][157][157]";QW$
341 IFQW$=LEFT$(TN$(I),2)THENSI=SI+1
342 IFQW$=""THEN380
345 IFLEN(QW$)>2THENGOSUB780:GOTO320
350 INPUT"NEW DISK NAME";QE$
352 IFQE$=""THENGOSUB940:GOTO320
353 IFLEN(QE$)>16THEN960
355 TN$(I)=QW$+QE$
356 ED=1
357 IFSI>0THENSI=0:GOTO200
358 GOSUB260:PRINT"":GOSUB260:PRINT"[156]":GOSUB260:PRINT"":GOSUB260:GOTO200
368 GOSUB260:PRINT"":GOSUB260:PRINT"[156]":GOSUB260:PRINT"":GOSUB260
370 GOTO200
380 PRINT"[147]YOU DIDN'T ENTER A NEW ID !!!"
381 PRINT" DO YOU WANT TO TRY AGAIN????"
383 PRINT" Y/N"
385 GETA$:IFA$=""THEN385
386 IFA$<>"Y"THEN1100
387 GOTO320
400 PRINT""SPC(15)"[149][155]**[149]MENU[155]**[152]"
401 PRINTSPC(6)"[213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"
402 PRINTSPC(6)"[221] [221]"
404 PRINTSPC(6)"[221] 1. CREATE A NEW FILE [221]"
406 PRINTSPC(6)"[221] [221]"
408 PRINTSPC(6)"[221] 2. READ FILE/CHECK AN ID[221]"
410 PRINTSPC(6)"[221] [221]"
412 PRINTSPC(6)"[221] 3. ADD A DISK [221]"
414 PRINTSPC(6)"[221] [221]"
416 PRINTSPC(6)"[221] 4. EDIT/DELETE ID/NAME [221]"
418 PRINTSPC(6)"[221] [221]"
420 PRINTSPC(6)"[221] 5. FORMAT AND ADD A DISK[221]"
422 PRINTSPC(6)"[221] [221]"
424 PRINTSPC(6)"[221] 6. END THE PROGRAM [221]"
426 PRINTSPC(6)"[221] [221]"
428 PRINTSPC(6)"[221] 7. HOW DO I USE THIS? [221]"
430 PRINTSPC(6)"[221] [221]"
432 PRINTSPC(6)"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]"
433 PRINTSPC(12)" ":PRINTSPC(12)" "
434 PRINTSPC(12)"CHOOSE A NUMBER"
435 PRINTSPC(12)"[149][163][163][183][183][183][183][184][184][183][183][183][183][163][163][163]"
450 GETX$:IFX$=""THEN450
451 IFX$="6"THEN1000
452 IFX$="7"THEN1200
453 IFX$<"1"ORX$>"7"THEN450
454 GOTO80
456 GOTO450
500 INPUT#15,EN,EM$,ET,ES
510 IFEN=62THENPRINT" THAT FILE DOESN'T EXIST,TRY AGAIN":FORA=1TO2000:NEXT:GOTO1100
512 IFEN>0THENPRINTEN,EM$,ET,ES:STOP
520 RETURN
550 PRINTSPC(7)"[155]THAT ID HAS NOT BEEN USED!!"
553 FORZ=1TO750:NEXT
554 IFY$="C"THEN816
555 IFX$="3"THENRETURN
600 PRINT"[147][155]THERE ARE "N" DISKS IN THIS FILE"
602 PRINT"DO YOU WISH TO:"
605 PRINT""SPC(14)"[149]V[146][155]IEW IT?"
607 PRINT""SPC(16)"OR "
609 PRINT""SPC(14)"[149]C[146][155]HECK IT?"
614 PRINTSPC(16)"(V/C)
618 [161]Y$:[139]Y$[178]""[167]618
619 [139]Y$[178]"V"[167]699
620 [139]Y$[178]"C"[167]790
621 [137]618
699 B[178]0
700 [153]"LOAD"
701 [153][166]14)"**SYS"DF$"**":[153]"LIST CONTAINS THE FOLLOWINGSYS"N"LISTDISKS:
702 PRINT"[154]ID NAME"TAB(20)"ID NAME"
703 PRINT"[150][183][183] [183][183][183][183]"TAB(20)"[183][183] [183][183][183][183]":IFB=33THENRETURN
705 FORI=1TON
707 B=B+1:IFB=33THENGOSUB730
708 IFB=17THENPRINT"":GOSUB750
709 IFB>17THENGOSUB750
710 PC$(1)="[151]":PC$(2)="[152]":PC$(3)=""
711 C=1:D=2
713 IFMID$(TN$(I),3)="DELETED"THENC=3:D=3
714 IFB<17THENPRINTPC$(C)LEFT$(TN$(I),2)" "PC$(D)MID$(TN$(I),3)
715 NEXTI
716 PRINT"[151][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
717 PRINTSPC(7)"LIST COMPLETE, HIT <RETURN>"
719 GETE$:IFE$=""THEN719
720 IFE$=CHR$(13)THEN725
721 GOTO719
722 IFED=1THEN1100
725 IFX$="4"THEN300
726 IFX$<>"4"THEN1100
730 PRINT""SPC(12)"HIT RETURN"
731 PRINT"[158][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"
733 GETS$:IFS$=""THEN733
735 IFS$=CHR$(13)THENGOSUB700:B=1:RETURN
737 GOTO733
750 IFMID$(TN$(I),3)="DELETED"THENC=3:D=3
751 PRINTSPC(19)"[158][182]"PC$(C)LEFT$(TN$(I),2)" "PC$(D)MID$(TN$(I),3)
756 RETURN
757 IFE$=CHR$(13)THENB=0:GOTO700
758 GOTO751
760 FORK=1TON
763 IFLEFT$(TN$(K),2)=KD$THENFD$=TN$(K):GOTO832
765 NEXT
767 GOTO550
780 PRINT"[147]"SPC(13)" FLUBBED!!!![146]":FORA=1TO800:NEXT:GOTO950
790 IFX$="1"THENW$="CREATING FILE"
793 IFX$="5"THENW$="FORMAT A DISK"
795 IFX$="3"THENW$="ADDING A DISK"
796 IFY$="C"THENW$="CHECKING DISK"
800 PRINT"[147]"SPC(12)"[158][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]
801 [153][166]12)"(null) "W$" (null)"
802 [153][166]12)"MID$TANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN(null)"
803 [153]""[166]12)DF$" FILE"
804 [153][166]12)[200](BL$(3),[195](DF$)[170]7)
805 KD$[178]"":[133]"OPENDISK ID: ";KD$
807 [139][195](KD$)[179][177]2[167][141]780:[137]790
808 [139]Y$[178]"C"[167]760
809 [141]853
810 DN$(N)[178]"":[133]"OPENDISK NAME: ";DN$(N)
811 [139][195](DN$(N))[177]16[167]960
812 [139]DN$(N)[178]""[167][141]940:[137]790
813 TN$(N)[178]ID$(N)[170]DN$(N)
815 [139]X$[178]"5"[167]ZA[178]0:[137]862
816 [139]Y$[178]"C"[167][153]"CHECK ANOTHER?":[137]820
819 [153]"ENTER ANOTHER?"
820 [161]R$:[139]R$[178]""[167]820
821 [139]R$[178]"Y"[167]790
822 [139]R$[178]"N"[175]Y$[178]"C"[167]1100
823 [139]R$[178]"N"[167][141]260:[153]"":[141]260:[153]"":[141]260:[153]"":[141]260
824 [137]200
827 [137]820
831 [142]
832 [153]"LOADLISTTHAT ID, VERIFY"KD$"WAITLIST , HAS BEEN USED"
833 [153]"FOR A DISK NAMED:"
835 [153][163]11)"VERIFY"[202](FD$,3)
836 [139]Y$[178]"C"[167][137]816
842 [153]"LISTDO YOU WANT TO USE IT ANYWAY?"
843 [153]"YWAITLISTES, USE IT.
844 PRINT"N[146][155]O, ENTER ANOTHER ID":PRINT"Q[146][155]UIT TO MENU"
845 GETY$:IFY$=""THEN845
846 IFY$="Y"THENZA=1:RETURN
847 IFY$="N"THENKD$="":UD=0:GOTO790
848 IFY$="Q"THENUD=0:GOTO1100
849 GOTO845
853 FORK=1TON
854 IFLEFT$(TN$(K),2)=KD$THENFD$=TN$(K):UD=1
855 NEXT
856 IFUD=1THENGOSUB832
858 N=N+1:IFN=200THENGOSUB260:PRINT"[159]":GOSUB260:PRINT"":GOSUB260:PRINT"[158]":GOSUB
859 ID$(N)=KD$
860 RETURN
862 PRINT"[147][158]"SPC(6)BL$(1)
864 PRINTSPC(6)"[158][221] [221]"
865 PRINTSPC(6)"[145][158][221] "LEFT$(TN$(I),2)" "MID$(TN$(I),3)
866 PRINTSPC(6)BL$(2)
867 PRINT""SPC(10)"[154]FORMAT THIS DISK??"
871 GETY$:IFY$=""THEN871
872 IFY$="N"THEN1100
875 IFY$<>"Y"THEN871
878 PRINT"[147]WARNING!!!! [158] WARNING!!!! WARNING!!!!"
879 PRINT""
880 PRINT"[158]WARNING!!!! WARNING!!!! [158]WARNING!!!!"
881 PRINT"[155]YOU ARE ABOUT TO FORMAT THIS DISK!"
882 PRINT""LEFT$(TN$(N),2)" "MID$(TN$(N),3)
883 PRINT"[155]DO YOU HAVE THE RIGHT DISK IN THE DRIVE?"
884 PRINTSPC(15)"[Y/N]"
885 GETY$:IFY$=""THEN885
886 IFY$="N"THEN890
887 IFY$="Y"THEN892
888 GOTO885
890 PRINT"[158] PUT IT IN THEN!!!"
891 FORA=1TO1500:NEXT:GOTO862
892 PRINT"[149]FORMATTING....":PRINTSPC(15)"[151]"LEFT$(TN$(N),2)"--"MID$(TN$(N),3)
893 ID$=LEFT$(TN$(N),2):DN$=MID$(TN$(N),3)
894 OPEN2,8,15:PRINT#2,"N0:"+DN$+","+ID$:CLOSE2
895 GOSUB500
896 PRINT"[147] PUT FILE DISK IN DRIVE AND HIT RETURN"
897 GETE$:IFE$=""THEN897
898 IFE$=CHR$(13)THENGOSUB260:PRINT"":GOSUB260:PRINT"":GOSUB260:PRINT"":GOSUB260:GOTO200
899 GOTO897
900 PRINT"[147]":POKE53281,15:POKE53280,0:POKE646,0
910 PRINT""SPC(10)"THIS FILE IS FULL!!!!"
915 PRINT""SPC(11)"YOU NEED TO START"
916 PRINT""SPC(14)"ANOTHER ONE !!"
917 PRINT""SPC(12)"HIT 1[146] AT THE MENU"
920 FORA=1TO5000:NEXT
922 POKE53281,0:POKE646,15
925 GOTO1100
940 PRINT"[147]"SPC(10)"C'MON..YOU NEED A NAME !!!"
941 FORA=1TO2000:NEXT:RETURN
950 PRINT"[158]"SPC(10)"NEED 2 CHARACTERS !!!"
952 FORA=1TO2000:NEXT:RETURN
960 PRINT"[147][158]LIMIT OF 16 CHARACTERS !!!"
962 FORA=1TO2000:NEXT
963 ID$(N)="":DN$(N)="":N=N-1
964 GOTO790
965 PRINT"[147][158]LIMIT OF 16 CHARACTERS !!!"
966 FORA=1TO2000:NEXT
967 GOTO80
970 PRINT"[149]"ID$(I),DN$(I)
972 PRINT"IS THIS THE DISK"
973 GETY$:IFY$=""THEN973
974 IFY$="N"THEN700
975 ID$(F)="":DN$(F)=""
976 FORI=1TO(N-1)
977 ID$(N)=ID$(I):DN$(N)=DN$(I)
978 NEXT
984 GOTO200
1000 PRINT"[147][151][176][192][192][192][192][192][192][192][192][174]"SPC(15)"[176][192][192][192][192][192][192][192][192][174]"
1002 PRINT"[221][213][192][192][192][192][192][192][201][221]"SPC(15)"[221][213][192][192][192][192][192][192][201][221]"
1003 PRINT"[221][202][192][192][192][192][192][192][203][221]"SPC(15)"[221][202][192][192][192][192][192][192][203][221]"
1004 PRINT"[221] [213][201] [221]"SPC(15)"[221] [213][201] [221]"
1005 PRINT"[221] [202][203] [221]"SPC(15)"[221] [202][203] [221]"
1007 PRINT"[221] [182][161] [221]"SPC(15)"[221] [182][161] [221]"
1009 PRINT"[221] [182][161] [221]"SPC(15)"[221] [182][161] [221]"
1015 PRINT"[173][192][192][192][192][192][192][192][192][189]"SPC(15)"[173][192][192][192][192][192][192][192][192][189]"
1020 PRINT"[151][176][192][192][192][192][192][192][192][192][174]"SPC(15)"[176][192][192][192][192][192][192][192][192][174]"
1022 PRINT"[221][213][192][192][192][192][192][192][201][221]"SPC(15)"[221][213][192][192][192][192][192][192][201][221]"
1023 PRINT"[221][202][192][192][192][192][192][192][203][221]"SPC(15)"[221][202][192][192][192][192][192][192][203][221]"
1024 PRINT"[221] [213][201] [221]"SPC(15)"[221] [213][201] [221]"
1025 PRINT"[221] [202][203] [221]"SPC(15)"[221] [202][203] [221]"
1027 PRINT"[221] [182][161] [221]"SPC(15)"[221] [182][161] [221]"
1029 PRINT"[221] [182][161] [221]"SPC(15)"[221] [182][161] [221]"
1035 PRINT"[173][192][192][192][192][192][192][192][192][189]"SPC(15)"[173][192][192][192][192][192][192][192][192][189]"
1045 PRINT"[149]"
1050 PRINTSPC(12)"[176][195][201] [195][178][195] [213][195][201] [178] [213]"
1051 PRINTSPC(12)"[221] [221] [221] [202][195][201] [171][178][203]"
1052 PRINTSPC(12)"[173][195][203] [195][177][195] [202][195][203] [177][173][195]"
1054 PRINT""SPC(12)" [213][195][201]"
1056 PRINTSPC(12)" [192][192] [221] [221] [192][192] "
1058 PRINTSPC(12)" [202][195][203]"
1060 PRINT""SPC(12)"[149][176][195][201] [213][195][201] [213][178][201] [213][195][201]"
1062 PRINTSPC(12)"[171][178][203] [171][195][179] [221][221][221] [171][195][179]"
1064 PRINTSPC(12)"[177][202][189] [177] [177] [177] [177] [177] [177]"
1066 PRINTSPC(18)"BY"
1067 PRINTSPC(14)"[152]DON SEARLES"
1068 PRINTSPC(14)"[149] JULY 1992"
1070 FORA=1TO3000:NEXT
1075 IFX$="6"THENCLOSE15:PRINT"[147]":END
1080 GOTO400
1100 Y$="":PRINTCHR$(142)
1101 PRINT"[147][149] [205] [206]"
1102 PRINT" [205] [206]"
1104 PRINT" [205] [206]"
1106 PRINT" [205] [206]"
1108 PRINT" [205] [206]"
1110 PRINT" [205] [206]"
1112 PRINT" [205] [206]"
1130 PRINT" [206] [205]"
1132 PRINT" [206] [205]"
1134 PRINT" [206] [205]"
1136 PRINT" [206] [205]"
1138 PRINT" [206] [155]**[149] [155]**[149] [205]"
1140 PRINT" [206] [163][163][163][163][183][183][183][183][184][184][184][183][183][183][183][163][163][163][163] [205]"
1150 GOTO400
1200 PRINTCHR$(14)
1201 PRINT"[147][149]**************[158][196][201][211][203][192][207][192][210][193][205][193][149]***************[155]"
1202 PRINT"[145] [149] [163][163][163][163][183][183][183][163][163][163][163][155]"
1205 PRINT"[212]HIS IS A SMALL PROGRAM [201] DEVISED TO CHECK";
1210 PRINT" IF [201] HAD USED A DISK [201][196] BEFORE [201] FORMATED IT.
1215 [153]"(null)OU MUST FIRST CREATE A FILE THEN ADDTHE RIGHT$STR$S TO IT. (null)HE FILES ";
1220 [153]"CAN BE WHAT AREON THEM, LIKE GAMES, UTILITIES, ETC. (null)HIS ALLOWS THE ";
1225 [153]"USE OF THE SAME RIGHT$STR$ FOR DIFFERENT TYPES OF DISKS.(01 CAN BE USEDFOR A";
1230 [153]" GAME AND UTILITY DISK.)"
1235 [153]"VALACH FILE YOU CREATE CAN HOLD UP TO 200 DISKS. MID$UST CREATE AS MANY";
1240 [153]" FILES":[153]"AS YOU NEED.
1245 PRINT"[212]HE FILES CAN BE EDITED AND ADDED TO. [215]HEN FORMATTING";
1247 PRINT" NEW DISKS, THE FILE IS UPDATED."
1270 PRINT"[149][192][192][192][192][192][192][192][192][192][192][192][192][192][192][152][200][201][212][160][193][160][203][197][217][149][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
1271 PRINT" [149] [163][163][163][183][183][183][163][163][163][155]"
1275 GETY$:IFY$=""THEN1275
1280 GOTO1300
1300 PRINT"[147][149]**************[158][196][201][211][203][192][207][192][210][193][205][193][149]***************[155]"
1301 PRINT"[145] [149] [163][163][163][163][183][183][183][163][163][163][163][155]"
1305 PRINT"[215]HEN YOU WANT TO DELETE A DISK, CHANGE THE NAME TO '[196][197][204][197][212][197][196][155]'";
1307 PRINT" THEN EDIT THAT ENTRY WHEN ADDING A NEW DISK."
1310 PRINT"[204]ET ME KNOW IF YOU LIKE IT!!"
1320 PRINT"[149][192][192][192][192][192][192][192][192][192][192][192][192][192][192][152][200][201][212][160][193][160][203][197][217][149][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
1322 PRINT" [149] [163][163][163][183][183][183][163][163][163][155]"
1323 GETY$:IFY$=""THEN1323
1325 GOTO1100