Posts: 1,253
Threads: 117
Joined: Nov 2005
There recently was a thread about getting DISASM to work on the CL, and a related topic was overcoming built-in features in the HEPAX to avoid its own disassembly.
here
Monte´s instructions solved the riddle for DISASM, but there was still another location checking on the same protection which stopped HEXEDIT to work.
To prevent this you need to patch bank'1 of the HEPAX ROM again, at location H´p474 (where p is the page number). Simply replace the current instruction with ¨10B¨ JNC +33d
If you´re using YPOKE on the CL you´d of course do:
"8xx474-010B"
YPOKE
where 8xx is the RAM location holding the HEPAX- bank1.
Caveat emptor: as always, this is not thoroughly tested yet. Initial checks show it works without a glitch - pls. report if you find any issues.
Cheers,
'AM
Posts: 1,253
Threads: 117
Joined: Nov 2005
Just occured to me that I should make a couple of additional remarks:
1. HEXEDIT on the HEPAX will only work while you stay on Bank'1, for obvious reasons
2. DISASM on the hepax will show the second bank code, as this is where the currently excecuting code resides.
On the DISASM patch, there is a simpler alternative to Monte´s solution. The FOCAL program below does all three patches for you, assuming the HEPAX ROM is plugged on page A and also using the same CL sRAM addresses as in Monte´s document.
01 LBL "HPXPTCH"
02 "HEPX"
03 PLUG2L
04 "030>83F"
05 AVIEW
06 YMCPY
07 "83F08D-0000" - patches the DISASM glitch
08 YPOKE
09 "8040AC-883F" - maps the patched bank'4 to the MMU
10 YPOKE
11 "02D<83E"
12 AVIEW
13 YMCPY
14 "83E12F-0033" - patches the self-DISASM limitation
15 YPOKE
16 "83E474-010B" - patches the self-HEXEDIT limitation
17 YPOKE
18 "8040A0-883E" - maps the patched bank'1 to the MMU
19 YPOKE
20 "DONE"
21 AVIEW
22 END
Enjoy,
'AM
Edited: 29 Jan 2012, 6:54 a.m.