📄 changes.txt
字号:
Updates Log File
****************
(for internal use only, also supplied with beta versions of the DOS Extender)
-------------------------------------------------------------------------------
Updates made to DOS/32 Advanced DOS Extender since version 7.0[SP1]
===================================================================
1) \KERNEL\int31h.asm :
fixed bug in INT 31h function 0503h, when in some cases the contents of
the memory block being reallocated were not copied to the new location
(actually the whole function is rewritten)
2) \CLIENT\config.asm :
"cfg_env_nowarn" modified to support several warning codes for a single
/NOWARN parameter (eg /NOWARN:9001,9003,9004)
3) overall changes :
+ minor changes in alignment of certain routines (Align xx removed in
many places)
+ minor changes in comments of certain parts of the code
Updates made to DOS/32 Advanced DOS Extender since version 7.0
==============================================================
1) \KERNEL\int31h.asm :
fixed bug in INT 31h handler function 0205h, when the DOS Extender
failed to update the internal IRQ redirection buffer for IRQs 8..15
Updates made to DOS/32 Advanced DOS Extender since version 6.00
===============================================================
1) \dos32a.asm :
added check to see whether an external DPMI is in place before calling
"restore_pit" function
2) \KERNEL\int31h.asm :
DPMI function 0001h, free selector, will now fail any call which tries
to free the CS (kernel) or SS (current stack) selectors
3) \CLIENT\int21h.asm :
function 4Ch will free the ZERO selector before exiting to DOS
4) \loadlc.asm :
some improvements in the LC-style file format loader, the uncompressed
Objects are loaded slightly faster
5) \CLIENT\config.asm :
added code to check if the DOS Extender was spawned from STUB/32C,
setting "sys_misc" bit 0 to 1 (for internal use only)
6) revised alignment of certain subroutines in both CLIENT and KERNEL
7) increased the size of internal stack from 1KB to 2KB
8) increased the maximum amount of loadable Objects from 32 to 64
9) \kernel.asm :
\KERNEL\intr.asm :
\KERNEL\int31h.asm :
added support for Performance Counters: INT, IRQ, IRQ Callback and
Callback. Also added new function 09h through ADPMI Extensions (0A00h)
to obtain access to the Counters
10) \CLIENT\int21h.asm :
improved error checking in functions 0FF95h and 0FF97h: they will now
fail when allocating 0 bytes or >1MB
11) \dos32a.asm :
\CLIENT\data.asm :
\KERNEL\init.asm :
added warning (9006) "incompatible version of DOS/32A already running"
issued when the parent and the child applications are running under
different versions of DOS/32A (ie when spawning), which prevents
the child to share the extended memory with the parent application
12) \CLIENT\data.asm :
\CLIENT\strings.asm :
new environment option (NOWARN:xxxx) to disable particular warnings,
ie NOWARN:9003
13) \dos32a.asm :
\kernel.asm :
added code to remove DOS/32A DPMI Kernel when running under an external
DPMI host. DOS/32A will move its Client code overwriting the built-in
DPMI kernel when the system software is detected to be DPMI, freeing
up as much as 10KB of DOS memory. Can be turned off by setting bit 5
of "_misc_byte2" to 1 (undocumented, shouldn't be used by the user)
14) \CLIENT\misc.asm :
DTA and Mouse Shape Buffer are allocated on top of stack instead of in
DOS memory, avoids memory fragmentation
15) \dos32a.asm :
\CLIENT\misc.asm :
\CLIENT\debug.asm :
included support for handling of exceptions 0, 6, 13 and 14 under
external DPMI (full machine state is reported). DOS/32A will now also
report where the exception came from in the exception listing, by
specifying "KERNEL" for ADPMI kernel, "CLIENT" for DOS/32A Client,
"APP/32" for the currently running application and "APP/??" if the
exception's origin is unknown
16) \dos32a.asm :
\CLIENT\data.asm :
\CLIENT\debug.asm :
added code to support applications with no stack set up by the linker
(eg VxD produced by MSVC 5.0 Link)
17) \dos32a.asm :
\CLIENT\data.asm :
added new warning (9007): "no stack, using default 64K" - DOS/32A will
provide the default 64KB stack for castrated LE applications (eg VxDs)
Note: the VxD linked applications won't be officially supported, MSVC
includes exports (why?) which are not supported by DOS/32A
18) \CLIENT\int21h.asm :
extended INT 21h / AH=31h, Go TSR function: DOS/32A will calculate
the memory to reserve by adding the size of the DOS Extender to the
value passed in DX, eg: "KERNEL+CLIENT+STACK+INTBUF+DPMIBUF" + DX,
(normally the DX would be 0)
Note: the application shouldn't be loaded into DOS memory, as it
will be lost, ie using Object Loading Scheme #1 is a no-no
19) \kernel.asm :
\KERNEL\misc.asm :
added variable "id32_tsrmode_id". When a copy of DOS/32A is going TSR
it will disable acknowledgement of INT 21h / AX = 0FF88h ID-call.
This will not allow other copies of DOS/32A to share memory with the
TSR (the TSR should be configured to allocate only as much ext. memory
as it needs)
20) removed check for SS:ESP=0 in the loaded application, removed warning
9007 - there is no point in supporting VxDs
21) \CLIENT\int21h.asm :
fixed bug in INT 21h, AH=40h (Write to file) function when DOS/32A
would crash if writing to a disk /w no free space left
22) reduced the default number of pagetables for physical memory mapping
from 4 to 2 (= 8MB)
23) \CLIENT\data.asm :
\CLIENT\debug.asm :
\KERNEL\int31h.asm :
removed check for invalid limits. DOS/32A will unconditionally perform
auto-correction of selector's limit passed down to DPMI func. 0008h
24) \dos32a.asm :
reduced the default size of DOS Transfer Buffer from 16KB to 8KB
25) \CLIENT\data.asm :
\CLIENT\config.asm :
added environment option /NOC to disable the copyright banner (only)
26) dos32a.asm :
\CLIENT\misc.asm :
added full "Year 2000" (Y2K) compliance
27) \CLIENT\config.asm:
fixed bug in environment configuration processing routine, it would
go beyond DOS32A= line and would read other's config (which was bad)
28) dos32a.asm :
\CLIENT\misc.asm :
\CLIENT\int21h.asm :
improved CTRL-C handling, especially under windows which seemed to
not handle it correctly in the default real mode handler (bad DOS
emulation?)
DOS/32A Client will install its own INT 23h handler, and break to
INT 21h/4Ch when the handler sets an internal flag
29) \KERNEL\init.asm :
removed support for Bottom-Up memory allocation scheme under Clean
(INT 15h) system software; instead, improved INT 15h Top-Down
allocation scheme which will properly function when going TSR
30) \KERNEL\init.asm :
fixed an ancient bug in the VCPI initialization routines; in general
the VCPI init has been greately improved
Updates made to DOS/32 Advanced DOS Extender since version 5.00
===============================================================
1) \CLIENT\data.asm :
\KERNEL\detect.asm :
removed fatal error (0008): "config header corrupted", it was never
used unless the exec was linked incorrectly
2) \KERNEL\detect.asm :
\KERNEL\init.asm :
added direct support for allocation of >64MB of memory through XMS
server; note: XMS spec. 3.0 is required for allocation of >64MB,
otherwise the DOS Extender will use the standard XMS functions
3) \loader.asm :
minor fix - empty objects (w/ size=0) are "loaded" at address 0, can
be verified by turning on the Verbose Mode
4) \CLIENT\debug.asm :
DOS/32A will now automatically display the *unrelocated* address of
the faulting instruction, no matter from which segment the exception
was thrown, as opposed to the earlier versions which could show the
unrelocated address only for the Object with entry point in it
5) \KERNEL\int31h.asm :
added support for DPMI functions 0602h and 0603h, they return with
CF clear without performing any kind of action
6) \CLIENT\config.asm :
added code to support configurable stubs; the new STUB/32A can now
be configured as if it were a DOS Extender executable!
INT 21h / AX=0FF87h is used to obtain configuration, custom INT 21h
handler is automatically deinstalled by STUB/32A after the first call
to this function
7) loader.asm :
loadlc.asm : (new)
at last, the LC-style Compressed Linear Executable format is supported
7a) LC Requirements: at least 8KB large DOS Transfer Buffer, some extended
memory (Encoded LC Objects and LC Fixups are loaded high and decoded
into destination memory, which can be located Low or High)
NOTE: LC-execs require twice as much memory as the original application
when being loaded!
8) \CLIENT\data.asm :
added fatal error (4007): "not enough DOS Transfer Buffer space";
when loading LC-style execs the size of DTB must be at least 8KB
9) \CLIENT\loadlc.asm :
decompression routine optimized for speed (works about 50% faster)
10) \CLIENT\int21h.asm :
added new function, 0FF8Dh, decode source data
11) \loader.asm :
the loader will check if 32bit code/data selector is already allocated
for respective 32bit Objects, and skip allocation in case they are
12) \CLIENT\misc.asm :
with Verbose Mode on the DOS Extender will correctly report the
amount of available DPMI memory when >64MB (the number will be shown
in KB when less than 64MB is present and in MB when above 64MB)
13) \CLIENT\debug.asm :
corrected "custom error" handler, also run-time (6004) will show handle
of the corrupted block
Updates made to DOS/32 Advanced DOS Extender since version 4.30
===============================================================
1) \loader.asm :
the loader was not able to load Objects with size of zero. It reported
"not enough extended memory..."!
2) \CLIENT\debug.asm :
\CLIENT\data.asm :
changed the format of reported exceptions: instead of reporting DPL
the DOS Extender will report segment type as USE??/Codedata
3) \KERNEL\int31h.asm :
fixed a little problem with 0800h/0801h DPMI functions when the last
mapped page was not marked as last
4) \KERNEL\int31h.sam :
DPMI function 0008h - Set Segment Limit - now reports invalid limits
to the client, instead of application, which results in a new run-time
error (6006): selector limit check failure
5) some functions have been moved from: dos32a.asm to \CLIENT\misc.asm
6) \CLIENT\misc.asm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -