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);: IF S$ = "1" THEN 2000
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 2500
800 B$ = "": PRINT : FOR I1 = 1 TO L: PRINT "_";: NEXT : VTAB ( PEEK(37) +2 -(L/39.9)): HTAB 1: IF E = 2 THEN CV = PEEK(37): PRINT A$(CL);: VTAB CV +1: HTAB 1
810 FOR I1 = 1 TO L +1
820 CALL 849:E = PEEK(833) -128: IF E = 17 AND CL = 1 THEN B$ = CHR$(E): RETURN
823 IF E = 10 THEN E = 92
824 IF E = 11 THEN E = 91
825 IF E = 12 THEN E = 95
826 IF E = 27 AND I1 >1 THEN 820
827 IF E = 27 THEN B$ = A$(CL): PRINT B$: RETURN
828 IF E1 THEN B = LEN(A$(CL)): IF LEN(B$) >B THEN B = LEN(B$)
830 IF E1 AND I1 = <B AND E = 21 THEN CALL -1036:B$ = B$ + MID$ (A$(CL),I1,1):I1 = I1 +1: GOTO 820
831 IF E = 21 THEN 820
832 IF E = 2 AND CL >1 THEN POP : CALL -958:A = CL -1:E1 = 1: GOTO 2060
834 IF Z1$ = "" AND E = 18 THEN TEXT : POP : GOTO 2020
840 IF E = 8 THEN GOSUB 890: GOTO 820
850 IF E = 13 THEN CV = PEEK(37) -3: CALL -958: PRINT CHR$(E);:E1 = 0: RETURN
860 PRINT CHR$(E);:B$ = B$ + CHR$(E): NEXT : IF RIGHT$(B$,1) < > CHR$(13) THEN GOSUB 940: GOTO 800
880 RETURN
890 IF I1 < = 1 THEN RETURN
895 IF E1 THEN PRINT CHR$(8);: GOTO 910
900 PRINT CHR$(8);"_"; CHR$(8);
910 I1 = I1 -1: IF I1 = <1 THEN I1 = 1:B$ = "": RETURN
930 B$ = LEFT$(B$, LEN(B$) -1): RETURN
940 PRINT CHR$(7): INVERSE : HTAB 10: PRINT "ENTRY IS TOO LONG": NORMAL : RETURN
950 SK = INT(CL%(CL)/40): FOR X = 1 TO SK: PRINT : NEXT : RETURN
2000 REM
2010 S = 0: GOSUB 750:R8 = INT(15000/LL): IF R8 >50 THEN R8 = 50
2020 A = 1: HOME : PRINT TAB( 11)"* * ENTER DATA * *": PRINT : PRINT NC" FIELDS.";: HTAB 14: PRINT "MEMORY FOR >"RR -RC"< RECORDS": IF RR -RC < = 0 THEN TEXT : GOTO 2300
2030 IF BY <3072 THEN TEXT : GOTO 2301
2040 GOSUB 580: PRINT TAB( 4)">> END <CTRL-Q> / REPEAT <ESC> <<": GOSUB 580: POKE 34,7: PRINT "RECORD # "RC +1;: HTAB 16: PRINT "APPROX.DISK RECORDS= ";: IF BY <4095 THEN FLASH : PRINT BZ: NORMAL : GOTO 2060
2050 PRINT BZ
2060 FOR CL = A TO NC:L = CL%(CL): PRINT : PRINT CL" - "H$(CL)" ("L")": GOSUB 800
2070 & A$(CL),B$: GOSUB 950: CALL 37896: IF CL = 1 AND A$(CL) < >"" THEN IF ASC(A$(CL)) = 17 AND S >0 THEN 2350
2130 IF CL = 1 AND A$(CL) < >"" THEN IF ASC(A$(CL)) = 17 THEN 2280
2140 NEXT : PRINT
2141 TEXT : HOME : FOR X = 1 TO NC: INVERSE : PRINT X"-";: NORMAL : HTAB 5: INVERSE : PRINT H$(X);: NORMAL : PRINT " - ";: PRINT A$(X):CV = PEEK(37): IF CV >18 THEN 2400