Page 7 in UM001604-0108 wrote:General-Purpose Registers are undefined after the device is powered up. The registers keep their last value after any reset

Dennis Nedry wrote:From what I understand, all CGR encoding/decoding in the Mac occurs in the IWM chip, and the respective decoding/encoding in the HD20 occurs in its very own IWM chip, so it seems like no CGR stuff is ever handled in software. That makes a lot of sense - why spend a load of overhead in software when it can be done in hardware with a crazy Steve Wozniac state machine chip that works in both directions.
Dennis Nedry wrote:[*]Data is in decoded form (No GCR to deal with)
Page 1 of the IWM spec wrote:The IWM is a peripheral device that connects to a host data bus. The device generates and receives serial GCR encoded data.
Input Output
0000000 0011
0000001 0110
0000010 0110
0000011 0011
0000100 0111
0000101 0110
0000110 0110
0000111 0111
0001000 1001
0001001 1100
0001010 1100
0001011 1001
0001100 1101
0001101 1100
0001110 1100
0001111 1101
0010000 1001
0010001 1100
0010010 1100
0010011 1001
0010100 1101
0010101 1100
0010110 1100
0010111 1101
0011000 1001
0011001 1100
0011010 1100
0011011 1001
0011100 1101
0011101 1100
0011110 1100
0011111 1101
0100000 0001
0100001 0100
0100010 0100
0100011 0001
0100100 0101
0100101 0100
0100110 0100
0100111 0101
0101000 1001
0101001 1100
0101010 1100
0101011 1001
0101100 1101
0101101 1100
0101110 1100
0101111 1101
0110000 0001
0110001 0100
0110010 0100
0110011 0001
0110100 0101
0110101 0100
0110110 0100
0110111 0101
0111000 1001
0111001 1100
0111010 1100
0111011 1001
0111100 1101
0111101 1100
0111110 1100
0111111 1101
1000000 0011
1000001 0110
1000010 0110
1000011 0011
1000100 0111
1000101 0110
1000110 0110
1000111 0111
1001000 1001
1001001 1100
1001010 1100
1001011 1001
1001100 1101
1001101 1100
1001110 1100
1001111 1101
1010000 1001
1010001 1100
1010010 1100
1010011 1001
1010100 1101
1010101 1100
1010110 1100
1010111 1101
1011000 1001
1011001 1100
1011010 1100
1011011 1001
1011100 1101
1011101 1100
1011110 1100
1011111 1101
1100000 0001
1100001 0100
1100010 0100
1100011 0001
1100100 0101
1100101 0100
1100110 0100
1100111 0101
1101000 1001
1101001 1100
1101010 1100
1101011 1001
1101100 1101
1101101 1100
1101110 1100
1101111 1101
1110000 0001
1110001 0100
1110010 0100
1110011 0001
1110100 0101
1110101 0100
1110110 0100
1110111 0101
1111000 1001
1111001 1100
1111010 1100
1111011 1001
1111100 1101
1111101 1100
1111110 1100
1111111 1101
Dennis Nedry wrote:Please point out where I'm wrong, I don't want to jump into something that I'm not capable of.
)trag wrote:unless, of course, there are unreadable PALs involved.
It's just tempting to see a pattern and assume that's it before every possible combination is exhausted. I bet this PAL is still directly dumpable, it's from 1985. I don't have anything that can do that for me though.Dennis Nedry wrote:It might be possible to figure out what the Z8 is doing on the IWM side and somehow separate that from what it is doing on the Rodime side...
So the key here looks like figuring out the Z8 code. Assuming that the Z8 is ROMless and runs exclusively from the external ROM chip that I dumped, it might be possible to figure this out with that approach. I'm grateful that you explained this for me because I would have done exactly what you said - I would have started looking for patterns in decoded data coming off of the IWM, which won't work with this strange auto-checksum / encoding stuff if that's in there.
It is also possible, as it seemed you alluded to, that the Mac skips it's encoding / decoding process specifically when talking to an HD20, thereby not needing anything to decode it in the HD20. In this case there might be unencoded data fresh off of the IWM, but I'm not really counting on it anymore.

Dennis Nedry wrote:How could IWM require data to be encoded if it doesn't do any encoding/decoding itself? Is it calculating checksums or something?
Minimized:
F0 = B + D F + P2 C' F' + D G' H' + P2 P7 D' E' + P2 D' E' F' ;
with current statesMinimized:
F0 = B + F4 D' + F2 F3 D ;
F0 = F4 D' + F2 F3 D ;
F0 = (G H + F' H') D' + (F + G' H + G H') (F + G' H') D ;
Dennis Nedry wrote:I'm sorry Gorgonops, but I just don't have an attention span long enough to read through all of that and understand what you said right now.
Users browsing this forum: No registered users and 2 guests