LZMA for dos/exe integration work. Does not work yet.
This commit is contained in:
+1593
-1543
File diff suppressed because it is too large
Load Diff
@@ -122,7 +122,49 @@ __U4M_V01:
|
||||
|
||||
// init
|
||||
section LZMA_DEC00
|
||||
.byte 0xcc
|
||||
mov bp, sp
|
||||
lea bx, [bp + lzma_stack_adjust]
|
||||
xor ax, ax
|
||||
.clearstack:
|
||||
push ax
|
||||
cmp sp, bx
|
||||
jnz .clearstack
|
||||
|
||||
inc si
|
||||
inc si
|
||||
|
||||
push ss // outSizeProcessed
|
||||
push bx
|
||||
mov ax, offset lzma_u_len_hi
|
||||
push ax
|
||||
mov ax, offset lzma_u_len
|
||||
push ax // outSize
|
||||
push es
|
||||
push di // out
|
||||
|
||||
add bx, 4
|
||||
push ss // inSizeProcessed
|
||||
push bx
|
||||
mov ax, offset lzma_c_len_hi
|
||||
push ax
|
||||
mov ax, offset lzma_c_len
|
||||
push ax // inSize
|
||||
push ds
|
||||
push si // in
|
||||
|
||||
add bx, 4
|
||||
push ss
|
||||
push bx
|
||||
mov ax, offset lzma_properties_hi
|
||||
mov ss:[bx + 2], ax
|
||||
mov ax, offset lzma_properties
|
||||
mov ss:[bx], ax
|
||||
call LZMA_DEC10
|
||||
|
||||
mov sp, bp
|
||||
// FIXME 'es:di' should be set
|
||||
lret
|
||||
|
||||
section LZMA_DEC10
|
||||
.arch i8086, nojumps
|
||||
|
||||
@@ -45,25 +45,25 @@ Idx Name Size VMA LMA File off Algn Flags
|
||||
40 N2E64K02 0000000b 00000000 00000000 00000290 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
|
||||
43 LZMA_DEC00 00000000 00000000 00000000 000002fc 2**0 CONTENTS, READONLY
|
||||
44 LZMA_DEC10 00000ea2 00000000 00000000 000002fc 2**0 CONTENTS, RELOC, READONLY
|
||||
45 LZMA_DEC20 00000ea2 00000000 00000000 0000119e 2**0 CONTENTS, RELOC, READONLY
|
||||
46 LZMA_DEC30 00000000 00000000 00000000 00002040 2**0 CONTENTS, READONLY
|
||||
47 EXEMAIN5 00000001 00000000 00000000 00002040 2**0 CONTENTS, READONLY
|
||||
48 EXEADJUS 00000007 00000000 00000000 00002041 2**0 CONTENTS, READONLY
|
||||
49 EXENOADJ 00000002 00000000 00000000 00002048 2**0 CONTENTS, READONLY
|
||||
50 EXERELO1 0000001e 00000000 00000000 0000204a 2**0 CONTENTS, RELOC, READONLY
|
||||
51 EXEREL9A 00000012 00000000 00000000 00002068 2**0 CONTENTS, RELOC, READONLY
|
||||
52 EXERELO2 00000004 00000000 00000000 0000207a 2**0 CONTENTS, READONLY
|
||||
53 EXEREBIG 00000002 00000000 00000000 0000207e 2**0 CONTENTS, RELOC, READONLY
|
||||
54 EXERELO3 00000002 00000000 00000000 00002080 2**0 CONTENTS, RELOC, READONLY
|
||||
55 EXEMAIN8 00000003 00000000 00000000 00002082 2**0 CONTENTS, READONLY
|
||||
56 DEVICEEND 00000013 00000000 00000000 00002085 2**0 CONTENTS, READONLY
|
||||
57 EXESTACK 00000006 00000000 00000000 00002098 2**0 CONTENTS, RELOC, READONLY
|
||||
58 EXESTASP 00000003 00000000 00000000 0000209e 2**0 CONTENTS, RELOC, READONLY
|
||||
59 EXEJUMPF 00000005 00000000 00000000 000020a1 2**0 CONTENTS, RELOC, READONLY
|
||||
60 EXERCSPO 00000004 00000000 00000000 000020a6 2**0 CONTENTS, RELOC, READONLY
|
||||
61 EXERETIP 00000006 00000000 00000000 000020aa 2**0 CONTENTS, RELOC, READONLY
|
||||
43 LZMA_DEC00 00000043 00000000 00000000 000002fc 2**0 CONTENTS, RELOC, READONLY
|
||||
44 LZMA_DEC10 00000ea2 00000000 00000000 0000033f 2**0 CONTENTS, RELOC, READONLY
|
||||
45 LZMA_DEC20 00000ea2 00000000 00000000 000011e1 2**0 CONTENTS, RELOC, READONLY
|
||||
46 LZMA_DEC30 00000000 00000000 00000000 00002083 2**0 CONTENTS, READONLY
|
||||
47 EXEMAIN5 00000001 00000000 00000000 00002083 2**0 CONTENTS, READONLY
|
||||
48 EXEADJUS 00000007 00000000 00000000 00002084 2**0 CONTENTS, READONLY
|
||||
49 EXENOADJ 00000002 00000000 00000000 0000208b 2**0 CONTENTS, READONLY
|
||||
50 EXERELO1 0000001e 00000000 00000000 0000208d 2**0 CONTENTS, RELOC, READONLY
|
||||
51 EXEREL9A 00000012 00000000 00000000 000020ab 2**0 CONTENTS, RELOC, READONLY
|
||||
52 EXERELO2 00000004 00000000 00000000 000020bd 2**0 CONTENTS, READONLY
|
||||
53 EXEREBIG 00000002 00000000 00000000 000020c1 2**0 CONTENTS, RELOC, READONLY
|
||||
54 EXERELO3 00000002 00000000 00000000 000020c3 2**0 CONTENTS, RELOC, READONLY
|
||||
55 EXEMAIN8 00000003 00000000 00000000 000020c5 2**0 CONTENTS, READONLY
|
||||
56 DEVICEEND 00000013 00000000 00000000 000020c8 2**0 CONTENTS, READONLY
|
||||
57 EXESTACK 00000006 00000000 00000000 000020db 2**0 CONTENTS, RELOC, READONLY
|
||||
58 EXESTASP 00000003 00000000 00000000 000020e1 2**0 CONTENTS, RELOC, READONLY
|
||||
59 EXEJUMPF 00000005 00000000 00000000 000020e4 2**0 CONTENTS, RELOC, READONLY
|
||||
60 EXERCSPO 00000004 00000000 00000000 000020e9 2**0 CONTENTS, RELOC, READONLY
|
||||
61 EXERETIP 00000006 00000000 00000000 000020ed 2**0 CONTENTS, RELOC, READONLY
|
||||
SYMBOL TABLE:
|
||||
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
|
||||
00000000 l d EXEENTRY 00000000 EXEENTRY
|
||||
@@ -80,6 +80,7 @@ SYMBOL TABLE:
|
||||
00000000 l d NRV2EEX3 00000000 NRV2EEX3
|
||||
00000000 l d NRV2EEX9 00000000 NRV2EEX9
|
||||
00000000 l d LZMA_DEC99 00000000 LZMA_DEC99
|
||||
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
|
||||
00000000 l d EXERELO1 00000000 EXERELO1
|
||||
00000000 l d EXERELO2 00000000 EXERELO2
|
||||
00000000 l d DEVICESUB 00000000 DEVICESUB
|
||||
@@ -111,7 +112,6 @@ SYMBOL TABLE:
|
||||
00000000 l d N2E28602 00000000 N2E28602
|
||||
00000000 l d N2E64K02 00000000 N2E64K02
|
||||
00000000 l d LZMA_DEC00 00000000 LZMA_DEC00
|
||||
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
|
||||
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
|
||||
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
|
||||
00000000 l d EXEMAIN5 00000000 EXEMAIN5
|
||||
@@ -138,6 +138,13 @@ SYMBOL TABLE:
|
||||
00000000 *UND* 00000000 destination_segment
|
||||
00000000 *UND* 00000000 decompressor_entry
|
||||
00000000 *UND* 00000000 bx_magic
|
||||
00000000 *UND* 00000000 lzma_stack_adjust
|
||||
00000000 *UND* 00000000 lzma_u_len_hi
|
||||
00000000 *UND* 00000000 lzma_u_len
|
||||
00000000 *UND* 00000000 lzma_c_len_hi
|
||||
00000000 *UND* 00000000 lzma_c_len
|
||||
00000000 *UND* 00000000 lzma_properties_hi
|
||||
00000000 *UND* 00000000 lzma_properties
|
||||
00000000 *UND* 00000000 reloc_size
|
||||
00000000 *UND* 00000000 original_ss
|
||||
00000000 *UND* 00000000 original_sp
|
||||
@@ -242,6 +249,17 @@ OFFSET TYPE VALUE
|
||||
00000005 R_386_PC8 NRV2EEX2
|
||||
00000012 R_386_PC8 NRV2EEX9
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_DEC00]:
|
||||
OFFSET TYPE VALUE
|
||||
00000005 R_386_16 lzma_stack_adjust
|
||||
00000013 R_386_16 lzma_u_len_hi
|
||||
00000017 R_386_16 lzma_u_len
|
||||
00000022 R_386_16 lzma_c_len_hi
|
||||
00000026 R_386_16 lzma_c_len
|
||||
00000031 R_386_16 lzma_properties_hi
|
||||
00000038 R_386_16 lzma_properties
|
||||
0000003e R_386_PC16 LZMA_DEC10
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_DEC10]:
|
||||
OFFSET TYPE VALUE
|
||||
000000e5 R_386_PC16 LZMA_DEC99
|
||||
|
||||
Reference in New Issue
Block a user