PDP-10 / its

Incompatible Timesharing System
Other
858 stars 81 forks source link

Update zork.xxfile #2179

Closed oilcan-productions closed 1 year ago

oilcan-productions commented 1 year ago

Moving the R from the top of the file down one line as the change seems to prevent the timeout during make for simh based ITS emulators. Thanks @eswenson1 for finding that workaround. I am not sure why this makes a difference (yet)

eswenson1 commented 1 year ago

On the other hand, I've had a case where moving it where you did DIDN'T allow it to run on one system. I ended up having to remove it. I'm quite confused as to why this isn't cut-and-dry.

larsbrinkhoff commented 1 year ago

All builds failed (except on Cirrus CI), so that doesn't seem to do the trick.

larsbrinkhoff commented 1 year ago

Maybe for testing, add something to print out the contents of the XXFILE log?

eswenson1 commented 1 year ago

Or use TTY: as the output file rather than LCF;ZORK LOG so it is easier to see.

eswenson1 commented 1 year ago

It’s weird that it worked for @heasm66 and me. But it also failed for me on another build. Maybe we should try removing the ^^R altogether. That also worked for me on a couple builds?

oilcan-productions commented 1 year ago

I will try this next week. Don’t merge this change yet.

From: Eric Swenson @.> Sent: Saturday, March 25, 2023 07:38 To: PDP-10/its @.> Cc: Mike Kostersitz @.>; Author @.> Subject: Re: [PDP-10/its] Update zork.xxfile (PR #2179)

It’s weird that it worked for @heasm66https://github.com/heasm66 and me. But it also failed for me on another build. Maybe we should try removing the ^^R altogether. That also worked for me on a couple builds?

— Reply to this email directly, view it on GitHubhttps://github.com/PDP-10/its/pull/2179#issuecomment-1483840429, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASO6P5JEUWZKRRKDJDVJ6QDW537NNANCNFSM6AAAAAAWF23UQI. You are receiving this because you authored the thread.Message ID: @.**@.>>

oilcan-productions commented 1 year ago

local builds succeeded under Ubuntu with the change. It still fails randomly on Raspian though.

larsbrinkhoff commented 1 year ago

Thanks. This looks better now.

pdp10-kl failed in the 1PROC test. I didn't see this before, but has become flaky somehow.

klh10 failed in comp xxfile. Maybe needs longer timeout?

oilcan-productions commented 1 year ago

Here is what I get if I run the xxfile command manually on my KL emulator:

*:xxfile tty:_lcf;zork zzxxfile
 STYOPN ZZ     11 XXFILE 09:06:28
DB ITS.1651. DDT.1548.
TTY 11
2. Lusers, Fair Share = 112%
 LOGIN  GUNNER 0 09:06:29
TOP LEVEL INTERRUPT 200 DETACHED JOB # 12, USR:GUNNER GUNNER 09:06:29

:mudsav;mud55
(Please Log In)
MUDDLE 55 IN OPERATION.
LISTENING-AT-LEVEL 1 PROCESS 1
<BLOAT 150000 1 3 2000 30 9>$
149985

<SNAME "LCF">$
"LCF"

<FLOAD "prim nbin">$
"DONE"

<FLOAD "defs nbin">$
/LSRTNS "DONE"

<FLOAD "util nbin">$
"DONE"

<FLOAD "makstr nbin">$
"DONE"

<FLOAD "typhak nbin">$
"DONE"

<FLOAD "rooms nbin">$
"DONE"

<FLOAD "parser nbin">$
"DONE"

<FLOAD "act1 nbin">$
"DONE"

<FLOAD "act2 nbin">$
IT IS NOW  9:06:57 AM EST, WEDNESDAY, MAR 29, 2023
"DONE"
<FLOAD "act3 nbin">$
"DONE"

<FLOAD "act4 nbin">$
"DONE"

<FLOAD "tell nbin">$
"DONE"

<FLOAD "melee nbin">$
"DONE"

<FLOAD "sr nbin">$
"DONE"

<FLOAD "dung">$
"DONE"

<RSUBR-LINK <>>$
T

%%<HANDLER <GET ERROR!-INTERRUPTS INTERRUPT> ,ERRH>$
<SETG MUD-HAND <OFF <3 <GET ,INCHAN INTERRUPT>>>>$
#HANDLER #SUBR *000000713477*

%%<SETG ZORK-HAND <OFF <HANDLER <GET ,INCHAN INTERRUPT> ,CTRL-S>>>$
<SETG END-GAME-EXISTS? T>$
T

<GC-MON T>$
#FALSE ()

<PSETG WINNERS '["EJS", "TAA"]>
<SAVE-IT "cfs;madadv save" <>>$
["EJS" ,"TAA"]

GIN USER CALLED- GC GOUT TIME= .10
T

<QUIT>$

:KILL
*

:KILL
*
eswenson1 commented 1 year ago

I think that looks good -- at least it finishes the XXFILE. The first :KILL is for the last command executed in the XXFILE. The second :KILL is the one that exits XXFILE and returns to your HACTRN (and kills the XXFILE job).

oilcan-productions commented 1 year ago

The odd thing is that it runs through in under 30 seconds when run manually and when you run it in the build it hangs.

eswenson1 commented 1 year ago

Is the expect match string correct? When you run the build, does the last string emitted look like the one whose match string is timing out? Also I wonder if, when you run with TTY: that expect sees the first :KILL (from inside the XXFILE) and tries to send another command, which will never get sent/echoed?

oilcan-productions commented 1 year ago

Yeah I was thinking the same thing. I have updated the tcl file now to look for the actual string that gets shown now and will see if that goes through

larsbrinkhoff commented 1 year ago

Let's hope this works as intended, but in the previous run I didn't see the output to TTY:, and thus not the full "$ :KILL :KILL" sequence. Just one ":KILL", presumably the last one. See here: https://github.com/PDP-10/its/actions/runs/4552876660/jobs/8028767403#step:4:16179

If that is still the case, try removing the two superfluous expect lines, and just leave one that looks for :KILL.

larsbrinkhoff commented 1 year ago

I made yet another update which I believe matches the output. It seems to work, as far as the expect script goes. I'm also running a local build to check that the game runs.

oilcan-productions commented 1 year ago

thanks @larsbrinkhoff for the help

larsbrinkhoff commented 1 year ago

I tested this, and I got No SAVE file? so maybe it didn't work after all.

oilcan-productions commented 1 year ago

Still working on this

oilcan-productions commented 1 year ago

Finally got the TTY output working to see where ZORK compile fails.

:print cfs;..new. (udir)
DSK0: CFS; ..NEW. (UDIR) - FILE NOT FOUND
:vk
*:xxfile tty:_lcf;comp xxfile
KA ITS.1651. DDT.1548.
TTY 53
2. Lusers, Fair Share = 111%

:pcomp
(Please Log In)
You have about 8 cpu minutes to do your thing.
MUDDLE COMPILER NOW READY.
T
<SNAME "LCF">$
"LCF"

<FILE-COMPILE "prim >">$
Input from DSK:LCF;PRIM 9
Output to DSK:LCF;PRIM NBIN
Bounds checking on.
Default declaration is UNSPECIAL.
Output in fast mode.
Temporary output going to:  _PRIM >
Running disowned, with record on DSK:LCF;PRIM RECORD
Toodle-oo.
:PROCED
*
$p
"So you re-owned me, eh?  I'm done anyway."

<FILE-COMPILE "defs >">$
Input from DSK:LCF;DEFS 171
Output to DSK:LCF;DEFS NBIN
Bounds checking on.
Default declaration is UNSPECIAL.
Output in fast mode.
Temporary output going to:  _PRIM >
Running disowned, with record on DSK:LCF;DEFS RECORD
Toodle-oo.
:PROCED
*
$p
"So you re-owned me, eh?  I'm done anyway."

<FILE-COMPILE "util >">$
Input from DSK:LCF;UTIL 16
Output to DSK:LCF;UTIL NBIN
Bounds checking on.
Default declaration is UNSPECIAL.
Output in fast mode.
Temporary output going to:  _PRIM >
Running disowned, with record on DSK:LCF;UTIL RECORD
Toodle-oo.
:PROCED
*
$p
"So you re-owned me, eh?  I'm done anyway."

<FILE-COMPILE "makstr >">$
Input from DSK:LCF;MAKSTR 44
Output to DSK:LCF;MAKSTR NBIN
Bounds checking on.
Default declaration is UNSPECIAL.
Output in fast mode.
Temporary output going to:  _PRIM >
Running disowned, with record on DSK:LCF;MAKSTR RECORD
Toodle-oo.
:PROCED
*
$p
"So you re-owned me, eh?  I'm done anyway."

<FILE-COMPILE "typhak >">$
Input from DSK:LCF;TYPHAK 16
Output to DSK:LCF;TYPHAK NBIN
Bounds checking on.
Default declaration is UNSPECIAL.
Output in fast mode.
Temporary output going to:  _PRIM >
Running disowned, with record on DSK:LCF;TYPHAK RECORD
Toodle-oo.
:PROCED
*
$p
"So you re-owned me, eh?  I'm done anyway."

<QUIT>$

:KILL
*
:assem "lcf;tell >" "lcf;tell nbin"
(Please Log In)
TITLE:  TELL
INTERNAL-ENTRY TELL1 AT LOCATION 14
INTERNAL-ENTRY TELL2 AT LOCATION 16
INTERNAL-ENTRY TELL3 AT LOCATION 18
INTERNAL-ENTRY TELL4 AT LOCATION 20
Is this assembly for TENEX?
n
CONSTANTS BEGIN AT LOCATION 139
CONSTANTS END AT LOCATION 160
TITLE:  CTRL-S
INTERNAL-ENTRY ICTRL AT LOCATION 6
CONSTANTS BEGIN AT LOCATION 61
CONSTANTS END AT LOCATION 64
TITLE:  DSKDATE
INTERNAL-ENTRY IDSKDATE AT LOCATION 2
TITLE:  GXUNAME
INTERNAL-ENTRY IXUNAME AT LOCATION 2
CONSTANTS BEGIN AT LOCATION 39
CONSTANTS END AT LOCATION 43
TITLE:  STARTER
INTERNAL-ENTRY ISTART AT LOCATION 2
CONSTANTS BEGIN AT LOCATION 48
CONSTANTS END AT LOCATION 88
(TELL CTRL-S DSKDATE GXUNAME STARTER ATMFIX FIXSTR DISPATCH READST TTY-INIT TTY-<QUIT>?U? sowned, with record on DSK:LCF;PARSER RECORD
ERROR:  ERROR string found. 

Now my Zork knowledge is not too great to decipher what that means :) Any idea @larsbrinkhoff ?

larsbrinkhoff commented 1 year ago

Around this point:

CONSTANTS END AT LOCATION 88
(TELL CTRL-S DSKDATE GXUNAME STARTER 

the output becomes garbled because new text lines overwrite the old. If I run this myself under screen and log the output, I get ths:

TITLE:  ATMFIX^MINTERNAL-ENTRY ATMFIX1 AT LOCATION 4^MCONSTANTS BEGIN AT LOCATION 21^MCONSTANTS END AT LOCATION 23^MTITLE:  FIXSTR^MINTERNAL-ENTRY FIXSTR1 AT LOCATION 4^MCONSTANTS BEGIN AT LOCATION 25^MCONSTANTS END AT LOCATION 26^MTITLE:  DISPATCH^MINTERNAL-ENTRY DISP1 AT LOCATION 12^MINTERNAL-ENTRY DISP2 AT LOCATION 14^MCONSTANTS BEGIN AT LOCATION 35^MCONSTANTS END AT LOCATION 40^MTITLE:  READST^MINTERNAL-ENTRY IREADST AT LOCATION 8^MCONSTANTS BEGIN AT LOCATION 268^MCONSTANTS END AT LOCATION 292^MTITLE:  TTY-INIT^MINTERNAL-ENTRY IINIT AT LOCATION 4^MCONSTANTS BEGIN AT LOCATION 32^MCONSTANTS END AT LOCATION 52^MTITLE:  TTY-UNINIT^MINTERNAL-ENTRY IUNINIT AT LOCATION 2^MCONSTANTS BEGIN AT LOCATION 15^MCONSTANTS END AT LOCATION 19^MTITLE:  EXCRUCIATINGLY-UNTASTEFUL-CODE^MINTERNAL-ENTRY IEUC AT LOCATION 2^MTITLE:  STRINGP^MINTERNAL-ENTRY ISTRP AT LOCATION 4^MCONSTANTS BEGIN AT LOCATION 21^MCONSTANTS END AT LOCATION 22^MTITLE:  PSTRING^MINTERNAL-ENTRY IPSTR AT LOCATION 4^MCONSTANTS BEGIN AT LOCATION 20^MCONSTANTS END AT LOCATION 20^MDONE IN 0.29480799 SECONDS^M(TELL CTRL-S DSKDATE GXUNAME STARTER ATMFIX FIXSTR DISPATCH READST TTY-INIT^MTTY-UNINIT EXCRUCIATINGLY-UNTASTEFUL-CODE STRINGP PSTRING)^M:KILL^M*^M:pcomp^M(Please Log In)^MYou have about 8 cpu minutes to do your thing.^MMUDDLE COMPILER NOW READY.^MT^M<FLOAD "lcf;comp preamb">$^M"DONE"^M<FILE-COMPILE "rooms >">$^MInput from DSK:LCF;ROOMS 395^MOutput to DSK:LCF;ROOMS NBIN^MBounds checking on.^MDefault declaration is UNSPECIAL.^MOutput in fast mode.^MTemporary output going to:  _ROOMS >^MRunning disowned, with record on DSK:LCF;ROOMS RECORD^MToodle-oo.^M:PROCED^M*^M$p^M LOGIN  GUNNER 0 10:20:33
larsbrinkhoff commented 1 year ago

Like #2178, this is doing something similar but is stuck in limbo. Given that the master branch seemingly builds Zork ok without any fixes, maybe don't make any rash changes?

larsbrinkhoff commented 1 year ago

Let's close this for now. Maybe reopen later if there's a need?