home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib20b.dsk / DISK.MAP.II.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  130 lines

  1. 10  REM  **********************
  2. 20  REM  *     DISK.MAP.II    *
  3. 30  REM  *     BY ART MENA    *
  4. 40  REM  * COPYRIGHT (C) 1984 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * LINCOLN, MA. 01773 *
  7. 70  REM  **********************
  8. 80  REM 
  9. 90  REM 
  10. 130 B$ =  CHR$(7) + CHR$(7) + CHR$(7)
  11. 140 D$ =  CHR$(13) + CHR$(4)
  12. 150  REM 
  13. 160  REM  LOAD ASSEMBLY LANGUAGE
  14. 170  REM  SUBROUTINES
  15. 180  REM 
  16. 190  PRINT D$"BLOAD DISK.MAP.II.OBJ"
  17. 200  REM 
  18. 210  GOSUB 610: REM  INTRODUCTION
  19. 220  GOSUB 890: REM  CONFIGURATION
  20. 230  REM 
  21. 240  REM  MAIN LOOP
  22. 250  REM 
  23. 260  IF OD$ = "P"  THEN  PRINT D$;"PR#"PS%; CHR$(13) + CHR$(9) +"80N"
  24. 270  POKE 46528,DR%: REM  $B5C0
  25. 280  POKE 46529,DS%: REM  $B5C1
  26. 290  REM 
  27. 300  REM  POKE DISK DRIVE AND
  28. 310  REM  SLOT INTO IOCB
  29. 320  REM 
  30. 330  POKE IOCB +1,DS% *16
  31. 340  POKE IOCB +15,DS% *16
  32. 350  POKE IOCB +2,DR%
  33. 360  REM 
  34. 370  CALL 32768: REM  CATALOG
  35. 380  REM 
  36. 390  IF OD$ = "C"  THEN  GOSUB 570: HOME : PRINT : PRINT "LOADING THE TRACK SECTOR MAP": PRINT : FLASH : PRINT " PLEASE WAIT ": NORMAL 
  37. 400  REM 
  38. 410  CALL 32771: REM  CLEAR MAP
  39. 420  CALL 32774: REM  LOAD MAP
  40. 430  REM 
  41. 440  REM  DISPLAY THE MAP
  42. 450  REM 
  43. 460  IF OD$ = "C"  THEN  CALL 32780: PRINT : GOSUB 570: GOTO 220
  44. 470  REM 
  45. 480  REM  PRINT THE MAP
  46. 490  REM 
  47. 500  IF  PEEK(12) >33  THEN  PRINT  CHR$(12)
  48. 510  PRINT : CALL 32777: PRINT  CHR$(12);
  49. 520  PRINT D$"PR#0": GOTO 220
  50. 530  REM 
  51. 540  END 
  52. 550  REM  MISC ROUTINES
  53. 560  FOR K = 1 TO 1000: NEXT K: RETURN 
  54. 570  POKE 49168,0: PRINT : PRINT " PRESS <RETURN> TO CONTINUE ";: CALL BLEEP
  55. 580  GET Z$: IF  ASC(Z$) < >13  AND  ASC(Z$) < >141  THEN  GOTO 580
  56. 590  RETURN 
  57. 600  REM  INTRODCTION
  58. 610 IOCB = 33044: REM  $8114
  59. 620 DR% =  PEEK(43624): REM  CURRENT DISK DRIVE
  60. 630 DS% = 6: REM  DEFAULT DISK SLOT
  61. 640 OD$ = "C": REM  DEFAULT OUTPUT TO CRT
  62. 650 OF$ = "H": REM  DEFAULT HEX OUTPUT FORMAT
  63. 660 PS% = 1: REM  DEFAULT PRINTER SLOT
  64. 670 BLEEP = 32783
  65. 680 PF = 25:DF = 26
  66. 690  POKE PF,0: POKE DF,128
  67. 700  POKE 46528,DR%: REM  $B5C0
  68. 710  POKE 46529,DS%: REM  $B5C1
  69. 720  TEXT : HOME : VTAB 22: PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **": VTAB 1
  70. 730  HTAB 13: INVERSE : PRINT "DISK MAP II": NORMAL 
  71. 740  PRINT : PRINT : PRINT  TAB( 13)"BY ART MENA": PRINT : PRINT 
  72. 750  PRINT "   THIS PROGRAM WILL PRINT A MAP WHICH"
  73. 760  PRINT " WILL INDICATE THE ACTUAL TRACK/SECTOR"
  74. 770  PRINT " LOCATION OF EACH FILE ON A  DISKETTE."
  75. 780  PRINT " A CATALOG  OF THE  DISKETTE  WILL  BE"
  76. 790  PRINT " PRINTED FIRST.  BEFORE EACH FILE NAME"
  77. 800  PRINT " IS A CHARACTER WHICH WILL BE  USED TO"
  78. 810  PRINT " INDICATE THE LOCATION OF  THE FILE ON"
  79. 820  PRINT " THE DISK MAP.   IN ADDITION, ANY CON-"
  80. 830  PRINT " TROL CHARACTERS  EMBEDDED IN THE FILE"
  81. 840  PRINT " NAME WILL BE REPLACED WITH AN  UNDER-"
  82. 850  PRINT " LINE '"; CHR$(223)"'."
  83. 860  GOSUB 570
  84. 870  RETURN 
  85. 880  REM  SET CONFIGURATION
  86. 890  HOME 
  87. 900  VTAB 1: HTAB 13: INVERSE : PRINT "DISK MAP II": NORMAL : PRINT 
  88. 910  PRINT "CURRENT CONFIGURATION": PRINT 
  89. 920  PRINT "1) DISK DRIVE . . . . . . . . . "DR%
  90. 930  PRINT "2) DISK SLOT  . . . . . . . . . "DS%
  91. 940  PRINT "3) OUTPUT (C=CRT,P=PRINTER) . . "OD$
  92. 950  PRINT "4) FORMAT (D=DECIMAL,H=HEX) . . "OF$
  93. 960  PRINT "5) PRINTER SLOT . . . . . . . . "PS%
  94. 970  PRINT : PRINT 
  95. 980  PRINT "SELECT (1-5) TO CHANGE CONFIGURATION"
  96. 990  VTAB 13: PRINT "<ESC> TO EXIT, <RETURN> TO CONTINUE ";: CALL BLEEP: GET Z$
  97. 1000  IF  ASC(Z$) = 13  OR  ASC(Z$) = 141  THEN  PRINT : RETURN 
  98. 1010  IF  ASC(Z$) = 27  THEN  HOME : END : REM  ESC
  99. 1020  IF Z$ = "1"  THEN  GOSUB 1090: GOTO 900
  100. 1030  IF Z$ = "2"  THEN  GOSUB 1130: GOTO 890
  101. 1040  IF Z$ = "3"  THEN  GOSUB 1210: GOTO 900
  102. 1050  IF Z$ = "4"  THEN  GOSUB 1240: GOTO 900
  103. 1060  IF Z$ = "5"  THEN  GOSUB 1270: GOTO 890
  104. 1070  PRINT : GOTO 990
  105. 1080  REM  TOGGLE DISK DRIVE
  106. 1090 DR% = (DR% = 2) +2 *(DR% = 1) +(DR% < >1) *(DR% < >2)
  107. 1100  POKE 43624,DR%: REM  $AA68
  108. 1110  RETURN 
  109. 1120  REM  ENTER DISK SLOT
  110. 1130  HOME : PRINT : PRINT 
  111. 1140  PRINT "INPUT THE DISK DRIVE SLOT NUMBER"
  112. 1150  PRINT " (1 THROUGH 7) ";: GET S$:DS% =  VAL(S$): PRINT S$
  113. 1160  IF DS% > = 1  AND DS% < = 7  THEN  RETURN 
  114. 1170  PRINT : PRINT : FLASH : PRINT B$" INCORRECT DISK DRIVE SLOT NUMBER ": NORMAL 
  115. 1180  GOSUB 560
  116. 1190  GOTO 1130
  117. 1200  IF PS% > = 1  AND PS% < = 7  THEN  RETURN 
  118. 1210  IF OD$ = "C"  THEN OD$ = "P": POKE PF,128: RETURN 
  119. 1220  IF OD$ = "P"  THEN OD$ = "C": POKE PF,0: RETURN 
  120. 1230  REM  TOGGLE FORMAT
  121. 1240  IF OF$ = "D"  THEN OF$ = "H": POKE DF,128: RETURN 
  122. 1250  IF OF$ = "H"  THEN OF$ = "D": POKE DF,0: RETURN 
  123. 1260  REM  GET PRINTER SLOT
  124. 1270  HOME : PRINT : PRINT 
  125. 1280  PRINT "INPUT THE PRINTER SLOT NUMBER"
  126. 1290  PRINT " (1 THROUGH 7) ";: GET S$:PS% =  VAL(S$): PRINT S$
  127. 1300  IF PS% > = 1  AND PS% < = 7  THEN  RETURN 
  128. 1310  PRINT : PRINT : FLASH : PRINT B$" INCORRECT PRINTER SLOT NUMBER ": NORMAL 
  129. 1320  GOSUB 560
  130. 1330  GOTO 1270