Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2013-09

DOS compiler wiki page: please review

6 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Reinier Olislagers

I decided to start a page for the DOS compiler - as more details become available we can hopefully collect them there.

As usual: additions/corrections welcome, especially by Nikolay ;) - I've added some statements with question marks that I'm not sure about. http://wiki.lazarus.freepascal.org/DOS

Thanks,
Reinier (who's very keen to get another fairly simple cross compiler working using fpcup :) )

Reply by email

Nikolay Nikolov
to Reinier Olislagers
Reinier Olislagers wrote 6 lines
I decided to start a page for the DOS compiler - as more details become available we can hopefully collect them there. As usual: additions/corrections welcome, especially by Nikolay ;) - I've added some statements with question marks that I'm not sure about. http://wiki.lazarus.freepascal.org/DOS

Nice. :)

As you might have seen, I've already started adding information to this page.

Nikolay

Reply by email

greim
to Reinier Olislagers

Hi,

writing a 8086 version of fpc is not so strange as some may think! There are still some 80186 processors around running in embedded systems! These architecture is certified for some applications in industrial and avionik controll.

A good survey over most #186 derivates you may find at:

http://www.cpushack.com/2013/01/12/the-intel-80186-gets-turbocharged-vautomation-turbo186/

For example

http://www.lantronix.com/device-networking/embedded-device-servers/dstni-lx_dstni-ex.html

or

http://www.lantronix.com/device-networking/embedded-device-servers/xchip.html

and used for example in this embedded computer:

http://www.beck-ipc.com/en/products/sc2x/index.asp

This processors are using an own OS called RTOS which is quite nice.

BUT
most of these prcessors are using an extended addressing for using more then 640 kByte, with more address lines. So "old " 8086 programms can only run if they are using only a "small memory" option. With RTOS also the header of the EXE files is slightly modified.
So Borland Pacal 7.01 programs can only runn after some ugly patching. Frank v. Münchow-Pohl has written a small patch program which is decribed here:
http://forum.beck-ipc.com/viewtopic.php?f=7&t=824

Until 3 years ago the AMD 186 was still available, which have been real 80186, but this processor is not produced anymore as far as i know.

So running Pascal programs on these kind of systems is not realy possible anymore. The only option afaik is using teh Paradigm C++ compiler:
http://www.devtools.com/pcpp/compiler.htm
which is quite expensive, an as i was told not so reliable.

Here you will see a list of processirs they are supporting, so i think there is is still a market for the 80(1)86

http://www.devtools.com/pcpp/processors.htm

So my wish list:
fpc for 80186, supporting the new extended addressing and writing the header files for RTOS (see
http://www.beck-ipc.com/en/products/rtos/index.asp) incl. a FPU emulation !

Anny comment welcome.

Markus

Reply by email

Nikolay Nikolov
to greim
greim wrote 14 lines
Hi, writing a 8086 version of fpc is not so strange as some may think! There are still some 80186 processors around running in embedded systems! These architecture is certified for some applications in industrial and avionik controll. .... So my wish list: fpc for 80186, supporting the new extended addressing and writing the header files for RTOS (see http://www.beck-ipc.com/en/products/rtos/index.asp) incl. a FPU emulation !

From what I read from the links you posted, the extended addressing seems to be just like the regular real mode, except that segments are spaced not 16, but 256 bytes apart, is that correct? If that's the case, it should be easy to support - it's just a matter of writing the RTL for the new OS and using the appropriate linker. FPC for i8086 produces object files in the standard ROMF file format, they just use the extension .o, instead of .obj. Note that FPC currently only supports the tiny, small and medium memory models. Compact, large and huge are planned, but not started yet. But you can try writing an RTL for RTOS with the current memory models. In principle, it shouldn't be any harder than porting the compiler to any new OS, where the CPU is already supported. And when I implement the compact/large/huge memory models, the RTOS RTL will have to be adapted to support them. Most likely, the far heap manager (which doesn't exist yet) will have to be adapted to support the different spacing between the segments. As for FPU emulation, it is also on my TODO list :)

Nikolay

Reply by email

greim
to Nikolay Nikolov
Nikolay Nikolov wrote 18 lines
On 10/05/2013 03:07 PM, greim wrote: > Hi, > > writing a 8086 version of fpc is not so strange as some may think! > There are still some 80186 processors around running in embedded > systems! These architecture is certified for some applications in > industrial and avionik controll. > > .... > > So my wish list: > fpc for 80186, supporting the new extended addressing and writing the > header files for RTOS (see > http://www.beck-ipc.com/en/products/rtos/index.asp) incl. a FPU > emulation ! From what I read from the links you posted, the extended addressing seems to be just like the regular real mode, except that segments are spaced not 16, but 256 bytes apart, is that correct?

As far as i personally understand, yes.

If that's the case,

it should be easy to support - it's just a matter of writing the RTL for the new OS and using the appropriate linker.

RTOS is a pimped IBM/MS-DOS. So standard functions like file i/o etc. are identical. Most of the DOS programs are running also on RTOS.

FPC for i8086 produces

Show quoted text 7 lines
object files in the standard ROMF file format, they just use the extension .o, instead of .obj. Note that FPC currently only supports the tiny, small and medium memory models. Compact, large and huge are planned, but not started yet. But you can try writing an RTL for RTOS with the current memory models. In principle, it shouldn't be any harder than porting the compiler to any new OS, where the CPU is already supported.

Maybe its enough to modify the linker for this special 80186, without touching the 8086 compiler?
This was not possible for the Borland compiler, because there are no .obj files.

And when I implement the compact/large/huge memory models,

the RTOS RTL will have to be adapted to support them. Most likely, the far heap manager (which doesn't exist yet) will have to be adapted to support the different spacing between the segments. As for FPU emulation, it is also on my TODO list :)

First of all i will try to run a small "Hallo World" on the RTOS 24 bit machine !

Thanks

Markus

Show quoted text 6 lines
Nikolay _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply by email