home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib20b.dsk
/
DISK.MAP.II.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
5KB
|
130 lines
10 REM **********************
20 REM * DISK.MAP.II *
30 REM * BY ART MENA *
40 REM * COPYRIGHT (C) 1984 *
50 REM * BY MICROSPARC, INC *
60 REM * LINCOLN, MA. 01773 *
70 REM **********************
80 REM
90 REM
130 B$ = CHR$(7) + CHR$(7) + CHR$(7)
140 D$ = CHR$(13) + CHR$(4)
150 REM
160 REM LOAD ASSEMBLY LANGUAGE
170 REM SUBROUTINES
180 REM
190 PRINT D$"BLOAD DISK.MAP.II.OBJ"
200 REM
210 GOSUB 610: REM INTRODUCTION
220 GOSUB 890: REM CONFIGURATION
230 REM
240 REM MAIN LOOP
250 REM
260 IF OD$ = "P" THEN PRINT D$;"PR#"PS%; CHR$(13) + CHR$(9) +"80N"
270 POKE 46528,DR%: REM $B5C0
280 POKE 46529,DS%: REM $B5C1
290 REM
300 REM POKE DISK DRIVE AND
310 REM SLOT INTO IOCB
320 REM
330 POKE IOCB +1,DS% *16
340 POKE IOCB +15,DS% *16
350 POKE IOCB +2,DR%
360 REM
370 CALL 32768: REM CATALOG
380 REM
390 IF OD$ = "C" THEN GOSUB 570: HOME : PRINT : PRINT "LOADING THE TRACK SECTOR MAP": PRINT : FLASH : PRINT " PLEASE WAIT ": NORMAL
400 REM
410 CALL 32771: REM CLEAR MAP
420 CALL 32774: REM LOAD MAP
430 REM
440 REM DISPLAY THE MAP
450 REM
460 IF OD$ = "C" THEN CALL 32780: PRINT : GOSUB 570: GOTO 220
470 REM
480 REM PRINT THE MAP
490 REM
500 IF PEEK(12) >33 THEN PRINT CHR$(12)
510 PRINT : CALL 32777: PRINT CHR$(12);
520 PRINT D$"PR#0": GOTO 220
530 REM
540 END
550 REM MISC ROUTINES
560 FOR K = 1 TO 1000: NEXT K: RETURN
570 POKE 49168,0: PRINT : PRINT " PRESS <RETURN> TO CONTINUE ";: CALL BLEEP
580 GET Z$: IF ASC(Z$) < >13 AND ASC(Z$) < >141 THEN GOTO 580
590 RETURN
600 REM INTRODCTION
610 IOCB = 33044: REM $8114
620 DR% = PEEK(43624): REM CURRENT DISK DRIVE
630 DS% = 6: REM DEFAULT DISK SLOT
640 OD$ = "C": REM DEFAULT OUTPUT TO CRT
650 OF$ = "H": REM DEFAULT HEX OUTPUT FORMAT
660 PS% = 1: REM DEFAULT PRINTER SLOT
670 BLEEP = 32783
680 PF = 25:DF = 26
690 POKE PF,0: POKE DF,128
700 POKE 46528,DR%: REM $B5C0
710 POKE 46529,DS%: REM $B5C1
720 TEXT : HOME : VTAB 22: PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **": VTAB 1
730 HTAB 13: INVERSE : PRINT "DISK MAP II": NORMAL
740 PRINT : PRINT : PRINT TAB( 13)"BY ART MENA": PRINT : PRINT
750 PRINT " THIS PROGRAM WILL PRINT A MAP WHICH"
760 PRINT " WILL INDICATE THE ACTUAL TRACK/SECTOR"
770 PRINT " LOCATION OF EACH FILE ON A DISKETTE."
780 PRINT " A CATALOG OF THE DISKETTE WILL BE"
790 PRINT " PRINTED FIRST. BEFORE EACH FILE NAME"
800 PRINT " IS A CHARACTER WHICH WILL BE USED TO"
810 PRINT " INDICATE THE LOCATION OF THE FILE ON"
820 PRINT " THE DISK MAP. IN ADDITION, ANY CON-"
830 PRINT " TROL CHARACTERS EMBEDDED IN THE FILE"
840 PRINT " NAME WILL BE REPLACED WITH AN UNDER-"
850 PRINT " LINE '"; CHR$(223)"'."
860 GOSUB 570
870 RETURN
880 REM SET CONFIGURATION
890 HOME
900 VTAB 1: HTAB 13: INVERSE : PRINT "DISK MAP II": NORMAL : PRINT
910 PRINT "CURRENT CONFIGURATION": PRINT
920 PRINT "1) DISK DRIVE . . . . . . . . . "DR%
930 PRINT "2) DISK SLOT . . . . . . . . . "DS%
940 PRINT "3) OUTPUT (C=CRT,P=PRINTER) . . "OD$
950 PRINT "4) FORMAT (D=DECIMAL,H=HEX) . . "OF$
960 PRINT "5) PRINTER SLOT . . . . . . . . "PS%
970 PRINT : PRINT
980 PRINT "SELECT (1-5) TO CHANGE CONFIGURATION"
990 VTAB 13: PRINT "<ESC> TO EXIT, <RETURN> TO CONTINUE ";: CALL BLEEP: GET Z$
1000 IF ASC(Z$) = 13 OR ASC(Z$) = 141 THEN PRINT : RETURN
1010 IF ASC(Z$) = 27 THEN HOME : END : REM ESC
1020 IF Z$ = "1" THEN GOSUB 1090: GOTO 900
1030 IF Z$ = "2" THEN GOSUB 1130: GOTO 890
1040 IF Z$ = "3" THEN GOSUB 1210: GOTO 900
1050 IF Z$ = "4" THEN GOSUB 1240: GOTO 900
1060 IF Z$ = "5" THEN GOSUB 1270: GOTO 890
1070 PRINT : GOTO 990
1080 REM TOGGLE DISK DRIVE
1090 DR% = (DR% = 2) +2 *(DR% = 1) +(DR% < >1) *(DR% < >2)
1100 POKE 43624,DR%: REM $AA68
1110 RETURN
1120 REM ENTER DISK SLOT
1130 HOME : PRINT : PRINT
1140 PRINT "INPUT THE DISK DRIVE SLOT NUMBER"
1150 PRINT " (1 THROUGH 7) ";: GET S$:DS% = VAL(S$): PRINT S$
1160 IF DS% > = 1 AND DS% < = 7 THEN RETURN
1170 PRINT : PRINT : FLASH : PRINT B$" INCORRECT DISK DRIVE SLOT NUMBER ": NORMAL
1180 GOSUB 560
1190 GOTO 1130
1200 IF PS% > = 1 AND PS% < = 7 THEN RETURN
1210 IF OD$ = "C" THEN OD$ = "P": POKE PF,128: RETURN
1220 IF OD$ = "P" THEN OD$ = "C": POKE PF,0: RETURN
1230 REM TOGGLE FORMAT
1240 IF OF$ = "D" THEN OF$ = "H": POKE DF,128: RETURN
1250 IF OF$ = "H" THEN OF$ = "D": POKE DF,0: RETURN
1260 REM GET PRINTER SLOT
1270 HOME : PRINT : PRINT
1280 PRINT "INPUT THE PRINTER SLOT NUMBER"
1290 PRINT " (1 THROUGH 7) ";: GET S$:PS% = VAL(S$): PRINT S$
1300 IF PS% > = 1 AND PS% < = 7 THEN RETURN
1310 PRINT : PRINT : FLASH : PRINT B$" INCORRECT PRINTER SLOT NUMBER ": NORMAL
1320 GOSUB 560
1330 GOTO 1270