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 RF$ = D$ +"READ" +N$ +",R":OF$ = D$ +"OPEN" +N$ +",L":CL$ = D$ +"CLOSE": 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",D"D1: DIM BB(RC),A$(NC),S$(RC),H$(NC),CL%(NC),WC$(RC),WT$(RC): FOR X = 1 TO NC:B1 = CL(X -1): PRINT D$"READ"N$",R"0",B"B1: CALL 783:H$(X) = MID$ (TE$,1): NEXT : PRINT D$"CLOSE": FOR X = 1 TO NC:CL%(X) = CL(X) -CL(X -1) -1: NEXT : GOSUB 40
220 PRINT CHR$(7);: GOTO 2000
230 PRINT D$"PR#"F8: IF CT$ < >"" THEN PRINT CT$
231 RETURN
240 PRINT D$"PR#"MO: RETURN
250 PRINT : PRINT OF$LL",D"D1: FOR I = 1 TO X2:B1 = CL(C -1): PRINT RF$BB(I)",B"B1: INPUT S$(I): NEXT : PRINT CL$: RETURN
270 PRINT OF$LL",D"D1: FOR I = 1 TO X2:B1 = CL(W1 -1): PRINT RF$I",B"B1: INPUT WC$(I): NEXT : PRINT CL$: RETURN
280 PRINT OF$LL",D"D1: FOR I = 1 TO X2:B1 = CL(W1 -1): PRINT RF$BB(I)",B"B1: INPUT WC$(I): NEXT : PRINT CL$: RETURN
290 PRINT OF$LL",D"D1: FOR I = 1 TO X2:B1 = CL(C -1): PRINT RF$I",B"B1: INPUT S$(I): NEXT : PRINT CL$: RETURN
310 PRINT OF$LL",D"D1: FOR I = 1 TO X1:B1 = CL(DT -1): PRINT RF$I",B"B1: CALL 783:S$(I) = MID$ (TE$,1): NEXT : PRINT CL$: RETURN
330 PRINT OF$LL",D"D1: FOR I = 1 TO X1:B1 = CL(DT -1): PRINT RF$BB(I)",B"B1: CALL 783:S$(I) = MID$ (TE$,1): NEXT : PRINT CL$: RETURN
350 ONERR GOTO 365
360 PRINT OF$LL",D"D1: FOR I = 1 TO RC:B1 = CL(WC -1): PRINT RF$I",B"B1: CALL 783:S$(I) = MID$ (TE$,1): NEXT : PRINT CL$: POKE 216,0: RETURN
365 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 3027
2150 HTAB 16: INPUT "WHICH: ";Z3$: IF Z3$ <"1" OR Z3$ >"4" THEN PRINT CHR$(7);: GOSUB 370: GOTO 2150
2152 IF Z3$ = "1" THEN W$ = "SUM"
2153 IF Z3$ = "2" THEN W$ = "SUBTRACT"
2154 IF Z3$ = "3" THEN W$ = "MULTIPLY"
2155 IF Z3$ = "4" THEN W$ = "DIVIDE"
2160 HOME : GOSUB 380: PRINT : INVERSE : PRINT W$;: NORMAL : PRINT " FIELD ";: INVERSE : PRINT C;: NORMAL : PRINT " BY FIELD:";: INPUT "";W1: IF W1 <1 OR W1 >NC THEN PRINT CHR$(7);: GOSUB 370: GOTO 2160
2172 IF Z2$ = "N" THEN 2180
2174 PRINT
2175 INPUT "STORE WEIGHTED RESULT IN A FIELD (Y/N)";Z5$: IF Z5$ < >"Y" AND Z5$ < >"N" THEN PRINT CHR$(7);: GOSUB 370: GOTO 2175
2177 IF Z5$ = "Y" THEN HOME : GOSUB 380: PRINT : PRINT "STORE IN WHICH FIELD (1-"NC") ";: INPUT Z5%: IF Z5% <1 OR Z5% >NC THEN PRINT CHR$(7);: GOSUB 370: GOTO 2177
2179 HOME : PRINT
2180 INPUT "'ENTRY' SEARCH OPTION (Y/N) ? ";W4$: IF W4$ < >"Y" AND W4$ < >"N" THEN PRINT CHR$(7);: GOSUB 370: GOTO 2180
2190 PRINT : IF W4$ = "N" THEN PRINT : GOTO 2280
2200 INPUT "MATCH EXACTLY (Y/N) ? ";W9$: IF W9$ < >"Y" AND W9$ < >"N" THEN PRINT CHR$(7);: GOSUB 370: GOTO 2200
2210 IF A1$ = "N" THEN 2280
2220 PRINT : HTAB 11: PRINT "* COMPUTE ITEMS *": PRINT : HTAB 9: PRINT "1- EQUAL TO 'ENTRY'": HTAB 9: PRINT "2- NOT EQUAL TO 'ENTRY'": PRINT
2230 HTAB 16: INPUT "WHICH: ";Z4$: IF Z4$ <"1" OR Z4$ >"2" THEN PRINT CHR$(7);: GOSUB 370: GOTO 2230
2240 HOME : GOSUB 380: PRINT : INPUT "'ENTRY' FOUND IN WHAT FIELD # ?";WC: IF WC <1 OR WC >NC THEN PRINT CHR$(7);: GOSUB 370: GOTO 2240
2260 PRINT : PRINT "ENTER 'ENTRY': ":L = CL%(WC):V = 1:HT = 1: GOSUB 800:WO$ = B$:PA = LEN(WO$): IF PA = 0 THEN PA = 1
2270 PRINT
2280 INPUT "USE DATE OPTION (Y/N) ? ";Z$: IF Z$ < >"Y" AND Z$ < >"N" THEN PRINT CHR$(7);: GOSUB 370: GOTO 2280
2290 PRINT : IF Z$ = "N" THEN 2350
2300 PRINT
2310 PRINT "'FROM' DATE (MM/DD/YY) ? ";:L = 8:HT = 27:V = 0: GOSUB 800:Y$ = B$: IF Y$ = "" THEN PRINT CHR$(7);: GOSUB 370: GOTO 2310
2320 PRINT
2330 PRINT "'TO' DATE (MM/DD/YY) ? ";:L = 8:HT = 27:V = 0: GOSUB 800:X$ = B$: IF X$ = "" THEN PRINT CHR$(7);: GOSUB 370: GOTO 2330
2340 HOME : GOSUB 380: PRINT : INPUT "DATES IN WHAT FIELD # ? ";DT: IF DT <1 OR DT >NC THEN PRINT CHR$(7): GOTO 2340
2350 HOME : VTAB 12: HTAB 15: FLASH : PRINT "< WORKING >": NORMAL : PRINT : PRINT : IF W4$ = "Y" THEN 2390
2370 IF W4$ = "N" AND Z$ = "Y" THEN X1 = RC: GOTO 2560
2380 X2 = RC: GOTO 2650
2390 GOSUB 350: FOR X = 1 TO RC: IF Z4$ = "1" AND W9$ = "N" THEN 2460
2420 IF Z4$ = "2" AND W9$ = "Y" THEN 2480
2430 IF Z4$ = "2" AND W9$ = "N" THEN 2500
2440 IF S$(X) = WO$ THEN 2520
2450 GOTO 2530
2460 IF LEFT$(S$(X),PA) = WO$ THEN 2520
2470 GOTO 2530
2480 IF S$(X) < >WO$ THEN 2520
2490 GOTO 2530
2500 IF LEFT$(S$(X),PA) < >WO$ THEN 2520
2510 GOTO 2530
2520 X1 = X1 +1:BB(X1) = X
2530 NEXT : IF X1 <1 THEN PRINT "NO > WORD/NUMBER < MATCHES FOUND": GOTO 3020
2535 IF Z8$ = "3" AND Z$ = "N" THEN HOME : GOTO 2766
2540 IF Z$ = "N" THEN X2 = X1: GOTO 2650
2550 IF W4$ = "Y" THEN GOSUB 400: GOSUB 330: GOTO 2570
2560 GOSUB 400: GOSUB 310
2570 FOR X = 1 TO X1: IF RIGHT$(S$(X),2) + LEFT$(S$(X),2) + MID$ (S$(X),4,2) > = RIGHT$(Y$,2) + LEFT$(Y$,2) + MID$ (Y$,4,2) THEN 2600
2590 GOTO 2640
2600 IF RIGHT$(S$(X),2) + LEFT$(S$(X),2) + MID$ (S$(X),4,2) < = RIGHT$(X$,2) + LEFT$(X$,2) + MID$ (X$,4,2) THEN 2620
2610 GOTO 2640
2620 IF W4$ = "Y" AND Z$ = "Y" THEN X2 = X2 +1:BB(X2) = BB(X): GOTO 2640
2630 X2 = X2 +1:BB(X2) = X
2640 NEXT
2650 IF X2 <1 THEN PRINT : PRINT "NO > DATE < MATCHES FOUND": GOTO 3020
2655 IF Z8$ = "3" THEN HOME : GOTO 2766
2660 IF Z$ = "Y" OR W4$ = "Y" THEN GOSUB 400: GOSUB 250: IF Z2$ = "Y" THEN GOSUB 280
2670 IF Z$ = "Y" OR W4$ = "Y" THEN GOTO 2690
2680 GOSUB 290: IF Z2$ = "Y" THEN GOSUB 270
2685 FOR X = 1 TO RC:BB(X) = X: NEXT
2690 FOR AD = 1 TO X2:AB = AD: IF S$(AB) = "" THEN S$(AB) = "00": GOTO 2760
2715 IF ASC( LEFT$(S$(AB),1)) = 36 THEN 3400
2720 IF Z2$ = "Y" THEN 3030
2740 SU = SU + VAL(S$(AB)):SN = SN +1
2760 NEXT : HOME : VTAB 3: IF P$ = "Y" THEN GOSUB 230
2765 SU = INT(SU *10 ^N +.5)/ INT(10 ^N +.5)
2766 IF W4$ = "Y" THEN PRINT "'ENTRY' ENTERED: <"WO$">": PRINT
2767 IF Z$ = "Y" THEN PRINT "DATES ENTERED: FROM: <"Y$">": HTAB 16: PRINT "TO: <"X$">": PRINT
2768 IF Z8$ = "3" AND Z$ = "N" AND W4$ = "Y" THEN 3410
2769 IF Z8$ = "3" THEN 3420
2780 IF Z2$ = "Y" AND Z3$ = "1" THEN PRINT : PRINT "-SUM- WEIGHTED,USING <"H$(W1)"> FIELD"
2785 IF Z2$ = "Y" AND Z3$ = "2" THEN PRINT : PRINT "-SUBRTACT- WEIGHTED,USING <"H$(W1)"> FIELD"
2790 IF Z2$ = "Y" AND Z3$ = "3" THEN PRINT : PRINT "-MULTIPLY- WEIGHTED,USING <"H$(W1)"> FIELD"
2795 IF Z2$ = "Y" AND Z3$ = "4" THEN PRINT : PRINT "-DIVIDE-WEIGHTED,USING <"H$(W1)"> FIELD"
2800 IF S$(AD -1) = "" THEN 2890
2880 IF Z8$ = "1" THEN GOSUB 2950: GOTO 3018
2890 IF Z8$ = "2" THEN GOSUB 2980: GOTO 3018
2900 IF Z8$ = "3" THEN GOSUB 2970: GOTO 3018
2910 IF Z8$ = "4" THEN GOSUB 2950: GOSUB 2980: GOTO 3018
2920 IF Z8$ = "5" THEN GOSUB 2950: GOSUB 2970: GOTO 3018
2930 IF Z8$ = "6" THEN GOSUB 2980: GOSUB 2970: GOTO 3018
2940 IF Z8$ = "7" THEN GOSUB 2950: GOSUB 2980: GOSUB 2970: GOTO 3018
2950 PRINT : PRINT H$(C)" = ";SU: RETURN
2970 PRINT : PRINT H$(C)" (COUNT)= "SN: RETURN
2980 IF SN >0 THEN SA = SU/SN: PRINT : PRINT H$(C)" (AVE.)= "SA: RETURN
2990 PRINT : PRINT H$(C)" (AVE.)= 0": RETURN
3018 IF F4 >0 THEN PRINT : PRINT F4" 'NULLS' FOUND IN FIELD # "W1
3019 GOSUB 240: IF Z5$ = "Y" THEN FLASH : VTAB 22: HTAB 4: PRINT "WRITING WEIGHTED ANSWERS TO FILE": NORMAL : GOSUB 410: GOTO 3025
3020 IF Z5$ < >"Y" THEN VTAB 23
3025 CV = PEEK(37): POKE 37,(CV -2): CALL -958: PRINT CHR$(7);: INVERSE : PRINT "R)ESTART, 'RTN' TO MENU ";: GET Z$: NORMAL
3026 IF Z$ = "R" THEN 2000
3027 IF D1 = 1 THEN HOME : PRINT CHR$(7): VTAB 12: HTAB 4: PRINT "LOAD ";: INVERSE : PRINT "REPORT DISK";: NORMAL : PRINT " THEN PRESS 'RTN'";: GET Z$
3028 HOME : VTAB 12: HTAB 11: PRINT ">> LOADING MENU <<"
3029 PRINT D$"RUN MENU,D1"
3030 IF WC$(AB) = "" THEN S$(AB) = "":WT = VAL(S$(AB)):F4 = F4 +1: GOTO 3380