.TITLE RSX11C ; ; RSX11C V007A ; DECEMBER 15,1973 ; ; COPYRIGHT 1973,1974 DIGITAL EQUIPMENT CORP. MAYNARD MASS. ; ; ; STANDARD REGISTER DEFINITIONS ; R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 .GLOBL PS ;ADDRESS OF PROCESSOR STATUS REGISTER. PS=177776 .GLOBL S.STAT ;PROCESSOR STATUS WORD. S.STAT=-2 ; ; REAL TIME HEADER SYMBOLIC DEFINITIONS ; .GLOBL CN ;RTH-CALL NUMBER. .GLOBL SN ;RTH-SYMBOLIC NAME(CHARS 1-3) .GLOBL SS ;RTH-SYMBOLIC NAME (CHARS 4-6) .GLOBL SA ;RTH-SUSPENDED STACK ADDRESS .GLOBL NP ;RTH-NUMBER PASSED IN CALL .GLOBL WL ;RTA-WAITING LIST HEAD(LOW BYTE)&TAIL(HIGH BYTE .GLOBL SC ;RTH-START OF CODE(TRANSFER ADDRESS) .GLOBL IS ;RTH-INITIAL STACK SETTING. .GLOBL TR ;RTH-TRAP VECTOR SETTING. 0 IF NONE. .GLOBL MS ;RTH-MAXIMUM STACK ADDRESS (STACK LIMIT) .GLOBL IP ;RTH-INITIAL PRIORITY (LOW BYTE),#OF SHARED RES .GLOBL SL ;MINUTES AT START(HI BYTE),SECONDS AT LAST UPDA .GLOBL SM ;MAXIMUM LEVEL 1 RUN TIME(SECONDS) .GLOBL SR ;SECONDS SINCE BEGINNING OF THIS RUN. .GLOBL WTCH ;WATCH DOG TIMER(LOW BYTE) .GLOBL FLBF ;DISPLACEMENT TO BUFFER ADDRESS   ;STORAGE IN TASK RTH .GLOBL FLTB ;DISPLACEMENT TO FILE ENTRY ADDRESS   ;STORAGE IN TASK RTH .GLOBL OTSV ;POINTER TO $OTSV (FORTRAN OTS IMPURE AREA VECT CN=0    ;DISK CALL NUMBER REAL TIME LIBRARY SN=-2    ;SYMBOLIC NAME SS=-4    ;SECOND WORD OF 6 CHARACTER SYMBOLIC NA SA=-6    ;SUSPENDED STACK ADDRESS NP=-8.    ;NUMBER PASSED TO PROGRAM ACTIVATED WL=-10.    ;LEFT BYTE LAST WAITING, RIGHT FIRST WA SC=-12.    ;INITIAL START OF CODE IS=-14.    ;INITIAL STACK ADDRESS TR=-16.    ;LEFT BYTE EMT TRAP STARTS RIGHT TRAP S MS=-18.    ;MAXIMUM STACK ADDRESS IP=-20.    ;LEFT SHARED DEVICE COUNTS, RIGHT INITA SL=-22.    ;HIGH BYTE MINUTES AT START, LOW BYTE S SM=-24.    ;MAXIMUM SECONDS BEFORE ERROR REPORT SR=-26.    ;SECOND SINCE BEGINING OF THIS RUN WTCH=-28.   ;WATCH DOG TIMER LOW BYTE FLBF=-30.   ;FILE BUFFER STORAGE FLTB=-32.   ;FILE TABLE SLOT STORAGE OTSV=-34.   ;POINTER TO OTS ; ; PRIORITY LEVEL DEFINITIONS FOR PS ; .GLOBL PL7 ;PRIORITY LEVEL 7 .GLOBL PL6 ;PRIORITY LEVEL 6 .GLOBL PL5 ;PRIORITY LEVEL 5 .GLOBL PL4 ;PRIORITY LEVEL 4 .GLOBL PL3 ;PRIORITY LEVEL 3 .GLOBL SY.PLE ;PRIORITY LEVEL 4 .GLOBL SY.PLH ;PRIORITY LEVEL 7 PL7=340    ;PRIORITY LEVELS PL6=300 PL5=240 PL4=200 PL3=140 SY.PLE=200 SY.PLH=340 ; ; LINE FREQUENCY (50./60.CYCLE) ; .GLOBL CYCSEC ;LINE FREQUENCY IN TICKS PER SECOND. .GLOBL MCYC  ;MINUS LINE FREQUENCY .IFNDF CYCSEC CYCSEC=60. .ENDC MCYC=-CYCSEC ; TIME-OUTS FOR LEVELS 3,2,1 (TICKS) ; .GLOBL TIMLV1 ;TIME-OUT FOR LEVEL1(TICKS). .GLOBL TIMLV2 ;TIME-OUT FOR LEVEL 2(TICKS). .GLOBL TIMLV3 ;TIME-OUT FOR LEVEL 3(TICKS). .IFNDF TIMLV3 ; .IFEQ CYCSEC-60. ; TIMLV3=6. .ENDC ; .IFEQ CYCSEC-50. ; TIMLV3=5. .ENDC .ENDC .IFNDF TIMLV2 ; .IFEQ CYCSEC-60. ; TIMLV2=30. .ENDC ; .IFEQ CYCSEC-50. ; TIMLV2=25. .ENDC .ENDC .IFNDF TIMLV1 ; .IFEQ CYCSEC-60. ; TIMLV1=60. .ENDC ; .IFEQ CYCSEC-50. ; TIMLV1=50. .ENDC .ENDC ; ; SIZE OF SHEDULING TABLE ; .GLOBL N ;SCHEDULING TABLE SIZE .GLOBL MN ;-N .IFNDF N N=128. .ENDC MN=-N   ;SET TO -N. ; ; EAE PARAMETERS ; .GLOBL EAEAC ;EAE AC REGISTER. .GLOBL EAEMQ ;EAE MQ REGISTER. .GLOBL EAESC ;EAE SC&SR. EAEAC=177302   ;AC EAEMQ=177304   ;MQ EAESC=177310   ;SC&SR ; ; THE FOLLOWING DEFINE THE SLOTS RESERVED FOR SYSTEM ; TASKS. THESE TASKS MUST BE LOADED INTO THE SLOTS ; INDICATED. THE SLOTS ARE DEFINED RELATIVE TO ; THE HIGHEST SLOT (N). ; .GLOBL POWFT ;POWER FAIL TASK SLOT. .GLOBL UDCT ;UDC TASK SLOT. .GLOBL TTOPT ;TT OPERATOR TASK SLOT NUMBER. .GLOBL ERMST ;ERROR MESSAGE TASK SLOT. .GLOBL OPERT ;OPERR TASK AND SLOT NUMBER. .GLOBL UTILT ;UTILITY TASK SLOT. .GLOBL GETT ;ON LINE LOADER TASK SLOT # .GLOBL SYSRT ;SYSTEM REPORT TASK CALL NUMBER POWFT=N-2   ;POWER FAIL TASK SLOT #. UDCT=N-4   ;UDC TASK SLOT # TTOPT=N-6   ;TT OPERATOR TASK SLOT #. ERMST=N-8.   ;ERROR MESSAGE TASK OPERT=N-10.   ;OPERATORS CONSOLE TASK UTILT=N-12.   ;UTILITY TASK GETT=N-14.   ;ON LINE LOADER TASK SLOT #. SYSRT=-1   ;REPORT TASK CALL NUMBER ; ; NUMBER OF ITEMS FOR ERROR MESSAGE BUFFER ; .GLOBL ERRBSZ ;ERROR MESSAGE BUFFER SIZE (# OF ITEMS) .IFNDF ERRBSZ ERRBSZ=10. .ENDC ; ; SYMBOLIC ERROR MESSAGE NUMBERS AND CLASSES. ; .GLOBL SHORT ;SHORT CALL SEQUENCE ERROR. .GLOBL ABSENT ;TASK CALLED BY NUMBER NOT PRESENT. .GLOBL UNITS ;ILLEGAL TIME UNITS. .GLOBL SIZE ;ILLEGAL TIME VALUE .GLOBL SLOT ;NO SLOT AVAILABLE. .GLOBL TIMER ;MAX RUN TIME EXCEEDED. .GLOBL COMMAN ;ILLEGAL OR UNRECOGNIZED COMMAND. .GLOBL REPORT ;ILLEGAL SYSTEM REPORT NUMBER. .GLOBL BUSY ;BACKGROUND BUSY. .GLOBL SYMBLE ;SYMBOLIC TASK NAME NOT FOUND. .GLOBL SYNTAX ;COMMAND SYNTAX ERROR. .GLOBL TURN.O ;ILLEGAL TURNON TIME. SHORT=1500   ;SHORT CALL SEQUENCE ABSENT=1101   ;TASK CALLED NOT PRESENT UNITS=1102   ;ILLEGAL TIME UNITS SIZE=1103   ;ILLEGAL TIME VALUE SLOT=1104   ;NO SLOTS AVAILABLE TIMER=1105   ;EXCEEDED MAXIMUM RUN TIME COMMAN=1106   ;ILLEGAL OPERATOR COMMAND REPORT=1107   ;ILLEGAL REPORT NUMBER BUSY=1110   ;BACKGROUND ALREADY BUSY SYMBLE=1111   ;SYMBOLIC TASK NAME NOT FOUND SYNTAX=1113   ;SYNTAX ERROR TURN.O=1114   ;ILLEGAL TUNRON TIME ;DISTANCE FROM USERS PC, ON HIS STACK, TO THE ; TOP OF HIS STACK .GLOBL SY.DTS ;DISTANCE FROM USER PC TO STACK TOP. SY.DTS=-16 ;SIZE OF DDB (IN BYTES) .GLOBL SY.DDS ;SIZE OF DDB (BYTES). SY.DDS=56.   ;28 WORDS ; ;OFFSETS FROM BASE OF DDB TO PARTICULAR ELEMENT ; .GLOBL SY.DVL ;DDB-SUSPEND LEVEL COUNTS. .GLOBL SY.SPN ;DDB-SUSPEND NUMBER (BYTE) .GLOBL SY.BFS ;DDB-BUFFER SIZE .GLOBL SY.PTB ;DDB-POINTER TO TOP OF BUFFER. .GLOBL SY.PTI ;DDB-BUFFER INPUT POINTER. .GLOBL SY.PTO ;DDB-BUFFER OUTPUT POINTER. .GLOBL SY.PIC ;DDB-CURRENT INPUT CHANGE BLOCK POINTER. .GLOBL SY.RTN ;DDB-TASK DDB RESERVED FOR (BYTE) .GLOBL SY.DFL ;DDB-FLAG BYTE. .GLOBL SY.SCB ;DDB-STORE FOR CURRENT CHANGE BLOCK. .GLOBL SY.TO ;DDB-TIME OUT COUNT (0=NOT ACTIVE) .GLOBL SY.INH ;DDB-TIME OUT MESSAGE INHIBIT COUNT .GLOBL SY.QLK ;Q LINK TO ACTIVE DDB'S ; SY.DVL=-6   ;SUSPEND LEVEL CTRS. SY.SPN=31   ;SUSPEND # (BYTE) SY.BFS=32   ;BUFFER SIZE (WORD) SY.PTB=34   ;POINTER TO TOP OF BUFFER (WORD) SY.PTI=36   ;INPUT PTR TO BUFFER (WORD) SY.PTO=40   ;OUTPUT PTR FROM BUFFER (WORD) SY.PIC=42   ;PTR TO CURRENT INPUT CHANGE BLOCK (WOR SY.RTN=44   ;RESERVED TASK # (BYTE) SY.DFL=45   ;DDB FLAGS (BYTE) SY.SCB=46   ;STORAGE FOR CURRENT OUTPUT CHANGE BLOC SY.TO=52   ;TIME OUT COUNT (0=NOT ACTIVE) SY.INH=53   ;TIME OUT MESSAGE INHIBIT COUNT SY.QLK=-12   ;Q LINK TO ACTIVE DDB'S ; ;FLAGS IN DDB POSITION "SY.DFL" ; .GLOBL SY.LOC ;DDB-LOCKED FLAG. .GLOBL SY.RES ;DDB-RESERVED FLAG. .GLOBL SY.WDC ;DDB-WAITING FOR DEVICE COMPLETION FLAG .GLOBL SY.DPR ;DDB-PERMANENT DDB BIT. .GLOBL SY.TWR ;DDB-THE OWNER IS WAITING. .GLOBL SY.WIW ;DDB-.WRITE OR .READ IS WAITING FOR ROOM OR DAT .GLOBL SY.DWN ;DDB-DEVICE IS DOWN FLAG (NOT READY). ; SY.LOC=200   ;LOCKED SY.RES=100   ;RESERVED SY.WDC=40   ;WAITING FOR DEVICE COMPLETION SY.DPR=20   ;THIS IS A PERMANENT DDB SY.TWR=10   ;AN OWNER IS WAITING SY.WIW=4   ;.WRITE IS WAITING FOR ROOM. SY.DWN=2   ;DEVICE IS DOWN ; ;SUSPEND REASONS ; ;THESE ARE PUT ON THE TOP OF THE USER STACK AND ;INDICATE WHY THE TASK IS SUSPENDED. ; .GLOBL SY.WL ;SUSPEND-WAIT, LOCKED .GLOBL SY.OR ;SUSPEND-OPEN, RESERVED .GLOBL SY.OL ;SUSPEND-OPEN, LOCKED FOR ANOTHER TASK .GLOBL SY.OF ;SUSPEND-OPEN, BUFFER FULL. .GLOBL SY.OLT ;SUSPEND-OPEN,LOCKED FOR THIS TASK .GLOBL SY.CR ;SUSPEND-CLOSE, RESERVED. .GLOBL SY.CL ;SUSPEND-CLOSE, LOCKED FOR ANOTHER TASK. .GLOBL SY.CF ;SUSPEND-CLOSE, BUFFER FULL .GLOBL SY.CLT ;SUSPEND-CLOSE, LOCKED FOR THIS TASK .GLOBL SY.WRR ;SUSPEND-WRITE, LOCKED FOR ANOTHER TASK .GLOBL SY.WRL ;SUSPEND-WRITE, LOCKED FOR ANOTHER TASK .GLOBL SY.WLT ;SUSPEND-WRITE, LOCKED FOR THIS TASK .GLOBL SY.RLT ;SUSPEND-RELEASE, LOCKED FOR THIS TASK .GLOBL SY.SPL ;SUSPEND-SPECIAL FCN, LOCKED FOR ANOTHER TASK .GLOBL SY.SPR ;SUSPEND-SPECIAL FCN, RESERVED .GLOBL SY.SPT ;SUSPEND-SPECIAL FCN, LOCKED FOR THIS TASK .GLOBL SY.TRL ;SUSPEND-XFR FCN, LOCKED FOR ANOTHER TASK .GLOBL SY.TRR ;SUSPEND-XFR FCN, RESERVED .GLOBL SY.TRT ;SUSPEND-XFR FCN, LOCKED FOR THIS TASK SY.WL=1    ;WAIT, LOCKED SY.OR=2    ;OPEN, RESERVED SY.OL=3    ;OPEN, LOCKED FOR ANOTHER TASK SY.OF=4    ;OPEN, FULL SY.OLT=5   ;OPEN, LOCKED FOR THIS TASK. SY.CR=6    ;CLOSE, RESERVED SY.CL=7    ;CLOSE, LOCKED FOR ANOTHER TASK SY.CF=10   ;CLOSE, FULL SY.CLT=11   ;CLOSE, LOCKED FOR THIS TASK. SY.WRR=12   ;WRITE, RESERVED SY.WRL=13   ;WRITE, LOCKED FOR ANOTHER TASK SY.WLT=14   ;WRITE, LOCKED FOR THIS TASK SY.RLT=15   ;RELEASE, LOCKED FOR THIS TASK. SY.SPR=16   ;SPECIAL FCN-RESERVED SY.SPL=17   ;SPECIAL FCN-LOCKED FOR ANOTHER TASK SY.SPT=20   ;SPECIAL FCN-LOCKED FOR THIS TASK SY.TRR=21   ;XFR FCN, RESERVED SY.TRL=22   ;XFR FCN, LOCKED FOR ANOTHER TASK SY.TRT=23   ;XFR FCN, LOCKED FOR THIS TASK ; ; ERROR CLASSES *(2^8) ; .GLOBL S.EINF ;INFORMATIONAL CLASS MESSAGE .GLOBL S.EACT ;ACTION CLASS MESSAGE .GLOBL S.EWAR ;WARNING CLASS MESSAGE .GLOBL S.EFAT ;FATAL CLASS MESSAGE .GLOBL S.ESYS ;SYSTEM PROGRAM CLASS MESSAGE .GLOBL S.EREL ;REAL TIME ERROR(ILLEGAL ACTION) ; S.EINF=0   ;INFORMATIONAL S.EINF=0   ;INFORMATIONAL S.EACT=400   ;ACTION S.EWAR=1000   ;WARNING S.EFAT=1400   ;FATAL S.ESYS=2000   ;SYSTEM PROGRAM S.EREL=2400   ;REAL-TIME ONLY (ACTION FATAL) ; ;COMMANDS FOR OUTPUT CIRCULAR BUFFER ; .GLOBL SY.OPN ;CMD-OPEN .GLOBL SY.CLS ;CMD-CLOSE .GLOBL SY.TRA ;CMD-TRANS .GLOBL SY.WR ;CMD-WRITE .GLOBL SY.CLI ;CMD-INPUT CLOSE .GLOBL SY.WAP ;CMD-WRAP AROUND SY.OPN=2   ;OPEN SY.CLS=4   ;CLOSE SY.TRA=6   ;TRANS SY.WR=10   ;WRITE SY.CLI=12   ;SPECIAL INPUT CLOSE. SY.WAP=14   ;WRAP AROUND ; ;FLAG IN USER LINE BUFFER TO CONTROL ATTACH/DETACH ;STAY ATTACHED UNLESS=1 ; .GLOBL SY.DET ;FREE BIT SY.DET=40   ;BIT 5 OF MODE BYTE ; .GLOBL SY.MUD ;DRIVER MULTI-ACCESS BIT. SY.MUD=1 ; ; INDEXES INTO DDB USED BY AD/AF/UDC DRIVERS ;  AND SUBROUTINES. ; .GLOBL PI.FCN ;DDB-SPECIAL FCN CODE STORE .GLOBL PI.ADR ;DDB-ADDRESS OF MUX ARRAY .GLOBL PI.NUM ;DDB-NUMBER OF POINTS .GLOBL PI.DAT ;DDB-ADDRESS OF DATA ARRAY .GLOBL PI.ERR ;DDB-ADDRESS OF FINAL STATUS .GLOBL PI.FST ;DDB-FIRST CHANNEL NUMBER FOR SEQUENTIAL OPS. .GLOBL PI.FAD ;DDB-ADDRESS OF # OF POINTS PI.FCN=20  ;STORAGE FOR FUNCTION CODE. PI.ADR=4  ;STORE FOR ADDRESS OF CONNECTION DATA ARRAY PI.NUM=6  ;STORE FOR NUMBER OF POINTS. PI.DAT=10  ;STORE FOR ADDRESS OF DATA ARRAY PI.ERR=24  ;STORE FOR ADDRESS OF TRANSFER STATUS. PI.FST=22  ;STORE FOR FIRST CHANNEL NUMBER. PI.FAD=34  ;STORE FOR ADDR OF # OF POINTS. .EOT