Discussion:
[Simh] Crowther's Adventure game
Lars Brinkhoff
2018-02-02 08:22:31 UTC
Permalink
Hello,

Some time ago, an old version of the Adventure game was found.
According to Woods, the March 11 files are the originals from Crowther.

https://jerz.setonhill.edu/intfic/colossal-cave-adventure-source-code/

Maybe this is of come historical interest, and could be part of the SIMH
games kits. This version builds without modifications with the DEC F40
compiler. I tested this in ITS. Credits to the person who provided
build instructions on YouTube!

Unfortunately, there's a problem: All lines output by the program are
missing the very first character. I tried to look at the file input
code, and the SPEAK subroutine, but I'm not well versed in FORTRAN IV.
Dave L
2018-02-02 08:33:26 UTC
Permalink
Been a long time since I wrote fortran but IIRC the first character on the
output line was to perform carriage-control of the LPT, so you'd have to
always have a leading pad character such as a space in order to get the
output lines to be correct. Some characters were reserved actions, 1 = FF
from memory. I've not looked at the code involved but that'd be my first
thoughts

HTH
Dave


On Fri, 02 Feb 2018 08:22:31 -0000, Lars Brinkhoff <***@nocrew.org> wrote:

> Hello,
>
> Some time ago, an old version of the Adventure game was found.
> According to Woods, the March 11 files are the originals from Crowther.
>
> https://jerz.setonhill.edu/intfic/colossal-cave-adventure-source-code/
>
> Maybe this is of come historical interest, and could be part of the SIMH
> games kits. This version builds without modifications with the DEC F40
> compiler. I tested this in ITS. Credits to the person who provided
> build instructions on YouTube!
>
> Unfortunately, there's a problem: All lines output by the program are
> missing the very first character. I tried to look at the file input
> code, and the SPEAK subroutine, but I'm not well versed in FORTRAN IV.
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh


--
Lars Brinkhoff
2018-02-02 08:41:18 UTC
Permalink
Dave L wrote:
> Been a long time since I wrote fortran but IIRC the first character on
> the output line was to perform carriage-control of the LPT, so you'd
> have to always have a leading pad character such as a space in order
> to get the output lines to be correct. Some characters were reserved
> actions, 1 = FF from memory. I've not looked at the code involved but
> that'd be my first thoughts

Thanks. Since the SPEAK subroutine is only a few lines, I'll post it
here. Maybe someone hows how TYPE, FORMAT(20A5), and FORMAT(/) work.



SUBROUTINE SPEAK(IT)
IMPLICIT INTEGER(A-Z)
COMMON RTEXT,LLINE
DIMENSION RTEXT(100),LLINE(1000,22)

KKT=RTEXT(IT)
IF(KKT.EQ.0)RETURN
999 TYPE 998, (LLINE(KKT,JJT),JJT=3,LLINE(KKT,2))
998 FORMAT(20A5)
KKT=KKT+1
IF(LLINE(KKT-1,1).NE.0)GOTO 999
997 TYPE 996
996 FORMAT(/)
RETURN
END
Ken Cornetet
2018-02-02 14:12:04 UTC
Permalink
I have vague recollections that FORMAT(/) prints a new line

Format(20A5) takes 20 elements of an array and prints them as character stings padded to a width of 5 characters.

"TYPE" is not standard fortran. That must have been a DEC extension. Standard fortran would have used "write".

-----Original Message-----
From: Simh [mailto:simh-***@trailing-edge.com] On Behalf Of Lars Brinkhoff
Sent: Friday, February 2, 2018 3:41 AM
To: Dave L <***@googlemail.com>
Cc: ***@trailing-edge.com
Subject: Re: [Simh] Crowther's Adventure game

Dave L wrote:
> Been a long time since I wrote fortran but IIRC the first character on
> the output line was to perform carriage-control of the LPT, so you'd
> have to always have a leading pad character such as a space in order
> to get the output lines to be correct. Some characters were reserved
> actions, 1 = FF from memory. I've not looked at the code involved but
> that'd be my first thoughts

Thanks. Since the SPEAK subroutine is only a few lines, I'll post it here. Maybe someone hows how TYPE, FORMAT(20A5), and FORMAT(/) work.



SUBROUTINE SPEAK(IT)
IMPLICIT INTEGER(A-Z)
COMMON RTEXT,LLINE
DIMENSION RTEXT(100),LLINE(1000,22)

KKT=RTEXT(IT)
IF(KKT.EQ.0)RETURN
999 TYPE 998, (LLINE(KKT,JJT),JJT=3,LLINE(KKT,2))
998 FORMAT(20A5)
KKT=KKT+1
IF(LLINE(KKT-1,1).NE.0)GOTO 999
997 TYPE 996
996 FORMAT(/)
RETURN
END
_______________________________________________
Simh mailing list
***@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh
Clem Cole
2018-02-02 14:46:20 UTC
Permalink
On Fri, Feb 2, 2018 at 9:12 AM, Ken Cornetet <
***@kimballelectronics.com> wrote:

> I have vague recollections that FORMAT(/) prints a new line
>
​Sounds right - I'm O-O-O, but I​'ll try to verify with the compiler folks
when I'm on the office again.

>
> Format(20A5) takes 20 elements of an array and prints them as character
> stings padded to a width of 5 characters.
>
​Right.. -- mAw - means M elements of an input data type (typically
Integer) as type Alphabet with a width of w.​


>
> "TYPE" is not standard fortran. That must have been a DEC extension.
> Standard fortran would have used "write".
>
​Yes, TYPE was introduced by DEC with PDP-10 Fortran​ to allowed for easier
terminal I/O on timesharing (original Fortran was designed for batch i.e.
LPT, or tape style out). I believe it was picked up on the standard with
F90 - but again I'll have to ask the Fortran compiler folks. An example
of the difference between TYPE and traditional WRITE indeed are things like
Fortran Lineprinter control, but I've forgotten the details.



>
> -----Original Message-----
> From: Simh [mailto:simh-***@trailing-edge.com] On Behalf Of Lars
> Brinkhoff
> Sent: Friday, February 2, 2018 3:41 AM
> To: Dave L <***@googlemail.com>
> Cc: ***@trailing-edge.com
> Subject: Re: [Simh] Crowther's Adventure game
>
> Dave L wrote:
> > Been a long time since I wrote fortran but IIRC the first character on
> > the output line was to perform carriage-control of the LPT, so you'd
> > have to always have a leading pad character such as a space in order
> > to get the output lines to be correct. Some characters were reserved
> > actions, 1 = FF from memory. I've not looked at the code involved but
> > that'd be my first thoughts
>
> Thanks. Since the SPEAK subroutine is only a few lines, I'll post it
> here. Maybe someone hows how TYPE, FORMAT(20A5), and FORMAT(/) work.
>
>
>
> SUBROUTINE SPEAK(IT)
> IMPLICIT INTEGER(A-Z)
> COMMON RTEXT,LLINE
> DIMENSION RTEXT(100),LLINE(1000,22)
>
> KKT=RTEXT(IT)
> IF(KKT.EQ.0)RETURN
> 999 TYPE 998, (LLINE(KKT,JJT),JJT=3,LLINE(KKT,2))
> 998 FORMAT(20A5)
> KKT=KKT+1
> IF(LLINE(KKT-1,1).NE.0)GOTO 999
> 997 TYPE 996
> 996 FORMAT(/)
> RETURN
> END
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>

ᐧ
Paul Koning
2018-02-02 15:04:27 UTC
Permalink
> On Feb 2, 2018, at 9:46 AM, Clem Cole <***@ccc.com> wrote:
>
>
>
> On Fri, Feb 2, 2018 at 9:12 AM, Ken Cornetet <***@kimballelectronics.com> wrote:
> I have vague recollections that FORMAT(/) prints a new line
> ​Sounds right - I'm O-O-O, but I​'ll try to verify with the compiler folks when I'm on the office again.
>
> Format(20A5) takes 20 elements of an array and prints them as character stings padded to a width of 5 characters.
> ​Right.. -- mAw - means M elements of an input data type (typically Integer) as type Alphabet with a width of w.​
>
> "TYPE" is not standard fortran. That must have been a DEC extension. Standard fortran would have used "write".
> ​Yes, TYPE was introduced by DEC with PDP-10 Fortran​ to allowed for easier terminal I/O on timesharing (original Fortran was designed for batch i.e. LPT, or tape style out). I believe it was picked up on the standard with F90 - but again I'll have to ask the Fortran compiler folks. An example of the difference between TYPE and traditional WRITE indeed are things like Fortran Lineprinter control, but I've forgotten the details.

From what I remember, "carriage control" still applies; "TYPE" seems to be simply a shorthand for "WRITE (5,"

paul
Clem Cole
2018-02-02 15:11:47 UTC
Permalink
On Fri, Feb 2, 2018 at 10:04 AM, Paul Koning <***@comcast.net> wrote
>
> From what I remember, "carriage control" still applies; "TYPE" seems to be
> simply a shorthand for "WRITE (5,"

I believe I remember that there was more to it than that explicitly when it
'knew' you were a TTY, but I've​ long since forgotten those details - which
is why I'll ask some folks from the compiler team when I see them.

Clem
ᐧ
Ken Cornetet
2018-02-02 15:07:26 UTC
Permalink
Given the lack of a carriage control character in “FORMAT(20A5)”, I’m guessing that TYPE was like write, except it was terminal oriented so it didn’t use carriage control.

Also, given the FORMAT(/), I’ll also hazard a guess that TYPE did not automatically add a new line on whatever was printed. But that is just a guess.

From: Clem Cole [mailto:***@ccc.com]
Sent: Friday, February 2, 2018 9:46 AM
To: Ken Cornetet <***@kimballelectronics.com>
Cc: ***@trailing-edge.com
Subject: Re: [Simh] Crowther's Adventure game



On Fri, Feb 2, 2018 at 9:12 AM, Ken Cornetet <***@kimballelectronics.com<mailto:***@kimballelectronics.com>> wrote:
I have vague recollections that FORMAT(/) prints a new line
​Sounds right - I'm O-O-O, but I​'ll try to verify with the compiler folks when I'm on the office again.

Format(20A5) takes 20 elements of an array and prints them as character stings padded to a width of 5 characters.
​Right.. -- mAw - means M elements of an input data type (typically Integer) as type Alphabet with a width of w.​


"TYPE" is not standard fortran. That must have been a DEC extension. Standard fortran would have used "write".
​Yes, TYPE was introduced by DEC with PDP-10 Fortran​ to allowed for easier terminal I/O on timesharing (original Fortran was designed for batch i.e. LPT, or tape style out). I believe it was picked up on the standard with F90 - but again I'll have to ask the Fortran compiler folks. An example of the difference between TYPE and traditional WRITE indeed are things like Fortran Lineprinter control, but I've forgotten the details.



-----Original Message-----
From: Simh [mailto:simh-***@trailing-edge.com<mailto:simh-***@trailing-edge.com>] On Behalf Of Lars Brinkhoff
Sent: Friday, February 2, 2018 3:41 AM
To: Dave L <***@googlemail.com<mailto:***@googlemail.com>>
Cc: ***@trailing-edge.com<mailto:***@trailing-edge.com>
Subject: Re: [Simh] Crowther's Adventure game

Dave L wrote:
> Been a long time since I wrote fortran but IIRC the first character on
> the output line was to perform carriage-control of the LPT, so you'd
> have to always have a leading pad character such as a space in order
> to get the output lines to be correct. Some characters were reserved
> actions, 1 = FF from memory. I've not looked at the code involved but
> that'd be my first thoughts

Thanks. Since the SPEAK subroutine is only a few lines, I'll post it here. Maybe someone hows how TYPE, FORMAT(20A5), and FORMAT(/) work.



SUBROUTINE SPEAK(IT)
IMPLICIT INTEGER(A-Z)
COMMON RTEXT,LLINE
DIMENSION RTEXT(100),LLINE(1000,22)

KKT=RTEXT(IT)
IF(KKT.EQ.0)RETURN
999 TYPE 998, (LLINE(KKT,JJT),JJT=3,LLINE(KKT,2))
998 FORMAT(20A5)
KKT=KKT+1
IF(LLINE(KKT-1,1).NE.0)GOTO 999
997 TYPE 996
996 FORMAT(/)
RETURN
END
_______________________________________________
Simh mailing list
***@trailing-edge.com<mailto:***@trailing-edge.com>
http://mailman.trailing-edge.com/mailman/listinfo/simh
_______________________________________________
Simh mailing list
***@trailing-edge.com<mailto:***@trailing-edge.com>
http://mailman.trailing-edge.com/mailman/listinfo/simh

[https://mailfoogae.appspot.com/t?sender=aY2xlbWNAY2NjLmNvbQ%3D%3D&type=zerocontent&guid=6c7e30c9-8bbe-42d0-849b-32a107cc6c3b]ᐧ
Jordi Guillaumes i Pons
2018-02-02 15:19:27 UTC
Permalink
>
> Also, given the FORMAT(/), I’ll also hazard a guess that TYPE did not automatically add a new line on whatever was printed. But that is just a guess.
>
I don’t think the slash is one of the ASA control characters

https://en.m.wikipedia.org/wiki/ASA_carriage_control_characters

They are still used. In zOS you can specify RECFM=VBA for ‘variable, blocked with ASA control), and that is more or less the default for listings (and also the reason the LRECL is 133 instead of 132).

