Home » Archimedes archive » Acorn User » AU 1998-06 A.adf » Regulars » StarInfo/Fletcher/Gamma/QikGamma

StarInfo/Fletcher/Gamma/QikGamma

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 » Archimedes archive » Acorn User » AU 1998-06 A.adf » Regulars
Filename: StarInfo/Fletcher/Gamma/QikGamma
Read OK:
File size: 03B5 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >QikGamma
   11REM LEN Justin Fletcher, 21 Mar 1997
   20INPUT "Red Gamma",rg
   30INPUT "Green Gamma",gg
   40INPUT "Blue Gamma",bg
   41IF rg<.1 THENrg=.1
   50IF gg<.1 THENgg=.1
   51IF bg<.1 THENbg=.1
   60rg=1/rg:gg=1/gg:bg=1/bg
   70:
   80DIM r% 256*3
   90g%=r%+256
  100b%=r%+256*2
  110r%?0=0
  120g%?0=0
  130b%?0=0
  140FORI=1TO255
  150 r=256*((I/256) ^ rg):IF r>255 THENr=255 ELSEIF r<0 THENr=0
  160 r%?I=r
  170 g=256*((I/256) ^ gg):IF g>255 THENg=255 ELSEIF g<0 THENg=0
  180 g%?I=g
  190 b=256*((I/256) ^ bg):IF b>255 THENb=255 ELSEIF b<0 THENb=0
  200 b%?I=b
  210NEXT
  220REM Grr... can't pass r9 in Basic
  230DIM mc% 256
  240P%=mc%
  250[OPT 0
  260.raddr
  270   EQUD    r%
  280.code
  290   STMFD   r13!,{r0-r9,r14}              ; Stack registers
  300   LDR     r0,raddr
  310   ADD     r1,r0,#256
  320   ADD     r2,r1,#256
  330   MOV     r4,#9                         ; call number
  340   MOV     r9,#&23                       ; PaletteV
  350   SWI     "OS_CallAVector"
  360   LDMFD   r13!,{r0-r9,r15}              ; Return from call
  370
  380]
  390CALL code
  400

