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