ZX Club #06
31 декабря 1997 |
|
Users group - File Compression Screen: Overview of the software. Discography. Analysis of the results of compression.
The only independent program, written by Hughes in his entire Garrisson life - is it a vital program CREDO. Crafty hackers (the most cunning of them is his own wife) has repeatedly tried to force the vital program of Hughes Garrissona, but they have nothing came of it. CREDO program is protected impenetrable selfishness and laziness of the author impassable. History of creation InterNet. From a letter to Hughes Garrissona hacker Haku: "Hack!" As long as you can endure! I have three times I click "mouse" but your program does nothing that reads my thoughts and print them on printer ... And send the editors who will? " And then the hacker Haq struck a brilliant idea creating a global network InterNet. Now, on the third click "mouse", the immortal Hughes thought Garrissona sent directly to purpose: the global community. SCREEN FILE COMPRESSION 1. Introduction ........................... 36 2. Overview of the software. Library ............... 133 3. Bibliography ........................ 341 4. Analysis of the results of compression ....... 491 1. Entry This article is addressed primarily users who do not break the "barrier machine code, but something, I dare to hope may be of interest and encoders. I am familiar with at least two lovers Spectrum, happy writing the bulk of the program on Basic, but with caution and distrust related to everything is related to Machine Code. And it's not that they are fundamentally and categorically do not want to use a bunch of obscure tsifirey. Detailed explanation of the basic programming techniques in the past is not particularly paid attention, in Most articles are all "self-evident", "long known", "not just covered," etc. One gets the impression that the authors were just too lazy to type a few additional lines of text. And yet is a category of users for whom important as these times are missing line. The users who write programs for Basic, may have the impression that machine codes, and even more so - issues compression code blocks, they do not relate to any side. Is this true? Try to write a program of educational or for reference without using the compression code blocks or in general without the use of machine code. Normal development of the program is unlikely to fit in one disc. What will be its commercial value? So, Dear Users, if you want your programs interested in someone else besides yourself, let's get together and hurrying to sort out as possible, doing a minimum of tools and knowledge to create something similar to this product. With confidence I can say that most users are unaware of many application programs use which in programming is easy, convenient, and sometimes - is necessary. Among These programs may include compressors display files, a special place among them is remarkable Laser Compact Dmitry Pyankov of Gorno-Altaisk. With bitterness must be noted that despite the availability of programs of its existence, even more so - about its capabilities, know a few local sinkleristy. * The main purpose of the program-compressors - saving memory space and time data exchange. Depending on your destination program compression code blocks can be divided into two major groups: 1) compressor, "wrappers"; 2) compressor-archiver. The first group includes compressors autostart programs and, accordingly, an automatic decompression code blocks after you download them in compressed form in RAM on your computer. Purposes as "packers": Fast downloads from Disk and training programs to work (saving time), saving disk space. Second group - the more prosaic and is intended solely for economical archival storage of data on diskettes. To use the archive file, it must first decompress with Using the-decompressor, and only then decompressed file can be downloaded to your computer. Here we will focus on the analysis of compressors, "packers", emphasizing compressive display files - "pictures" (Address: 16384, length: 6912). 2. Overview of the software. Discography 2.1. Specialized programs ASC v.2.06 Andrew Screen Crasher (C) Andrew Sendetsky (Dnepropetrovsk, 1991). Distributed Inforkom on the system diskette with cipher CD18. The program writes the compressed block codes (Display file with the decompressor), on at 27000. Loading can produce at the address of start, located above RAMTOP. To call the "picture" on screen, rather, should contact start: ... 095 REM Load the compressed "image" in the computer's RAM 100 RANDOMIZE USR 15619: REM: LOAD "Name $" CODE start 105 REM Call the "picture" on the screen 110 RANDOMIZE USR start ... Before unpacking the screen (by calling the "pictures" on the screen) it is desirable to establish the same color "black" and "paper". For example: 102 INK 0: PAPER 0: CLS or use the extra screen Spectrum 128. COMPRES * (C) AS Cologne, 1992 The program terminates short of "picture" of at 50000. You can download the code block at any address, start and cause "Picture" to the screen command RANDOMIZE USR start. Distributed Inforkom on the system diskette with the code CD10, CD13. VD v.1.2 Visual Decompressor (C) Thimoty (St. Petersburg, 1995), from a software application e-zine "Spectrofon", 14. During compression the display file is given one of the 12 possible modes of inference "pictures" on the screen. Nontrivial conclusion "pictures" overestimates the length of compressed code block, but it is fully compensated for the service: the problem of the spectacular display on the screen saver is solved automatically. Load address of code blocks: 40000 (unmovable file). LC v.3.1 Laser Compact (C) Dmitry Pyankov (Gorno-Altaisk, 1995). Distributed Inforkom on the system diskette with the code and AC12 author: 659,700 rep. Altai, Gorno-Altaisk, st. Choros-Gurkin, 49 - 6. Since December 1997. to disseminate programs Dmitry Pyankov joined ZX-club (Barnaul). Author diskette can be ordered at Editorial "ZX-club" or buy into the firm Komel department store "Maple" (Barnaul, st. G. Isakov, 239). The program creates self-extracting relocatable file: address discharge - 40000; load address - is arbitrary. As packet to the Laser Compact is attached Program Connect LC v.3.1, allowing combine compressed image in a code block with the ability to call the "pictures" on the screen by its number in the generated block. Besides the obvious convenience use of such a candy bar in the program, the length of the candy bar is less than the arithmetic sum of the lengths of its constituent compressed "images." Additional features LC: Compression of individual segments of the screen (1 st, 2 nd, Third), the compression segment pairs (1-2, 2-3). 2.2. Programme of general-purpose PCD v.6.1 Powerful Code Decreaser (C) KSA (Moscow, 1996). Distributed by Inforkom system diskette with the code AC32. The program has two modes: screen (display file compression), code (Compression code blocks). By default, compressed "image" is discharged, together with the decompressor at 49,152; download - at any address. If you wish to address unloading can be changed as well - record uncompressed file without decompression. The obvious drawback of the program - amazed confusion: the operations on which other compressors go in seconds, take up working with PCD already minute usage time. Comprehensive testing program was not in my plans, so the following remark is not an absolute truth, but a case of working practices with the compressor on emulator UKV Spectrum Debugger v.1.2 (K. Uglekov, Moscow). When the program starts from the regime of 128K and further attempts to bring a compressed "image" on the screen from BASIC, computer freezes completely and irrevocably. Correct work - using the 48K. HRUM v.3.5i (C) Dmitry Pyankov, 1997. Distributed by the author: 659,700 rep. Altai, Gorno-Altaisk, st. Choros-Gurkin, 49-6. HRUM v.3.5i part of the Disc authoring Dmitry Pyankov (see above - LC v.3.1). Separate treatment program did not screen has, therefore, the average compression ratio namely on-screen file it is somewhat lower than that of the specialized programs ASC and Laser Compact. However, on the overall work: the degree of compression, while Operation - HRUM significantly exceed program PCD. More information on the program, see the article by Dmitry Pyankov "Compression of code blocks. Perhaps a program of general purpose which is HRUM, incorrectly mentioned in the article devoted to the special matter compression display files. Firstly, - HRUM designed to compress heterogeneous information: text, graphics, sound, etc. Secondly, - graphic files such programs to unpack, as a rule, not the screen, in a dedicated for this buffer, and only after decompressing image is thrown onto the screen. AND Yet I not only left the program in Review of the software, but also introduced her to the table comparative tests. The reasons have prompted me to make this decision, will be discussed separately in the fourth paragraph of this article. * As a summary of the Review of the software make a few considerations that have arisen in me during the preparatory work. The apparent abundance of software is deceptive. Trying to "separate the wheat from the chaff, I watched almost all public programs and found only Four (4) workable and not morally obsolete (meaning specialized programs-packers display files). To the above list you can add the program SUPERPAK v.2.0 (C) V. Vasilevsky / V. Kataev (Kirov / Vyatka 1993) - code CD9 catalog Inforkom. However, I have copies available, including distributive, successfully pressing the "pictures" in no way wish to decompress. However, and a valid copy of can be safely classified as a moral legacy. And, morally, this program could not compete even at the moment publication. Particular attention should be paid to the COPYRIGHT annotations to the program: Be wary of statements like "... The best (most powerful) today Day ...", "... does not have analogues on the effectiveness of ..." etc. Such assurances are present in virtually all mentioned programs. Looking ahead, I will say that the block exponent compression-screen program files 91-year (ASC v.2.6) was only at the end 95-year (LC v.3.1)! And how to understand if the words "... the best screen optimizer ...", Related to program 96-year (PCD v.6.1), if on the parameters it is inferior even to ASC '91? Perhaps the reason for such confusion lies in the lack of works as a survey character and work research - on specific issues. Try, at least in part, to fill this gap. 3. Bibliography This paragraph could give a name "In the pages ZX-Revue", because I have no time, no particular desire to bury his head in the compression issues and conduct wide search, shtudiruya special literature. Another thing - "Handbook" sinklerista, which undoubtedly can be include books Inforkom of graphic series. On the feasibility review materials I mentioned above, here Updated: began to develop an issue, just need to learn from their predecessors, if you will not be in a ridiculous position, "the inventor of a bike." In addition, having at hand a bibliographic reference, you can quickly pick up ready-made procedure for use in its program. 3.1. The theory of compression code blocks 3.1.1. ZX-Revue 1 / 95.: Professional approach. - With. 16-22. Sergei Simonovic. Archiving, compression, compression. "... There are many different methods of data compression. But if you look at their essence, we can distinguish two main naprvleniya. First naprvlenie represent a variety of methods based by using long sequences duplicate data (method RLE - Run Length Encoding). Second naprvlenie associated with using non-repeating length data, and the frequency of their repetition, and these methods are based on an algorithm named after Huffman (Huffman). " In connection with the description of the method of Huffman for gives examples of two systems of binary coding of characters and uncover the secret of compiling dictionaries in computer games. 3.1.2. Applied Graphics. - M.: Inforkom, 1993, pp. 57-67. The principle of packing capture, which consists in creating a file template graphics. At the same time for each screen must be created "Map" placement patterns. Compression techniques discussed in detail for the preparation of archive (library) patterns and decompression of templates to display them in a display file or in a buffer screen. Here we have in mind that the archived data constitute a single block of code to any program, are an integral part and are loaded with it in RAM computer. 3.2. Compression Graphics 3.2.1. Collection ZX-Revue '91.: MACHINE CODE. - With. 6, 24. Procedures for compression / decompression screen. Author: N. Devyatko, Nalchik. Assembly code of the programs supplied with detailed commentary, which makes it possible to understand implementation of the compression algorithm. If desired, you can type a hex dump and use the code block in their programs. 3.2.2. Collection ZX-Revue '93.: Forum. - With. 59-63. 1. The program "Compressor". Basic-Program boot code blocks: a character set, a compressor / decompressor screen files. Author compression procedure: Alexander Balashov, Konakovo Tver region. The program is designed to work with recorder and the procedure completed boot code block without a title. Assembly code of procedure, compression accompanied by detailed commentaries, which give representation on the algorithm of the procedure; parallel computer codes are in hexadecimal representation. 2. Another option compression screens. "... At the core of the program contains a well-known many users block codes, "compress" CODE 28000, 650. Beysikovaya part is made virtually from scratch, which allowed to use the program with greater convenience and pleasure. In addition, we give two version of the program: Tape and drive. ... Perhaps the compression as the entire screen, and randomly selected any one or two adjacent segments screen (compare with LC v.3.1. - SWdZ) ". The article discussed in detail Beysikovaya part of the program, and the results of comparative tests, which held the author of this text, are shown in Table 4.1 (see below). 3.2.3. ZX-Review 3 / 96.: Forum. - With. 41-45. The procedure for compression / decompression of the screen "COMPRESSOR 2. Author: Dmitry Bulavin, city Samara. "... I suggested that the beneficial compress the screen is not on the lines, and on familiarity, ie, first 8 bytes of 1 familiarity, then 8 bytes are read and etc. It turns out that the first byte of the 1 st familiarity compared to the second, the second with 3rd ,..., 8th with the first byte of the next familiarity. " Beysikovaya part of the program, the compressor is written to work with the recorder. Code compressor unit is loaded with BASIC DATA command. 3.2.4. Elementary schedule. - M.: Inforkom, 1993, pp. 201-207. In the third part of the book - Workshop on the graph in the native - are coded blocks and disassembler software compression / decompression of the screen. To send a procedure parameters - the address from which begins the area reserved for the compressed images, and the address from from which the stored compressed image - proposed device based for use in BASIC user-defined functions - DEF FN. Details with this technique can be found by reading the chapter "Standard Format function user "(p. 109-111). 4. Analysis of the results of compression display files For analysis, we selected 10 screens files, 8 of which are well known, are the intros to the games and were cited as examples in articles published in the "ZX-Revue" (see Section 3 "Bibliography"). The results of compression are summarized in Table. 4.1. To view the "image", press one of numeric keys: <1> - $ 1 ... <0> - $ 10. Table 4.1 Compromise. / ASC Comp Comp LC 3.1 '95 PCD HRUM Screen. v2.6 res * ress 6.1 3.5i file 1991 1992 1993 1996 1997 max $ 1 1402 2209 2306 1246 1327 1352 1310 $ 2 1896 3182 3185 1673 1813 2427 2367 $ 3 1986 3072 3070 1676 1851 2573 2509 $ 4 2205 2203 2128 2021 2086 2452 2386 $ 5 2237 3553 4205 2054 2177 2747 2654 $ 6 2292 2613 2545 2126 2248 2632 2554 $ 7 3080 3433 3439 2797 2889 3180 3125 $ 8 3364 3925 3946 3156 3281 3839 3723 $ 9 3659 3456 3638 3342 3464 3255 3194 $ 10 3922 4595 4731 3697 3916 4305 4198 Total: 25.4 31.2 32.4 23.2 24.5 28.1 27.4 AP,% 62,3 53,4 52,0 65,6 63,8 58,4 59,5 Notes: 1. When you use the Connect LC v.3.1, total block of 10 compressed "Pictures" are as follows: mode of maximum compression is enabled - - 22,542 bytes (67.4%); maximum compression mode off - - 23,806 bytes (65.6%). 2. The average compression ratio as a percentage (Average percent): AP = [(TL - TLC) / TL] * 100% Naturally, the value of AP is correct operate only for a certain set of screens. 3. The total amount of codes in uncompressed form (Total length): TL = scr * n, B where scr - standard screen 6912 bytes; n - the number of screens, pcs. 4. The total amount of code in a compressed form: TLC = scr (1) + scr (2) +...+ scr (i) + ... ... + Scr (n), B where scr (i) - volume of i-th screen in a compressed as bytes. 5. In line <Total> total in the compressed as given in kilobytes: TLC/1024 * From a comparison of the results of compression shows that the average program with the objective of general purpose compression display files cope less specialized programs, but in some cases (such as files $ 1 and $ 9) - is better. This confirms once more concluded that the issues of compression code blocks require individual and careful approach. Pay attention to the mentioned "Image" $ 1 and $ 9. In this set, they are limiting examples of "loose" ($ 1) and "dense" ($ 9) graphics. Therefore, not surprising that the program utility efficiently compress these "pictures" since they are designed to work with exactly the kind of information: either the maximum ordered ("loose"), or the maximum disordered ("dense"). To complete the cite criticism Dmitry Pyankov who carefully read the drafts and answered questions author of the article. When working decompressor, Program "... ASC, PCD, HRUM prohibit interrupts, and output - are allowed. Therefore, when unpacking screen music, "hanging" on IM 2, is "whinge". Laser Compact does not change the status of interrupts, so the music while unpacking screensavers are not "howling "...". Next Dm. Pyankov wrote that the unpacker (decompressor) ASC this shortcoming is corrected to read as follows: Team Di (zero bytes) clogged NOP'om (zero). I'd add that "the team to score NOP'om Di" in the forces is not for everyone. And why? Table 4.1 shows clearly that the best file compressor on display today day program is a Laser Compact. Note the last paragraph with respect to status interrupt finally convinces correctness of this conclusion. Hughes Garrisson
Other articles:
Similar articles:
В этот день... 21 November