|
ACNews
#18
08 мая 2003 |
|
Docs - Декомпрессор Медноногова основанный на LZ сжатие.

▄▄▄ ▄▄▄▄ ▄▄▄▄ ▄▄▄▄
■▄░ ▓ ▓ ▓ ▓ ▓ ▀ ▓▄▄▄ ▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░
■▀ ░▄▄▒ ░▄▄░ ░▄▄░ ▄▄▄░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀
Декомпрессор Медноногова, использовавшийся, по-видимому, в "Чёр-
ном Вороне", любопытен тем,что битовый поток в его формате отсу-
тствует - несмотря на основанное на LZ сжатие. За счёт этого по-
лучен некоторый выигрыш в скорости и проигрыш в плотности.
В тексте комментарии: жёлтые - авторские, зелёные - мои.
;Декомпрессор для v 3.01
;HL-откуда DE-куда
;DLPCB DEFM "v301"
DELPZ PUSH DE
LD DE,DLPCB
LD BC,4
LDIR
POP DE
xpD0 LD A,(HL)
SRL A
JR NC,xpD1
CALL xpSUB ;short copy
RRA ;%AAAlenB1
RL B ; ^^^nopacked
AND 7
xpM2 JR NZ,xpNex ;len<=9
LD A,(HL) ;len>9
INC HL
xpNex LD C,(HL) ;disp (с учётом B)
INC HL
PUSH HL
LD H,D
LD L,E
SBC HL,BC
LD B,0
LD C,A
xpM1 INC BC
INC BC ;>=3
LDIR
POP HL
EX AF,AF'
JR Z,xpD0
JR NZ,xpDRR ;nocompr 1..7
xpD1 RRA
JR C,xpZ1
RRA
JR C,xpZ2
JR Z,xpDEND ;%xxxxx000
INC HL
xpDRR LD B,A ;nocompr 1..31
xpDL0 LD A,(HL)
INC HL
XOR (HL)
LD (DE),A
INC DE
DJNZ xpDL0
JR xpD0
xpZ2 SRL A ;%xxxxx100 ;repeat
JR C,xpZ2L
LD C,A
XOR A
EX AF,AF'
xpZ22 INC HL
PUSH HL
LD H,D
LD L,E
DEC HL
JR xpM1
xpZ2L CALL xpSUB ;%xxxX1100
RRA ; ^
RL B ;0/1
LD C,(HL)
JR xpZ22
xpZ1 SRL A ;%xxxxxx10
JR NC,xpTWO
LD C,A ;%xxxxx110 ;long copy
INC HL
LD A,(HL)
AND #1F
LD B,A
LD A,C
CALL xpSUB
OR A
JR xpM2
xpTWO INC A ;два байта %xxxxx010
LD C,A ;=1..32
INC HL
PUSH HL
LD H,D
LD L,E
SBC HL,BC
LD C,2
LDIR
POP HL
JR xpD0
xpDEND LD HL,DLPCB ;%xxxxx000
LD C,4
LDIR
RET
xpSUB EX AF,AF' ;поместить 3 ст.бита текущего байта в A'
LD A,(HL)
RLCA
RLCA
RLCA
AND 7
EX AF,AF'
INC HL
RET
----------------------------------------------------------------
А знаете ли вы, что...
По объёму 5,25" и 3,5" дискеты занимают примерно одинаковое про-
странство - 27,5 кубических сантиметров? Размеры первого носите-
ля, впрочем, завышены (на самом деле он не квадратный и на нес-
колько миллимметров меньше). У второго же - несколько занижены
в одном из измерений (на самом деле 90 x 94 x 3,25 мм).
Другие статьи номера:
News - вернулись Shaitan, Valera Selev и Nuts! |
Мысли - ДЕВЯТОГО МАЯ - день Победы, а ВАС ЖДУТ В ВОЕНКОМАТАХ ГОРОДА! |
Docs - Декомпрессор Медноногова основанный на LZ сжатие. |
ACEdit - Список Заслуженных Пользователей AC Edit. |
Похожие статьи:
В этот день... 1 января
SibNews #08,
Woot! #01,
Spectrum Magazine #01,
ACNews #25,
Psychoz #14,
ACNews #14,
Last 128 #08,
Last 128 #06,
Last 128 #05,
Last 128 #04,
Last 128 #03,
Last 128 #02,
Last 128 #09,
Last 128 #3.5,
Last 128 #8.025,
Sinclair Club #05,
Last 128 #M!R 01,
Fantadrom #01,
Buzz #20,
Last 128 #01,
DonNews #13,
Nicron #120,
Promised Land #01,
Inferno #01,
Marazm #25,
Ultimathum #01,
Marazm #21,
Hooy Mag #02,
KrNews #11,
Marazm #22,
Marazm #23,
ZX Football 2000 #01,
Codemania #01,
Always #03,
Bugs #02,
IzhNews #08,
Virtual Worlds #01,
Listok #04,
Scenergy #02,
Flash Info #18,
Marazm #16,
Marazm #17,
Zed #01,
Balagan #02,
ZX Format #08,
ZX Power #03,
Shock #01,
Impulse #02,
Deja Vu #03,
ZX Club #08,
ZX Club #06,
Numberology #01,
Marazm #13,
Marazm #12,
Marazm #14,
Gorodok #02,
Zodiac #01,
Marazm #15,
Deja Vu #07,
Marazm #11,
Deja Vu #07,
Playboy #03,
Crazy News #2,
Crazy News #4,
ZX Light #01,
Crazy News #5,
Playboy #02,
ZX News #03,
ZX Review #1-2,
Read Me #02,
Crazy News #3,
Nicron #13,
Read Me #01,
Public Spirit #01,
Faultless #06,
Faultless #05,
ZX Software #01,
Stump #04,
Speccy #07,
Возраждение #0,
Speccy #03,
On-Line #17,
Scene+ #01,
Welcome Press #01,
ZX Konig #04,
Adventurer #01,
Faultless #05,
Faultless #04,
Di Halt #01,
Faultless #01,
Playboy #01,
Crazy News #1,
Faultless #03,
Pioneer #03,
Sinclair Town #02,
ZX Magazine #01,
Eldorado #01,
ZX Magazine #02,
Spectron #01,
ZX News #01,
ZX Konig #02,
200 #W,
Welcome Press #00,
Dune #07,
Subliminal Extacy #01,
Subliminal Extacy #02,
ZX Konig #01,
Subliminal Extacy #00,
Muchomor #01,
Spectrofon #01,
ZX Revija #02,
Outlet #01,
Outlet #1-3