home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
graphics
/
crack136
/
crackart
/
compress
/
ca_unpac.gfa
(
.txt
)
< prev
next >
Wrap
GFA-BASIC Atari
|
1991-10-21
|
2KB
|
93 lines
'
'
' CRACK ART 'CA_UNPACK'
'
' Dekompressionsroutine für CA?-Bilder
'
' © Detlef Röttger & Jan Borchers 1989-91
'
'
' ## INLINE:
' $0000: 60 1a 00 00 01 00 00 00 00 00 00 00 00 00 00 00
' $0010: 00 00 00 00 00 00 00 00 00 00 00 00 48 e7 7f fe
' $0020: 4c ef 03 00 00 3c 24 49 47 e9 7d 00 42 47 42 46
' $0030: 1e 18 1c 18 30 18 c0 bc 00 00 7f ff 2a 40 12 06
' $0040: e1 49 12 06 34 01 48 41 32 02 24 01 26 01 28 01
' $0050: 2a 01 2c 4b 30 3c 06 3f 48 e6 7c 00 51 c8 ff fa
' $0060: 20 0d 53 40 6b 18 42 41 12 18 b2 07 67 16 14 81
' $0070: d5 cd b5 cb 6d f0 52 89 24 49 51 c8 ff ea 4c df
' $0080: 7f fe 4e 75 12 18 b2 07 67 e4 4a 01 66 1c 42 42
' $0090: 14 18 12 18 14 81 d5 cd b5 cb 6d 08 52 89 24 49
' $00a0: 53 40 6b da 51 ca ff ee 60 bc 0c 01 00 01 66 24
' $00b0: 42 42 42 43 16 18 e1 4b 14 18 d4 43 12 18 14 81
' $00c0: d5 cd b5 cb 6d 08 52 89 24 49 53 40 6b b0 51 ca
' $00d0: ff ee 60 92 0c 01 00 02 66 24 42 43 16 18 67 9e
' $00e0: e1 4b 42 42 14 18 d4 43 d5 cd b5 cb 6d 08 52 89
' $00f0: 24 49 53 40 6b 88 51 ca ff f0 60 00 ff 6a 42 42
' $0100: 14 18 14 82 d5 cd b5 cb 6d 0a 52 89 24 49 53 40
' $0110: 6b 00 ff 6c 51 c9 ff ec 60 00 ff 4c 00 00 00 00
' 288 Bytes.
INLINE ca_unpack%,288
'
resolution&=XBIOS(4) ! Auflösung holen
IF resolution&>2 ! keine ST-Auflösung
END
ENDIF
'
DO
fpath$=CHR$(GEMDOS(25)+65)+":"+DIR$(0)+"\*.CA"+CHR$(resolution&+49)
FILESELECT #"LOAD CA",fpath$,"",fname$ ! File auswählen
CLS
IF EXIST(fname$)=FALSE ! File nicht existent oder Abbruch
END
ENDIF
'
RESERVE 64000
'
OPEN "I",#1,fname$ ! File öffnen
buffer%=MALLOC(LOF(#1)) ! Buffer reservieren
CLOSE #1
'
IF buffer%<>0
BLOAD fname$,buffer% ! Bild laden
'
IF DPEEK(buffer%)<>&H4341 ! 'CA'-Kennung checken
PRINT "Kein CA-Bild! (Abbruch)"
ELSE
IF PEEK(buffer%+3)<>resolution& ! Auflösung checken
PRINT "Falsche Auflösung! (Abbruch)"
ELSE
'
SELECT resolution&
CASE 0 ! Low Res
~XBIOS(6,L:buffer%+4) ! Farben setzen
offset%=36 ! Image-Beginn
CASE 1 ! Med Res
~XBIOS(6,L:buffer%+4)
offset%=12
CASE 2 ! High Res
' Monochrombilder besitzen keine Farbpalette
offset%=4
ENDSELECT
'
HIDEM
IF PEEK(buffer%+2)=0 ! Bild ungepackt
BMOVE buffer%+offset%,XBIOS(2),32000
ELSE ! Bild gepackt
~C:ca_unpack%(L:buffer%+offset%,L:XBIOS(2)) ! Image Auspacken
ENDIF
SHOWM
'
ENDIF
ENDIF
'
~MFREE(buffer%) ! Speicher wieder freigeben
ENDIF
RESERVE
'
WHILE MOUSEK
WEND
REPEAT
UNTIL MOUSEK
LOOP