📄 changes.txt
字号:
the Null-Pointer Protection now supports read protection as well as
write
7) the original environment selector allocated by external DPMI is now
saved at startup and restored on exit
8) \dos32a.asm :
INT 21h / AH=whatever - Disk Reset - has been removed
9) \loader.asm :
fixed problem with LX-style exec format and WATCOM linker v11.0,
the Loader now ignores "Internal fixups applied" bit in LX header
10) \CLIENT\int21h.asm :
function 4Bh has been rewritten, the DOS Buffer requirement is now
1KB instead of 4KB
11) \CLIENT\data.asm :
the fatal error (3005) now reported as "error in app exec" (error
at link-time bit set)
12) \CLIENT\int21h.asm :
the protected mode interrupts are now restored upon client's exit
in function 4Ch
13) \CLIENT\int21h.asm :
function 4Bh restores original PM ints before spawning and reinstalls
client's ints after
14) \CLIENT\misc.asm :
"verbose_showstartup" now lists PSP_Sel, Env_Sel and Env_Seg
15) \KERNEL\int31h.asm :
DPMI functions 0800h/0801h are now supported in the shareware version
16) \CLIENT\int21h.asm :
new functions for allocation of DOS memory: 0FF94h...0FF97h
17) \loader.asm :
no extended memory is now required to run a protected mode program,
the fixups are first loaded in DOS memory, only if not enough, they're
loaded high
18) \CLIENT\misc.asm :
support for Null-Pointer Protection on reads has been removed, it
conflicted with startup/exit code
19) \KERNEL\misc.asm :
fixed problem with spawning under Clean/XMS/VCPI systems when the
DOS Extender crashed after spawning to an application two or more
times, the actual bug was in the exit Kernel code
20) \CLIENT\int21h.asm :
fixed bug in function 40h - write to file - when truncation of files
(using ECX = 0) didn't work properly
21) \KERNEL\init.asm :
\KERNEL\exit.asm :
\KERNEL\misc.asm :
the spawning techniques have been redesigned and improved
21a) \KERNEL\int31h.asm :
the memory management functions 05xxh have been redesigned and now
offer improved performance and 99% safe protection against extended
memory blocks overwritng
21b) \KERNEL\int31h.asm :
05xxh functions now keep track on from which process the memory is
allocated (when spawned & sharing memory), upon process' termination
all memory blocks associated with the process are freed automatically
22) \CLIENT\debug.asm :
with VERBOSE mode ON the critical handler will now list the Module name
and Process_ID
23) \dos32a.asm :
the call to "restore_pit" after protected mode initialization has
been removed
24) \dos32a.asm :
the default size of DOS transfer buffer is now 16KB instead of 64KB
25) \KERNEL\int31h.asm :
corrected DPMI function 050Ah - Get base and size of memory block,
the base reported now points to the actual address of memory block,
not to the header
26) \KERNEL\int31h.asm :
minor changes in 05xxh functions, the alignment of memory blocks is
now PARA (16 bytes)
27) \CLIENT\int21h.asm :
new function 0FF8Fh to resize DOS transfer buffer, won't be documented
though
28) \CLIENT\int21h.asm :
support for Win95/DOS 7.xx long filenames is included, DOS functions
71xxh are now extended
29) \CLIENT\int21h.asm :
selectors allocated for loaded Objects and the "_sel_zero" selector
are now deallocated upon DOS Extender's exit in function AH=4Ch
30) the "restore_pit" is now called on initialization only for
Process_ID = 0 processes
31) \KERNEL\init.asm :
the "pm32_maxextmem" is now set to zero when process is spawned from
another DOS/32A process (ID32 check == true); less flexibility, but
much more safe
32) \KERNEL\intr.asm :
INT 0Fh (IRQ 7) was not redirected from "int_matrix" to either
"irq_normal" or "irq_tester" (it was preserved, and hell I can't
remember why...)
33) loader.asm :
\CLIENT\data.asm :
a new warning (9005): "Object #%d contains no data or code" has been
added
34) \KERNEL\int31h.asm :
added two new ADPMI API functions: 07h and 08h to get/set critical
handler routine address, *MUST* be 16:16 sel:offs
35) \dos32a.asm :
\CLIENT\misc.asm :
added support for "Focusing on specified VM" under Windows, when it
is turned on, Win will run the DOS box VM in full screen
36) \CLIENT\int21h.asm :
mouse ISR handler is now automatically uninstalled on DOS Extender's
exit, INT 33h / AX=000Ch is called with 0:0 in function AH=4Ch
37) \CLIENT\data.asm :
\CLIENT\strings.asm :
followed prof. Seppo Mustonen advice, well, in a way ;-)
38) \loader.asm :
\CLIENT\data.asm :
\CLIENT\int21h.asm :
added new extended DOS function 0FF8Eh, Get Pointer to Client Vars
and Pointer to Loaded Application Sel/Base Tables, will not be
included in DOS/32A documentation
39) \KERNEL\int31h.asm :
function 0EEFFh now returns EAX with "D32A" ID-string instead of
"PMDW", this function has been pretty much standardized and should
be used for effective detection of currently running Extender:
PMODE/W: "PMDW"
WDOSX: "WDSX"
DOS/32A: "D32A"
40) \CLIENT\misc.asm :
fixed a little problem when DOS/32A was not able to start pure LE/LX
applications, ie Linear Exec files not bound to any stub
Very special thanks to:
- Kimmo Vehkalahti of Survo Systems Oy for all the complains :-) and for
working so hard along with me to get this version released
and to
- David Lopez for exclusive beta testing and lots of suggestions
Updates made to DOS/32 Advanced DOS Extender since version 4.00
===============================================================
1) \KERNEL\int31h.asm :
fixed bug in function 0500h when storing memory info in DS: selector
instead of ES:
2) \CLIENT\strings.asm :
fixed bug in "prints" (dec) function when it could not write out
numbers larger than 0x8000 because of CWD instruction which has
been replaced with XOR DX,DX
Updates made to DOS/32 Advanced DOS Extender since version 3.00
===============================================================
1) \KERNEL\detect.asm :
adjusted CPU_detect routine, check for 8086 is removed
2) \CLIENT\int21h.asm :
DOS function 0Ah (input string) is removed
3) \CLIENT\data.asm :
adjusted some strings
4) \CLIENT\data.asm :
changed error code (4004): not enough ext mem to load app fixups
5) \loader.asm :
removed support for Slow Object Loading Scheme
6) \CLIENT\int21h.asm :
added code to restore original protected mode INT 21h in
DOS function 4Ch
7) \KERNEL\int31h.asm :
updated DPMI API function 02h - ECX, EDX ain't used no more
8) \dos32a.asm :
used DOS function 0Dh to flush disk buffers
9) \CLIENT\misc.asm :
updated subroutine "check_inttab"
10) \CLIENT\misc.asm :
updated subroutine "set_descriptor"
11) \CLIENT\misc.asm :
updated subroutine "tone"
12) \CLIENT\misc.asm :
updated subroutines "search_for_mz" and "search_for_le"
13) \loader.asm :
rewritten loader LE and LX routines, page shift is now supported
for LX-style applications
14) \KERNEL\init.asm :
fixed bug that caused no report of errors when protected mode
was not entered successfully, added "jc addr" instruction to
"init_done" subroutine
15) \CLIENT\int10h.asm :
fixed bug in VESA function 4F01h causing CX register not being
passed down to real mode
VESA functions 4F00h and 4F01h are now incorporated into a single
function
16) \CLIENT\int10h.asm :
added new VESA function 4F09h
17) \CLIENT\int10h.asm :
added new VESA function 4F0Ah
18) \CLIENT\int10h.asm :
most of VESA functions have been rewritten
19) \CLIENT\config.asm :
bug fixed - options /QUIET and /PRINT:OFF now disable the copyright
message as well as warnings
20) \KERNEL\exit.asm :
bug fixed - on exit from RAW system with "dos32a_exists" on, the
real mode handler now is not deinstalled and "disableA20" is not
called
21) \CLIENT\int21h.asm :
corrected function 1Ch
22) \CLIENT\int21h.asm :
fixed bug in function 34h
23) \KERNEL\int31h.asm :
fixed a little bug in functions 030xh when the parameters pushed on
protected mode stack were not being copied properly to real mode
stack
24) \KERNEL\int31h.asm :
DPMI Extended API functions 04h and 05h now return default top of
stack in EDI register
25) \KERNEL\intr.asm :
adjusted functions that pass protected mode INT/EXC to vectors
installed by application/user
26) \CLIENT\int21h.asm :
function 4Ch does not restore the environment segment in the PSP
at offset 002Ch, in order to be compatible with external DPMIs
27) \CLIENT\int10h.asm :
VBE function 4F00h has been rewritten to be compatible with graphics
cards that return mode list in the information structure
28) \CLIENT\int21h.asm :
removed code in function 4Ch that restored original INT 21h vector
in protected mode
29) \CLIENT\int21h.asm :
added new extended API functions to allocate DPMI memory via INT 21h
[END OF LOG]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -