I am working through the exercises of Lance Leventhal's 6800 Assembly Language Programming on my Epson HX-20. My understanding is that the HX-20's Hitachi 6301 processor is compatible with the Motorola 6800.
The first examples of Leventhal's book use direct referencing, and try to manipulate, for example, addresses 0040 and 0041. However, on the HX-20 addresses to 004D are protected for I/O routines and cannot be manipulated from the Monitor. Furthermore, according to chapter 14 of the technical reference manual (available here), the following addresses up to 00FF are also used by different processes:
- 004E to 007F: "Real Time Clock"
- 0080 to 00FF: "This area is used as a work area by the basic interpreter."
My understanding is that direct addressing on the 6301 (as on the 6800) is only for addresses to 00FF, and (in contrast to the 6809) this behaviour cannot be modified - there is no DP register.
In this case, how can I safely modify such example routines to work on the HX-20? What would be the effects of using either of the areas above? Or do I need to resort to a different type of addressing and use addresses from 0A40 to 3FFF, which seem to be the RAM areas left exclusively for user programs?