29 Jan
2016
29 Jan
'16
4:05 p.m.
It starts with LXI SP, 0xFF13 -- a ROM location. I've seen the trick used elsewhere, to reduce code size by using an in-ROM jump table. Anyone recognize the code?
ORG 0FF00H LXI H, 0FF13H LXI D, 2C00H MVI C, 0EBH L1: MOV A,M STAX D INX H INX D DCR C JNZ L1 ;0FF08H JMP 2C00H ;above moves code from ROM to RAM and executes ORG 2C00H; but code follows ROM code above at FF13H DI XRA A OUT 22H CMA OUT 23H MVI A, 2CH OUT 22H MVI A, 03H OUT 19H IN 0FFH ANI 10H RRC RRC ADI 10H OUT 10H LXI SP, 2D79H XRA A ; next byte is at FF30H in ROM ; further disassembly should be instructive -- Herbert R. Johnson, New Jersey USA http://www.retrotechnology.com OR .net