OMF records - processing SYS.OBJ with tdstrip (Developers)
> > too complex for a good test, e.g. a hello world would have been better.
> params.mod (mod is the file extension used for src) which comes with the
> compiler is a good basic example. However to aid with testing I created an
> even shorter one:
>
> MODULE rjtest; (* RJTEST 2012 *)>
> IMPORT SYS:=SYSTEM;
>
> BEGIN
> END rjtest.
I think that's too simple for testing (see above). It doesn't have multiple modules and doesn't actually do anything. ("SYS" is, apparently, an obsolete naming convention for "SYSTEM", which itself is only used for non-portable code, low-level stuff, etc.)
> Using a tstrip processed SYS.OBJ. I copied OC.EXE and SYS.OBJ into a test
> directory and tried to compile rjtest.mod (as above) with oc, tlink etc:
>
> map file:
> Error: Invalid initial stack offset>
I wish I knew why it was saying that or what to patch (and where).
> tdump of RJTEST.OBJ:
> Turbo Dump Version 4.2.16.1 Copyright (c) 1988, 1996 Borland> International
>
I'm guessing by 1996 they either complied closer with TIS 1.1 or went their own way. Either way, probably not good for (old 1991) Oberon/M. :-/
> So processing SYS.OBJ with tdstrip didn't help much as the issue of an
> invalid entry point still exists and the blank byte record still gets
> inserted as well as the REGINT (70h) record.
>
> As when I get a chance I will do some more testing/investigation. Re the
> REGINT (70h) record I'm thinking that patching OC.EXE is needed to
> resolve.
Well, probably, but I figured an external tool was easier for now. Besides, it's only the single "main" .OBJ of a project that needs it, not the others.
> [edit: if IMPORT SYS:=SYSTEM; is missing it seems OC defaults to it]
It's apparently trying to be compatible with an earlier release of itself as well as a very-early Oberon System convention. All the "modern" (heh) Oberon compilers I've seen only define SYSTEM, which (like Modula-2) is a built-in module inside the compiler, although you still have to manually import it (and it's a "no no", only uses for non-portable and low-level code).
(OT): One of BWK's complaints about Pascal was that there was no escape, no casts, no type conversions like C had. Modula-2 added a bunch, but that's not typesafe, and they were only supposed to be used in limited cases, not all the time. So they were overused by programmers, hence Wirth removed most of them from Oberon. If you want VAL(), you now have to import SYSTEM. (See OBERNM12.ZIP's OBREPT.ASC for more details.)
MODULE blah;
IMPORT Term,SYSTEM;
VAR s: SET; (* same as M2 BITSET *)
BEGIN
INCL(s,8); (* 2**8 = 256 *)
Term.WI(SYSTEM.VAL(INTEGER,s))
END blah.
EDIT: There may be some confusion regarding SYS.OBJ and the internal "module" SYS / SYSTEM. I don't think there is any connection. At least, you must always link with SYS.OBJ, but you don't have to "IMPORT SYSTEM" at all.
Complete thread:
- OMF records - Rugxulo, 15.02.2012, 16:14 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- Just some research about the name "E. R. Videki" - rr, 15.02.2012, 21:09
- Just some research about the name "E. R. Videki" - Arjay, 15.02.2012, 22:08
- Just some research about the name "E. R. Videki" - Rugxulo, 15.02.2012, 23:19
- Just some research about the name "E. R. Videki" - Arjay, 16.02.2012, 00:47
- Just some research about the name "E. R. Videki" - Rugxulo, 15.02.2012, 23:19
- Just some research about the name "E. R. Videki" - Arjay, 15.02.2012, 22:08
- OMF records - Arjay, 15.02.2012, 22:36
- OMF records - Rugxulo, 15.02.2012, 23:29
- OMF records - Arjay, 16.02.2012, 01:09
- OMF records - Rugxulo, 16.02.2012, 08:00
- OMF records - rr, 16.02.2012, 09:51
- OMF records - Arjay, 16.02.2012, 21:37
- OMF records - marcov, 18.02.2012, 17:16
- OMF records - Rugxulo, 18.02.2012, 17:32
- OMF records - Rugxulo, 18.02.2012, 17:54
- OMF records - marcov, 19.02.2012, 16:47
- OMF records - RayeR, 19.02.2012, 17:19
- OMF records - marcov, 20.02.2012, 10:33
- OMF records - Rugxulo, 19.02.2012, 21:33
- OMF records - marcov, 20.02.2012, 18:23
- OMF records - RayeR, 19.02.2012, 17:19
- OMF records - marcov, 19.02.2012, 16:47
- OMF records - marcov, 19.02.2012, 16:43
- OMF records - Rugxulo, 19.02.2012, 21:15
- OMF records - marcov, 20.02.2012, 10:54
- OMF records - Rugxulo, 20.02.2012, 17:50
- OMF records - marcov, 20.02.2012, 18:54
- OMF records - Rugxulo, 20.02.2012, 20:09
- OMF records - marcov, 20.02.2012, 18:54
- OMF records - Rugxulo, 20.02.2012, 17:50
- OMF records - marcov, 20.02.2012, 10:54
- OMF records - Rugxulo, 19.02.2012, 21:15
- OMF records - Rugxulo, 18.02.2012, 17:54
- OMF records - Rugxulo, 18.02.2012, 17:32
- OMF records - rr, 16.02.2012, 09:51
- OMF records - Rugxulo, 16.02.2012, 08:00
- OMF records - Arjay, 16.02.2012, 01:09
- OMF records - Rugxulo, 15.02.2012, 23:29
- OMF records - Japheth, 16.02.2012, 18:08
- OMF records - Rugxulo, 16.02.2012, 19:48
- OMF records - Arjay, 16.02.2012, 21:27
- OMF records - Arjay, 16.02.2012, 21:52
- OMF records - Rugxulo, 16.02.2012, 23:09
- OMF records - Arjay, 16.02.2012, 21:52
- OMF records - Arjay, 16.02.2012, 21:27
- OMF records - Rugxulo, 17.02.2012, 02:15
- OMF records - Japheth, 17.02.2012, 08:08
- OMF records - Rugxulo, 17.02.2012, 20:21
- OMF records - Japheth, 18.02.2012, 09:05
- OMF records - Rugxulo, 18.02.2012, 16:39
- OMF records - Japheth, 18.02.2012, 17:55
- jwlinkd updated - Japheth, 20.02.2012, 14:31
- Oberon subtyping (was: JWlinkD updated) - Rugxulo, 20.02.2012, 20:14
- BEFI 3H (Oberon-M fully supported) - Rugxulo, 06.03.2012, 23:30
- Oberon subtyping (was: JWlinkD updated) - Rugxulo, 20.02.2012, 20:14
- jwlinkd updated - Japheth, 20.02.2012, 14:31
- OMF records - Japheth, 18.02.2012, 17:55
- OMF records - Rugxulo, 18.02.2012, 16:39
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 18.02.2012, 14:22
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 18.02.2012, 15:47
- OMF records - processing SYS.OBJ with tdstrip - Rugxulo, 18.02.2012, 17:12
- OMF records - processing SYS.OBJ with tdstrip - Rugxulo, 18.02.2012, 16:56
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 19.02.2012, 10:16
- OMF records - processing SYS.OBJ with tdstrip - Rugxulo, 19.02.2012, 17:58
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 19.02.2012, 10:16
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 18.02.2012, 15:47
- OMF records - Japheth, 18.02.2012, 09:05
- OMF records - Rugxulo, 17.02.2012, 20:21
- OMF records - Japheth, 17.02.2012, 08:08
- OMF records - Rugxulo, 16.02.2012, 19:48
- Oberon 1.2 OC (compiler) patch - Arjay, 18.02.2012, 23:37
- Oberon/M 1.2 (OMF output) ... die, REGINT, die! - Rugxulo, 19.02.2012, 00:54
- Oberon/M 1.2 (OMF output) ... die, REGINT, die! - Arjay, 19.02.2012, 10:05
- Oberon/M 1.2 (OMF output) ... die, REGINT, die! - Rugxulo, 19.02.2012, 00:54
- Just some research about the name "E. R. Videki" - rr, 15.02.2012, 21:09
Mix view