| Posted By
SVS on 2005-03-08 11:52:55
| Drive model detecting
Hello, does somebody of you know an easy way to detect the drive model (1541, 1551, etc.) without to study their RAMs. In other hand, is existing a byte in the drives's ROMs where this info is written?
|
|
Posted By
JamesC on 2005-03-08 21:30:45
| Re: Drive model detecting
Yes.... in the DS$ returned on power-up or reset.
Type of disk drive?
You may want to know what type of disk drive you are interfacing with. In some cases there may also be more than one disk drive ROM version that you need to check for. To check what disk drive is being used you can reset the drive then check the response message that you get back in the disk status message. Use a reset command "UI" (warm start reset) then after a short delay read the disk drive status. Here is a program fragment that will do it (assuming device 9):
OPEN 1,9,15,"UI" : FOR I=1 TO 50 : NEXT CLOSE 1 : OPEN 1,9,15 INPUT#1,S,M$ IF S=73 THEN PRINT M$
Here is a sampling of messages that you will get in M$
1571 old ROM : CBM DOS V3.0 1571 [ free standing 1571 ] 1571 new ROM : CBM DOS V3.1 1571 [ 128D-CR 1571 ] 1571 w/JiffyDOS : JIFFYDOS 5.0 1571 1541 : CBM DOS V2.6 1541 1581 w/JiffyDOS : COPYRIGHT CMD DOS 5.0 1581
The above information courtesy of Cameron Kaiser's Commodore Knowledge Database: http://www.floodgap.com/retrobits/ckb/display.cgi?85
From here, a simple RIGHT$(DS$,4) will return the Commodore disk drive used. You might have to force a "1541" if none of the above is found (I do not know what Csabo's Oceanic drive or an Excellerator drive will return).
|
|
Posted By
Csabo on 2005-03-08 23:21:30
| Re: Drive model detecting
Detecting value changes on $FEF0 can tell you if a 1551 is connected. Credits go to Gaia. This works well for me:
LDA #$FF STA $FEF2 ; LDA #$55 STA $FEF0 ; LDA $FEF0 CMP #$55 BNE no_1551 ; LDA #$AA STA $FEF0 ; LDA $FEF0 CMP #$AA BNE no_1551
|
|
| |
Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon |