When trying to run the flat assembler, DOS version (FASM.EXE) it crashes immediately, yields the above message in a windows error box, and it aborts vDOS (64 bit) instantly. This is with - or without - first running the DPMI server, CWSDPMI, that FASM relies upon.
Any hint of why this is happening and how to fix the issue if possible ?
I have not investigated in depth, but by the by, I'm finding the vDOS by itself is providing EMS, apparently EMS 3.2 *only*. That might be incompatible with the CWSDPMI :=(
Can the built in EMS 3.2 "board" be removed from vDOS ?
The address/value of the CR3 register must be 4K page aligned, so vDos exits with this error if a program tries to write a non-aligned value to it. EMS memory is always provided, only in previous versions you could turn this off.
FASM is also available as a genuine Windows program, why then run it on an emulated PC/DOS Eventually you could try DOSBox.
Hi Jos ! > The address/value of the CR3 register must be 4K page aligned, so vDos exits with this error if a program tries to write a non-aligned value to it. Sure, but why does this condition happen in vDOS ? It never happens in DOS running on real "metal".
>FASM is also available as a genuine Windows program, why then run it on an emulated PC/DOS? - However isn't vDOS supposed to run serious DOS programs, such as FASM ?
> Eventually you could try DOSBox. - Isn't DOSBox, precisely, supposed to be for running GAMES (as opposed to "serious" DOS programs. Cf. previous point ;=)
Anyway I'm just reporting what I found doing casual tests. Never mind if you're not interested in digging deep inside the particular problem re FASM. Still it raises the question , does CWSDPMI-extended programs (other than FASM then) usually run well or at all in vDOS ? What about other "extenders" ? HXDOS ?
(Edited, to add) : re. DOSBOX, precisely, the combo : CWSDPMI + FASM was reported to work on it, by a person named Rugxulo writing to some DOS-oriented news group a couple days ago. I don't have DOSbox myself, but generally I would trust Mr Rugxulo who is an active tester of FreeDOS and all DOS things in general. [later edited:] I've just confirmed CWSDPMI (and FASM) run fine in a "vanilla" DOSBOX, this seems to point to some specific bug or regression in the current vDOS ...
Perhaps real CPU’s ignore the offset if found in the address. vDos is intended to run serious programs, though end-user programs that survived and still being used. It doesn’t emulate the PC hardware to a level like DOSBox does.
Don’t know about CWSDPMI or HXDOS extended programs still in use. Only Phar Lap (FoxProX) and DOS/16M (several) that are supported.
> Perhaps real CPU’s ignore the offset if found in the address. - Indeed ! Not "perhaps" ° ! If vDOS doesn't, it is clearly a "feature" (== bug :=) in vDOS CPU emulation :=(
° From Intel's official manual : CR3 — Contains the physical address of the base of the paging-structure hierarchy and two flags (PCD and PWT). Only the most-significant bits (less the lower 12 bits) of the base address are specified... the lower 12 bits of the address are assumed to be 0. °° In addition, note that since the 80486 (!) some of those 12 lowest CR3 bits ARE in use by the processor (PCD, PWT, for page-level cache control... maybe more on newer X86-64 architecture). For vDOS emulation purposes you MUST ignore those bits. Absolutely.