Maybe that code in particular was written for a specific printing terminal with non-standard controls.
Paul Koning
2018-02-02 15:36:13 UTC
Permalink
> On Feb 2, 2018, at 10:19 AM, Jordi Guillaumes i Pons <***@jordi.guillaumes.name> wrote:
>
>>
>>
>> Also, given the FORMAT(/), I’ll also hazard a guess that TYPE did not automatically add a new line on whatever was printed. But that is just a guess.
>>
> I don’t think the slash is one of the ASA control characters

It's not. Tim said it -- it indicates end of record. A FORMAT statement gives the layout for one or more records. The fields separated by commas specify the consecutive parts of a single record; each / is a record boundary. Also, the end of the FORMAT corresponds to the end of record. In the DEC implementation, for terminals, trailing $ meant "do not end the record", i.e., don't insert newline at this point. That was used for prompt strings in interactive applications written in FORTRAN.

So for example:

WRITE(5,10)
10 FORMAT (' Hello'//' there')

would produce (without the indent)

Hello

there

(with a blank line between the two text lines, corresponding to the first / in the format). Note that each record begins with carriage control; the leading space in each of those two strings is the "single space" carriage control character.

paul
Jordi Guillaumes i Pons
2018-02-02 16:03:34 UTC
Permalink
>>>
>>>
>> I don’t think the slash is one of the ASA control characters
>
> It's not. Tim said it -- it indicates end of record. A FORMAT statement gives the layout for one or more records. The fields separated by commas specify the consecutive parts of a single record; each / is a record boundary. Also, the end of the FORMAT corresponds to the end of record. In the DEC implementation, for terminals, trailing $ meant "do not end the record", i.e., don't insert newline at this point. That was used for prompt strings in interactive applications written in FORTRAN.
>
Oh, I see it now. So it’s the equivalent for the PL/I ‘SKIP’ format idem. I stand corrected.
b***@quarterbyte.com
2018-02-02 20:12:32 UTC
Permalink
Also, given the FORMAT(/), I’ll also hazard a guess that TYPE did not
automatically add a new line on whatever was printed. But that is just a
guess.

Note that the / in the format statement is not in quotes. It's a format
specifier that causes a new output record (new line). On a typewriter, I
guess this would be
a carriage return alone, without any vertical spacing? Carriage control
would be effected by the first character output to that next output line

It may be that the TYPE extension expected there not to be carriage control
at all. That part is very fuzzy for me now. That would explain losing the
first character of every line, on a system that DID eat the first character
for carriage control
Lars Brinkhoff
2018-02-02 19:26:53 UTC
Permalink
Ken Cornetet wrote:
> Given the lack of a carriage control character in “FORMAT(20A5)”, I’m
> guessing that TYPE was like write, except it was terminal oriented so
> it didn’t use carriage control.

It does. I have tried various control characters, and they seem to work
as documented.

> Also, given the FORMAT(/), I’ll also hazard a guess that TYPE did not
> automatically add a new line on whatever was printed. But that is just a
> guess.

I think your guess is correct.
Paul Koning
2018-02-02 19:38:41 UTC
Permalink
> On Feb 2, 2018, at 2:26 PM, Lars Brinkhoff <***@nocrew.org> wrote:
>
> Ken Cornetet wrote:
> ...
>> Also, given the FORMAT(/), I’ll also hazard a guess that TYPE did not
>> automatically add a new line on whatever was printed. But that is just a
>> guess.
>
> I think your guess is correct.

I'm not so sure. It may be a case of ensuring the carriage is at the left margin -- remember that Fortran carriage control would insert a line feed at the start of the record (if the record carriage control character is a space) but not a carriage return; that happens at end of record. So if some previous operation left the carriage at some other spot on the page, you'd end up with weird looking output. The / supplies <lf><cr> to ensure all is clean.

paul
Ken Cornetet
2018-02-02 19:49:14 UTC
Permalink
You might be right. I've long ago mostly forgotten the nightmare that was FORTRAN carriage control, and the FORTRAN formatter in general.


-----Original Message-----
From: Paul Koning [mailto:***@comcast.net]
Sent: Friday, February 2, 2018 2:39 PM
To: Lars Brinkhoff <***@nocrew.org>
Cc: Ken Cornetet <***@kimballelectronics.com>; ***@trailing-edge.com
Subject: Re: [Simh] Crowther's Adventure game



> On Feb 2, 2018, at 2:26 PM, Lars Brinkhoff <***@nocrew.org> wrote:
>
> Ken Cornetet wrote:
> ...
>> Also, given the FORMAT(/), I’ll also hazard a guess that TYPE did not
>> automatically add a new line on whatever was printed. But that is
>> just a guess.
>
> I think your guess is correct.

I'm not so sure. It may be a case of ensuring the carriage is at the left margin -- remember that Fortran carriage control would insert a line feed at the start of the record (if the record carriage control character is a space) but not a carriage return; that happens at end of record. So if some previous operation left the carriage at some other spot on the page, you'd end up with weird looking output. The / supplies <lf><cr> to ensure all is clean.

paul
Timothe Litt
2018-02-02 15:20:33 UTC
Permalink
TYPE( ... )  is just WRITE( 5, ...) , where 5 is the DEC LUN for TTY,
which is opened by default. 

Conversion from format carriage control specifiers to device motion (for
TTYs, character such as CR, LF, FF, VT), is the responsibility of the
RTL (or device driver).  Typically, some OS device characteristic
identifies what happens; an interactive or print device converts to
device actions, while disks record the carriage control.  This can
sometimes be influenced by FORTRAN OPEN statement extensions.

RMS based systems handle the conversion in RMS by specifying the record
mode when a file is (RMS) opened.

'/' in a format is 'end of record'.

Similarly, ACCEPT is just READ(5)

There is no magic beyond what the OS reports to the RTL about the device.


On 02-Feb-18 09:46, Clem Cole wrote:
>
>
> On Fri, Feb 2, 2018 at 9:12 AM, Ken Cornetet
> <***@kimballelectronics.com
> <mailto:***@kimballelectronics.com>> wrote:
>
> I have vague recollections that FORMAT(/) prints a new line
>
> ​Sounds right - I'm O-O-O, but I​'ll try to verify with the compiler
> folks when I'm on the office again. 
>
>
> Format(20A5) takes 20 elements of an array and prints them as
> character stings padded to a width of 5 characters.
>
> ​Right..   -- mAw - means M elements of an input data type (typically
> Integer) as type Alphabet with a width of w.​
>  
>
>
> "TYPE" is not standard fortran. That must have been a DEC
> extension. Standard fortran would have used "write".
>
> ​Yes, TYPE was introduced by DEC with PDP-10 Fortran​ to allowed for
> easier terminal I/O on timesharing (original Fortran was designed for
> batch i.e. LPT, or tape style out).  I believe it was picked up on the
> standard with F90 - but again I'll have to ask the Fortran compiler
> folks.   An example of the difference between TYPE and traditional
> WRITE indeed are things like Fortran Lineprinter control, but I've
> forgotten the details.
>
>  
>
>
> -----Original Message-----
> From: Simh [mailto:simh-***@trailing-edge.com
> <mailto:simh-***@trailing-edge.com>] On Behalf Of Lars Brinkhoff
> Sent: Friday, February 2, 2018 3:41 AM
> To: Dave L <***@googlemail.com
> <mailto:***@googlemail.com>>
> Cc: ***@trailing-edge.com <mailto:***@trailing-edge.com>
> Subject: Re: [Simh] Crowther's Adventure game
>
> Dave L wrote:
> > Been a long time since I wrote fortran but IIRC the first
> character on
> > the output line was to perform carriage-control of the LPT, so you'd
> > have to always have a leading pad character such as a space in order
> > to get the output lines to be correct. Some characters were reserved
> > actions, 1 = FF from memory. I've not looked at the code
> involved but
> > that'd be my first thoughts
>
> Thanks.  Since the SPEAK subroutine is only a few lines, I'll post
> it here.  Maybe someone hows how TYPE, FORMAT(20A5), and FORMAT(/)
> work.
>
>
>
>         SUBROUTINE SPEAK(IT)
>         IMPLICIT INTEGER(A-Z)
>         COMMON RTEXT,LLINE
>         DIMENSION RTEXT(100),LLINE(1000,22)
>
>         KKT=RTEXT(IT)
>         IF(KKT.EQ.0)RETURN
> 999     TYPE 998, (LLINE(KKT,JJT),JJT=3,LLINE(KKT,2))
> 998     FORMAT(20A5)
>         KKT=KKT+1
>         IF(LLINE(KKT-1,1).NE.0)GOTO 999
> 997     TYPE 996
> 996     FORMAT(/)
>         RETURN
>         END
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com <mailto:***@trailing-edge.com>
> http://mailman.trailing-edge.com/mailman/listinfo/simh
> <http://mailman.trailing-edge.com/mailman/listinfo/simh>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com <mailto:***@trailing-edge.com>
> http://mailman.trailing-edge.com/mailman/listinfo/simh
> <http://mailman.trailing-edge.com/mailman/listinfo/simh>
>
>
> ᐧ
>
>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Carey Tyler Schug
2018-02-02 16:41:11 UTC
Permalink
I had always been told it was first written in some proprietary DEC list
processing language, and only later converted to FORTRAN.  Is this the
original conversion?

Did anybody suggest the following fix to put a blank in the carriage
control position??

998     FORMAT(1H ,20A5)


On 02/02/2018 02:22 AM, Lars Brinkhoff wrote:
> Hello,
>
> Some time ago, an old version of the Adventure game was found.
> According to Woods, the March 11 files are the originals from Crowther.
>
> https://jerz.setonhill.edu/intfic/colossal-cave-adventure-source-code/
>
> Maybe this is of come historical interest, and could be part of the SIMH
> games kits. This version builds without modifications with the DEC F40
> compiler. I tested this in ITS. Credits to the person who provided
> build instructions on YouTube!
>
> Unfortunately, there's a problem: All lines output by the program are
> missing the very first character. I tried to look at the file input
> code, and the SPEAK subroutine, but I'm not well versed in FORTRAN IV.
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Lars Brinkhoff
2018-02-02 19:07:34 UTC
Permalink
Carey Tyler Schug wrote:
> I had always been told it was first written in some proprietary DEC
> list processing language, and only later converted to FORTRAN.  Is
> this the original conversion?

They are the oldest files that have been found, as far as I know.
According to Woods, they are the Crowther version.

> Did anybody suggest the following fix to put a blank in the carriage
> control position??
>
> 998     FORMAT(1H ,20A5)

Thanks, that did the trick!

I see that the data file from which the strings are read do prefix all
strings with a space character. So it looks like the intent is that
FORMAT(20A5) should do the right thing.

Maybe the root cause is in the code reading the data file. But your
suggestion is a good workaround.
Lars Brinkhoff
2018-02-02 19:59:24 UTC
Permalink
> I see that the data file from which the strings are read do prefix all
> strings with a space character. So it looks like the intent is that
> FORMAT(20A5) should do the right thing. Maybe the root cause is in
> the code reading the data file.

For example the data file contains lines like this:

42 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.

Right after the number is a TAB character, and then there's a space
character, and then the text. "42\t YOU..."

1004 READ(1,1005)JKIND,(LLINE(I,J),J=3,22)
1005 FORMAT(1G,20A5)

1G should read a number. I'm guessing the TAB is a separator here? In
that case, 20A5 ought to read the text including the first space
character.
Timothe Litt
2018-02-02 20:53:01 UTC
Permalink
Bob's comments agree with mine.

What may be confusing people is that that reading a data file may be
different from a print file.

This depends on the OS.  In the case of VMS, it depends on the file
attributes, which tell RMS whether the file has embedded carriage
control character, FORTRAN carriage control characters, "Print" (PRN =
prefix/suffix implied") carriage control, CRLF-delimited, lines, or
LF-delimited lines, or is an ASCII stream.  In the case of TOPS-10/20, a
.DAT file type implies FORTRAN, everything else is explicit carriage
control; by convention crlf, crff, crvt.

The default (or file attribute-declared) interpretation can be
overridden with OPEN arguments; this was new in F75 or so, though DEC
supported it as an extension earlier.

Any data file that you have has probably been through some form of
conversion.  And depending on any file system attributes, may have been
converted correctly or not.  And even if correctly converted, may have
an incorrect implicit conversion where it is now.  Older programs
probably don't specify OPEN arguments and rely on the defaults.

So, depending on what platform you are on now, you may have to set
attributes or force a conversion.

Note that on VMS (and other platforms), a TYPE (or cat) command may
invoke implicit conversions different from what the FORTRAN RTL invokes.

I may have missed it, but you'll get more help if you provide the OS
that you're running on, the file attributes (for DCL, dir/full and/or
dump/header), and a hex dump of the first block or two of the file.

I know it's odd, but the 'simple' act of writing a record to a file can
be surprisingly complicated and non-portable.

On 02-Feb-18 14:59, Lars Brinkhoff wrote:
>> I see that the data file from which the strings are read do prefix all
>> strings with a space character. So it looks like the intent is that
>> FORMAT(20A5) should do the right thing. Maybe the root cause is in
>> the code reading the data file.
> For example the data file contains lines like this:
>
> 42 YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE.
>
> Right after the number is a TAB character, and then there's a space
> character, and then the text. "42\t YOU..."
>
> 1004 READ(1,1005)JKIND,(LLINE(I,J),J=3,22)
> 1005 FORMAT(1G,20A5)
>
> 1G should read a number. I'm guessing the TAB is a separator here? In
> that case, 20A5 ought to read the text including the first space
> character.
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Lars Brinkhoff
2018-02-02 21:10:58 UTC
Permalink
Timothe Litt wrote:
> I may have missed it, but you'll get more help if you provide the OS that
> you're running on, the file attributes (for DCL, dir/full and/or
> dump/header), and a hex dump of the first block or two of the file.

