88,89 1010 FOR CHANGE = DLIST + 6 TO DLIST + 204: IF PEEK(CHANGE) = 15 THE N POKE CHANGE,14 1020 IF PEEK (CHANGE) = 79 THEN POKE CHANGE,78: NEXT CHANGE 1030 POKE 87,7:RETURN (Actually, 15 ($F) is the DL number for the maximum memory mode; it also indicates modes eight through eleven. The DL's for these modes are identical.) Fourteen is the ANTIC E mode; GR.7.5 This program merely changes GR.8 to mode E in the Display List. The value 79 is 64 + 15; mode eight screen with BIT 6 set for a Load Memory Scan (LMS) instruction (see the DL information in locations 560, 561; $230, $231). It does not check for other DL bits. You can also POKE 87 with the GTIA values (nine to eleven). To get a pseudo-text window in GTIA modes, POKE the mode number here and then POKE 623 with 64 for mode nine, 128 for mode ten, and 192 for mode eleven, then POKE 703 with four, in program mode. (In command mode, you will be returned to GR.0.) You won't be able to read the text in the window, but you will be able to write to it. However, to get a true text window, you'll need to use a Display List Interrupt (see COMPUTE!, September 1982). If you don't have the GTIA chip, it is still possible to simulate those GRAPHICS modes by using DINDEX with changes to the Display List Interrupt. See COMPUTE!, July 1981, for an example of simulating GR.10. 88,89 58,59 SAVMSC The lowest address of the screen memory, corresponding to the upper left corner of the screen (where the value at this address will be displayed). The upper left corner of the text window is stored at locations 660, 661 ($294, $295). You can verify this for yourself by: WINDOW = PEEK(88) + PEEK(89) * 256: POKE WINDOW,33 This will put the letter "A" in the upper left corner in GR.0, 1 and 2. In other GRAPHICS modes, it will print a colored block or bar. To see this effect, try: 5 REM FIRST CLEAR SCREEN 10 GRAPHICS Z: IF Z > 59 THEN END 15 SCREEN = PEEK (88) + PEEK (89) * 256 20 FOR N = 0 TO 255: POKE SCREEN + N ,N 25 NEXT N: FOR N = 1 TO 300: NEXT N: