Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

32-bit MSDOS (Announce)

posted by kerravon E-mail, Ligao, Free World North, 02.07.2021, 15:19

> > I think this is the fundamental point at which
> > I diverge - I am interested in environments
> > that are even less capable than Win95. I'm
> > looking for the minimal environment required
> > to write a "hello world" Pascal program.
>
> That's very minimal, as we support many embedded boards, and even targets
> like ZX Spectrum/QL are more complex than that.

Ok, if you support the Amiga too, I don't see
why PDOS/386 can't be a target too.

> > Surely if this ancient environment is still supported,
> > then PDOS/386 is just a slight variation of this plus
> > Win32, and if you do that as a target, you will pick
> > up Win95 et al too.
>
> As with all targets, who will do the work is the core point. This is why
> some recent "old" targets like 16-bit dos and windows, Amiga and ZX
> Spectrum are alive, and the old majority targets Dos and Win9x are almost
> dead.

Ok, fair enough.

I am indeed interested in getting it to run
on PDOS/386 and then instantly getting Win95
etc too.

> But yeah, doing a native port to your own api seems the most prudent
> direction. You could go for either dos or windows, but the dos port
> is more simple.

When you say "my own API" - what do you mean?
I support a subset of standard Win95 kernel32.dll
and a subset of standard Win95 msvcrt.dll.

If by "my own API" you mean my vision of 32-bit
MSDOS, I don't see a reason to tie myself down
to that when I can pick up Win95 for free.

If you mean that the MSDOS API is much nicer,
I agree with that too, if you wrap the INT 21H
calls with something like PosOpenFile() that
does an INT 21H (16-bit or 32-bit), but you can
equally well make PosOpenFile() simply call
Windows CreateFile().

> Compiler is less of a problem. Linker more likely.

The compiler is designed to read some text files
and output a binary file.

The linker is designed to read some binary files
and output a binary file.

How are either of these things system-specific?

Anyway, I downloaded and installed it on my
Win 10 machine and had great success.


C:\devel\develop>type world.pas
program world;

begin
writeln('Hello, World')
end.

C:\devel\develop>fpc world.pas
Free Pascal Compiler version 3.2.2 [2021/05/15] for i386
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling world.pas
Linking world.exe
5 lines compiled, 0.1 sec, 28224 bytes code, 1316 bytes data

C:\devel\develop>world
Hello, World

C:\devel\develop>objdump -p world.exe | grep -i dll
DllCharacteristics 00000000
vma: Hint Time Forward DLL First
DLL Name: kernel32.dll
DLL Name: oleaut32.dll
DLL Name: user32.dll

C:\devel\develop>


I don't support those last 2 DLLs on PDOS/386,
but it is good to see that there is no equivalent
of cygwin.dll in there.

And I suspect that those two DLLs that I don't
support could be filled with stubs and my
"hello world" won't exercise them.

But ultimately I'd rather see just msvcrt.dll
showing up.

What is the quickest technical path to changing
those 3 DLLs into a single msvcrt.dll? With the
goal of just running that world.pas program
above. Or is there a technical barrier? I doubt
that there is a technical barrier to that when
there is no technical barrier to the Amiga.

BFN. Paul.

 

Complete thread:

Back to the forum
Board view  Mix view
22632 Postings in 2109 Threads, 402 registered users, 386 users online (1 registered, 385 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum