home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 10: Diskmags
/
nf_archive_10.iso
/
MAGS
/
TOXIC
/
TOXIC12.MSA
/
PROGRAMS
/
SUPERNOV
/
UNPACK.S
< prev
Wrap
Text File
|
2005-12-18
|
1KB
|
37 lines
**********************
; DECOMPRESSION
; vitesse: 420 ko/min
**********************
UNZIP
MOVE #$777,$FFFF8240.w
MOVE.B (A0)+,D0 octet suivant
CMP.B #139,D0 est ce un code?
BHI.S CODE_FOUND
MOVE.B D0,(A2)+ non, on le recopie tel quel
MOVE #$700,$FFFF8240.w
BRA.S UNZIP
CODE_FOUND
CMP.B #"≡",D0 fin du texte?
BEQ.S DONE
LEA SEQUENCES,A1 on charge la table des codes
FIND_CODE ;(la meme que celle pour la compression)
CLR D1
MOVE.B (A1)+,D1 d1=taille de la prochaine sequence
CMP.B #$F,D1 est ce la fin?
BEQ.S UNZIP
ADD D1,A1 on pointe le code correspondant
CMP.B (A1),D0 on le compare a notre code
BEQ.S UNCOMPRESS
ADDQ #1,A1 ce n'est pas celui ci, alors un autre
BRA.S FIND_CODE
UNCOMPRESS
MOVE #$070,$FFFF8240.w
SUB D1,A1 on pointe sur la sequence
SUBQ #1,D1 (sans oublier de sauter le code)
RESTORE_SEQ
MOVE.B (A1)+,(A2)+ et on la recopie
DBF D1,RESTORE_SEQ
MOVE #$777,$FFFF8240.w
BRA.S UNZIP
DONE RTS