Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_29.ADF » P/+INDEX2

P/+INDEX2

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_29.ADF
Filename: P/+INDEX2
Read OK:
File size: 1251 bytes
Load address: 3A204556
Exec address: 2E502E30
File contents
Multi-colour modes by Mark Bellis
---------------------------------

For Master series and machines with shadow RAM and CRTC (sorry ELK
users, but perhaps you can use the 'extra' grey colour - see later)

Files:

16C1GEN               Generates machine code for 16 colour mode 1
16C1SRC               The resultant source code (already on disk)

36C2GEN               Generates machine code for 36 colour mode 2
36C2SRC               The resultant source code (already on disk)

All files have been stripped of master-specific instructions, so they
should compile/run on all machines - if you have the relevant chips!

Following an idea in the Master Advanced reference manual, and also
the will to stretch the BBC Master 128 to its limit (and try to keep
up with other machines with zillions of colours), I have experimented
with creating modes which give more colours.  (higher resolution in
mode 0 has not been possible - yet!)

The technique is as follows:

Intercept the frame-sync event with *FX14,4 and redirect the
EVENTV vector at &0220-21.

Create a routine for the vector to point to which switches between main
and shadow RAM for display (by EORing bits of &FE34) - equivalent to
*FX113,1 or 113,2.  Change RAM banks every frame sync.  Change the
palette as well, by poking to the palette at &FE21.  There are rules
for doing this, which are in the Master Advanced Reference Manual page 46.

Oh dear - perhaps BBC B+ users cannot benefit - the Master Advanced
Reference Manual shows the RAM latch at &FE34 as a difference between
Models B/B+ and the Master 128.  Those hackers with their own add-ons
might be able to tweak it - I hope.

The 'new modes' created rely on palette matrices of 4x4 and 8x8
respectively for modes 1 and 2.  16 colours in mode 1 is 4x4, but in
mode 2, the number of colours is 8x8, with nearly half being removed
because they are duplicates.

Mode 1                         Mode 2

          main colour                 main colour
          \  1  2  3  4            \  1  2  3  4  5  6  7  8
        --+-------------         --+-------------------------
shadow  1 \  0  1  2  3          1 \  0  d  d  d  d  d  d  d
colour  2 \  4  5  6  7          2 \  1  2  d  d  d  d  d  d
        3 \  8  9 10 11  shadow  3 \  3  4  5  d  d  d  d  d
        4 \ 12 13 14 15  colour  4 \  6  7  8  9  d  d  d  d
                                 5 \ 10 11 12 13 14  d  d  d
    d = duplicate colour         6 \ 15 16 17 18 19 20  d  d
                                 7 \ 21 22 23 24 25 26 27  d
numbers 1-4 or 1-8               8 \ 28 29 30 31 32 33 34 35
can be changed to give
the best combinations

For mode 2, palette switching is not necessary - all combinations
can be seen as all possible colours are available on screen at once.
This is the reason why 36C2SRC is shorter than 16C1SRC.

For mode 1, however, only four colours are available on each screen, so
a possible palette combination would be black, red, green, yellow for
the main screen, and black, blue, cyan, magenta for shadow screen.  If
white was required, it would have to be one of the colours on each screen,
thus reducing the available combinations.

One slight disadvantage of multi-colour modes is that all points plotted
or text printed or sprites copied to the screen need to be written to
main RAM, then after switching a bit of &FE34, written to shadow RAM, thus
taking longer to plot.  I have, however, written a multi-colour-mode
sprite plotting routine which is not slow enough to hinder writing games
which use it.  There will be a memory overhead of twice the number of
sprites though - each screen needs its own set.

Unfortunately, the necessity to slow the refresh rate down to 25Hz rather
than the usual 50Hz, in order to fit two screens into the time, means that
the effect of light/dark colour combinations (such as yellow/red) is rather
flickery (beware if you are allergic to strobes!)

Try to stick to combinations which are not so bad, such as:

red/black       brown(ish)
blue/red        purple
red/magenta     shocking pink!
etc...

the list of pure colours in order of brightness is as follows:
white, cyan, yellow, green, magenta, blue, red, black.

