Hi,
I'm trying to compile & run TREK7 on VMS V2.0 using the SIMH simulator.
Everything from http://trek7.sourceforge.net/files/vms/ compiles fine, but when I try to link it I get:
$ link treka,trekb,trekc,trekd,treke,trekf,trekg /execut=trek7.exe
%LINK-W-NUDFSYMS, 1 undefined symbol:
%LINK-I-UDFSYM, RAND
%LINK-W-USEUNDEF, Module "RANDO" references undefined symbol "RAND"
%LINK-W-DIAGSISUED, Completed but with diagnostics
$
Looking at TREKA.FOR I see:
C
C - RANDO -
C
SUBROUTINE RANDO(IX,IY,IZ)
COMMON /TOM/ITOM
INTEGER2 ISHRT,ISHIT
REAL RT
ISHRT=ITOM
ISHIT=ITOM
C this is a kludge to make the VMS random num. gen. to work.
C TYPE 22222,IX,IY,IZ
C22222 FORMAT(//' TOP OF RANDO IX=',I6,' IY=',I6,' IZ=',I6//)
C RT=RAND(ISHRT,ISHIT)
RT=RAND(ITOM)
ITOM=IFIX(RT10000.)
4 TEMP=FLOAT(MOD(ITOM,100))/100.
IX=(IZ-IY+1)*TEMP+IY
C TYPE 22233,IX,IY,IZ
C22233 FORMAT(//' END OF RANDO IX=',I6,' IY=',I6,' IZ=',I6//)
RETURN
END
Can you please tell me for what versions of VMS and VAX FORTRAN you made your adaption?
I use VAX FORTRAN V2.4 here because of VMS V2.0.
What was the original source code like?
Are there any hints on using the game? I tried the Linux version without noteworthy success - maybe I'm too young for that kind of game?
I didn't even manage to move the spaceship :-((
Regards
Ulli
P.S.
Background: I'm trying to writing an article like: https://gunkies.org/wiki/Playing_DUNGEON_on_VMS_V1.0 (which I wrote) for TREK7.
The VMS folder is the original 1970's/1980's Fortran source code.
It was originally built and run on hardware/software versions pretty close
to what you're using.
VMS 2.0 seems just about right, I remember using from v1.3 to v2.4
The Fortran though is a totally different matter, it was build/run using
Fortran/IV and/or Fortran-77
Started in about 1978 on a Vax 750 / Vax 780 (actually a 782 but that
distinction is probably totally unimportant)
So rather ancient Fortran, to say the least.
The source code in the vms folder on Sourceforge is actually of this era.
All the code in those folders is all based on that foundational code,
the linux, PC, dos versions were attempts by various people to try and get
it working with Compaq/HP/Intel Fortran that's current.
I've had some help from some people in the past,
but my problem is that I've long forgotten almost all my Fortran, having
not touched it in many decades.
I don't think I could code in it today - I might be able to do "hello
world" but only with lots of help from google searches.
So, while I enhanced and rewrote most of the code many times, that was back
in the late 70's, early-mid 80's,
so I will try and help as much as I can with what's left of my memory on
this stuff.
As for HINTS, at the command prompt, you can type HELP to get details on
each function-
ENTER COMMAND STRING (M,P,T,B,Y,D,C,H FOR HELP)')
M - Move - moves the ship,
Somewhere I have an actual MANUAL that was done up to explain the game,
I could swear I scanned it in, but seems I haven't.
So I should get to doing that.
Full text from HELP, here for example:
335 FORMAT(' ENTER A STRING OF CHARACTERS INDICATING THE SEQUENCE IN W
HICH'/' YOU WISH TO EXECUTE AN ACTION - TYPE'/' ''M'' TO MOVE'/' '
'P'' TO FIRE PHASERS'/' ''T'' TO FIRE TORPS/DISRUPTORS'/' ''B'' TO
336 FORMAT(' IF THE FIRST CHARACTER IN THE STRING IS A ''C'','/' THE
GO COMMAND IS CANCELLED')
WRITE(L,337)
337 FORMAT(' OTHER FORMS--'/' EG. B(M)(PT) -IF THE BOARD IS SUCCESSFUL
, WE MOVE ELSE WE FIRE PHASERS AND TORPEDOES. '/' THUS THE BACKUS-N
AUR FORM OF THE GO-LINE IS-'/' <go-line>::=<go-char> / <go-char>(<
</go-char></go-char></go-line>GO-LINE>)(<go-line>) / <go-char>(<go-line>) / NIL'/'<go-char>::=M
*/P/T/B/Y/D'/' CAUTION -THE GO-LINE SHOULD BE 80 CHARACTERS OR LESS
* IN LENGTH AND SHOULD NOT NEST MORE THAN 6 LEVELS.')</go-char></go-line></go-char></go-line>
On Mon, Sep 19, 2022 at 3:37 AM "Hans-Ulrich Hölscher" vax750@users.sourceforge.net wrote:
--
Greetings from somewhere in the space-time continuum,
Dan.
Related
Bugs: #2