mfm_emu & Acorn A310

35 views
Skip to first unread message

Marcel Prisi

unread,
Nov 11, 2020, 5:03:01 PM11/11/20
to MFM Discuss
Hello !

I recently build myself a full rev C mfm_emulator which seems to run fine, amazing stuff I must say, great use of the pru !

I would like to use it on an upgraded Acorn A310 with 4Mb RAM & Computerware st-506 "podule", my final goal is to run RiscIX, a little known official commercial 4.3BSD port to the Archimedes. I am a kind of weird Unices freak, it will be a great addition to a Commodore Amiga 3000 running Amix and an Atari TT running Atari Unix. For those that may not know the Archimedes, it was the machine for which the ARM processor was created, and the first commercial machine using one !

I initially tried dumping the poor Seagate ST-151 that was in the machine. I had to force the motor spinning with a q-tip, could dump it but the hd was then dead.

A friend then lent me a perfectly working Nec D5146H. I first dumped its contents :

./mfm_read --analyze --emulation_file ../nec-d5146h/test1.emu --extracted_data_file ../nec-d5146h/test1.data
Board revision C detected
Found drive at select 1
Drive RPM 3596.0
Matches count 34 for controller WD_1006
Header CRC: Polynomial 0x1021 length 16 initial value 0xffff
Sector length 512
Data CRC: Polynomial 0x140a0445 length 32 initial value 0xffffffff
Selected head 8 found 0, last good head found 7
Read errors trying to determine sector numbering, results may be in error
Number of heads 8 number of sectors 17 first sector 1
Interleave (not checked): 1 7 13 2 8 14 3 9 15 4 10 16 5 11 17 6 12
Drive supports buffered seeks (ST412)
Found cylinder 103 expected 615
No sectors readable from cylinder 616
Stopping end of disk search due to two unreadable tracks in a row
Number of cylinders 615, 42.8 MB

Command line to read disk:
--format WD_1006 --sectors 17,1 --heads 8 --cylinders 615 --header_crc 0xffff,0x1021,16,0 --data_crc  0xffffffff,0x140a0445,32,8 --sector_length 512 --retries 50,4 --drive 1
Found cyl 0 to 614, head 0 to 7, sector 1 to 17
Expected 83640 sectors got 83640 good sectors, 0 bad header, 0 bad data
0 sectors marked bad or spare
0 sectors corrected with ECC. Max bits in burst corrected 0
Track read time in ms min 23.979250 max 1807.148042 avg 35.361037

Worked fine, the disk came from an DOS machine, partitions are all ok and dump seems fine.

I then plugged the hd into my Archimedes, ran !hform and formated the Nec hd, all went well. I copied a few files and plugged it back to the mfm_emulator for a new dump. I tried the following :

./mfm_read --analyze --emulation_file ../nec-d5146h/archie-analyze.emu --extracted_data_file ../nec-d5146h/archie-analyze.data
Board revision C detected
Found drive at select 1
Drive RPM 3596.4
Retrying on cylinder 0 head 1
Unable to determine drive format

and

./mfm_read --analyze=615,8 --emulation_file ../nec-d5146h/archie-analyze.emu --extracted_data_file ../nec-d5146h/archie-analyze.data
Board revision C detected
Found drive at select 1
Drive RPM 3596.4
Retrying on cylinder 0 head 1
Unable to determine drive format

No success.

I then tried :

./mfm_read --emulation_file ../nec-d5146h/archie-no-analyze.emu --cylinders 615 --heads 8 --drive 1
Board revision C detected
Track read time in ms min 19.210084 max 1928.078792 avg 34.850160

And voilà, a working emu file.

I then plugged the mfm_emulator to the Archimedes, started mfm_emu emulating the previous emu file, and everything works OK !

Now the part I do not understand. I wanted to try emulating a bigger disk. 1023 cylinders and 8 heads seem to be the biggest supported, so I tried emulating newly created images using mfm_emu "initialize" option. Those new images are unusable. !hform, the formatting tool, reports errors at every cylinder. I did try various cylinders/heads combos, mimicking known harddisks, even created one in the same config as the Nec drive, but it does not work.

I unfortunately am more experienced with scsi setups and more modern stuff, but I feel it seems not far from being doable.

I suppose a new format should be added to the tool ? Would it solve both the extracted_data_file issue & the unusable initialized images ? Or are these two different things ?

The st-506 "podule" (interface) is based on the  Hitachi HD63463 controller, its datasheet can be found here, there some infos about CRC :


Is there enough info to add a new format ? I have some coding experience, but not that low level ... I'd love to learn more but this seems a HUGE topic ...

Details about the Nec HD :


Anyway thanks a lot for the great product, ans thanks for helping !!

Marcel

David Gesswein

unread,
Nov 11, 2020, 10:27:25 PM11/11/20
to mfm-d...@googlegroups.com
On Wed, Nov 11, 2020 at 02:03:01PM -0800, Marcel Prisi wrote:
> Hello !
>
> I would like to use it on an upgraded Acorn A310 with 4Mb RAM &
> Computerware st-506 "podule", my final goal is to run RiscIX, a little
> known official commercial 4.3BSD port to the Archimedes. I am a kind of
> weird Unices freak, it will be a great addition to a Commodore Amiga 3000
> running Amix and an Atari TT running Atari Unix. For those that may not
> know the Archimedes, it was the machine for which the ARM processor was
> created, and the first commercial machine using one !
>
I have some familiarity with it but if quized would likely get the details
wrong.

> I initially tried dumping the poor Seagate ST-151 that was in the machine.
> I had to force the motor spinning with a q-tip, could dump it but the hd
> was then dead.
>

Sounds like you got a good read before it died. Thats good.

> *./mfm_read --analyze=615,8 --emulation_file
>

Heads are numbered 0-7 so should have used 7. Unlikely to change the results.

>
> No success.
>
> Now the part I do not understand. I wanted to try emulating a bigger disk.
> 1023 cylinders and 8 heads seem to be the biggest supported, so I tried
> emulating newly created images using mfm_emu "initialize" option. Those new
> images are unusable. !hform, the formatting tool, reports errors at every
> cylinder. I did try various cylinders/heads combos, mimicking known
> harddisks, even created one in the same config as the Nec drive, but it
> does not work.
>

I assume you have sucessfully written to the emulator image.

First I would try copying the working emu file to another and use that for
emulating. Try !hform on that and see if it work. Capture the messages
from the emulator. If that works capture the messages from trying to
format an --initialize image with the same cylinders and heads. Also
note what is different on the Archimedes side between the two formats.
You can send me the one or two set of output to take a look at.

> I suppose a new format should be added to the tool ? Would it solve both
> the extracted_data_file issue & the unusable initialized images ? Or are
> these two different things ?
>
They are related. To create preformatted disk of arbitrary size you need
to use ext2emu. That requires the decoding data to be defined along with the
information needed for ext2emu.

http://www.pdp8online.com/mfm/revb/adding_new_formats.shtml

> The st-506 "podule" (interface) is based on the Hitachi HD63463
> controller, its datasheet can be found here, there some infos about CRC :
>
> https://datasheet.datasheetarchive.com/originals/scans/Scans-030/ScansU9X13211.pdf
>
> Is there enough info to add a new format ? I have some coding experience,
> but not that low level ... I'd love to learn more but this seems a HUGE
> topic ...
>

Mostly but some items such as the gap lengths are defined by the software
using the controller chip.

Reply all
Reply to author
Forward
0 new messages