lzma for dos/exe seems to work with tainted watcom macros
This commit is contained in:
+4
-1
@@ -171,7 +171,10 @@ void PackExe::buildLoader(const Filter *)
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
else if (ph.method == M_LZMA)
|
else if (ph.method == M_LZMA)
|
||||||
addLoader("LZMA_DEC00,LZMA_DEC10,LZMA_DEC99", NULL);
|
addLoader("LZMA_DEC00,LZMA_DEC10,LZMA_DEC99,LZMA_DEC30",
|
||||||
|
ph.u_len > 0xffff ? "LZMA_DEC31" : "",
|
||||||
|
NULL
|
||||||
|
);
|
||||||
else
|
else
|
||||||
throwInternalError("unknown compression method");
|
throwInternalError("unknown compression method");
|
||||||
addLoader("EXEMAIN5", NULL);
|
addLoader("EXEMAIN5", NULL);
|
||||||
|
|||||||
@@ -279,6 +279,7 @@ void Packer::defineDecompressorSymbols()
|
|||||||
// -2 for properties
|
// -2 for properties
|
||||||
linker->defineSymbol("lzma_c_len_hi", (ph.c_len - 2) / 65536);
|
linker->defineSymbol("lzma_c_len_hi", (ph.c_len - 2) / 65536);
|
||||||
linker->defineSymbol("lzma_u_len_hi", ph.u_len / 65536);
|
linker->defineSymbol("lzma_u_len_hi", ph.u_len / 65536);
|
||||||
|
linker->defineSymbol("lzma_u_len_segment", (ph.u_len & 0xf0000) >> 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1628
-1594
File diff suppressed because it is too large
Load Diff
@@ -122,7 +122,7 @@ __U4M_V01:
|
|||||||
|
|
||||||
// init
|
// init
|
||||||
section LZMA_DEC00
|
section LZMA_DEC00
|
||||||
.byte 0xcc
|
// .byte 0xcc
|
||||||
mov bp, sp
|
mov bp, sp
|
||||||
lea bx, [bp + lzma_stack_adjust]
|
lea bx, [bp + lzma_stack_adjust]
|
||||||
xor ax, ax
|
xor ax, ax
|
||||||
@@ -161,10 +161,10 @@ section LZMA_DEC00
|
|||||||
mov ax, offset lzma_properties
|
mov ax, offset lzma_properties
|
||||||
mov ss:[bx], ax
|
mov ss:[bx], ax
|
||||||
call LZMA_DEC10
|
call LZMA_DEC10
|
||||||
|
// .byte 0xcc
|
||||||
|
|
||||||
mov sp, bp
|
mov sp, bp
|
||||||
// FIXME 'es:di' should be set
|
jmp LZMA_DEC30
|
||||||
lret
|
|
||||||
|
|
||||||
section LZMA_DEC10
|
section LZMA_DEC10
|
||||||
.arch i8086, nojumps
|
.arch i8086, nojumps
|
||||||
@@ -177,6 +177,13 @@ section LZMA_DEC20
|
|||||||
|
|
||||||
// cleanup
|
// cleanup
|
||||||
section LZMA_DEC30
|
section LZMA_DEC30
|
||||||
|
mov di, offset lzma_u_len
|
||||||
|
|
||||||
|
section LZMA_DEC31
|
||||||
|
pop ax
|
||||||
|
push ax
|
||||||
|
add ax, offset lzma_u_len_segment
|
||||||
|
mov es, ax
|
||||||
|
|
||||||
|
|
||||||
#undef WCC_PIA_V02
|
#undef WCC_PIA_V02
|
||||||
|
|||||||
@@ -170,6 +170,7 @@
|
|||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
// huge pointer compare: set zero and carry flags: dx:ax cmp cx:bx
|
// huge pointer compare: set zero and carry flags: dx:ax cmp cx:bx
|
||||||
.macro M_WCC_PTC
|
.macro M_WCC_PTC
|
||||||
// FIXME: should we normalize the pointers ???
|
// FIXME: should we normalize the pointers ???
|
||||||
@@ -188,6 +189,9 @@ L1:
|
|||||||
// add low-word
|
// add low-word
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
#else
|
||||||
|
# include "tainted.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
; =============
|
; =============
|
||||||
|
|||||||
@@ -44,26 +44,27 @@ Idx Name Size VMA LMA File off Algn Flags
|
|||||||
39 NRV2EEX3 00000015 00000000 00000000 0000027b 2**0 CONTENTS, RELOC, READONLY
|
39 NRV2EEX3 00000015 00000000 00000000 0000027b 2**0 CONTENTS, RELOC, READONLY
|
||||||
40 N2E64K02 0000000b 00000000 00000000 00000290 2**0 CONTENTS, READONLY
|
40 N2E64K02 0000000b 00000000 00000000 00000290 2**0 CONTENTS, READONLY
|
||||||
41 NRV2EEX9 00000004 00000000 00000000 0000029b 2**0 CONTENTS, READONLY
|
41 NRV2EEX9 00000004 00000000 00000000 0000029b 2**0 CONTENTS, READONLY
|
||||||
42 LZMA_DEC99 0000005d 00000000 00000000 0000029f 2**0 CONTENTS, READONLY
|
42 LZMA_DEC99 000000ae 00000000 00000000 0000029f 2**0 CONTENTS, READONLY
|
||||||
43 LZMA_DEC00 00000043 00000000 00000000 000002fc 2**0 CONTENTS, RELOC, READONLY
|
43 LZMA_DEC00 00000044 00000000 00000000 0000034d 2**0 CONTENTS, RELOC, READONLY
|
||||||
44 LZMA_DEC10 00000ea2 00000000 00000000 0000033f 2**0 CONTENTS, RELOC, READONLY
|
44 LZMA_DEC10 00000ea2 00000000 00000000 00000391 2**0 CONTENTS, RELOC, READONLY
|
||||||
45 LZMA_DEC20 00000ea2 00000000 00000000 000011e1 2**0 CONTENTS, RELOC, READONLY
|
45 LZMA_DEC20 00000ea2 00000000 00000000 00001233 2**0 CONTENTS, RELOC, READONLY
|
||||||
46 LZMA_DEC30 00000000 00000000 00000000 00002083 2**0 CONTENTS, READONLY
|
46 LZMA_DEC30 00000003 00000000 00000000 000020d5 2**0 CONTENTS, RELOC, READONLY
|
||||||
47 EXEMAIN5 00000001 00000000 00000000 00002083 2**0 CONTENTS, READONLY
|
47 LZMA_DEC31 00000007 00000000 00000000 000020d8 2**0 CONTENTS, RELOC, READONLY
|
||||||
48 EXEADJUS 00000007 00000000 00000000 00002084 2**0 CONTENTS, READONLY
|
48 EXEMAIN5 00000001 00000000 00000000 000020df 2**0 CONTENTS, READONLY
|
||||||
49 EXENOADJ 00000002 00000000 00000000 0000208b 2**0 CONTENTS, READONLY
|
49 EXEADJUS 00000007 00000000 00000000 000020e0 2**0 CONTENTS, READONLY
|
||||||
50 EXERELO1 0000001e 00000000 00000000 0000208d 2**0 CONTENTS, RELOC, READONLY
|
50 EXENOADJ 00000002 00000000 00000000 000020e7 2**0 CONTENTS, READONLY
|
||||||
51 EXEREL9A 00000012 00000000 00000000 000020ab 2**0 CONTENTS, RELOC, READONLY
|
51 EXERELO1 0000001e 00000000 00000000 000020e9 2**0 CONTENTS, RELOC, READONLY
|
||||||
52 EXERELO2 00000004 00000000 00000000 000020bd 2**0 CONTENTS, READONLY
|
52 EXEREL9A 00000012 00000000 00000000 00002107 2**0 CONTENTS, RELOC, READONLY
|
||||||
53 EXEREBIG 00000002 00000000 00000000 000020c1 2**0 CONTENTS, RELOC, READONLY
|
53 EXERELO2 00000004 00000000 00000000 00002119 2**0 CONTENTS, READONLY
|
||||||
54 EXERELO3 00000002 00000000 00000000 000020c3 2**0 CONTENTS, RELOC, READONLY
|
54 EXEREBIG 00000002 00000000 00000000 0000211d 2**0 CONTENTS, RELOC, READONLY
|
||||||
55 EXEMAIN8 00000003 00000000 00000000 000020c5 2**0 CONTENTS, READONLY
|
55 EXERELO3 00000002 00000000 00000000 0000211f 2**0 CONTENTS, RELOC, READONLY
|
||||||
56 DEVICEEND 00000013 00000000 00000000 000020c8 2**0 CONTENTS, READONLY
|
56 EXEMAIN8 00000003 00000000 00000000 00002121 2**0 CONTENTS, READONLY
|
||||||
57 EXESTACK 00000006 00000000 00000000 000020db 2**0 CONTENTS, RELOC, READONLY
|
57 DEVICEEND 00000013 00000000 00000000 00002124 2**0 CONTENTS, READONLY
|
||||||
58 EXESTASP 00000003 00000000 00000000 000020e1 2**0 CONTENTS, RELOC, READONLY
|
58 EXESTACK 00000006 00000000 00000000 00002137 2**0 CONTENTS, RELOC, READONLY
|
||||||
59 EXEJUMPF 00000005 00000000 00000000 000020e4 2**0 CONTENTS, RELOC, READONLY
|
59 EXESTASP 00000003 00000000 00000000 0000213d 2**0 CONTENTS, RELOC, READONLY
|
||||||
60 EXERCSPO 00000004 00000000 00000000 000020e9 2**0 CONTENTS, RELOC, READONLY
|
60 EXEJUMPF 00000005 00000000 00000000 00002140 2**0 CONTENTS, RELOC, READONLY
|
||||||
61 EXERETIP 00000006 00000000 00000000 000020ed 2**0 CONTENTS, RELOC, READONLY
|
61 EXERCSPO 00000004 00000000 00000000 00002145 2**0 CONTENTS, RELOC, READONLY
|
||||||
|
62 EXERETIP 00000006 00000000 00000000 00002149 2**0 CONTENTS, RELOC, READONLY
|
||||||
SYMBOL TABLE:
|
SYMBOL TABLE:
|
||||||
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
|
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
|
||||||
00000000 l d EXEENTRY 00000000 EXEENTRY
|
00000000 l d EXEENTRY 00000000 EXEENTRY
|
||||||
@@ -81,6 +82,7 @@ SYMBOL TABLE:
|
|||||||
00000000 l d NRV2EEX9 00000000 NRV2EEX9
|
00000000 l d NRV2EEX9 00000000 NRV2EEX9
|
||||||
00000000 l d LZMA_DEC99 00000000 LZMA_DEC99
|
00000000 l d LZMA_DEC99 00000000 LZMA_DEC99
|
||||||
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
|
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
|
||||||
|
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
|
||||||
00000000 l d EXERELO1 00000000 EXERELO1
|
00000000 l d EXERELO1 00000000 EXERELO1
|
||||||
00000000 l d EXERELO2 00000000 EXERELO2
|
00000000 l d EXERELO2 00000000 EXERELO2
|
||||||
00000000 l d DEVICESUB 00000000 DEVICESUB
|
00000000 l d DEVICESUB 00000000 DEVICESUB
|
||||||
@@ -113,7 +115,7 @@ SYMBOL TABLE:
|
|||||||
00000000 l d N2E64K02 00000000 N2E64K02
|
00000000 l d N2E64K02 00000000 N2E64K02
|
||||||
00000000 l d LZMA_DEC00 00000000 LZMA_DEC00
|
00000000 l d LZMA_DEC00 00000000 LZMA_DEC00
|
||||||
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
|
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
|
||||||
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
|
00000000 l d LZMA_DEC31 00000000 LZMA_DEC31
|
||||||
00000000 l d EXEMAIN5 00000000 EXEMAIN5
|
00000000 l d EXEMAIN5 00000000 EXEMAIN5
|
||||||
00000000 l d EXEADJUS 00000000 EXEADJUS
|
00000000 l d EXEADJUS 00000000 EXEADJUS
|
||||||
00000000 l d EXENOADJ 00000000 EXENOADJ
|
00000000 l d EXENOADJ 00000000 EXENOADJ
|
||||||
@@ -145,6 +147,7 @@ SYMBOL TABLE:
|
|||||||
00000000 *UND* 00000000 lzma_c_len
|
00000000 *UND* 00000000 lzma_c_len
|
||||||
00000000 *UND* 00000000 lzma_properties_hi
|
00000000 *UND* 00000000 lzma_properties_hi
|
||||||
00000000 *UND* 00000000 lzma_properties
|
00000000 *UND* 00000000 lzma_properties
|
||||||
|
00000000 *UND* 00000000 lzma_u_len_segment
|
||||||
00000000 *UND* 00000000 reloc_size
|
00000000 *UND* 00000000 reloc_size
|
||||||
00000000 *UND* 00000000 original_ss
|
00000000 *UND* 00000000 original_ss
|
||||||
00000000 *UND* 00000000 original_sp
|
00000000 *UND* 00000000 original_sp
|
||||||
@@ -251,14 +254,15 @@ OFFSET TYPE VALUE
|
|||||||
|
|
||||||
RELOCATION RECORDS FOR [LZMA_DEC00]:
|
RELOCATION RECORDS FOR [LZMA_DEC00]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
00000005 R_386_16 lzma_stack_adjust
|
00000004 R_386_16 lzma_stack_adjust
|
||||||
00000013 R_386_16 lzma_u_len_hi
|
00000012 R_386_16 lzma_u_len_hi
|
||||||
00000017 R_386_16 lzma_u_len
|
00000016 R_386_16 lzma_u_len
|
||||||
00000022 R_386_16 lzma_c_len_hi
|
00000021 R_386_16 lzma_c_len_hi
|
||||||
00000026 R_386_16 lzma_c_len
|
00000025 R_386_16 lzma_c_len
|
||||||
00000031 R_386_16 lzma_properties_hi
|
00000030 R_386_16 lzma_properties_hi
|
||||||
00000038 R_386_16 lzma_properties
|
00000037 R_386_16 lzma_properties
|
||||||
0000003e R_386_PC16 LZMA_DEC10
|
0000003d R_386_PC16 LZMA_DEC10
|
||||||
|
00000042 R_386_PC16 LZMA_DEC30
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [LZMA_DEC10]:
|
RELOCATION RECORDS FOR [LZMA_DEC10]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
@@ -368,6 +372,14 @@ OFFSET TYPE VALUE
|
|||||||
00000e6b R_386_PC16 LZMA_DEC99
|
00000e6b R_386_PC16 LZMA_DEC99
|
||||||
00000e73 R_386_PC16 LZMA_DEC99
|
00000e73 R_386_PC16 LZMA_DEC99
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [LZMA_DEC30]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
00000001 R_386_16 lzma_u_len
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [LZMA_DEC31]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
00000003 R_386_16 lzma_u_len_segment
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [EXERELO1]:
|
RELOCATION RECORDS FOR [EXERELO1]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
00000002 R_386_16 reloc_size
|
00000002 R_386_16 reloc_size
|
||||||
|
|||||||
Reference in New Issue
Block a user