Mastering Machine Code on Your ZX81
with illustrations by Cathy Lowe
[ASCIIfied by Thunor]
Reston Publishing Company, Inc.
A Prentice-Hall Company
ISBN: 0-8359-4261-9 (0835942619)
[For a downloadable version of this HTML book prepared for offline reading, see
[Thunor: Notes on my HTML transcription of this book.]
By Tim Hartnell, National ZX80 and ZX81 Users' Club, London, August 1981.
A brief summary of the book.
Computers count in sixteens, not tens. This system is called hexadecimal, and is quite useful to get to know.
very simple! Plusses and minuses only. Shares and timeses are left till later!
An explanation of how to use memory in RAM. A "SCROLL backwards" program is included to demonstrate this.
A very explicit guide to the use of REM statements, variables area, and protected regions of RAM.
How to use the stack to store data. Jumping and conditional jumping, and the use of subroutines explained.
In BASIC the PRINT instruction is perhaps the most widely used instruction of all. Here's how to use it in machine code.
All the instructions. A complete explanation of every single machine language instruction used by the ZX.
A machine code editing program, itself written largely in machine code. The speed it offers is likely to make your fluency in machine code develop very strongly.
Using the keyboard in programs has obvious advantages. Here we cover the function INKEY$ for the NEW ROM and explain how to recreate it on the OLD. An elegant little program called GRAFFITTI is developed which shows how the character set is generated.
The first part of a program, which allows a player to input a move, and checks for cheats!
Music and pictures. Music from the keyboard, and pictures from the screen. Watch out for the program LIFE.
The output of the computer's move. This section does not decide upon a move to make; it merely outputs a move assuming the decision has been made already.
A section intended only for the ZX81 because the games included here rely on the SLOW mechanism. (And in machine code the word "SLOW" should absolutely
not be taken literally.)
The making of the big decision...Which move to choose.
The ROM holds many secrets, but it, and any other machine code program, may be disassembled fairly simply. A hex-listing program is given, and an outline as to how a full disassembler-program may be written is also given.
Have you ever wondered how floating point numbers work in machine code? How you can add and subtract them? Multiply and divide them? Even take sines and cosines!? This chapter will tell you how.
Including the effect of each instruction on the flags.
[Thunor: Added by myself to assist with typing-in the author's program.]
[Thunor: A very nice farewell program by the author Toni Baker for the NEW ROM i.e. ZX81.]
[Thunor: Added by myself to list all available downloads to date in one accessible location.]
[Finishing the Book]
[Thunor: Disassembles bytes into groups of bytes that represent Z80 instructions.]
[Thunor: Dumps bytes to the screen in either hexadecimal or Sinclair character code representation.]
[Thunor: A much improved hex loader incorporating both LENSLIST2 and DUMP.]
[Thunor: A program that disassembles bytes into Z80 instructions with mnemonics.]