mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 23:36:30 +00:00
Added build of sys; atsign dragon (top-level daemon launcher started
by ITS sys job) from recreated sources. This daemon searches through the CHANNA directory (also created by the bootstrap) for daemons to launch. Currently, there are no such daemons in this build.
This commit is contained in:
parent
240775c9c1
commit
f61c1f68d9
@ -190,6 +190,11 @@ respond "*" ":midas device;jobdev arc_syseng;arcdev\r"
|
||||
expect ":KILL"
|
||||
respond "*" ":link device;jobdev ar,device;jobdev arc\r"
|
||||
|
||||
respond "*" ":print channa;..new. (udir)\r"
|
||||
respond "*" ":midas channa;atsign taraka_syseng; dragon\r"
|
||||
expect ":KILL"
|
||||
respond "*" ":link sys; atsign dragon,channa; atsign taraka\r"
|
||||
|
||||
respond "*" "\005"
|
||||
respond "sim>" "at tu0 out/output.tape\r"
|
||||
respond "sim>" "c\r"
|
||||
|
||||
104
src/syseng/dragon.206
Normal file
104
src/syseng/dragon.206
Normal file
@ -0,0 +1,104 @@
|
||||
;;;-*-Midas-*-
|
||||
|
||||
TITLE DRAGON -- top-level daemon
|
||||
|
||||
;;; The ITS system job looks for the file DSK:SYS;ATSIGN DRAGON, and if it exists,
|
||||
;;; launches this DRAGON daemon. When launched, DRAGON logs in as TARAKA and searches
|
||||
;;; the CHANNA directory for files whose FN1 is RAKASH. Any that it finds, it launches
|
||||
;;; as daemons.
|
||||
|
||||
;;;
|
||||
;;; The source for DRAGON has been long lost. When ITS was active, the last time it
|
||||
;;; was built was in 1977. This source was recreated from the binary by EJS on
|
||||
;;; on 2016-11-15. When assembled, this version results in an identical binary
|
||||
;;; to the one that was included in the PI/MX distribution, and therefore to the
|
||||
;;; version in place on MC/AI at the time of the shutdown of those systems.
|
||||
;;;
|
||||
;;; Note: I'm sure some of the constants in this file should be replaced with
|
||||
;;; symbolic constants. At this point, I haven't yet figured out what they should
|
||||
;;; all be (it's been over 36 years since I last used ITS at MIT. As I and others
|
||||
;;; see fit, we can update this source to be more in keeping with the standards
|
||||
;;; expected of ITS developers! -- EJS@MIT-MC (today: eric@swenson.org)
|
||||
;;;
|
||||
|
||||
dirchn=4
|
||||
filchn=5
|
||||
jobchn=6
|
||||
|
||||
dirbsz=2000
|
||||
|
||||
nop=255000000000
|
||||
|
||||
taraka=sixbit/TARAKA/
|
||||
channa=sixbit /CHANNA/
|
||||
rakash=sixbit /RAKASH/
|
||||
|
||||
lpdl==:100.
|
||||
.vector pdl(lpdl)
|
||||
|
||||
go: .call [setz ;; login as TARAKA
|
||||
sixbit/LOGIN /
|
||||
[ taraka ]
|
||||
setzi 0]
|
||||
nop ;; ignore errors logging in
|
||||
.suset [.ssnam,,[channa]] ;; set SNAME to CHANNA
|
||||
;; open CHANNA UDIR
|
||||
.open dirchn, [.bii,,'DSK ? sixbit/.FILE./ ? sixbit /(DIR) /]
|
||||
jsr done
|
||||
.iot dirchn, [-dirbsz,,dirblk] ;; read in UDIR
|
||||
.close dirchn,
|
||||
move 1, dirblk+1 ;; get offset to name area into R1
|
||||
addi 1, dirblk ;; convert to address of name area
|
||||
filoop: cail 1, [ taraka ] ;; have we reached end of buffer?
|
||||
jsr done ;; yes, abort
|
||||
move 2, (1) ;; get FN1 into R2
|
||||
camn 2, [ rakash ] ;; is FN1 == RAKASH
|
||||
.call [setz ;; yes, open the file
|
||||
sixbit /OPEN /
|
||||
[ .uii,,filchn ]
|
||||
[ sixbit /DSK / ] ;; DSK: device
|
||||
[ rakash ] ;; FN1
|
||||
1,,1 ;; FN2 (from dirblk in R1 + 1)
|
||||
400000,, [ channa ]]
|
||||
jrst nextfl ;; try next file
|
||||
.call [setz ;; start create daemon job
|
||||
SIXBIT/OPEN /
|
||||
[ 1,,jobchn ]
|
||||
[ sixbit /USR / ] ;; USR: device
|
||||
001000000000 ;; use uname of TARAKA
|
||||
400001,,1] ;; use jname of FN2 of daemon
|
||||
jrst nextfl ;; process next file on error
|
||||
.reset jobchn,
|
||||
.call [setz ;; load program into job
|
||||
sixbit/LOAD /
|
||||
001000,,jobchn ;; specify job channel
|
||||
401000,,filchn] ;; specify file channel
|
||||
jrst nextjb ;; on error, clean up job and process next file
|
||||
move 2, 1(1) ;; get FN2/Job name in R2
|
||||
.uset jobchn, [.ssnam,,2] ;; set SNAME of job
|
||||
.iot filchn, 2 ;; get starting address?
|
||||
hrrzs 0, 2 ;; zero out instruction opcode?
|
||||
.uset jobchn, [.supc,,2] ;; set starting address of new job
|
||||
.call [setz ;; disown job (doc doesn't seem to match
|
||||
SIXBIT/DISOWN/ ;; this call from sysdoc; _calls 127
|
||||
201000,,jobchn ;; don't know what these bits do
|
||||
405000,,5] ;; don't see second argument documented???
|
||||
.value 0 ;; kill ourselves on error?
|
||||
caia 0, 0
|
||||
nextjb: .uclose jobchn, ;; kill job
|
||||
nextfl: .close filchn, ;; close file
|
||||
.close jobchn, ;; close job
|
||||
addi 1, 5 ;; compute address of next file
|
||||
jrst filoop ;; and loop
|
||||
|
||||
done: 0
|
||||
.logout 0,
|
||||
.value 0
|
||||
|
||||
dirblk: 0
|
||||
0
|
||||
|
||||
bufsize==1632
|
||||
loc .+bufsiz
|
||||
|
||||
end go
|
||||
Loading…
x
Reference in New Issue
Block a user