mirror of
https://github.com/PDP-10/its.git
synced 2026-04-29 05:15:47 +00:00
use original symbols
This commit is contained in:
@@ -25,15 +25,13 @@ a=1
|
|||||||
b=2
|
b=2
|
||||||
c=3
|
c=3
|
||||||
|
|
||||||
dirchn=4
|
diric=4
|
||||||
filchn=5
|
dskic=5
|
||||||
jobchn=6
|
usrch=6
|
||||||
|
|
||||||
.insrt system; fsdefs
|
.insrt system; fsdefs
|
||||||
dirbsz=2000
|
dirbsz=2000
|
||||||
|
|
||||||
nop=jfcl
|
|
||||||
|
|
||||||
taraka=sixbit /TARAKA/
|
taraka=sixbit /TARAKA/
|
||||||
channa=sixbit /CHANNA/
|
channa=sixbit /CHANNA/
|
||||||
rakash=sixbit /RAKASH/
|
rakash=sixbit /RAKASH/
|
||||||
@@ -41,60 +39,60 @@ rakash=sixbit /RAKASH/
|
|||||||
lpdl==:100.
|
lpdl==:100.
|
||||||
.vector pdl(lpdl)
|
.vector pdl(lpdl)
|
||||||
|
|
||||||
go: .call [setz ;; login as TARAKA
|
taraka: .call [setz ;; login as TARAKA
|
||||||
sixbit/LOGIN/
|
sixbit/LOGIN/
|
||||||
[ taraka ]
|
[ taraka ]
|
||||||
setzi 0]
|
setzi 0]
|
||||||
nop ;; ignore errors logging in
|
jfcl ;; ignore errors logging in
|
||||||
.suset [.ssnam,,[channa]] ;; set SNAME to CHANNA
|
.suset [.ssnam,,[channa]] ;; set SNAME to CHANNA
|
||||||
;; open CHANNA UDIR
|
;; open CHANNA UDIR
|
||||||
.open dirchn, [.bii,,'DSK ? sixbit/.FILE./ ? sixbit /(DIR)/]
|
.open diric, [.bii,,'DSK ? sixbit/.FILE./ ? sixbit /(DIR)/]
|
||||||
jsr die
|
jsr die
|
||||||
.iot dirchn, [-dirbsz,,dirblk] ;; read in UDIR
|
.iot diric, [-dirbsz,,dirblk] ;; read in UDIR
|
||||||
.close dirchn,
|
.close diric,
|
||||||
move a, dirblk+1 ;; get offset to name area into R1
|
move a, dirblk+1 ;; get offset to name area into R1
|
||||||
addi a, dirblk ;; convert to address of name area
|
addi a, dirblk ;; convert to address of name area
|
||||||
filoop: cail a, [ taraka ] ;; have we reached end of buffer?
|
dr1: cail a, [ taraka ] ;; have we reached end of buffer?
|
||||||
jsr die ;; yes, abort
|
jsr die ;; yes, abort
|
||||||
move b, ufn1(a) ;; get FN1 into R2
|
move b, ufn1(a) ;; get FN1 into R2
|
||||||
camn b, [ rakash ] ;; is FN1 == RAKASH
|
camn b, [ rakash ] ;; is FN1 == RAKASH
|
||||||
.call [setz ;; yes, open the file
|
.call [setz ;; yes, open the file
|
||||||
sixbit /OPEN/
|
sixbit /OPEN/
|
||||||
[ .uii,,filchn ]
|
[ .uii,,dskic ]
|
||||||
[ sixbit /DSK/ ] ;; DSK: device
|
[ sixbit /DSK/ ] ;; DSK: device
|
||||||
[ rakash ] ;; FN1
|
[ rakash ] ;; FN1
|
||||||
ufn2(a) ;; FN2 (from dirblk in R1 + 1)
|
ufn2(a) ;; FN2 (from dirblk in R1 + 1)
|
||||||
setz [ channa ]]
|
setz [ channa ]]
|
||||||
jrst nextfl ;; try next file
|
jrst nxt ;; try next file
|
||||||
.call [setz ;; start create daemon job
|
.call [setz ;; start create daemon job
|
||||||
SIXBIT/OPEN/
|
SIXBIT/OPEN/
|
||||||
[ .uao,,jobchn ]
|
[ .uao,,usrch ]
|
||||||
[ sixbit /USR/ ] ;; USR: device
|
[ sixbit /USR/ ] ;; USR: device
|
||||||
%climm,,0 ;; use uname of TARAKA
|
%climm,,0 ;; use uname of TARAKA
|
||||||
setz ufn2(a)] ;; use jname of FN2 of daemon
|
setz ufn2(a)] ;; use jname of FN2 of daemon
|
||||||
jrst nextfl ;; process next file on error
|
jrst nxt ;; process next file on error
|
||||||
.reset jobchn,
|
.reset usrch,
|
||||||
.call [setz ;; load program into job
|
.call [setz ;; load program into job
|
||||||
sixbit/LOAD/
|
sixbit/LOAD/
|
||||||
%climm,,jobchn ;; specify job channel
|
%climm,,usrch ;; specify job channel
|
||||||
setzi filchn] ;; specify file channel
|
setzi dskic] ;; specify file channel
|
||||||
jrst nextjb ;; on error, clean up job and process next file
|
jrst nxc ;; on error, clean up job and process next file
|
||||||
move b, ufn2(a) ;; get FN2/Job name in R2
|
move b, ufn2(a) ;; get FN2/Job name in R2
|
||||||
.uset jobchn, [.ssnam,,b] ;; set SNAME of job
|
.uset usrch, [.ssnam,,b] ;; set SNAME of job
|
||||||
.iot filchn, b ;; get starting address?
|
.iot dskic, b ;; get starting address?
|
||||||
hrrzs b ;; zero out instruction opcode?
|
hrrzs b ;; zero out instruction opcode?
|
||||||
.uset jobchn, [.supc,,b] ;; set starting address of new job
|
.uset usrch, [.supc,,b] ;; set starting address of new job
|
||||||
.call [setz ;; disown job (doc doesn't seem to match
|
.call [setz ;; disown job (doc doesn't seem to match
|
||||||
SIXBIT/DISOWN/ ;; this call from sysdoc; _calls 127
|
SIXBIT/DISOWN/ ;; this call from sysdoc; _calls 127
|
||||||
movei jobchn ;; channel to job
|
movei usrch ;; channel to job
|
||||||
movsi 5 ((setz))] ;; control bits
|
movsi 5 ((setz))] ;; control bits
|
||||||
.value ;; kill ourselves on error?
|
.value ;; kill ourselves on error?
|
||||||
caia
|
caia
|
||||||
nextjb: .uclose jobchn, ;; kill job
|
nxc: .uclose usrch, ;; kill job
|
||||||
nextfl: .close filchn, ;; close file
|
nxt: .close dskic, ;; close file
|
||||||
.close jobchn, ;; close job
|
.close usrch, ;; close job
|
||||||
addi a, lunblk ;; compute address of next file
|
addi a, lunblk ;; compute address of next file
|
||||||
jrst filoop ;; and loop
|
jrst dr1 ;; and loop
|
||||||
|
|
||||||
die: 0
|
die: 0
|
||||||
.logout
|
.logout
|
||||||
@@ -102,4 +100,4 @@ die: 0
|
|||||||
|
|
||||||
ufd: block 2000
|
ufd: block 2000
|
||||||
|
|
||||||
end go
|
end taraka
|
||||||
|
|||||||
Reference in New Issue
Block a user