I'm running this in ITS, using the DECUUO TOPS-10 emulator. So maybe
it's not surprising if it doesn't work exactly right. There aren't much
in the way of file attributes.

This is what the file looks like in Unix. The linefeeds are converted
to CRLF when transferred to ITS.

00000000 31 0a 31 09 20 59 4f 55 20 41 52 45 20 53 54 41 |1.1. YOU ARE STA|
00000010 4e 44 49 4e 47 20 41 54 20 54 48 45 20 45 4e 44 |NDING AT THE END|
00000020 20 4f 46 20 41 20 52 4f 41 44 20 42 45 46 4f 52 | OF A ROAD BEFOR|
00000030 45 20 41 20 53 4d 41 4c 4c 20 42 52 49 43 4b 0a |E A SMALL BRICK.|
00000040 31 09 20 42 55 49 4c 44 49 4e 47 20 2e 20 41 52 |1. BUILDING . AR|
00000050 4f 55 4e 44 20 59 4f 55 20 49 53 20 41 20 46 4f |OUND YOU IS A FO|
00000060 52 45 53 54 2e 20 41 20 53 4d 41 4c 4c 0a 31 09 |REST. A SMALL.1.|
00000070 20 53 54 52 45 41 4d 20 46 4c 4f 57 53 20 4f 55 | STREAM FLOWS OU|
00000080 54 20 4f 46 20 54 48 45 20 42 55 49 4c 44 49 4e |T OF THE BUILDIN|
00000090 47 20 41 4e 44 20 44 4f 57 4e 20 41 20 47 55 4c |G AND DOWN A GUL|
000000a0 4c 59 2e 0a 32 09 20 59 4f 55 20 48 41 56 45 20 |LY..2. YOU HAVE |
000000b0 57 41 4c 4b 45 44 20 55 50 20 41 20 48 49 4c 4c |WALKED UP A HILL|
000000c0 2c 20 53 54 49 4c 4c 20 49 4e 20 54 48 45 20 46 |, STILL IN THE F|
000000d0 4f 52 45 53 54 0a 32 09 20 54 48 45 20 52 4f 41 |OREST.2. THE ROA|
000000e0 44 20 4e 4f 57 20 53 4c 4f 50 45 53 20 42 41 43 |D NOW SLOPES BAC|
Timothe Litt
2018-02-02 21:43:19 UTC
Permalink
> Timothe Litt wrote:
>> I may have missed it, but you'll get more help if you provide the OS that
>> you're running on, the file attributes (for DCL, dir/full and/or
>> dump/header), and a hex dump of the first block or two of the file.
> I'm running this in ITS, using the DECUUO TOPS-10 emulator. So maybe
> it's not surprising if it doesn't work exactly right. There aren't much
> in the way of file attributes.
>
> This is what the file looks like in Unix. The linefeeds are converted
> to CRLF when transferred to ITS.
>
> 00000000 31 0a 31 09 20 59 4f 55 20 41 52 45 20 53 54 41 |1.1. YOU ARE STA|
> 00000010 4e 44 49 4e 47 20 41 54 20 54 48 45 20 45 4e 44 |NDING AT THE END|
> 00000020 20 4f 46 20 41 20 52 4f 41 44 20 42 45 46 4f 52 | OF A ROAD BEFOR|
> 00000030 45 20 41 20 53 4d 41 4c 4c 20 42 52 49 43 4b 0a |E A SMALL BRICK.|
> 00000040 31 09 20 42 55 49 4c 44 49 4e 47 20 2e 20 41 52 |1. BUILDING . AR|
OK, so it's stream-crlf.  I was never much of an ITS user, and never
used FORTRAN there.  I don't think ITS had file attributes at the
filesystem level, so we don't have to worry about that level of
complication.

If a leading space (1H )  gets the data read correctly, the RTL thinks a
FORTRAN file is expected by the
user code, and is turning the <data>crlf into <sp>data.  This behavior
is is either explicit (an OPEN argument), or implicit (based on file
name, unit number, or device type).  Is the file extension .DAT?  that
may trigger this.

Is there an OPEN statement for that file?  If so, what does it include? 
If not, how is it connected to which LUN, and what's its full name (as
seen by a UUO)?

What fortran compiler/runtime?  DEC's F40?  FORTRAN-10?  Something else?

Later versions of F40 supported open (some earlier versions had CALL
OPEN(same args)).

You need the reference manual for whichever compiler/RTL you're using.

For FORTRAN-10, look for aa-n383b-tk ("TOPS-10/TOPS-20 FORTRAN Language
Reference Manual")

There is a bitsavers URL for that, but it's broken and seems broken on
the mirrors too:
http://bitsavers.org/pdf/dec/pdp10/TOPS10_softwareNotebooks/vol11/AA-N383B-TK_fortLangMan.pdf
Lars Brinkhoff
2018-02-03 19:17:26 UTC
Permalink
Timothe Litt wrote:
> Is the file extension .DAT? that may trigger this.

It is.

> Is there an OPEN statement for that file? If so, what does it include?

There's no OPEN statement. The input is opened by this:

CALL IFILE(1,'TEXT')

The accompanying file is called ADVENT.DAT. The IFILE call expects
TEXT.DAT instead.

> What fortran compiler/runtime? DEC's F40? FORTRAN-10? Something else?

DEC F40.

> You need the reference manual for whichever compiler/RTL you're using.

I have the FORTRAN IV (F40) PROGRAMMER'S REFERENCE MANUAL from
bitsavers.
Timothe Litt
2018-02-03 20:02:57 UTC
Permalink
IFILE (and OFILE) don't allow specifying a file extension.  In fact,
they only support 5 (or fewer) character file names.  (5 x 7-bit =
36-bit word - don't ask about the extra bit.)  They're a hack to allow
specifying a filename at runtime; earlier, you had to use a hardcoded
name associated with each LUN.

There were two RTLs for TOPS-10 FORTRAN.  F40 originally shipped with
LIB40, also known as FORSE.

It subsequently shipped with FOROTS - the "new" RTL for FORTRAN-10.

LIB40 doesn't support OPEN, which is necessary for control of record
conversion.

FOROTS does.  With F40, one uses CALL OPEN ; with FORTRAN-10, the OPEN
statement.

If you have FOROTS, you can replace the IFILE call with OPEN/CALL OPEN,
as documented for FORTRAN-10.

The fact that the shipped filename is 6 characters indicates that FOROTS
is expected - I don't believe that IFILE was extended for FOROTS, but
OPEN certainly allows a full filespec. 

So it looks like you have a data file intended for use with FOROTS, with
code that someone tried to adapt to use with LIB40 by substituting IFILE
for OPEN and changing the name.

You're going to have to change something.  Either the format (to discard
the carriage control), or the IFILE to OPEN (to tell the RTL discard it
for you).  If it's only read with one format statement, I'd go for that.

You can write portable FORTRAN, but this is a classic example of how
early implementations made it hard at the edges.

On 03-Feb-18 14:17, Lars Brinkhoff wrote:
> Timothe Litt wrote:
>> Is the file extension .DAT? that may trigger this.
> It is.
>
>> Is there an OPEN statement for that file? If so, what does it include?
> There's no OPEN statement. The input is opened by this:
>
> CALL IFILE(1,'TEXT')
>
> The accompanying file is called ADVENT.DAT. The IFILE call expects
> TEXT.DAT instead.
>
>> What fortran compiler/runtime? DEC's F40? FORTRAN-10? Something else?
> DEC F40.
>
>> You need the reference manual for whichever compiler/RTL you're using.
> I have the FORTRAN IV (F40) PROGRAMMER'S REFERENCE MANUAL from
> bitsavers.
Lars Brinkhoff
2018-02-05 12:16:09 UTC
Permalink
Timothe Litt wrote:
> You're going to have to change something. Either the format (to
> discard the carriage control), or the IFILE to OPEN (to tell the RTL
> discard it for you). If it's only read with one format statement, I'd
> go for that.

Thanks. I opted to add 1X to the FORMAT statements used by WRITE.
There are only three places to edit.
Tim Shoppa
2018-02-05 14:06:19 UTC
Permalink
I think adding the 1X to the FORMAT is the right thing to do long term.

The DEC TYPE-as-a-synonym-for-PRINT-but-with-different-FORMAT-usage
extension will not be familiar to the vast majority of Fortran programmers
even if they used it decades ago. I used it a LOT back in the 80's and just
barely remember it today.

Keep in mind that back in the old days, that in addition to the various
filesystem options saying whether a file was Format carriage control or
not, that there was also the ability for FORMAT statements to be
dynamically changed on the fly by a READ. So while the source code might
not have the 1X in front of it, that run-time the print FORMAT could have
been modified by a previous READ statement. I did Fortran for decades and
have only ever seen this used a few times in the real world. Possibly the
compilers and RTL's back then offered varying support even in their heyday.

Tim.

On Mon, Feb 5, 2018 at 7:16 AM, Lars Brinkhoff <***@nocrew.org> wrote:

> Timothe Litt wrote:
> > You're going to have to change something. Either the format (to
> > discard the carriage control), or the IFILE to OPEN (to tell the RTL
> > discard it for you). If it's only read with one format statement, I'd
> > go for that.
>
> Thanks. I opted to add 1X to the FORMAT statements used by WRITE.
> There are only three places to edit.
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>
Lars Brinkhoff
2018-02-05 14:28:41 UTC
Permalink
Tim Shoppa wrote:
> Keep in mind that back in the old days, that in addition to the
> various filesystem options saying whether a file was Format carriage
> control or not, that there was also the ability for FORMAT statements
> to be dynamically changed on the fly by a READ. So while the source
> code might not have the 1X in front of it, that run-time the print
> FORMAT could have been modified by a previous READ statement.

I don't think that was the case here. All other uses of FORMAT did have
the initial carriage control space character. It was just those that
printed data read from the input file that didn't. And the input file
does have that space character, but apparently it got lost on the way to
TYPE.

Anyway, no use dwelling to much on this. Thanks all for the help!
Carey Tyler Schug
2018-02-02 22:42:47 UTC
Permalink
Whoops, memories are slowly coming back, I think.  Adventure was always
Fortran.  It was Zork that was originally written in the proprietary
list processing language.


On 02/02/2018 01:07 PM, Lars Brinkhoff wrote:
> Carey Tyler Schug wrote:
>> I had always been told it was first written in some proprietary DEC
>> list processing language, and only later converted to FORTRAN.  Is
>> this the original conversion?
> They are the oldest files that have been found, as far as I know.
> According to Woods, they are the Crowther version.
>
>> Did anybody suggest the following fix to put a blank in the carriage
>> control position??
>>
>> 998     FORMAT(1H ,20A5)
> Thanks, that did the trick!
>
> I see that the data file from which the strings are read do prefix all
> strings with a space character. So it looks like the intent is that
> FORMAT(20A5) should do the right thing.
>
> Maybe the root cause is in the code reading the data file. But your
> suggestion is a good workaround.
>
Kevin Handy
2018-02-03 00:20:22 UTC
Permalink
Then, adventure was converted to many other languages by thousands of fans.
Numerous basic, C, zil, etc. versions exist. Probably the most cloned
program of all time.

On Fri, Feb 2, 2018 at 3:42 PM, Carey Tyler Schug <***@comcast.net>
wrote:

> Whoops, memories are slowly coming back, I think. Adventure was always
> Fortran. It was Zork that was originally written in the proprietary list
> processing language.
>
>
>
> On 02/02/2018 01:07 PM, Lars Brinkhoff wrote:
>
>> Carey Tyler Schug wrote:
>>
>>> I had always been told it was first written in some proprietary DEC
>>> list processing language, and only later converted to FORTRAN. Is
>>> this the original conversion?
>>>
>> They are the oldest files that have been found, as far as I know.
>> According to Woods, they are the Crowther version.
>>
>> Did anybody suggest the following fix to put a blank in the carriage
>>> control position??
>>>
>>> 998 FORMAT(1H ,20A5)
>>>
>> Thanks, that did the trick!
>>
>> I see that the data file from which the strings are read do prefix all
>> strings with a space character. So it looks like the intent is that
>> FORMAT(20A5) should do the right thing.
>>
>> Maybe the root cause is in the code reading the data file. But your
>> suggestion is a good workaround.
>>
>>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>
Bob Nelson
2018-02-03 04:18:23 UTC
Permalink
The Fortran version of Adventure may be the most authentic but if you don't want to deal with building 'ancient' code on a language few are proficient in now there are better options. Last year Eric Raymond (The Cathedral And The Bazaar guy) and a few others took the ugly machine translated C code from the last known Fortran version and rewrote/structured it into something that is much more readable and maintainable. Complete with automated testing and code coverage metrics to make sure the game play was not changed. The code is on github and can also be found here:
http://www.catb.org/esr/open-adventure/
Eric wrote several entries about the rewrite in his blog.

Bob Nelson

