I'm still studying the ROM to have a good information source for z88dk.
I think I'm close to get a common source which will assemble to a byte-exact 
rom image of either the M100 and the KC85.  The M10 is close to the Kyocera, so 
it will follow soon.

I was able to edit the ROM and alter the M100 ROM already but there's a 
surprising code portion at $725E which is probably unmovable:


(...)

(.. LD DE,KYRDBF+2)


KYREAD_0: DEC C defb $FA ; JP M,KYREAD_1 ; Used by the routine at EI_NORM. 
L7260: LD L,C LD (HL),D LD A,(DE) LD (HL),A INC HL INC DE JP KYREAD_0 KYREAD_1: 
POP AF ; Enable interrupts as normal (nothing destroyed) ; ; Used by the 
routine at KYREAD. EI_NORM: PUSH AF LD A,$09 JR NC,L7260 RET

As you see EI_NORM jumps in the middle of a conditional "JP M,nnnn", where the 
2 bytes defining the address of KYREAD_1 are executed as MC opcodes.
It means that shifting KYREAD_1 would alter its address and thus the opcodes to 
be eventually executed by EI_NORM.
To me il looks rather like a protection than an optimization  ;)


Stefano

Reply via email to