560,561 TXT = PEEK(660) + PEEK(66l) * 256 40 PRINT DLIST$;" "; DLIST,SAVMSC$;" ";SAV 50 PRINT TXT$;" "; TEXT 60 INPUT A: GRAPHICS A: GOTO 20 Since an LMS is simply a map mode (graphics) or character mode (text) instruction with BIT six set, you can make any or all of these instructions into LMS instructions quite easily, pointing each line to a different RAM area if necessary. This is discussed in De Re Atari on implementing horizontal scrolling. DL's can be used to help generate some of the ANTIC screen modes that aren't supported by BASIC, such as 7.5 (ANTIC mode E) or ANTIC mode three, the lowercase with descenders mode (very interesting; ten scan lines in height which allow true descenders on lowercase letters). If you create your own custom DL, you POKE its address here. Hitting BESET or changing GRAPHICS modes will restore the OS DL address, however. The display list instruction is loaded into a special register called the Display Instruction Register (IR). which processes the three DL instructions (blank, jump, or display). It cannot be accessed directly by the programmer in either BASIC or machine language. A DL cannot cross a 1K boundary unless a jump instruction is used. There are only four display list instructions: blank line (uses BAK color), map mode, text mode, and jump. Text (character mode) instructions and map mode (graphics) instructions range from two to 15 ($2 to $F) and are the same as the ANTIC GRAPHICS modes. A DL instruction byte uses the following conventions (functions are enabled when the bit is set to one): Bit Decimal Function 7 128 Display List Interrupt when set (enabled equals one) 6 64 Load Memory Scan. Next two bytes are the LSB/MSB of the data to load. 5 32 Enable vertical fine scrolling. 4 16 Enable horizontal fine scrolling. 3-0 8-1 Mode 0 0 1 0 Character to Modes 0 1 1 1 . . . . . . . 1 0 0 0 Map to Modes 1 1 1 1