Generally, the nearer two colours are to each other in the above list, the
less flickery the combination will be. The best grey will be green/magenta
for this reason. (by the way, a game called 'ORCREST' uses colour 11 with
*FX9,1 and *FX10,1 to give grey - perhaps all machines can have an extra
colour - although *FX9 and 10 rely on the LSB of the VIDPROC control
register - do ELKs have a VIDPROC? (as they don't have a CRTC))


Mark Bellis
118, The Lawns,
Rolleston-on-Dove,
Burton-on-Trent,
Staffs,
DE13 9DE


00000000  4d 75 6c 74 69 2d 63 6f  6c 6f 75 72 20 6d 6f 64  |Multi-colour mod|
00000010  65 73 20 62 79 20 4d 61  72 6b 20 42 65 6c 6c 69  |es by Mark Belli|
00000020  73 0d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |s.--------------|
00000030  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000040  2d 2d 2d 0d 0d 46 6f 72  20 4d 61 73 74 65 72 20  |---..For Master |
00000050  73 65 72 69 65 73 20 61  6e 64 20 6d 61 63 68 69  |series and machi|
00000060  6e 65 73 20 77 69 74 68  20 73 68 61 64 6f 77 20  |nes with shadow |
00000070  52 41 4d 20 61 6e 64 20  43 52 54 43 20 28 73 6f  |RAM and CRTC (so|
00000080  72 72 79 20 45 4c 4b 0d  75 73 65 72 73 2c 20 62  |rry ELK.users, b|
00000090  75 74 20 70 65 72 68 61  70 73 20 79 6f 75 20 63  |ut perhaps you c|
000000a0  61 6e 20 75 73 65 20 74  68 65 20 27 65 78 74 72  |an use the 'extr|
000000b0  61 27 20 67 72 65 79 20  63 6f 6c 6f 75 72 20 2d  |a' grey colour -|
000000c0  20 73 65 65 20 6c 61 74  65 72 29 0d 0d 46 69 6c  | see later)..Fil|
000000d0  65 73 3a 0d 0d 31 36 43  31 47 45 4e 20 20 20 20  |es:..16C1GEN    |
000000e0  20 20 20 20 20 20 20 20  20 20 20 47 65 6e 65 72  |           Gener|
000000f0  61 74 65 73 20 6d 61 63  68 69 6e 65 20 63 6f 64  |ates machine cod|
00000100  65 20 66 6f 72 20 31 36  20 63 6f 6c 6f 75 72 20  |e for 16 colour |
00000110  6d 6f 64 65 20 31 0d 31  36 43 31 53 52 43 20 20  |mode 1.16C1SRC  |
00000120  20 20 20 20 20 20 20 20  20 20 20 20 20 54 68 65  |             The|
00000130  20 72 65 73 75 6c 74 61  6e 74 20 73 6f 75 72 63  | resultant sourc|
00000140  65 20 63 6f 64 65 20 28  61 6c 72 65 61 64 79 20  |e code (already |
00000150  6f 6e 20 64 69 73 6b 29  0d 0d 33 36 43 32 47 45  |on disk)..36C2GE|
00000160  4e 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |N               |
00000170  47 65 6e 65 72 61 74 65  73 20 6d 61 63 68 69 6e  |Generates machin|
00000180  65 20 63 6f 64 65 20 66  6f 72 20 33 36 20 63 6f  |e code for 36 co|
00000190  6c 6f 75 72 20 6d 6f 64  65 20 32 0d 33 36 43 32  |lour mode 2.36C2|
000001a0  53 52 43 20 20 20 20 20  20 20 20 20 20 20 20 20  |SRC             |
000001b0  20 20 54 68 65 20 72 65  73 75 6c 74 61 6e 74 20  |  The resultant |
000001c0  73 6f 75 72 63 65 20 63  6f 64 65 20 28 61 6c 72  |source code (alr|
000001d0  65 61 64 79 20 6f 6e 20  64 69 73 6b 29 0d 0d 41  |eady on disk)..A|
000001e0  6c 6c 20 66 69 6c 65 73  20 68 61 76 65 20 62 65  |ll files have be|
000001f0  65 6e 20 73 74 72 69 70  70 65 64 20 6f 66 20 6d  |en stripped of m|
00000200  61 73 74 65 72 2d 73 70  65 63 69 66 69 63 20 69  |aster-specific i|
00000210  6e 73 74 72 75 63 74 69  6f 6e 73 2c 20 73 6f 20  |nstructions, so |
00000220  74 68 65 79 0d 73 68 6f  75 6c 64 20 63 6f 6d 70  |they.should comp|
00000230  69 6c 65 2f 72 75 6e 20  6f 6e 20 61 6c 6c 20 6d  |ile/run on all m|
00000240  61 63 68 69 6e 65 73 20  2d 20 69 66 20 79 6f 75  |achines - if you|
00000250  20 68 61 76 65 20 74 68  65 20 72 65 6c 65 76 61  | have the releva|
00000260  6e 74 20 63 68 69 70 73  21 0d 0d 46 6f 6c 6c 6f  |nt chips!..Follo|
00000270  77 69 6e 67 20 61 6e 20  69 64 65 61 20 69 6e 20  |wing an idea in |
00000280  74 68 65 20 4d 61 73 74  65 72 20 41 64 76 61 6e  |the Master Advan|
00000290  63 65 64 20 72 65 66 65  72 65 6e 63 65 20 6d 61  |ced reference ma|
000002a0  6e 75 61 6c 2c 20 61 6e  64 20 61 6c 73 6f 0d 74  |nual, and also.t|
000002b0  68 65 20 77 69 6c 6c 20  74 6f 20 73 74 72 65 74  |he will to stret|
000002c0  63 68 20 74 68 65 20 42  42 43 20 4d 61 73 74 65  |ch the BBC Maste|
000002d0  72 20 31 32 38 20 74 6f  20 69 74 73 20 6c 69 6d  |r 128 to its lim|
000002e0  69 74 20 28 61 6e 64 20  74 72 79 20 74 6f 20 6b  |it (and try to k|
000002f0  65 65 70 0d 75 70 20 77  69 74 68 20 6f 74 68 65  |eep.up with othe|
00000300  72 20 6d 61 63 68 69 6e  65 73 20 77 69 74 68 20  |r machines with |
00000310  7a 69 6c 6c 69 6f 6e 73  20 6f 66 20 63 6f 6c 6f  |zillions of colo|
00000320  75 72 73 29 2c 20 49 20  68 61 76 65 20 65 78 70  |urs), I have exp|
00000330  65 72 69 6d 65 6e 74 65  64 0d 77 69 74 68 20 63  |erimented.with c|
00000340  72 65 61 74 69 6e 67 20  6d 6f 64 65 73 20 77 68  |reating modes wh|
00000350  69 63 68 20 67 69 76 65  20 6d 6f 72 65 20 63 6f  |ich give more co|
00000360  6c 6f 75 72 73 2e 20 20  28 68 69 67 68 65 72 20  |lours.  (higher |
00000370  72 65 73 6f 6c 75 74 69  6f 6e 20 69 6e 0d 6d 6f  |resolution in.mo|
00000380  64 65 20 30 20 68 61 73  20 6e 6f 74 20 62 65 65  |de 0 has not bee|
00000390  6e 20 70 6f 73 73 69 62  6c 65 20 2d 20 79 65 74  |n possible - yet|
000003a0  21 29 0d 0d 54 68 65 20  74 65 63 68 6e 69 71 75  |!)..The techniqu|
000003b0  65 20 69 73 20 61 73 20  66 6f 6c 6c 6f 77 73 3a  |e is as follows:|
000003c0  0d 0d 49 6e 74 65 72 63  65 70 74 20 74 68 65 20  |..Intercept the |
000003d0  66 72 61 6d 65 2d 73 79  6e 63 20 65 76 65 6e 74  |frame-sync event|
000003e0  20 77 69 74 68 20 2a 46  58 31 34 2c 34 20 61 6e  | with *FX14,4 an|
000003f0  64 20 72 65 64 69 72 65  63 74 20 74 68 65 0d 45  |d redirect the.E|
00000400  56 45 4e 54 56 20 76 65  63 74 6f 72 20 61 74 20  |VENTV vector at |
00000410  26 30 32 32 30 2d 32 31  2e 0d 0d 43 72 65 61 74  |&0220-21...Creat|
00000420  65 20 61 20 72 6f 75 74  69 6e 65 20 66 6f 72 20  |e a routine for |
00000430  74 68 65 20 76 65 63 74  6f 72 20 74 6f 20 70 6f  |the vector to po|
00000440  69 6e 74 20 74 6f 20 77  68 69 63 68 20 73 77 69  |int to which swi|
00000450  74 63 68 65 73 20 62 65  74 77 65 65 6e 20 6d 61  |tches between ma|
00000460  69 6e 0d 61 6e 64 20 73  68 61 64 6f 77 20 52 41  |in.and shadow RA|
00000470  4d 20 66 6f 72 20 64 69  73 70 6c 61 79 20 28 62  |M for display (b|
00000480  79 20 45 4f 52 69 6e 67  20 62 69 74 73 20 6f 66  |y EORing bits of|
00000490  20 26 46 45 33 34 29 20  2d 20 65 71 75 69 76 61  | &FE34) - equiva|
000004a0  6c 65 6e 74 20 74 6f 0d  2a 46 58 31 31 33 2c 31  |lent to.*FX113,1|
000004b0  20 6f 72 20 31 31 33 2c  32 2e 20 20 43 68 61 6e  | or 113,2.  Chan|
000004c0  67 65 20 52 41 4d 20 62  61 6e 6b 73 20 65 76 65  |ge RAM banks eve|
000004d0  72 79 20 66 72 61 6d 65  20 73 79 6e 63 2e 20 20  |ry frame sync.  |
000004e0  43 68 61 6e 67 65 20 74  68 65 0d 70 61 6c 65 74  |Change the.palet|
000004f0  74 65 20 61 73 20 77 65  6c 6c 2c 20 62 79 20 70  |te as well, by p|
00000500  6f 6b 69 6e 67 20 74 6f  20 74 68 65 20 70 61 6c  |oking to the pal|
00000510  65 74 74 65 20 61 74 20  26 46 45 32 31 2e 20 20  |ette at &FE21.  |
00000520  54 68 65 72 65 20 61 72  65 20 72 75 6c 65 73 0d  |There are rules.|
00000530  66 6f 72 20 64 6f 69 6e  67 20 74 68 69 73 2c 20  |for doing this, |
00000540  77 68 69 63 68 20 61 72  65 20 69 6e 20 74 68 65  |which are in the|
00000550  20 4d 61 73 74 65 72 20  41 64 76 61 6e 63 65 64  | Master Advanced|
00000560  20 52 65 66 65 72 65 6e  63 65 20 4d 61 6e 75 61  | Reference Manua|
00000570  6c 20 70 61 67 65 20 34  36 2e 0d 0d 4f 68 20 64  |l page 46...Oh d|
00000580  65 61 72 20 2d 20 70 65  72 68 61 70 73 20 42 42  |ear - perhaps BB|
00000590  43 20 42 2b 20 75 73 65  72 73 20 63 61 6e 6e 6f  |C B+ users canno|
000005a0  74 20 62 65 6e 65 66 69  74 20 2d 20 74 68 65 20  |t benefit - the |
000005b0  4d 61 73 74 65 72 20 41  64 76 61 6e 63 65 64 0d  |Master Advanced.|
000005c0  52 65 66 65 72 65 6e 63  65 20 4d 61 6e 75 61 6c  |Reference Manual|
000005d0  20 73 68 6f 77 73 20 74  68 65 20 52 41 4d 20 6c  | shows the RAM l|
000005e0  61 74 63 68 20 61 74 20  26 46 45 33 34 20 61 73  |atch at &FE34 as|
000005f0  20 61 20 64 69 66 66 65  72 65 6e 63 65 20 62 65  | a difference be|
00000600  74 77 65 65 6e 0d 4d 6f  64 65 6c 73 20 42 2f 42  |tween.Models B/B|
00000610  2b 20 61 6e 64 20 74 68  65 20 4d 61 73 74 65 72  |+ and the Master|
00000620  20 31 32 38 2e 20 20 54  68 6f 73 65 20 68 61 63  | 128.  Those hac|
00000630  6b 65 72 73 20 77 69 74  68 20 74 68 65 69 72 20  |kers with their |
00000640  6f 77 6e 20 61 64 64 2d  6f 6e 73 0d 6d 69 67 68  |own add-ons.migh|
00000650  74 20 62 65 20 61 62 6c  65 20 74 6f 20 74 77 65  |t be able to twe|
00000660  61 6b 20 69 74 20 2d 20  49 20 68 6f 70 65 2e 0d  |ak it - I hope..|
00000670  0d 54 68 65 20 27 6e 65  77 20 6d 6f 64 65 73 27  |.The 'new modes'|
00000680  20 63 72 65 61 74 65 64  20 72 65 6c 79 20 6f 6e  | created rely on|
00000690  20 70 61 6c 65 74 74 65  20 6d 61 74 72 69 63 65  | palette matrice|
000006a0  73 20 6f 66 20 34 78 34  20 61 6e 64 20 38 78 38  |s of 4x4 and 8x8|
000006b0  0d 72 65 73 70 65 63 74  69 76 65 6c 79 20 66 6f  |.respectively fo|
000006c0  72 20 6d 6f 64 65 73 20  31 20 61 6e 64 20 32 2e  |r modes 1 and 2.|
000006d0  20 20 31 36 20 63 6f 6c  6f 75 72 73 20 69 6e 20  |  16 colours in |
000006e0  6d 6f 64 65 20 31 20 69  73 20 34 78 34 2c 20 62  |mode 1 is 4x4, b|
000006f0  75 74 20 69 6e 0d 6d 6f  64 65 20 32 2c 20 74 68  |ut in.mode 2, th|
00000700  65 20 6e 75 6d 62 65 72  20 6f 66 20 63 6f 6c 6f  |e number of colo|
00000710  75 72 73 20 69 73 20 38  78 38 2c 20 77 69 74 68  |urs is 8x8, with|
00000720  20 6e 65 61 72 6c 79 20  68 61 6c 66 20 62 65 69  | nearly half bei|
00000730  6e 67 20 72 65 6d 6f 76  65 64 0d 62 65 63 61 75  |ng removed.becau|
00000740  73 65 20 74 68 65 79 20  61 72 65 20 64 75 70 6c  |se they are dupl|
00000750  69 63 61 74 65 73 2e 0d  0d 4d 6f 64 65 20 31 20  |icates...Mode 1 |
00000760  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000770  20 20 20 20 20 20 20 20  4d 6f 64 65 20 32 0d 0d  |        Mode 2..|
00000780  20 20 20 20 20 20 20 20  20 20 6d 61 69 6e 20 63  |          main c|
00000790  6f 6c 6f 75 72 20 20 20  20 20 20 20 20 20 20 20  |olour           |
000007a0  20 20 20 20 20 20 6d 61  69 6e 20 63 6f 6c 6f 75  |      main colou|
000007b0  72 0d 20 20 20 20 20 20  20 20 20 20 5c 20 20 31  |r.          \  1|
000007c0  20 20 32 20 20 33 20 20  34 20 20 20 20 20 20 20  |  2  3  4       |
000007d0  20 20 20 20 20 5c 20 20  31 20 20 32 20 20 33 20  |     \  1  2  3 |
000007e0  20 34 20 20 35 20 20 36  20 20 37 20 20 38 0d 20  | 4  5  6  7  8. |
000007f0  20 20 20 20 20 20 20 2d  2d 2b 2d 2d 2d 2d 2d 2d  |       --+------|
00000800  2d 2d 2d 2d 2d 2d 2d 20  20 20 20 20 20 20 20 20  |-------         |
00000810  2d 2d 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |--+-------------|
00000820  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 73 68 61  |------------.sha|
00000830  64 6f 77 20 20 31 20 5c  20 20 30 20 20 31 20 20  |dow  1 \  0  1  |
00000840  32 20 20 33 20 20 20 20  20 20 20 20 20 20 31 20  |2  3          1 |
00000850  5c 20 20 30 20 20 64 20  20 64 20 20 64 20 20 64  |\  0  d  d  d  d|
00000860  20 20 64 20 20 64 20 20  64 0d 63 6f 6c 6f 75 72  |  d  d  d.colour|
00000870  20 20 32 20 5c 20 20 34  20 20 35 20 20 36 20 20  |  2 \  4  5  6  |
00000880  37 20 20 20 20 20 20 20  20 20 20 32 20 5c 20 20  |7          2 \  |
00000890  31 20 20 32 20 20 64 20  20 64 20 20 64 20 20 64  |1  2  d  d  d  d|
000008a0  20 20 64 20 20 64 0d 20  20 20 20 20 20 20 20 33  |  d  d.        3|
000008b0  20 5c 20 20 38 20 20 39  20 31 30 20 31 31 20 20  | \  8  9 10 11  |
000008c0  73 68 61 64 6f 77 20 20  33 20 5c 20 20 33 20 20  |shadow  3 \  3  |
000008d0  34 20 20 35 20 20 64 20  20 64 20 20 64 20 20 64  |4  5  d  d  d  d|
000008e0  20 20 64 0d 20 20 20 20  20 20 20 20 34 20 5c 20  |  d.        4 \ |
000008f0  31 32 20 31 33 20 31 34  20 31 35 20 20 63 6f 6c  |12 13 14 15  col|
00000900  6f 75 72 20 20 34 20 5c  20 20 36 20 20 37 20 20  |our  4 \  6  7  |
00000910  38 20 20 39 20 20 64 20  20 64 20 20 64 20 20 64  |8  9  d  d  d  d|
00000920  0d 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00000930  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000940  20 20 35 20 5c 20 31 30  20 31 31 20 31 32 20 31  |  5 \ 10 11 12 1|
00000950  33 20 31 34 20 20 64 20  20 64 20 20 64 0d 20 20  |3 14  d  d  d.  |
00000960  20 20 64 20 3d 20 64 75  70 6c 69 63 61 74 65 20  |  d = duplicate |
00000970  63 6f 6c 6f 75 72 20 20  20 20 20 20 20 20 20 36  |colour         6|
00000980  20 5c 20 31 35 20 31 36  20 31 37 20 31 38 20 31  | \ 15 16 17 18 1|
00000990  39 20 32 30 20 20 64 20  20 64 0d 20 20 20 20 20  |9 20  d  d.     |
000009a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000009b0  20 20 20 20 20 20 20 20  20 20 20 20 37 20 5c 20  |            7 \ |
000009c0  32 31 20 32 32 20 32 33  20 32 34 20 32 35 20 32  |21 22 23 24 25 2|
000009d0  36 20 32 37 20 20 64 0d  6e 75 6d 62 65 72 73 20  |6 27  d.numbers |
000009e0  31 2d 34 20 6f 72 20 31  2d 38 20 20 20 20 20 20  |1-4 or 1-8      |
000009f0  20 20 20 20 20 20 20 20  20 38 20 5c 20 32 38 20  |         8 \ 28 |
00000a00  32 39 20 33 30 20 33 31  20 33 32 20 33 33 20 33  |29 30 31 32 33 3|
00000a10  34 20 33 35 0d 63 61 6e  20 62 65 20 63 68 61 6e  |4 35.can be chan|
00000a20  67 65 64 20 74 6f 20 67  69 76 65 0d 74 68 65 20  |ged to give.the |
00000a30  62 65 73 74 20 63 6f 6d  62 69 6e 61 74 69 6f 6e  |best combination|
00000a40  73 0d 0d 46 6f 72 20 6d  6f 64 65 20 32 2c 20 70  |s..For mode 2, p|
00000a50  61 6c 65 74 74 65 20 73  77 69 74 63 68 69 6e 67  |alette switching|
00000a60  20 69 73 20 6e 6f 74 20  6e 65 63 65 73 73 61 72  | is not necessar|
00000a70  79 20 2d 20 61 6c 6c 20  63 6f 6d 62 69 6e 61 74  |y - all combinat|
00000a80  69 6f 6e 73 0d 63 61 6e  20 62 65 20 73 65 65 6e  |ions.can be seen|
00000a90  20 61 73 20 61 6c 6c 20  70 6f 73 73 69 62 6c 65  | as all possible|
00000aa0  20 63 6f 6c 6f 75 72 73  20 61 72 65 20 61 76 61  | colours are ava|
00000ab0  69 6c 61 62 6c 65 20 6f  6e 20 73 63 72 65 65 6e  |ilable on screen|
00000ac0  20 61 74 20 6f 6e 63 65  2e 0d 54 68 69 73 20 69  | at once..This i|
00000ad0  73 20 74 68 65 20 72 65  61 73 6f 6e 20 77 68 79  |s the reason why|
00000ae0  20 33 36 43 32 53 52 43  20 69 73 20 73 68 6f 72  | 36C2SRC is shor|
00000af0  74 65 72 20 74 68 61 6e  20 31 36 43 31 53 52 43  |ter than 16C1SRC|
00000b00  2e 0d 0d 46 6f 72 20 6d  6f 64 65 20 31 2c 20 68  |...For mode 1, h|
00000b10  6f 77 65 76 65 72 2c 20  6f 6e 6c 79 20 66 6f 75  |owever, only fou|
00000b20  72 20 63 6f 6c 6f 75 72  73 20 61 72 65 20 61 76  |r colours are av|
00000b30  61 69 6c 61 62 6c 65 20  6f 6e 20 65 61 63 68 20  |ailable on each |
00000b40  73 63 72 65 65 6e 2c 20  73 6f 0d 61 20 70 6f 73  |screen, so.a pos|
00000b50  73 69 62 6c 65 20 70 61  6c 65 74 74 65 20 63 6f  |sible palette co|
00000b60  6d 62 69 6e 61 74 69 6f  6e 20 77 6f 75 6c 64 20  |mbination would |
00000b70  62 65 20 62 6c 61 63 6b  2c 20 72 65 64 2c 20 67  |be black, red, g|
00000b80  72 65 65 6e 2c 20 79 65  6c 6c 6f 77 20 66 6f 72  |reen, yellow for|
00000b90  0d 74 68 65 20 6d 61 69  6e 20 73 63 72 65 65 6e  |.the main screen|
00000ba0  2c 20 61 6e 64 20 62 6c  61 63 6b 2c 20 62 6c 75  |, and black, blu|
00000bb0  65 2c 20 63 79 61 6e 2c  20 6d 61 67 65 6e 74 61  |e, cyan, magenta|
00000bc0  20 66 6f 72 20 73 68 61  64 6f 77 20 73 63 72 65  | for shadow scre|
00000bd0  65 6e 2e 20 20 49 66 0d  77 68 69 74 65 20 77 61  |en.  If.white wa|
00000be0  73 20 72 65 71 75 69 72  65 64 2c 20 69 74 20 77  |s required, it w|
00000bf0  6f 75 6c 64 20 68 61 76  65 20 74 6f 20 62 65 20  |ould have to be |
00000c00  6f 6e 65 20 6f 66 20 74  68 65 20 63 6f 6c 6f 75  |one of the colou|
00000c10  72 73 20 6f 6e 20 65 61  63 68 20 73 63 72 65 65  |rs on each scree|
00000c20  6e 2c 0d 74 68 75 73 20  72 65 64 75 63 69 6e 67  |n,.thus reducing|
00000c30  20 74 68 65 20 61 76 61  69 6c 61 62 6c 65 20 63  | the available c|
00000c40  6f 6d 62 69 6e 61 74 69  6f 6e 73 2e 0d 0d 4f 6e  |ombinations...On|
00000c50  65 20 73 6c 69 67 68 74  20 64 69 73 61 64 76 61  |e slight disadva|
00000c60  6e 74 61 67 65 20 6f 66  20 6d 75 6c 74 69 2d 63  |ntage of multi-c|
00000c70  6f 6c 6f 75 72 20 6d 6f  64 65 73 20 69 73 20 74  |olour modes is t|
00000c80  68 61 74 20 61 6c 6c 20  70 6f 69 6e 74 73 20 70  |hat all points p|
00000c90  6c 6f 74 74 65 64 0d 6f  72 20 74 65 78 74 20 70  |lotted.or text p|
00000ca0  72 69 6e 74 65 64 20 6f  72 20 73 70 72 69 74 65  |rinted or sprite|
00000cb0  73 20 63 6f 70 69 65 64  20 74 6f 20 74 68 65 20  |s copied to the |
00000cc0  73 63 72 65 65 6e 20 6e  65 65 64 20 74 6f 20 62  |screen need to b|
00000cd0  65 20 77 72 69 74 74 65  6e 20 74 6f 0d 6d 61 69  |e written to.mai|
00000ce0  6e 20 52 41 4d 2c 20 74  68 65 6e 20 61 66 74 65  |n RAM, then afte|
00000cf0  72 20 73 77 69 74 63 68  69 6e 67 20 61 20 62 69  |r switching a bi|
00000d00  74 20 6f 66 20 26 46 45  33 34 2c 20 77 72 69 74  |t of &FE34, writ|
00000d10  74 65 6e 20 74 6f 20 73  68 61 64 6f 77 20 52 41  |ten to shadow RA|
00000d20  4d 2c 20 74 68 75 73 0d  74 61 6b 69 6e 67 20 6c  |M, thus.taking l|
00000d30  6f 6e 67 65 72 20 74 6f  20 70 6c 6f 74 2e 20 20  |onger to plot.  |
00000d40  49 20 68 61 76 65 2c 20  68 6f 77 65 76 65 72 2c  |I have, however,|
00000d50  20 77 72 69 74 74 65 6e  20 61 20 6d 75 6c 74 69  | written a multi|
00000d60  2d 63 6f 6c 6f 75 72 2d  6d 6f 64 65 0d 73 70 72  |-colour-mode.spr|
00000d70  69 74 65 20 70 6c 6f 74  74 69 6e 67 20 72 6f 75  |ite plotting rou|
00000d80  74 69 6e 65 20 77 68 69  63 68 20 69 73 20 6e 6f  |tine which is no|
00000d90  74 20 73 6c 6f 77 20 65  6e 6f 75 67 68 20 74 6f  |t slow enough to|
00000da0  20 68 69 6e 64 65 72 20  77 72 69 74 69 6e 67 20  | hinder writing |
00000db0  67 61 6d 65 73 0d 77 68  69 63 68 20 75 73 65 20  |games.which use |
00000dc0  69 74 2e 20 20 54 68 65  72 65 20 77 69 6c 6c 20  |it.  There will |
00000dd0  62 65 20 61 20 6d 65 6d  6f 72 79 20 6f 76 65 72  |be a memory over|
00000de0  68 65 61 64 20 6f 66 20  74 77 69 63 65 20 74 68  |head of twice th|
00000df0  65 20 6e 75 6d 62 65 72  20 6f 66 0d 73 70 72 69  |e number of.spri|
00000e00  74 65 73 20 74 68 6f 75  67 68 20 2d 20 65 61 63  |tes though - eac|
00000e10  68 20 73 63 72 65 65 6e  20 6e 65 65 64 73 20 69  |h screen needs i|
00000e20  74 73 20 6f 77 6e 20 73  65 74 2e 0d 0d 55 6e 66  |ts own set...Unf|
00000e30  6f 72 74 75 6e 61 74 65  6c 79 2c 20 74 68 65 20  |ortunately, the |
00000e40  6e 65 63 65 73 73 69 74  79 20 74 6f 20 73 6c 6f  |necessity to slo|
00000e50  77 20 74 68 65 20 72 65  66 72 65 73 68 20 72 61  |w the refresh ra|
00000e60  74 65 20 64 6f 77 6e 20  74 6f 20 32 35 48 7a 20  |te down to 25Hz |
00000e70  72 61 74 68 65 72 0d 74  68 61 6e 20 74 68 65 20  |rather.than the |
00000e80  75 73 75 61 6c 20 35 30  48 7a 2c 20 69 6e 20 6f  |usual 50Hz, in o|
00000e90  72 64 65 72 20 74 6f 20  66 69 74 20 74 77 6f 20  |rder to fit two |
00000ea0  73 63 72 65 65 6e 73 20  69 6e 74 6f 20 74 68 65  |screens into the|
00000eb0  20 74 69 6d 65 2c 20 6d  65 61 6e 73 20 74 68 61  | time, means tha|
00000ec0  74 0d 74 68 65 20 65 66  66 65 63 74 20 6f 66 20  |t.the effect of |
00000ed0  6c 69 67 68 74 2f 64 61  72 6b 20 63 6f 6c 6f 75  |light/dark colou|
00000ee0  72 20 63 6f 6d 62 69 6e  61 74 69 6f 6e 73 20 28  |r combinations (|
00000ef0  73 75 63 68 20 61 73 20  79 65 6c 6c 6f 77 2f 72  |such as yellow/r|
00000f00  65 64 29 20 69 73 20 72  61 74 68 65 72 0d 66 6c  |ed) is rather.fl|
00000f10  69 63 6b 65 72 79 20 28  62 65 77 61 72 65 20 69  |ickery (beware i|
00000f20  66 20 79 6f 75 20 61 72  65 20 61 6c 6c 65 72 67  |f you are allerg|
00000f30  69 63 20 74 6f 20 73 74  72 6f 62 65 73 21 29 0d  |ic to strobes!).|
00000f40  0d 54 72 79 20 74 6f 20  73 74 69 63 6b 20 74 6f  |.Try to stick to|
00000f50  20 63 6f 6d 62 69 6e 61  74 69 6f 6e 73 20 77 68  | combinations wh|
00000f60  69 63 68 20 61 72 65 20  6e 6f 74 20 73 6f 20 62  |ich are not so b|
00000f70  61 64 2c 20 73 75 63 68  20 61 73 3a 0d 0d 72 65  |ad, such as:..re|
00000f80  64 2f 62 6c 61 63 6b 20  20 20 20 20 20 20 62 72  |d/black       br|
00000f90  6f 77 6e 28 69 73 68 29  0d 62 6c 75 65 2f 72 65  |own(ish).blue/re|
00000fa0  64 20 20 20 20 20 20 20  20 70 75 72 70 6c 65 0d  |d        purple.|
00000fb0  72 65 64 2f 6d 61 67 65  6e 74 61 20 20 20 20 20  |red/magenta     |
00000fc0  73 68 6f 63 6b 69 6e 67  20 70 69 6e 6b 21 0d 65  |shocking pink!.e|
00000fd0  74 63 2e 2e 2e 0d 0d 74  68 65 20 6c 69 73 74 20  |tc.....the list |
00000fe0  6f 66 20 70 75 72 65 20  63 6f 6c 6f 75 72 73 20  |of pure colours |
00000ff0  69 6e 20 6f 72 64 65 72  20 6f 66 20 62 72 69 67  |in order of brig|
00001000  68 74 6e 65 73 73 20 69  73 20 61 73 20 66 6f 6c  |htness is as fol|
00001010  6c 6f 77 73 3a 0d 77 68  69 74 65 2c 20 63 79 61  |lows:.white, cya|
00001020  6e 2c 20 79 65 6c 6c 6f  77 2c 20 67 72 65 65 6e  |n, yellow, green|
00001030  2c 20 6d 61 67 65 6e 74  61 2c 20 62 6c 75 65 2c  |, magenta, blue,|
00001040  20 72 65 64 2c 20 62 6c  61 63 6b 2e 0d 0d 47 65  | red, black...Ge|
00001050  6e 65 72 61 6c 6c 79 2c  20 74 68 65 20 6e 65 61  |nerally, the nea|
00001060  72 65 72 20 74 77 6f 20  63 6f 6c 6f 75 72 73 20  |rer two colours |
00001070  61 72 65 20 74 6f 20 65  61 63 68 20 6f 74 68 65  |are to each othe|
00001080  72 20 69 6e 20 74 68 65  20 61 62 6f 76 65 20 6c  |r in the above l|
00001090  69 73 74 2c 20 74 68 65  0d 6c 65 73 73 20 66 6c  |ist, the.less fl|
000010a0  69 63 6b 65 72 79 20 74  68 65 20 63 6f 6d 62 69  |ickery the combi|
000010b0  6e 61 74 69 6f 6e 20 77  69 6c 6c 20 62 65 2e 20  |nation will be. |
000010c0  54 68 65 20 62 65 73 74  20 67 72 65 79 20 77 69  |The best grey wi|
000010d0  6c 6c 20 62 65 20 67 72  65 65 6e 2f 6d 61 67 65  |ll be green/mage|
000010e0  6e 74 61 0d 66 6f 72 20  74 68 69 73 20 72 65 61  |nta.for this rea|
000010f0  73 6f 6e 2e 20 28 62 79  20 74 68 65 20 77 61 79  |son. (by the way|
00001100  2c 20 61 20 67 61 6d 65  20 63 61 6c 6c 65 64 20  |, a game called |
00001110  27 4f 52 43 52 45 53 54  27 20 75 73 65 73 20 63  |'ORCREST' uses c|
00001120  6f 6c 6f 75 72 20 31 31  20 77 69 74 68 0d 2a 46  |olour 11 with.*F|
00001130  58 39 2c 31 20 61 6e 64  20 2a 46 58 31 30 2c 31  |X9,1 and *FX10,1|
00001140  20 74 6f 20 67 69 76 65  20 67 72 65 79 20 2d 20  | to give grey - |
00001150  70 65 72 68 61 70 73 20  61 6c 6c 20 6d 61 63 68  |perhaps all mach|
00001160  69 6e 65 73 20 63 61 6e  20 68 61 76 65 20 61 6e  |ines can have an|
00001170  20 65 78 74 72 61 0d 63  6f 6c 6f 75 72 20 2d 20  | extra.colour - |
00001180  61 6c 74 68 6f 75 67 68  20 2a 46 58 39 20 61 6e  |although *FX9 an|
00001190  64 20 31 30 20 72 65 6c  79 20 6f 6e 20 74 68 65  |d 10 rely on the|
000011a0  20 4c 53 42 20 6f 66 20  74 68 65 20 56 49 44 50  | LSB of the VIDP|
000011b0  52 4f 43 20 63 6f 6e 74  72 6f 6c 0d 72 65 67 69  |ROC control.regi|
000011c0  73 74 65 72 20 2d 20 64  6f 20 45 4c 4b 73 20 68  |ster - do ELKs h|
000011d0  61 76 65 20 61 20 56 49  44 50 52 4f 43 3f 20 28  |ave a VIDPROC? (|
000011e0  61 73 20 74 68 65 79 20  64 6f 6e 27 74 20 68 61  |as they don't ha|
000011f0  76 65 20 61 20 43 52 54  43 29 29 0d 0d 0d 4d 61  |ve a CRTC))...Ma|
00001200  72 6b 20 42 65 6c 6c 69  73 0d 31 31 38 2c 20 54  |rk Bellis.118, T|
00001210  68 65 20 4c 61 77 6e 73  2c 0d 52 6f 6c 6c 65 73  |he Lawns,.Rolles|
00001220  74 6f 6e 2d 6f 6e 2d 44  6f 76 65 2c 0d 42 75 72  |ton-on-Dove,.Bur|
00001230  74 6f 6e 2d 6f 6e 2d 54  72 65 6e 74 2c 0d 53 74  |ton-on-Trent,.St|
00001240  61 66 66 73 2c 0d 44 45  31 33 20 39 44 45 0d 0d  |affs,.DE13 9DE..|
00001250  0d                                                |.|
00001251
P/+INDEX2.m0
P/+INDEX2.m1
P/+INDEX2.m2
P/+INDEX2.m4
P/+INDEX2.m5