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 :LL = (CL(NC) +NC): PRINT D$"OPEN"N$",L"LL",D"D1: DIM PC(NC +5),A$(NC),S$(RC),BB(RC),H$(NC),CL%(NC),X4(NC)
190 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 5000
230 PRINT D$"PR#"F8: IF F8 = 3 AND NOT D6 THEN PRINT :D6 = 1
231 IF CT$ < >"" THEN PRINT CT$;
232 RETURN
240 PRINT D$"PR#"MO: RETURN
250 IF V$ = "V" OR S < >0 THEN 260
252 GOSUB 230: FOR LF = LN TO LI: IF LF$ = "Y" THEN PRINT CHR$(10): GOTO 257
255 PRINT
257 NEXT : IF F3$ = "Y" THEN PG = PG +1: PRINT TAB( TB)"PAGE-";PG: GOSUB 240: RETURN
260 GOSUB 240: RETURN
290 PRINT OF$LL",D"D1: FOR X = 1 TO NC:B1 = CL(X -1): IF X = 1 AND F7$ = "Y" AND C1 = >CP -1 AND (P$ = "N" OR P$ = "") THEN PRINT
2905 IF S1 -Q = <0 THEN PRINT : GOSUB 240: POP : HOME : PRINT CHR$(7);: VTAB 12: PRINT "NO.TOO LARGE TO JUSTIFY ERROR!": PRINT "PRESS 'RTN'";: GET Z$: GOTO 5670
4030 IF P$ = "Y" THEN HOME : FLASH : PRINT CHR$(7): VTAB 12: HTAB 11: PRINT "TURN ON PRINTER !!": NORMAL : PRINT CHR$(7)
4040 B = 0: GOTO 470
4050 POKE 216,0: IF B = 1 THEN 4370
4055 IF P$ = "Y" THEN HOME : INPUT "PRINT RECORDS HORIZ./VERT. (H/V)? ";V$: IF V$ < >"H" AND V$ < >"V" THEN PRINT CHR$(7);: GOSUB 430: GOTO 4055
4057 IF V$ = "V" THEN 4090
4060 HOME : GOSUB 440: PRINT
4070 INPUT "PRINT FIELD NAMES (Y/N) ? ";A$: IF A$ < >"Y" AND A$ < >"N" OR A$ = "" THEN PRINT CHR$(7);: GOSUB 430: GOTO 4070
4080 IF A$ = "N" OR P$ = "N" THEN 4110
4090 PRINT
4100 INPUT "PRINT FILE TITLE (Y/N) ? ";F5$: IF F5$ < >"Y" AND F5$ < >"N" THEN PRINT CHR$(7);: GOSUB 430: GOTO 4100
4110 PRINT
4120 IF P$ = "N" AND A$ = "Y" THEN INPUT "PRINT RECORDS HORIZ./VERT. (H/V)? ";W3$: IF W3$ < >"H" AND W3$ < >"V" THEN PRINT CHR$(7);: GOSUB 430: GOTO 4120
4130 PRINT
4135 INPUT "NUMBER LINES (Y/N) ? ";WN$: IF WN$ < >"Y" AND WN$ < >"N" THEN PRINT CHR$(7);: GOSUB 430: GOTO 4135
4137 IF WN$ = "Y" THEN 4150
4139 PRINT
4140 INPUT "PRINT RECORD NUMBERS (Y/N) ? ";W2$: IF W2$ < >"Y" AND W2$ < >"N" THEN PRINT CHR$(7);: GOSUB 430: GOTO 4140
4150 PRINT : IF W3$ = "V" THEN 4200
4155 IF V$ = "V" THEN H1 = 1: GOTO 4195
4160 HOME : GOSUB 440: PRINT
4170 PRINT "PRINT HOW MANY FIELDS HORIZONTALLY": PRINT "BEFORE CARRIAGE RETURN ";: INPUT H1: IF H1 <1 OR H1 >NC +5 THEN PRINT CHR$(7);:CV = PEEK(37): POKE 37,(CV -2): CALL -958: GOTO 4170
4190 PRINT
4195 IF V$ = "V" THEN HOME : GOSUB 440: PRINT
4200 GOSUB 450: PRINT "FIELD SELECTION-ENTER '0' WHEN FINISHED": GOSUB 450: PRINT :CP = 0: FOR CP = 1 TO NC +5
4220 PRINT "PRINT WHICH FIELD #: ";: INPUT PC(CP): IF PC(CP) = 0 THEN 4260
4240 IF PC(CP) >NC THEN PRINT CHR$(7): PRINT "INPUT TO HIGH!!": GOTO 4220
4250 NEXT
4260 IF CP -1 <H1 THEN PRINT CHR$(7): HOME : VTAB 11: PRINT "YOU SELECTED TO PRINT "H1" FIELDS": PRINT "ACROSS, BUT ONLY CHOSE TO PRINT "CP -1: PRINT "FIELDS, PRESS 'RTN' TO TRY AGAIN.";: GET Z$: HOME : GOTO 4170
4270 IF W3$ = "V" THEN 4370
4280 IF CP >NC THEN 4300
4290 IF PC(CP) = 0 AND CP = H1 +1 THEN 4370
4300 IF H1 = CP -1 THEN 4370
4305 IF V$ = "V" THEN 4370
4310 PRINT : IF A$ = "N" OR P$ = "N" THEN 4340
4320 INPUT "USE WRAP AROUND OPTION (Y/N) ? ";WR$: IF WR$ < >"Y" AND WR$ < >"N" THEN PRINT CHR$(7);: GOSUB 430: GOTO 4320
4330 IF WR$ = "Y" THEN 4370
4340 PRINT : IF A$ = "N" AND P$ = "N" THEN 4370
4360 IF H1 = <CP -1 THEN INPUT "USE UNDERNEATH FORMATTING (Y/N) ? ";F7$: IF F7$ < >"Y" AND F7$ < >"N" THEN PRINT CHR$(7);: GOSUB 430: GOTO 4360
4370 HOME : RETURN
5000 CALL 37896: REM
5010 D6 = 0:RT = RC: FOR X = 1 TO X1:BB(X) = 0: NEXT :Z$ = "":X1 = 0:PG = 0:CK = 0:LN = 0: HOME : PRINT TAB( 10)"* FROM / TO SEARCH *": GOSUB 450: PRINT : INPUT "USE 'ENTRY' SEARCH OPTION (Y/N) ? ";A1$: PRINT : IF A1$ < >"" THEN IF ASC(A1$) = 17 THEN 5710
5030 IF A1$ < >"Y" AND A1$ < >"N" THEN PRINT CHR$(7): GOTO 5010
5040 IF A1$ = "N" THEN 5100
5050 PRINT : HTAB 10: PRINT "* PRINT-OUT ITEMS *": PRINT : HTAB 9: PRINT "1- EQUAL TO 'ENTRY'": HTAB 9: PRINT "2- NOT EQUAL TO 'ENTRY'": PRINT
5060 HTAB 16: INPUT "WHICH: ";Z3$: IF Z3$ <"1" OR Z3$ >"2" THEN PRINT CHR$(7);: GOSUB 430: GOTO 5060
5080 HOME : GOSUB 440: PRINT : INPUT "'ENTRY' FOUND IN WHAT FIELD # ? ";WC: PRINT : IF WC <1 OR WC >NC THEN PRINT CHR$(7);: GOSUB 430: GOTO 5080
5090 PRINT : PRINT "ENTER 'ENTRY': ":L = CL%(WC):HT = 1:V = 2: GOSUB 800:WO$ = B$:SK = INT(CL%(WC)/40): FOR X = 1 TO SK: PRINT : NEXT
5095 PRINT
5100 INPUT "USE DATE OPTION (Y/N) ? ";Z$: IF Z$ < >"Y" AND Z$ < >"N" THEN PRINT CHR$(7);: GOSUB 430: GOTO 5100
5110 IF Z$ = "N" THEN GOSUB 430: PRINT : GOTO 5175
5120 PRINT : PRINT
5130 PRINT "'FROM' DATE (MM/DD/YY) ? ";:L = 8:HT = 27:V = 1: GOSUB 800:Y$ = B$: IF Y$ = "" THEN PRINT CHR$(7);: GOSUB 430: GOTO 5130
5140 PRINT
5150 PRINT "'TO' DATE (MM/DD/YY) ? ";:L = 8:HT = 25:V = 1: GOSUB 800:X$ = B$: IF X$ = "" THEN PRINT CHR$(7);: GOSUB 430: GOTO 5150
5160 HOME : GOSUB 440: PRINT : INPUT "DATES IN WHAT FIELD # ? ";C: IF C <1 OR C >NC THEN PRINT CHR$(7);: GOTO 5160
5170 GOTO 5230
5175 HOME : GOSUB 440: PRINT : INPUT "NUMBERS IN WHICH FIELD ? ";C: HOME : IF C >NC THEN PRINT CHR$(7);: GOTO 5175
5180 HOME : HTAB 8: PRINT "- ENTER REGULAR NUMBERS -": GOSUB 450: PRINT
5190 PRINT "'FROM' WHAT VALUE ? ";:L = CL%(C):HT = 21:V = 1: GOSUB 800:GT$ = B$: IF GT$ = "" THEN PRINT CHR$(7);: GOSUB 430: GOTO 5190
5200 PRINT
5210 PRINT "'TO' WHAT VALUE ? ";:L = CL%(C):HT = 21:V = 1: GOSUB 800:LT$ = B$: IF LT$ = "" THEN PRINT CHR$(7);: GOSUB 430: GOTO 5210
5230 GOSUB 4000
5240 VTAB 12: HTAB 11: PRINT "< RECALLING DATA >": IF A1$ = "N" THEN X1 = RC: GOTO 5330
5260 GOSUB 410: FOR X = 1 TO RC: IF Z3$ = "2" THEN 5310
5290 IF S$(X) = WO$ THEN X1 = X1 +1:BB(X1) = X
5300 GOTO 5320
5310 IF S$(X) < >WO$ THEN X1 = X1 +1:BB(X1) = X
5320 NEXT
5330 IF A1$ = "N" THEN 5360
5350 GOSUB 370: HOME : GOTO 5380
5360 GOSUB 460
5370 GOSUB 390: HOME
5380 FOR RS = 1 TO X1: IF Z$ = "N" THEN 5440
5400 IF RIGHT$(S$(RS),2) + LEFT$(S$(RS),2) + MID$ (S$(RS),4,2) > = RIGHT$(Y$,2) + LEFT$(Y$,2) + MID$ (Y$,4,2) THEN 5420
5410 GOTO 5640
5420 IF RIGHT$(S$(RS),2) + LEFT$(S$(RS),2) + MID$ (S$(RS),4,2) < = RIGHT$(X$,2) + LEFT$(X$,2) + MID$ (X$,4,2) THEN 5590
5430 GOTO 5640
5440 LA = 1:LB = 1:LC = 1: IF LEN(GT$) <2 THEN LA = 0
5450 IF LEN(S$(RS)) <2 THEN LC = 0
5460 IF LEN(LT$) <2 THEN LB = 0
5465 IF S$(RS) = "" THEN 5640
5470 IF ASC( LEFT$(S$(RS),1)) = 36 AND ASC( LEFT$(GT$,1)) = 36 THEN 5540
5480 IF ASC( LEFT$(S$(RS),1)) = 36 AND ASC( LEFT$(GT$,1)) < >36 THEN 5560
5490 IF ASC( LEFT$(GT$,1)) = 36 AND ASC( LEFT$(S$(RS),1)) < >36 THEN 5520
5500 IF VAL(S$(RS)) > = VAL(GT$) AND VAL(S$(RS)) < = VAL(LT$) THEN 5590
5510 GOTO 5640
5520 LF = LEN(GT$):LF$ = RIGHT$(GT$,LF -LA):LG = LEN(LT$)LG$ = RIGHT$(LT$,LG -LB): IF VAL(S$(RS)) > = VAL(LF$) AND VAL(S$(RS)) < = VAL(LG$) THEN 5590
5530 GOTO 5640
5540 LE = LEN(S$(RS)):LE$ = RIGHT$(S$(RS),LE -LC):LF = LEN(GT$):LF$ = RIGHT$(GT$,LF -LA):LG = LEN(LT$):LG$ = RIGHT$(LT$,LG -LB): IF VAL(LE$) > = VAL(LF$) AND VAL(LE$) < = VAL(LG$) THEN 5590
5550 GOTO 5640
5560 LE = LEN(S$(RS)):LE$ = RIGHT$(S$(RS),LE -LC): IF VAL(LE$) > = VAL(GT$) AND VAL(LE$) < = VAL(LT$) THEN 5590
5570 GOTO 5640
5580 GOTO 5640
5590 IF A1$ = "Y" THEN R = BB(RS): GOSUB 350: GOTO 5610
5600 R = RS: GOSUB 290
5610 IF P$ = "N" THEN 5630
5620 GOSUB 230: GOSUB 2000: GOTO 5640
5630 GOSUB 3000
5640 NEXT : IF P$ = "N" OR A$ = "N" THEN 5670
5645 F0 = 0:FL = 0:FM = 0:FK = 0: IF A$ < >"Y" OR TF$ = "N" THEN 5668
5650 FOR XT = 1 TO NC: IF RIGHT$(H$(XT),1) = " " THEN A$(XT) = STR$(X4(XT)): GOTO 5654
5652 A$(XT) = " "
5654 NEXT
5655 FOR XT = 1 TO NC: IF RIGHT$(H$(XT),1) < >" " THEN 5660