> On Feb 2, 2018, at 6:20 PM, Kevin Handy <***@gmail.com> wrote:
>
> Then, adventure was converted to many other languages by thousands of fans. Numerous basic, C, zil, etc. versions exist. Probably the most cloned program of all time.
>
>> On Fri, Feb 2, 2018 at 3:42 PM, Carey Tyler Schug <***@comcast.net> wrote:
>> Whoops, memories are slowly coming back, I think. Adventure was always Fortran. It was Zork that was originally written in the proprietary list processing language.
>>
>>
>>
>>> On 02/02/2018 01:07 PM, Lars Brinkhoff wrote:
>>> Carey Tyler Schug wrote:
>>>> I had always been told it was first written in some proprietary DEC
>>>> list processing language, and only later converted to FORTRAN. Is
>>>> this the original conversion?
>>> They are the oldest files that have been found, as far as I know.
>>> According to Woods, they are the Crowther version.
>>>
>>>> Did anybody suggest the following fix to put a blank in the carriage
>>>> control position??
>>>>
>>>> 998 FORMAT(1H ,20A5)
>>> Thanks, that did the trick!
>>>
>>> I see that the data file from which the strings are read do prefix all
>>> strings with a space character. So it looks like the intent is that
>>> FORMAT(20A5) should do the right thing.
>>>
>>> Maybe the root cause is in the code reading the data file. But your
>>> suggestion is a good workaround.
>>
>> _______________________________________________
>> Simh mailing list
>> ***@trailing-edge.com
>> http://mailman.trailing-edge.com/mailman/listinfo/simh
>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Phil Budne
2018-02-03 05:37:25 UTC
Permalink
> Last year Eric Raymond (The Cathedral And The Bazaar guy) and a few others took the ugly machine translated C code from the last known Fortran version and rewrote/structured it into something that is much more readable and maintainable.

To (apparently) quote the new version(*): "Well, that was remarkably pointless."

To me, a GREAT part of the magic of the original game is that it makes
a silk purse using a sow's ear (and my first two paying programming
jobs were using FORTRAN, and then working on a FORTRAN compiler)!

I recall thinking the tables (back before we called them data
structures) were a thing of beauty when I first saw them.

(*) http://www.catb.org/~esr/open-adventure/notes.html
Bob Eager
2018-02-03 11:05:38 UTC
Permalink
On Sat, 03 Feb 2018 00:37:25 -0500
Phil Budne <***@ultimate.com> wrote:

> > Last year Eric Raymond (The Cathedral And The Bazaar guy) and a few
> > others took the ugly machine translated C code from the last known
> > Fortran version and rewrote/structured it into something that is
> > much more readable and maintainable.
>
> To (apparently) quote the new version(*): "Well, that was remarkably
> pointless."
>
> To me, a GREAT part of the magic of the original game is that it makes
> a silk purse using a sow's ear (and my first two paying programming
> jobs were using FORTRAN, and then working on a FORTRAN compiler)!
>
> I recall thinking the tables (back before we called them data
> structures) were a thing of beauty when I first saw them.
>
> (*) http://www.catb.org/~esr/open-adventure/notes.html

I agree about the silk purse comment.

I have a copy of 'ed' in FORTRAN; it was very useful sometimes.
Bob Nelson
2018-02-03 15:06:20 UTC
Permalink
There are people trying to preserve significant old computer designs and operating systems in a form most likely to survive going forward such as simh. There are also people trying to preserve significant old programs in a form most likely to survive going forward. Being in a simh forum it isn't surprising to find more of the first type. There is room for everyone and it is all good.

> On Feb 3, 2018, at 5:05 AM, Bob Eager <***@tavi.co.uk> wrote:
>
> On Sat, 03 Feb 2018 00:37:25 -0500
> Phil Budne <***@ultimate.com> wrote:
>
>>> Last year Eric Raymond (The Cathedral And The Bazaar guy) and a few
>>> others took the ugly machine translated C code from the last known
>>> Fortran version and rewrote/structured it into something that is
>>> much more readable and maintainable.
>>
>> To (apparently) quote the new version(*): "Well, that was remarkably
>> pointless."
>>
>> To me, a GREAT part of the magic of the original game is that it makes
>> a silk purse using a sow's ear (and my first two paying programming
>> jobs were using FORTRAN, and then working on a FORTRAN compiler)!
>>
>> I recall thinking the tables (back before we called them data
>> structures) were a thing of beauty when I first saw them.
>>
>> (*) http://www.catb.org/~esr/open-adventure/notes.html
>
> I agree about the silk purse comment.
>
> I have a copy of 'ed' in FORTRAN; it was very useful sometimes.
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Quentin North
2018-02-03 17:29:12 UTC
Permalink
A bit off topic, but if anyone has a BCPL compiler for the Dec 10 I have the source code and files to the original Essex MUD. Unfortunately I think the compiler is lost, but I live in hope.

Sent from my iPhone

> On 3 Feb 2018, at 15:06, Bob Nelson <***@gmail.com> wrote:
>
> There are people trying to preserve significant old computer designs and operating systems in a form most likely to survive going forward such as simh. There are also people trying to preserve significant old programs in a form most likely to survive going forward. Being in a simh forum it isn't surprising to find more of the first type. There is room for everyone and it is all good.
>
>> On Feb 3, 2018, at 5:05 AM, Bob Eager <***@tavi.co.uk> wrote:
>>
>> On Sat, 03 Feb 2018 00:37:25 -0500
>> Phil Budne <***@ultimate.com> wrote:
>>
>>>> Last year Eric Raymond (The Cathedral And The Bazaar guy) and a few
>>>> others took the ugly machine translated C code from the last known
>>>> Fortran version and rewrote/structured it into something that is
>>>> much more readable and maintainable.
>>>
>>> To (apparently) quote the new version(*): "Well, that was remarkably
>>> pointless."
>>>
>>> To me, a GREAT part of the magic of the original game is that it makes
>>> a silk purse using a sow's ear (and my first two paying programming
>>> jobs were using FORTRAN, and then working on a FORTRAN compiler)!
>>>
>>> I recall thinking the tables (back before we called them data
>>> structures) were a thing of beauty when I first saw them.
>>>
>>> (*) http://www.catb.org/~esr/open-adventure/notes.html
>>
>> I agree about the silk purse comment.
>>
>> I have a copy of 'ed' in FORTRAN; it was very useful sometimes.
>> _______________________________________________
>> Simh mailing list
>> ***@trailing-edge.com
>> http://mailman.trailing-edge.com/mailman/listinfo/simh
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Dan Gahlinger
2018-02-03 17:51:47 UTC
Permalink
I have an original printout of Adventure from the mid 70's, taken from a Vax though,
It's not a version I've found on the archives, the version ID on mine is different.
I've been meaning to scan it and post it.

Ancient fortran is very hard to convert, as I found out trying to convert trek7 (https://trek7.sourceforge.net)

And I spent 38 years or so converting "the new castle" from Vax to Linux/Dos/Mac.

Dan.
________________________________
From: Simh <simh-***@trailing-edge.com> on behalf of Quentin North <***@quentin.org.uk>
Sent: February 3, 2018 12:29 PM
To: Bob Nelson
Cc: ***@trailing-edge.com
Subject: Re: [Simh] Crowther's Adventure game

A bit off topic, but if anyone has a BCPL compiler for the Dec 10 I have the source code and files to the original Essex MUD. Unfortunately I think the compiler is lost, but I live in hope.

Sent from my iPhone

> On 3 Feb 2018, at 15:06, Bob Nelson <***@gmail.com> wrote:
>
> There are people trying to preserve significant old computer designs and operating systems in a form most likely to survive going forward such as simh. There are also people trying to preserve significant old programs in a form most likely to survive going forward. Being in a simh forum it isn't surprising to find more of the first type. There is room for everyone and it is all good.
>
>> On Feb 3, 2018, at 5:05 AM, Bob Eager <***@tavi.co.uk> wrote:
>>
>> On Sat, 03 Feb 2018 00:37:25 -0500
>> Phil Budne <***@ultimate.com> wrote:
>>
>>>> Last year Eric Raymond (The Cathedral And The Bazaar guy) and a few
>>>> others took the ugly machine translated C code from the last known
>>>> Fortran version and rewrote/structured it into something that is
>>>> much more readable and maintainable.
>>>
>>> To (apparently) quote the new version(*): "Well, that was remarkably
>>> pointless."
>>>
>>> To me, a GREAT part of the magic of the original game is that it makes
>>> a silk purse using a sow's ear (and my first two paying programming
>>> jobs were using FORTRAN, and then working on a FORTRAN compiler)!
>>>
>>> I recall thinking the tables (back before we called them data
>>> structures) were a thing of beauty when I first saw them.
>>>
>>> (*) http://www.catb.org/~esr/open-adventure/notes.html
>>
>> I agree about the silk purse comment.
>>
>> I have a copy of 'ed' in FORTRAN; it was very useful sometimes.
>> _______________________________________________
>> Simh mailing list
>> ***@trailing-edge.com
>> http://mailman.trailing-edge.com/mailman/listinfo/simh
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Lars Brinkhoff
2018-02-03 18:04:34 UTC
Permalink
Quentin North wrote:
> A bit off topic, but if anyone has a BCPL compiler for the Dec 10 I
> have the source code and files to the original Essex
> MUD. Unfortunately I think the compiler is lost, but I live in hope.

You're in luck. The Essex BCPL surfaced last year.

https://github.com/PDP-10/essex-bcpl
Quentin North
2018-02-03 19:13:37 UTC
Permalink
That's amazing! I'll have to see if I can get it all going as i have never opped a Dec 10 so it will be a learning journey.

Sent from my iPhone

> On 3 Feb 2018, at 18:04, Lars Brinkhoff <***@nocrew.org> wrote:
>
> Quentin North wrote:
>> A bit off topic, but if anyone has a BCPL compiler for the Dec 10 I
>> have the source code and files to the original Essex
>> MUD. Unfortunately I think the compiler is lost, but I live in hope.
>
> You're in luck. The Essex BCPL surfaced last year.
>
> https://github.com/PDP-10/essex-bcpl
Lars Brinkhoff
2018-02-03 07:06:42 UTC
Permalink
Carey Tyler wrote:
> Whoops, memories are slowly coming back, I think.  Adventure was
> always Fortran.  It was Zork that was originally written in the
> proprietary list processing language.

Right, Muddle aka MDL. Not to be confused with Infocom's ZIL.
Larry Baker
2018-02-03 04:30:02 UTC
Permalink
Bob,

Fortran—especially of that era—is a simple language. It wasn't clear to me what the end goal was of the conversation. Starting with old DEC-10 code and trying to get it to run on Linux? Anyway, none of the Fortran code that was posted here was difficult at all to understand. Of course, I know it from being proficient in Fortran for decades. But, a slight but of Google'ing would have easily solved any porting problems. File formats being exchanged across different platforms is another issue. And, language independent. I'm sure you know that RMS file formats are far richer and expressive of their content than a non-descriptive stream of bytes. Oh, except for the magic 16-bits at the front of something executable. Or the suffix that help you infer the semantics. A file system with limited metadata forces such hacks.

Larry Baker
US Geological Survey
650-329-5608
***@usgs.gov



> On 2 Feb 2018, at 8:18:31 PM, simh-***@trailing-edge.com wrote:
>
> Message: 4
> Date: Fri, 2 Feb 2018 22:18:23 -0600
> From: Bob Nelson <***@gmail.com <mailto:***@gmail.com>>
> To: Kevin Handy <***@gmail.com <mailto:***@gmail.com>>
> Cc: Carey Tyler Schug <***@comcast.net <mailto:***@comcast.net>>, Simh
> <***@trailing-edge.com <mailto:***@trailing-edge.com>>
> Subject: Re: [Simh] Crowther's Adventure game
> Message-ID: <13523F5C-6C01-4765-B545-***@gmail.com <mailto:13523F5C-6C01-4765-B545-***@gmail.com>>
> Content-Type: text/plain; charset="utf-8"
>
> The Fortran version of Adventure may be the most authentic but if you don't want to deal with building 'ancient' code on a language few are proficient in now there are better options. Last year Eric Raymond (The Cathedral And The Bazaar guy) and a few others took the ugly machine translated C code from the last known Fortran version and rewrote/structured it into something that is much more readable and maintainable. Complete with automated testing and code coverage metrics to make sure the game play was not changed. The code is on github and can also be found here:
> http://www.catb.org/esr/open-adventure/ <http://www.catb.org/esr/open-adventure/>
> Eric wrote several entries about the rewrite in his blog.
>
> Bob Nelson
Lars Brinkhoff
2018-02-03 09:57:48 UTC
Permalink
Larry Baker wrote:
> Fortran—especially of that era—is a simple language. It wasn't clear
> to me what the end goal was of the conversation. Starting with old
> DEC-10 code and trying to get it to run on Linux?

Starting with old DEC-10 code and trying to get it to run on an emulated
DEC-10. Except another operating system.

> Anyway, none of the Fortran code that was posted here was difficult at
> all to understand. Of course, I know it from being proficient in
> Fortran for decades. But, a slight but of Google'ing would have easily
> solved any porting problems.

Agreed. I tried to do my homework, and read a few Fortran IV tutorials
as well as the original F40 manual. But I don't think this particular
problem had an obvious cause.

For now I'm content with the proposed solution. I don't think it's
worth anyones time to dig further into this.
Larry Baker
2018-02-03 22:00:28 UTC
Permalink
Dan,

The link to your Source Forge page you posted does not work for me. I found TREK7 it at https://sourceforge.net/projects/trek7/ <https://sourceforge.net/projects/trek7/>.

I tried to find the sources you started with. I found a ZIP file called trk7fsrc.zip <https://sourceforge.net/projects/trek7/files/trek7/status/trk7fsrc.zip/download>. When I compiled the first file, TREKA.FOR, I can see typos and lines extending past column 72. This could not be the original source code that worked at one time. Was this scanned? Has this been altered from a known working version, other than the scanning errors? Like, the lines that extend past column 72? The code clearly expects column 72 to wrap to column 7 of a continuation line, which is how Fortran fixed-format source works.

