adding a new decode format

43 views
Skip to first unread message

Adam Billyard

unread,
Jan 22, 2024, 3:14:04 PMJan 22
to MFM Discuss
Having confirmed the Tek4404 uses the Adaptect 4000 chipset, I found this doc which describes the data layout.

Page  F-2 in this doc:


Is what I've written matching what the doc says?  I *think* it says the CRC is 4 bytes but I'm not sure I understand the mfm_util opcodes..

Adam

// 512B 18 sectors per track from Micropolis1300 controller manual

// http://www.bitsavers.org/pdf/adaptec/ACB-4000/400003-00A_ACB-4000A_Users_Manual_Oct85.pdf

DEF_EXTERN TRK_L trk_micropolis_1300_512b[]

#ifdef DEF_DATA

 = 

{ { 10, TRK_FILL, 0x4e, NULL },

  { 18, TRK_SUB, 0x00,

     (TRK_L []) 

     {

        {12, TRK_FILL, 0x00, NULL},

        {10, TRK_FIELD, 0x00,

           (FIELD_L []) {

              {1, FIELD_A1, 0xa1, OP_SET, 0, NULL},

              {1, FIELD_FILL, 0xfe, OP_SET, 1, NULL},

              {0, FIELD_MARK_CRC_START, 0, OP_SET, 2, NULL},

              // This adds upper 3 bits of cylinder to bits 4-6 of

              // byte 3 and the rest in byte 2. 

              {0, FIELD_CYL, 0x00, OP_SET, 11, 

                 (BIT_L []) {

                    { 25, 3}, // Byte 3 bits 6-4 gets upper 3 bits

                    { 16, 8}, // byte 2 gets lower 8 bits

                    { -1, -1},

                 }

              },

              // Add head to lower bits

              {1, FIELD_HEAD, 0x00, OP_XOR, 3, NULL},

              {1, FIELD_SECTOR, 0x00, OP_SET, 4, NULL},

              {1, FIELD_FILL, 0x00, OP_SET, 5, NULL},

              {4, FIELD_HDR_CRC, 0x00, OP_SET, 6, NULL},

              {-1, 0, 0, 0, 0, NULL}

           }

        },

// 3+12 Gap2

        {3, TRK_FILL, 0x00, NULL},

        {12, TRK_FILL, 0x00, NULL},

        {518, TRK_FIELD, 0x00,

           (FIELD_L []) {

              {1, FIELD_A1, 0xa1, OP_SET, 0, NULL},

              {1, FIELD_FILL, 0xf8, OP_SET, 1, NULL},

              {0, FIELD_MARK_CRC_START, 0, OP_SET, 2, NULL},

              {512, FIELD_SECTOR_DATA, 0x00, OP_SET, 2, NULL},

              {4, FIELD_DATA_CRC, 0x00, OP_SET, 514, NULL},

              {0, FIELD_NEXT_SECTOR, 0x00, OP_SET, 0, NULL},

              {-1, 0, 0, 0, 0, NULL}

           }

        },

// 2+9 Gap3

        {2, TRK_FILL, 0x00, NULL},

        {9, TRK_FILL, 0x4e, NULL},

        {-1, 0, 0, NULL},

     }

   },

   {102, TRK_FILL, 0x4e, NULL},

   {-1, 0, 0, NULL},

}

#endif

;

David Gesswein

unread,
Jan 22, 2024, 4:38:33 PMJan 22
to 'Adam Billyard' via MFM Discuss
Needed some changes. Updated file attached. This does not set the flag bytes
on cylinder 0 like the manual describes on page 4-4 mode select so may cause
problems.



On Mon, Jan 22, 2024 at 12:14:03PM -0800, 'Adam Billyard' via MFM Discuss wrote:
> Having confirmed the Tek4404 uses the Adaptect 4000 chipset, I found this
> doc which describes the data layout.
>
> Page F-2 in this doc:
>
> *http://www.bitsavers.org/pdf/adaptec/ACB-4000/400003-00A_ACB-4000A_Users_Manual_Oct85.pdf*
> --
> You received this message because you are subscribed to the Google Groups "MFM Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to mfm-discuss...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/mfm-discuss/9008f668-d849-4e58-bfae-e62c451a492cn%40googlegroups.com.

mfm_decoder.h
Reply all
Reply to author
Forward
0 new messages