fred@cbmvax.UUCP (Fred Bowen) (12/12/87)
Here is the program I mentioned in a previous posting. It sould work on
either a C128 or a C64. Enjoy, and Happy Holidays (I'm going on vacation...)
Oops- C64 users should change the DEC() statements to decimal contants in
lines 130, 500, and 600. (Or go by yourself a C128D for xmas. :-)
100 REM CHECK 1581 DISK FOR CONTROLLER TYPE & J1 JUMPER
110 REM 12/09/87 FRED BOWEN
115 :
120 PRINT"INSERT ANY FORMATTED DISK IN DRIVE."
121 INPUT"CHECK WHICH UNIT";U: PRINT
125 :
130 OPEN 1,U,15 :L=DEC("1DA")AND255: H=DEC("1DA")/256
140 OPEN 2,U,2,"#"
145 PRINT#1,"M-R"CHR$(0)CHR$(192)CHR$(1): GET#1,A$
150 IF ASC(A$)<>192 THEN PRINT"DEVICE"U"IS NOT A 1581.": GOTO360
155 :
160 PRINT#1,"M-R"CHR$(L)CHR$(H)CHR$(5): REM MODIFY CONTROLLER CMDS
170 FORI=1TO5:GET#1,A$:B$=B$+CHR$(ASC(A$)OR3):C$=C$+A$:NEXT
180 PRINT#1,"M-W"CHR$(L)CHR$(H)CHR$(5)B$
190 :
200 PRINT#1,"U1";2;0;1;0 :GOSUB500: REM SEEK TRACK 1 & RESET TIMER
210 PRINT#1,"U1";2;0;80;0 :GOSUB600: REM SEEK TRACK 80 & READ TIMER
220 :
230 PRINT#1,"M-W"CHR$(8)CHR$(64)CHR$(1)CHR$(0): REM TEST JUMPER J1
240 PRINT#1,"M-R"CHR$(8)CHR$(64)CHR$(1): GET#1,J$
250 :
260 PRINT#1,"M-W"CHR$(L)CHR$(H)CHR$(5)C$: REM RESTORE CONTROLLER CMDS
270 IF VAL(F$)>0 THEN PRINT"SEEK ERROR- CHECK DISKETTE.": PRINT: RUN
285 :
290 PRINT"UNIT"U" CONTAINS A ";: REM REPORT
300 IF T>20 THEN PRINT"WD1770";
310 IF T<20 THEN PRINT"WD1772";
320 PRINT" AND J1 IS ";
330 IF J$="" THEN PRINT"OPEN"
340 IF J$>"" THEN PRINT"CLOSED"
360 :
370 CLOSE2: CLOSE1: END
380 :
390 :
500 FORI=11TO8STEP-1: POKEDEC("DC00")+I,0: NEXT: RETURN
600 INPUT#1,F$,R$,E$,D$: T=PEEK(DEC("DC09"))*10+PEEK(DEC("DC08")): RETURN
--
--
Fred Bowen uucp: {ihnp4|rutgers|caip}!cbmvax!fred
arpa: cbmvax!fred@RUTGERS.EDU
tele: 215 431-9100
Commodore Electronics, Ltd., 1200 Wilson Drive, West Chester, PA, 19380