792 decremented during the I/O operation. If it reaches zero (after two seconds) before the first byte of the cassette record is read, the operation will be aborted. 792 318 STACKP SIO stack pointer register. Points to a byte in the stack being used in the current operation (locations 256 to 511; $100 to $1FF). 793 319 TSTAT Temporary status holder for location 48 ($30). 794-831 31A-33F HATABS Handler Address Table. Thirty-eight bytes are reserved for up to 12 entries of three bytes per handler, the last two bytes being set to zero. On powerup, the HATABS table is copied from ROM. Devices to be booted, such as the disk drive, add their handler information to the end of the table. Each entry has the character device name (C,D,E,K,P,S,R) in ATASCII code and the handler address (LSB/MSB). Unused bytes are all set to zero. FMS searches HATABS from the top for a device "D:" entry, and when it doesn't find it, it then sets the device vector at the end of the table to point to the FMS vector at 1995 ($7CB). CIO searches for a handler character from the bottom up. This allows new handlers to take precedence over the old. Pressing RESET clears HATABS of all but the resident handler entries! 794 31A Printer device ID (P:), initialized to 58416 ($E430). 797 31D Cassette device ID (C:), initialized to 58432 ($E440). 800 320 Display editor ID (E:), initialized to 58368 ($E400). 803 323 Screen handler ID (S:), initialized to 58384 ($E410). 806 326 Keyboard handler ID (K:), initialized to 58400 ($E420). HATABS unused entry points: 809 ($329), 812 ($32C), 815 ($32F), 818 ($332), 821 ($335), 824 ($338), 827 ($33B), and 830 ($33E). These are numbered sequentially from one to eight. There are only two bytes in the last entry (unused), both of which are set to zero. When DOS is present, it adds an entry to the table with the ATASCII code for the letter "D" and a vector to address 1995 ($7CB). The format for the HATABS table is: Device name Handler vector table address More entries Zero fill to the end of the table The device handler address table entry above for the specific handler points to the first byte (low byte/high byte) of the vector