Closed oilcan-productions closed 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.
All builds failed (except on Cirrus CI), so that doesn't seem to do the trick.
Maybe for testing, add something to print out the contents of the XXFILE log?
Or use TTY: as the output file rather than LCF;ZORK LOG so it is easier to see.
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?
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: @.**@.>>
local builds succeeded under Ubuntu with the change. It still fails randomly on Raspian though.
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?
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
*
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).
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.
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?
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
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 "
If that is still the case, try removing the two superfluous expect lines, and just leave one that looks for :KILL.
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.
thanks @larsbrinkhoff for the help
I tested this, and I got No SAVE file?
so maybe it didn't work after all.
Still working on this
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 ?
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
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?
Let's close this for now. Maybe reopen later if there's a need?
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)