58460 SIO first sends a command frame to the device, consisting of five bytes: the device ID, the command BYTE, two auxiliary bytes for device-specific information, then a checksum (which is the sum of the first four bytes). If the device acknowledges this frame, it is followed, if necessary, by the data frame of a fixed number of bytes depending on the device record size, plus a checksum byte. Initialized to 59737 ($E959). 58460 E45C SETVBV Set system timers during the VBLANK routine. Uses the 6502 X register for the MSB of vector/times, Y for the LSB and A for the number of the vector to hack (change). SETVBV insures that both bytes of the vector addressed will be updated while VBLANK is enabled. You can JSR here when creating your own timer routines. See COMPUTE!, November 1981, for an application. Initialized to 59666 ($E912) old ROMs, 59629 ($E8ED) new ROMs. 58463 E45F SYSVBV Stage one VBLANK calculations entry. It performs the processing of a VBLANK interrupt. Contains JMP instruction for the vector in the next two addresses (58464, 58465; $E460, $E461). This is the address normally found in VVBLKI (546, 547; $222, $223). It is initialized to 59345 ($E7D1), which is the VBLANK routine entry. Initialized to 59345 ($E7D1) old ROMs, 59310 ($E7AE) new ROMs. 58466 E462 XITVBV Exit from the VBLANK routine, entry point. Contains JMP to the address stored in next two locations (58467, 58468; $E463, $E464). This is the address normally found in VVBLKD (548, 549; $224, $225). Initialized to 59710 ($E93E), which is the VBLANK exit routine. It is used to restore the computer to its pre-interrupt state and to resume normal processing. Initialized to 59710 ($E93E) old ROMs, 59653 ($E905) new ROMs. 58469 E465 SIOINV SIO utility initialization, OS use only. 58472 E468 SENDEV Send enable routine, OS use only. 58475 E46B INTINV Interrupt handler initialization, OS use only. 58478 E46E CIOINV CIO utility initialization, OS use only. 58481 E471 BLKBDV Blackboard mode entry. Blackboard mode is the "ATARI MEMO