mirror of
https://github.com/PDP-10/its.git
synced 2026-03-22 17:08:15 +00:00
tmp
This commit is contained in:
@@ -21,15 +21,20 @@ TITLE DRAGON -- top-level daemon
|
||||
;;; expected of ITS developers! -- EJS@MIT-MC (today: eric@swenson.org)
|
||||
;;;
|
||||
|
||||
a=1
|
||||
b=2
|
||||
c=3
|
||||
|
||||
dirchn=4
|
||||
filchn=5
|
||||
jobchn=6
|
||||
|
||||
.insrt system; fsdefs
|
||||
dirbsz=2000
|
||||
|
||||
nop=255000000000
|
||||
nop=jfcl
|
||||
|
||||
taraka=sixbit/TARAKA/
|
||||
taraka=sixbit /TARAKA/
|
||||
channa=sixbit /CHANNA/
|
||||
rakash=sixbit /RAKASH/
|
||||
|
||||
@@ -37,68 +42,64 @@ lpdl==:100.
|
||||
.vector pdl(lpdl)
|
||||
|
||||
go: .call [setz ;; login as TARAKA
|
||||
sixbit/LOGIN /
|
||||
sixbit/LOGIN/
|
||||
[ taraka ]
|
||||
setzi 0]
|
||||
nop ;; ignore errors logging in
|
||||
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
|
||||
.open dirchn, [.bii,,'DSK ? sixbit/.FILE./ ? sixbit /(DIR)/]
|
||||
jsr die
|
||||
.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 /
|
||||
move a, dirblk+1 ;; get offset to name area into R1
|
||||
addi a, dirblk ;; convert to address of name area
|
||||
filoop: cail a, [ taraka ] ;; have we reached end of buffer?
|
||||
jsr die ;; yes, abort
|
||||
move b, ufn1(a) ;; get FN1 into R2
|
||||
camn b, [ 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
|
||||
[ sixbit /DSK/ ] ;; DSK: device
|
||||
[ rakash ] ;; FN1
|
||||
ufn2(a) ;; FN2 (from dirblk in R1 + 1)
|
||||
setz [ 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
|
||||
SIXBIT/OPEN/
|
||||
[ .uao,,jobchn ]
|
||||
[ sixbit /USR/ ] ;; USR: device
|
||||
%climm,,0 ;; use uname of TARAKA
|
||||
setz ufn2(a)] ;; 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
|
||||
sixbit/LOAD/
|
||||
%climm,,jobchn ;; specify job channel
|
||||
setzi filchn] ;; specify file channel
|
||||
jrst nextjb ;; on error, clean up job and process next file
|
||||
move b, ufn2(a) ;; get FN2/Job name in R2
|
||||
.uset jobchn, [.ssnam,,b] ;; set SNAME of job
|
||||
.iot filchn, b ;; get starting address?
|
||||
hrrzs b ;; zero out instruction opcode?
|
||||
.uset jobchn, [.supc,,b] ;; 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
|
||||
movei jobchn ;; channel to job
|
||||
movsi 5 ((setz))] ;; control bits
|
||||
.value ;; kill ourselves on error?
|
||||
caia
|
||||
nextjb: .uclose jobchn, ;; kill job
|
||||
nextfl: .close filchn, ;; close file
|
||||
.close jobchn, ;; close job
|
||||
addi 1, 5 ;; compute address of next file
|
||||
addi a, lunblk ;; compute address of next file
|
||||
jrst filoop ;; and loop
|
||||
|
||||
done: 0
|
||||
.logout 0,
|
||||
.value 0
|
||||
die: 0
|
||||
.logout
|
||||
.value
|
||||
|
||||
dirblk: 0
|
||||
0
|
||||
|
||||
bufsize==1632
|
||||
loc .+bufsiz
|
||||
ufd: block 2000
|
||||
|
||||
end go
|
||||
|
||||
187
taraka.mid
Normal file
187
taraka.mid
Normal file
@@ -0,0 +1,187 @@
|
||||
SLBK format
|
||||
|
||||
Start instruction:
|
||||
254000000100 jrst 100 ;"5@ ! "
|
||||
|
||||
Symbol table:
|
||||
Header: global
|
||||
Symbol daddnl = 410300000000 ( halfkilled local)
|
||||
Symbol tutbp = 440300000000 ( halfkilled local)
|
||||
Symbol unfn1 = 0 ( halfkilled local)
|
||||
Symbol mdnum = 0 ( halfkilled local)
|
||||
Symbol udescp = 0 ( halfkilled local)
|
||||
Symbol mnunam = 0 ( halfkilled local)
|
||||
Symbol unlink = 1 ( halfkilled local)
|
||||
Symbol $$temp = 1 ( halfkilled local)
|
||||
Symbol unfn2 = 1 ( halfkilled local)
|
||||
Symbol mdnamp = 1 ( halfkilled local)
|
||||
Symbol a = 1 ( local)
|
||||
Symbol udnamp = 1 ( halfkilled local)
|
||||
Symbol lmnblk = 2 ( halfkilled local)
|
||||
Symbol b = 2 ( local)
|
||||
Symbol mdyear = 2 ( halfkilled local)
|
||||
Symbol unrndm = 2 ( halfkilled local)
|
||||
Symbol udname = 2 ( halfkilled local)
|
||||
Symbol unreap = 2 ( halfkilled local)
|
||||
Symbol nxlbyt = 2 ( halfkilled local)
|
||||
Symbol c = 3 ( local)
|
||||
Symbol udblks = 3 ( halfkilled local)
|
||||
Symbol undate = 3 ( halfkilled local)
|
||||
Symbol tutbyt = 3 ( halfkilled local)
|
||||
Symbol mpdoff = 3 ( halfkilled local)
|
||||
Symbol mpdwdk = 4 ( halfkilled local)
|
||||
Symbol unref = 4 ( halfkilled local)
|
||||
Symbol diric = 4 ( halfkilled local)
|
||||
Symbol udallo = 4 ( halfkilled local)
|
||||
Symbol unwrit = 4 ( halfkilled local)
|
||||
Symbol mdchk = 5 ( halfkilled local)
|
||||
Symbol lunblk = 5 ( halfkilled local)
|
||||
Symbol dskic = 5 ( halfkilled local)
|
||||
Symbol tutmny = 6 ( halfkilled local)
|
||||
Symbol usrch = 6 ( halfkilled local)
|
||||
Symbol mdnuds = 6 ( halfkilled local)
|
||||
Symbol ufdbyt = 6 ( halfkilled local)
|
||||
Symbol ufdbpw = 6 ( halfkilled local)
|
||||
Symbol tutlk = 7 ( halfkilled local)
|
||||
Symbol lmiblk = 7 ( halfkilled local)
|
||||
Symbol unmark = 10 ( halfkilled local)
|
||||
Symbol uddesc = 13 ( halfkilled local)
|
||||
Symbol tutepw = 14 ( halfkilled local)
|
||||
Symbol udtkmx = 14 ( halfkilled local)
|
||||
Symbol uncdel = 20 ( halfkilled local)
|
||||
Symbol delbts = 20 ( halfkilled local)
|
||||
Symbol udskmx = 22 ( halfkilled local)
|
||||
Symbol unigfl = 24 ( halfkilled local)
|
||||
Symbol udwph = 37 ( halfkilled local)
|
||||
Symbol taraka = 100 ( local)
|
||||
Symbol tarak0 = 100 ( local)
|
||||
Symbol dr1 = 111 ( local)
|
||||
Symbol nxc = 134 ( local)
|
||||
Symbol nxt = 135 ( local)
|
||||
Symbol die = 141 ( local)
|
||||
Symbol ufd = 144 ( local)
|
||||
Symbol dtmsk = 77777 ( halfkilled local)
|
||||
Symbol undump = 400000 ( halfkilled local)
|
||||
Symbol unbyte = 1100000000 ( halfkilled local)
|
||||
Symbol $$tem1 = 1100000000 ( halfkilled local)
|
||||
Symbol undscp = 1500000000 ( halfkilled local)
|
||||
Symbol dadtnr = 1700000000 ( halfkilled local)
|
||||
Symbol untim = 2200000000 ( halfkilled local)
|
||||
Symbol unauth = 111100000000 ( halfkilled local)
|
||||
Symbol unpkn = 150500000000 ( halfkilled local)
|
||||
Symbol daddnr = 170300000000 ( halfkilled local)
|
||||
Symbol versio = 212400000000 ( halfkilled local)
|
||||
Symbol unlnkb = 220100000000 ( halfkilled local)
|
||||
Symbol unday = 220500000000 ( halfkilled local)
|
||||
Symbol dadtnl = 221700000000 ( halfkilled local)
|
||||
Symbol unymd = 222000000000 ( halfkilled local)
|
||||
Symbol unrefd = 222000000000 ( halfkilled local)
|
||||
Symbol unmon = 270400000000 ( halfkilled local)
|
||||
Symbol unwrdc = 301200000000 ( halfkilled local)
|
||||
Symbol unyrb = 330700000000 ( halfkilled local)
|
||||
|
||||
Duplicate start instruction:
|
||||
254000000100 jrst 100 ;"5@ ! "
|
||||
|
||||
Disassembly:
|
||||
|
||||
000100: 043000002145 .call [setz
|
||||
SIXBIT/LOGIN /
|
||||
000000002144
|
||||
401000000000]
|
||||
;"$8 1E"
|
||||
000101: 255000000000 nop ;"5H " "+ \0\0\0"
|
||||
000102: 043540002152 .suset 2152 ;"$=@ 1J"
|
||||
000103: 041200002153 .open 4, 2153 ;"$* 1K"
|
||||
000104: 264000000141 jsr 141 ;"6@ !A"
|
||||
000105: 040200002156 .iot 4, 2156 ;"$" 1N"
|
||||
000106: 042200000007 .close 4, ;"$2 '"
|
||||
000107: 200040000145 move 1, 145 ;"0 @ !E"
|
||||
000110: 271040000144 addi 1, 144 ;"7(@ !D"
|
||||
000111: 301040002144 cail 1, 2144 ;"8(@ 1D"
|
||||
000112: 264000000141 jsr 141 ;"6@ !A"
|
||||
000113: 200101000000 move 2, (1) ;"0!! "
|
||||
000114: 316100002157 camn 2, 2157 ;"9Q 1O"
|
||||
000115: 043000002162 .call [setz
|
||||
SIXBIT/OPEN /
|
||||
000000002160
|
||||
000000002161
|
||||
000000002157
|
||||
000001000001
|
||||
400000002151]
|
||||
;"$8 1R"
|
||||
000116: 254000000135 jrst 135 ;"5@ !="
|
||||
000117: 043000002173 .call [setz
|
||||
SIXBIT/OPEN /
|
||||
000000002171
|
||||
000000002172
|
||||
001000000000
|
||||
400001000001]
|
||||
;"$8 1["
|
||||
000120: 254000000135 jrst 135 ;"5@ !="
|
||||
000121: 042300000037 .reset 6, ;"$3 ?"
|
||||
000122: 043000002201 .call [setz
|
||||
SIXBIT/LOAD /
|
||||
001000000006
|
||||
401000000005]
|
||||
;"$8 2!"
|
||||
000123: 254000000134 jrst 134 ;"5@ !<"
|
||||
000124: 200101000001 move 2, 1(1) ;"0!! !"
|
||||
000125: 044300002205 .uset 6, 2205 ;"$C 2%"
|
||||
000126: 040240000002 .iot 5, 2 ;"$"@ ""
|
||||
000127: 553000000002 hrrzs 0, 2 ;"M8 ""
|
||||
000130: 044300002206 .uset 6, 2206 ;"$C 2&"
|
||||
000131: 043000002207 .call [setz
|
||||
SIXBIT/DISOWN/
|
||||
201000000006
|
||||
405000000005]
|
||||
;"$8 2'"
|
||||
000132: 043200000000 .value 0 ;"$: "
|
||||
000133: 304000000000 caia 0, 0 ;"8@ " "1\0\0\0\0"
|
||||
000134: 042300000010 .uclose 6, ;"$3 ("
|
||||
000135: 042240000007 .close 5, ;"$2@ '"
|
||||
000136: 042300000007 .close 6, ;"$3 '"
|
||||
000137: 271040000005 addi 1, 5 ;"7(@ %"
|
||||
000140: 254000000111 jrst 111 ;"5@ !)"
|
||||
000141: 000000000000 ;" "
|
||||
000142: 042000000033 .logout 0, ;"$0 ;"
|
||||
000143: 043200000000 .value 0 ;"$: "
|
||||
002144: 644162415341 trca 3, @415341(2) ;"TARAKA"
|
||||
002145: 400000000000 setz 0, ;"@ " "@\0\0\0\0"
|
||||
002146: 545747515600 hlri 17, 515600(7) ;"LOGIN " "Y>=\033@"
|
||||
002147: 000000002144 ;" 1D"
|
||||
002150: 401000000000 setzi 0, ;"@( " "@ \0\0\0"
|
||||
002151: 435041565641 ori 1, 565641(1) ;"CHANNA"
|
||||
002152: 400016002151 setz 0, 2151(16) ;"@ . 1I"
|
||||
002153: 000006446353 ;" &DSK"
|
||||
002154: 164651544516 fmpr 15, 544516(11) ;".FILE."
|
||||
002155: 104451621100 ;"(DIR) "
|
||||
002156: 776000000144 blki 760, 144 ;"_P !D"
|
||||
002157: 624153416350 trza 3, 416350(13) ;"RAKASH"
|
||||
002160: 000004000005 ;" $ %"
|
||||
002161: 446353000000 eqvm 7, (13) ;"DSK " "INX\0\0"
|
||||
002162: 400000000000 setz 0, ;"@ " "@\0\0\0\0"
|
||||
002163: 576045560000 hlrem 1, 560000(5) ;"OPEN " "_B-`\0"
|
||||
002164: 000000002160 ;" 1P"
|
||||
002165: 000000002161 ;" 1Q"
|
||||
002166: 000000002157 ;" 1O"
|
||||
002167: 000001000001 ;" ! !"
|
||||
002170: 400000002151 setz 0, 2151 ;"@ 1I"
|
||||
002171: 000001000006 ;" ! &"
|
||||
002172: 656362000000 tdcn 7, @(2) ;"USR "
|
||||
002173: 400000000000 setz 0, ;"@ " "@\0\0\0\0"
|
||||
002174: 576045560000 hlrem 1, 560000(5) ;"OPEN " "_B-`\0"
|
||||
002175: 000000002171 ;" 1Y"
|
||||
002176: 000000002172 ;" 1Z"
|
||||
002177: 001000000000 ;" ( "
|
||||
002200: 400001000001 setz 0, 1(1) ;"@ ! !"
|
||||
002201: 400000000000 setz 0, ;"@ " "@\0\0\0\0"
|
||||
002202: 545741440000 hlri 17, 440000(1) ;"LOAD " "Y>\f@\0"
|
||||
002203: 001000000006 ;" ( &"
|
||||
002204: 401000000005 setzi 0, 5 ;"@( %"
|
||||
002205: 400016000002 setz 0, 2(16) ;"@ . ""
|
||||
002206: 400000000002 setz 0, 2 ;"@ ""
|
||||
002207: 400000000000 setz 0, ;"@ " "@\0\0\0\0"
|
||||
002210: 445163576756 eqvi 3, @576756(3) ;"DISOWN"
|
||||
002211: 201000000006 movei 0, 6 ;"0( &"
|
||||
002212: 405000000005 andi 0, 5 ;"@H %"
|
||||
Reference in New Issue
Block a user