� >QikGamma
$� � Justin Fletcher, 21 Mar 1997
� "Red Gamma",rg
� "Green Gamma",gg
(� "Blue Gamma",bg
)� rg<.1 �rg=.1
2� gg<.1 �gg=.1
3� bg<.1 �bg=.1
<rg=1/rg:gg=1/gg:bg=1/bg
F:
P� r% 256*3
Z
g%=r%+256
db%=r%+256*2
n
r%?0=0
x
g%?0=0
�
b%?0=0
��I=1�255
�4 r=256*((I/256) ^ rg):� r>255 �r=255 �� r<0 �r=0
� r%?I=r
�4 g=256*((I/256) ^ gg):� g>255 �g=255 �� g<0 �g=0
� g%?I=g
�4 b=256*((I/256) ^ bg):� b>255 �b=255 �� b<0 �b=0
� b%?I=b
��
�#� Grr... can't pass r9 in Basic
�
� mc% 256
�
P%=mc%
�
[OPT 0

.raddr
   EQUD    r%
	.code
">   STMFD   r13!,{r0-r9,r14}              ; Stack registers
,   LDR     r0,raddr
6   ADD     r1,r0,#256
@   ADD     r2,r1,#256
J:   MOV     r4,#9                         ; call number
T7   MOV     r9,#&23                       ; PaletteV
^   SWI     "OS_CallAVector"
h?   LDMFD   r13!,{r0-r9,r15}              ; Return from call
r
|]
�
� code
�
�
00000000  0d 00 0a 0f f4 20 3e 51  69 6b 47 61 6d 6d 61 0d  |..... >QikGamma.|
00000010  00 0b 24 f4 20 a9 20 4a  75 73 74 69 6e 20 46 6c  |..$. . Justin Fl|
00000020  65 74 63 68 65 72 2c 20  32 31 20 4d 61 72 20 31  |etcher, 21 Mar 1|
00000030  39 39 37 0d 00 14 14 e8  20 22 52 65 64 20 47 61  |997..... "Red Ga|
00000040  6d 6d 61 22 2c 72 67 0d  00 1e 16 e8 20 22 47 72  |mma",rg..... "Gr|
00000050  65 65 6e 20 47 61 6d 6d  61 22 2c 67 67 0d 00 28  |een Gamma",gg..(|
00000060  15 e8 20 22 42 6c 75 65  20 47 61 6d 6d 61 22 2c  |.. "Blue Gamma",|
00000070  62 67 0d 00 29 12 e7 20  72 67 3c 2e 31 20 8c 72  |bg..).. rg<.1 .r|
00000080  67 3d 2e 31 0d 00 32 12  e7 20 67 67 3c 2e 31 20  |g=.1..2.. gg<.1 |
00000090  8c 67 67 3d 2e 31 0d 00  33 12 e7 20 62 67 3c 2e  |.gg=.1..3.. bg<.|
000000a0  31 20 8c 62 67 3d 2e 31  0d 00 3c 1b 72 67 3d 31  |1 .bg=.1..<.rg=1|
000000b0  2f 72 67 3a 67 67 3d 31  2f 67 67 3a 62 67 3d 31  |/rg:gg=1/gg:bg=1|
000000c0  2f 62 67 0d 00 46 05 3a  0d 00 50 0e de 20 72 25  |/bg..F.:..P.. r%|
000000d0  20 32 35 36 2a 33 0d 00  5a 0d 67 25 3d 72 25 2b  | 256*3..Z.g%=r%+|
000000e0  32 35 36 0d 00 64 0f 62  25 3d 72 25 2b 32 35 36  |256..d.b%=r%+256|
000000f0  2a 32 0d 00 6e 0a 72 25  3f 30 3d 30 0d 00 78 0a  |*2..n.r%?0=0..x.|
00000100  67 25 3f 30 3d 30 0d 00  82 0a 62 25 3f 30 3d 30  |g%?0=0....b%?0=0|
00000110  0d 00 8c 0c e3 49 3d 31  b8 32 35 35 0d 00 96 34  |.....I=1.255...4|
00000120  20 72 3d 32 35 36 2a 28  28 49 2f 32 35 36 29 20  | r=256*((I/256) |
00000130  5e 20 72 67 29 3a e7 20  72 3e 32 35 35 20 8c 72  |^ rg):. r>255 .r|
00000140  3d 32 35 35 20 8b e7 20  72 3c 30 20 8c 72 3d 30  |=255 .. r<0 .r=0|
00000150  0d 00 a0 0b 20 72 25 3f  49 3d 72 0d 00 aa 34 20  |.... r%?I=r...4 |
00000160  67 3d 32 35 36 2a 28 28  49 2f 32 35 36 29 20 5e  |g=256*((I/256) ^|
00000170  20 67 67 29 3a e7 20 67  3e 32 35 35 20 8c 67 3d  | gg):. g>255 .g=|
00000180  32 35 35 20 8b e7 20 67  3c 30 20 8c 67 3d 30 0d  |255 .. g<0 .g=0.|
00000190  00 b4 0b 20 67 25 3f 49  3d 67 0d 00 be 34 20 62  |... g%?I=g...4 b|
000001a0  3d 32 35 36 2a 28 28 49  2f 32 35 36 29 20 5e 20  |=256*((I/256) ^ |
000001b0  62 67 29 3a e7 20 62 3e  32 35 35 20 8c 62 3d 32  |bg):. b>255 .b=2|
000001c0  35 35 20 8b e7 20 62 3c  30 20 8c 62 3d 30 0d 00  |55 .. b<0 .b=0..|
000001d0  c8 0b 20 62 25 3f 49 3d  62 0d 00 d2 05 ed 0d 00  |.. b%?I=b.......|
000001e0  dc 23 f4 20 47 72 72 2e  2e 2e 20 63 61 6e 27 74  |.#. Grr... can't|
000001f0  20 70 61 73 73 20 72 39  20 69 6e 20 42 61 73 69  | pass r9 in Basi|
00000200  63 0d 00 e6 0d de 20 6d  63 25 20 32 35 36 0d 00  |c..... mc% 256..|
00000210  f0 0a 50 25 3d 6d 63 25  0d 00 fa 0a 5b 4f 50 54  |..P%=mc%....[OPT|
00000220  20 30 0d 01 04 0a 2e 72  61 64 64 72 0d 01 0e 11  | 0.....raddr....|
00000230  20 20 20 45 51 55 44 20  20 20 20 72 25 0d 01 18  |   EQUD    r%...|
00000240  09 2e 63 6f 64 65 0d 01  22 3e 20 20 20 53 54 4d  |..code..">   STM|
00000250  46 44 20 20 20 72 31 33  21 2c 7b 72 30 2d 72 39  |FD   r13!,{r0-r9|
00000260  2c 72 31 34 7d 20 20 20  20 20 20 20 20 20 20 20  |,r14}           |
00000270  20 20 20 3b 20 53 74 61  63 6b 20 72 65 67 69 73  |   ; Stack regis|
00000280  74 65 72 73 0d 01 2c 17  20 20 20 4c 44 52 20 20  |ters..,.   LDR  |
00000290  20 20 20 72 30 2c 72 61  64 64 72 0d 01 36 19 20  |   r0,raddr..6. |
000002a0  20 20 41 44 44 20 20 20  20 20 72 31 2c 72 30 2c  |  ADD     r1,r0,|
000002b0  23 32 35 36 0d 01 40 19  20 20 20 41 44 44 20 20  |#256..@.   ADD  |
000002c0  20 20 20 72 32 2c 72 31  2c 23 32 35 36 0d 01 4a  |   r2,r1,#256..J|
000002d0  3a 20 20 20 4d 4f 56 20  20 20 20 20 72 34 2c 23  |:   MOV     r4,#|
000002e0  39 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |9               |
000002f0  20 20 20 20 20 20 20 20  20 20 3b 20 63 61 6c 6c  |          ; call|
00000300  20 6e 75 6d 62 65 72 0d  01 54 37 20 20 20 4d 4f  | number..T7   MO|
00000310  56 20 20 20 20 20 72 39  2c 23 26 32 33 20 20 20  |V     r9,#&23   |
00000320  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000330  20 20 20 20 3b 20 50 61  6c 65 74 74 65 56 0d 01  |    ; PaletteV..|
00000340  5e 1f 20 20 20 53 57 49  20 20 20 20 20 22 4f 53  |^.   SWI     "OS|
00000350  5f 43 61 6c 6c 41 56 65  63 74 6f 72 22 0d 01 68  |_CallAVector"..h|
00000360  3f 20 20 20 4c 44 4d 46  44 20 20 20 72 31 33 21  |?   LDMFD   r13!|
00000370  2c 7b 72 30 2d 72 39 2c  72 31 35 7d 20 20 20 20  |,{r0-r9,r15}    |
00000380  20 20 20 20 20 20 20 20  20 20 3b 20 52 65 74 75  |          ; Retu|
00000390  72 6e 20 66 72 6f 6d 20  63 61 6c 6c 0d 01 72 04  |rn from call..r.|
000003a0  0d 01 7c 05 5d 0d 01 86  0a d6 20 63 6f 64 65 0d  |..|.]..... code.|
000003b0  01 90 04 0d ff                                    |.....|
000003b5