80 PRINT TAB( 3)"* UNIV. DATA MANAGEMENT SYSTEM 4.0 *": PRINT TAB( 6)"COPYRIGHT 1980 BY W.L.PASSAUER": RETURN
100 D1 = PEEK(864):P$ = CHR$( PEEK(865)):P1$ = CHR$( PEEK(866)):S$ = STR$( PEEK(867)):I = PEEK(868): FOR X = 869 TO I +868:N$ = N$ + CHR$( PEEK(X)): NEXT
120 WF$ = D$ +"WRITE" +N$ +",R":RF$ = D$ +"READ" +N$ +",R":OF$ = D$ +"OPEN" +N$ +",L":O$ = D$ +"OPEN" +N$ +".V":CL$ = D$ +"CLOSE":W$ = D$ +"WRITE" +N$ +".V": IF D1 = 1 THEN HOME : PRINT CHR$(7): VTAB 12: HTAB 4: PRINT "LOAD ";: INVERSE : PRINT "DATA DISK";: NORMAL : PRINT " THEN PRESS 'RTN'";: GET Z$
140 PRINT : PRINT D$"OPEN"N$".V,D"D1: PRINT D$"READ"N$".V": INPUT NC,RC,RR: DIM CL(NC): FOR X = 1 TO NC: INPUT CL(X): NEXT
180 LL = (CL(NC) +NC): PRINT D$"OPEN"N$",L"LL: DIM BB(RR),A$(RR),S$(RR),S1$(50,NC),H$(NC),CL%(NC),EN$(RR): FOR X = 1 TO NC:B1 = CL(X -1): PRINT D$"READ"N$",R"0",B"B1: CALL 783:H$(X) = MID$ (A$,1): NEXT : PRINT D$"CLOSE": FOR X = 1 TO NC:CL%(X) = CL(X) -CL(X -1) -1: NEXT : IF P1$ = "Y" THEN GOSUB 40
220 PRINT CHR$(7);
230 IF S$ = "3" THEN 3000
240 IF S$ = "4" THEN 4000
250 IF S$ = "8" THEN 5000
260 IF S$ = "9" THEN 6000
265 IF S$ = "21" THEN 7000
267 IF S$ = "11" THEN 1300
270 PRINT D$"PR#"F8: IF CT$ < >"" THEN PRINT CT$
271 RETURN
280 PRINT D$"PR#"MO: RETURN
290 ONERR GOTO 320
295 PRINT : PRINT OF$LL",D"D1: FOR I = 1 TO RC:B1 = CL(C -1): PRINT RF$I",B"B1: CALL 783:S$(I) = MID$ (A$,1): NEXT : PRINT CL$: POKE 216,0: RETURN
310 ONERR GOTO 325
315 PRINT OF$LL",D"D1: FOR X = 1 TO NC:B1 = CL(X -1): PRINT RF$RS",B"B1: CALL 783:A$(X) = MID$ (A$,1): NEXT : PRINT CL$: POKE 216,0: RETURN
320 POKE 216,0: PRINT CHR$(7): HOME : VTAB 12: PRINT "DISK ERROR-RECORD ";: INVERSE : PRINT I;: NORMAL : PRINT " MAY BE BAD": PRINT "PRESS 'RTN'";: GET Z$: GOTO 1010
325 I = RS: GOTO 320
330 F = 0: IF Z1$ = "2" THEN 395
340 HOME : VTAB 7: HTAB 13: PRINT "SELECTION LIST": PRINT : HTAB 10: PRINT "1-'ENTRY' SEARCH": HTAB 10: PRINT "2-RECORD NUMBER SEARCH": PRINT : HTAB 10: PRINT "3-FINISHED": PRINT : HTAB 14: INPUT "WHICH (1-3)? ";A1$: IF A1$ < >"" THEN IF ASC(A1$) = 17 THEN POP : GOTO 1010
345 IF VAL(A1$) <1 OR VAL(A1$) >3 THEN PRINT CHR$(7);: GOSUB 560: GOTO 340
350 IF A1$ = "3" THEN Z1$ = "": POP : GOTO 1010
360 IF A1$ = "1" THEN 395
370 PRINT : PRINT
380 PRINT "ENTER RECORD NUMBER (0-"RC") ";: INPUT RS: IF RS <(RC +1) THEN GOSUB 310: RETURN
390 PRINT CHR$(7);: GOSUB 560: GOTO 380
395 HOME : GOSUB 570: PRINT
400 INPUT "FOUND IN WHAT FIELD # ";C: IF C <1 OR C >NC THEN PRINT CHR$(7);: GOSUB 560: GOTO 400
1060 PRINT "10-DISK SPACE";: HTAB 22: PRINT "21-DELETE A FORMAT": PRINT "11-INITIALIZE A DISK";: HTAB 22: PRINT "22-SELECT A FILE": PRINT : HTAB 17: PRINT "0-EXIT"
1070 VTAB (22): HTAB 16: INPUT "WHICH: ";S$: IF S$ = "" THEN PRINT CHR$(7): GOSUB 560: GOTO 1070
1090 IF ASC(S$) = 48 THEN PRINT CHR$(7): HOME : VTAB 10: HTAB 7: PRINT "NICE WORKING WITH YOU....": PRINT : PRINT "PLEASE PLACE AN ";: INVERSE : PRINT "<APPLE BOOT>";: NORMAL : PRINT " DISKETTE INTO DRIVE #1 AND PRESS 'RTN'";: GET Z$: PRINT : PRINT D$"PR#6"
1100 IF VAL(S$) <1 OR VAL(S$) >22 THEN PRINT CHR$(7): GOSUB 560: GOTO 1070
1105 ONERR GOTO 1290
1110 S = VAL(S$): IF S = 3 OR S = 4 OR S = 8 OR S = 9 OR S = 21 THEN POKE 216,0: GOTO 1150
1111 IF S = 22 THEN 1113
1112 IF D1 = 2 AND VAL(S$) >11 OR VAL(S$) = 10 THEN PRINT CHR$(7): HOME : VTAB 11: HTAB 2: PRINT "LOAD ";: INVERSE : PRINT "REPORT";: NORMAL : PRINT " PROGRAM DISK INTO DRIVE #1": HTAB 12: PRINT "THEN PRESS 'RTN'";: GET Z$
1113 D7$ = "REPORT": IF S <12 OR S = 22 THEN D7$ = "UTILITY"
1120 IF D1 = 1 THEN HOME : PRINT CHR$(7): VTAB 12: HTAB 8: PRINT "LOAD ";: INVERSE : PRINT D7$;: NORMAL : PRINT " PROGRAM DISK": HTAB 12: PRINT " THEN PRESS 'RTN'";: GET Z$
1150 ON VAL(S$) GOTO 1160,1270,3000,4000,1250,1240,1260,5000,6000,1170,1300,1170,1180,1230,1200,1190,1210,1220,1170,1170,7000,1280
1160 PRINT D$"RUN ED,D1"
1170 PRINT D$"RUN L,D1"
1180 PRINT D$"RUN SH,D1"
1190 PRINT D$"RUN S,D1"
1200 PRINT D$"RUN FT,D1"
1210 PRINT D$"RUN M,D1"
1220 PRINT D$"RUN C,D1"
1230 PRINT D$"RUN LS,D1"
1240 PRINT D$"RUN T,D1"
1250 PRINT D$"RUN R,D1"
1260 PRINT D$"RUN CA,D1"
1270 PRINT D$"RUN U,D1"
1280 PRINT D$"RUN I,D1"
1290 HOME : PRINT CHR$(7): VTAB 10: HTAB 7: INVERSE : PRINT "WRONG DISKETTE IN DRIVE # 1": NORMAL : PRINT : PRINT "PRESS 'RTN'";: GET Z$: GOTO 1110
1300 HOME : PRINT CHR$(7): VTAB 9: FLASH : HTAB 15: PRINT "WARNING!!": HTAB 3: PRINT "YOU ARE ABOUT TO ERASE A DISKETTE!!": NORMAL : PRINT : PRINT "TO INITIALIZE A DISKETTE, PLACE A DISK": PRINT "INTO DRIVE #"D1", PRINT ";: INVERSE : PRINT "INITIALIZE";: NORMAL
1315 PRINT " THEN": PRINT "PRESS 'RTN',OR PRESS 'RTN' ONLY TO": PRINT "ESCAPE:":L = 10: GOSUB 800:Z$ = B$: IF Z$ = "INITIALIZE" THEN PRINT D$"INITI,V0,D"D1: PRINT CHR$(7): GOTO 1010
1320 GOTO 1010
3000 CALL 37896:SE = 0:F = 0: REM
3010 HOME : PRINT TAB( 3)"* INSPECT/CHANGE A RECORD ROUTINE *": GOSUB 580: PRINT
3020 INPUT "PRINT WITH FIELD HEADINGS (Y/N) ";Z1$: IF Z1$ < >"" THEN IF ASC(Z1$) = 17 THEN 1010
3025 IF Z1$ < >"Y" AND Z1$ < >"N" THEN PRINT CHR$(7);: GOSUB 560: GOTO 3020
3030 PRINT
3040 GOSUB 330
3050 HOME : PRINT TAB( 9)"CHANGE SELECTION LIST": PRINT
3060 INVERSE : PRINT "0- * NO MORE CHANGES *";: HTAB 26: PRINT "RECORD #: "RS: NORMAL : PRINT : IF Z1$ = "N" THEN 3100
3080 FOR X = 1 TO NC: INVERSE : PRINT X"-";: NORMAL : HTAB 5: INVERSE : PRINT H$(X);: NORMAL : PRINT " - ";: PRINT A$(X);: IF RS = 0 THEN IF RIGHT$(A$(X),1) = " " THEN PRINT "(J)": GOTO 3088
3085 PRINT
3088 CV = PEEK(37): IF CV <19 THEN 3310
3090 GOTO 3270
3100 FOR X = 1 TO NC: INVERSE : PRINT X"-";: NORMAL : HTAB 5: PRINT A$(X);: IF RS = 0 THEN IF RIGHT$(A$(X),1) = " " THEN PRINT "(J)": GOTO 3108
3105 PRINT
3108 CV = PEEK(37): IF CV <19 THEN 3310
3110 GOTO 3270
3115 PRINT : PRINT "WHICH: (R)ESTART/S)KIP/FIELD 0-"NC") ";: INPUT Z$: HOME : IF Z$ = "R" THEN HOME : GOTO 3060
3120 IF Z$ = "S" AND A1$ = "2" THEN 3040
3121 IF Z$ = "S" THEN HOME :R2 = RS +1: VTAB 12: HTAB 14: PRINT "> SEARCHING <": GOSUB 460: GOTO 3050
3122 CL = VAL(Z$): IF CL >NC OR Z$ = "" THEN PRINT CHR$(7);: GOTO 3050
3123 IF CL >0 THEN F = 1
3125 IF CL = 0 AND F = 1 THEN F = 0: PRINT : GOTO 3220
3270 PRINT : PRINT "PRESS (R)ESTART/(E)ND/'RTN' TO CONT. ";: GET Z$: IF Z$ = "R" THEN HOME : GOTO 3060
3290 IF Z$ = "E" THEN HOME : GOTO 3115
3300 HOME
3310 NEXT : GOTO 3115
4000 CALL 37896:SE = 0
4010 HOME : PRINT TAB( 7)"- DELETE A RECORD ROUTINE -": GOSUB 580: VTAB 8: HTAB 4: PRINT "1- ONE RECORD": HTAB 4: PRINT "2- ALL RECORDS CONTAINING 'ENTRY'": HTAB 4: PRINT "3- FROM/TO DELETE"
4011 HTAB 4: PRINT "4- SELECTED RECORDS"
4012 PRINT : PRINT : HTAB 10: INPUT "DELETE WHICH (1-4): ";Z1$: IF Z1$ < >"" THEN IF ASC(Z1$) = 17 THEN 1010
4013 IF VAL(Z1$) <1 OR VAL(Z1$) >4 THEN PRINT CHR$(7): GOTO 4010
4015 IF Z1$ = "4" THEN 4200
4016 IF Z1$ = "3" THEN 4100
4017 HOME : GOSUB 330
4018 IF Z1$ = "2" THEN 4050
4020 HOME : FOR X = 1 TO NC: INVERSE : PRINT H$(X);: NORMAL : PRINT " - "A$(X): NEXT : PRINT : PRINT : INPUT "D)ELETE/S)KIP RECORD OR A)BORT (D/S/A)";Z$: HOME : IF Z$ < >"D" AND Z$ < >"S" AND Z$ < >"A" THEN PRINT CHR$(7): GOTO 4020
4025 IF A1$ = "2" AND Z$ = "S" THEN 4070
4030 IF Z$ = "S" THEN HOME :R2 = RS +1: VTAB 12: HTAB 14: PRINT "> SEARCHING <": GOSUB 460: GOTO 4020
4040 IF Z$ = "A" THEN 4070
4050 VTAB 12: PRINT TAB( 11)"< DELETING RECORD >": FOR X = 1 TO NC:A$(X) = "@": NEXT : GOSUB 600: IF Z1$ = "2" THEN 494
4060 HOME : VTAB 10: PRINT TAB( 8)"< SORT, TO COMPACT FILE >": PRINT
4070 VTAB 12: HTAB 4: INPUT "DELETE ANOTHER RECORD (Y/N) ? ";Z$: IF Z$ < >"Y" AND Z$ < >"N" THEN PRINT CHR$(7): GOTO 4070
4080 IF Z$ = "Y" THEN 4010
4090 GOTO 1010
4100 VTAB 4: CALL -958: PRINT "DELETE FROM RECORD (1-"RC") ";: INPUT F4: IF F4 >RC THEN PRINT CHR$(7);: GOSUB 560: GOTO 4100
4110 PRINT
4120 PRINT "TO RECORD ("F4"-"RC") ";: INPUT F5: IF F5 <F4 OR F5 >RC THEN PRINT CHR$(7);: GOSUB 560: GOTO 4120
4125 PRINT
4130 PRINT "DELETE FROM RECORD > "F4" <": PRINT : HTAB 10: PRINT "TO RECORD > "F5" < OK (Y/N) ";: INPUT Z$: IF Z$ < >"Y" AND Z$ < >"N" THEN PRINT CHR$(7);: GOSUB 560: GOTO 4130
4140 IF Z$ = "N" THEN 4100
4150 VTAB 13: PRINT TAB( 11)"< DELETING RECORD >": FOR RS = F4 TO F5: FOR X = 1 TO NC:A$(X) = "@": NEXT : VTAB 15: HTAB 19: PRINT RS" ": GOSUB 600: NEXT : PRINT CHR$(7): GOTO 4060
4210 PRINT "DELETE RECORD NUMBER (1-"RC"): ";: INPUT "";BB(X1): IF BB(X1) >RC THEN PRINT CHR$(7);: GOSUB 560: GOTO 4210
4220 IF BB(X1) = 0 THEN X1 = X1 -1: GOTO 4240
4230 PRINT : NEXT
4240 HOME : VTAB 12: PRINT TAB( 11)"< DELETING RECORD >": FOR X2 = 1 TO X1: FOR X = 1 TO NC:A$(X) = "@": NEXT :RS = BB(X2): VTAB 14: HTAB 20: PRINT BB(X2)" ": GOSUB 600: NEXT
4250 TEXT : PRINT CHR$(7): GOTO 4060
5000 REM
5010 HOME : PRINT TAB( 8)"* * FILE INFORMATION * *": GOSUB 580: IF P1$ = "N" THEN 5080
5020 PRINT
5030 INPUT "ON PRINTER (Y/N) ? ";P$: IF P$ < >"" THEN IF ASC(P$) = 17 THEN 1010
5040 IF P$ < >"Y" AND P$ < >"N" THEN PRINT CHR$(7);: GOSUB 560: GOTO 5030
5050 GOSUB 560: HTAB 1: IF P$ = "Y" THEN PRINT : GOSUB 270: GOTO 5070
5060 GOTO 5080
5070 TA = 20 -( LEN(N$)/2): PRINT TAB( TA)N$: PRINT
5080 VTAB 3: PRINT "FLD#";: PRINT TAB( 6)"LENGTH";: PRINT TAB( 13)"NAME": GOSUB 580: PRINT : FOR X = 1 TO NC: PRINT TAB( 2)X;: HTAB 7: PRINT "("CL%(X)")";: HTAB 13: PRINT H$(X);: IF RIGHT$(H$(X),1) = " " THEN PRINT "(J)": GOTO 5085
5083 PRINT
5085 NEXT
5090 PRINT : PRINT "RECORDS MEMORY WILL HOLD = ";RR: PRINT : PRINT "NUMBER OF RECORDS USED = "RC: PRINT : PRINT "NUMBER OF RECORDS UNUSED = "(RR -RC): PRINT : PRINT "IS PRINTER BEING USED ? ";
5120 IF P1$ = "Y" THEN PRINT " YES"
5130 IF P1$ = "N" THEN PRINT " NO"
5140 GOSUB 280: PRINT : PRINT "PRESS 'RTN' TO MENU ";: GET Z$: GOTO 1010
6000 REM
6010 NR = 1: HOME : HTAB 11: PRINT "* DELETE A FILE *": GOSUB 580: POKE 34,2
6020 IF NR = 0 OR N$ = N3$ THEN PRINT CHR$(7): HTAB 8: INVERSE : PRINT "DATA FILES NOT AVAILABLE": NORMAL : PRINT " INSURE <PROGRAM DISKETTE> IS LOADED.": PRINT "PRESS'RETURN' TO RESTART PROGRAM";: GET Z$: PRINT : PRINT D$"RUN I,D1"
6030 ONERR GOTO 6300
6040 PRINT : PRINT D$"OPEN DATA FILES,D"D1: PRINT D$"READ DATA FILES": INPUT NR: FOR J = 1 TO NR: INPUT R$(J): NEXT : PRINT D$"CLOSE": VTAB 3: HTAB 2: INVERSE : PRINT "DELETEING ALL FILES OR FILE IN MEMORY": NORMAL : HTAB 11: INVERSE : PRINT "WILL STOP PROGRAM": NORMAL : PRINT : HTAB 7: PRINT "--DATA FILES AVAILABLE--": PRINT : FOR I = 1 TO NR: PRINT I" "R$(I): NEXT : PRINT : PRINT I" EXIT ROUTINE": PRINT
6110 PRINT "WHICH: (1-"I") ";: INPUT "";Z1$:Z = VAL(Z1$): IF Z <1 OR Z >I THEN PRINT CHR$(7);: GOSUB 560: GOTO 6110
6120 IF Z = I THEN POKE 216,0: TEXT : GOTO 1010
6125 PRINT CHR$(7): PRINT "DELETE FILE <"R$(Z)"> (Y/N) ";: INPUT Z$: IF Z$ < >"Y" THEN TEXT : GOTO 6000
6130 N3$ = R$(Z): HOME : VTAB 12: HTAB 9: PRINT "< DELETING DATA FILE >": PRINT D$"OPEN DATA FILES": PRINT D$"WRITE DATA FILES": IF NR -1 <1 THEN PRINT D$"DELETE DATA FILES":NR = NR -1: GOTO 6190
6160 PRINT NR -1: FOR J = 1 TO NR: IF J < >Z THEN PRINT R$(J)
6170 NEXT : PRINT D$"CLOSE"
6190 PRINT D$"DELETE"N3$: PRINT D$"DELETE"N3$".V": PRINT D$"OPEN"N$".F,D"D1: PRINT D$"READ"N$".F": INPUT NR: FOR J = 1 TO NR: INPUT R$(J): NEXT : PRINT CL$: FOR I = 1 TO NR: PRINT D$"DELETE"R$(I)"-F": NEXT : PRINT D$"DELETE"N3$".F"
6270 ONERR GOTO 6310
6280 PRINT D$"DELETE"N3$".P"
6290 POKE 216,0: PRINT CHR$(7): HOME : GOTO 6020
6300 GOTO 6270
6310 GOTO 6290
7000 REM
7010 HOME : HTAB 12: PRINT "* DELETE A FORMAT *": GOSUB 580: POKE 34,2: ONERR GOTO 7170
7020 PRINT : PRINT D$"OPEN"N$".F,D"D1: PRINT D$"READ"N$".F": INPUT NR: FOR J = 1 TO NR: INPUT R$(J): NEXT : PRINT CL$: HOME : PRINT : HTAB 9: PRINT "-- FORMATS AVAILABLE --": PRINT : FOR I = 1 TO NR: PRINT I" "R$(I): NEXT : PRINT : PRINT I" EXIT ROUTINE": PRINT
7070 PRINT "DELETE WHICH: (1-"I") ";: INPUT Z1$:Z = VAL(Z1$): IF Z <1 OR Z >I THEN PRINT CHR$(7);: GOSUB 560: GOTO 7070
7080 HOME : IF Z = I THEN POKE 216,0: TEXT : GOTO 1010
7090 N3$ = R$(Z): HOME : VTAB 12: HTAB 10: PRINT "< DELETING FORMAT >": PRINT : PRINT D$"OPEN"N$".F": PRINT D$"WRITE"N$".F": IF NR -1 <1 THEN PRINT D$"DELETE"N$".F": GOTO 7150
7120 PRINT NR -1: FOR J = 1 TO NR: IF J < >Z THEN PRINT R$(J)
7130 NEXT : PRINT CL$
7150 PRINT D$"DELETE"N3$"-F": IF NR -1 >0 THEN HOME : POKE 216,0: GOTO 7020
7170 PRINT CHR$(7): HOME : VTAB 12: HTAB 7: PRINT "NO PRINT FORMATS AVAILABLE": HTAB 10: PRINT "PRESS 'RTN' TO MENU. ";: GET Z$: POKE 216,0: TEXT : GOTO 1010