home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib32a.dsk / NOVEMBER.1987 / ALTER.DOUBLER.bas next >
BASIC Source File  |  2023-02-26  |  5KB  |  91 lines

  1. 10  REM     ************************
  2. 20  REM     *                      *
  3. 30  REM     *    ALTER.DOUBLER     *
  4. 40  REM     *  BY SHERMAN PADDOCK  *
  5. 50  REM     *  COPYRIGHT (C) 1987  *
  6. 60  REM     *  BY MICROSPARC, INC  *
  7. 70  REM     *  CONCORD, MA. 01742  *
  8. 80  REM     *                      *
  9. 90  REM     ************************
  10. 100  ONERR  GOTO 870
  11. 110  PRINT  CHR$(4)"BLOAD DOUBLER": POKE 8654,0: POKE 8202,96: POKE 8774,0:H$ =  CHR$(8) + CHR$(8):DFAULT$ = "5"
  12. 120  REM 
  13. 130  REM *******************************
  14. 140  REM *  CHANGE MESSAGE IN DOUBLER  *
  15. 150  REM *******************************
  16. 160  REM 
  17. 170  FOR I = 1 TO 25: POKE 8850 +I, ASC( MID$ ("returns you to the MENU. ",I,1)) +128: NEXT : GOTO 360
  18. 180  REM 
  19. 190  REM *******************************
  20. 200  REM * RIGHT JUST DOS 3.3 SECTOR#  *
  21. 210  REM *******************************
  22. 220  REM 
  23. 230  PRINT  RIGHT$(" " + STR$(I *16 -8),3);: RETURN 
  24. 240  REM 
  25. 250  REM *******************************
  26. 260  REM * RIGHT JUSTIFY PRODOS BLOCK# *
  27. 270  REM *******************************
  28. 280  REM 
  29. 290  PRINT  RIGHT$("  " + STR$((560 -I *16)/2 -7),3);: RETURN 
  30. 300  REM 
  31. 310  REM *******************************
  32. 320  REM * CENTER AND PRINT COPYRIGHT  *
  33. 330  REM *    MESSAGE FROM DOUBLER     *
  34. 340  REM *******************************
  35. 350  REM  
  36. 360  TEXT : HOME : POKE 32,1: HTAB 3: CALL 8195: PRINT : HTAB 3: POKE 8198,207: CALL 8195: POKE 8198,179: POKE 32,0: PRINT : POKE 34,3
  37. 370  REM 
  38. 380  REM *******************************
  39. 390  REM *  PRINT HEADINGS IN INVERSE  *
  40. 400  REM *******************************
  41. 410  REM 
  42. 420  INVERSE : HTAB 3: PRINT "DOUBLER";: HTAB 12: PRINT  SPC( 4);"DOS 3.3"; SPC( 5);: HTAB 30: PRINT "PRODOS": HTAB 3: PRINT "CHOICES";: HTAB 12: PRINT "SECTORS (TRACKS)";: HTAB 30: PRINT "BLOCKS": NORMAL : PRINT 
  43. 430  REM 
  44. 440  REM *******************************
  45. 450  REM *  CALCULATE & PRINT OPTIONS  *
  46. 460  REM *******************************
  47. 470  REM 
  48. 480  FOR CHOICE = 0 TO 9:I = CHOICE *2 +5.5: PRINT  TAB( 5);"<";CHOICE;">"; SPC( 6);: GOSUB 230: PRINT  SPC( 5);"(" + RIGHT$(" " + STR$(I -.5),2) +")"; SPC( 5);: GOSUB 290: PRINT : NEXT 
  49. 490  PRINT : PRINT  TAB( 9)"<ESC>  ENDS PROGRAM": PRINT :CHOICE =  VAL(DFAULT$): PRINT  TAB( 7)"ENTER DOUBLER CHOICE  <";DFAULT$;">"H$;
  50. 500  GET DFAULT$: ON DFAULT$ =  CHR$(13) GOTO 560: ON DFAULT$ =  CHR$(3)  OR DFAULT$ =  CHR$(27) GOTO 860: ON DFAULT$ <"0"  OR DFAULT$ >"9" GOTO 500:CHOICE =  VAL(DFAULT$)
  51. 510  REM 
  52. 520  REM *******************************
  53. 530  REM *     VERIFY CHOICE TAKEN     *
  54. 540  REM *******************************
  55. 550  REM 
  56. 560 DFAULT$ =  STR$(CHOICE): HOME : VTAB 7:I = CHOICE *2 +5.5: PRINT  TAB( 5 - INT( LEN(DFAULT$)/2))"YOU HAVE CHOSEN #";CHOICE;" TO CREATE A": PRINT : HTAB 12: INVERSE : PRINT "HYBRID DISKETTE": NORMAL 
  57. 570  PRINT : PRINT  TAB( 17);"WITH": PRINT : HTAB 6: INVERSE : GOSUB 230: PRINT " USABLE DOS 3.3 SECTORS": PRINT : HTAB 17: PRINT "AND": PRINT : HTAB 7: GOSUB 290: PRINT " USABLE PRODOS BLOCKS": NORMAL 
  58. 580  VTAB 22: PRINT  TAB( 8)"IS THIS WHAT YOU WANT?  <Y>";H$;
  59. 590  GET A$: ON A$ =  CHR$(3) GOTO 860: ON A$ = "N"  OR A$ = "n" GOTO 360: ON A$ < >"Y"  AND A$ < >"y"  AND A$ < > CHR$(13) GOTO 590
  60. 600  REM 
  61. 610  REM *******************************
  62. 620  REM * CALCULATE ProDOS ASSIGNMENT *
  63. 630  REM *******************************
  64. 640  REM 
  65. 650 CHOICE = 30 -1 *(CHOICE >6) -CHOICE *2: POKE 8291,CHOICE
  66. 660  REM 
  67. 670  REM *******************************
  68. 680  REM * MARK DOS 3.3 TRACKS AS USED *
  69. 690  REM *******************************
  70. 700  REM 
  71. 710  FOR I = 9186 TO 9186 +CHOICE *4: POKE I,0: NEXT 
  72. 720  REM 
  73. 730  REM *******************************
  74. 740  REM *  MARK DOS 3.3 TRACKS FREE   *
  75. 750  REM * NEXT, MARK TRACK 11 AS USED *
  76. 760  REM *******************************
  77. 770  REM 
  78. 780  FOR I = I -3 TO 9323  STEP 4: POKE I,0: POKE I +1,0: POKE I +2,255: POKE I +3,255: NEXT : POKE 9254,0: POKE 9255,0
  79. 790  REM 
  80. 800  REM *******************************
  81. 810  REM *        CALL DOUBLER         *
  82. 820  REM *     THEN RETURN TO MENU     *
  83. 830  REM *******************************
  84. 840  REM 
  85. 850  HOME : VTAB 10: CALL 8215: GOTO 360
  86. 860  TEXT : END 
  87. 870 E =  PEEK(222):EL =  PEEK(218) +256 * PEEK(219): POKE 216,0: CALL  -3288
  88. 880  HOME : VTAB 12: IF E = 6  THEN  PRINT "DOUBLER NOT ON THIS DISK": GOTO 900
  89. 890  IF E = 8  THEN  PRINT "I/O ERROR--CHECK DRIVE DOOR"
  90. 900  IF E = 6  OR E = 8  THEN  VTAB 21: PRINT "ESCAPE TO QUIT, RETURN TO TRY AGAIN";: GET Z$: PRINT : ON Z$ < > CHR$(27) GOTO 100: END 
  91. 910  PRINT "ERROR "E" IN LINE "EL: END