Trailing-Edge
-
PDP-10 Archives
-
cuspbinsrc_2of2_bb-fp63b-sb
-
10,7/scdset/scdexe.mac
There are 6 other files named scdexe.mac in the archive. Click here to see a list.
TITLE SCDEXE
SEARCH MACTEN,UUOSYM,ACTSYM
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1979,1980,1983,1984,1985,1986.
;ALL RIGHTS RESERVED.
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
;TRANSFERRED.
;
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
;CORPORATION.
;
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
;
; Note: The version for SCDSET is stored here since no facility to
; set .JBVER exists in FORTRAN.
VERSCD==5
WHOSCD==0
PATSCD==0
EDTSCD==22
.JBVER==137
LOC .JBVER
INTERNAL .JBVER
BYTE (3)WHOSCD (9)VERSCD (6)PATSCD (18)EDTSCD
RELOC
; THIS PROGRAM EXECUTES THE SCHED. UUO FOR THE ARGUMENTS
; SET UP IN A, AND ARRAY D. IT ONLY EXECUTES AND RETURNS A VALUE.
; IT IS INTENDED AS A FORTRAN (4 OR 10) SUBROUTINE THAT EXPECTS
; NO (REPEAT NO) ARGUMENTS AND TAKES IN COMMON A, B, D.
;
; IT SETS B TO THE ERROR CODE OF THE SCHED. UUO IF THE UUO FAILS.
; B IS SET TO ZERO OTHERWISE.
SCHED.=CALLI 150 ;WHEN WILL MACRO EVER KNOW?
EXTERNAL .COMM. ;FORTRAN COMMON
A=.COMM.
B=.COMM.+1
D=.COMM.+2
ENTRY SCDEXE
SCDEXE::CAIA ;THIS IS FOR FORTRAN 4-10
PUSH 17, [EXSCHD] ;SO IS THIS
SETZM B ;CLEAR B
PUSH 17, A ;SAVE A FOR FORTRAN CODE
HRL 0, A
HRRI 0, D ;GET [ LH(A),, D ] INTO A
MOVEM 0, A
HRLI 0, 1 ;GET [1,,A] INTO 0 FOR THE CALL
HRRI 0, A
SCHED. ;DO UUO
MOVEM 0, B ;PUT ERROR CODE IN B
POP 17, A ;NOW RESTORE A.
POPJ 17, ;RETURN FORTRAN 10 STYLE
EXSCHD: JRA 16, (16) ;RETURN FORTRAN 4 STYLE
; THIS FORTRAN CALLABLE ROUTINE RETURNS IN A THE JOB NUMBER
; OF THE JOB. THERE ARE NO ERROR RETURNS, OR VALUES EXPECTED.
MYJOB:: CAIA ;FORTRAN CALLABLE ROUTINE
PUSH 17, [EXSCHD] ;TO RETURN CALLER'S JOB #
PJOB ;DO THE UUO
MOVEM 0, A ;STORE IN A
POPJ 17, ;RETURN
; THIS ROUTINE IS A GENERAL GETTAB EXECUTER. IT EXPECTS IN A
; THE VALUE OF THE AC FOR THE GETTAB. IT RETURNS THE ANSWER IN
; A, AND SETS B TO SOME NON-ZERO VALUE IF THERE IS AN ERROR
TABGET::CAIA ;FOR FORTRAN
PUSH 17, [EXSCHD]
SETZM B ;CLEAR ERROR FLAG
MOVE 0, A ;GET THE ARGUMENT INTO 0
GETTAB ;DO THE UUO
SETOM B ;UUO FAILED
MOVEM 0, A ;STORE THE ANSWER IN A
POPJ 17, ;RETURN
; THIS ROUTINE RETURNS A USER PROFILE IN ARRAY D FOR THE PPN PASSED
; IN A. SCANAC IN SCDSET.FOR NO LONGER READS ACCT.SYS ITSELF.
PROGET::CAIA ;FOR FORTRAN 4
PUSH 17,[EXSCHD]
SETZM B ;CLEAR ERROR FLAG
PUSH 17,1 ;SAVE AN AC
MOVEI 0,UGOUP$ ;GET OBTAIN USER PROFILE FUNC
MOVEM 0,QUEFCN ;STORE IT IN ARG BLOCK
DMOVE 0,[EXP 1B17!.UGPPN
EXP A] ;GET PPN ARG HEADER AND DATA
DMOVEM 0,QUEPPA ;PUT IN ARG BLOCK
POP 17,1 ;RESTORE AC
MOVE 0,[XWD <QUEPPN-QUEBLK+1>,QUEBLK] ;GET ARG FOR QUEUE. UUO
QUEUE. ;DO THE UUO
SETOM B
POPJ 17, ;RETURN
; THIS ROUTINE DOES A QUEUE. UUO TO TELL THE ACCOUNT DAEMON TO
; REREAD SYS:SCDMAP.SYS
NEWSCD::CAIA
PUSH 17,[EXSCHD]
SETZM B ;CLEAR ERROR FLAG
MOVEI 0,UGSCD$ ;GET REREAD SCDMAP FUNCTION
MOVEM 0,QUEFCN ;PUT IT QUEUE. UUO ARG BLOCK
MOVE 0,[XWD <QUEFCN-QUEBLK+1>,QUEBLK] ;GET ARG FOR QUEUE. UUO
QUEUE. ;DO THE UUO
SETOM B ;INDICATE ERROR
POPJ 17,
;ARG BLOCK FOR DOING QUEUE. UUOS.
QUEBLK: EXP QF.RSP!.QUMAE ;WANT A REPSPONSE, FUNCTION CODE
0 ;NODE
XWD .AEMAX,D ;PROFILE SIZE,,WHERE TO PUT IT
EXP QA.IMM!1B17!.QBAFN ;SUBFUNCTION HEADER
QUEFCN: 0 ;THE SUBFUNCTION
QUEPPA: 0 ;PPN ARG BLOCK
QUEPPN: 0 ;ADDRESS OF PPN WHOSE PROFILE WE WANT
LIT
END