832-847 You can easily POKE the necessary values into the memory locations and use a machine language subroutine through a USR function to call the CIO directly (you must still use an OPEN and CLOSE statement for the channel, however). This is useful because BASIC only supports either record or single byte data transfer, while the CIO will handle complete buffer I/O. See the CIO entry address, location 58454 ($E456), for more details. These blocks are used the same way as the page zero IOCB (locations 32 to 47; $20 to $2F). The OS takes the information here, moves it to the ZIOCB for use by the ROM CIO, then returns the updated information back to the user area when the operation is done. Note that when BASIC encounters a DOS command, it CLOSEs all channels except zero. Refer to the Atari Hardware Manual and the 850 Interface Manual for more detailed use of these locations. 832-847 340-34F IOCB0 I/O Control Block (IOCB) zero. Normally used for the screen editor (E:). You can POKE 838,166 and POKE 839,238 and send everything to the printer instead of to the screen (POKE 838,163, and POKE 839,246 to send everything back to the screen again). You could use this in a program to toggle back and forth between screen and printed copy when prompted by user input. This will save you multiple PRINT and LPRINT coding. You can use these locations to transfer data to other devices as well since they point to the address of the device's "put one byte" routine. See the OS Manual for more information. Location 842 can be given the value 13 for read from screen and 12 for write to screen. POKE 842,13 puts the Atari into "RETURN key mode" by setting the auxiliary byte one (ICAX1) to screen input and output. POKEing 842 with 12 returns it to keyboard input and screen output mode. The former mode allows for dynamic use of the screen to act upon commands the cursor is made to move across. You can use this "forced read" mode to read data on the screen into BASIC without user intervention. For example, in the program below, lines 100 through 200 will be deleted by the program itself as it runs. 10 GRAPHICS 0:POSITlON 2,4 20 PRINT 100:PRINT 150:PRINT 200 25 PRINT "CONT" 30 POSITION 2,0 50 POKE 842,13:STOP 60 POKE 842,12 70 REM THE NEXT LINES WILL BE DELETED 100 PRINT "DELETING..."