APPENDIX EIGHT ____________________________________________________________ Display Lists A display list is a short program for the ANTIC chip, telling it how to display data on the screen. This program includes such instructions as how many blank lines to place on the screen for top boundaries, where the screen display data is stored, what mode the line(s) to be displayed are in, whether or not there is an interrupt to execute and where to find the display list itself. There are nine pre-programmed display lists (ten with the GTIA) you use in BASIC, one for each GRAPHICS mode. You can examine the display lists for each mode by running the program at location 560. You can change these lists to suit your own needs without much effort. It is quite easy to design and implement your own display list once you know where it's located and what the proper instructions are. Certain techniques, such as horizontal and vertical fine scrolling, require that you modify the display list in order to properly display your screen data. Sometimes you want to be able to display data in more than one mode or mix graphics and text in the same screen. These are all done by modifying the display list. The smallest display list is for GRAPHICS 2, so I'll use it as an example. It consists of a mere twenty odd bytes, but the format is the same for every list; it's just the instructions that change. Use the program listed in the Memory Map to examine the list or use a simple two-liner such as: 10 GRAPHICS 2: P = PEEK(560) + PEEK (561) * 256 20 FOR N = 0 TO 23: PRINT PEEK(P + N);" ";: NEXT N When you RUN this example, you should get this: 112 112 112 71 112 158 7 7 7 7 7 7 7 7 7 66 96 159 2 2 2 65 88 158 Or something similar depending on your available memory. If you change the GR.2 to GR.2 + 16, you will get: 112 112 112 71 112 158 7 7 7 7 7 7 7 7 7 7 7 65 92 158 The display list instruction set is discussed at location 560, but here's a chart to summarize it: Instruction BASIC Scan Pixels Bytes Comments Decimal Hex mode lines line line Blank instructions 0 0 -- 1 -- -- 1 blank line 16 10 -- 2 -- -- 2 blank lines 32 20 -- 3 -- -- 3 blank lines