Sign in Join

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

Mailing lists / fpc-devel / 2013-11

State of i8086 generation?

4 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

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

Jim Leonard

I was curious what the state of the i8086 generation was in 2.7.x, and whether anyone was working on it. I checked some of the files and I still see references to EAX, etc. so I am assuming it is not functional yet. I was also curious how the memory model will be handled (ie. dynamic arrays greater than 64K if free heap allows it, etc.).

Jim Leonard () Check out some trippy MindCandy: http://www.mindcandydvd.com/ A child borne of the home computer wars: http://trixter.oldskool.org/ You're all insane and trying to steal my magic bag!

Reply by email

Nikolay Nikolov
to Jim Leonard
Jim Leonard wrote 6 lines
I was curious what the state of the i8086 generation was in 2.7.x, and whether anyone was working on it. I checked some of the files and I still see references to EAX, etc. so I am assuming it is not functional yet. I was also curious how the memory model will be handled (ie. dynamic arrays greater than 64K if free heap allows it, etc.).

It should be functional, although it does break occasionally, so you should always keep the latest working version if you plan on using it. I run the testsuite weekly and try to fix any regressions, but occasionally it may take longer if I'm busy. There's a wiki page dedicated to the i8086 port here with more details:

http://wiki.freepascal.org/DOS

Nikolay

Reply by email

Jim Leonard
to Nikolay Nikolov
Nikolay Nikolov wrote 7 lines
It should be functional, although it does break occasionally, so you should always keep the latest working version if you plan on using it. I run the testsuite weekly and try to fix any regressions, but occasionally it may take longer if I'm busy. There's a wiki page dedicated to the i8086 port here with more details: http://wiki.freepascal.org/DOS

Thanks, I look forward to playing with this. I'm curious if the optimizations in FPC beat those in TP (my guess is very likely, since the optimizations in TP were only those that could be implemented in a single pass, with no peephole optimization).

Jim Leonard () Check out some trippy MindCandy: http://www.mindcandydvd.com/ A child borne of the home computer wars: http://trixter.oldskool.org/ You're all insane and trying to steal my magic bag!

Reply by email

Nikolay Nikolov
to Jim Leonard
Jim Leonard wrote 13 lines
On 11/29/2013 3:45 PM, Nikolay Nikolov wrote: > It should be functional, although it does break occasionally, so you > should always keep the latest working version if you plan on using it. I > run the testsuite weekly and try to fix any regressions, but > occasionally it may take longer if I'm busy. There's a wiki page > dedicated to the i8086 port here with more details: > > http://wiki.freepascal.org/DOS Thanks, I look forward to playing with this. I'm curious if the optimizations in FPC beat those in TP (my guess is very likely, since the optimizations in TP were only those that could be implemented in a single pass, with no peephole optimization).

Note that right now FPC is still usually slower than TP, mainly because TP's RTL is written mostly in optimized asm, while the FPC RTL is mostly written in pascal. But, of course, you can always help with patches :) Also, there's still no peephole optimizer for i8086 (there's a jump optimizer, though) and regvars don't yet work (they produce wrong code for a reason I've not discovered yet, so they're disabled from -O2. They also cause problems with the register allocator). But eventually, in the long run, FPC should be able to produce much better code than TP. However, I'm still not done with all the memory models yet, so I'm still focusing mostly on testing for correctness, getting more code to compile, fixing bugs, etc. and not so much on optimization. Getting the medium memory model to work was much harder than I expected and I expect that large & compact will be even harder (although, the good part is that we'll probably get both of them working at the same time, since the actual new feature is support for far data; far code is already supported), so my current plan is this:

1) get as much code working under the medium memory model, e.g. get free vision working
2) improve the far pointer support, until it becomes stable enough to be the default pointer type, so we can start the large & compact memory models
3) get the large & compact memory models working and stabilize them

If I'm the only person working on the i8086 port, I'm guessing this will take anything between 6 months to a year, so I'll probably not have much time to work on the optimizer. But then, again, I may get distracted while trying to get something to work and do some work on optimization, so I can get it working fast enough on a vintage machine or to get something to fit in 64kb.

Another distraction I currently have is fixing the 8087 support, since I got one from eBay and installed it on my IBM 5150. The bad thing about 8087, though, is the fact that we cannot easily run automated tests on it. Normally, I run the FPC testsuite with dosbox, which emulates a 387+.

Nikolay

Reply by email