home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib30b.dsk / CONFIGURE.bas < prev    next >
BASIC Source File  |  2023-02-26  |  8KB  |  139 lines

  1. 10  REM **********************
  2. 20  REM *     CONFIGURE      *
  3. 30  REM * BY MARK R. CRAVEN  *
  4. 40  REM * COPYRIGHT (C) 1987 *
  5. 50  REM * BY MICROSPARC, INC *
  6. 60  REM * CONCORD, MA  01742 *
  7. 70  REM **********************
  8. 80  HOME :D$ =  CHR$(4):AD = 974:EM = 975:KB =  -16368:KD =  -16384:CUR = 768:OP$ = "OPEN ":CL$ = "CLOSE ":RD$ = "READ ":WR$ = "WRITE ":U$ = "UNLOCK ":VF$ = "VERIFY "
  9. 90  ONERR  GOTO 1260
  10. 100  PRINT D$"BLOAD CURSOR.BAR.4"
  11. 110  GOTO 410
  12. 120  ONERR  GOTO 3720
  13. 130  PRINT : PRINT D$U$F$
  14. 140  PRINT D$OP$F$
  15. 150  PRINT D$RD$F$
  16. 160  INPUT PT: INPUT SL: INPUT GP: INPUT GP$: INPUT CL: INPUT SD: INPUT SD$
  17. 170  PRINT D$CL$
  18. 180  POKE 216,0: REM  NO ONERR
  19. 190  POKE EM,0: GOTO 370
  20. 200  REM  SUBROUTINES
  21. 210  VTAB 20: PRINT L$;: VTAB 21: HTAB 1: INVERSE : PRINT "<-";: NORMAL : PRINT " ";: INVERSE : PRINT "->";: NORMAL : PRINT " TO SELECT ...<";: INVERSE : PRINT "RETURN";: NORMAL : PRINT "> TO EXECUTE": PRINT "   UP OR DOWN ARROW KEYS MAY BE USED"
  22. 220  PRINT "    <ESC> RETURNS TO PREVIOUS MENU"
  23. 230  VTAB 24: PRINT L$;: RETURN 
  24. 240  VTAB 3: HTAB 1: PRINT "PRINTER     ": RETURN 
  25. 250  VTAB 3: HTAB 9: PRINT "IN SLOT #";SL: RETURN 
  26. 260  VTAB 3: HTAB 1: PRINT "NO PRINTER        ": RETURN : REM 8 SPACES
  27. 270  VTAB 3: HTAB 21: PRINT "WITH GRAPHICS DUMP": RETURN 
  28. 280  VTAB 3: HTAB 21: PRINT "  NO GRAPHICS DUMP": RETURN 
  29. 290  VTAB 5: HTAB 21: PRINT "WITH TEXT DUMP";: CALL  -868: RETURN 
  30. 300  VTAB 5: HTAB 21: PRINT "  NO TEXT DUMP";: CALL  -868: RETURN 
  31. 310  VTAB 5: HTAB 21: CALL  -868: RETURN 
  32. 320  VTAB 5: HTAB 1: PRINT "COLOR MONITOR     ": RETURN 
  33. 330  VTAB 5: HTAB 1: PRINT "MONOCHROME MONITOR": RETURN 
  34. 340 S$ = "": FOR I = 1 TO  LEN(X$): IF  ASC( MID$ (X$,I,1)) <32  THEN S$ = S$ +"^" + CHR$( ASC( MID$ (X$,I,1)) +64): NEXT : GOTO 360
  35. 350 S$ = S$ + MID$ (GP$,I,1): NEXT 
  36. 360  RETURN 
  37. 370  ONERR  GOTO 1380
  38. 380  HOME : VTAB 12: HTAB 1: PRINT "RETURN TO RUN GARDEN.PLANNER": PRINT "ESCAPE TO QUIT";: GET Z$: PRINT : IF Z$ < > CHR$(27)  THEN  PRINT D$" RUN GARDEN.PLANNER"
  39. 390  END 
  40. 400  REM  CONFIGURE SYSTEM
  41. 410  TEXT : HOME : PRINT  TAB( 12)"CONFIGURE SYSTEM": PRINT L$: REM HEADING
  42. 420  VTAB 6: PRINT L$
  43. 430  IF PT  THEN  GOSUB 240: GOSUB 250: GOTO 450
  44. 440  GOSUB 260: GOSUB 280: GOSUB 300: GOTO 470
  45. 450  IF GP  THEN  GOSUB 270: GOTO 470
  46. 460  GOSUB 280: GOTO 480
  47. 470  IF CL  THEN  GOSUB 320: GOTO 490
  48. 480  GOSUB 330
  49. 490  IF SD  THEN  GOSUB 290: GOTO 510
  50. 500  GOSUB 300
  51. 510  HTAB 1: VTAB 8: PRINT "PRESS <";: INVERSE : PRINT "ESC";: NORMAL : PRINT "> TO ACCEPT ABOVE DEFAULTS."
  52. 520  HTAB 1: VTAB 10: PRINT "PRESS <RETURN> TO ENTER NEW PARAMETERS";: CALL  -958: POKE KB,0: GET X$: PRINT 
  53. 530  IF X$ =  CHR$(27)  THEN 1060: REM WRITE DISK
  54. 540  IF X$ < > CHR$(13)  THEN 520
  55. 550  VTAB 7: HTAB 1: CALL  -958
  56. 560  GOSUB 210: HTAB 1: VTAB 7: PRINT "DO YOU HAVE A PRINTER CONNECTED? ": VTAB 7: HTAB 36: PRINT "YES": HTAB 36: PRINT "NO"
  57. 570 A = 7:B = 8:C = 36:D = 38: GOSUB 970: GOSUB 980
  58. 580  ON LINE GOTO 620,650
  59. 590 PT = 0:SL = 0:GP = 0:CL = 0:GP$ = "":SD$ = "":SD = 0
  60. 600  IF A = 7  THEN 370
  61. 610  GOTO 410
  62. 620  IF LINE = 1  THEN PT = 1: GOSUB 240: GOSUB 1000: VTAB 7: CALL  -868: PRINT : CALL  -868: VTAB 7: POKE KB,0: PRINT "PRINTER IS IN SLOT ";: GET SL$: IF SL$ < CHR$(49)  THEN SL = 0:PT = 0: GOSUB 260: VTAB 7: CALL  -868: CALL  -868: GOTO 560
  63. 630  IF  VAL(SL$) <1  OR  VAL(SL$) >7  THEN  PRINT  CHR$(7);: GOTO 620
  64. 640  PRINT SL$:SL =  VAL(SL$): GOSUB 250: GOTO 660
  65. 650 PT = 0:GP = 0:GP$ = "": GOSUB 260: GOSUB 280: GOSUB 300: GOTO 930: REM SKIP CARD QUES.
  66. 660  GOSUB 990: VTAB 9: PRINT "PRINTER CARD HAVE GRAPHICS DUMP ?  YES": HTAB 37: PRINT "NO"
  67. 670 A = 9:B = 10: GOSUB 970: GOSUB 980: IF LINE = 0  THEN 590
  68. 680  IF LINE = 1  THEN GP = 1: GOSUB 270: GOTO 700
  69. 690 GP = 0: GOSUB 280: GOTO 790: REM NO GRAPHICS DUMP CARD
  70. 700  GOSUB 1000:GP$ = "": VTAB 10: HTAB 1: PRINT "ENTER CODE FOR PAGE 1 GRAPHICS DUMP": PRINT "TERMINATE WITH '^' ";: HTAB 20
  71. 710  POKE KB,0: GET X$: IF X$ < CHR$(1)  THEN 710
  72. 720  IF X$ =  CHR$(94)  AND  LEN(GP$) = 0  THEN GP = 0: GOTO 760
  73. 730  IF  ASC(X$) = 94  THEN 770
  74. 740  IF  ASC(X$) <32  THEN  PRINT "^"; CHR$( ASC(X$) +64);:GP$ = GP$ +X$: GOTO 710
  75. 750  PRINT X$;:GP$ = GP$ +X$: GOTO 710
  76. 760  GOSUB 280: GOSUB 990: GOTO 790
  77. 770 X$ = GP$: GOSUB 340:X$ = "": GOTO 790
  78. 780 S$ = S$ + MID$ (GP$,I,1): NEXT 
  79. 790  GOSUB 990: HTAB 1: VTAB 13: PRINT "PRINTER CARD HAVE TEXT DUMP ?      YES": HTAB 37: PRINT "NO": REM 6 SPCS
  80. 800 A = 13:B = 14: GOSUB 970: GOSUB 980: IF LINE = 0  THEN 590
  81. 810  IF LINE = 1  THEN SD = 1: GOSUB 290: GOTO 830
  82. 820 SD = 0: GOTO 930: REM NO TEXT DUMP ON CARD
  83. 830  GOSUB 1000:SD$ = "": VTAB 14: HTAB 1: PRINT "ENTER CODE FOR PAGE 1 TEXT DUMP": PRINT "TERMINATE WITH '^' ";: HTAB 20
  84. 840  POKE KB,0: GET X$: IF X$ < CHR$(1)  THEN 840
  85. 850  IF X$ =  CHR$(94)  AND  LEN(SD$) = 0  THEN SD = 0: GOTO 890
  86. 860  IF  ASC(X$) = 94  THEN 900
  87. 870  IF  ASC(X$) <32  THEN  PRINT "^"; CHR$( ASC(X$) +64);:SD$ = SD$ +X$: GOTO 840
  88. 880  PRINT X$;:SD$ = SD$ +X$: GOTO 840
  89. 890  GOSUB 300: GOTO 930
  90. 900 X$ = SD$: GOSUB 340:X$ = "": GOTO 920
  91. 910 S$ = S$ + MID$ (SD$,I,1): NEXT 
  92. 920  GOSUB 290
  93. 930  GOSUB 1000: GOSUB 990: VTAB 17: HTAB 1: PRINT "WHICH TYPE OF MONITOR? " TAB( 34)"COLOR": PRINT  TAB( 35)"MONO"
  94. 940 A = 17:B = 18:C = 34:D = 38: GOSUB 970: GOSUB 980: IF LINE = 0  THEN 590
  95. 950  IF LINE = 1  THEN CL = 1: GOSUB 320: GOTO 1010
  96. 960 CL = 0: GOSUB 330: GOTO 1010
  97. 970  CALL CUR,A,B,C,D:LINE =  PEEK(4): RETURN 
  98. 980  VTAB A: HTAB C: CALL  -868: VTAB B: HTAB C: CALL  -868: RETURN 
  99. 990  VTAB 23: HTAB 8: PRINT "<ESC> RE-STARTS CONFIGURE": CALL  -868: PRINT L$;: HTAB 1: RETURN : REM 7 SPCS
  100. 1000  VTAB 23: HTAB 1: CALL  -868: HTAB 1: RETURN : REM  CLEAR LINE 23
  101. 1010  VTAB 7: CALL  -958: GOSUB 210: GOSUB 1000: GOSUB 990
  102. 1020  VTAB 10: HTAB 5: PRINT "IS SET-UP OK? ": VTAB 14: HTAB 19: PRINT "YES": HTAB 19: PRINT "NO"
  103. 1030  CALL CUR,14,15,18,22
  104. 1040 LINE =  PEEK(4): IF LINE = 0  THEN 590
  105. 1050  IF LINE = 2  THEN  HOME : GOTO 410
  106. 1060  HOME : VTAB 10: PRINT  TAB( 5)"DISK WRITE - DO NOT INTERRUPT"
  107. 1070  POKE EM,4: REM ONERR  GOTO 4720
  108. 1080 T$ = F$:F$ = "GP.CONFIG"
  109. 1090  PRINT D$OP$F$: PRINT D$CL$F$: PRINT D$U$F$: PRINT D$"DELETE "F$: PRINT D$OP$F$
  110. 1100  PRINT D$WR$F$
  111. 1110  PRINT PT: PRINT SL: PRINT GP: PRINT GP$: PRINT CL: PRINT SD: PRINT SD$: REM PRINTER,CARD,GRAPHICS STRING,MONITOR,TEXT STRING
  112. 1120  PRINT D$
  113. 1130  PRINT D$CL$: PRINT D$"LOCK"F$
  114. 1140 F$ = T$: POKE 216,0: GOTO 370: REM MAIN MENU
  115. 1150  REM ERROR TRAP
  116. 1160 ER =  PEEK(222): POKE 216,0: HOME 
  117. 1170  IF ER = 6  THEN X$ = "GRAPHIC NOT ON THIS DISK":Y$ = "CHECK NAME OR SELECT OTHER DISK": GOTO 1220
  118. 1180  IF ER = 4  THEN X$ = "DISK WRITE PROTECTED":Y$ = "REMOVE WRITE-PROTECT TAB": GOTO 1220
  119. 1190  IF ER = 8  THEN X$ = "DISK I/O PROBLEM":Y$ = "CHECK DRIVE DOOR OR DISK POSITION":F$ = "": GOTO 1220
  120. 1200  IF ER = 9  THEN X$ = "THIS DISK IS FULL":Y$ = "INSERT OTHER DISK OR CHANGE DRIVES": GOTO 1220
  121. 1210  VTAB 10: PRINT " ERROR #"; PEEK(222)" IN LINE "; PEEK(219) *256 + PEEK(218): PRINT : PRINT "TAKE APPROPRIATE ACTION ": GOTO 1240
  122. 1220  PRINT  TAB( 10)"*** DISK ERROR ***": PRINT L$
  123. 1230  VTAB 6: INVERSE : PRINT "PROBLEM:": NORMAL : PRINT : PRINT X$: VTAB 13: INVERSE : PRINT "POSSIBLE SOLUTION:": NORMAL : PRINT : PRINT Y$
  124. 1240  VTAB 24: HTAB 1: PRINT "PRESS <RETURN> TO CONTINUE";: GET Z$: PRINT 
  125. 1250  GOTO 370: REM MAIN MENU
  126. 1260 ER =  PEEK(222): HOME : POKE 216,0: IF ER < >6  THEN 1180
  127. 1270  VTAB 12: HTAB 1: PRINT "CURSOR.BAR.4 NOT ON THIS DISK"
  128. 1280  VTAB 23: HTAB 1: PRINT "<RETURN> TO TRY AGAIN, <ESC> TO QUIT";: POKE KB,0: GET X$: PRINT : ON X$ < > CHR$(27) GOTO 90
  129. 1290  END 
  130. 1300  HOME : GOTO 1270
  131. 1310  REM NO CONFIG. FILE
  132. 1320  IF  PEEK(222) = 6  THEN  POKE 216,0: GOTO 410: REM NOT CONFIGURED
  133. 1330  GOTO 1150: REM OTHER ERROR
  134. 1340 ER =  PEEK(222): IF ER = 6  THEN 1320
  135. 1350  GOTO 1160
  136. 1360  POKE EM,3:ER =  PEEK(222): IF ER = 6  THEN  TEXT : HOME : VTAB 10: PRINT "FILE NOT FOUND ON DISK": PRINT : PRINT "FATAL ERROR--CANNOT CONTINUE": END 
  137. 1370  GOTO 1160: REM OTHER ERROR
  138. 1380 ER =  PEEK(222): IF ER = 6  THEN  HOME : VTAB 12: PRINT "GARDEN.PLANNER NOT ON THIS DISK": PRINT : PRINT "<RETURN> TO TRY AGAIN, <ESC> TO QUIT";: GET Z$: PRINT : ON Z$ =  CHR$(27) GOTO 1290: PRINT D$"RUN GARDEN.PLANNER"
  139. 1390  GOTO 1160: REM OTHER ERROR