Empire game

29 views
Skip to first unread message

Andrew Barron

unread,
Dec 17, 2025, 11:36:45 PM (2 days ago) Dec 17
to [PiDP-11]
Hi has anyone managed to get the Empire game that is on the RSX11m+ DECUS disk  RSX86B:[343,042] working? Does anyone know what the  $SHORT NOT IN LIB error means, and how to fix it. Empire seems like a classic game, so I would like to get it working.

I am so close to getting it linked! All the OBJ files were created, so it compiled OK. But the TKB Linker is failing.

I copied the original files from VF0: to DU1: and could not get it working, so I copied it to DU0: but there was no change.

Here is where I got to.
1. I had to change two lines in Empire.CMD due to syntax errors
MAC MAPLIB = MAPLIB becomes MAC MAPLIB
MAC LIBMAC = LIBMAC becomes MAC LIBMAC

2. I ran @EMPIRE and answered Y, Y, N, Y, N (and other combinations)
You need to answer Yes to the F77FCS question or it looks for the F77OTS.OLB library which is wrong! Answering Yes, makes it look at the F77FCS.OLB library which is correct.

The error I am getting now, is TKB -- *FATAL*-Module $SHORT not in library
 I think that this is a compiler switch which is not working, but I cannot find it. Or it could be a SHORT variable type in one of the Fortran source files. I have not looked very far for that.

3 running TKB EMPIRE FSL/-XH/CP/FP=EMPIRE FSL/MP works without throwing an error, but it throws the same SHORT error and does not create a TSK file.

cheers
AndrewB


Anton Lavrentiev

unread,
Dec 18, 2025, 2:05:36 PM (15 hours ago) Dec 18
to Andrew Barron, [PiDP-11]
> Empire.CMD due to syntax errors

No syntax errors.  You're probably using DCL as your command language, and then the commands for assembling and compiling are simpler.
The ones in the .CMD files were meant for MCR.  So, if you do "MCR @EMPIRE" what would run without errors (or need for modifications).

> Or it could be a SHORT variable type in one of the Fortran source files.

Not, it's not.  It's a module from the overlay descriptor, EMPIREFSL.ODL:

ROOTSP: .FCTR   EMPMAIN-LB:[1,1]SYSLIB/LB:$SHORT-MAPLIB-LIBMAC

My LB;[1,1]SYSLIB.OLB does not contains such a module, indeed (check with LBR LB;[1,1]SYSLIB/LI)

Unfortunately, I have no more time to dig any deeper at the moment (until the weekend).


--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-11/1bd8c4e7-ac13-4e37-92cb-3164942da513n%40googlegroups.com.

Andrew Barron

unread,
Dec 18, 2025, 4:04:59 PM (13 hours ago) Dec 18
to [PiDP-11]
Thanks very much Anton. Your suggestion to run MCR @EMPIRE was great. Using MCR the original code works without syntax errors, so I did not need to modify the CMD file. 

I am still getting the $SHORT library error, I will have a look at the library files as you have suggested.

The program was tested to RSX11M-Plus v2.1 "with FPP" so perhaps it is not compatible with v4.6.


AndrewB

Andrew Barron

unread,
Dec 18, 2025, 4:13:46 PM (13 hours ago) Dec 18
to [PiDP-11]
Whoops I was wrong.  Running MCR @EMPIRE still shows syntax errors. So I did need to modify the file.

Andrew Barron

unread,
Dec 18, 2025, 5:15:33 PM (12 hours ago) Dec 18
to [PiDP-11]
Hi Anton,

