128,129 drawn, this value is decremented. When the byte equals zero, the line is complete (drawn). --------------------------------------------------------------------- User and/or BASIC page zero RAM begins here. Locations 128 to 145 ($80 to $91) are for BASIC program pointers; 146 to 202 ($92 to $CA) are for miscellaneous BASIC RAM; 203 to 209 ($CB to $D1) are unused by BASIC, and 210 to 255 ($D2 to $FF) are the floating point routine work area. The Assembler Editor cartridge uses locations 128 to 176 ($80 to $B0) for its page zero RAM. Since the OS doesn't use this area, you are free to use it in any non-BASIC or non-cartridge environment. If you are using another language such as FORTH, check that program's memory map to see if any conflict will occur. See COMPUTE!'s First Book of Atari, pages 26 to 53, for a discussion of Atari BASIC structure, especially that using locations 130 to 137 ($82 to $89). Included in the tutorials are a memory analysis, a line dump, and a renumber utility. See also De Re Atari, BYTE, February 1982, and the locations for the BASIC ROM 40960 to 49151 ($A000 to $BFFF). 128,129 80,81 LOMEM Pointer to BASIC's low memory (at the high end of OS RAM space). The first 256 bytes of the memory pointed to are the token output buffer, which is used by BASIC to convert BASIC statements into numeric representation (tokens; see locations 136, 137; $88, $89). This value is loaded from MEMLO (locations 743, 744; $2E7, $2E8) on initialization or the execution of a NEW command (not on RESET!). Remember to update this value when changing MEMLO to reserve space for drivers or buffers. When a BASIC SAVE is made, two blocks of information are written: the first block is the seven pointers from LOMEM to STARP (128 to 141; $80 to $8D). The value of LOMEM is subtracted from each of these two-byte pointers in the process, so the first two bytes written will both be zero. The second block contains the following: the variable name table, the variable value table, the tokenized program, and the immediate mode line. When a BASIC LOAD is made, BASIC adds the value at MEMLO (743, 744; $2E7, $2E8) to each of the two-byte pointers SAVEd as above. The pointers are placed back in page zero, and the values of RUNSTK (142, 143; $8E, $8F) and MEMTOP (144, 145; $90, $91) are set to the value in STARP. Then 256 bytes are reserved above the value in MEMLO for the token output buffer, and the program is read in immediately following this buffer. When you don't have DOS or any other application program using low memory loaded, LOMEM points to 1792 ($700). When