Japheth

Germany (South), 30.01.2008, 12:55 |
Jemm v5.7 ... (Announce) |
... fixes 7 bugs. As DOS386 once mentioned, it's somehow surprising that old versions did manage to run at all with all those bugs unfixed yet.
http://www.japheth.de/jemm.html
changes:
- bugfix: the "copy memory" routine wasn't reentrant, making an XMS
"block move" or a call of Int 15h, ah=87h from within an ISR slightly
unsafe.
- bugfix: int 67h, ah=57h returned error 8Ah instead of 93h when a
region exceeded the size of the EMS handle.
- bugfix: int 67h, ah=57h accepted any region type (just 00 and 01 are
valid ones).
- bugfix: int 67h, ax=5701h accepted overlapping EMS regions. Now status
97h is returned.
- bugfix: since v5.61 (support for mappable pages in conventional memory)
option NODYN often failed to make all memory available which was
requested with the MIN=x option.
- bugfix: exception 11h in v86-mode caused a loop in Jemm's exception
handler.
- bugfix: due to an alignment problem the low byte of max. free memory
block for XMS v2 (X2MIN) was 0, as a result the default block size was
65280 (0xFF00) instead of 65535 kB (JemmEx only, bug since v5.64).
- int 67h,ax=5701h, "memory exchange" is now also done with interrupts
enabled if client's interrupt flag is set.
- port 60h access is now trapped only if the keyboard controller's output
port is accessed.
- tool XMSSTAT and source of EMSSTAT added.
Here's a DEBUG script which provides a test-case for the "exception 11" bug:
; test v86 exc 11
; set CR0 AM bit
; set EFL AC bit
; then access stack unaligned
a
mov eax,cr0
or eax,40000
mov cr0,eax
and sp,FFFC
pushfd
pop eax
or eax,40000
push eax
popfd
push ax
push eax
int 3
g=100
q
Interestingly it only crashes in true DOS, in all emulators which I tested it runs without problems. --- MS-DOS forever! |
Steve

US, 30.01.2008, 15:38
@ Japheth
|
Jemm v5.7 ... |
> Interestingly it only crashes in true DOS, in all emulators which I tested
> it runs without problems.
Which DOSes have you tested in? |
Japheth

Germany (South), 30.01.2008, 16:52
@ Steve
|
Jemm v5.7 ... |
> Which DOSes have you tested in?
MS-DOS v7.1 ... which IMO is pretty irrelevant, though, because this piece of code doesn't depend on the OS at all. It should run on MS-DOS v0.1 as well. --- MS-DOS forever! |
sol
31.01.2008, 02:38
@ Japheth
|
Jemm v5.7 ... |
Hrm, so I take it this is a recommended upgrade?  |
Japheth

Germany (South), 31.01.2008, 11:19
@ sol
|
Jemm v5.7 ... |
> Hrm, so I take it this is a recommended upgrade? 
It shouldn't hurt. 1 of the 7 bugs is NOT minor (the "non-reentrant" thing), but still rather unlikely to cause problems. --- MS-DOS forever! |
jassenna
Campinas,SP,Brazil, 08.02.2008, 04:36
@ Japheth
|
Jemm v5.7 ... |
Interestingly, all among Jemmex 5.65-5.69 did work OK for me (am
using 5.69 now), but 5.70 crashes (stops dead) as soon as it finishes
installation.
My computer: 486 DX-50, 16MB RAM, ISA bus. OS: DR-DOS 5.0 .
I install Jemmex in config.sys, with the line (no changes from 5.69):
C:\DEVS\JEMMEX.EXE NORAM NOE801 NOE802 VERBOSE /D=0 NOVME VCPI A20METHOD=FAST
I use a real mode UMB provider installed before Jemmex, whence NORAM. |
rr

Berlin, Germany, 08.02.2008, 09:53
@ jassenna
|
Jemm v5.7 ... |
> I use a real mode UMB provider installed before Jemmex, whence NORAM.
Which UMB provider? --- Forum admin |
Japheth