There are more missing modules
ROOTSP: .FCTR   EMPMAIN-LB:[1,1]SYSLIB/LB:$SHORT-MAPLIB-LIBMAC
OL2LIB: .FCTR   LB:[1,1]SYSLIB/LB:$CLSST:$IOARY:$OPNST:$STPPA:$PWII:$ISIGN:$FNB`

I found them all in  LB:[1,1]F77FCS.OLB 
Changing SYSLIB to F77FCS in EMPIREFSL.ODL cures the missing module problem, but now OVLY2:  .FCTR   EMPUTIL-OL2LIB-*(OVLY21,OVLY22) fails. 
TKB -- *FATAL*-Incorrect library module specification
OVLY2:  .FCTR   EMPUTIL-OL2LIB-*(OVLY21,OVLY22)


I'm out of my depth now and starting to think that there will just be endless errors.

cheers
AndrewB



Anton Lavrentiev

unread,
Dec 18, 2025, 7:22:06 PM (10 hours ago) Dec 18
to Andrew Barron, [PiDP-11]
TBH, I just used "set /cli=mcr" and then I just did "@empire", and the original command file worked w/o any mods.
(That's irrespective of the overlay errors that TKB throws.)

For ODL, I need to read docs to figure out which modules can be used and at which levels (esp for FCS or F77 OTS stuff, there are rules).  IIRC, back in the day system managers used to love to dump everything into SYSLIB.OLB so that users won't need to remember where to pull the standard stuff from (for their respective language support) in TKB.  Maybe that was the case on the system where EMPIRE.ODL was prepped, and so those "missing" modules are actually to be found in the F77-specific libraries (their original place, that is) on a PiDP11's RSX11+.  Anyways, that'd require some time to investigate, and I'm out of it for the moment, unfortunately.

Johnny Billquist

unread,
Dec 18, 2025, 8:32:58 PM (9 hours ago) Dec 18
to pid...@googlegroups.com
On 2025-12-18 20:04, Anton Lavrentiev wrote:
>> Empire.CMD due to syntax errors
>
> No syntax errors.  You're probably using DCL as your command language,
> and then the commands for assembling and compiling are simpler.

Right.

> The ones in the .CMD files were meant for MCR.  So, if you do
> "MCR @EMPIRE" what would run without errors (or need for modifications).

No. Because @file is not handled by the CLI. I can see that one might
think it is, because in most any other context, the indirect file
notation just means the program still reads the commands, but from a
file instead of the terminal. However, CLI level works differently.
@file actually means invoke IND to process the content of the file. And
IND sends command lines to whatever CLI your terminal is set to. The
"MCR" prefix just means the actual command line is sent to MCR. Both DCL
and MCR parse the "@file" and just send that on to IND to then process.

> > Or it could be a SHORT variable type in one of the Fortran source files.
>
> Not, it's not.  It's a module from the overlay descriptor, EMPIREFSL.ODL:
>
> ROOTSP: .FCTR   EMPMAIN-LB:[1,1]SYSLIB/LB:$SHORT-MAPLIB-LIBMAC
>
> My LB;[1,1]SYSLIB.OLB does not contains such a module, indeed (check
> with LBR LB;[1,1]SYSLIB/LI)

I don't know what that module is either. I can try some experiments and
further checking in the weekend, but I suspect it might be something you
can just remove.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: b...@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol

Johnny Billquist

unread,
Dec 18, 2025, 8:37:11 PM (9 hours ago) Dec 18
to pid...@googlegroups.com
On 2025-12-18 22:04, Andrew Barron wrote:
> Thanks very much Anton. Your suggestion to run MCR @EMPIRE was great.
> Using MCR the original code works without syntax errors, so I did not
> need to modify the CMD file.

As you then observed, it didn't actually solve anything.
There are two ways to "fix" this.
1. Change your terminal to MCR before "@EMPIRE". (In DCL, you'd do SET
TERM/CLI=MCR)
2. Change the EMPIRE.CMD file to prefix each command line with "MCR",
change each line to be the DCL syntax, or add a SET TERM/CLI=MCR in the
script file (and restore at the end). However, with that last bit, make
sure you actually are in DCL before giving that command. :-)

> I am still getting the $SHORT library error, I will have a look at the
> library files as you have suggested.

Try just dropping that reference, and see what happens.

> The program was tested to RSX11M-Plus v2.1 "with FPP" so perhaps it is
> not compatible with v4.6.

Should not be the case. In general, compiling and linking from source
should not have any problems at all. Binaries should also be possible to
just move over and run. The only programs with potential problems would
be programs that access things in the kernel (basically privileged
programs), and which are not vectored. All others should be fine.

Johnny Billquist

unread,
Dec 18, 2025, 8:46:17 PM (9 hours ago) Dec 18
to pid...@googlegroups.com
You need to understand a little more on how ODL files work, as well as
what libraries you need. You probably do not want to just replace SYSLIB
with F77FCS. You want to *add* F77FCS, and you probably want it before
SYSLIB, and in addition, you want to check which modules are actually in
one or the other.

Whoever wrote that ODL-file was on a system where the contents of F77FCS
had been merged in to SYSLIB. Can be done, but is not so by default.

I'll give a corrected version sometimes next week if noone beats me to it.

Johnny
> --
> You received this message because you are subscribed to the Google
> Groups "[PiDP-11]" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to pidp-11+u...@googlegroups.com
> <mailto:pidp-11+u...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/
> pidp-11/106f18b5-f84c-4623-a8ac-7a3bb9a8416bn%40googlegroups.com
> <https://groups.google.com/d/msgid/pidp-11/106f18b5-f84c-4623-
> a8ac-7a3bb9a8416bn%40googlegroups.com?utm_medium=email&utm_source=footer>.
Reply all
Reply to author
Forward
0 new messages