Using the Emulator as a test rig ?

33 views
Skip to first unread message

m

unread,
Sep 7, 2022, 3:52:58 PM9/7/22
to mfm-d...@googlegroups.com
I  just relocated my large-ish collection of physical MFM hard disks and I am attempting to  test them in an efficient way.

I thought to use a  Gesswein emulator with the BBB (BeagleBoneBlack) connected via ssh from my Linux PC Only.

In other words, no host vintage computer.

Most of the disks are Cromemco formatted (for use on STDC disk controller) but not all.

image.png

Here is a picture of the setup and I'm connecting in via SSH 

-------
So far all I have come up with is 

using mfm_read twice.   The first time with a --analyze and then using the discovered format.

whilst this sort of works   (please check below and do comment)  what I was hoping for was perhaps a way to 

1) format the external disk .. in a format of my choice, could be cromemco or other
2) say write a pattern to it
3) read it back


Is there a way to do this?   Of should I just bite the bullet and do first level testing on this rig, then in stage 2 actually connect it to my vintage Cromemco computer, where I can run commands like initstdc and diskinfo and readall to format then check parition, then check sectors of the disk?

Opinions and comments please!

regards m

-------------  Commands I used and the output from testing a miniscribe 8425 disk

root@bonesys03:~# cd /cromemco/mfm
root@bonesys03:/cromemco/mfm# ls -l se**
-rwxr-xr-x 1 debian debian 2167 Feb 16  2021 setup_mfm_read
root@bonesys03:/cromemco/mfm# ./setup_mfm_read
Rev B Board
root@bonesys03:/cromemco/mfm# ./mfm_read --analyze --drive 1
Board revision B detected
Found drive at select 1
Returning to track 0
Drive RPM 3600.9
No more peaks in histogram
Found matching format Cromemco: good count difference 0
Selected head 4 found 0, last good head found 3
Read errors trying to determine sector numbering, results may be in error
Number of heads 4 number of sectors 1 first sector 0
Interleave (not checked): 0
Drive supports buffered seeks (ST412)
No sectors readable from cylinder 615                                          
Stopping end of disk search due to two unreadable tracks in a row
Number of cylinders 615, 25.2 MB

Command line to read disk:
--format Cromemco --sectors 1,0 --heads 4 --cylinders 615 --header_crc 0x0,0x8005,16,0 --data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  --begin_time 6000 
root@bonesys03:/cromemco/mfm# 

Now use the command again with parameters

./mfm_read  --format Cromemco --sectors 1,0 --heads 4 --cylinders 615 --header_crc 0x0,0x8005,16,0 
--data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  -e /tmp/output

Board revision B detected
Ran out of data on sector index 1, try reading with --begin_time 8287000       
Ran out of data on sector index 1, try reading with --begin_time 8288000       
Ran out of data on sector index 1, try reading with --begin_time 8287000       
Ran out of data on sector index 1, try reading with --begin_time 8285000       
Ran out of data on sector index 1, try reading with --begin_time 8282000       
Ran out of data on sector index 1, try reading with --begin_time 8281000       
Ran out of data on sector index 1, try reading with --begin_time 8283000       
Ran out of data on sector index 1, try reading with --begin_time 8284000
Ran out of data on sector index 1, try reading with --begin_time 8282000       
Ran out of data on sector index 1, try reading with --begin_time 8285000       
Ran out of data on sector index 1, try reading with --begin_time 8282000
Ran out of data on sector index 1, try reading with --begin_time 8287000       
Ran out of data on sector index 1, try reading with --begin_time 8288000       
Ran out of data on sector index 1, try reading with --begin_time 8284000
Ran out of data on sector index 1, try reading with --begin_time 8289000
Ran out of data on sector index 1, try reading with --begin_time 8288000       
Ran out of data on sector index 1, try reading with --begin_time 8285000
Ran out of data on sector index 1, try reading with --begin_time 8290000       
Ran out of data on sector index 1, try reading with --begin_time 8287000       
Ran out of data on sector index 1, try reading with --begin_time 8291000
Ran out of data on sector index 1, try reading with --begin_time 8277000
Ran out of data on sector index 1, try reading with --begin_time 8288000       
Ran out of data on sector index 1, try reading with --begin_time 8282000
Ran out of data on sector index 1, try reading with --begin_time 8287000       
Ran out of data on sector index 1, try reading with --begin_time 8286000       
Ran out of data on sector index 1, try reading with --begin_time 8286000       
Ran out of data on sector index 1, try reading with --begin_time 8288000       
Ran out of data on sector index 1, try reading with --begin_time 8283000       
Ran out of data on sector index 1, try reading with --begin_time 8284000       
Ran out of data on sector index 1, try reading with --begin_time 8283000       
Ran out of data on sector index 1, try reading with --begin_time 8285000       
Ran out of data on sector index 1, try reading with --begin_time 8282000       
Ran out of data on sector index 1, try reading with --begin_time 8281000       
Ran out of data on sector index 1, try reading with --begin_time 8290000
Ran out of data on sector index 1, try reading with --begin_time 8287000       
Ran out of data on sector index 1, try reading with --begin_time 8285000       
Ran out of data on sector index 1, try reading with --begin_time 8284000       
Ran out of data on sector index 1, try reading with --begin_time 8286000       
Ran out of data on sector index 1, try reading with --begin_time 8281000       
Ran out of data on sector index 1, try reading with --begin_time 8285000       
Ran out of data on sector index 1, try reading with --begin_time 8285000       
Ran out of data on sector index 1, try reading with --begin_time 8290000       
Ran out of data on sector index 1, try reading with --begin_time 8285000       
Ran out of data on sector index 1, try reading with --begin_time 8281000       
Ran out of data on sector index 1, try reading with --begin_time 8282000       
Ran out of data on sector index 1, try reading with --begin_time 8285000       
Ran out of data on sector index 1, try reading with --begin_time 8283000       
Ran out of data on sector index 1, try reading with --begin_time 8283000
Ran out of data on sector index 1, try reading with --begin_time 8284000       
Ran out of data on sector index 1, try reading with --begin_time 8283000       
Ran out of data on sector index 1, try reading with --begin_time 8282000       
Ran out of data on sector index 1, try reading with --begin_time 8282000       
Ran out of data on sector index 1, try reading with --begin_time 8279000       
Ran out of data on sector index 1, try reading with --begin_time 8282000       
Found cyl 0 to 614, head 0 to 3, sector 0 to 0                                 
Expected 2460 sectors got 2460 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.960208 max 341.763042 avg 37.606600

David Gesswein

unread,
Sep 7, 2022, 7:46:18 PM9/7/22
to mfm-d...@googlegroups.com
On Wed, Sep 07, 2022 at 08:52:36PM +0100, m wrote:
>
> using mfm_read twice. The first time with a --analyze and then using the
> discovered format.
>
> whilst this sort of works (please check below and do comment) what I was
> hoping for was perhaps a way to
>

You can simplify by putting the output files on the same command line as
--analyze so you don't need to do a second command.

> 1) format the external disk .. in a format of my choice, could be cromemco
> or other
> 2) say write a pattern to it
> 3) read it back
>
> Is there a way to do this? Of should I just bite the bullet and do first
> level testing on this rig, then in stage 2 actually connect it to my
> vintage Cromemco computer, where I can run commands like initstdc and
> diskinfo and readall to format then check parition, then check sectors of
> the disk?
>

It can do this but clunky. You can use ext2emu to create an emulator file
with a particular pattern from the ones ext2emu knows about. You can then use
mfm_write to write that to the disk and mfm_read to read it back.

