diff options
author | Juan J. Martinez <jjm@usebox.net> | 2022-09-06 07:37:20 +0100 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2022-09-06 07:37:20 +0100 |
commit | 30bf0f51335e87812ffeb54e9437f0b6a1514d67 (patch) | |
tree | 9c85a2de53b4da69fcfaa84488cc6c12ebd3e5d0 /tools/rasm/decrunch/exomizer3megachur.asm | |
parent | d8990284057e6401d0374f439df51879595d804d (diff) | |
download | ubox-msx-lib-30bf0f51335e87812ffeb54e9437f0b6a1514d67.tar.gz ubox-msx-lib-30bf0f51335e87812ffeb54e9437f0b6a1514d67.zip |
Updated rasm to 1.7
Diffstat (limited to 'tools/rasm/decrunch/exomizer3megachur.asm')
-rw-r--r-- | tools/rasm/decrunch/exomizer3megachur.asm | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/tools/rasm/decrunch/exomizer3megachur.asm b/tools/rasm/decrunch/exomizer3megachur.asm deleted file mode 100644 index ea1973e..0000000 --- a/tools/rasm/decrunch/exomizer3megachur.asm +++ /dev/null @@ -1,210 +0,0 @@ -;Exomizer 2 Z80 decoder
-;Copyright (C) 2008-2016 by Jaime Tejedor Gomez (Metalbrain)
-;
-;Optimized by Antonio Villena and Urusergi (169 bytes)
-;
-;Compression algorithm by Magnus Lind
-;
-; This depacker is free software; you can redistribute it and/or
-; modify it under the terms of the GNU Lesser General Public
-; License as published by the Free Software Foundation; either
-; version 2.1 of the License, or (at your option) any later version.
-;
-; This library is distributed in the hope that it will be useful,
-; but WITHOUT ANY WARRANTY; without even the implied warranty of
-; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-; Lesser General Public License for more details.
-;
-; You should have received a copy of the GNU Lesser General Public
-; License along with this library; if not, write to the Free Software
-; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-;
-;
-;input- hl=compressed data start
-; de=uncompressed destination start
-;
-; you may change exo_mapbasebits to point to any free buffer
-;
-;ATTENTION!
-;A huge speed boost (around 14%) can be gained at the cost of only 5 bytes.
-;If you want this, replace all instances of "call exo_getbit" with "srl a" followed by
-;"call z,exo_getbit", and remove the first two instructions in exo_getbit routine.
-; ---------------------------
-; modified by Megachur in 2018
-; ---------------------------
-; hl -> compressed data start
-; de -> uncompressed destination start
-; ---------------------------
-
-;EXO_BACKWARD equ 1
-ENABLE_MEXO_GETBIT equ 1
-
-list:EXOMIZER_ADDRESS:nolist
-; ---------------------------
-MACRO MEXO_GETBIT
- srl a
- jr nz,@1
- ld a,(hl)
- IFDEF EXO_BACKWARD
- dec hl
- ELSE
- inc hl
- ENDIF
- rra
-@1
-ENDM
-
-deexo:
- ld iy,exo_mapbasebits+11
- ld a,(hl)
-
- IFDEF EXO_BACKWARD
- dec hl
- ELSE
- inc hl
- ENDIF
-
- ld b,52
- push de
- cp a
-
-exo_initbits:
- ld c,16
- jr nz,exo_get4bits
- ld ixl,c
- ld de,1 ;DE=b2
-
-exo_get4bits:
- IFDEF ENABLE_MEXO_GETBIT
- MEXO_GETBIT
- ELSE
- srl a:call z,exo_getbit ;call exo_getbit ;get one bit
- ENDIF
- rl c
- jr nc,exo_get4bits
- inc c
- push hl
- ld hl,1
- ld (iy+41),c ;bits[i]=b1 (and opcode 41 == add hl,hl)
-
-exo_setbit:
- dec c
- jr nz,exo_setbit-1 ;jump to add hl,hl instruction
- ld (iy-11),e
- ld (iy+93),d ;base[i]=b2
- add hl,de
- ex de,hl
- inc iy
- pop hl
- dec ixl
- djnz exo_initbits
- pop de
- jr exo_mainloop
-
-exo_literalrun:
- ld e,c ;DE=1
-
-exo_getbits:
- dec b
- ret z
-
-exo_getbits1:
- IFDEF ENABLE_MEXO_GETBIT
- MEXO_GETBIT
- ELSE
- srl a:call z,exo_getbit ;call exo_getbit
- ENDIF
- rl e
- rl d
- jr nc,exo_getbits
- ld b,d
- ld c,e
- pop de
-
-exo_literalcopy:
- IFDEF EXO_BACKWARD
- lddr
- ELSE
- ldir
- ENDIF
-exo_mainloop:
- inc c
- IFDEF ENABLE_MEXO_GETBIT
- MEXO_GETBIT
- ELSE
- srl a:call z,exo_getbit ;call exo_getbit ;literal?
- ENDIF
- jr c,exo_literalcopy
- ld c,239
-exo_getindex:
- IFDEF ENABLE_MEXO_GETBIT
- MEXO_GETBIT
- ELSE
- srl a:call z,exo_getbit ;call exo_getbit
- ENDIF
- inc c
- jr nc,exo_getindex
- ret z
- push de
- ld d,b
- jp p,exo_literalrun
- ld iy,exo_mapbasebits-229
- call exo_getpair
- push de
- rlc d
- jr nz,exo_dontgo
- dec e
- ld bc,512+32 ;2 bits,48 offset
- jr z,exo_goforit
- dec e ;2?
-exo_dontgo:
- ld bc,1024+16 ;4 bits,32 offset
- jr z,exo_goforit
- ld de,0
- ld c,d ;16 offset
-exo_goforit:
- call exo_getbits1
- ld iy,exo_mapbasebits+27
- add iy,de
- call exo_getpair
- pop bc
- ex (sp),hl
- IFDEF EXO_BACKWARD
- ex de,hl
- add hl,de
- lddr
- ELSE
- push hl
- sbc hl,de
- pop de
- ldir
- ENDIF
- pop hl
- jr exo_mainloop ;Next!
-exo_getpair:
- add iy,bc
- ld e,d
- ld b,(iy+41)
- call exo_getbits
- ex de,hl
- ld c,(iy-11)
- ld b,(iy+93)
- add hl,bc ;Always clear C flag
- ex de,hl
- ret
-
- IFDEF ENABLE_MEXO_GETBIT
- ELSE
-exo_getbit:
-; srl a
-; ret nz
- ld a,(hl)
- inc hl
- rra
- ret
- ENDIF
-
-exo_mapbasebits:
- ds 156,#00 ;tables for bits,baseL,baseH
-; ---------------------------
-list:EXOMIZER_ADDRESS_LENGTH equ $-EXOMIZER_ADDRESS:nolist
\ No newline at end of file |