Impulse #02
31 декабря 1997 |
|
Programmers - Fast Decruncher to packer Data-Squeezer v4.x.
Now proceed to the consideration of accelerated DECRUNCHERa to DSQ. To use it you need to pack in DSQ the file and write the uncompressed file on disk without DECRUNCHERa by answering NO to the question "INCLUDE DECRUNCHER (Y / N)?". There you will be asked a few more questions for which answers are not have no value (bug DSQ). Here it is necessary to stipulate a moment, which can lead to fatal consequences: the starting address of packed files (ORG in the following program) should be several bytes lower than address in which to unpack the original file. In DECRUNCHER (the first three line) must be replaced the following values: - In the first row (DATLEN) to record the length of the packed file, which you kept the DSQ. - The second (STRFIL) - start address of the original file ie address to which you want raspakovt file. - In the third line (ENDFIL) must enter a last byte of the source file, which is calculated by adding the starting address and length, minus 1. Also, if necessary, instead of the last command RET You can put JP # xxxx for Startup after unpacking. For example, to unpack the OSD files packed DSQ 2048 bytes, first line you need to put 2048 in the second - 16384, and the third line - 16384 +6912-1 = # 5AFF (23,295). But, in fact, the text most DECRUNCHERa: DATLEN EQU 2048 STRFIL EQU 16384 ENDFIL EQU 23295 ORG xx-nn; (!!!) START LD DE, 16384 LD HL, DECR PUSH DE LD BC, FL2-FL1 LDIR LD DE, START LD HL, DATA LD BC, DATLEN RET DECR FL1 LDIR LD BC, 264 EX DE, HL DEC HL EXX PUSH HL LD DE, ENDFIL DR5 LD HL, 1 EXX DJNZ DR20 LD B, C LD E, (HL) DEC HL DR20 RL E EXX JR NC, DR1 LD B, L INC L EXX DJNZ DR21 LD B, C LD E, (HL) DEC HL DR21 RL E EXX JR C, DR6 INC B LD L, 4 EXX DJNZ DR22 LD B, C LD E, (HL) DEC HL DR22 RL E EXX JR C, DR6 EXX DJNZ DR23 LD B, C LD E, (HL) DEC HL DR23 RL E EXX JR NC, DR7 LD B, L XOR A DR24 EXX DJNZ DR25 LD B, C LD E, (HL) DEC HL DR25 RL E EXX RLA DJNZ DR24 ADD A, 8 LD L, A CP 1923 JR C, DR8 LD B, 5 XOR A DR35 EXX DJNZ DR34 LD B, C LD E, (HL) DEC HL DR34 RL E EXX RLA DJNZ DR35 ADD A, 14 LD L, A DR1 LD B, 8 XOR A DR26 EXX DJNZ DR27 LD B, C LD E, (HL) DEC HL DR27 RL E EXX RLA DJNZ DR26 LD (DE), A DEC DE DEC L JR NZ, DR1 JR DR9 HEDGE JR DR5 DR7 LD L, 1923 DR2 LD B, 8 DR6 XOR A LD C, A DR29 EXX DJNZ DR28 LD B, C LD E, (HL) DEC HL DR28 RL E EXX RL C RLA DJNZ DR29 LD B, A LD A, C ADD HL, BC INC A JR Z, DR2 DR8 PUSH HL LD HL, 33 EXX DJNZ DR30 LD B, C LD E, (HL) DEC HL DR30 RL E EXX JR C, DR10 LD B, 9 ADD HL, DE EXX DJNZ DR31 LD B, C LD E, (HL) DEC HL DR31 RL E EXX JR NC, DR11 LD B, 5 LD L, E LD H, D INC HL JR DR11 DR10 LD B, 11 LD H, 2 ADD HL, DE DR11 XOR A LD C, A DR32 EXX DJNZ DR33 LD B, C LD E, (HL) DEC HL DR33 RL E EXX RL C RLA DJNZ DR32 LD B, A LD A, C ADD HL, BC POP BC LDDR DR9 LD HL, STRFIL-1 SBC HL, DE JR C, HEDGE POP HL EXX RET FL2 DATA INSERT "NAMEDATA" NAMEDATA - the name of the packed a DSQ file recorded without DECRUNCHERa. *
Other articles:
Similar articles:
В этот день... 21 November