mirror of
https://github.com/PDP-10/its.git
synced 2026-04-30 13:42:06 +00:00
Files from CLIB; AR2 CLIB.
This commit is contained in:
727
src/clib/c10sys.cmid
Normal file
727
src/clib/c10sys.cmid
Normal file
@@ -0,0 +1,727 @@
|
||||
;
|
||||
; C10SYS - C LIBRARY ROUTINES (INTERFACES TO SYSTEM CALLS)
|
||||
;
|
||||
; This file is ITS dependent.
|
||||
;
|
||||
|
||||
TITLE C10SYS
|
||||
.INSRT NC
|
||||
.INSRT NM
|
||||
|
||||
; CONTAINS:
|
||||
|
||||
; SYSOPEN ; OPEN CHANNEL
|
||||
; CLOSE ; CLOSE CHANNEL
|
||||
; CHNLOC ; FIND AVAILABLE CHANNEL
|
||||
|
||||
; UIIOT ; PERFORM UNIT INPUT IOT
|
||||
; UOIOT ; PERFORM UNIT OUTPUT IOT
|
||||
; SYSREAD ; PERFORM BLOCK INPUT IOT
|
||||
; SYSWRITE ; PERFORM BLOCK OUTPUT IOT
|
||||
; SIOT ; STRING IOT
|
||||
|
||||
; SYSFINISH ; FORCE OUTPUT AND WAIT FOR COMPLETION
|
||||
; SYSFORCE ; FORCE OUTPUT TO DEVICE
|
||||
|
||||
; RESET ; RESET CHANNEL
|
||||
; STATUS ; GET CHANNEL STATUS
|
||||
; RFPNTR ; READ FILE ACCESS POINTER
|
||||
; ACCESS ; PERFORM RANDOM ACCESS ON CHANNEL
|
||||
; FILLEN ; GET FILE LENGTH
|
||||
; FILNAM ; GET FILE NAME FROM CHANNEL
|
||||
|
||||
; RAUTH ; READ FILE AUTHOR
|
||||
; SAUTH ; SET FILE AUTHOR
|
||||
; RDMPBT ; READ DUMP BIT
|
||||
; SDMPBT ; SET DUMP BIT
|
||||
; SREAPB ; SET DO-NOT-REAP BIT
|
||||
; RFDATE ; READ FILE CREATION DATE
|
||||
; SFDATE ; SET FILE CREATION DATE
|
||||
; SRDATE ; SET FILE REFERENCE DATE
|
||||
; DSKUPD ; UPDATE FILE INFO
|
||||
; RESRDT ; RESTORE FILE INFO
|
||||
|
||||
; TTYGET ; GET TTY STATUS
|
||||
; TTYSET ; SET TTY STATUS
|
||||
; CNSGET ; GET CONSOLE PARAMETERS
|
||||
; CNSSET ; SET CONSOLE PARAMETERS
|
||||
|
||||
; ITYIC ; READ TTY INTERRUPT CHARACTER
|
||||
; WHYINT ; WHY WAS I INTERRUPTED?
|
||||
; SYSLISTEN ; LISTEN FOR TTY INPUT
|
||||
; RCPOS ; READ CURSOR POSITION
|
||||
; SCML ; SET # OF COMMAND LINES
|
||||
|
||||
; GETCPU ; RETURN CPU TIME IN 4.069 USEC
|
||||
; CPUTM ; RETURN CPU TIME IN 1/60 SECONDS
|
||||
; SLEEP ; GO TO SLEEP
|
||||
; ETIME ; RETURN A TIME FOR ELAPSED TIME MEASUREMENT
|
||||
; NOW ; GET CURRENT DATE AND TIME
|
||||
|
||||
; CORBLK ; PERFORM PAGE HACKING
|
||||
; CORTYP ; GET INFORMATION ABOUT PAGE
|
||||
; PAGEID ; GET NAMED PUBLIC PAGE
|
||||
; PGWRIT ; CAUSE PAGE TO BE WRITTEN ON DISK
|
||||
|
||||
; RSNAME ; READ SNAME
|
||||
; SSNAME ; SET SNAME
|
||||
; RUNAME ; READ USER NAME
|
||||
; RSUSET ; WHAT = RSUSET (WHERE)
|
||||
; WSUSET ; WHAT = WSUSET (WHERE, WHAT)
|
||||
; RUSET ; WHAT = RUSET (WHO, WHERE)
|
||||
; WUSET ; WHAT = WUSET (WHO, WHERE, WHAT)
|
||||
; WUSRVAR ; RC = WUSRVAR (JOB, SPEC, VALUE)
|
||||
|
||||
; DELETE ; DELETE A FILE
|
||||
; SYSDEL ; DELETE FILE
|
||||
; RENMWO ; RENAME FILE OPEN FOR OUTPUT
|
||||
; SYSRNM ; EC = SYSRNM (FS1, FS2)
|
||||
; SYSLNK ; EC = MAKE LINK (FS1, FS2)
|
||||
; DIRSIZ ; READ DIRECTORY SIZE, QUOTA INFO
|
||||
|
||||
; TRANAD ; RC = TRANAD (JOB, FROM, TO, FLAGS)
|
||||
; TRANCL ; RC = TRANCL (JOB, FLAGS)
|
||||
; TRANDL ; RC = TRANDL (JOB, FILESPEC, FLAGS)
|
||||
|
||||
; SYSLOAD ; LOAD A PROGRAM
|
||||
; PDUMP ; PDUMP A PROGRAM
|
||||
; UCLOSE ; DESTROY INFERIOR JOB
|
||||
; SYSDISOWN ; EC = SYSDISOWN (JOBCH)
|
||||
; REOWN ; EC = REOWN (JOBCH)
|
||||
; SYSDTACH ; EC = SYSDTACH (JOBCH)
|
||||
; SYSATACH ; EC = SYSATACH (JOBCH, TTY)
|
||||
|
||||
; ATTY ; GIVE TTY TO INFERIOR
|
||||
; DTTY ; TAKE TTY FROM INFERIOR
|
||||
|
||||
; WFNZ ; WAIT FOR WORD TO BECOME NON-ZERO
|
||||
; WFZ ; WAIT FOR WORD TO BECOME ZERO
|
||||
; VAL7RET ; VALRET AN ASCIZ STRING
|
||||
; DEMSIG ; SIGNAL A DEMON PROCESS
|
||||
; SSTATUS ; OBTAIN SYSTEM STATUS
|
||||
|
||||
; MAKTAG ; CREATE A TAG (GLOBAL LABEL)
|
||||
; GOTAG ; GOTO A TAG, DISMISSING INTERRUPTS
|
||||
|
||||
CENTRY SYSOPEN,[CHAN, FILSPC, MODE] ; OPEN CHANNEL
|
||||
|
||||
HRLZ B,MODE
|
||||
HRR B,CHAN
|
||||
HRRZ C,FILSPC
|
||||
SYSCAL OPEN,[B ? (C) ? 1(C) ? 2(C) ? 3(C)]
|
||||
RETURN
|
||||
|
||||
CENTRY CLOSE,[CHAN] ; CLOSE CHANNEL
|
||||
|
||||
SYSCAL CLOSE,[CHAN]
|
||||
RETURN
|
||||
|
||||
CENTRY CHNLOC ; FIND AVAILABLE CHANNEL
|
||||
|
||||
FIRSTC==1 ; CHANGE TO 0 IF SYSTEM FIXED SO THAT
|
||||
; CHANNEL 0 IS NOT ARBITRARILY SMASHED
|
||||
; BY .CALL MLINK, ETC.
|
||||
|
||||
MOVEI B,FIRSTC
|
||||
CL$1: SYSCAL RFNAME,[B ? 2000,,C]
|
||||
JUMPE C,CL$2 ; CHANNEL NOT OPEN
|
||||
ADDI B,1
|
||||
CAIGE B,20
|
||||
GO CL$1
|
||||
SETO A,
|
||||
GO CL$RET
|
||||
CL$2: MOVE A,B
|
||||
CL$RET: RETURN
|
||||
|
||||
CENTRY UIIOT,[CHAN] ; PERFORM UNIT INPUT IOT
|
||||
|
||||
MOVE A,CHAN
|
||||
ANDI A,17
|
||||
LSH A,23.
|
||||
IOR A,[.IOT A]
|
||||
XCT A
|
||||
RETURN
|
||||
|
||||
CENTRY UOIOT,[CHAN,DATA] ; PERFORM UNIT OUTPUT IOT
|
||||
|
||||
MOVE A,CHAN
|
||||
ANDI A,17
|
||||
LSH A,23.
|
||||
IOR A,[.IOT DATA]
|
||||
XCT A
|
||||
MOVE A,DATA
|
||||
RETURN
|
||||
|
||||
CENTRY SYSREAD,[CHAN,BUFFP,NWORDS] ; PERFORM BLOCK INPUT IOT
|
||||
XENTRY SYSWRITE,SYSREAD ; PERFORM BLOCK OUTPUT IOT
|
||||
|
||||
MOVN A,NWORDS ; MINUS NUMBER OF WORDS
|
||||
HRLZ 0,A
|
||||
HRR 0,BUFFP ; SET UP CPTR
|
||||
MOVE C,CHAN
|
||||
ANDI C,17
|
||||
LSH C,23.
|
||||
IOR C,[.IOT 0]
|
||||
XCT C
|
||||
HLRE C,0 ; NEW COUNTER
|
||||
SUB C,A ; NUMBER OF WORDS WRITTEN/READ
|
||||
MOVE A,C
|
||||
RETURN
|
||||
|
||||
CENTRY SIOT,[CHAN,BYTP,NBYTES] ; STRING IOT
|
||||
|
||||
SYSCAL SIOT,[CHAN ? BYTP ? NBYTES],SI$LOS
|
||||
MOVE A,NBYTES
|
||||
SI$RET: RETURN
|
||||
SI$LOS: CROAK SIOT LOST
|
||||
GO SI$RET
|
||||
|
||||
CENTRY SYSFINISH,[CHAN]
|
||||
|
||||
SYSCAL FINISH,[CHAN]
|
||||
RETURN
|
||||
|
||||
CENTRY SYSFORCE,[CHAN]
|
||||
|
||||
SYSCAL FORCE,[CHAN]
|
||||
RETURN
|
||||
|
||||
CENTRY RESET,[CHAN] ; RESET CHANNEL
|
||||
|
||||
MOVE A,CHAN
|
||||
ANDI A,17
|
||||
LSH A,23.
|
||||
IOR A,[.RESET]
|
||||
XCT A
|
||||
SETZ A,
|
||||
RETURN
|
||||
|
||||
CENTRY STATUS,[CHAN] ; GET CHANNEL STATUS
|
||||
|
||||
MOVE A,CHAN
|
||||
LSH A,23.
|
||||
IOR A,[.STATUS A]
|
||||
XCT A
|
||||
RETURN
|
||||
|
||||
CENTRY RFPNTR,[CHAN] ; READ FILE ACCESS POINTER
|
||||
|
||||
SYSCAL RFPNTR,[CHAN ? MOVEM B],RP$LOS
|
||||
MOVE A,B
|
||||
RP$RET: RETURN
|
||||
RP$LOS: MOVN A,A
|
||||
GO RP$RET
|
||||
|
||||
CENTRY ACCESS,[CHAN,POS] ; PERFORM RANDOM ACCESS ON CHANNEL
|
||||
|
||||
SYSCAL ACCESS,[CHAN ? POS]
|
||||
RETURN
|
||||
|
||||
CENTRY FILLEN,[CHAN] ; GET FILE LENGTH
|
||||
|
||||
SYSCAL FILLEN,[CHAN ? 2000,,B],FL$LOS
|
||||
MOVE A,B
|
||||
FL$RET: RETURN
|
||||
FL$LOS: MOVN A,A
|
||||
GO FL$RET
|
||||
|
||||
CENTRY FILNAM,[CHAN,FILSPC] ; GET FILE NAME FROM CHANNEL
|
||||
|
||||
HRLZ B,CHAN ; CHANNEL
|
||||
HRR B,FILSPC ; FILESPEC FOR RESULTS
|
||||
MOVE C,4(B) ; SAVE 5TH WORD
|
||||
.RCHST B, ; READ CHANNEL STATUS
|
||||
HRLZS (B) ; LEFT ADJUST DEV
|
||||
MOVEM C,4(B) ; RESTORE 5TH WORD
|
||||
RETURN ; DONE
|
||||
|
||||
CENTRY RAUTH,[CHAN]
|
||||
|
||||
SYSCAL RAUTH,[CHAN ? MOVEM B],RA$LOS
|
||||
MOVE A,B
|
||||
RA$RET: RETURN
|
||||
RA$LOS: MOVN A,A
|
||||
GO RA$RET
|
||||
|
||||
CENTRY SAUTH,[CHAN,AUTHOR]
|
||||
|
||||
SYSCAL SAUTH,[CHAN ? AUTHOR]
|
||||
RETURN
|
||||
|
||||
CENTRY RDMPBT,[CHAN]
|
||||
|
||||
SYSCAL RDMPBT,[CHAN ? MOVEM B],RD$LOS
|
||||
MOVE A,B
|
||||
RD$RET: RETURN
|
||||
RD$LOS: MOVN A,A
|
||||
GO RD$RET
|
||||
|
||||
CENTRY SDMPBT,[CHAN,BIT]
|
||||
|
||||
SYSCAL SDMPBT,[CHAN ? BIT]
|
||||
RETURN
|
||||
|
||||
CENTRY SREAPB,[CHAN,BIT]
|
||||
|
||||
SYSCAL SREAPB,[CHAN ? BIT]
|
||||
RETURN
|
||||
|
||||
CENTRY RFDATE,[CHAN] ; READ FILE CREATION DATE
|
||||
|
||||
SYSCAL RFDATE,[CHAN ? 2000,,B],RF$LOS
|
||||
MOVE A,B
|
||||
RF$RET: RETURN
|
||||
RF$LOS: MOVN A,A
|
||||
GO RF$RET
|
||||
|
||||
CENTRY SFDATE,[CHAN,FDATE] ; SET FILE CREATION DATE
|
||||
|
||||
SYSCAL SFDATE,[CHAN ? FDATE]
|
||||
RETURN
|
||||
|
||||
CENTRY SRDATE,[CHAN,FDATE] ; SET FILE REFERENCE DATE
|
||||
|
||||
SYSCAL SRDATE,[CHAN ? FDATE]
|
||||
RETURN
|
||||
|
||||
CENTRY DSKUPD,[CHAN]
|
||||
|
||||
SYSCAL DSKUPD,[CHAN]
|
||||
RETURN
|
||||
|
||||
CENTRY RESRDT,[CHAN]
|
||||
|
||||
SYSCAL RESRDT,[CHAN]
|
||||
RETURN
|
||||
|
||||
CENTRY TTYGET,[CHAN,BLOCK] ; GET TTY STATUS - WRITES 3 VALUES
|
||||
|
||||
HRRZ B,BLOCK
|
||||
SYSCAL TTYGET,[CHAN ? MOVEM (B) ? MOVEM 1(B) ? MOVEM 2(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY TTYSET,[CHAN,BLOCK] ; SET TTY STATUS - READS 3 VALUES
|
||||
|
||||
HRRZ B,BLOCK
|
||||
SYSCAL TTYSET,[CHAN ? (B) ? 1(B) ? 2(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY CNSGET,[CHAN,BLOCK] ; GET CONSOLE STATUS - WRITES 5 VALUES
|
||||
|
||||
HRRZ B,BLOCK
|
||||
SYSCAL CNSGET,[CHAN ? MOVEM (B) ? MOVEM 1(B) ? MOVEM 2(B)
|
||||
MOVEM 3(B) ? MOVEM 4(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY CNSSET,[CHAN,BLOCK] ; SET CONSOLE STATUS - READS 5 VALUES
|
||||
|
||||
HRRZ B,BLOCK
|
||||
SYSCAL CNSSET,[CHAN ? (B) ? 1(B) ? 2(B) ? 3(B) ? 4(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY WHYINT,[CHAN,BLOCK]
|
||||
|
||||
HRRZ B,BLOCK
|
||||
SYSCAL WHYINT,[CHAN ? (B) ? 1(B) ? 2(B) ? 3(B) ? 4(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY ITYIC,[CHAN] ; READ TTY INTERRUPT CHARACTER
|
||||
|
||||
MOVE A,CHAN ; CHANNEL
|
||||
.ITYIC A,
|
||||
SETO A,
|
||||
RETURN
|
||||
|
||||
CENTRY SYSLISTEN,[CHAN] ; NCHARS = SYSLISTEN(CHAN)
|
||||
|
||||
SYSCAL LISTEN,[CHAN ? MOVEM B],LI$LOS
|
||||
MOVE A,B
|
||||
LI$RET: RETURN
|
||||
LI$LOS: MOVN A,A
|
||||
GO LI$RET
|
||||
|
||||
CENTRY RCPOS,[CHAN] ; READ TTY CURSOR POSITION (V,,H)
|
||||
|
||||
SYSCAL RCPOS,[CHAN ? 2000,,B],RC$LOS
|
||||
MOVE A,B
|
||||
RC$RET: RETURN
|
||||
RC$LOS: MOVN A,A
|
||||
GO RC$RET
|
||||
|
||||
CENTRY SCML,[CHAN,NUMBER]
|
||||
|
||||
SYSCAL SCML,[CHAN ? NUMBER]
|
||||
RETURN
|
||||
|
||||
CENTRY GETCPU ; RETURN CPU TIME IN 4.069 USEC
|
||||
|
||||
.SUSET [24,,A]
|
||||
RETURN
|
||||
|
||||
CENTRY CPUTM ; RETURN CPU TIME IN 1/60 SECONDS
|
||||
|
||||
.SUSET [24,,A]
|
||||
LSH A,-12.
|
||||
RETURN
|
||||
|
||||
CENTRY SLEEP,[TIME] ; GO TO SLEEP
|
||||
|
||||
MOVE A,TIME
|
||||
.SLEEP A,
|
||||
RETURN
|
||||
|
||||
CENTRY ETIME ; RETURN A TIME FOR ELAPSED TIME MEASUREMENT
|
||||
|
||||
.RDTIME A,
|
||||
LSH A,1
|
||||
RETURN
|
||||
|
||||
CENTRY NOW,[PCAL] ; GET CURRENT DATE AND TIME
|
||||
|
||||
HRRZ D,PCAL ; CAL POINTER
|
||||
.RDATE C,
|
||||
LDB A,[360600,,C] ; HIGH-ORDER YEAR SIXBIT
|
||||
SUBI A,20
|
||||
IMULI A,10.
|
||||
LDB B,[300600,,C] ; LOW-ORDER YEAR SIXBIT
|
||||
SUBI B,20
|
||||
ADDI A,1900.(B) ; YEAR
|
||||
MOVEM A,(D)
|
||||
|
||||
LDB A,[220600,,C] ; HIGH-ORDER MONTH
|
||||
SUBI A,20
|
||||
IMULI A,10.
|
||||
LDB B,[140600,,C] ; LOW-ORDER MONTH
|
||||
SUBI B,20
|
||||
ADDI A,(B)
|
||||
MOVEM A,1(D) ; MONTH
|
||||
|
||||
LDB A,[060600,,C] ; HIGH-ORDER DAY
|
||||
SUBI A,20
|
||||
IMULI A,10.
|
||||
LDB B,[000600,,C] ; LOW-ORDER DAY
|
||||
SUBI B,20
|
||||
ADDI A,(B)
|
||||
MOVEM A,2(D) ; DAY
|
||||
|
||||
.RTIME C,
|
||||
LDB A,[360600,,C] ; HIGH-ORDER HOUR
|
||||
SUBI A,20
|
||||
IMULI A,10.
|
||||
LDB B,[300600,,C] ; LOW-ORDER HOUR
|
||||
SUBI B,20
|
||||
ADDI A,(B)
|
||||
MOVEM A,3(D) ; HOUR
|
||||
|
||||
LDB A,[220600,,C] ; HIGH-ORDER MINUTE
|
||||
SUBI A,20
|
||||
IMULI A,10.
|
||||
LDB B,[140600,,C] ; LOW-ORDER MINUTE
|
||||
SUBI B,20
|
||||
ADDI A,(B)
|
||||
MOVEM A,4(D) ; MINUTE
|
||||
|
||||
LDB A,[060600,,C] ; HIGH-ORDER SECOND
|
||||
SUBI A,20
|
||||
IMULI A,10.
|
||||
LDB B,[000600,,C] ; LOW-ORDER SECOND
|
||||
SUBI B,20
|
||||
ADDI A,(B)
|
||||
MOVEM A,5(D) ; SECOND
|
||||
|
||||
MOVEI A,(D)
|
||||
RETURN
|
||||
|
||||
CENTRY CORBLK,[A1,A2,A3,A4,A5] ; PERFORM PAGE HACKING
|
||||
|
||||
SYSCAL CORBLK,[A1 ? A2 ? A3 ? A4 ? A5]
|
||||
RETURN
|
||||
|
||||
CENTRY CORTYP,[PAGNO,OUTPUT] ; GET INFORMATION ABOUT PAGE
|
||||
|
||||
MOVE B,OUTPUT
|
||||
SYSCAL CORTYP,[PAGNO ? 2000,,(B) ? 2000,,1(B) ? 2000,,2(B)
|
||||
2000,,3(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY PAGEID,[VPN,IDN] ; GET NAMED PUBLIC PAGE
|
||||
|
||||
SYSCAL PAGEID,[VPN ? IDN ? 2000,,B],PI$LOS
|
||||
MOVE A,B
|
||||
PI$RET: RETURN
|
||||
PI$LOS: MOVN A,A
|
||||
GO PI$RET
|
||||
|
||||
CENTRY PGWRIT,[JOB,VPN]
|
||||
|
||||
SYSCAL PGWRIT,[JOB ? VPN]
|
||||
RETURN
|
||||
|
||||
CENTRY RSNAME ; READ SNAME
|
||||
|
||||
.SUSET [.RSNAM,,A]
|
||||
RETURN
|
||||
|
||||
CENTRY SSNAME,[NAME] ; SET SNAME
|
||||
|
||||
MOVE A,NAME
|
||||
.SUSET [.SSNAM,,A]
|
||||
RETURN
|
||||
|
||||
CENTRY RUNAME ; READ USER NAME
|
||||
|
||||
.SUSET [.RUNAM,,A]
|
||||
RETURN
|
||||
|
||||
CENTRY RSUSET,[WHERE]
|
||||
|
||||
HRLZ A,WHERE
|
||||
TLZ A,600000 ; CLEAR DIRECTION AND BLOCK BITS
|
||||
ADDI A,A ; RESULT TO A
|
||||
.SUSET A ; DO IT
|
||||
RETURN
|
||||
|
||||
CENTRY WSUSET,[WHERE,WHAT]
|
||||
|
||||
HRLZ B,WHERE
|
||||
TLO B,400000 ; SET DIRECTION BIT
|
||||
TLZ B,200000 ; CLEAR BLOCK BIT
|
||||
ADDI B,A ; TAKE WORD FROM A
|
||||
MOVE A,WHAT
|
||||
.SUSET B ; DO IT
|
||||
RETURN
|
||||
|
||||
CENTRY RUSET,[WHO,WHERE]
|
||||
|
||||
HRLZ B,WHERE
|
||||
TLZ B,600000 ; CLEAR DIRECTION AND BLOCK BITS
|
||||
ADDI B,A ; RESULT TO A
|
||||
HRRZ A,WHO
|
||||
ANDI A,17 ; CHANNEL NUMBER
|
||||
LSH A,23.
|
||||
IOR A,[.USET B]
|
||||
XCT A ; DO IT
|
||||
RETURN
|
||||
|
||||
CENTRY WUSET,[WHO,WHERE,WHAT]
|
||||
|
||||
HRLZ B,WHERE
|
||||
TLO B,400000 ; SET DIRECTION BIT
|
||||
TLZ B,200000 ; CLEAR DIRECTION BIT
|
||||
ADDI B,A ; TAKE WORD FROM A
|
||||
HRRZ C,WHO
|
||||
ANDI C,17 ; CHANNEL NUMBER
|
||||
LSH C,23.
|
||||
IOR C,[.USET B]
|
||||
MOVE A,WHAT
|
||||
XCT C ; DO IT
|
||||
RETURN
|
||||
|
||||
CENTRY WUSRVAR,[JOB,SPEC,VALUE]
|
||||
|
||||
SETZ A,
|
||||
SYSCAL USRVAR,[JOB ? SPEC ? VALUE]
|
||||
RETURN
|
||||
|
||||
CENTRY DELETE,[FILNAM],[FDEV,FDIR,FFN1,FFN2] ; DELETE A FILE
|
||||
|
||||
MOVEI A,FDEV ; POINTER TO FILESPEC
|
||||
CALL FPARSE,[FILNAM,A] ; CONSTRUCT FILESPEC
|
||||
MOVEI A,FDEV
|
||||
CALL SYSDELETE,[A] ; DELETE THAT FILE
|
||||
RETURN
|
||||
|
||||
CENTRY SYSDELETE,[FILSPC] ; DELETE FILE
|
||||
|
||||
MOVE B,FILSPC ; ADDRESS OF FILESPEC BLOCK
|
||||
HRLZI C,(SIXBIT/DSK/)
|
||||
SKIPN (B)
|
||||
MOVEM C,(B)
|
||||
.SUSET [.RSNAM,,C]
|
||||
SKIPN 3(B)
|
||||
MOVEM C,3(B)
|
||||
SYSCAL DELETE,[(B) ? 1(B) ? 2(B) ? 3(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY RENMWO,[CHAN,FILSPC] ; RENAME FILE OPEN FOR OUTPUT
|
||||
|
||||
HRRZ B,FILSPC
|
||||
SYSCAL RENMWO,[CHAN ? 1(B) ? 2(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY SYSRNM,[FILSP1,FILSP2]
|
||||
|
||||
HRRZ B,FILSP1
|
||||
HRRZ C,FILSP2
|
||||
SYSCAL RENAME,[(B) ? 1(B) ? 2(B) ? 3(B) ? 1(C) ? 2(C) ? 3(C)]
|
||||
RETURN
|
||||
|
||||
CENTRY SYSLNK,[FILSP1,FILSP2]
|
||||
|
||||
HRRZ B,FILSP1
|
||||
HRRZ C,FILSP2
|
||||
SYSCAL MLINK,[(B) ? 1(B) ? 2(B) ? 3(B) ? 1(C) ? 2(C) ? 3(C)]
|
||||
RETURN
|
||||
|
||||
CENTRY DIRSIZ,[CHAN,BLOCK] ; WRITES 2 VALUES
|
||||
|
||||
HRRZ B,BLOCK
|
||||
SYSCAL DIRSIZ,[CHAN ? (B) ? 1(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY TRANAD,[JOB,FROM,TO,FLAGS]
|
||||
|
||||
HRRZ B,JOB
|
||||
HRL B,FLAGS
|
||||
HRRZ C,FROM ; FROM FILESPEC
|
||||
HRLI C,-4 ; MAKE IT A CPTR
|
||||
HRRZ D,TO ; TO FILESPEC
|
||||
HRLI D,-4 ; MAKE IT A CPTR
|
||||
SYSCAL TRANAD,[B ? C ? D]
|
||||
RETURN
|
||||
|
||||
CENTRY TRANCL,[JOB,FLAGS]
|
||||
|
||||
HRRZ B,JOB
|
||||
HRL B,FLAGS
|
||||
SKIPN FLAGS
|
||||
HRLI B,300003 ; DEFAULT FLAGS
|
||||
SYSCAL TRANCL,[B]
|
||||
RETURN
|
||||
|
||||
CENTRY TRANDL,[JOB,FILSPC,FLAGS]
|
||||
|
||||
HRRZ B,JOB
|
||||
HRL B,FLAGS
|
||||
HRRZ C,FILSPC
|
||||
HRLI C,-4 ; MAKE IT A CPTR
|
||||
SYSCAL TRANDL,[B ? C]
|
||||
RETURN
|
||||
|
||||
CENTRY SYSLOAD,[JOB,CHAN],[RCODE,OLDIOC] ; LOAD A PROGRAM
|
||||
|
||||
SETZM RCODE
|
||||
CALL ON,[[[2]],[[1]]]
|
||||
MOVEM A,OLDIOC
|
||||
|
||||
SYSCAL LOAD,[JOB ? CHAN],LD$LOS
|
||||
LD$1: CALL ON,[[[2]],OLDIOC]
|
||||
MOVE A,RCODE
|
||||
RETURN
|
||||
LD$LOS: SETOM RCODE
|
||||
GO LD$1
|
||||
|
||||
CENTRY PDUMP,[JOBCH,DSKCH]
|
||||
|
||||
SETZ B,
|
||||
SYSCAL PDUMP,[JOBCH ? DSKCH ? B]
|
||||
RETURN
|
||||
|
||||
CENTRY UCLOSE,[JCHAN] ; DESTROY INFERIOR JOB
|
||||
|
||||
MOVE A,JCHAN
|
||||
ANDI A,17
|
||||
LSH A,23.
|
||||
IOR A,[.UCLOSE]
|
||||
XCT A
|
||||
RETURN
|
||||
|
||||
CENTRY SYSDISOWN,[JCHAN]
|
||||
|
||||
SYSCAL DISOWN,[JCHAN]
|
||||
RETURN
|
||||
|
||||
CENTRY REOWN,[JCHAN]
|
||||
|
||||
SYSCAL REOWN,[JCHAN]
|
||||
RETURN
|
||||
|
||||
CENTRY SYSDTACH,[JCHAN]
|
||||
|
||||
SYSCAL DETACH,[JCHAN]
|
||||
RETURN
|
||||
|
||||
CENTRY SYSATACH,[JCHAN,TTY] ; TTY<0 => DEFAULT
|
||||
|
||||
SKIPGE TTY
|
||||
GO AT$1
|
||||
SYSCAL ATTACH,[JCHAN ? TTY]
|
||||
AT$RET: RETURN
|
||||
AT$1: SYSCAL ATTACH,[JCHAN]
|
||||
GO AT$RET
|
||||
|
||||
CENTRY ATTY,[JOB] ; GIVE TTY TO INFERIOR
|
||||
|
||||
MOVE B,JOB
|
||||
ANDI B,17
|
||||
LSH B,23.
|
||||
IOR B,[.ATTY]
|
||||
SETZ A,
|
||||
XCT B
|
||||
SETO A,
|
||||
RETURN
|
||||
|
||||
CENTRY DTTY,[JOB] ; TAKE TTY FROM INFERIOR
|
||||
|
||||
MOVE B,JOB
|
||||
ANDI B,17
|
||||
LSH B,23.
|
||||
IOR B,[.DTTY]
|
||||
SETZ A,
|
||||
XCT B
|
||||
SETO A,
|
||||
RETURN
|
||||
|
||||
CENTRY WFNZ,[PTR] ; WAIT FOR WORD TO BECOME NON-ZERO
|
||||
|
||||
MOVE A,PTR
|
||||
SKIPN (A)
|
||||
.HANG
|
||||
MOVE A,(A)
|
||||
RETURN
|
||||
|
||||
CENTRY WFZ,[PTR] ; WAIT FOR WORD TO BECOME ZERO
|
||||
|
||||
MOVE A,PTR
|
||||
SKIPE (A)
|
||||
.HANG
|
||||
MOVE A,(A)
|
||||
RETURN
|
||||
|
||||
CENTRY VAL7RET,[STR] ; VALRET AN ASCIZ STRING
|
||||
|
||||
HRRZ A,STR
|
||||
HRLI A,(.VALUE)
|
||||
XCT A
|
||||
RETURN
|
||||
|
||||
CENTRY DEMSIG,[DEMON] ; SIGNAL A DEMON PROCESS
|
||||
|
||||
SYSCAL DEMSIG,[DEMON]
|
||||
RETURN
|
||||
|
||||
CENTRY SSTATUS,[VALBLK] ; RETURNS 7 VALUES
|
||||
|
||||
HRRZ B,VALBLK
|
||||
SYSCAL SSTATUS,[MOVEM (B) ? MOVEM 1(B) ? MOVEM 2(B)
|
||||
MOVEM 3(B) ? MOVEM 4(B) ? MOVEM 5(B) ? MOVEM 6(B)]
|
||||
RETURN
|
||||
|
||||
CENTRY MAKTAG,[TAGP]
|
||||
|
||||
HRRZ A,TAGP ; TAG POINTER
|
||||
MOVE B,(P) ; RETURN PC
|
||||
MOVEM B,(A) ; SAVE RETURN PC
|
||||
MOVEI B,-2(P) ; STACK POINTER BEFORE CALL
|
||||
MOVEM B,1(A) ; SAVE STACK POINTER
|
||||
RETURN
|
||||
|
||||
CENTRY GOTAG,[TAGP]
|
||||
|
||||
MCALL DISMISS
|
||||
MOVE A,TAGP
|
||||
MOVE P,1(A)
|
||||
HRRZ D,(A)
|
||||
GO (D)
|
||||
|
||||
END
|
||||
Reference in New Issue
Block a user