ZX Pilot #29
30 сентября 1998 |
|
HARD and SOFT - On-screen file compressors and more ...
(C) DP On compressors display files and not only ... The reason for writing this text was the fact that the majority (!) programs that work with screen files (Pictures) do not quite want to work with the packed screens, and work only with the file length of 6912 bytes - Standard screen files. In fact, to determine with accuracy 99%, that particular file is the image that is not difficult. In each unpacker must be two things: 1. Garter under the loaded address. In most cases, doing so: ... CALL # 0056 ADR1DECSP DECSP; further removed from the stack address ADR1 ... But sometimes encountered and this option: ... CALL # 1FC6 ADR2 ...; in the register pair HL address ADR2 2. Since the screen saver is unpacked, then unpacker should stand the team loading the register pair number # 4000. In most cases (at least I have not met other options) a register pair is a DE. To summarize: The file of less than 6,912 bytes is ( 99%) packed screen, if at the beginning (first 50 bytes) meet the team: 1. CALL XXXX: DEC SP: DEC SP or CALL # 1FC6 2. LD DE, # 4000 or LD DE, # 4800 or LD DE, # 5000 Note: unpacking using 6912 byte buffer for unpacking the screen can not be identification method described above for the reason that loading the register pair (not necessarily DE) # number 4000 in the first 50 bytes unpacker did not fall. In recent years, can get compressed files without unpacker. Such files, for example, create the program: Quick Screen Viewer 1.0 by Abba / Inside Law: (format is packed the screen is the same as that of ASC, but without the decompressor). Files this format have the extension "$" and the parameter start = 40000 Laser Compact 4.0: extension "P", setting start = 40004 (# 9C44) Laser Compact 5.0: extension "P", setting start = 40005 (# 9C45) Below are 3 unpacker: for files that are packaged in format ASC, LC4.0, LC5.0. To unpack the images should be write the address in HL packed pictures and call appropriate extractor. To exclude certain specific commands and STORM little use other information, unpacking given in the format disassembler STS5.1. Unpacker ASC (Screen Crasher): (Minimum correction copyright option connected to a file). LL8000PUSHHL CALL # 0052 DECSP DECSP POPBC LDHL, # 0097 ADDHL, BC EXDE, HL LDHL, # 0066 ADDHL, BC LD (HL), E INCHL LD (HL), D LDHL, # 007B ADDHL, BC LD (HL), E INCHL LD (HL), D LDHL, # 0089 ADDHL, BC LD (HL), E INCHL LD (HL), D NOP NOP NOP POPHL LDDE, # 4000 PUSHDE EXX EXAF, AF ' LDA, # 03 ORA LDB, # 08 LDC, B POPHL EXAF, AF ' EXX LL8034LDA, (HL) BIT7, A JRNZ, LL8073 AND # 07 LDC, A LDA, (HL) RRCA RRCA RRCA AND # 0F ADDA, # 03 LDB, A INCHL LDA, E SUB (HL) INCHL PUSHHL LDL, A LDA, D SBCA, C LDH, A LL804EPUSHHL LDA, H AND # 58 CP # 58 JRZ, LL8068 LDC, A LDA, L AND # 07 ORC LDC, A ADDHL, HL ADDHL, HL LDA, H AND # 1F LDH, A LDA, L AND # E0 ORH LDL, A LDH, C LL8068LDA, (HL) CALL # 74A6 POPHL INCHL DJNZLL804E POPHL JRLL8034 LL8073AND # 7F JRZ, LL8094 INCHL BIT6, A JRNZ, LL8086 LDB, A LL807DLDA, (HL) CALL # 74A6 INCHL DJNZLL807D JRLL8034 LL8086AND # 3F ADDA, # 03 LDB, A LDA, (HL) LL808CCALL # 74A6 DJNZLL808C INCHL JRLL8034 LL8094EXX LDHL, # 2758 EXX EI RET INCDE EXX LD (HL), A EXAF, AF ' JRZ, LL80BA INCH DJNZLL80BF LDDE, # F820 ADDHL, DE DECC JRNZ, LL80BD LDDE, # FF01 ADDHL, DE ADDA, # 08 JRNC, LL80BB LDDE, # 07E0 ADDHL, DE DECA JRLL80BB LL80BAINCHL LL80BBLDC, # 08 LL80BDLDB, # 08 LL80BFEXAF, AF ' EXX RET Unpacker Laser Compact 4.0. LL8100 LDA, (HL) LDLX, A AND # 03 RLCA RLCA RLCA OR # 40 LDD, A LDE, # 00 LDA, (HL) INCHL AND # FC LDC, A LDA, # 58 SUBC LDC, A LL8116LDA, (HL) SUB # C0 JRC, LL8135 INCHL RETZ RRA LDB, A LDA, (HL) JRNC, LL8168 SRLB JRNZ, LL812D LDB, A INCHL JRNC, LL8131 LL812AXORA JRLL8168 LL812DJRC, LL812A INCB XORA LL8131LDA, (HL) INCHL JRLL8168 LL8135ADDA, # 40 BIT7, A EXAF, AF ' LDA, (HL) OR # F8 LDB, A LDA, (HL) INCHL RRCA RRCA RRCA AND # 0F JRNZ, LL814C LDA, (HL) INCHL RRA RLB LL814CINCA PUSHHL LDL, (HL) LDH, B LDB, A EXAF, AF ' ADDHL, DE LL8153EXAF, AF ' LDA, H CPC JRNC, LL8191 XORL AND # F8 XORL EXX LDD, A EXX XORL XORH RLCA RLCA LL8163EXX LDE, A EXAF, AF ' LDA, (DE) EXX LL8168EXAF, AF ' LDA, D CPC JRNC, LL8192 XORE AND # F8 XORE EXX LDD, A EXX XORE XORD RLCA RLCA LL8178EXX LDE, A EXAF, AF ' LD (DE), A EXX INCDE JRZ, LL8188 INCHL JRC, LL818B LDA, (HL) LL8184DJNZLL8168 JRLL8116 LL8188JRNC, LL8184 DECHL LL818BDJNZLL8153 POPHL INCHL JRLL8116 LL8191SCF LL8192PUSHAF ADDA, LX EXX LDD, A EXX POPAF LDA, E JRNC, LL8178 LDA, L JRLL8163 Unpacker Laser Compact 5.0. LL8200LDA, (HL) LDD, A AND # 03 RLCA RLCA RLCA OR # 40 EXX LDD, A LDE, # 00 EXX LDA, (HL) INCHL AND # FC LDC, A LDA, # 58 SUBC LDHX, A LDE, # 80 LL821ALDA, (HL) INCHL LDLX, # FF LL821FEXX JRNZ, LL827A SLAE JRNZ, LL822A LDE, (HL) INCHL RLE LL822AJRC, LL821A LL822CEXAF, AF ' LDBC, # FF56 LDA, B LL8231SLAE JRNZ, LL8239 LDE, (HL) INCHL RLE LL8239JRNC, LL8243 SLAC JRC, LL8248 SLAB JRLL8231 LL8243SLAC CCF JRC, LL824B LL8248RLA JRNZ, LL8231 LL824BADCA, B EXAF, AF ' JRC, LL825A EXAF, AF ' CP # FC JRZ, LL82A6 LL8254ADCA, # FF LDLX, A JRLL822C LL825ALDA, (HL) INCHL SLAE JRNZ, LL8264 LDE, (HL) INCHL RLE LL8264EXX LDL, A EXAF, AF ' LDH, A ADDHL, DE LL8269LDA, H CPHX JRNC, LL8299 XORL AND # F8 XORL LDB, A XORL XORH RLCA RLCA LDC, A LL8278EXAF, AF ' LDA, (BC) LL827AEXAF, AF ' LDA, D CPHX JRNC, LL829A XORE AND # F8 XORE LDB, A XORE XORD RLCA RLCA LDC, A LL828AEXAF, AF ' LD (BC), A INCDE JRNC, LL8291 DECHL DECHL LL8291INCHL EXAF, AF ' INCLX JRNZ, LL8269 JRLL821F LL8299SCF LL829APUSHAF EXX ADDA, D EXX LDB, A POPAF LDC, E JRNC, LL828A LDC, L JRLL8278 LL82A6LDA, (HL) INCHL INCA JRNZ, LL8254 LDHL, # 2758 EXX RET Below are comparisons of different compressors. These 20 images took first place at Enlight'96. ekranASCLC3.1LC4.0LC5.0LAZYMSP1.4 1. tiger219720472007194320322025 2. chaos +494646664609435244424481 3. chaos413038883921380339033919 4. darkgod393337233700359636483679 5. kazansk250522882277219822422256 6. knight404639163878380638953953 7. slavik295727992782282929262952 8. st.peter 993 901 806 807 866 852 9. fil4375934663461328833683399 10. before323229842983288829932975 11. rush391136923687358036833683 12. fil2169915101459141915071471 13. shaoling373635503538350036393679 14. go489446594621468947554746 15. lifeshit271325322473242325572553 16. znachok196118331804179818961896 17. steel151413771303128013571340 18. fil3207118951875188019811973 19. hardrok411838763891376439363963 20. fil1235821602161217422232237 ASC: Screen Crasher 2.6 by ASC, 1992; LC3.1: Laser Compact 3.1, 1995; LC4.0: Laser Compact 4.0, May 1998; LC5.0: Laser Compact 5.0, August 1998; LAZY: LAZYPACK 1.0 by PANDA, December 1997; MSP1.4: Maxsoft Screen Packer 1.4, March 1998, (Using 6912 byte buffer). All screens were packed in the "maximum compression" with "Garter" unpacker.
Other articles:
Similar articles:
В этот день... 21 November