These locations are used as a pointer to the address of the current byte to be written to tape or saved to disk, or the address where the byte read from tape or from a disk boot sector is to be stored. The Kernal has several routines to service this pointer, including:
There is also a routine $F7CC to retrieve the character at the pointer address from the bank specified in $C6, and one $F7BC to store the current accumulator contents at the pointer address in the bank specified in $C6.
The Kernal BOOT_CALL routine $F890 uses locations $AC-$AD to hold the address at which the contents of additional boot sectors are to be stored. Location $AE holds the bank number for the additional data. Location $AF holds the number of disk sectors to be loaded during the boot process.
This location is used during the routines which read from or write to tape, or in saving to disk, to hold the ending address for the operation. For loading from disk, this location is used as a working pointer to the address where data is stored. After all bytes have been loaded, the locations will hold the ending address.
Actually, in all cases the pointer will hold the address of the location immediately following the last one involved in the operation. The Kernal SAVE routine $F53E initializes these locations with the contents of the X and Y registers when the routine is called. The Kernal provides a routine $F7C9 to retrieve the character at the pointer address from the bank specified in $C6, and one $F7BF to store the current accumulator contents at the pointer address in the bank specified in $C6.
This memory location is considered unused in that no Commodore 128 Kernal or BASIC routine deliberately changes it. However, due to a bug in the screen editor CINT $C07B and SWAPPER $CD2E routines, it is overwritten whenever those routines run.
Since these routines are triggered during the RUN/STOP-RESTORE sequence, any value you store here will be lost whenever you press RUN/STOP-RESTORE or switch screens. For this reason, if you use this location in your programs, it should only serve as temporary working space, not for storing important data that you need to keep in the situations mentioned above.
These memory locations are not used by any Commodore 128 ROM routines, making them available for your BASIC or machine language programs. They are not affected by the RUN/STOP-RESTORE key combination. However, keep in mind that all zero-page locations, including these, are cleared to zero during a reset—unless the RUN/STOP key is held down while resetting. For more information, refer to the reset routine at $E000.
This location is used as part of the assembly area for character strings representing the digits of numeric values.