home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
graphics
/
crack136
/
crackart
/
compress
/
ca_unpac.lst
< prev
next >
Wrap
File List
|
1991-10-21
|
2KB
|
73 lines
'
'
' CRACK ART 'CA_UNPACK'
'
' Dekompressionsroutine für CA?-Bilder
'
' © Detlef Röttger & Jan Borchers 1989-91
'
'
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