58457 SIO (below) to control the actual peripheral(s). CIO treats all I/O in the same manner: device independent. The differentiation between operations is done by the actual device drivers. You jump to here to use the IOCB handler routines in ROM. BASIC supports only record I/O or one-byte-at-a-time I/O (GET and PUT). Addressing CIOV directly will allow the user to input or output a buffer of characters at a time, such as loading a machine language program directly into memory from a disk file. This is considerably faster than using BASIC functions such as GET. Here is a typical machine language subroutine to do this: PLA, PLA, PLA, TAX, JMP $E456 (104,104,104,170,76,86,228) ($68,$68,$68,$AA,$4C,$56,$E4) This gets the IOCB number into the 6502 X register and the return address on the stack. CIOV expects to find the IOCB number 16 in the 6502 X register (i.e., IOCB zero is zero, IOCB one is 16; $10, IOCB two is 32, $20, etc.). $E456 is the CIO initialization entry point (this address). To use CIOV in a program, first you must have OPENed a channel for the appropriate actions, POKEd the correct IOCB (locations 848 to 959; $350 to $3BF) with the correct values, and established a location in which to load your file (IOCB address plus four and plus five). One use is calling up a high-res picture from a disk and storing it in the screen memory (locations 88, 89; $58, $59). You can POKE the appropriate decimal values into memory and call it with a USR call, or make it into a string (START$ = "hhh*LVd" where the * and the d are both inverse characters) and call it by: JUMP = USR(ADR(START$)) This method is used to start the concurrent mode in the RS-232 of the 850 interface in the 850 Interface Manual. See location 88, 89 ($58, $59) for another example of the machine language routine technique. Still another use of this method can be found in De Re Atari. Initialized to 58564 ($E4C4). 58457 E459 SIOV Serial Input/Output (SIO) utility entry point. SIO drives the serial bus and the peripherals. When a request is placed in the Device Control Block (DCB) by a device handler, SIO takes control and uses the data in the DCB to perform the operation required. SIO takes care of the transfer of data as defined by the DCB. CIO (above) is responsible for the "packaging" of the data and transfers control to SIO when necessary. See the DCB locations 768 to 779 ($300-$30B).