Dragon Video Modes
This is the documentation I originally wrote as part of the
instructions for my Jumble Disk (I eventually rewrote it to basically
say "play for yourself"). That disk had a whole bunch of commands that could
be added to the Dragon's BASIC, one of which was
SHOW, which would
configure the SAM. The two parameters it takes configure the display offset (7
bits from $FFC6) and the video mode as the SAM sees it (3 bits from $FFC0). To
set these yourself, access memory starting from the addresses given - even
addresses clear a bit, odd addresses set it. So for example accessing $FFC9
will set bit 1 of the display offset.
This command configures the SAM inside the Dragon to address video memory as stated in the command. It takes two parameters, separated with a comma:
1st parameter: 7 bit start address. Should be a value from 0 to 127. This displays memory starting at n*512.
2nd parameter: 3 bit display information. Selects the number of bytes-per-page from the following:
|0||512 (Text)||512 (256*16)|
|1||3072 (See note)||1024 (128*64)|
|2||2048 (64*64)||2048 (256*64)|
|3||4608 (See note)||1536 (128*96)|
|4||3072 (64*96)||3072 (256*96)|
|5||9216 (See note)||3072 (128*192)|
|6||6144 (64*192)||6144 (256*192)|
|7||8064 (See note)||8064 (See note)|
Alphanumerics mode 1 allows 16 bytes of information across the screen, and 192 down. Whatever is POKEd to the screen appears on both sides of the screen.
Alphanumerics mode 3 is strange. For each two rows down the screen, one can hold 16 bytes and is organised as in mode 1, and one can hold 32 bytes, like most of the other alphanumeric modes. There are 192 bytes down a screen.
Alphanumerics mode 5 allows 48 bytes across each line, although only the first 32 are displayed. There are 192 bytes down the screen. If the graphics mode is set to PMODE 4, then the graphics mode is treated in the same way, allowing a maximum resolution of 384*192, although only 256*192 are displayed.
Alphanumerics mode 7 allows 42 bytes across by 192 down, although again only the first 32 across will be displayed. Similarly, the graphics mode is treated as mode 5 except only 42 bytes across are allowed.
Generally, the graphics modes on the Dragon are confusing. There are so many combinations of them, and they give many strange effects. Try experimenting with the program below.
10 PCLEAR 4 ;Reserve 6144 bytes of memory 20 SCREEN 0,0 ;Alphanumerics mode 30 SHOW 6,6 ;Semigraphics 24 from 3072 decimal 40 FOR X=3072 to 9215 ;Fill 3072dec to 9215 dec 50 POKE X,RND(256)-1 ;With random data 60 NEXT X 70 GOTO 70 ;Infinite loop - <BREAK> to exit