|
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:
В этот день... 14 November