POINT TO POINT (ZX81 / ZX80 WITH 8K ROM)
by Mike Howard, Lydney, Gloucestershire
from Your Computer (August/Septemebr 1981), page 61

Here are three points new users of the ZX-81 might find useful. I am using
the 8K Basic ROM on a ZX-80 but all programs and points will apply to both
the ZX-81 and the uprated ZX-80.

Firstly, it disappointed me that plot and unplot only allow a single
character to be plotted: other Basics allow a third argument which allows
any of the character set to be plotted - as, for example, on the RML 380-Z.

A brief look at the variables table in the manual shows that 16398, 16399 is
the address of the current print position so that this less one is the
address of the last plotted point.

Poking this with the code for a different character has the desired effect
of replacing the plot square with any character required. Thus, assuming you
have defined X and Y:

    10 PLOT X,Y
    20 POKE (PEEK(16398)+PEEK(16399))*256-1),23

will plot an asterisk. The Poked graph is coarser than the original but for
overlaying two scattergrams, for example, where contrast is important, it
can be an ideal way of displaying data. Do not forget the -1 in the Poke or
you will crash the Basic.

A real plethora of Hex to decimal conversion programs for the ZX-80 prompted
me to write the following pair of programs for the ZX-81 which, taken
together, will enable anyone to decode the ROM easily or help in producing
machine code software.

Hexmon will produce tabulated addresses and contents in Hex of any eight
bytes of memory. The start address is input first but after that, each
Newline will give the subsequent eight bytes. Entering a new address instead
of the Newline displays the eight bytes starting at that address, so the
user can jump round in memory.

Hexcon will convert any positive Hex number into decimal and will also
calculate relative jumps, as an adjunct to Hexmon, it has been very useful
to me. It first asks whether you want a jump or a conversion and then
invites you to enter the Hex code which it will convert to an absolute
number or a decimal-signed integer for jumps.