8. INSTRUMENTAL PROGRAM
8.1. Determining the size of
free memory
Length: 14
Number of variables: 0
Checksum: 1443
Purpose: gives the number of
free space in RAM
bytes.
Calling the program:
RANDOMIZE USR address
Error Check: No
Comment: This program
must be called before using any routines that may increase the
length of program, to be sure
that the RAM is enough free space.
LISTING machine code
Assembly label number to VVODA147.
LD HL, 0 33 0 0
ADD HL, SP 57
LD DE, (23653) 237 91 101 1992
AND A 167
SBC HL, DE 237 82
LD B, H 68
LD C, L 77
RET 2012
How it works:
In a couple of registers loaded HL 0, and this value is summed
address the end of the free area of memory (the address is
stored in a SP). DE register pair is loaded
address of the beginning of the free RAM and subtracted from
the HL. HL copied to the BC and the program returns to BASIC.