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 A$(NC),S$(RC),DT$(RC),H$(NC),CL%(NC),PC(NC +5),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
270 ONERR GOTO 320
280 PRINT OF$LL",D"D1: FOR I = R1 TO R2:B1 = CL(Z1 -1): PRINT RF$I",B"B1: CALL 783:S$(I) = MID$ (TE$,1): NEXT : PRINT CL$: RETURN
300 PRINT OF$LL",D"D1: FOR I = R1 TO R2:B1 = CL(Z2 -1): PRINT RF$I",B"B1: CALL 783:DT$(I) = MID$ (TE$,1): NEXT : PRINT CL$: POKE 216,0: RETURN
320 POKE 216,0: GOSUB 240: PRINT CHR$(7): HOME : VTAB 12: PRINT "DISK ERROR-RECORD ";: INVERSE : PRINT I;: NORMAL : PRINT " MAY BE BAD": PRINT "PRESS 'RTN'";: GET Z$: GOTO 5620
330 PRINT OF$LL",D"D1: FOR I = 1 TO NC:B1 = CL(I -1): IF I = 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 5590
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 410
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 370: GOTO 4055
4057 IF V$ = "V" THEN 4090
4060 HOME : GOSUB 380: PRINT
4070 INPUT "PRINT FIELD NAMES (Y/N) ? ";A$: IF A$ < >"Y" AND A$ < >"N" OR A$ = "" THEN PRINT CHR$(7);: GOSUB 370: 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 370: 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 370: GOTO 4120
4130 PRINT
4135 INPUT "NUMBER LINES (Y/N) ? ";WN$: IF WN$ < >"Y" AND WN$ < >"N" THEN PRINT CHR$(7);: GOSUB 370: 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 370: GOTO 4140
4150 PRINT : IF W3$ = "V" THEN 4200
4155 IF V$ = "V" THEN H1 = 1: GOTO 4195
4160 HOME : GOSUB 380: 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 380: PRINT
4200 GOSUB 390: PRINT "FIELD SELECTION-ENTER '0' WHEN FINISHED": GOSUB 390: 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 370: 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 370: GOTO 4360
5030 HTAB 8: PRINT "5- LESS THAN OR EQUAL": HTAB 8: PRINT "6- GREATER THAN OR EQUAL": PRINT : HTAB 16: INPUT "WHICH: ";Z3$:Z3 = VAL(Z3$): IF Z3$ < >"" THEN IF ASC(Z3$) = 17 THEN 5620
5040 IF Z3 <1 OR Z3 >6 THEN PRINT CHR$(7): GOTO 5010
5050 HOME : GOSUB 380: PRINT : INPUT "REFERENCE FIELD # ";Z1: IF Z1 <1 OR Z1 >NC THEN PRINT CHR$(7): GOTO 5050
5060 GOSUB 370
5070 INPUT "COMPARE TO FIELD # ";Z2: IF Z2 <1 OR Z2 >NC THEN PRINT CHR$(7);: GOSUB 370: GOTO 5070
5080 PRINT
5090 INPUT "COMPARE NUMBERS OR WORDS (N/W) ? ";Z2$: IF Z2$ < >"N" AND Z2$ < >"W" THEN PRINT CHR$(7);: GOSUB 370: GOTO 5090
5100 GOSUB 4000
5120 IF RC < = RR/2 THEN R1 = 1:R2 = RC: VTAB 12: PRINT TAB( 6)"> RECALLING REFERENCE FIELD <": GOSUB 270: VTAB 12: HTAB 5: PRINT "> RECALLING COMPARE TO FIELD <": GOSUB 300: HOME : GOTO 5170
5140 R1 = 1:R2 = RR/2: VTAB 12: PRINT "> LOADING ";: INVERSE : PRINT "FIRST HALF";: NORMAL : PRINT " OF REFERENCE COL. <": GOSUB 270: VTAB 12: PRINT "> LOADING ";: INVERSE : PRINT "FIRST HALF";: NORMAL : PRINT " OF COMPARE TO COL <": GOSUB 300: HOME : GOTO 5170
5150 IF Z2$ = "N" THEN R1 = R2 +1:R2 = RC: GOSUB 290: GOSUB 320: GOTO 5170
5160 R1 = R2 +1:R2 = RC: GOSUB 270: GOSUB 300
5170 FOR RS = R1 TO R2: IF Z2$ = "N" THEN 5200
5190 ON Z3 GOTO 5220,5240,5260,5280,5300,5320
5200 IF S$(RS) < >"" AND DT$(RS) < >"" THEN IF ASC( LEFT$(S$(RS),1)) = 36 OR ASC( LEFT$(DT$(RS),1)) = 36 THEN 5460
5210 ON Z3 GOTO 5340,5360,5380,5400,5420,5440
5220 IF S$(RS) = DT$(RS) THEN 5510
5230 GOTO 5550
5240 IF S$(RS) < >DT$(RS) THEN 5510
5250 GOTO 5550
5260 IF S$(RS) >DT$(RS) THEN 5510
5270 GOTO 5550
5280 IF S$(RS) <DT$(RS) THEN 5510
5290 GOTO 5550
5300 IF S$(RS) < = DT$(RS) THEN 5510
5310 GOTO 5550
5320 IF S$(RS) > = DT$(RS) THEN 5510
5330 GOTO 5550
5340 IF VAL(S$(RS)) = VAL(DT$(RS)) THEN 5510
5350 GOTO 5550
5360 IF VAL(S$(RS)) < > VAL(DT$(RS)) THEN 5510
5370 GOTO 5550
5380 IF VAL(S$(RS)) > VAL(DT$(RS)) THEN 5510
5390 GOTO 5550
5400 IF VAL(S$(RS)) < VAL(DT$(RS)) THEN 5510
5410 GOTO 5550
5420 IF VAL(S$(RS)) < = VAL(DT$(RS)) THEN 5510
5430 GOTO 5550
5440 IF VAL(S$(RS)) > = VAL(DT$(RS)) THEN 5510
5450 GOTO 5550
5460 LA = 1:LB = 1: IF LEN(S$(RS)) <2 THEN LA = 0
5470 IF LEN(DT$(RS)) <2 THEN LB = 0
5480 IF S$(RS) < >"" THEN IF ASC( LEFT$(S$(RS),1)) = 36 THEN LE = LEN(S$(RS)):S$(RS) = RIGHT$(S$(RS),LE -LA)
5490 IF DT$(RS) < >"" THEN IF ASC( LEFT$(DT$(RS),1)) = 36 THEN LE = LEN(DT$(RS)):DT$(RS) = RIGHT$(DT$(RS),LE -LB)
5500 GOTO 5210
5510 GOSUB 330: IF P$ = "N" THEN 5540
5530 GOSUB 230: GOSUB 2000: GOTO 5550
5540 GOSUB 3000
5550 NEXT : IF R2 < >RC THEN 5150
5570 IF P$ = "N" OR A$ = "N" THEN 5590
5571 F0 = 0:FL = 0:FM = 0:FK = 0: IF A$ < >"Y" OR TF$ = "N" THEN 5588
5572 FOR XT = 1 TO NC: IF RIGHT$(H$(XT),1) = " " THEN A$(XT) = STR$(X4(XT)): GOTO 5574
5573 A$(XT) = " "
5574 NEXT
5575 FOR XT = 1 TO NC: IF RIGHT$(H$(XT),1) < >" " THEN 5580