Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

OMF records (Developers)

posted by Rugxulo Homepage, Usono, 18.02.2012, 16:39

> Ok, I downloaded it. Additionally, I needed obernm12.zip file and
> tlink+make from Borland.

Yes. I don't have redistribution permission for TCPP101.ZIP, and OBERNM12.ZIP was pointed to in a previous post.

> After adjusting some paths in RUNME.BAT, the think "runs", but outputs a
> warning:
>
> warning: no stack defined

As expected.

> and if I start the resulting executable newbef93.exe, it just freezes. This
> happens with tlink version 2.0 (I don't have v1.01; if I use a newer tlink
> (v7.1.30) instead, the linker displays "error: Invalid initial stack
> offset" and no exe is generated). Is this the expected behavior?

No, that's not expected. I thought you would've had 1.01. I also thought it wouldn't majorly bork in newer versions (sigh).

It's supposed to run three files successfully: one showing 25**5, one showing a simple ASCII box, and one showing a big ASCII drawing. So no, it's not supposed to hang or be silent. It's supposed to be obvious that it works (with TLINK from 1.01).

> >
> > JWlink Version 1.9
> > Warning! W1032: file newbef93.obj(NEWBEF93), record 25: record (type
> > 0x0070) not
> >  processed
> > Warning! W1014: stack segment not found
> > Warning! W1023: no starting address found, using 0000:0000
> >

> >
> > At least, to me, this makes absolutely no sense.
>
> Warnings 1014 and 1023 are usually severe, but in this case they probably
> can be ignored because tlink also warns about the missing stack and tells
> in the map file that entry point is 0000:0000.

I have no idea why, but that can't be a good sign. I just figured it was old. I also blindly figure the author knew what he was doing. Perhaps not (heh). It may just be some other old or obsolete thing that changed in linkers or OMF variants later on.

> Warning W1032 is most likely
> minor, because the record is just ignored and AFAIU the record isn't needed
> anyway.

Like I said, I'm almost positive that MS LINK ignores it. But TIS 1.1 says it's obsolete and should return an error (dang it), which most linkers indeed do. Which is bad, esp. because it's not needed, and you need a working linker to build the .EXE! Hence my silly hack to (effectively) nop out the damn record.

P.S. Try VALX from CC386 (after running HACKOMF on NEWBEF93.OBJ), it works.

> > It is not obvious. Please define "obvious".
>
> With "obvious" I meant "obvious to me AFTER you posted both map files
> here".

I figured you had all the tools to regenerate everything. (Though admittedly Embarcadero is more stingy these days with the "freeware" Borland tools.)

> > No, seriously, there's even a
> > blank-named empty segment in there for whatever reason. And I still
> wonder
> > if link order matters.
>
> It usually matters. There are linker options (DOSSEG) which tell the linker
> that segments are to be ordered in a special way, but I guess this doesn't
> apply here.

I had tried DOSSEG with JWLINK, didn't help.

> I created both map files.
>
> The only difference is the location of the unnamed and "empty" segment.
> However, even an "empty" segment matters: it may define a "label" which is
> used somewhere inside the binary or it may be used to force a certain
> alignment (alignment to paragraphs in this case).
>
> However, to make further investigations I first have to know what your
> program is supposed to do and display.

It's a Befunge-93 interpreter. It's not supposed to hang or be silent, it's supposed to read from stdin and write to stdout (normally from input file but none of the Oberon compilers I tested had any pseudo-standard libs). If running "newbef93 < guesswho.bef" succeeds, you will know it because it will write a big ASCII pic to your screen.

 

Complete thread:

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