home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / DF1.DSK / I.bas < prev    next >
BASIC Source File  |  2014-09-09  |  9KB  |  111 lines

  1. 10 A$ = "": POKE 216,0: TEXT : SPEED= 255:D$ =  CHR$(4):CL$ = D$ +"CLOSE": DIM CL(88),H$(88): PRINT D$"NOMONI,O,C": GOSUB 550: GOTO 280
  2. 50  HOME : VTAB 12: PRINT  TAB( 9)"USING PRINTER (Y/N) ";: INPUT P1$:P$ = P1$: PRINT : IF P1$ < >"N"  AND P1$ < >"Y"  THEN  PRINT  CHR$(7): GOTO 50
  3. 60  PRINT : IF P1$ = "N"  THEN 1020
  4. 80  GOTO 1015
  5. 260  PRINT  TAB( 3)"* UNIV. DATA MANAGEMENT SYSTEM 4.0 *": PRINT  TAB( 6)"COPYRIGHT 1980 BY W.L.PASSAUER": RETURN 
  6. 280  HOME : VTAB 6: INVERSE : HTAB 7: PRINT "<CTRL-G>LOAD DISKETTES AS REQUIRED:": NORMAL : VTAB 9: HTAB 6: PRINT "PROGRAM DISKETTE --> DRIVE# 1": PRINT : HTAB 6: PRINT "DATA DISKETTE    --> DRIVE# 2"
  7. 285 D1 = 1: VTAB 18: HTAB 5: INPUT "USING A TWO DISK SYSTEM (Y/N)? ";Z$: IF Z$ < >"Y"  AND Z$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 285
  8. 290  IF Z$ = "Y"  THEN D1 = 2
  9. 310 Z$ = "": 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$
  10. 320  HOME : GOSUB 260: GOSUB 390
  11. 330  POKE 216,0: IF B = 0  THEN  PRINT  CHR$(7);: VTAB 10: PRINT "NO DATA FILES ON DISK, INITIATE A NEW": INPUT "FILE (Y/N) ";Z$: IF Z$ < >"N"  AND Z$ < >"Y"  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 330
  12. 340  IF Z$ = "Y"  THEN 2000
  13. 350  IF Z$ = "N"  THEN S$ = "0": GOTO 1100
  14. 360  GOTO 1000
  15. 362 CV =  PEEK(37): POKE 37,(CV -3): CALL  -958: RETURN 
  16. 365 CV =  PEEK(37): POKE 37,(CV -2): CALL  -958: RETURN 
  17. 370 CV =  PEEK(37): POKE 37,(CV -1): CALL  -958: RETURN 
  18. 380  FOR X = 1 TO 40: PRINT "-";: NEXT : RETURN 
  19. 390  ONERR  GOTO 570
  20. 400  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":B = 1: PRINT : HTAB 7: PRINT "-- DATA FILES AVAILABLE --": PRINT : FOR I = 1 TO NR: PRINT I" "R$(I): NEXT : PRINT : PRINT I" INITIATE A NEW FILE ": PRINT 
  21. 460  PRINT "WHICH: (1-"I") ";: INPUT "";Z1$:Z =  VAL(Z1$): IF Z <1  OR Z >I  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 460
  22. 470  IF Z >10  THEN  PRINT  CHR$(7);: PRINT : PRINT "NO MORE THAN 10 FILES PER DISK PLEASE...": PRINT "PRESS 'RTN'";: GET Z$:S$ = "0": GOTO 1100
  23. 480  HOME : IF Z = I  THEN B = 0: POKE 216,0: GOTO 2000
  24. 490 N$ = R$(Z): RETURN 
  25. 495  IF   NOT NR  THEN 510
  26. 497  FOR J = 1 TO NR: IF R$(J) = N$  THEN  RETURN 
  27. 498  NEXT 
  28. 510  PRINT D$"OPEN DATA FILES": PRINT D$"WRITE DATA FILES": PRINT NR +1: FOR J = 1 TO NR +1: PRINT R$(J): NEXT : PRINT D$"CLOSE": RETURN 
  29. 550  FOR I = 1013 TO 1022: READ PP: POKE I,PP: NEXT : RETURN : DATA 104,168,104,166,223,154,72,152,72,96
  30. 560 CV =  PEEK(37): POKE 37,(CV -1): CALL  -958: RETURN 
  31. 570  POKE 216,0: IF  PEEK(222) = 8  THEN  PRINT  CHR$(7): HOME : FLASH : VTAB 10: HTAB 5: PRINT "DISKETTE MAY NOT BE INITIALIZED": NORMAL : GOTO 4000
  32. 580  CALL 1013: RETURN 
  33. 600  PRINT "LENGTH OF FIELD # "N1" (1-239)";: INPUT " ";CL(N1): IF CL(N1) >239  OR CL(N1) <1  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 600
  34. 610 CL% = CL% +CL(N1) +1: PRINT 
  35. 630  PRINT "NAME FIELD ";N1;" ("CL(N1)") ":L = CL(N1): GOSUB 800:H$(N1) = B$
  36. 640  IF H$(N1) = ""  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 630
  37. 650 SK =  INT(CL(N1)/40): FOR X = 1 TO SK: PRINT : NEXT : RETURN 
  38. 800 B$ = "": PRINT : FOR I = 1 TO L: PRINT "_";: NEXT : VTAB ( PEEK(37) +2 -(L/39.9)): HTAB 1
  39. 810  FOR I = 1 TO L +1
  40. 820  GET E$
  41. 823  IF E$ =  CHR$(10)  THEN E$ =  CHR$(92)
  42. 824  IF E$ =  CHR$(11)  THEN E$ =  CHR$(91)
  43. 825  IF E$ =  CHR$(12)  THEN E$ =  CHR$(95)
  44. 830  IF E$ =  CHR$(21)  THEN 820
  45. 840  IF E$ =  CHR$(8)  THEN  GOSUB 890: GOTO 820
  46. 850  IF E$ =  CHR$(13)  THEN  PRINT E$;: RETURN 
  47. 860  PRINT E$;:B$ = B$ +E$: NEXT 
  48. 870  IF  RIGHT$(B$,1) < > CHR$(13)  THEN  GOSUB 940: GOTO 800
  49. 880  RETURN 
  50. 890  IF I < = 1  THEN  RETURN 
  51. 900  PRINT  CHR$(8);"_"; CHR$(8);
  52. 910 I = I -1
  53. 920  IF I =  <1  THEN I = 1:B$ = "": RETURN 
  54. 930 B$ =  LEFT$(B$, LEN(B$) -1): RETURN 
  55. 940  PRINT  CHR$(7): INVERSE : HTAB 10: PRINT "ENTRY IS TOO LONG": NORMAL : RETURN 
  56. 1000  GOTO 50
  57. 1015  HOME : VTAB 12: HTAB 1: PRINT "ENTER TODAYS DATE OR REMARK (<21): ":L = 20: GOSUB 800:DA$ = B$
  58. 1016  PRINT : PRINT D$"OPEN DATE,D"D1: PRINT D$"WRITE DATE": PRINT DA$: PRINT : PRINT D$"CLOSE"
  59. 1020  HOME : GOSUB 260: PRINT :TA = 20 -( LEN(N$)/2): HTAB TA: INVERSE : PRINT N$: NORMAL : PRINT : PRINT  TAB( 6)"MENU SELECTION LIST (REPORT)": PRINT 
  60. 1030  PRINT "1-ENTER DATA";: HTAB 22: PRINT "12-LIST": PRINT "2-UPDATE";: HTAB 22: PRINT "13-SEARCH": PRINT "3-INSPECT/CHANGE";: HTAB 22: PRINT "14-LEVEL SEARCH"
  61. 1040  PRINT "4-DELETE A RECORD";: HTAB 22: PRINT "15-FROM/TO SEARCH": PRINT "5-REPLACE";: HTAB 22: PRINT "16-SORT": PRINT "6-TRANSFER";: HTAB 22: PRINT "17-MATH"
  62. 1050  PRINT "7-CONSTRUCT/APPEND";: HTAB 22: PRINT "18-COMPARE": PRINT "8-FILE INFORMATION";: HTAB 22: PRINT "19-INDEX": PRINT "9-DELETE A FILE";: HTAB 22: PRINT "20-PRINTER SET-UP"
  63. 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"
  64. 1070  VTAB (22): HTAB 16: INPUT "WHICH: ";S$: IF S$ = ""  THEN  PRINT  CHR$(7): GOSUB 560: GOTO 1070
  65. 1100  IF  ASC(S$) = 48  THEN  PRINT : PRINT  CHR$(7): HOME : VTAB 11: PRINT : PRINT "PLEASE PLACE AN ";: INVERSE : PRINT "<APPLE BOOT>";: NORMAL : PRINT " DISKETTE INTO DRIVE #1 AND PRESS <RETURN>";: GET Z$: PRINT : PRINT D$"PR#6"
  66. 1110  IF  VAL(S$) <1  OR  VAL(S$) >22  THEN  PRINT  CHR$(7): GOSUB 370: GOTO 1070
  67. 1111  ONERR  GOTO 1290
  68. 1112 S =  VAL(S$): IF S = 1  OR S = 3  OR S = 4  OR S = 8  OR S = 9  OR S = 10  OR S = 11  OR S = 21  OR S = 22  THEN D7$ = "REPORT": GOTO 1120
  69. 1113 D7$ = "UTILITY": IF S >11  THEN D7$ = "REPORT"
  70. 1115  IF D1 = 2  AND S <12  THEN  PRINT  CHR$(7): HOME : VTAB 11: HTAB 2: PRINT "LOAD ";: INVERSE : PRINT "UTILITY";: NORMAL : PRINT " PROGRAM DISK INTO DRIVE #1": HTAB 12: PRINT "THEN PRESS 'RTN'";: GET Z$
  71. 1120  IF D1 = 1  THEN  HOME : PRINT  CHR$(7): VTAB 11: HTAB 8: PRINT "LOAD ";: INVERSE : PRINT D7$;: NORMAL : PRINT " PROGRAM DISK": HTAB 12: PRINT "THEN PRESS 'RTN'";: GET Z$
  72. 1130 I = 0: POKE 864,D1: POKE 865, ASC(P$): POKE 866, ASC(P1$): POKE 867, VAL(S$): POKE 868, LEN(N$): FOR X = 869 TO  LEN(N$) +868:I = I +1: POKE X, ASC( MID$ (N$,I,1)): NEXT 
  73. 1150  HOME : VTAB 12: HTAB 11: PRINT "< LOADING MODULE >": ON S GOTO 1155,1270,1160,1160,1250,1240,1260,1160,1160,1170,1160,1170,1180,1230,1200,1190,1210,1220,1170,1170,1160,1280
  74. 1155  PRINT D$"RUN ED,D1"
  75. 1160  PRINT D$"RUN DM,D1"
  76. 1170  PRINT D$"RUN L,D1"
  77. 1180  PRINT D$"RUN SH,D1"
  78. 1190  PRINT D$"RUN S,D1"
  79. 1200  PRINT D$"RUN FT,D1"
  80. 1210  PRINT D$"RUN M,D1"
  81. 1220  PRINT D$"RUN C,D1"
  82. 1230  PRINT D$"RUN LS,D1"
  83. 1240  PRINT D$"RUN T,D1"
  84. 1250  PRINT D$"RUN R,D1"
  85. 1260  PRINT D$"RUN CA,D1"
  86. 1270  PRINT D$"RUN U,D1"
  87. 1280  PRINT D$"RUN I,D1"
  88. 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
  89. 2000 CL% = 0:RL = 249:NC = 0:SA = 1: HOME : PRINT  TAB( 12)"> INITIATE FILE <": GOSUB 380: PRINT : PRINT "FILE NAME (28) ":L = 28: GOSUB 800:N$ = B$: IF N$ =  CHR$(1)  THEN 320
  90. 2010  IF N$ = ""  OR  LEN(N$) >28  THEN  PRINT  CHR$(7);: GOTO 2000
  91. 2020 R$(NR +1) = N$: PRINT 
  92. 2030  INPUT "HOW MANY FIELDS (<89) ? ";NC: IF NC >88  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 2030
  93. 2040  FOR N1 = SA TO NC: PRINT : GOSUB 600: NEXT 
  94. 2150  HOME : PRINT "FLD#";: HTAB 6: PRINT "LENGTH";: HTAB 13: PRINT "NAME": GOSUB 380: FOR X = 1 TO NC: HTAB 2: PRINT X;: HTAB 7: PRINT "("CL(X)")";: HTAB 13: PRINT H$(X);: IF  RIGHT$(H$(X),1) = " "  THEN  PRINT "(J)": GOTO 2154
  95. 2153  PRINT 
  96. 2154  NEXT : PRINT : PRINT "RECORD LENGTH IS = ";CL%: PRINT 
  97. 2155  PRINT "ALL CORRECT (0) ": PRINT "NOT CORRECT (1-"NC") ": PRINT "RESTART     ("NC +1") ";: INPUT "  WHICH: ";N1: IF N1 <0  OR N1 >NC +1  THEN  PRINT  CHR$(7);: GOSUB 362: GOTO 2155
  98. 2156  PRINT : IF N1 = 0  THEN 2176
  99. 2157  IF N1 = NC +1  THEN 2000
  100. 2170  HOME : PRINT : PRINT "FLD. # "N1" LENGTH = "CL(N1): HTAB 12: PRINT "NAME = "H$(N1);: IF  RIGHT$(H$(N1),1) = " "  THEN  PRINT "(J)": GOTO 2175
  101. 2172  PRINT 
  102. 2175  PRINT :CL% = CL% -CL(N1) -1: GOSUB 600: PRINT : GOTO 2150
  103. 2176  INPUT "ENTER THE LENGTH OF THE LONGEST FIELD   YOU WILL SORT OR SEARCH (>9) ? ";N2: IF N2 <10  OR N2 >239  THEN  PRINT  CHR$(7);: GOSUB 365: GOTO 2176
  104. 2177 N2 = N2 +12:RR =  INT(28700/N2):L1% =  INT(252960/CL%): IF L1% <RR  THEN RR = L1%
  105. 2180  HOME : VTAB 12: PRINT  TAB( 6)"> SAVING FILE DATA TO DISC <": PRINT : PRINT D$"OPEN"N$".V,D"D1: PRINT : PRINT D$"WRITE"N$".V": PRINT NC: PRINT RC: PRINT RR
  106. 2190  FOR N1 = 1 TO NC:CL(N1) = CL(N1) +(CL(N1 -1) +1): PRINT CL(N1): NEXT :LL = (CL(NC) +NC): PRINT D$"OPEN"N$",L"LL: FOR X = 1 TO NC:B1 = CL(X -1): PRINT D$"WRITE"N$",R0,B"B1: PRINT H$(X): NEXT : PRINT D$"CLOSE": GOSUB 495
  107. 2195 CO = 80:F1 = 1:LI = 63:F2 = 1:F1$ = "F":F3 = 3:F6$ = "P":F8$ = "C":F3$ = "Y":CT$ = "":F8 = 1:MO = 0:N = 2:TF$ = "Y":LF$ = "N"
  108. 3000  PRINT : PRINT D$"OPEN"N$".P,D"D1: PRINT D$"WRITE"N$".P": PRINT CO: PRINT F1: PRINT LI: PRINT F2: PRINT F1$: PRINT F3: PRINT F3$: PRINT F6$: PRINT F8$: PRINT F8: PRINT MO: PRINT CT$: PRINT N: PRINT TF$: PRINT LF$: PRINT D$"CLOSE":P1$ = "Y": GOTO 50
  109. 4000  PRINT : PRINT : PRINT "TO INITIALIZE THIS DISKETTE, PRESS 'I'  OR ANY OTHER KEY TO ESCAPE: ";: GET Z$: IF Z$ = "I"  THEN  PRINT : PRINT D$"INITI,V0,D"D1: PRINT  CHR$(7): GOTO 320
  110. 4010 S$ = "0": GOTO 1100
  111. 63000  GOTO 280