HP Forums
Getting HEXEDIT to work on the HEPAX itself - Printable Version

+- HP Forums (https://archived.hpcalc.org/museumforum)
+-- Forum: HP Museum Forums (https://archived.hpcalc.org/museumforum/forum-1.html)
+--- Forum: Old HP Forum Archives (https://archived.hpcalc.org/museumforum/forum-2.html)
+--- Thread: Getting HEXEDIT to work on the HEPAX itself (/thread-210375.html)



Getting HEXEDIT to work on the HEPAX itself - Ángel Martin - 01-29-2012

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


Re: Getting HEXEDIT to work on the HEPAX itself - Ángel Martin - 01-29-2012

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.