home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1989-06-12 | 4.4 KB | 245 lines |
- >!IFFLoader.HAMconvert
- +------------------------------------------------------+
- | HAM-256-II |
- | 4096 to 256(dithered) colour converter. |
- +------------------------------------------------------+
- | This program was designed to convert Amiga Hold and |
- | Modify pictures to 256 colours. The HAM file to be |
- | read must be an ACBM (Amiga continous bit-map) with |
- | NO header (IFF or otherwise). |
- | |
- | Converted for use with IFFloader by Tom Simpson 1989 |
- | |
- | (c) T.Simpson 1988 |
- +------------------------------------------------------+
- bit_plane1 8192
- bit_plane2 8192
- bit_plane3 8192
- bit_plane4 8192
- bit_plane5 8192
- bit_plane6 8192
- rr(15),rg(15),rb(15)
- X%=0:Y%=1023
- lr=0:lg=0:lb=0
- r=0:g=0:b=0
- '"Amiga HAM converter II (c) T. Simpson MCMLXXXIX"
- "-----------------------------------------------"'
- "NOTE - This program is NTSC only."
- HAM$="bitplanes"
- "Dest file -> " DEST$
- load_HAM_file(HAM$)
- "DELETE "+HAM$
- "Please Wait - This is going to take ages."
- byte =0
- 7999 :
- These pics are only NTSC and not PAL
- bit$=""
- bit=256
- bit=bit/2
- BYTE= bit_plane4?byte
- * bit$ = bit$ +
- filter_bit(BYTE,bit)
- BYTE= bit_plane3?byte
- * bit$ = bit$ +
- filter_bit(BYTE,bit)
- BYTE= bit_plane2?byte
- * bit$ = bit$ +
- filter_bit(BYTE,bit)
- BYTE= bit_plane1?byte
- * bit$ = bit$ +
- filter_bit(BYTE,bit)
- BYTE= bit_plane5?byte
- * bit$ = bit$ +
- filter_bit(BYTE,bit)
- BYTE= bit_plane6?byte
- * bit$ = bit$ +
- filter_bit(BYTE,bit)
- set_pixel(bit$)
- bit$=""
- bit=1
- "SCREENSAVE "+DEST$
- filter_bit(BYTE,bin)
- (BYTE
- bin) = bin
- ="1"
- ="0"
- set_pixel(b$)
- b$,2)="00"
- register(
- ("%"+
- b$,4)))
- b$,2)="10"
- r=lr:g=lg:b=
- ("%"+
- b$,4))
- b$,2)="01"
- b=lb:g=lg:r=
- ("%"+
- b$,4))
- b$,2)="11"
- b=lb:r=lr:g=
- ("%"+
- b$,4))
- lb=b:lg=g:lr=r
- cbase(
- cbase(
- cbase(
- :tint = (2*
- ("%"+
- g$,2))+
- ("%"+
- b$,2))+
- ("%"+
- r$,2)))/4
- (tint)+1 - tint <=.5
- tint=
- (tint)+1
- .fr=(
- ("%"+
- r$,2))<<2)+tint:
- fr>15
- fr=15
- .fg=(
- ("%"+
- g$,2))<<2)+tint:
- fg>15
- fg=15
- .fb=(
- ("%"+
- b$,2))<<2)+tint:
- fb>15
- fb=15
- &diffr=r-fr: diffg=g-fg: diffb=b-fb
- )nr= r+diffr: ng= g+diffg: nb= b+diffb
- (nr
- 12) > (r+diffr)
- nr=r
- (ng
- 12) > (g+diffg)
- ng=g
- (nb
- 12) > (b+diffb)
- nb=b
- .nr$=
- cbase(
- (nr)):
- (nr$)=3
- nr$=
- nr$,2)
- *.ng$=
- cbase(
- (ng)):
- (ng$)=3
- ng$=
- ng$,2)
- 4.nb$=
- cbase(
- (nb)):
- (nb$)=3
- nb$=
- nb$,2)
- >>ntint = (2*
- ("%"+
- ng$,2))+
- ("%"+
- nb$,2))+
- ("%"+
- nr$,2)))/4
- (ntint)+1 - ntint <=.5
- ntint=
- (ntint)+1
- bit6$=
- b$,2)+
- g$,2)+
- r$,2)
- f"nbit6$=
- nb$,2)+
- ng$,2)+
- nr$,2)
- (Y%+1)
- 8 = 0
- z#
- ("%"+bit6$))
- tint*64
- X%,Y%
- X% += 2
- ("%"+nbit6$))
- ntint*64
- X%,Y%
- ("%"+nbit6$))
- ntint*64
- X%,Y%
- X% += 2
- ("%"+bit6$))
- tint*64
- X%,Y%
- 0X%+=2:
- X%>=1279
- X%=0:Y%-=4:lr=0:lg=0:lb=0
- cbase(num$)
- num$
-
- "0" :answer$="0000"
-
- "1" :answer$="0001"
-
- "2" :answer$="0010"
-
- "3" :answer$="0011"
-
- "4" :answer$="0100"
-
- "5" :answer$="0101"
-
- "6" :answer$="0110"
-
- "7" :answer$="0111"
-
- "8" :answer$="1000"
-
- "9" :answer$="1001"
-
- "10" :answer$="1010"
-
- "11" :answer$="1011"
-
- "12" :answer$="1100"
-
- "13" :answer$="1101"
-
- "14" :answer$="1110"
-
- "15" :answer$="1111"
- =answer$
- register(reg)
- r=rr(reg)
- g=rg(reg)
- b=rb(reg)
- load_HAM_file(file$)
- file$
- O=0
- rr(O)=
- ("&"+
- rg(O)=
- ("&"+
- rb(O)=
- ("&"+
- plane=0
- 7999
- bit_plane1?plane =
- plane=0
- 7999
- bit_plane2?plane =
- plane=0
- 7999
- bit_plane3?plane =
- plane=0
- 7999
- bit_plane4?plane =
- plane=0
- 7999
- bit_plane5?plane =
- plane=0
- 7999
- bit_plane6?plane =
-