Add HP9133 disk drive#12561
Conversation
src/devices/machine/wd2010.cpp
Outdated
| m_out_bdrq_cb(0); | ||
| complete_immediate(param); | ||
| if ((m_task_file[TASK_FILE_COMMAND] & 4) && m_task_file[TASK_FILE_SECTOR_COUNT] > 1) { | ||
| m_task_file[TASK_FILE_SECTOR_COUNT]--; | ||
| m_task_file[TASK_FILE_SECTOR_NUMBER]++; | ||
| read_sector(m_task_file[TASK_FILE_COMMAND]); | ||
| } else { | ||
| complete_immediate(param); | ||
| } |
There was a problem hiding this comment.
Please use Allman formatting like the existing code in this file.
There was a problem hiding this comment.
After finding all the various disk images required for DEC rainbow, i tried it, and it looks like DEC rainbow is no longer working with the wd2010 changes. So better drop this PR.
|
What was the reason for closing this? |
Sorry, I missed this comment. Does this PR actually cause the Rainbow to regress? It has always required some effort to get it to boot as the hardware isn’t understood properly. If it’s no more broken that it was before, that’s no big deal. If the WD2010 do cause the Rainbow to regress, can we get the other parts of the PR isolated so the HP9133 card can be added without hard disk support until the WD2010 can be updated to pacify both it and the Rainbow? |
Well, without my changes i was at least able to low-level format the winchester disk in the rainbow, partition it and copy files to it. I wasn't able to from the winchester disk, but that maybe just user error. The DEC rainbow is quite different compared to normal XT's/PC's. With my changes i'm not even able to LL format the disk - it immediately reports bad sectors on each track. I'm assuming the read/write sector callbacks are now called when they are not expected to get called.
I think without a working WD2010/HDD the 9133 enter selftest fail mode, and you cannot even use the floppy drive in it. I'm away over the weekend, but let me look into the rainbow problem next week, and see whether i can make it work. I'll reopen the PR if i find a way to make both (HP9133 + rainbow) work. |
With 256 bytes sector size on the HP9133, 17 sectors/track is not enough. Instead 32 sectors/track are used.
The HP9133A selftests resets the WD2010 between tests. It seeks to a certain cylinder, resets the WD2010, and issues a SCAN ID. It expects the disk to be at the same track. Therefore reset the cylinder position only during device_start.
Used in the HP9133A disk drive. Note that this uses more states than obviously required because the HP firmware checks DREQ going low after issuing a request, and high again when data is actually required. Signed-off-by: Sven Schnelle <svens@stackframe.org>
The HP 9133 disk drive imlements a DMA engine which is synchronized with the CPU via sync instructions. This needs the BS/BA signals to work correctly. Add a sync_acknowledge_write() callback.
This adds the HP9133 drive. A short description can be found at http://www.hpmuseum.net/display_item.php?hw=255. The 9133 D/H/L version are supported providing 15/20/40MB of disk storage and one DSDD (630K) floppy drive.
The hp devices are working with hp98x6, so lets add them.
|
I implemented multi sector read/writes now differently and verified that the DEC rainbow is still working with the changes. |
This adds the HP9133 disk drive, which was common with HP9000 200 and 300 systems. It also adds a sync acknowledge callback to the 6809, and multi sector read/write to wd2010.