If your doing enough I suspect setting up a machine with a normal controller
and diagnostic software will be quicker.
> Command line to read disk:
> --format Cromemco --sectors 1,0 --heads 4 --cylinders 615 --header_crc
> 0x0,0x8005,16,0 --data_crc 0x0,0x8005,16,0 --sector_length 10240
> --retries 50,4 --drive 1 --begin_time 6000
> root@bonesys03:/cromemco/mfm#
>
> Now use the command again with parameters
>
> ./mfm_read --format Cromemco --sectors 1,0 --heads 4 --cylinders 615
> --header_crc 0x0,0x8005,16,0
> --data_crc 0x0,0x8005,16,0 --sector_length 10240 --retries 50,4
> --drive 1 -e /tmp/output
>

You didn't specify the --begin_time parameter it suggested.

> Board revision B detected
> Ran out of data on sector index 1, try reading with --begin_time 8287000
>
It seemed to come up with an entirly different begin_time. Does first begin_time
or this one get rid of the message?
Not sure why it would need such a different value than the previous disk
samples I received.

> Found cyl 0 to 614, head 0 to 3, sector 0 to 0
> Expected 2460 sectors got 2460 good sectors, 0 bad header, 0 bad data
>

Interesting that it had no errors with the errors above. Not sure if it did
a reread though I thought it printed a message when it did that. If you kept
a transition or emulator file I can look further into why the ran out of data
messages.


marcus

unread,
Sep 8, 2022, 4:49:11 PM9/8/22
to MFM Discuss
David,

So with regard to the  --begin_time parameter ,  I did in fact try adding it.   But when I did so it just kept making it bigger and bigger, i.e. when using the suggested parameter, it printed out a new being time of 17 million not 8 million.

In these financially challenged times  (here in the UK)  I'm trying to sell a large number of physical disks, but want to test them accurately as an honest seller.

I'll look at your ext2emu and mfm_write,  but my disks are all different shapes and sizes so correct me if I am wrong but your suggested  approach would require some extra work?

----

FWIW  here is the escalating begin time log example   (This is an IBM 7 platter disk, second disk I am trying)

root@bonesys03:/cromemco/mfm# ./mfm_read --analyze --drive 1 --sectors 1,0 --heads 7 --cylinders 733 --header_crc 0x0,0x8005,16,0 --data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  --begin_time 6000

Board revision B detected

Found drive at select 1

Drive RPM 3600.0

Found matching format Cromemco: good count difference 0

Selected head 8 found 0, last good head found 6

Read errors trying to determine sector numbering, results may be in error

Number of heads 7 number of sectors 1 first sector 0

Interleave (not checked): 0

Drive supports buffered seeks (ST412)

Disk has recalibrated to track 0                                               

Stopping end of disk search due to recalibration

Number of cylinders 733, 52.5 MB


Command line to read disk:

--format Cromemco --sectors 1,0 --heads 7 --cylinders 733 --header_crc 0x0,0x8005,16,0 --data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  --begin_time 6000 

root@bonesys03:/cromemco/mfm# 

root@bonesys03:/cromemco/mfm# ./mfm_read  --drive 1 --sectors 1,0 --heads 7 --cylinders 733 --header_crc 0x0,0x8005,16,0 --data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  --begin_time 6000 -e /tmp/output

Board revision B detected

Generating extract file without analyze requires options: format

root@bonesys03:/cromemco/mfm# ./mfm_read  --format Cromemco --drive 1 --sectors 1,0 --heads 7 --cylinders 733 --header_crc 0x0,0x8005,16,0 --data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  --begin_time 6000 -e /tmp/output

Board revision B detected

Ran out of data on sector index 1, try reading with --begin_time 8292000       

Ran out of data on sector index 1, try reading with --begin_time 8308000

Ran out of data on sector index 1, try reading with --begin_time 8288000

      

^Croot@bonesys03:/cromemco/mfm# 

root@bonesys03:/cromemco/mfm# ^Cmfm_read  --format Cromemco --drive 1 --sectors 1,0 --heads 7 --cylinders 733 --header_crc 0x0,0x8005,16,0 --data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  --begin_time 6000 -e /tmp/output

root@bonesys03:/cromemco/mfm# ./mfm_read  --format Cromemco --drive 1 --sectors 1,0 --heads 7 --cylinders 733 --header_crc 0x0,0x8005,16,0 --data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  --begin_time 8292000  -e /tmp/output

Board revision B detected

Returning to track 0

Ran out of data on sector index 0, try reading with --begin_time 16613000

Ran out of data on sector index 0, try reading with --begin_time 16611000

Ran out of data on sector index 0, try reading with --begin_time 16609000

Ran out of data on sector index 0, try reading with --begin_time 16608000

Ran out of data on sector index 0, try reading with --begin_time 16608000

Ran out of data on sector index 0, try reading with --begin_time 16607000

Ran out of data on sector index 0, try reading with --begin_time 16607000

Ran out of data on sector index 0, try reading with --begin_time 16610000

Ran out of data on sector index 0, try reading with --begin_time 16612000

Ran out of data on sector index 0, try reading with --begin_time 16613000

Ran out of data on sector index 0, try reading with --begin_time 16611000

Ran out of data on sector index 0, try reading with --begin_time 16608000

Ran out of data on sector index 0, try reading with --begin_time 16607000

Ran out of data on sector index 0, try reading with --begin_time 16608000

Ran out of data on sector index 0, try reading with --begin_time 16610000

<some lines deleted>


Retries failed cyl 0 head 0

Ran out of data on sector index 0, try reading with --begin_time 16543000

Bad sectors on cylinder 0 head 0: 0H

Ran out of data on sector index 0, try reading with --begin_time 16543000

Ran out of data on sector index 0, try reading with --begin_time 16542000

Ran out of data on sector index 0, try reading with --begin_time 16540000

Ran out of data on sector index 0, try reading with --begin_time 16539000

Ran out of data on sector index 0, try reading with --begin_time 16540000

Ran out of data on sector index 0, try reading with --begin_time 16542000

Ran out of data on sector index 0, try reading with --begin_time 16543000

Ran out of data on sector index 0, try reading with --begin_time 16542000

Ran out of data on sector index 0, try reading with --begin_time 16541000

Ran out of data on sector index 0, try reading with --begin_time 16540000


root@bonesys03:/cromemco/mfm# # ./mfm_read  --format Cromemco --drive 1 --sectors 1,0 --heads 7 --cylinders 733 --header_crc 0x0,0x8005,16,0 data_crc  0x0,0x8005,16,0 --sector_length 10240 --retries 50,4 --drive 1  --begin_time 16542000  -e /tmp/output

Board revision B detected

Retries failed cyl 0 head 0                                                    

Ran out of data on sector index 0, try reading with --begin_time 24735000

Bad sectors on cylinder 0 head 0: 0H

Ran out of data on sector index 0, try reading with --begin_time 24727000

Ran out of data on sector index 0, try reading with --begin_time 24725000

Ran out of data on sector index 0, try reading with --begin_time 24727000

Ran out of data on sector index 0, try reading with --begin_time 24733000

Ran out of data on sector index 0, try reading with --begin_time 24733000

^Croot@bonesys03:/cromemco/mfm# 


etcetera !!


David Gesswein

unread,
Sep 8, 2022, 7:01:22 PM9/8/22
to mfm-d...@googlegroups.com
On Thu, Sep 08, 2022 at 01:49:11PM -0700, marcus wrote:
>
> So with regard to the --begin_time parameter , I did in fact try adding
> it. But when I did so it just kept making it bigger and bigger, i.e. when
> using the suggested parameter, it printed out a new being time of 17
> million not 8 million.
>
If you want to send me an emulator or transitions file to look at you
can compress and upload it to
http://www.pdp8online.com/upload/abuploadab.html
Probably the default 6000 would be best.

> I'll look at your ext2emu and mfm_write, but my disks are all different
> shapes and sizes so correct me if I am wrong but your suggested approach
> would require some extra work?
>
Correct. You would need to create an emulator file of the correct size for
each size disk.

Reply all
Reply to author
Forward
0 new messages