Germany (South), 08.02.2008, 12:32
@ jassenna
|
Jemm v5.7 ... |
> Interestingly, all among Jemmex 5.65-5.69 did work OK for me (am
> using 5.69 now), but 5.70 crashes (stops dead) as soon as it finishes
> installation.
> My computer: 486 DX-50, 16MB RAM, ISA bus. OS: DR-DOS 5.0 .
> I install Jemmex in config.sys, with the line (no changes from 5.69):
> C:\DEVS\JEMMEX.EXE NORAM NOE801 NOE802 VERBOSE /D=0 NOVME VCPI
> A20METHOD=FAST
> I use a real mode UMB provider installed before Jemmex, whence NORAM.
I just did a brief test on my 80486 with v5.70 and reached the command prompt. So it's not a general problem.
What is the last line Jemm displays? Is it "total/available EMS pages..."?
Btw, what is the /D=0 parameter good for? AFAIK Jemm won't accept it. --- MS-DOS forever! |
jassenna
Campinas,SP,Brazil, 09.02.2008, 04:37
@ Japheth
|
Jemm v5.7 ... |
Response to Robert Riebisch: The UMB provider is HIRAM.EXE .
To Japheth (partial) : /D=0 was a mistake. It is D=0 and from Jemm documentation, should set Jemm DMA buffer to 0 bytes.
Maybe it is some incompatibility between Jemmex and DR-DOS or the specific BIOS in my computer, but it did appear in going from version 5.69 to 5.70 . As for the message, I shall look after disconnecting and report tomorrow.
Regards
JAS |
jassenna
Campinas,SP,Brazil, 10.02.2008, 22:05
@ Japheth
|
Jemm v5.7 ... |
> What is the last line Jemm displays? Is it "total/available EMS
> pages..."?
No. The full message JemmEx 5.70 displays:
JemmEx v5.70 [Jan 30 2008]
Fast A20 method selected
EPROM at c000 size 32.0 kB
System memory found at e800-efff, region might be in use
Using page frame d800
Needed: 48 kB for monitor ,0 kB for UMBs, 0 kB for DMA buffer
I15 total memory 15296 kB
potential/max VCPI memory 15248/15248 kB
20 kB needed for VCPI and EMS handling
XMS memory block for monitor:110000-121000, XMS highest=1000000
Then it stops.
JemmEx 5.69 displays the same message, but for version number and
date, and continues:
JemmEx loaded
Physical start address of EMS pages:11f000
Total/avalable EMS pages: 977/952 (=15632/15232 kB)
Then proceeds to next config.sys statement. |
Japheth

Germany (South), 11.02.2008, 09:10
@ jassenna
|
DMA buffer size 0 causes trouble in v5.70 |
> Then it stops.
I can confirm this. Jemm v5.70 won't work with a DMA buffer size of 0 kB, at least 1 kB must be set. --- MS-DOS forever! |
Rugxulo

Usono, 13.02.2008, 01:54
@ jassenna
|
Jemm v5.7 (HIRAM) |
> Response to Robert Riebisch: The UMB provider is HIRAM.EXE .
This only saves like 1k lower (conventional) memory by loading the memory manager in upper memory instead, right?? (Not so useful, IMO, but whatever.) |
jassenna
Campinas,SP,Brazil, 13.02.2008, 07:03
@ Rugxulo
|
Jemm v5.7 (HIRAM) |
> This only saves like 1k lower (conventional) memory by loading the memory
> manager in upper memory instead, right?? (Not so useful, IMO, but
> whatever.)
I think its principal usefulness is that it provides real, not virtual UMBs, so they are not taken out of extended memory. In new machines, which have more RAM than mine has disk space, this is not important. For me , saving some 80k from extended memory is useful. |
jassenna
Campinas,SP,Brazil, 13.02.2008, 07:09
@ Japheth
|
DMA buffer size 0 causes trouble in v5.70 |
> I can confirm this. Jemm v5.70 won't work with a DMA buffer size of 0 kB,
> at least 1 kB must be set.
Is this a bug ? Or, why did it work in earlier versions and doesn't in 5.70 ? |
Japheth

Germany (South), 13.02.2008, 08:40
@ jassenna
|
DMA buffer size 0 causes trouble in v5.70 |
> Is this a bug ? Or, why did it work in earlier versions and doesn't in
> 5.70 ?
Yes, of course it is a bug (although I think that a DMA buffer size of 0 might cause problems on many systems. Usually one should have at least a DMA buffer of 12 kB to be able to read one track of the FD).
And it worked in previous versions simply because this bug has been introduced in v5.70. In this version, XMS/I15 blockmoves have been made reentrant, which required some changes in page table "management", and the new "manager" obviously isn't as experienced as the old one. But I guess he finally will learn to do his job better.  --- MS-DOS forever! |
Japheth

Germany (South), 25.02.2008, 08:31
@ Japheth
|
Jemm v5.71 ... |
... fixes 2 (minor) bugs which have been reported recently.
- bugfix: DMA buffer size of 0 (D=0) didn't work in v5.70.
- bugfix: JLOAD v5.70 made wrong assumptions about Jemm's TSS location,
which caused JLM sample JCLOCK2 to fail.
http://www.japheth.de/jemm.html --- MS-DOS forever! |