ZX Club #06
31 декабря 1997 |
|
Users group - Compression code blocks - work with HRUM v3.5.
COMPRESSION code block Working with Hrum v3.5i The purpose of this writing - to give the most complete information on program hrum 3.5i - wrapper code blocks. Some characteristics HRUM 3.5i Maximum length of file that can be be packed and unpacked in the future: 49,033 bytes Full length decompressor: 150 bytes The length of the decompressor: 119 bytes Compression speed: 1 kb / s Decompression speed: 33 kb / s Ability to work with IM 2 interrupt enabled: yes Compression ratio: nemeryanaya Now you can download and run the huge files (Spectrum standards, of course) - up to 49,033 bytes, even from BASIC ... Setting / Options: Change Drive - Select the drive. Keys A, B, C, D + ENTER; ENTER - Change of diskettes. EDIT-cancellation. Optimization - rudiments. In versions 1.x and 2.x increases compression at 1 - 1.5% In version 3.x recognized netse expediency, as degree compression increased the total to 0.01%. Installation of "+" instead of "-" will help sekono mit on the loose files of about 3 - 30 bytes. Compression - Compression of a file. Owners Tsam SPECTRUM 48 should not be changing discs in packaging Files whose length more than 25600 bytes. Upon completion of packaging conclusions converge the length of the packed file compression ratio. Requesting a file name: "A :________" Changing the "A:" to "B:", UNE Example, the file will be written on drive "B". File address - Starting address of the packed corrupted file. Decompres to - Address, pointing to will be made unpack ka.- means that address is taken from the catalog. Decompressor - This address will be considered reliance 119-byte block provides unpacking. It is important that this block is not overlapped address: 1) stack at the moment 2) the compressed data 3) have not yet unpacked data. Int. on exit - Interrupt output. Auto - Start - Address auto. New SP - New stack pointer output. About compressor - Information. Exit to TR-DOS - Exit. The simplest example is the use of Game DIZZY3 On the disc consists of 3 files: DIZZY3.B - boot in BASIC. dizzy31.C start: 40,000, length: 4054 - Packed screensaver. dizzy32.C start: 24,576, length: 40,959 - The main unit. File DIZZY3.B: <R.U.=RANDOMIZE USR> 10 CLEAR 24575 20 R.U.15619: REM: LOAD "dizzy31" CODE 30 R.U.40000 40 R.U.15619: REM: LOAD "dizzy32" CODE 1950 REM: POKE 63001,0 60 R.U. 24832 Pack file dizzy32.C start: 24,576, length: 40,959 Before packing the file set: File address: (equivalent to 24,576) At this address, load the packed file and start to unpack. Decompress to: (equivalent to 24,576) That happens here unpacking file Decompressor: 23433 (extractor length 119 b. will be located in the buffer principle tera). Int.on exit: EI (at the outlet of depakera interrupts are enabled) Auto start: 24832 (after unpacking Loss zoydet go to this address). The resulting file is called dizzy32c.C Refactor boot: 10 CLEAR 24575 20 R.U.15619: REM: LOAD "dizzy31" CODE 30 R.U.40000 40 R.U.15619: REM: LOAD "dizzy32s" CODE 1950 REM: POKE 63001,0 60 R.U. 24576; unpacking and running. It is quite possible you will want to establish immortality. In this case, the package file (unlike earlier) should be set: Auto start: NO A string of Basic edit (add): 45 R.U. 24576; unboxing 50 POKE 63001,0; immortality 60 R.U. 24832; launch Another example Suppose you make a game adaptation trdos and to download the file address 23296 and by the end of memory, and then run the game with a certain address. Without ceremony so get a long file under the address you do not succeed. In one Log zxformat proposed cut file into pieces, one of the pieces loaded into screen area, to throw on the right place ... Forget about this nightmare! Hrum not only can pack files up to 49,033 bytes, it will also help upload files here so long (in packaged form - you can at least get out of BASIC), unpack it, change the status Interrupt (EI / DI), SP, and also go to desired address: In this case: File address: 24576 Decompress to: 23296 Decompressor: 16,384 Int.on exit: EI or DI Auto start: where to go. New SP on exit: what is necessary. Goods in the file address 24576 and run with the same address. EVERYTHING! How does the unpacker After starting the program throws extractor in a particular area and runs this extractor. Next packaged unit is thrown into an area where will be unpacking (in the upper address). Then she is unpacking. Features of a decompressor with IM2 regime included: Let ADR - Address Start decompressor. So ... 1. Turn on IM 2 2. Do: EI 'CALL ADR +1 everything. ISR must use its stack, type: myim2 LD (oldsp), SP LD SP, mysp PUSH ... ........ POP ... oldsp EQU $ +1 LD SP, 0 EI RET In conclusion: use Hrum'om much more pleasant and understandable than read this one the best text. Dmitry Pyankov
Other articles:
Similar articles:
В этот день... 23 November