Inferno #07
31 мая 2005 |
|
Inferno - Errors in the previous numbers.
Some errors IG # 6 In the description ALASM4.47 crept paragraph from long lines. You can easily can fix this text and repack magazine, received some tory harmless experience in using the package ZXRar + ZXUnRar:) Another error in this description: the current offset DISP is defined lies at the fact as follows: a ORG 0 ENT shift ORG a + shift DISP a ; Shift = org-disp IG # 5 Shiru Otaku (Alexander Semenov) announced additions to its reykasting article about: 1. Nowhere is it said that sin, cos, tan in the article imply values in degrees at the inlet and outlet. 2. Specified speed Pspd, but in the formulas NADI Sano, * 10, but not * Pspd. IG # 5 (sent Hrumer'om) Hrust 1.x: In my opinion, Sergei Mullin I once wrote that code dehrusta allows and "narrow" codes "- if the overflow register which is responsible for storing the length of codes. You simply insert consecutive multiple spreading codes, and obtain a restriction. But I do not checked:) Can it be used for dramatic change content - the code - graphics - the text. If we again met, For example, graphics - extending the code. Hrust 2.x: 000xxxx - disp12 (# e200-# f0ff), xxxx = 0001 (as it was by mistake published 0000) corresponds to the # e2. LC 4.x: Now done unpacking at Sea LC4, inaccuracies in your description sequence: 11xxxx01, B: not 1 .. 15 identical bytes - should be 2 .. 16. Found an inaccuracy because of your description of the format done unpacking:) LC4 more effectively preserves large sequences "Nepakuemyh bytes. LC 5.x: The magazine says that in LC5.x gone up "backwards in advance. "This is wrong. The flag is taken here with this code: DLC3 EXA SLA D JR NZ, $ +6 LD D, (HL) INC HL SLI D DJNZ DLC7 With the transition to DLC7. After receipt-dispH of the bitstream extracted feature lines of copy: 0 - serial copying bytes; 1 - copyback bytes and placed in the CF. Piece of code that uses this value in the future: JR NC, $ +4 DEC HL DEC HL INC HL Then, from the byte stream is extracted-dispL. As has been observed in disp> 768 increases puts. Must be corrected as follows: Bitrate: % 1 - to take a byte from the byte stream; % 0,-puts,-dispH,% x (sign up direction: 0 - as typically, 1 - in reverse order),-dispL (from byte stream) - A link back to copying. Codes for the disp and puts are in the table above. When disp = 1, and sign the direction = 0, ochevi bottom, there is repetition of the previous byte ... / / Unpacker images LaserCompact5.2. / / C version: Hrumer 'HalfElf. 25.02.2005 typedef unsigned char BYTE; typedef unsigned short WORD; BYTE * lc_d_input; BYTE lc_d_tagbyte; BYTE lc_d_index; / / Conversion 000SgStolbRyadLin in 000SgLinRyadStolb WORD getrealadr (WORD virtadr, WORD lb, WORD sc) { WORD realadr; if (virtadr <lb) { WORD Lin = (virtadr '0x0007) <<8; WORD Ryd = (virtadr '0x0038) <<2; WORD Stolb = (virtadr '0x07C0)>> 6; WORD Sg = virtadr '0x1800; realadr = Sg | Lin | Ryd | Stolb; } Else { realadr = virtadr + sc; } return realadr; } BYTE lc_d_getbit (void) { BYTE bit [] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; if (lc_d_index == 0) lc_d_tagbyte = * lc_d_input + +; BYTE tmp = (lc_d_tagbyte 'bit [lc_d_index]) == 0? 0: 1; lc_d_index = (lc_d_index + 1)% 8; return tmp; } BYTE getcode (void) { BYTE tmp = 0xFE; for (int i = 0; i <3; + + i) { if (lc_d_getbit ()) return tmp +1; tmp = (tmp <<1) | lc_d_getbit (); } return ((tmp <<1) | lc_d_getbit ()) + 9; } BYTE getlen (void) { BYTE len = getcode (); if (len == 0x100 - 7) { len = * lc_d_input + +; - Len; } Else { if (len> 0x100 - 7) - len; } return len; } int delc52 (BYTE * source, BYTE * destination) { lc_d_index = 0; BYTE * lc_d_output = destination; lc_d_input = source + source [7] + 9; WORD sc = (lc_d_input [-1]) <<8; WORD to = (sc '0x0300) <<3; WORD lb = (sc ^ 0x1800) '0xFC00; lc_d_output [getrealadr (to + +, lb, sc)] = * lc_d_input + +; while (true) { if (lc_d_getbit ()) { lc_d_output [getrealadr (to + +, lb, sc)] = * lc_d_input + +; } Else { BYTE len = getlen (); if (len == 0xFF) break; WORD dist = getcode () <<8; BYTE napr = lc_d_getbit (); dist | = * lc_d_input + +; len =-len; dist =-dist; if (dist> 768) + + len; WORD from = to-dist; do { lc_d_output [getrealadr (to + +, lb, sc)] = lc_d_output [getrealadr (from, lb, sc)]; from + = napr? -1: 1; - Len; } While (len> 0); } } return 0; }
Other articles:
Similar articles:
В этот день... 23 November