home *** CD-ROM | disk | FTP | other *** search
- 1000 REM ** UNIVERSAL FILING PROGRAM
- 1010 :
- 1020 GOTO1810
- 1030 :
- 1040 REM ** GET FILE DIRECTORY
- 1050 :
- 1060 PRINT"[147]"TAB(12)" FILE DIRECTORY"
- 1070 PRINTTAB(11)"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]":PRINT
- 1080 SYSPEEK(45)+PEEK(46)*256-440:GOSUB1120:RETURN
- 1090 :
- 1100 REM ** READ DISK ERROR CHANNEL
- 1110 :
- 1120 OPEN15,8,15:INPUT#15,A$,B$:CLOSE15
- 1130 IFB$="OK"THENFLAG=1:GOTO1150
- 1140 PRINT" ERROR [146][192]> ";B$:GOSUB1760:FLAG=0
- 1150 PRINT""TAB(12)" PRESS ANY KEY ":IFFLAGTHENGOSUB1710
- 1160 GOSUB1200:RETURN
- 1170 :
- 1180 REM ** WAIT FOR A PRESSED KEY
- 1190 :
- 1200 POKE198,0:SYSGE:Z$=CHR$(PEEK(631)):RETURN
- 1210 :
- 1220 REM ** TITLE FOR RECORD DETAIL
- 1230 :
- 1240 PRINT"[147]"TAB((24-LEN(F$+STR$(RE)))/2)"DETAIL ";F$;" RECORD #";RE
- 1250 PRINTTAB((20-LEN(F$+STR$(RE)))/2):FORI=1TO20+LEN(F$+STR$(RE)):PRINT"[183]";
- 1260 NEXT:PRINT"[145]":RETURN
- 1270 :
- 1280 REM ** PRINT A RECORD ELEMENT
- 1290 :
- 1300 PRINT" "+EN$(EL)TAB(8)" : "+F$(EL,500-NR+RE);:RETURN
- 1310 :
- 1320 REM ** SAVE THE FILE
- 1330 :
- 1340 PRINT""TAB((28-LEN(F$))/2)"SAVING ";F$;" FILE"
- 1350 PRINTTAB((24-LEN(F$))/2):FORI=1TO16+LEN(F$):PRINT"[183]";:NEXT:PRINT
- 1360 OPEN15,8,15
- 1370 OPEN8,8,8,"0:"+F$+",S,W":INPUT#15,A$,B$
- 1380 IFB$="OK"THEN1470
- 1390 CLOSE8:CLOSE15:IFB$="FILE EXISTS"THEN1410
- 1400 GOSUB1140:GOTO2040
- 1410 GOSUB1140:GOSUB1710
- 1420 Z$="":INPUT" REPLACE OLD FILE WITH NEW Y/N [146] Y[157][157][157]";Z$
- 1430 IFZ$="N"THEN2040
- 1440 IFZ$<>"Y"THENGOSUB1760:PRINT"[145][145][145]";:GOTO1420
- 1450 PRINTTAB(5)"RENAMING THE OLD FILE "+CHR$(34)+"BACKUP"+CHR$(34)
- 1460 OPEN15,8,15:PRINT#15,"S0:BACKUP":PRINT#15,"R0:BACKUP="+F$:CLOSE15:GOTO1340
- 1470 PRINT#8,NE;CHR$(13);NR;CHR$(13);
- 1480 FORI=0TONE:PRINT#8,EN$(I);CHR$(13);:NEXT
- 1490 FORRE=501-NRTO500:FOREL=0TONE
- 1500 IFF$(EL,RE)=""THENF$(EL,RE)=" "
- 1510 PRINT#8,F$(EL,RE);CHR$(13);
- 1520 NEXTEL:NEXTRE:CLOSE8:CLOSE15:GOTO2040
- 1530 :
- 1540 REM ** SET UP ERROR ARRAYS
- 1550 :
- 1560 CLR:A$="":DIMF$(0,500),EN$(0):NE=0:NR=0:EN$(0)=" ?? [146]"
- 1570 VA=PEEK(45)+PEEK(46)*256:SO=VA-208:SE=VA-337:GE=VA-7:IN=VA-516:IX=VA-521
- 1580 F$="[159] FILE EMPTY [154][146]":F$(0,0)=F$:GOTO2040
- 1590 :
- 1600 REM ** SORT THE FILE
- 1610 :
- 1620 PRINT"[147]"TAB(15)"SORTING":PRINTTAB(12)" [183][183][183][183][183][183][183][183][183][183][183]"
- 1630 SYSSO:RETURN
- 1640 :
- 1650 REM ** M.L. INPUT ROUTINE
- 1660 :
- 1670 PRINT": ";:A$="":SYSIN:PRINT:RETURN
- 1680 :
- 1690 REM ** BELL SOUND
- 1700 :
- 1710 POKE54296,15:POKE54277,0:POKE54278,247:POKE54276,17:POKE54273,40
- 1720 POKE54272,0:FORT=1TO50:NEXTT:POKE54276,14:RETURN
- 1730 :
- 1740 REM ** BUZZER SOUND
- 1750 :
- 1760 POKE54296,15:POKE54277,45:POKE54278,165:POKE54276,33:POKE54273,6
- 1770 POKE54272,5:FORT=1TO100:NEXTT:POKE54276,14:POKE54273,0:POKE54272,0:RETURN
- 1780 :
- 1790 REM ** LOAD A DISK FILE
- 1800 :
- 1810 CLR:A$="":PRINT"[147]"TAB(11)"MASTER FILE PROGRAM"
- 1820 PRINTTAB(9)"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"
- 1830 PRINT""TAB(5)"ENTER THE NAME OF THE FILE YOU"
- 1840 PRINT""TAB(5)"WANT TO USE. IF YOU WISH TO SEE"
- 1850 PRINT""TAB(5)"THE LIST OF FILES ON THIS DISK,"
- 1860 PRINT""TAB(5)"THEN ENTER THE _ [146] SYMBOL ONLY."
- 1870 VA=PEEK(45)+PEEK(46)*256:SO=VA-208:SE=VA-337:GE=VA-7:IN=VA-516:IX=VA-521
- 1880 GOSUB1710:INPUT" FILE NAME [157][157][157]";F$
- 1890 IFF$="_"THENGOSUB1040:GOTO1810
- 1900 IFF$=""THEN1560
- 1910 PRINT" LOADING "+F$+" [146] FILE"
- 1920 OPEN15,8,15
- 1930 OPEN8,8,8,"0:"+F$+",S,R":INPUT#15,A$,B$
- 1940 IFB$<>"OK"THENCLOSE8:CLOSE15:GOSUB1140:GOTO1810
- 1950 INPUT#8,NE:INPUT#8,NR
- 1960 DIMF$(NE,500),EN$(NE)
- 1970 FORI=0TONE:A$="":SYSIX:EN$(I)=A$:NEXT
- 1980 FORRE=501-NRTO500:FOREL=0TONE
- 1990 A$="":SYSIX:F$(EL,RE)=A$
- 2000 NEXTEL:NEXTRE:CLOSE8:CLOSE15
- 2010 :
- 2020 REM ** MAIN MENU
- 2030 :
- 2040 PRINT"[147]"TAB((30-LEN(F$))/2)F$+" FILE MENU"
- 2050 PRINTTAB((26-LEN(F$))/2):FORI=1TOLEN(F$)+14:PRINT"[183]";:NEXT:PRINT"[145]"
- 2060 PRINT" 1 [146] DISPLAY 10 RECORDS"
- 2070 PRINT" 2 [146] FIND A RECORD"
- 2080 PRINT" 3 [146] ADD A RECORD"
- 2090 PRINT" 4 [146] START OR SAVE A FILE"
- 2100 PRINT" 5 [146] LOAD A DISK FILE"
- 2110 PRINT" 6 [146] PRINT RECORD(S)"
- 2120 PRINT" 7 [146] EXIT PROGRAM"
- 2130 GOSUB1710
- 2140 GOSUB1200:Z=PEEK(631)-48:IFZ<0THENGOSUB1760:GOTO2140
- 2150 ONZGOTO2170,2510,2720,3010,3030,3330,3680
- 2160 GOSUB1760:GOTO2140
- 2170 :
- 2180 REM ** DISPLAY 10 RECORDS
- 2190 :
- 2200 FLAG=0:RE=1:GOSUB2210:GOTO2230
- 2210 PRINT"[147]"TAB((22-LEN(F$))/2)"DISPLAY 10 "+F$+" RECORDS"
- 2220 PRINTTAB((18-LEN(F$))/2):FORI=1TOLEN(F$)+23:PRINT"[183]";:NEXT:PRINT:RETURN
- 2230 PRINT" DISPLAY FROM RECORD # ";RE;:FORI=1TOLEN(STR$(RE))
- 2240 PRINT"[157]";:NEXT:PRINT"[157][157]";:GOSUB1710:INPUTRE:IFRE>NRORRE<1THEN2040
- 2250 GOSUB2210:PRINT:PRINT" RECORD #":PRINT"[183][183][183][183][183][183][183][183][183][183]":PRINT:CT=0
- 2260 PRINT" ";RETAB(7)" [192]> "+F$(0,500-NR+RE)
- 2270 RE=RE+1:IFRE>NRTHENPRINT:PRINT" ^ LAST RECORD ":GOTO2290
- 2280 CT=CT+1:IFCT<10THEN2260
- 2290 GOSUB1710
- 2300 Z$="":INPUT" CONTINUE, DETAIL OR MENU C/D/M [146] C[157][157][157]";Z$
- 2310 IFZ$="C"ANDRE<NR+1THEN2230
- 2320 IFZ$="C"ORZ$="M"THEN2040
- 2330 IFZ$<>"D"THENGOSUB1760:PRINT"[145][145][145]";:GOTO2300
- 2340 GOSUB1710
- 2350 PRINT" RECORD # ";RE-1;:FORI=1TO2+LEN(STR$(RE-1)):PRINT"[157]";:NEXT
- 2360 INPUTRE:IFRE>NRTHENGOSUB1760:PRINT"[145][145]";:GOTO2350
- 2370 IFRE<1THENRE=2:PRINT"[145][145]";:GOSUB1760:GOTO2350
- 2380 GOSUB1220:FOREL=0TONE:GOSUB1300:PRINT:NEXT
- 2390 PRINT" [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][192][192][192][192][192][192][192][192]"
- 2400 IFFLAGANDFLAG<>600THENGOSUB1760:GOTO2420
- 2410 GOSUB1710
- 2420 Z$="M":INPUT" EDIT, DELETE, OR MENU E/D/M [146] M[157][157][157]";Z$
- 2430 IFZ$="M"THENGOSUB1620:GOTO2040
- 2440 IFZ$="D"THENFORI=0TONE:F$(I,500-NR+RE)="":NEXTI:NR=NR-1:GOTO2490
- 2450 IFZ$<>"E"THENGOSUB1760:PRINT"[145]";:GOTO2420
- 2460 GOSUB1220:FOREL=0TONE:GOSUB1300
- 2470 FORI=1TO2+LEN(F$(EL,500-NR+RE)):PRINT"[157]";:NEXTI
- 2480 GOSUB1710:GOSUB1640:F$(EL,500-NR+RE)=A$:NEXTEL:FLAG=0:GOTO2390
- 2490 IFNR<1THEN1560
- 2500 GOSUB1620:GOTO2040
- 2510 :
- 2520 REM ** FIND A RECORD
- 2530 :
- 2540 PRINT"[147]"TAB(5)"SPECIFY THE ELEMENT TO BE FOUND"
- 2550 PRINTTAB(4)"[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]"
- 2560 FORI=0TONE:PRINTTAB(12)"";I+1;"[157] [146] [192]> ";EN$(I):PRINT:NEXTI
- 2570 GOSUB1700:Z$="":PRINTTAB(19):INPUT"1[157][157][157]";Z$:IFZ$=""THEN2040
- 2580 EL=ASC(Z$)-49:IFEL<0OREL>NETHEN2040
- 2590 PRINT"[147]"TAB((24-LEN(EN$(EL)))/2)"FIND A RECORD BY ";EN$(EL)
- 2600 PRINTTAB((20-LEN(EN$(EL)))/2):FORI=1TOLEN(EN$(EL))+21:PRINT"[183]";:NEXT
- 2610 PRINT:PRINT" ";EN$(EL)TAB(9):GOSUB1710:GOSUB1640:POKE91,EL*3
- 2620 SYSSE:RE=PEEK(2029)+PEEK(2030)*256:IFA$=""THEN2040
- 2630 IFRE<501THENRE=RE-500+NR:FLAG=600:GOTO2380
- 2640 PRINT""TAB((30-LEN(A$))/2)A$;" NOT FOUND"
- 2650 PRINTTAB((26-LEN(A$))/2):FORI=1TO14+LEN(A$):PRINT"[183]";:NEXT
- 2660 PRINT:PRINT""TAB((16-LEN(EN$(EL)))/2)"TRY ANOTHER ";EN$(EL);" Y/N [146]";
- 2670 GOSUB1760:Z$=""
- 2680 INPUT" Y[157][157][157]";Z$:IFZ$="Y"THEN2590
- 2690 IFZ$="N"THEN2040
- 2700 PRINT"[145][145][145][145][145][145][145][145][145][145][145]";:GOTO2640
- 2710 :
- 2720 REM ** ADD A RECORD
- 2730 :
- 2740 NR=NR+1:IFNR>500ORNE=0THENNR=NR-1:GOTO2040
- 2750 GOSUB2760:GOTO2780
- 2760 PRINT"[147]"TAB((26-LEN(F$))/2)"ADD A ";F$;" RECORD"
- 2770 PRINTTAB((22-LEN(F$))/2):FORI=1TO17+LEN(F$):PRINT"[183]";:NEXT:PRINT"[145]":RETURN
- 2780 PRINT" ";EN$(0)TAB(9):GOSUB1710:GOSUB1640
- 2790 POKE91,0:SYSSE
- 2800 FLAG=PEEK(2029)+PEEK(2030)*256
- 2810 IFFLAG<>501THENNR=NR-1:RE=FL-500+NR:GOTO2380
- 2820 IFA$=""ANDNR<2THEN1560
- 2830 IFA$=""THENNR=NR-1:GOTO2040
- 2840 F$(0,500-NR)=A$:FOREL=1TONE:PRINT" ";EN$(EL)TAB(9)
- 2850 GOSUB1710:GOSUB1640:F$(EL,500-NR)=A$:NEXT
- 2860 GOSUB1710
- 2870 Z$="":INPUT" LOOK OK Y/N [146] Y[157][157][157]";Z$
- 2880 IFZ$="Y"THENGOSUB1620:GOTO2740
- 2890 IFZ$<>"N"THENGOSUB1760:PRINT"[145][145][145]";:GOTO2870
- 2900 GOSUB1710
- 2910 Z$="":INPUT"[145] DELETE THIS RECORD Y/N [146] N[157][157][157]";Z$
- 2920 IFZ$="Y"THENFOREL=0TONE:F$(EL,500-NR)="":NEXT:NR=NR-1:GOTO2490
- 2930 IFZ$<>"N"THENGOSUB1760:GOTO2910
- 2940 GOSUB2760:FOREL=0TONE:PRINT" ";EN$(EL)TAB(9)": ";F$(EL,500-NR);
- 2950 FORI=1TO2+LEN(F$(EL,500-NR)):PRINT"[157]";:NEXTI:GOSUB1710
- 2960 GOSUB1640:F$(EL,500-NR)=A$:IFF$(0,500-NR)=""THEN2940
- 2970 NEXTEL:GOTO2860
- 2980 :
- 2990 REM ** START A NEW FILE
- 3000 :
- 3010 FLAG=0:IFNRTHEN3040
- 3020 GOTO3090
- 3030 FLAG=1:IFNR<1THEN1810
- 3040 GOSUB1710
- 3050 PRINT"[147] SAVE THE ";F$:PRINT" FILE Y/N [146] Y[157][157][157]";
- 3060 Z$="":INPUTZ$:IFZ$="Y"ANDNE>0THEN1320
- 3070 IFZ$<>"N"THENGOSUB1760:PRINT"[145][145][145][145]";:GOTO3050
- 3080 IFFLAGTHEN1810
- 3090 CLR:A$="":GOSUB3100:GOTO3120
- 3100 PRINT"[147]"TAB(8)"NEW FILE SPECIFICATIONS"
- 3110 PRINTTAB(6)"[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]":RETURN
- 3120 GOSUB1710
- 3130 VA=PEEK(45)+PEEK(46)*256:SO=VA-208:SE=VA-337:GE=VA-7:IN=VA-516:IX=VA-521
- 3140 INPUT" FILE NAME ";F$:IFF$=""THEN1560
- 3150 IFLEN(F$)>16THENGOSUB3100:F$="":GOSUB1760:GOTO3140
- 3160 GOSUB1710
- 3170 INPUT" ELEMENTS PER FILE (1-10) [146] 10[157][157][157][157]";NE
- 3180 IFNE<1ORNE>10THENPRINT"[145][145]";:GOSUB1760:GOTO3170
- 3190 NE=NE-1:DIMF$(NE,500),EN$(NE)
- 3200 PRINT" MAX ELEMENT LENGTH IS 6 CHARACTERS"
- 3210 PRINT" [183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][223][169][183][183][183][183][183][183][183][183][183][183][183][183][183][183]":GOSUB1710
- 3220 PRINT" ELEMENT NAME #";1TAB(19):GOSUB1640:EN$(0)=A$
- 3230 IFLEN(EN$(0))<1ORLEN(EN$(0))>6THENPRINT"[145]";:GOSUB1760:GOTO3220
- 3240 FOREL=1TONE:GOSUB1710
- 3250 PRINT" ELEMENT NAME #";EL+1TAB(19):GOSUB1640:EN$(EL)=A$
- 3260 IFLEN(EN$(EL))<1ORLEN(EN$(EL))>6THENPRINT"[145]";:GOSUB1760:GOTO3250
- 3270 NEXT:GOSUB1710
- 3280 Z$="":INPUT" LOOK OK ? Y/N [146] Y[157][157][157]";Z$
- 3290 IFZ$="Y"THEN2720
- 3300 IFZ$<>"N"THENGOSUB1760:PRINT"[145][145]";:GOTO3280
- 3310 GOTO3090
- 3320 :
- 3330 REM ** PRINT RECORD(S)
- 3340 :
- 3350 LL=500-NR+1:UL=500:IFNR<1THEN2040
- 3360 GOSUB3370:GOTO3390
- 3370 PRINT"[147]"TAB((26-LEN(F$))/2)"PRINT ";F$;" RECORDS"
- 3380 PRINTTAB((22-LEN(F$))/2):FORI=1TO18+LEN(F$):PRINT"[183]";:NEXT:PRINT:RETURN
- 3390 GOSUB1710
- 3400 Z$="":PRINT" PRINT ALL THE RECORDS IN"
- 3410 INPUT" THE FILE Y/N [146] Y[157][157][157]";Z$:IFZ$="Y"THEN3470
- 3420 IFZ$<>"N"THENGOSUB1760:PRINT"[145][145]";:GOTO3400
- 3430 GOSUB3370:RE=0:PRINT" ENTER THE RECORD # YOU WISH":GOSUB1710
- 3440 INPUT" TO PRINT ";RE
- 3450 IFRE<1ORRE>NRTHENPRINT"[145][145]";:GOSUB1760:GOTO3440
- 3460 LL=500-NR+RE:UL=LL
- 3470 PRINT" HOW MANY OF THE FIRST LINES"
- 3480 PRINT" OF EACH RECORD DO YOU WISH":GOSUB1710
- 3490 PE=-1:INPUT" TO SUPRESS 3[157][157][157]";PE
- 3500 IFPE<0ORPE>NETHENPRINT"[145][145]";:GOSUB1760:GOTO3490
- 3510 PRINT" ARE YOU PRINTING ADDRESS":GOSUB1710
- 3520 Z$="":INPUT" LABELS (Y/N) [146] ";Z$
- 3530 IFZ$=""THEN2040
- 3540 IFZ$="Y"THENFLAG=0:GOTO3570
- 3550 IFZ$<>"N"THENPRINT"[145][145]";:GOSUB1760:GOTO3520
- 3560 FLAG=1
- 3570 PRINTTAB(15)"PRINTING":PRINTTAB(12)" [183][183][183][183][183][183][183][183][183][183][183][183]"
- 3580 OPEN4,4
- 3590 CT=0
- 3600 FORRE=LLTOUL:LC=0:FOREL=PETONE
- 3610 IFFLAGTHENPRINT#4,EN$(EL);:FORI=1TO10-LEN(EN$(EL)):PRINT#4," ";:NEXTI
- 3620 IFFLAGANDEL=0THENPRINT#4,CHR$(14);F$(EL,RE);CHR$(15):LC=LC+1:NEXTEL
- 3630 PRINT#4,F$(EL,RE):LC=LC+1:NEXTEL
- 3640 FORI=1TONE+1-LC:PRINT#4:NEXTI
- 3650 IFFLAGTHENCT=CT+NE+2:IFCT+NE+1>60THENCT=0:PRINT#4,CHR$(12)
- 3660 NEXTRE:CLOSE4:GOTO2040
- 3670 :
- 3680 REM ** EXIT THE PROGRAM
- 3690 :
- 3700 PRINT"[147]":POKE53280,5:POKE53281,6:POKE646,3:PRINT CHR$(14)
- 3701 PRINT" [208]LEASE INSERT GEOS BOOT DISKETTE,"
- 3702 PRINT" THEN PRESS '[210][197][212][213][210][206]'"
- 3703 GETC$:IFC$<>CHR$(13)THEN3703
- 3704 PRINT" WORKING... "
- 3705 OPEN15,8,15:PRINT#15,"I":CLOSE15:OPEN1,8,2,"$"
- 3706 FORI=1TO143:GET#1,A$:NEXT
- 3707 GET#1,B$:A$=A$+B$:CLOSE1
- 3708 IFA$="GE"THEN3710
- 3709 PRINT"[145] [201]NCORRECT [196]ISKETTE":GOTO3701
- 3710 LOAD"GEOS",8,1
-