Ancient Fortran should not be that hard to convert, especially if you know the original platform. I saw LIB$ calls, which leads me to believe this was maybe VAX Fortran? I see the use of FORMAT specifiers without lengths, like F, not F7.2. It would be nice to know the precise meaning of that non-standard Fortran. But, very new Fortran sill also accept FORMAT specifiers without lengths now. And, there is non-advancing support for Fortran I/O now. Fortran INTRINSICS should be straightforward. The library calls will be harder.

Want help? What platform do you want to run the code on?

Larry Baker
US Geological Survey
650-329-5608
***@usgs.gov




> On Feb 3, 2018, at 11:13 AM, simh-***@trailing-edge.com wrote:
>
> Message: 2
> Date: Sat, 3 Feb 2018 17:51:47 +0000
> From: Dan Gahlinger <***@hotmail.com <mailto:***@hotmail.com>>
> To: Quentin North <***@quentin.org.uk <mailto:***@quentin.org.uk>>, Bob Nelson
> <***@gmail.com <mailto:***@gmail.com>>
> Cc: "***@trailing-edge.com <mailto:***@trailing-edge.com>" <***@trailing-edge.com <mailto:***@trailing-edge.com>>
> Subject: Re: [Simh] Crowther's Adventure game
> Message-ID:
> <***@DM3PR16MB0813.namprd16.prod.outlook.com <mailto:***@DM3PR16MB0813.namprd16.prod.outlook.com>>
>
> Content-Type: text/plain; charset="utf-8"
>
> I have an original printout of Adventure from the mid 70's, taken from a Vax though,
> It's not a version I've found on the archives, the version ID on mine is different.
> I've been meaning to scan it and post it.
>
> Ancient fortran is very hard to convert, as I found out trying to convert trek7 (https://trek7.sourceforge.net <https://trek7.sourceforge.net/>)
>
> And I spent 38 years or so converting "the new castle" from Vax to Linux/Dos/Mac.
>
> Dan.
Dan Gahlinger
2018-02-03 22:32:12 UTC
Permalink
weird - http://trek7.sourceforge.net/
Works perfectly for me

but yes, it's Fortran on the Vax from 1976-1978 timeframe
it was Fortran/IV and/or/mixed Fortran/77
so not "standard" fortran at all.
actually the code wouldn't compile at all with compaq fortran (IBM) or even on a vax with newer versions,
which led to a lot of speculation that it was Fortran/IV or some hybrid.

there are several repositories of the trek7 code under that link,
in the vms directory you'll find code for the vax, that does compile and link, and the vax EXE is there, supplied.

the linux directory has the code for linux, with compiled binary
as does the does version (compiled with Intel Fortran I think, it's been a while)
and then there's the newest directory - not sure which "strain" that was.

Hey, I've been working on that project since around 1978, it's been a very long time, details escape.

It went through cycles, scanning in, and correcting, but then later cycles actually ended up being hand-typed.
you'll notice comments in the code about it being hand-checked and type-correct exact to the printout that was being worked from.

the code in the various dirs (dos, linux, vms) does all compile, the binaries are there, and they do run.

This project is about as close to end of life as you can get, I really only posted it so it would survive me, when that day comes.
I wanted it passed on to future generations. it really is the best trek game I've ever played, and I do mean best, and I do mean ever.
Nothing else comes close.

One final thing I always wanted to complete, but not sure it's even possible any more, is the multi-player aspect.

on the vax/vms version you could assign terminals (if you had the privileges) to have up to four players at once.

You can do the same sort of thing in linux in a different way - but I'd like to make that work again, on linux.

And for Dos/Windows or possible Mac port (hah) someday - I'm not sure that will ever be possible.
Dos/Windows doesn't have any concept of "terminals", and I'm totally incapable of writing a TCP/Socket interface for it, way beyond me.
and it being fortran, well, that might be impossible too. I have no idea. and I'm not capable, so there we are.

I own several vaxstation 3100/78's and I have vms on simh as well, so that's how I test.
I miss my favorite trek game.

And BTW for another trip down memory lane check out: http://trek7.sourceforge.net/files/castle/
This is "The New Castle" from Vax/VMS circa 1978, the project I finally completed after 38 years.

I can't find any. testers to weed out any remaining bugs in Castle, so it is what it is.

I'd appreciate if you could give Trek7 a once-over (or something).
The idea of converting the code to something reasonable has been toyed with, but most important to me is the "feel" of the game,
without that, it's just not trek7 any more.
Please dont compare it to net-trek, it's not even close. shudder.

I used to be fluent in fortran, many moons ago, but I've forgotten almost all of it.

Again, primary purpose - pass it on, maybe someday someone will enjoy it as much as I did.
Networking multi-player in linux would be really cool.

I'd love to have another multi-player game some day.

And give Castle a whirl, I left all the debugging in place just in case.

thanks, and hope you enjoy

Dan.
________________________________
From: Larry Baker <***@usgs.gov>
Sent: February 3, 2018 5:00 PM
To: ***@hotmail.com
Cc: ***@trailing-edge.com
Subject: Re: [Simh] Crowther's Adventure game

Dan,

The link to your Source Forge page you posted does not work for me. I found TREK7 it at https://sourceforge.net/projects/trek7/.

I tried to find the sources you started with. I found a ZIP file called trk7fsrc.zip<https://sourceforge.net/projects/trek7/files/trek7/status/trk7fsrc.zip/download>. When I compiled the first file, TREKA.FOR, I can see typos and lines extending past column 72. This could not be the original source code that worked at one time. Was this scanned? Has this been altered from a known working version, other than the scanning errors? Like, the lines that extend past column 72? The code clearly expects column 72 to wrap to column 7 of a continuation line, which is how Fortran fixed-format source works.

Ancient Fortran should not be that hard to convert, especially if you know the original platform. I saw LIB$ calls, which leads me to believe this was maybe VAX Fortran? I see the use of FORMAT specifiers without lengths, like F, not F7.2. It would be nice to know the precise meaning of that non-standard Fortran. But, very new Fortran sill also accept FORMAT specifiers without lengths now. And, there is non-advancing support for Fortran I/O now. Fortran INTRINSICS should be straightforward. The library calls will be harder.

Want help? What platform do you want to run the code on?

Larry Baker
US Geological Survey
650-329-5608
***@usgs.gov<mailto:***@usgs.gov>




On Feb 3, 2018, at 11:13 AM, simh-***@trailing-edge.com<mailto:simh-***@trailing-edge.com> wrote:

Message: 2
Date: Sat, 3 Feb 2018 17:51:47 +0000
From: Dan Gahlinger <***@hotmail.com<mailto:***@hotmail.com>>
To: Quentin North <***@quentin.org.uk<mailto:***@quentin.org.uk>>, Bob Nelson
<***@gmail.com<mailto:***@gmail.com>>
Cc: "***@trailing-edge.com<mailto:***@trailing-edge.com>" <***@trailing-edge.com<mailto:***@trailing-edge.com>>
Subject: Re: [Simh] Crowther's Adventure game
Message-ID:
<***@DM3PR16MB0813.namprd16.prod.outlook.com<mailto:***@DM3PR16MB0813.namprd16.prod.outlook.com>>

Content-Type: text/plain; charset="utf-8"

I have an original printout of Adventure from the mid 70's, taken from a Vax though,
It's not a version I've found on the archives, the version ID on mine is different.
I've been meaning to scan it and post it.

Ancient fortran is very hard to convert, as I found out trying to convert trek7 (https://trek7.sourceforge.net<https://trek7.sourceforge.net/>)

And I spent 38 years or so converting "the new castle" from Vax to Linux/Dos/Mac.

Dan.
Johnny Billquist
2018-02-04 01:20:59 UTC
Permalink
Um... FORTRAN IV and FORTRAN-77 are as much standard as anything you
could ever come up with. Now, DEC did do extensions, which, if you used,
made it difficult to compile using other compilers, but FORTRAN IV
itself, along with FORTRAN-77 is very much standards.

The biggest oddball non-standard variant would be DEC's FORTRAN-IV-PLUS.
It's sortof a hybrid between FORTRAN IV and FORTRAN-77.

All that said, if the code can be made to compile and link under FORTRAN
IV or FORTRAN-77 under RSX, then I can offer a machine to do it on,
that's on the internet. And I even have a library for talking TCP/IP
from FORTRAN which is really easy to use.

Let me know if you're interested.



On 2018-02-03 23:32, Dan Gahlinger wrote:
> weird - http://trek7.sourceforge.net/
> Works perfectly for me
>
> but yes, it's Fortran on the Vax from 1976-1978 timeframe
> it was Fortran/IV and/or/mixed Fortran/77
> so not "standard" fortran at all.
> actually the code wouldn't compile at all with compaq fortran (IBM) or
> even on a vax with newer versions,
> which led to a lot of speculation that it was Fortran/IV or some hybrid.
>
> there are several repositories of the trek7 code under that link,
> in the vms directory you'll find code for the vax, that does compile and
> link, and the vax EXE is there, supplied.
>
> the linux directory has the code for linux, with compiled binary
> as does the does version (compiled with Intel Fortran I think, it's been
> a while)
> and then there's the newest directory - not sure which "strain" that was.
>
> Hey, I've been working on that project since around 1978, it's been a
> very long time, details escape.
>
> It went through cycles, scanning in, and correcting, but then later
> cycles actually ended up being hand-typed.
> you'll notice comments in the code about it being hand-checked and
> type-correct exact to the printout that was being worked from.
>
> the code in the various dirs (dos, linux, vms) does all compile, the
> binaries are there, and they do run.
>
> This project is about as close to end of life as you can get, I really
> only posted it so it would survive me, when that day comes.
> I wanted it passed on to future generations. it really is the best trek
> game I've ever played, and I do mean best, and I do mean ever.
> Nothing else comes close.
>
> One final thing I always wanted to complete, but not sure it's even
> possible any more, is the multi-player aspect.
>
> on the vax/vms version you could assign terminals (if you had the
> privileges) to have up to four players at once.
>
> You can do the same sort of thing in linux in a different way - but I'd
> like to make that work again, on linux.
>
> And for Dos/Windows or possible Mac port (hah) someday - I'm not sure
> that will ever be possible.
> Dos/Windows doesn't have any concept of "terminals", and I'm totally
> incapable of writing a TCP/Socket interface for it, way beyond me.
> and it being fortran, well, that might be impossible too. I have no
> idea. and I'm not capable, so there we are.
>
> I own several vaxstation 3100/78's and I have vms on simh as well, so
> that's how I test.
> I miss my favorite trek game.
>
> And BTW for another trip down memory lane check out:
> http://trek7.sourceforge.net/files/castle/
> This is "The New Castle" from Vax/VMS circa 1978, the project I finally
> completed after 38 years.
>
> I can't find any. testers to weed out any remaining bugs in Castle, so
> it is what it is.
>
> I'd appreciate if you could give Trek7 a once-over (or something).
> The idea of converting the code to something reasonable has been toyed
> with, but most important to me is the "feel" of the game,
> without that, it's just not trek7 any more.
> Please dont compare it to net-trek, it's not even close. shudder.
>
> I used to be fluent in fortran, many moons ago, but I've forgotten
> almost all of it.
>
> Again, primary purpose - pass it on, maybe someday someone will enjoy it
> as much as I did.
> Networking multi-player in linux would be really cool.
>
> I'd love to have another multi-player game some day.
>
> And give Castle a whirl, I left all the debugging in place just in case.
>
> thanks, and hope you enjoy
>
> Dan.
> ------------------------------------------------------------------------
> *From:* Larry Baker <***@usgs.gov>
> *Sent:* February 3, 2018 5:00 PM
> *To:* ***@hotmail.com
> *Cc:* ***@trailing-edge.com
> *Subject:* Re: [Simh] Crowther's Adventure game
> Dan,
>
> The link to your Source Forge page you posted does not work for me.  I
> found TREK7 it at https://sourceforge.net/projects/trek7/.
>
> I tried to find the sources you started with.  I found a ZIP file called
> trk7fsrc.zip
> <https://sourceforge.net/projects/trek7/files/trek7/status/trk7fsrc.zip/download>.
>  When I compiled the first file, TREKA.FOR, I can see typos and lines
> extending past column 72.  This could not be the original source code
> that worked at one time.  Was this scanned?  Has this been altered from
> a known working version, other than the scanning errors?  Like, the
> lines that extend past column 72?  The code clearly expects column 72 to
> wrap to column 7 of a continuation line, which is how Fortran
> fixed-format source works.
>
> Ancient Fortran should not be that hard to convert, especially if you
> know the original platform.  I saw LIB$ calls, which leads me to believe
> this was maybe VAX Fortran?  I see the use of FORMAT specifiers without
> lengths, like F, not F7.2.  It would be nice to know the precise meaning
> of that non-standard Fortran.  But, very new Fortran sill also accept
> FORMAT specifiers without lengths now.  And, there is non-advancing
> support for Fortran I/O now.  Fortran INTRINSICS should be
> straightforward.  The library calls will be harder.
>
> Want help?  What platform do you want to run the code on?
>
> Larry Baker
> US Geological Survey
> 650-329-5608
> ***@usgs.gov <mailto:***@usgs.gov>
>
>
>
>
>> On Feb 3, 2018, at 11:13 AM, simh-***@trailing-edge.com
>> <mailto:simh-***@trailing-edge.com> wrote:
>>
>> Message: 2
>> Date: Sat, 3 Feb 2018 17:51:47 +0000
>> From: Dan Gahlinger <***@hotmail.com <mailto:***@hotmail.com>>
>> To: Quentin North <***@quentin.org.uk
>> <mailto:***@quentin.org.uk>>, Bob Nelson
>> <***@gmail.com <mailto:***@gmail.com>>
>> Cc: "***@trailing-edge.com <mailto:***@trailing-edge.com>"
>> <***@trailing-edge.com <mailto:***@trailing-edge.com>>
>> Subject: Re: [Simh] Crowther's Adventure game
>> Message-ID:
>> <***@DM3PR16MB0813.namprd16.prod.outlook.com
>> <mailto:***@DM3PR16MB0813.namprd16.prod.outlook.com>>
>>
>> Content-Type: text/plain; charset="utf-8"
>>
>> I have an original printout of Adventure from the mid 70's, taken from
>> a Vax though,
>> It's not a version I've found on the archives, the version ID on mine
>> is different.
>> I've been meaning to scan it and post it.
>>
>> Ancient fortran is very hard to convert, as I found out trying to
>> convert trek7 (https://trek7.sourceforge.net
>> <https://trek7.sourceforge.net/>)
>>
>> And I spent 38 years or so converting "the new castle" from Vax to
>> Linux/Dos/Mac.
>>
>> Dan.
>
>
>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>


--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Dan Gahlinger
2018-02-04 01:28:21 UTC
Permalink
It may likely have been that plus version, hard to say.
the code in the vms directory should compile on a vms (or simh) 7.3 using compaq fortran or whatever packages with it.

that code is likely workable to multi-player on vax,

but I'd like to find a way to get the linux code to do multiplayer.

with terminal privileges it's possible to open devices like pts/8 and so forth

i'm wondering if the vms "hack" for opening terminals could be modified to do that?
certainly seems it'd be a lot easier than adding a ton of tcp code, don't you think?
i mean with tcp, every read and write would have to be redone.

but I think step one is still to go through and fix the vax "odd-isms" as it were, stuff that doesn't translate to modern fortran.

i'm useless for any of this.
but would appreciate if people could

Dan.
________________________________
From: Simh <simh-***@trailing-edge.com> on behalf of Johnny Billquist <***@softjar.se>
Sent: February 3, 2018 8:20 PM
To: ***@trailing-edge.com
Subject: Re: [Simh] Crowther's Adventure game

Um... FORTRAN IV and FORTRAN-77 are as much standard as anything you
could ever come up with. Now, DEC did do extensions, which, if you used,
made it difficult to compile using other compilers, but FORTRAN IV
itself, along with FORTRAN-77 is very much standards.

The biggest oddball non-standard variant would be DEC's FORTRAN-IV-PLUS.
It's sortof a hybrid between FORTRAN IV and FORTRAN-77.

All that said, if the code can be made to compile and link under FORTRAN
IV or FORTRAN-77 under RSX, then I can offer a machine to do it on,
that's on the internet. And I even have a library for talking TCP/IP
from FORTRAN which is really easy to use.

Let me know if you're interested.



On 2018-02-03 23:32, Dan Gahlinger wrote:
> weird - http://trek7.sourceforge.net/
> Works perfectly for me
>
> but yes, it's Fortran on the Vax from 1976-1978 timeframe
> it was Fortran/IV and/or/mixed Fortran/77
> so not "standard" fortran at all.
> actually the code wouldn't compile at all with compaq fortran (IBM) or
> even on a vax with newer versions,
> which led to a lot of speculation that it was Fortran/IV or some hybrid.
>
> there are several repositories of the trek7 code under that link,
> in the vms directory you'll find code for the vax, that does compile and
> link, and the vax EXE is there, supplied.
>
> the linux directory has the code for linux, with compiled binary
> as does the does version (compiled with Intel Fortran I think, it's been
> a while)
> and then there's the newest directory - not sure which "strain" that was.
>
> Hey, I've been working on that project since around 1978, it's been a
> very long time, details escape.
>
> It went through cycles, scanning in, and correcting, but then later
> cycles actually ended up being hand-typed.
> you'll notice comments in the code about it being hand-checked and
> type-correct exact to the printout that was being worked from.
>
> the code in the various dirs (dos, linux, vms) does all compile, the
> binaries are there, and they do run.
>
> This project is about as close to end of life as you can get, I really
> only posted it so it would survive me, when that day comes.
> I wanted it passed on to future generations. it really is the best trek
> game I've ever played, and I do mean best, and I do mean ever.
> Nothing else comes close.
>
> One final thing I always wanted to complete, but not sure it's even
> possible any more, is the multi-player aspect.
>
> on the vax/vms version you could assign terminals (if you had the
> privileges) to have up to four players at once.
>
> You can do the same sort of thing in linux in a different way - but I'd
> like to make that work again, on linux.
>
> And for Dos/Windows or possible Mac port (hah) someday - I'm not sure
> that will ever be possible.
> Dos/Windows doesn't have any concept of "terminals", and I'm totally
> incapable of writing a TCP/Socket interface for it, way beyond me.
> and it being fortran, well, that might be impossible too. I have no
> idea. and I'm not capable, so there we are.
>
> I own several vaxstation 3100/78's and I have vms on simh as well, so
> that's how I test.
> I miss my favorite trek game.
>
> And BTW for another trip down memory lane check out:
> http://trek7.sourceforge.net/files/castle/
> This is "The New Castle" from Vax/VMS circa 1978, the project I finally
> completed after 38 years.
>
> I can't find any. testers to weed out any remaining bugs in Castle, so
> it is what it is.
>
> I'd appreciate if you could give Trek7 a once-over (or something).
> The idea of converting the code to something reasonable has been toyed
> with, but most important to me is the "feel" of the game,
> without that, it's just not trek7 any more.
> Please dont compare it to net-trek, it's not even close. shudder.
>
> I used to be fluent in fortran, many moons ago, but I've forgotten
> almost all of it.
>
> Again, primary purpose - pass it on, maybe someday someone will enjoy it
> as much as I did.
> Networking multi-player in linux would be really cool.
>
> I'd love to have another multi-player game some day.
>
> And give Castle a whirl, I left all the debugging in place just in case.
>
> thanks, and hope you enjoy
>
> Dan.
> ------------------------------------------------------------------------
> *From:* Larry Baker <***@usgs.gov>
> *Sent:* February 3, 2018 5:00 PM
> *To:* ***@hotmail.com
> *Cc:* ***@trailing-edge.com
> *Subject:* Re: [Simh] Crowther's Adventure game
> Dan,
>
> The link to your Source Forge page you posted does not work for me. I
> found TREK7 it at https://sourceforge.net/projects/trek7/.
>
> I tried to find the sources you started with. I found a ZIP file called
> trk7fsrc.zip
> <https://sourceforge.net/projects/trek7/files/trek7/status/trk7fsrc.zip/download>.
> When I compiled the first file, TREKA.FOR, I can see typos and lines
> extending past column 72. This could not be the original source code
> that worked at one time. Was this scanned? Has this been altered from
> a known working version, other than the scanning errors? Like, the
> lines that extend past column 72? The code clearly expects column 72 to
> wrap to column 7 of a continuation line, which is how Fortran
> fixed-format source works.
>
> Ancient Fortran should not be that hard to convert, especially if you
> know the original platform. I saw LIB$ calls, which leads me to believe
> this was maybe VAX Fortran? I see the use of FORMAT specifiers without
> lengths, like F, not F7.2. It would be nice to know the precise meaning
> of that non-standard Fortran. But, very new Fortran sill also accept
> FORMAT specifiers without lengths now. And, there is non-advancing
> support for Fortran I/O now. Fortran INTRINSICS should be
> straightforward. The library calls will be harder.
>
> Want help? What platform do you want to run the code on?
>
> Larry Baker
> US Geological Survey
> 650-329-5608
> ***@usgs.gov <mailto:***@usgs.gov>
>
>
>
>
>> On Feb 3, 2018, at 11:13 AM, simh-***@trailing-edge.com
>> <mailto:simh-***@trailing-edge.com> wrote:
>>
>> Message: 2
>> Date: Sat, 3 Feb 2018 17:51:47 +0000
>> From: Dan Gahlinger <***@hotmail.com <mailto:***@hotmail.com>>
>> To: Quentin North <***@quentin.org.uk
>> <mailto:***@quentin.org.uk>>, Bob Nelson
>> <***@gmail.com <mailto:***@gmail.com>>
>> Cc: "***@trailing-edge.com <mailto:***@trailing-edge.com>"
>> <***@trailing-edge.com <mailto:***@trailing-edge.com>>
>> Subject: Re: [Simh] Crowther's Adventure game
>> Message-ID:
>> <***@DM3PR16MB0813.namprd16.prod.outlook.com
>> <mailto:***@DM3PR16MB0813.namprd16.prod.outlook.com>>
>>
>> Content-Type: text/plain; charset="utf-8"
>>
>> I have an original printout of Adventure from the mid 70's, taken from
>> a Vax though,
>> It's not a version I've found on the archives, the version ID on mine
>> is different.
>> I've been meaning to scan it and post it.
>>
>> Ancient fortran is very hard to convert, as I found out trying to
>> convert trek7 (https://trek7.sourceforge.net
>> <https://trek7.sourceforge.net/>)
>>
>> And I spent 38 years or so converting "the new castle" from Vax to
>> Linux/Dos/Mac.
>>
>> Dan.
>
>
>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>


--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Johnny Billquist
2018-02-04 01:43:07 UTC
Permalink
I took a quick peek, and most of the code looked very straight forward.

A caveat is that most any Fortran compiler I've seen or heard of for
Linux is not so good. So, if you have problems on the Linux side, I'd
probably blame that compiler sooner than the code... :-)

I didn't spot where any multiplayer-handling was done in the code, so I
can't comment much. But the TCP/IP package I have for RSX allows you to
just do you normal READ/WRITE/TYPE/ACCEPT stuff in your Fortran code,
and it just ends up on a TCP socket. So essentially nothing would need
changing in the code, apart from just opening the connection. And
opening a connection is really just one simple function call as well.

But as far as I can tell, this game is turn based, so essentially one
user at a time enters a set of commands, and then everything is done in
order once commands have entered. Which makes it easier when writing the
code, I guess, but also a bit less fun when multi-user, since everyone
might have to wait for others to complete commands before they can do
anything.

But I might have missed or misunderstood things here.

Anyway, I don't really have time to play around with this and actually
help you rewrite or test code. I can possibly help with giving access to
a machine where I have both FORTRAN IV and FORTRAN-77, along with a
library that makes it dead easy to write code that also talks over
TCP/IP. But it is under RSX, so if you use loads and loads of memory, it
will probably not be possible.

Johnny

On 2018-02-04 02:28, Dan Gahlinger wrote:
> It may likely have been that plus version, hard to say.
> the code in the vms directory should compile on a vms (or simh) 7.3
> using compaq fortran or whatever packages with it.
>
> that code is likely workable to multi-player on vax,
>
> but I'd like to find a way to get the linux code to do multiplayer.
>
> with terminal privileges it's possible to open devices like pts/8 and so
> forth
>
> i'm wondering if the vms "hack" for opening terminals could be modified
> to do that?
> certainly seems it'd be a lot easier than adding a ton of tcp code,
> don't you think?
> i mean with tcp, every read and write would have to be redone.
>
> but I think step one is still to go through and fix the vax "odd-isms"
> as it were, stuff that doesn't translate to modern fortran.
>
> i'm useless for any of this.
> but would appreciate if people could
>
> Dan.
> ------------------------------------------------------------------------
> *From:* Simh <simh-***@trailing-edge.com> on behalf of Johnny
> Billquist <***@softjar.se>
> *Sent:* February 3, 2018 8:20 PM
> *To:* ***@trailing-edge.com
> *Subject:* Re: [Simh] Crowther's Adventure game
> Um... FORTRAN IV and FORTRAN-77 are as much standard as anything you
> could ever come up with. Now, DEC did do extensions, which, if you used,
> made it difficult to compile using other compilers, but FORTRAN IV
> itself, along with FORTRAN-77 is very much standards.
>
> The biggest oddball non-standard variant would be DEC's FORTRAN-IV-PLUS.
> It's sortof a hybrid between FORTRAN IV and FORTRAN-77.
>
> All that said, if the code can be made to compile and link under FORTRAN
> IV or FORTRAN-77 under RSX, then I can offer a machine to do it on,
> that's on the internet. And I even have a library for talking TCP/IP
> from FORTRAN which is really easy to use.
>
> Let me know if you're interested.
>
>
>
> On 2018-02-03 23:32, Dan Gahlinger wrote:
>> weird - http://trek7.sourceforge.net/
>> Works perfectly for me
>>
>> but yes, it's Fortran on the Vax from 1976-1978 timeframe
>> it was Fortran/IV and/or/mixed Fortran/77
>> so not "standard" fortran at all.
>> actually the code wouldn't compile at all with compaq fortran (IBM) or
>> even on a vax with newer versions,
>> which led to a lot of speculation that it was Fortran/IV or some hybrid.
>>
>> there are several repositories of the trek7 code under that link,
>> in the vms directory you'll find code for the vax, that does compile and
>> link, and the vax EXE is there, supplied.
>>
>> the linux directory has the code for linux, with compiled binary
>> as does the does version (compiled with Intel Fortran I think, it's been
>> a while)
>> and then there's the newest directory - not sure which "strain" that was.
>>
>> Hey, I've been working on that project since around 1978, it's been a
>> very long time, details escape.
>>
>> It went through cycles, scanning in, and correcting, but then later
>> cycles actually ended up being hand-typed.
>> you'll notice comments in the code about it being hand-checked and
>> type-correct exact to the printout that was being worked from.
>>
>> the code in the various dirs (dos, linux, vms) does all compile, the
>> binaries are there, and they do run.
>>
>> This project is about as close to end of life as you can get, I really
>> only posted it so it would survive me, when that day comes.
>> I wanted it passed on to future generations. it really is the best trek
>> game I've ever played, and I do mean best, and I do mean ever.
>> Nothing else comes close.
>>
>> One final thing I always wanted to complete, but not sure it's even
>> possible any more, is the multi-player aspect.
>>
>> on the vax/vms version you could assign terminals (if you had the
>> privileges) to have up to four players at once.
>>
>> You can do the same sort of thing in linux in a different way - but I'd
>> like to make that work again, on linux.
>>
>> And for Dos/Windows or possible Mac port (hah) someday - I'm not sure
>> that will ever be possible.
>> Dos/Windows doesn't have any concept of "terminals", and I'm totally
>> incapable of writing a TCP/Socket interface for it, way beyond me.
>> and it being fortran, well, that might be impossible too. I have no
>> idea. and I'm not capable, so there we are.
>>
>> I own several vaxstation 3100/78's and I have vms on simh as well, so
>> that's how I test.
>> I miss my favorite trek game.
>>
>> And BTW for another trip down memory lane check out:
>> http://trek7.sourceforge.net/files/castle/
>> This is "The New Castle" from Vax/VMS circa 1978, the project I finally
>> completed after 38 years.
>>
>> I can't find any. testers to weed out any remaining bugs in Castle, so
>> it is what it is.
>>
>> I'd appreciate if you could give Trek7 a once-over (or something).
>> The idea of converting the code to something reasonable has been toyed
>> with, but most important to me is the "feel" of the game,
>> without that, it's just not trek7 any more.
>> Please dont compare it to net-trek, it's not even close. shudder.
>>
>> I used to be fluent in fortran, many moons ago, but I've forgotten
>> almost all of it.
>>
>> Again, primary purpose - pass it on, maybe someday someone will enjoy it
>> as much as I did.
>> Networking multi-player in linux would be really cool.
>>
>> I'd love to have another multi-player game some day.
>>
>> And give Castle a whirl, I left all the debugging in place just in case.
>>
>> thanks, and hope you enjoy
>>
>> Dan.
>> ------------------------------------------------------------------------
>> *From:* Larry Baker <***@usgs.gov>
>> *Sent:* February 3, 2018 5:00 PM
>> *To:* ***@hotmail.com
>> *Cc:* ***@trailing-edge.com
>> *Subject:* Re: [Simh] Crowther's Adventure game
>> Dan,
>>
>> The link to your Source Forge page you posted does not work for me.  I
>> found TREK7 it at https://sourceforge.net/projects/trek7/.
>>
>> I tried to find the sources you started with.  I found a ZIP file called
>> trk7fsrc.zip
>> <https://sourceforge.net/projects/trek7/files/trek7/status/trk7fsrc.zip/download>.
>
>>   When I compiled the first file, TREKA.FOR, I can see typos and lines
>> extending past column 72.  This could not be the original source code
>> that worked at one time.  Was this scanned?  Has this been altered from
>> a known working version, other than the scanning errors?  Like, the
>> lines that extend past column 72?  The code clearly expects column 72 to
>> wrap to column 7 of a continuation line, which is how Fortran
>> fixed-format source works.
>>
>> Ancient Fortran should not be that hard to convert, especially if you
>> know the original platform.  I saw LIB$ calls, which leads me to believe
>> this was maybe VAX Fortran?  I see the use of FORMAT specifiers without
>> lengths, like F, not F7.2.  It would be nice to know the precise meaning
>> of that non-standard Fortran.  But, very new Fortran sill also accept
>> FORMAT specifiers without lengths now.  And, there is non-advancing
>> support for Fortran I/O now.  Fortran INTRINSICS should be
>> straightforward.  The library calls will be harder.
>>
>> Want help?  What platform do you want to run the code on?
>>
>> Larry Baker
>> US Geological Survey
>> 650-329-5608
>> ***@usgs.gov <mailto:***@usgs.gov>
>>
>>
>>
>>
>>> On Feb 3, 2018, at 11:13 AM, simh-***@trailing-edge.com
>>> <mailto:simh-***@trailing-edge.com> wrote:
>>>
>>> Message: 2
>>> Date: Sat, 3 Feb 2018 17:51:47 +0000
>>> From: Dan Gahlinger <***@hotmail.com <mailto:***@hotmail.com>>
>>> To: Quentin North <***@quentin.org.uk
>>> <mailto:***@quentin.org.uk>>, Bob Nelson
>>> <***@gmail.com <mailto:***@gmail.com>>
>>> Cc: "***@trailing-edge.com <mailto:***@trailing-edge.com>"
>>> <***@trailing-edge.com <mailto:***@trailing-edge.com>>
>>> Subject: Re: [Simh] Crowther's Adventure game
>>> Message-ID:
>>> <***@DM3PR16MB0813.namprd16.prod.outlook.com
>>> <mailto:***@DM3PR16MB0813.namprd16.prod.outlook.com>>
>>>
>>> Content-Type: text/plain; charset="utf-8"
>>>
>>> I have an original printout of Adventure from the mid 70's, taken from
>>> a Vax though,
>>> It's not a version I've found on the archives, the version ID on mine
>>> is different.
>>> I've been meaning to scan it and post it.
>>>
>>> Ancient fortran is very hard to convert, as I found out trying to
>>> convert trek7 (https://trek7.sourceforge.net
>>> <https://trek7.sourceforge.net/>)
>>>
>>> And I spent 38 years or so converting "the new castle" from Vax to
>>> Linux/Dos/Mac.
>>>
>>> Dan.
>>
>>
>>
>> _______________________________________________
>> Simh mailing list
>> ***@trailing-edge.com
>> http://mailman.trailing-edge.com/mailman/listinfo/simh
>>
>
>
> --
> Johnny Billquist                  || "I'm on a bus
>                                    ||  on a psychedelic trip
> email: ***@softjar.se             ||  Reading murder books
> pdp is alive!                     ||  tryin' to stay hip" - B. Idol
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh


--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Alan Perry
2018-02-03 23:03:16 UTC
Permalink
In this different from the one credited to be by David Matusek and Paul
Reynolds? I have FORTRAN source for what I think is the Trek game that
we ran on TOPS-20 when I was in college in the mid-80s. I have been
trying off and on (mostly off recently) to get it working under SIMH,
but haven't touched it in so long that I can't remember where I was at
on it.

It was on a 9-track tape of stuff that I collected when I graduated and
LCM was kind enough to read for me a few years ago.

alan

On 2/3/18 2:00 PM, Larry Baker wrote:
> Dan,
>
> The link to your Source Forge page you posted does not work for me.  I
> found TREK7 it at https://sourceforge.net/projects/trek7/.
>
> I tried to find the sources you started with.  I found a ZIP file
> called trk7fsrc.zip
> <https://sourceforge.net/projects/trek7/files/trek7/status/trk7fsrc.zip/download>.
>  When I compiled the first file, TREKA.FOR, I can see typos and lines
> extending past column 72.  This could not be the original source code
> that worked at one time.  Was this scanned?  Has this been altered
> from a known working version, other than the scanning errors?  Like,
> the lines that extend past column 72?  The code clearly expects column
> 72 to wrap to column 7 of a continuation line, which is how Fortran
> fixed-format source works.
>
> Ancient Fortran should not be that hard to convert, especially if you
> know the original platform.  I saw LIB$ calls, which leads me to
> believe this was maybe VAX Fortran?  I see the use of FORMAT
> specifiers without lengths, like F, not F7.2.  It would be nice to
> know the precise meaning of that non-standard Fortran.  But, very new
> Fortran sill also accept FORMAT specifiers without lengths now.  And,
> there is non-advancing support for Fortran I/O now.  Fortran
> INTRINSICS should be straightforward.  The library calls will be harder.
>
> Want help?  What platform do you want to run the code on?
>
> Larry Baker
> US Geological Survey
> 650-329-5608
> ***@usgs.gov <mailto:***@usgs.gov>
>
>
>
>
>> On Feb 3, 2018, at 11:13 AM, simh-***@trailing-edge.com
>> <mailto:simh-***@trailing-edge.com> wrote:
>>
>> Message: 2
>> Date: Sat, 3 Feb 2018 17:51:47 +0000
>> From: Dan Gahlinger <***@hotmail.com <mailto:***@hotmail.com>>
>> To: Quentin North <***@quentin.org.uk
>> <mailto:***@quentin.org.uk>>, Bob Nelson
>> <***@gmail.com <mailto:***@gmail.com>>
>> Cc: "***@trailing-edge.com <mailto:***@trailing-edge.com>"
>> <***@trailing-edge.com <mailto:***@trailing-edge.com>>
>> Subject: Re: [Simh] Crowther's Adventure game
>> Message-ID:
>> <***@DM3PR16MB0813.namprd16.prod.outlook.com
>> <mailto:***@DM3PR16MB0813.namprd16.prod.outlook.com>>
>>
>> Content-Type: text/plain; charset="utf-8"
>>
>> I have an original printout of Adventure from the mid 70's, taken
>> from a Vax though,
>> It's not a version I've found on the archives, the version ID on mine
>> is different.
>> I've been meaning to scan it and post it.
>>
>> Ancient fortran is very hard to convert, as I found out trying to
>> convert trek7 (https://trek7.sourceforge.net
>> <https://trek7.sourceforge.net/>)
>>
>> And I spent 38 years or so converting "the new castle" from Vax to
>> Linux/Dos/Mac.
>>
>> Dan.
>
>
>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Dan Gahlinger
2018-02-03 23:14:40 UTC
Permalink
yeah it's completely totally different.
the original code was from PDP, but written by Donald Ecclestone at UWO (Western) in London Ontario
I started helping him out with the code in 1978 just when he ported it over to the vax.

There's some time-restricting code in it to prevent students from running it during class hours,
But normally it's left disabled.

There's some internal debug stuff still left in as well.

Donald wrote a TREK5 which was pretty classic trek game, not multi-player or anything, but I don't know if he created it or based it on common code elements available at the time.

Dan.
________________________________
From: Simh <simh-***@trailing-edge.com> on behalf of Alan Perry <***@snowmoose.com>
Sent: February 3, 2018 6:03 PM
To: ***@trailing-edge.com
Subject: [Simh] Trek FORTRAN games (Was: Crowther's Adventure game)

In this different from the one credited to be by David Matusek and Paul Reynolds? I have FORTRAN source for what I think is the Trek game that we ran on TOPS-20 when I was in college in the mid-80s. I have been trying off and on (mostly off recently) to get it working under SIMH, but haven't touched it in so long that I can't remember where I was at on it.

It was on a 9-track tape of stuff that I collected when I graduated and LCM was kind enough to read for me a few years ago.

alan

On 2/3/18 2:00 PM, Larry Baker wrote:
Dan,

The link to your Source Forge page you posted does not work for me. I found TREK7 it at https://sourceforge.net/projects/trek7/.

I tried to find the sources you started with. I found a ZIP file called trk7fsrc.zip<https://sourceforge.net/projects/trek7/files/trek7/status/trk7fsrc.zip/download>. When I compiled the first file, TREKA.FOR, I can see typos and lines extending past column 72. This could not be the original source code that worked at one time. Was this scanned? Has this been altered from a known working version, other than the scanning errors? Like, the lines that extend past column 72? The code clearly expects column 72 to wrap to column 7 of a continuation line, which is how Fortran fixed-format source works.

Ancient Fortran should not be that hard to convert, especially if you know the original platform. I saw LIB$ calls, which leads me to believe this was maybe VAX Fortran? I see the use of FORMAT specifiers without lengths, like F, not F7.2. It would be nice to know the precise meaning of that non-standard Fortran. But, very new Fortran sill also accept FORMAT specifiers without lengths now. And, there is non-advancing support for Fortran I/O now. Fortran INTRINSICS should be straightforward. The library calls will be harder.

Want help? What platform do you want to run the code on?

Larry Baker
US Geological Survey
650-329-5608
***@usgs.gov<mailto:***@usgs.gov>




On Feb 3, 2018, at 11:13 AM, simh-***@trailing-edge.com<mailto:simh-***@trailing-edge.com> wrote:

Message: 2
Date: Sat, 3 Feb 2018 17:51:47 +0000
From: Dan Gahlinger <***@hotmail.com<mailto:***@hotmail.com>>
To: Quentin North <***@quentin.org.uk<mailto:***@quentin.org.uk>>, Bob Nelson
<***@gmail.com<mailto:***@gmail.com>>
Cc: "***@trailing-edge.com<mailto:***@trailing-edge.com>" <***@trailing-edge.com<mailto:***@trailing-edge.com>>
Subject: Re: [Simh] Crowther's Adventure game
Message-ID:
<***@DM3PR16MB0813.namprd16.prod.outlook.com<mailto:***@DM3PR16MB0813.namprd16.prod.outlook.com>>

Content-Type: text/plain; charset="utf-8"

I have an original printout of Adventure from the mid 70's, taken from a Vax though,
It's not a version I've found on the archives, the version ID on mine is different.
I've been meaning to scan it and post it.

Ancient fortran is very hard to convert, as I found out trying to convert trek7 (https://trek7.sourceforge.net<https://trek7.sourceforge.net/>)

And I spent 38 years or so converting "the new castle" from Vax to Linux/Dos/Mac.

Dan.
Lars Brinkhoff
2018-02-04 08:10:59 UTC
Permalink
Dan Gahlinger wrote:
> yeah it's completely totally different. the original code was from
> PDP, but written by Donald Ecclestone at UWO (Western) in London
> Ontario I started helping him out with the code in 1978 just when he
> ported it over to the vax.

Which PDP?

Is the original code available? I'd like to try it in a PDP-10
emulator if permitted.
Drforbin
2018-02-04 08:15:12 UTC
Permalink
By the way guys.

You may want to check out my decwar code.

https://github.com/drforbin/decwar


On 02/04/18 02:10, Lars Brinkhoff wrote:
> Dan Gahlinger wrote:
>> yeah it's completely totally different. the original code was from
>> PDP, but written by Donald Ecclestone at UWO (Western) in London
>> Ontario I started helping him out with the code in 1978 just when he
>> ported it over to the vax.
>
> Which PDP?
>
> Is the original code available? I'd like to try it in a PDP-10
> emulator if permitted.
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>
Lars Brinkhoff
2018-02-04 11:55:06 UTC
Permalink
Drforbin wrote:
> By the way guys.
>
> You may want to check out my decwar code.
>
> https://github.com/drforbin/decwar

Yes, it's on my radar.

By the way, I think there should be an ITS machine as part of the
telehack.com universe. Which is marvellous.
Kenneth Seefried
2018-02-05 21:27:14 UTC
Permalink
From: Johnny Billquist <***@softjar.se>
>
> A caveat is that most any Fortran compiler I've seen or heard of for
> Linux is not so good.
>

Have you looked at the Intel Fortran compiler (
https://software.intel.com/en-us/fortran-compilers)? Intel/AMD-only, of
course. Supports Fortran-IV/77 through at least FTN2003 with 2008 bits,
plus a bunch of SIMD & multicore stuff (SEE, AVX, Phi esp). Free-ish
download for Linux (non-commercial use license, mostly). No idea how good
it would do on this particular application, but it did a pretty good job on
some crufty old code when I tried it.

KJ
Paul Koning
2018-02-05 21:55:17 UTC
Permalink
> From: Johnny Billquist <***@softjar.se>
> >
> > A caveat is that most any Fortran compiler I've seen or heard of for
> > Linux is not so good.

I've used the GCC Fortran compiler over the years, for substantial applications (like NEC2) without trouble. And I know it's still in active development for the latest Fortran flavors.

paul
Ken Cornetet
2018-02-05 22:13:32 UTC
Permalink
I used a hacked version of f2c to "compile" Mystery Mansion (for the HP1000) into c, which I was then able to compile and get a runnable game on modern systems.

The nice thing about using f2c is that you can tweak f2c to match the particular idiosyncrasies of the source code.

-----Original Message-----
From: Simh [mailto:simh-***@trailing-edge.com] On Behalf Of Paul Koning
Sent: Monday, February 5, 2018 4:55 PM
To: SIMH <***@trailing-edge.com>
Subject: Re: [Simh] Crowther's Adventure game

> From: Johnny Billquist <***@softjar.se>
> >
> > A caveat is that most any Fortran compiler I've seen or heard of for
> > Linux is not so good.

I've used the GCC Fortran compiler over the years, for substantial applications (like NEC2) without trouble. And I know it's still in active development for the latest Fortran flavors.

paul

_______________________________________________
Simh mailing list
***@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh
Clem Cole
2018-02-05 22:32:22 UTC
Permalink
Again speaking for myself ... not Intel...

On Mon, Feb 5, 2018 at 4:27 PM, Kenneth Seefried <***@gmail.com>
wrote:

>
> Have you looked at the Intel Fortran compiler (https://software.intel.com/
> en-us/fortran-compilers)? Intel/AMD-only, of course. Supports
> Fortran-IV/77 through at least FTN2003 with 2008 bits, plus a bunch of SIMD
> & multicore stuff (SEE, AVX, Phi esp). Free-ish download for Linux
> (non-commercial use license, mostly). No idea how good it would do on this
> particular application, but it did a pretty good job on some crufty old
> code when I tried it.
>
>
​Indeed and it has the added advantage of 'having the DEC compiler DNA
ground up and injected back in' to quote a retired Intel Fellow (Rich Grove
- who had lead the Gem compiler at DEC). A number of the same people are
still developing it (*i.e*. those that have not yet retired).

It is the most popular of the Fortran compilers for the HPC community and
the commercial ISV's that still have code in Fortran. There is great care
to try to ensure old code from old systems 'just work' as well as bring in
modern Fortran features. i.e. FORTRAN IV (such as Adventure), FORTRAN77
and VAX Fortran code should pretty much just work (I can say the last time
I tried to recompile adven.f with it - which was FORTRAN IV, a few years
ago it recompiled and worked with out any changes). I have personally put
VAX Fortran code through it with much success before I worked for Intel
(when I was an independent consultant). I have been told by people that I
trust about a number of customers/ISVs that continue to do this regularly.

I do not know how much success FORTRAN-II code has had, but I did help an
old friend from IBM (one of the ASC and 360/90 designers) a few years back,
so at one point, something worked; although I have not idea how much he had
to hack his code to make ti work.

It also is modern compiler conforming to Fortran 2003, 2008, and
the initial draft Fortran 2015 standard - including features such a Cray's
Co-Arrays, parallel code generation et al. * I have not looked* at the
'SPD' nor personally tied it, but I believe it will also fully conform to
the FORTRAN90 and FORTRAN95. Modern Fortran BTW, is from a syntax stand
point, nothing like what I was taught in the late 60s/early 70s.

Kenneth points out for noncommercial Linux use, it is available at no
charge (and it is the same bits that people pay large sums). That
download is the same compiler as that for MacOS and Windows and uses a
common back-end/optimizer as that if Intel C/C++ (i.e. nothing has been
disabled).

I have personally brought up a plead for years to make it available for
non-commercial use on any platform (actually, I >>personally<< believe it
should be free no matter what but that's a different story -- I understand
the reasons why it is not, I personally do not agree with them, but I'm an
OS guy not a compiler person - I used to kid Dr. Gove with the line: "Rich
are their more developers of your compiler or developers that use your
compiler" - which was not fair, but a fun thing to do).

The point is that Intel takes Fortran seriously, since the codes that come
out of the compiler sells real silicon, which of course is what Intel
fundamentally does - sell expensive, hot rocks to run real codes.

That all said, there is also gfortran (the GNU compiler) and translators
such as NetLIB's f2c. Although, I do not know of anyone that uses truly
use either for real work. I know people that test with gfortran and check
things out; but all the serious Fortran types in the HPC world that I
am familar use either Intel, Cray or PGC compilers or some mix. Many
sites have more than one compiler.
ᐧ
Dan Gahlinger
2018-02-05 22:36:44 UTC
Permalink
yeah the linux version of trek7 is compiled with the Intel compiler



Sent from my Samsung Galaxy smartphone.


-------- Original message --------
From: Clem Cole <***@ccc.com>
Date: 2/5/18 5:33 PM (GMT-05:00)
To: Kenneth Seefried <***@gmail.com>
Cc: SIMH <***@trailing-edge.com>
Subject: Re: [Simh] Crowther's Adventure game

Again speaking for myself ... not Intel...

On Mon, Feb 5, 2018 at 4:27 PM, Kenneth Seefried <***@gmail.com<mailto:***@gmail.com>> wrote:

Have you looked at the Intel Fortran compiler (https://software.intel.com/en-us/fortran-compilers)? Intel/AMD-only, of course. Supports Fortran-IV/77 through at least FTN2003 with 2008 bits, plus a bunch of SIMD & multicore stuff (SEE, AVX, Phi esp). Free-ish download for Linux (non-commercial use license, mostly). No idea how good it would do on this particular application, but it did a pretty good job on some crufty old code when I tried it.


​Indeed and it has the added advantage of 'having the DEC compiler DNA ground up and injected back in' to quote a retired Intel Fellow (Rich Grove - who had lead the Gem compiler at DEC). A number of the same people are still developing it (i.e. those that have not yet retired).

It is the most popular of the Fortran compilers for the HPC community and the commercial ISV's that still have code in Fortran. There is great care to try to ensure old code from old systems 'just work' as well as bring in modern Fortran features. i.e. FORTRAN IV (such as Adventure), FORTRAN77 and VAX Fortran code should pretty much just work (I can say the last time I tried to recompile adven.f with it - which was FORTRAN IV, a few years ago it recompiled and worked with out any changes). I have personally put VAX Fortran code through it with much success before I worked for Intel (when I was an independent consultant). I have been told by people that I trust about a number of customers/ISVs that continue to do this regularly.

I do not know how much success FORTRAN-II code has had, but I did help an old friend from IBM (one of the ASC and 360/90 designers) a few years back, so at one point, something worked; although I have not idea how much he had to hack his code to make ti work.

It also is modern compiler conforming to Fortran 2003, 2008, and the initial draft Fortran 2015 standard - including features such a Cray's Co-Arrays, parallel code generation et al. I have not looked at the 'SPD' nor personally tied it, but I believe it will also fully conform to the FORTRAN90 and FORTRAN95. Modern Fortran BTW, is from a syntax stand point, nothing like what I was taught in the late 60s/early 70s.

Kenneth points out for noncommercial Linux use, it is available at no charge (and it is the same bits that people pay large sums). That download is the same compiler as that for MacOS and Windows and uses a common back-end/optimizer as that if Intel C/C++ (i.e. nothing has been disabled).

I have personally brought up a plead for years to make it available for non-commercial use on any platform (actually, I >>personally<< believe it should be free no matter what but that's a different story -- I understand the reasons why it is not, I personally do not agree with them, but I'm an OS guy not a compiler person - I used to kid Dr. Gove with the line: "Rich are their more developers of your compiler or developers that use your compiler" - which was not fair, but a fun thing to do).

The point is that Intel takes Fortran seriously, since the codes that come out of the compiler sells real silicon, which of course is what Intel fundamentally does - sell expensive, hot rocks to run real codes.

That all said, there is also gfortran (the GNU compiler) and translators such as NetLIB's f2c. Although, I do not know of anyone that uses truly use either for real work. I know people that test with gfortran and check things out; but all the serious Fortran types in the HPC world that I am familar use either Intel, Cray or PGC compilers or some mix. Many sites have more than one compiler.
[https://mailfoogae.appspot.com/t?sender=aY2xlbWNAY2NjLmNvbQ%3D%3D&type=zerocontent&guid=9c039dad-dc00-44ee-abf9-6af418f9ba24]ᐧ
Kenneth Seefried
2018-02-06 01:39:01 UTC
Permalink
From: Clem Cole <***@ccc.com>

Hey Clem...thanks for the input. Definitely enjoying the last couple of
weeks discourse with Bliss and Fortran. Good times they were.

>On Mon, Feb 5, 2018 at 4:27 PM, Kenneth Seefried <***@gmail.com>
wrote:

>> Have you looked at the Intel Fortran compiler (
https://software.intel.com/
>> en-us/fortran-compilers)?

> ​Indeed and it has the added advantage of 'having the DEC compiler DNA
> ground up and injected back in' to quote a retired Intel Fellow (Rich
Grove
> - who had lead the Gem compiler at DEC). A number of the same people are
> still developing it (*i.e*. those that have not yet retired).

Yes, but didn't you say that (unfortunately) only a fraction of that DNA
made it in, and that nothing like GEM level sophistication still exists?

> It is the most popular of the Fortran compilers for the HPC community and
> the commercial ISV's that still have code in Fortran.

I wouldn't dispute that, per se, but the IBM Fortran compiler for POWER
(collectively AIX & zOS) is a pretty formidable beast as well. If I had
more access to it, I'd be interested in some compare and contrast. Power8
& Power9 still potentially have legs in the HPC world, I would think.

Speaking of...know anything about the NEC Fortran compiler targeting SX?
I've got a friend in the geotechnical field who raves, but he can't share
much (obviously). Interesting machine, the SX.

Since we're on the subject...wonder what happened to the compiler tech from
the CDC Cyber that evolved through 7x->170->180->180/990->203/205->ETA. We
had a 990 at GaTech, and UGA ended up with a 205 for reasons that mystify
to this day. Should research that some day.

> There is great care to try to ensure old code from old systems 'just
work'
> as well as bring in modern Fortran features.

Indeed. The code I referenced originally was work I did in '80s era Cray
Fortran for the XMP/YMP boxes. Pre-co-arrays, I believe (at least I wasn't
using them). The Intel compiler had no trouble with it. Just had to strip
out the VMS-isms that the front-ends needed.

> Modern Fortran BTW, is from a syntax stand point, nothing like what
> I was taught in the late 60s/early 70s.

Ha! Nor what I was taught in the late 70s & 80s. Very different beast
now, but not without charms. The parallel intrinsics are pretty nifty.

> The point is that Intel takes Fortran seriously, since the codes that come
> out of the compiler sells real silicon, which of course is what Intel
> fundamentally does - sell expensive, hot rocks to run real codes.

So glad to hear that, and I've heard the IBM Power guys say the same thing
about their Fortran efforts. Basically nothing really shows off what a
SIMD instruction set can do that's accessible to 'normal' programmers like
Fortran. Or so they say. Maybe we just have a soft spot.

Cheers.

KJ
Loading...