Hi Mychess!
Similar to your Sapphire patch, I have now also made a patch for the Diamond, which shouldn't be particularly difficult because the two programs are practically identical (apart from the hardware control).
The easiest task was to adjust the addresses. Only some values (registers?) were different on the Diamond than on the Sapphire, so I changed those accordingly (these values are ff62/ff65/ff67 in the Diamond but ff60/ff63/ff65 in the Sapphire).
Here is an assembly list of my changes - maybe you can take a look at these changes and let me know if everything is ok?
I've also attached the modified Diamond ROM with exactly these changes - I've already tried it here in MessNew and it seems to work correctly.
Regards,
Franz
Code:
changed from:
0E9A: F928 mov.b #h'28, r1l
0E9C: 3867 mov.b r0l, @h'ff67
0E9E: 3965 mov.b r1l, @h'ff65
to:
0E9A: 5E00 7568 jsr h'7568
0E9E: 0000 nop
changed from:
6090: FE00 mov.b #h'00, r6l
6092: 108D shal.b r5l
6094: 1205 rotxl.b r5h
to:
6090: 0D50 mov.w r5, r0
6092: 5E00 7540 jsr h'7540
changed from:
6CA0: 4A0A bpl h'6cac
6CA2: 7902 FBF6 mov.w #h'fbf6, r2
6CA6: 6B00 FF62 mov.w @h'ff62, r0
6CAA: 2965 mov.b @h'ff65, r1l
to:
6CA0: 4A04 bpl h'6ca6
6CA2: 5E00 7534 jsr h'7534
6CA6: 5E00 754E jsr h'754e
6CAA: 0000 nop
added:
7534: 7902 FBF6 mov.w #h'fbf6, r2
7538: 6B00 FF62 mov.w @h'ff62, r0
753C: 2965 mov.b @h'ff65, r1l
753E: 5470 rts
7540: 5E00 754E jsr h'754e
7544: 0D05 mov.w r0, r5
7546: FE00 mov.b #h'00, r6l
7548: 108D shal.b r5l
754A: 1205 rotxl.b r5h
754C: 5470 rts
754E: 6DF5 mov.w r5, @-r7
7550: 0D05 mov.w r0, r5
7552: 1105 shlr.b r5h
7554: 130D rotxr.b r5l
7556: 1105 shlr.b r5h
7558: 130D rotxr.b r5l
755A: 1105 shlr.b r5h
755C: 130D rotxr.b r5l
755E: 1105 shlr.b r5h
7560: 130D rotxr.b r5l
7562: 1950 sub.w r5, r0
7564: 6D75 mov.w @r7+, r5
7566: 5470 rts
7568: F928 mov.b #h'28, r1l
756A: A808 cmp.b #h'08, r0l
756C: 4502 bcs h'7570
756E: F901 mov.b #h'01, r1l
7570: 3867 mov.b r0l, @h'ff67
7572: 3965 mov.b r1l, @h'ff65
7574: 5470 rts