Closed larsbrinkhoff closed 4 months ago
Some of the parties involved:
The spooler source says:
tty1==3 ;only these ttys can send to xgp
tty2==24
And TTYTYP:
TTDPRT 3,SPEED=110,TT=%TTLCL ;T03 XGP TTY (9TH)
TTDDPT 24,TT=%TTLCL+%TT340,HOR=71. ;T24 Datapoint Near XGP (9th)
But I don't see any reference to these TTY lines in the rest of the code. I have successfully started XGPSPL from T00.
I found the file .XGPR.;XGP LOGIN. It first stuffs the XGP-11, and then starts XGPSPL. Also, the spooler insists on being run as the XGP user. It would seem appropriate that the INQUIR database has an entry for XGP and for it to have .XGPR. as its home directory. @eswenson1, can we do this from the build script?
Also, when ITS has booted, we should ideally arrange for the XGP user to log in from T03. I'm not sure how.
It would seem appropriate that the INQUIR database has an entry for XGP and for it to have .XGPR. as its home directory. @eswenson1, can we do this from the build script?
Probably. But we use a binary data file for which I don’t think we have source as the primordial INQUIR database. I’ll see if I can reverse engineer source for it and then update to have an entry for XGP.
I think I'm going to switch how we initialize INQUIR on a new system. Rather than using the committed LSR1 EMPTY file as the basis for inquir;lsr1 1, I'm going to update to run INQUPD in LSRINI mode, to create a completely empty LSR1 EMPTY file from scratch. Then, I'm going to commit a INQUPD script that will add the entries we want to the inquir database. That can include an entry for XGP. I'll have the script run the INQUPD such that the input file is processed and the LSR1 1 file updated correctly.
Sounds good, thanks!
Looks like ITS only uses empty lines and XGP image mode, so that's pretty easy to decode.
However, there is one thing that doesn't seem to work. When I spool a file with :XGP LARS; TEST XGP
I get this from XGPSPL, and the file name doesn't look right at all.
A new file is being created!
LARS KA - 12:26:04 01/31/22 36 ^Q ^Q/^Q_^Q 0: ^Q ^Q ^Q ^Q ^Q V; X@ ^Q
This CMU document describes their XGP interface: http://shelf2.library.cmu.edu/Tech/backups/227003483.pdf
From clues in the ToTS archives, we can see MIT's interface is clearly a copy of the CMU interface, with slight modifications . The files describing the MIT interface doesn't cover everything, but the CMU documents fills in the gaps.
The emulator is working. I tested AI memo 358.
I updated the KA10 emulator to handle multiple 10-11 ports. Checked that TV-11 and XGP-11 work together.
We now get the XGP status on the Name Dragon free display.
@aap supplied a filter to convert the plain bitmap output to something closer to the real thing. I have an XGP printout of AS;CHESS 144. I made a new listing with @ as close as possible, but it's a newer version so there are some minor differences. Here's a comparison between bitmap, filtered, and photo.
Printing works fine. There's still the filename bug as per above. And may need to look into this in XGPSPL:
samp3: push p,a
move b,(a) ;device
camn b,[sixbit /DSK/] ;only AI has an XGP
move b,[sixbit /AI/]
The file name is written by XQUEUE into a queue file in .XGPR. XGPLSPL just prints what's there.
I think I'm going to switch how we initialize INQUIR on a new system. Rather than using the committed LSR1 EMPTY file as the basis for inquir;lsr1 1, I'm going to update to run INQUPD in LSRINI mode, to create a completely empty LSR1 EMPTY file from scratch. Then, I'm going to commit a INQUPD script that will add the entries we want to the inquir database. That can include an entry for XGP. I'll have the script run the INQUPD such that the input file is processed and the LSR1 1 file updated correctly.
Also, the LSR1 EMPTY file can be generated by the INQUPD program, so no need for one in our “bin” directory. I’ll make these changes soon.
Printing works fine. There's still the filename bug as per above. And may need to look into this in XGPSPL.
I couldn’t find a reference to the “file name problem” in a post earlier in the list of posts. What problem are you referring to?
It's this: https://github.com/PDP-10/its/pull/2271#issuecomment-1918923215
I think I found the problem. The XQUEUE has been conditionalized for "mit", but the brackets are in the wrong place here:
;Output the filenames into the queue file.
quefil:
move b,device
ifn mit,[
move a,machin
camn b,['DSK,,]
movem a,device
movei b,device
]
move d,[440700,,fnmbuf]
pushj p,rfn"pfn
pfn
expects the address of a file name quartet in B. It's supposed to be device
, but the movei was lost.
Regarding the INQUIR entry, it should be made such that GUNNER doesn't gun down XGP. @eswenson1, I believe there's some user group that are protected against that, correct?
I’ll have to look at GUNNER to see what it might be….
Maybe not!
SUBTTL Autologout
;
; There are five classes of users:
; 1) Non-logged-in network users.
; 2) Logged-in network users: logged in, but not to a directory, from the
; net.
; 3) Local users: coming from a hardwired terminal, or logged into a
; directory from the net.
; 4) XXFILE and .BATCH: STYs in use by programs other than telnet
; servers.
; 5) HACTRNs: trees, either net or hardwired, with only a hactrn. They
; will be logged out, rather than detached.
; Class 4 is never touched: the program running it is assumed to do
; reasonable things.
; Associated with each of the other classes is a time: after a tree has
; been 'idle' (see below) for that period of time, some action is taken,
; depending on the class.
; 3: Local users will be detached, but bit 1.4 of the DETACH call will
; not be set; the tree will not be killed automatically.
; 2: Network users will be detached, with bit 1.4 of the DETACH call on.
; The tree will be killed after an hour (this bit is also set when,
; for example, the network dies and net users are detached).
; 1: Others will be gunned down.
What I did, in order to prevent GUNNER from gunning me down when I was logged in and idle was to update the UNAME compare a few instructions after the label ALOGL. The original code had GSB as the UNAME to skip the idle check for. I changed it to EJS on my machines.
We may want to change it to XGP, or add a check for XGP (and EJS).
ALOGL: SKIPGE @TTYSTS ; SKIP IF TTY IS IN USE
JRST ALOGFL
HRRZ U,@TTYSTS ; USER INDEX-->U
MOVE B,@XUNAME
CAMN B,[SIXBIT /GSB/]
JRST ALOGFL
I suppose the DM gunner isn't really appropriate for running on a system where there are also many AI jobs running. One workaround would be to not run the DM gunner. The MC gunner seems work better with the AI system. Another solution would be to update the DM gunner to leave "system" jobs alone. Whatever that means. Probably it knows to avoid the DM stuff like COMSYS, right? Or maybe it already has hooks to use INQUIR information.
What do you mean by AI jobs? Are you referring to interactive logins that were really more like “daemons” (eg XGP), and where GUNNER treats them like regular users?
My beef with GUNNER is that it treats network users as very much second class citizens, gunning them if they are idle. I always use chaosnet (supdup) to access all 5 of my ITS systems, so if my sessions are idle, they get gunned. For non-networked, terminal users, such as users of your ITS systems, where you login by connecting to emulated terminals, those jobs will get detached.
The GUNNER daemons, as is, might be useful for systems like HX and BC, where there may be lots of users, limited resources, and the need to free job slots when users leave their sessions attached but idle.
GUNNER does a lot of things and we should look at the functionality and see whether any of the OTHER stuff is useful. If it is, we could simply comment out the idle job gunning task from the task table. We’ve commented out other tasks already (such as NCP-related tasks).
If we find it not useful, we can simply not put in place the ATSIGN GUNNER link, which will effectively disable it, but allow its use on those systems where gunning is useful, or we could make the more drastic change to comment out GUNNER in DEMSTR. That would require someone to update DEMSTR and reassemble it.
How is CSTACY’s gunner better? Because it warns first before gunning? Or does it have a better mechanism for discriminating whom to gun?
I mean some vague and unspecified set which may only be XGPSPL.
I'm starting to think the DM GUNNER is a bit of overkill for most situations. Sure, for HX type hosts, yes it's useful.
I like Cstacy's gunner because it only guns down not-logged-in users. That's pretty much perfect for my use case, because I get a lot of those but rarely any others. And it leaves me and XGP alone.
Work being done enabling the XGP and using it to print documents through a PDP-11 emulator.