Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

a.out for msdos (Announce)

posted by kerravon, Ligao, Free World North, 17.05.2023, 17:36

Hi DosWorld (and anyone else interested)

> Sorry, i am not check Robert's work. I'll check as86.

> (Right now, i'm sure he produce MZ in tiny or small memory model.
> But need check - may be Robert invent something and escape from this
> restriction?)

Today I finally managed to prove that as86 works on a large memory model program. Even though it uses a.out for the object code format. I made the PDOS bootloader large memory model, in preparation for converting it to huge. Here is the makefile I used:

https://sourceforge.net/p/pdos/gitcode/ci/master/tree/src/makeio.std

I was wondering if I was going to hit some roadblock that I hadn't thought of, but nothing so far, to large. It's unlikely that there will be a roadblock found when switching to huge.

There are a couple of anomalies - I haven't attempted to do the stack pointer properly yet, nor clear BSS. And I had to hardcode the opcode for retn. I'll look at cleaning up those things soon, and hopefully don't find a roadblock then.

It took a huge effort just to get to this point, because I needed to isolate faults in both as86 and ld86.

Robert's goal for as86 is to accept masm syntax, but not necessarily produce byte-identical object code, so I can't easily compare binaries to see anything wrong.

Good news is that even coped with mixing RM16 and PM32 code.

Pretty impressive for something as simple as a.out.

Oh - one other restriction. You can't use the "seg" keyword, because a.out can't carry that across. But you don't actually need to use that keyword. There is a way to work around that - just declare a variable with "dd" that references the function you want to get the segment of.

And if the C compiler is generating the "seg" keyword, then declare a function pointer.

My plan is to get either SubC or Octogram C (both public domain, but both not reaching C90) to generate huge memory model code, and not use the "seg" keyword, so no mucking around required.

BFN. Paul.

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 260 users online (1 registered, 259 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum