Just looking at patching CP/M for serial and just wanted to check with you on the 'status' patch.
I am performing the patch within the script performing the conversion from .DMP to .IMG so that I can produce both patched and non patched automatically and the byte I see at F6EF (64K) doesn't match with the one you mentioned so my maths is probably wrong.
Given that I have a interleaved .IMG in memory as a byte array I can see that the first patch is at byte 6125 i.e. 12th (512 byte) sector, offset 31h. This ties up with the value at the end of the list of C3s. So I am happy with this patch.
The second patch 'status' I am not getting right. Based on bytes 3 & 4 in sector 0, I am using CP/M with the load address of 5D00, the 64K image you sent shows a load address of dd00. My maths suggests that a patch at F6EF on a 64K system relates to byte 1Bef within the byte array...
Code:
Patch Address - Load Address + Length of Sector 0
F6EF - DD00 + 0200 = 1BEF
...but this byte is 02 on each disk image not 20h as you suggested, can you see what I am doing wrong?
J