home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib24b.dsk / DOS.DESIGNER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  7KB  |  140 lines

  1. 10  REM  **********************
  2. 20  REM  *    DOS.DESIGNER    *
  3. 30  REM  * BY JAMES PATRIDGE  *
  4. 40  REM  * COPYRIGHT (C) 1985 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA  01742 *
  7. 70  REM  **********************
  8. 80  CLEAR : TEXT : HOME 
  9. 90 NP = 8:D$ =  CHR$(4)
  10. 100  INVERSE 
  11. 110  FOR I = 0 TO 39: PRINT "%";: NEXT I
  12. 120  FOR I = 0 TO 20: PRINT "%" SPC( 12)"%": NEXT I
  13. 130  FOR I = 0 TO 39: PRINT "%";: NEXT I
  14. 140  HTAB 6: VTAB 4: PRINT "DOS"
  15. 150  HTAB 4: PRINT "DESIGNER": PRINT : PRINT : PRINT "%%%%%%%%%%%%%": REM  13 %'S
  16. 160  PRINT : HTAB 6: PRINT "BY": HTAB 3: PRINT "J.PATRIDGE": PRINT : PRINT "%%%%%%%%%%%%%": REM  13'S
  17. 170  PRINT : PRINT : HTAB 3: PRINT "COPYRIGHT": HTAB 5: PRINT "1985": HTAB 6: PRINT "BY"
  18. 180  HTAB 3: PRINT "MICROSPARC": HTAB 5: PRINT "INC.": PRINT 
  19. 190  FOR I = 2 TO 22: VTAB I: HTAB 40: PRINT "%": NEXT I
  20. 200  POKE 32,15: POKE 33,24: POKE 34,1: POKE 35,21
  21. 210  HOME : NORMAL : PRINT : PRINT "     < MAIN MENU >"
  22. 220  PRINT 
  23. 230  FOR I = 1 TO NP: READ A$: PRINT I") "A$: NEXT I
  24. 240  PRINT 
  25. 250  VTAB 14: CALL  -958: INPUT "SELECTION => ";A$:A =  VAL(A$): IF A <1  OR A >8  THEN 250
  26. 260  IF A <4  THEN  PRINT : INVERSE : PRINT "PLEASE STAND BY": NORMAL : ONERR  GOTO 310
  27. 270  ON A GOSUB 280,290,300,360,730,890,920,1360: RESTORE : GOTO 210
  28. 280  PRINT D$;"RUN COMMAND.CHANGER"
  29. 290  PRINT D$;"RUN ERROR.MESSAGES"
  30. 300  PRINT D$;"RUN DISK.VOLUME"
  31. 310  IF  PEEK(222) = 6  THEN  PRINT  CHR$(7): PRINT "PLACE DOS DESIGNER DISK": PRINT "IN DRIVE AND PRESS": PRINT "A KEY": WAIT  -16384,128: POKE  -16368,0: VTAB 17: CALL  -958: GOTO 270
  32. 320  PRINT : PRINT "ERROR #"; PEEK(222): PRINT "PRESS A KEY": PRINT "TO CONTINUE": WAIT  -16384,128: POKE  -16368,0: GOTO 250
  33. 330  REM  :
  34. 340  REM  : FILE TYPE ROUTINE
  35. 350  REM  :
  36. 360 A$(1) = "TEXT FILE ":A$(2) = "INTEGER FILE ":A$(3) = "APPLESOFT FILE ":A$(4) = "BINARY FILE ":A$(5) = "UNLOCKED FILE":A$(6) = "LOCKED FILE"
  37. 370 NN$ = "TIAB *"
  38. 380  HOME : VTAB 3
  39. 390  FOR I = 1 TO 6: PRINT  MID$ (NN$,I,1)"="A$(I): NEXT I
  40. 400  PRINT : PRINT "ENTER NEW CHARACTERS :"
  41. 410  FOR I = 1 TO 6
  42. 420  VTAB 12: CALL  -958: PRINT A$(I)"=> ";: INPUT " ";C$
  43. 430  IF  LEN(C$) >1  THEN  PRINT "ONE CHARACTER LIMIT !": CALL  -1052: FOR J = 1 TO 2000: NEXT J: GOTO 420
  44. 440  IF C$ = ""  THEN C$ =  MID$ (NN$,I,1)
  45. 450 M$ = M$ +C$: NEXT I
  46. 460  HOME : VTAB 3: FOR I = 1 TO 6: PRINT  MID$ (M$,I,1)" = "A$(I): NEXT I
  47. 470  PRINT : INPUT "CORRECT (YES/NO) => ";AN$
  48. 480  IF  LEFT$(AN$,1) < >"Y"  THEN M$ = "": GOTO 380
  49. 490  FOR I = 1 TO 6
  50. 500  VTAB 2 +I: HTAB 20: CALL  -868: FLASH : PRINT "<=": NORMAL 
  51. 510  VTAB 10: CALL  -958: PRINT "DISPLAY CHARACTER # "I" :": PRINT : PRINT "<N> NORMAL": PRINT "<F> FLASHING": PRINT "<I> INVERSE": PRINT : PRINT : INPUT "SELECTION =>";N$
  52. 520  IF N$ = "N"  THEN X = 128: GOTO 560
  53. 530  IF N$ = "F"  THEN X = 0: GOTO 560
  54. 540  IF N$ = "I"  THEN X =  -64: GOTO 560
  55. 550  GOTO 510
  56. 560 BV = ( ASC( MID$ (M$,I,1)))
  57. 570  IF BV <27  AND X = 128  THEN  GOTO 630
  58. 580  IF BV <27  AND X = 0  THEN BV = BV +128
  59. 590  IF BV <27  AND X =  -64  THEN BV = BV +192
  60. 600  IF BV <64  THEN BV = BV +64
  61. 610  IF I = 5  THEN  GOTO 640
  62. 620  IF I = 6  THEN  GOTO 650
  63. 630  POKE 45990 +I,BV +X
  64. 640  POKE 44508,BV +X
  65. 650  POKE 44515,BV +X
  66. 660  VTAB 2 +I: HTAB 20: CALL  -868
  67. 670  NEXT I
  68. 680  VTAB 17: HTAB 1: CALL  -958: PRINT "THE DEED IS DONE !": FOR I = 1 TO 2000: NEXT I: RESTORE : RETURN 
  69. 690  REM  :
  70. 700  REM  : SERIAL NUMBER
  71. 710  REM  : ROUTINE
  72. 720  REM  : 
  73. 730  HOME : PRINT : PRINT "< DOS SERIAL NUMBER >"
  74. 740  PRINT : PRINT "YOU MAY ENCODE A SIX"
  75. 750  PRINT "DIGIT SERIAL NUMBER"
  76. 760  PRINT "WITHIN THE DOS IMAGE."
  77. 770  PRINT : PRINT 
  78. 780  INPUT "ENTER NUMBER =>";SN$
  79. 790  IF  LEN(SN$) <1  OR  LEN(SN$) >6  THEN  PRINT "MUST BE (1-6) DIGITS": CALL  -1052: FOR I = 1 TO 2000: NEXT I: GOTO 730
  80. 800  FOR I = 1 TO  LEN(SN$)
  81. 810 X$ =  MID$ (SN$,I,1)
  82. 820  POKE 46988 +I, ASC(X$)
  83. 830  NEXT I
  84. 840  VTAB 17: HTAB 1: CALL  -958: PRINT "THE DEED IS DONE !": FOR I = 1 TO 2000: NEXT I: RESTORE : RETURN 
  85. 850  REM  :
  86. 860  REM  : UNLISTABLE PROGRAM
  87. 870  REM  : ROUTINE
  88. 880  REM 
  89. 890  POKE 42210,76: POKE 42211,223: POKE 42212,188
  90. 900  POKE 48351,169: POKE 48352,255: POKE 48353,133: POKE 48354,214: POKE 48355,108: POKE 48356,88: POKE 48357,157
  91. 910  VTAB 17: HTAB 1: CALL  -958: PRINT "THE DEED IS DONE !": FOR I = 1 TO 2000: NEXT I: RESTORE : RETURN 
  92. 920  REM  :
  93. 930  REM  : RELOCATE VTOC &
  94. 940  REM  : DIRECTORY
  95. 950  REM  :
  96. 960  TEXT : HOME 
  97. 970 FT$(1) = "APPLESOFT":FT$(2) = "INTEGER":FT$(3) = "BINARY":FT$(4) = "TEXT"
  98. 980 D1$ = "<< RELOCATE VTOC & INITIALIZE DISK >>"
  99. 990  VTAB 2: HTAB 2: PRINT "<< RELOCATE VTOC & INITIALIZE DISK >>"
  100. 1000  PRINT : FOR I = 1 TO 40: PRINT "=";: NEXT I: PRINT 
  101. 1010  INPUT "VTOC TRAC # (3-35) DECIMAL => ";TK$: PRINT 
  102. 1020 TK =  VAL(TK$)
  103. 1030  IF TK <3  OR TK >35  THEN  GOTO 960
  104. 1040  INPUT "GREETING PROGRAM NAME => ";N$: CALL  -958
  105. 1050  IF N$ = ""  THEN  CALL  -1052: PRINT "ILLEGAL FILE NAME !": FOR I = 1 TO 1000: NEXT I: VTAB 8: CALL  -958: GOTO 1040
  106. 1060  IF  LEN(N$) >30  OR  ASC( LEFT$(N$,1)) <65  OR  ASC( LEFT$(N$,1) >90  THEN  CALL  -1052: PRINT "ILLEGAL FILE NAME !": FOR I = 1 TO 1000: NEXT I: VTAB 8: CALL  -958: GOTO 1040
  107. 1070  PRINT : PRINT "GREETING PROGRAM FILE TYPE"
  108. 1080  PRINT "1- APPLESOFT": PRINT "2- INTEGER": PRINT "3- BINARY": PRINT "4- TEXT": PRINT : INPUT "SELECTION => ";FT$
  109. 1090 FT =  VAL(FT$)
  110. 1100  IF FT <1  OR FT >4  THEN  VTAB 9: CALL  -1052: CALL  -958: GOTO 1070
  111. 1110  IF FT = 3  THEN  POKE 40514,52
  112. 1120  IF FT = 4  THEN  POKE 40514,20
  113. 1130  PRINT 
  114. 1140  INPUT "PLEASE INSERT TARGET DISK =>";A$
  115. 1150  CALL  -1052: VTAB 6: CALL  -958
  116. 1160  FLASH : PRINT "ATTENTION:": NORMAL : PRINT : PRINT : PRINT : PRINT "PROCESS DESTROYS ALL DATA ON TARGET DISK": PRINT : PRINT 
  117. 1170  PRINT "CURRENT PARAMETERS: ": PRINT 
  118. 1180  PRINT "VTOC TRACK # => "TK
  119. 1190  PRINT "GREETING PROGRAM NAME => "N$
  120. 1200  PRINT "FILE TYPE => "FT$(FT)
  121. 1210  PRINT : INVERSE : PRINT "<CTRL>S";: NORMAL : PRINT " TO PROCEED    ";: INVERSE : PRINT "ESC";: NORMAL : PRINT " TO CANCEL"
  122. 1220  PRINT : PRINT "VERIFY TO PROCEED =>";: GET A$
  123. 1230  IF A$ =  CHR$(27)  THEN  GOTO 100
  124. 1240  IF A$ < > CHR$(19)  THEN  GOTO 920
  125. 1250  PRINT 
  126. 1260  VTAB 10: CALL  -958: HTAB 10: INVERSE : PRINT " INITIALIZING DISK ": NORMAL 
  127. 1270 TT = (TK *4)
  128. 1280  IF TK = 35  THEN  POKE 44725,144
  129. 1290  POKE 44741,TT: POKE 44745,TT +4
  130. 1300  POKE 44033,TK: POKE 46012,TK: POKE 48894,36: POKE 44764,TK: POKE 46063,36
  131. 1310  PRINT D$;"INIT"N$
  132. 1320  HOME : VTAB 8
  133. 1330  PRINT "THE DEED IS DONE"
  134. 1340  PRINT : PRINT "REBOOT PROGRAM DISK"
  135. 1350  END 
  136. 1360  TEXT : HOME : VTAB 12
  137. 1370  PRINT "TO SAVE ALL PATCHES, INITIALIZE": PRINT "A NEW DISK OR RE-RUN 'DOS DESIGNER' AND": PRINT "SELECT OPTION 7."
  138. 1380  END 
  139. 1390  DATA  DOS COMMANDS,DOS ERROR MESSAGES,DISK VOLUME TEXT
  140. 1400  DATA  FILE TYPE CHARACTER,ADD SERIAL NUMBER,UNLISTABLE PROGRAMS, RELOCATE VTOC & INIT,EXIT