Is there somebody out there (Grossibaer?) who have any knowledge how EMS
works in DOS and with GEOS?
I have managed to get EMM386.EXE to work with GEOS, in this case,
Breadbox Ensemble. However the keyboard input does not work in Ensemble.
Mouse input works excellent and Ensemble is very stable. The keyboard
input works in FreeDOS. Any hints?
BR,
Hans
I have no idea why the keyboard isn't working. GEOS (afaik) uses the
keyboard hardware rather than getting keystrokes from DOS. So it might
be that the EMS driver somehow prevents GEOS from getting the interrupt
for a keypress. Just a guess.
EMS in general is a complex thing.
In its original way (and the only way GEOS cares of) it was an ISA card
with memory on it which could be accessed through 4 windows of 16K size
in the upper memory area. Just like a video card, which has also some MB
and is accessed through some windows in the 0xa0000 area.
The software askes the EMS driver to reserve a certain amount of memory
and then asks it to put a 16K chunk of this reserved memory in one of
the four 16K windows. The card then was routing the processors address
to the internal address of the requested memory chunk.
GEOS uses 3 of the 4 16K windows as stationary memory, to increase the
conventional memory by 48K. The fourth window is used for swapping
(select a swap memory chunk and copy data from or to it).
I think this is all GEOS does with EMS.
SInce the actual EMS drivers don't have a 'real' EMS card but a virtual
one located in normal system memory, they have to put the processor in
V86 mode. This way, the EMS driver is able to reorder system memory in 4
KB chunks without the executed code knowing what is where physically.
But as a side effect, DMA transfers (which are bound to physical
addresses and therefore do no tknow of the virtual reordering) would go
wrong. Therefore the EMS driver needs to intercept access to I/O devices
(such as the DMA controller or other bus-mastering cards), so it can
translate the virtual addresses given by the software into the physical
ones.
And since this means intercepting all I/O transfers, it might be that an
incompatibility in this code prevents GEOS from accessing the keyboard
controller.
Also, the IRQ table where GEOS enters itself for getting the keyboard
IRQ is as virtual as everything else in V86 mode. So maybe some internal
system key check kicks GEOS out of the virtual table again by accident -
while it doesn't do any harm in real mode.
If you press CTRL-ALT-DEL while the keyboard isn't working, does this
reset the system? Or does it nothing?
In any case, there seems to be still something to do for the FreeDos
developers ;)
Grossibaer
Hans Lindgren schrieb:Hi all, Is there somebody out there (Grossibaer?) who have any knowledge how EMS works in DOS and with GEOS? I have managed to get EMM386.EXE to work with GEOS, in this case, Breadbox Ensemble. However the keyboard input does not work in Ensemble. Mouse input works excellent and Ensemble is very stable. The keyboard input works in FreeDOS. Any hints?I have no idea why the keyboard isn't working. GEOS (afaik) uses the keyboard hardware rather than getting keystrokes from DOS. So it might be that the EMS driver somehow prevents GEOS from getting the interrupt for a keypress. Just a guess.
EMS in general is a complex thing. In its original way (and the only way GEOS cares of) it was an ISA card with memory on it which could be accessed through 4 windows of 16K size in the upper memory area. Just like a video card, which has also some MB and is accessed through some windows in the 0xa0000 area. The software askes the EMS driver to reserve a certain amount of memory and then asks it to put a 16K chunk of this reserved memory in one of the four 16K windows. The card then was routing the processors address to the internal address of the requested memory chunk. GEOS uses 3 of the 4 16K windows as stationary memory, to increase the conventional memory by 48K. The fourth window is used for swapping (select a swap memory chunk and copy data from or to it). I think this is all GEOS does with EMS.
SInce the actual EMS drivers don't have a 'real' EMS card but a virtual one located in normal system memory, they have to put the processor in V86 mode. This way, the EMS driver is able to reorder system memory in 4 KB chunks without the executed code knowing what is where physically. But as a side effect, DMA transfers (which are bound to physical addresses and therefore do no tknow of the virtual reordering) would go wrong. Therefore the EMS driver needs to intercept access to I/O devices (such as the DMA controller or other bus-mastering cards), so it can translate the virtual addresses given by the software into the physical ones. And since this means intercepting all I/O transfers, it might be that an incompatibility in this code prevents GEOS from accessing the keyboard controller. Also, the IRQ table where GEOS enters itself for getting the keyboard IRQ is as virtual as everything else in V86 mode. So maybe some internal system key check kicks GEOS out of the virtual table again by accident - while it doesn't do any harm in real mode.
If you press CTRL-ALT-DEL while the keyboard isn't working, does this reset the system? Or does it nothing?
In any case, there seems to be still something to do for the FreeDos developers ;)
> > In any case, there seems to be still something to do for the FreeDos
> > developers ;)
> >
> >
> Yep, I think so, too, but they doesn't, as I have been encouraged from
> the EMS developers in FreeDOS to contact Breadbox to fix this problem
> (in GEOS). Well, I see this as an incompatibility problem in FreeDOS
> as this problem shows in only in FreeDOS, and does not show in any
> others DOS:es, with GEOS or FreeDOS Edit. OTOH, I can only report the
> problems to the developers, if they don't listen, I can spend my time
> in a better way, the problem will bounce back to them sooner or later.
Well, tell them that this bug affects their very own edit program. (does
it run on any other DOS without the problem you didn't describe more
detailed?)
Also tell them that they start to act like Microsoft in their behavior
to react on bugreports.
Maybe that wakes them up ;)
Grossibaer
Hans Lindgren schrieb:In any case, there seems to be still something to do for the FreeDos developers ;)Yep, I think so, too, but they doesn't, as I have been encouraged from the EMS developers in FreeDOS to contact Breadbox to fix this problem (in GEOS). Well, I see this as an incompatibility problem in FreeDOS as this problem shows in only in FreeDOS, and does not show in any others DOS:es, with GEOS or FreeDOS Edit. OTOH, I can only report the problems to the developers, if they don't listen, I can spend my time in a better way, the problem will bounce back to them sooner or later.Well, tell them that this bug affects their very own edit program. (does it run on any other DOS without the problem you didn't describe more detailed?)
Also tell them that they start to act like Microsoft in their behavior to react on bugreports. Maybe that wakes them up ;)
Grossibaer
BR,
Hans
Hans Lindgren schrieb:Hi all, Is there somebody out there (Grossibaer?) who have any knowledge how EMS works in DOS and with GEOS? I have managed to get EMM386.EXE to work with GEOS, in this case, Breadbox Ensemble. However the keyboard input does not work in Ensemble. Mouse input works excellent and Ensemble is very stable. The keyboard input works in FreeDOS. Any hints?I have no idea why the keyboard isn't working. GEOS (afaik) uses the keyboard hardware rather than getting keystrokes from DOS. So it might be that the EMS driver somehow prevents GEOS from getting the interrupt for a keypress. Just a guess.
> > Also tell them that they start to act like Microsoft in their
> > behavior
> > to react on bugreports.
> > Maybe that wakes them up ;)
> >
> >
> I have made contact with Michael Devore (one of the developers) and
> his biggest problem for the moment is to get Ensemble Lite to work
> with FreeDOS. I have sent him a GEOS.INI file that contains all the
> necessary changes to make it work with FreeDOS. Hope this will work.
Good job. Persistent complaints sometimes work ;)
I guess the FreeDos edit program is now workine too with FreeDos EMM386?
That's very good news. Now we have a DOS that could be preconfigured for
a GEOS installation, or even a complete GEOS isntall disk on a plain
system.
What are his problems with Ensemble Lite?
Grossibaer
Hans Lindgren schrieb:Also tell them that they start to act like Microsoft in their behavior to react on bugreports. Maybe that wakes them up ;)I have made contact with Michael Devore (one of the developers) and his biggest problem for the moment is to get Ensemble Lite to work with FreeDOS. I have sent him a GEOS.INI file that contains all the necessary changes to make it work with FreeDOS. Hope this will work.Good job. Persistent complaints sometimes work ;) I guess the FreeDos edit program is now workine too with FreeDos EMM386?
That's very good news. Now we have a DOS that could be preconfigured for a GEOS installation, or even a complete GEOS isntall disk on a plain system.
What are his problems with Ensemble Lite?
BR,Grossibaer
> > I guess the FreeDos edit program is now workine too with FreeDos
> > EMM386?
> >
> >
> Yes it works. As you suggested in a previous thread, it was the
> keyboard interrupt which EMM386 prevented
> Breadbox Ensemble to access. FreeDOS Edit works also fine, don't know
> exactly the problem with that, the
> NOEMS parameter seems to be problematic with Edit, but since I am not
> planning to use the NOEMS parameter,
NOEMS can mean several things. Depending on the implementation it can
1) disable the EMS functionality (No EMS manager reported) while still
putting the computer into V86 mode and enabling UMBs and maybe swapping
out part of the BIOS ROMs. This causes some programs to assume that they
run in real mode instead of V86 mode (mode detection done by checking
for EMS manager present). This can cause problems when programs do
things not possible in V86 mode, but also allows programs to run which
refuse to run in V86 mode normally, provided that the EMM386 driver
catches possible problems with DMA transfers or other I/O related things
that require special attention in V86 mode.
2) Working normally except that no dedicated page frame is reserved in
UMB area, so programs can use EMS only by mapping it into their normal
working space (for the EMS driver, it makes no difference whether the
memory is mapped into the page frame or elsewhere in the first MB). This
frees up 64KB additional UMB but programs need to be able to handle this
(reserving their own area where the EMS memory can be mapped to).
GEOS uses 48KB of the page frame for heap usage (virtually extending the
conventional memory by 48 KB) while requiring 16kB as mountpoint to swap
the EMS swap memory blocks in and out.
> > That's very good news. Now we have a DOS that could be preconfigured
> > for
> > a GEOS installation, or even a complete GEOS isntall disk on a plain
> > system.
> >
> Yes, this is a relief. I will wait to add this to the bootdisk, there
> will be a new one later on. Now I am waiting for
> Defrag, and I have also to repair some mistales I did by skipping some
> files, I will add them to the new release.
> The new version of EMM386.EXE will be released at the FreeDOS site if
> it's not already.
Fine. Next stop: the complete GEOS installer for new (and/or virtual)
machines.
> > What are his problems with Ensemble Lite?
> >
> Michael needed this in his GEOS.INI under [system]:
>
> fs = ntfat.geo
> primaryFSD = ntfat.geo
Oh, that one. Well, it was the same for NDO2k already.
Grossibaer
GEOS uses 48KB of the page frame for heap usage (virtually extending the conventional memory by 48 KB) while requiring 16kB as mountpoint to swap the EMS swap memory blocks in and out.
That's very good news. Now we have a DOS that could be preconfigured for a GEOS installation, or even a complete GEOS isntall disk on a plain system.Yes, this is a relief. I will wait to add this to the bootdisk, there will be a new one later on. Now I am waiting for Defrag, and I have also to repair some mistales I did by skipping some files, I will add them to the new release. The new version of EMM386.EXE will be released at the FreeDOS site if it's not already.Fine. Next stop: the complete GEOS installer for new (and/or virtual) machines.
What are his problems with Ensemble Lite?Michael needed this in his GEOS.INI under [system]: fs = ntfat.geo primaryFSD = ntfat.geoOh, that one. Well, it was the same for NDO2k already.
Hans Lindgren schrieb:
That's very good news. Now we have a DOS that could be preconfigured for a GEOS installation, or even a complete GEOS isntall disk on a plain system.Yes, this is a relief. I will wait to add this to the bootdisk, there will be a new one later on. Now I am waiting for Defrag, and I have also to repair some mistales I did by skipping some files, I will add them to the new release. The new version of EMM386.EXE will be released at the FreeDOS site if it's not already.Fine. Next stop: the complete GEOS installer for new (and/or virtual) machines.
Defrag is really a mess at the moment. Needs days in QEmu and crash badly
the filesystem. But have a look to the upcoming versions.
Andreas
BR,
Hans
> Well, I think that Grossibaer meant to have a complete installation
> based on FreeDOS with GEOS. That is probably doable, but there are some
> problems to get around. Like partitioning, format install of DOS and
> then GEOS. To get these to play together and then some reboots now and
> then......well that is an issue.
>
> BR,
> Hans
Um, if there are ports of the gnu partitioning tools then you can
automate the partitioning. Formating is easy but there are better tools
for formating like oformat.com etc... I do have some experience with
such stuff (assetet unattended installation of nt4 with temporary data
on the unformated partition and re-reading of it before formating as a
rebot is needed after partittioning under DOS). Well and then the
setupdisk could be a tiny lunix disk which has benefits in not requiring
a reboot after partitioning changes etc (this is what I do for our
current settup for xp machines).
Dom
--
C:\>