88,89 Z = Z + 1 30 GOTO 10 You will notice that you get the Atari internal character code, not the ATASCII code. See also locations 560, 561 ($230, $231) and 57344 ($E000). How do you find the entire screen RAM? First, look at the chart below and find your GRAPHICS mode. Then you multiply the number of rows-per-screen type by the number of bytes-per-line. This will tell you how many bytes each screen uses. Add this value, minus one, to the address specified by SAVMSC. However, if you subtract MEMTOP (locations 741, 742; $2E5, $2E6) from RAMTOP (106; $6A * 256 for the number of bytes), you will see that there is more memory reserved than just the screen area. The extra is taken up by the display list or the text window, or is simply not used (see the second chart below). Mode 0 1 2 3 4 5 6 7 8 9-12 Rows Full 24 24 12 24 48 48 96 96 192 192 Split -- 20 10 20 40 40 80 80 160 -- Bytes per Line 40 20 20 10 10 20 20 40 40 40 Columns per Line 40 20 20 40 80 80 160 160 320 80 Memory (1) 993 513 261 273 537 1017 2025 3945 7900 7900 Memory (2) Full 992 672 420 432 696 1176 2184 4200 8138 8138 Split -- 674 424 434 694 1174 2174 4190 8112 -- (1) According to the Atari BASIC Reference Manual, p.45; OS User's Manual, p.172, and Your Atari 400/800, p.360. (2) According to Your Atari 400/800, p.274, and Atari Microsoft Basic Manual, p.69. This is also the value you get when you subtract MEMTOP from RAMTOP (see above). For example, to POKE the entire screen RAM in GR.4, you would find the start address of the screen (PEEK(88) + PEEK(89) * 256), then use a FOR-NEXT loop to POKE all the locations specified above: 10 GRAPHICS 4: SCRN = PEEK(88) + PE EK(89) * 256 20 FOR LOOP = SCRN to SCRN + 479: R EM 48 ROWS * 10 BYTES - 1 30 POKE LOOP,35: NEXT LOOP