Skip to content
LuigiBlood edited this page Nov 29, 2021 · 14 revisions

The Micro Sequencer is used to read from/write to the disk. The software copies 64 bytes to the MSEQ RAM and changes a few details as well (shown below the versions used). The idea is to run the Micro Sequencer to copy the data from/to the buffer.

There are different versions of them:

Read

64DD IPL - 0x36938

0000: 00 01 00 00 - 00 02 02 00 - 80 03 01 00 - 82 04 00 00
0010: A8 05 00 00 - A0 06 06 00 - 31 76 00 00 - 00 02 03 00
0020: 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
0030: 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 00 06 00 00

Games / DD64.DRV - 0xB360 (Regular Command)

0000: 00 01 00 00 - 00 02 02 00 - 80 03 01 00 - 82 04 00 00
0010: A8 05 00 00 - A0 06 06 00 - 31 76 00 00 - 00 02 03 00
0020: 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
0030: 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 04 06 00 00

leoulx - 0x2BC80 / DD64.DRV - 0xB3E0 (Long Command)

0000: 00 01 00 00 - 00 02 02 00 - 80 03 01 00 - 82 04 00 00
0010: 88 06 00 00 - 80 06 06 00 - 01 76 40 55 - 00 02 03 00
0020: 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
0030: 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 04 06 00 00 

Write

Games / DD64.DRV - 0xB3A0 (Regular Command)

0000: 40 02 00 00 - 00 02 00 00 - 40 13 0B 00 - 42 14 01 00
0010: 68 05 00 00 - 50 06 06 00 - 40 17 02 FF - 01 87 00 00
0020: 40 02 00 00 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
0030: 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 04 0F 00 00

leoulx - 0x2BCC0 / DD64.DRV - 0xB420 (Long Command)

0000: 40 02 00 00 - 00 02 00 00 - 40 13 0B 00 - 42 14 01 00
0010: 48 06 00 00 - 50 06 06 00 - 40 17 02 FF - 01 87 40 54
0020: 40 02 00 00 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
0030: 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 04 0F 00 00 

Data Documentation

TC NW AA AA

T = Type? (4 bit = RWFS)
        R = Read?
        W = Write?
        F = Unknown (Force?)
        S = Unknown
C = Command?
        0 = ???
        1 = Repeat? (Arguments: Repeat, Number of user sectors)
                    (If none: uses register data?)
        2 = ???
        8 = Buffer Copy
N = Next Command (under condition)
W = Next Command
AA AA = Data

0x12: Sector Size - 1

And for some reason the 04 (at 0x003C) changes into a 00 like the IPL.