Re: [Simh] Disk encoding

2019-07-07 Thread Lars Brinkhoff
Larry Stewart wrote:
> Or it could be FM, which has a transition in the middle of a bit cell
> for 1’s and a transition at the end of a bit cell for a 0 if it is
> followed by another 0.

Thank you, this is probably it.  I extracted the encoding algorithm from
the assembly code and it does handle 00 specially.

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

Re: [Simh] Disk encoding

2019-07-06 Thread Larry Stewart
This sounds vaguely like FM or MFM encoding or one of its relatives.
The wikipedia article is informative: 
https://en.wikipedia.org/wiki/Modified_Frequency_Modulation 


MFM was instroduced in 1970 for the IBM 3330, which might be too late.
Or it could be FM, which has a transition in the middle of a bit cell for 1’s 
and a transition at the end of a bit cell for a 0 if it is followed by another 
0.

FM has 1.5 average transtions per bit, which seems right.

The rew encoding mode might generate the data for the write head directly, at 
double the bit cell frequency.

-L


> On 2019, Jul 6, at 2:35 AM, Lars Brinkhoff  > wrote:
> 
> Hello,
> 
> I'm looking into simulating a disk controller used with the MIT AI lab
> PDP-10: a Systems Concepts DC-10.  It looks like it's a custom made
> channel interfacing to IBM disks.  (It has been claimed those are 2311
> or 2314, but the geometry doesn't match.)
> 
> Formatting a disk pack uses a WRITE IMAGE command, which I believe
> writes raw bits directly onto the disk surface.  I'd like to decode
> these to the data bits as seen by a normal READ or READ HEADER command.
> I wonder if anyone recognizes the kind of encoding used?
> 
> For every track, it goes like this:
> 
> 1. Wait for the physical start of the track.
> 2. Write 125460 bits of ones to cover the entire track.
>   These will be overwritten by the following data.
> 3. Write a 108-bit header preamble:
>   11
>   101010110101101011010110101101011010110101
>   The preamble signals a header with with a zero, and then eight
>   10101 words.
> 4. Write a 108-bit header, converted to the on-disk encoding.
> 5. Write a 252-bit postamble:
>   11
>   11
>   11
>   11
>   1101
> 6. Write 55620 bits of alternating ones and zeroes.  This is the data
>   and checksum.  These will come out as all 37080 zeroes with a normal
>   READ command.  Note the ratio between raw bits and data is exactly 1.5.
> 7. Write N bits of ones for the sector gap.  N is computed from the
>   length of the track minus the data fields, divided by the number of
>   sectors.
> 8. Write next sector, go back to step 3.
> 
> Now, in particular I'm curious about what encoding will transform a zero
> bit to, on average, 1.5 "10" (or "01") bits?
> 
> ___
> Simh mailing list
> Simh@trailing-edge.com 
> http://mailman.trailing-edge.com/mailman/listinfo/simh

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh

[Simh] Disk encoding

2019-07-05 Thread Lars Brinkhoff
Hello,

I'm looking into simulating a disk controller used with the MIT AI lab
PDP-10: a Systems Concepts DC-10.  It looks like it's a custom made
channel interfacing to IBM disks.  (It has been claimed those are 2311
or 2314, but the geometry doesn't match.)

Formatting a disk pack uses a WRITE IMAGE command, which I believe
writes raw bits directly onto the disk surface.  I'd like to decode
these to the data bits as seen by a normal READ or READ HEADER command.
I wonder if anyone recognizes the kind of encoding used?

For every track, it goes like this:

1. Wait for the physical start of the track.
2. Write 125460 bits of ones to cover the entire track.
   These will be overwritten by the following data.
3. Write a 108-bit header preamble:
   11
   101010110101101011010110101101011010110101
   The preamble signals a header with with a zero, and then eight
   10101 words.
4. Write a 108-bit header, converted to the on-disk encoding.
5. Write a 252-bit postamble:
   11
   11
   11
   11
   1101
6. Write 55620 bits of alternating ones and zeroes.  This is the data
   and checksum.  These will come out as all 37080 zeroes with a normal
   READ command.  Note the ratio between raw bits and data is exactly 1.5.
7. Write N bits of ones for the sector gap.  N is computed from the
   length of the track minus the data fields, divided by the number of
   sectors.
8. Write next sector, go back to step 3.

Now, in particular I'm curious about what encoding will transform a zero
bit to, on average, 1.5 "10" (or "01") bits?

___
Simh mailing list
Simh@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh