Home Page

Victor 9000 - Hard Disk DMA

Posted By: danielj

Victor 9000 - Hard Disk DMA - 09/25/18 01:36 PM

Hello!
New here smile I was wondering if anyone's doing any work on the Victor 9000 drivers? I've currently got an actual DMA card for the hard drive in pieces (have scanned both sides of the board) and am gradually piecing together what it's doing, but it might well benefit from someone who's got a bit of an eye for these things, plus it should help produce the emulated implementation? I believe Curt Coder wrote everything for the V9000 thus far? I confess I've precisely 0 experience of writing anything for MAME.

Grateful for any pointers, and happy to help in any way I can!
Posted By: shattered

Re: Victor 9000 - Hard Disk DMA - 09/25/18 09:32 PM

I wrote some code for samdisk (https://github.com/simonowen/samdisk) to interpret V9000 floppy format -- there were some images floating around and I wanted to boot them in MAME.

DOS 3 does boot, sort of (https://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=112816#Post112816), but doesn't reach command prompt, so there's work to be done...
Posted By: danielj

Re: Victor 9000 - Hard Disk DMA - 09/26/18 04:57 AM

I suspect those were my kryofluxed images laugh was the data sound on them? Someone had a go at interpreting them and said they were riddled with errors...
Posted By: shattered

Re: Victor 9000 - Hard Disk DMA - 09/26/18 07:53 AM

Oops smile -- I didn't write 10-bit CRC check code, so errors are indeed possible.
Posted By: danielj

Re: Victor 9000 - Hard Disk DMA - 09/27/18 06:15 AM

I can redump if necessary. Is the code for samdisk in the samdisk github - it didn't look like it was? Output-wise is it just a straight sector dump? All these questions! laugh
Posted By: shattered

Re: Victor 9000 - Hard Disk DMA - 09/27/18 07:41 AM

It's not in samdisk github because it's incomplete - missing CRC check and does not handle variable sector per track in output. I also worked on C64 floppy support, similar problem there. I can put WIP code into my github so you can play with it, though.
Posted By: danielj

Re: Victor 9000 - Hard Disk DMA - 09/27/18 08:25 AM

If you could, that would be excellent and I'll have a poke at it. The other thing that happens with those disks is the rotation's variable so the bitcell timings change depending on the zone - I suspect that could have thrown off the other person's analysis. Certainly looking at the raw dump traces there was no reason to think that it was bad (the disks work fine on a real victor).
Posted By: shattered

Re: Victor 9000 - Hard Disk DMA - 09/27/18 08:58 PM

Here it is - https://github.com/shattered/samdisk/tree/_2c86571

Handles only single-sided disks.
Posted By: danielj

Re: Victor 9000 - Hard Disk DMA - 09/28/18 09:02 AM

Fantastic - I'll have a play with adding CRCs smile

d.
Posted By: shattered

Re: Victor 9000 - Hard Disk DMA - 11/02/18 06:18 PM

Any luck? I was going to clean up V9000 and C64 code and submit it to samdisk github.
Posted By: shattered

Re: Victor 9000 - Hard Disk DMA - 02/09/19 06:35 PM

V9000 and C64 code has been merged (V9000 is still without CRC and single-sided, though)
Posted By: shattered

Re: Victor 9000 - Hard Disk DMA - 07/04/19 08:13 PM

Checksum is actually a simple additive, not a CRC -- will submit this change soon. Tested both of your images, DOS is OK and CP/M (cpm11victor-kryoflux.7z) has minor problems:
Code
80 Cyls Head 0:
250Kbps Victor, 19 sectors,  512 bytes/sector:
  0.0  6 7 8 9 10 11 12 13 14 15 16 17 18 0 1 2 3 4 5 
  1.0  15 16 17 18 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
  2.0  5 6[dc] 7 8 9 10 11[m3,dc] 12 13 14 15 16 17 18 0 1 2 3 4 
  3.0  14 15 16 17 18 0 1[m3,dc] 2 3 4 5 6 7 8 9 10 11 12 13 
250Kbps Victor, 18 sectors,  512 bytes/sector:
  4.0  15 16 17 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
  5.0  5 6 7 8 9 10 11 12 13 14 15 16 17 0 1 2 3 4 
  6.0  13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 10 11 12 
  7.0  3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 1 2 
  8.0  11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 10 
  9.0  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 
 10.0  9 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 
 11.0  17 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
 12.0  7 8 9 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 
 13.0  15 16 17 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
 14.0  5 6 7 8 9 10 11 12 13 14 15 16 17 0 1 2 3 4 
 15.0  12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 10 11 
250Kbps Victor, 17 sectors,  512 bytes/sector:
 16.0  6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 
 17.0  14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 
 18.0  3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 
 19.0  10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 
 20.0  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
 21.0  7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 
 22.0  14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 
 23.0  3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 
 24.0  10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 
 25.0  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
 26.0  6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 
250Kbps Victor, 16 sectors,  512 bytes/sector:
 27.0  12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 
 28.0  2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 
 29.0  8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 
 30.0  14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 
 31.0  4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 
 32.0  10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 
 33.0  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
 34.0  6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 
 35.0  12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 
 36.0  2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 
 37.0  7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 
250Kbps Victor, 15 sectors,  512 bytes/sector:
 38.0  6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 
 39.0  10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 
 40.0  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
 41.0  5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 
 42.0  10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 
 43.0  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
 44.0  4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 
 45.0  10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 
 46.0  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
 47.0  5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 
250Kbps Victor, 14 sectors,  512 bytes/sector:
 48.0  6 7 8 9 10 11 12 13 0 1 2 3 4 5 
 49.0  10 11 12 13 0 1 2 3 4 5 6 7 8 9 
 50.0  0 1 2 3 4 5 6 7 8 9 10 11 12 13 
 51.0  4 5 6 7 8 9 10 11 12 13 0 1 2 3 
 52.0  8 9 10 11 12 13 0 1 2 3 4 5 6 7 
 53.0  12 13 0 1 2 3 4 5 6 7 8 9 10 11 
 54.0  2 3 4 5 6 7 8 9 10 11 12 13 0 1 
 55.0  6 7 8 9 10 11 12 13 0 1 2 3 4 5 
 56.0  9 10 11 12 13 0 1 2 3 4 5 6 7 8 
 57.0  13 0 1 2 3 4 5 6 7 8 9 10 11 12 
 58.0  3 4 5 6 7 8 9 10 11 12 13 0 1 2 
 59.0  7 8 9 10 11 12 13 0 1 2 3 4 5 6 
250Kbps Victor, 13 sectors,  512 bytes/sector:
 60.0  1 2 3 4 5 6 7 8 9 10 11 12 0 
 61.0  5 6 7 8 9 10 11 12 0 1 2 3 4 
 62.0  8 9 10 11 12 0 1 2 3 4 5 6 7 
 63.0  10 11 12 0 1 2 3 4 5 6 7 8 9 
 64.0  0 1 2 3 4 5 6 7 8 9 10 11 12 
 65.0  3 4 5 6 7 8 9 10 11 12 0 1 2 
 66.0  6 7 8 9 10 11 12 0 1 2 3 4 5 
 67.0  9 10 11 12 0 1 2 3 4 5 6 7 8 
 68.0  12 0 1 2 3 4 5 6 7 8 9 10 11 
 69.0  2 3 4 5 6 7 8 9 10 11 12 0 1 
 70.0  5 6 7 8 9 10 11 12 0 1 2 3 4 
250Kbps Victor, 12 sectors,  512 bytes/sector:
 71.0  4 5 6 7 8 9 10 11 0 1 2 3 
 72.0  6 7 8 9 10 11 0 1 2 3 4 5 
 73.0  9 10 11 0 1 2 3 4 5 6 7 8 
 74.0  11 0 1 2 3 4 5 6 7 8 9 10 
 75.0  1 2 3 4 5 6 7 8 9 10 11 0 
 76.0  3 4 5 6 7 8 9 10 11 0 1 2 
 77.0  5 6 7 8 9 10 11 0 1 2 3 4 
 78.0  7 8 9 10 11 0 1 2 3 4 5 6 
 79.0  10 11 0 1 2 3 4 5 6 7 8 9 
© 2019 Forums