.IIF NDF S$$YDF , .NLIST .TITLE RSXMC .IDENT /10.10/ ; ; COPYRIGHT (c) 1976, 1983 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD ; MASSACHUSETTS. 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 DOCUMENT 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 THAT IS NOT SUPPLIED BY DIGITAL. ; ; VERSION: 10.10 ; DATE: 13-JUL-84 12:37:49 ; ; ; THE FOLLOWING SYMBOLS REPRESENT OPTIONS FOR WHICH THE CONDITIONAL ; CODE HAS BEEN REMOVED FROM THE EXECUTIVE. THE SYMBOLS ARE DEFINED ; HERE ONLY FOR THE USE OF PRIVILEGED TASKS, COMMON UTILITIES, AND ; USER WRITTEN TASKS. ; A$$CHK=0 ;ADDRESS CHECKING A$$CPS=0 ;ACP SUPPORT A$$NSI=0 ;ANSI MAGTAPE SUPPORT A$$PRI=0 ;ALTER PRIORITY DIRECTIVE A$$TRP=0 ;AST SUPPORT C$$CKP=0 ;CHECKPOINTING SUPPORT D$$ISK=0 ;NONRESIDENT TASK SUPPORT D$$SHF=0 ;AUTOMATIC DYNAMIC MEMORY COMPACTION D$$WCK=0 ;WRITECHECK SUPPORT D$$YNC=0 ;DYNAMIC CHECKPOINT ALLOCATION D$$YNM=0 ;DYNAMIC MEMORY ALLOCATION SUPPORT E$$PER=0 ;LOG PARITY ERROR TRAPS F$$LVL=1 ;FILE STRUCTURE LEVEL SUPPORT G$$TPP=0 ;GET PARTITION PARAMETERS DIRECTIVE G$$TTK=0 ;GET TASK PARAMETERS DIRECTIVES I$$RAR=0 ;INSTALL, REQUEST, AND REMOVE ON EXIT I$$RDN=0 ;I/O RUNDOWN L$$ASG=0 ;LOGICAL DEVICE ASSIGNMENT SUPPORT L$$DRV=0 ;LOADABLE DRIVER SUPPORT L$$LDR=0 ;TASK LOADER AS A SEPARATE TASK M$$FCS=0 ;FCS/FILE SYSTEM SUPPORT M$$MGE=0 ;MEMORY MANAGEMENT SUPPORT M$$MUP=0 ;MULTI-USER PROTECTION - REQUIRES T$$BTW,T$$RNE,T$$RST, ; ; AND P$$OFF P$$GMX=0 ;GET MAPPING CONTEXT - REQUIRES P$$LAS P$$LAS=0 ;PROGRAM LOGICAL ADDRESS EXTENSIONS P$$OFF=0 ;PARENT/OFFSPRING TASKING SUPPORT P$$OOL=0 ;SECONDARY POOL P$$P45=0 ;ROTATING PATTERN IN DATA LIGHTS P$$SRF=0 ;SEND/RECEIVE BY REFERENCE REQUIRES P$$LAS R$$DSP=0 ;EXECUTIVE LEVEL DISPATCHING R$$EXV=0 ;EXTEND EXECUTIVE TO 20K R$$SND=0 ;RECEIVE/SEND DIRECTIVES T$$KMG=0 ;TASK TERM./DEVICE NOT READY MESSAGES ; ; THE FOLLOWING SYMBOLS ARE STATICALLY DEFINED FOR ALL RSX-11M-PLUS SYSTEMS. ; THEY SHOULD NOT BE CHANGED. ; C$$INT=0 ;CONNECT TO INTERRUPT C$$PCR=0 ;CPCR DIRECTIVE D$$IAG=0 ;USER MODE DIAGNOSTICS E$$DVC=0 ;DEVICE ERROR LOGGING SUPPORT E$$LOG=0 ;ERROR LOGGING SUPPORT E$$NSI=0 ;NONSENSE INTERRUPT ERROR LOGGING E$$XPR=0 ;EXTEND TASK DIRECTIVE G$$GEF=0 ;GROUP GLOBAL EVENT FLAG SUPPORT M$$CRB=84. ;NUMBER OF CHARACTERS IN AN MCR BUFFER M$$CRX=0 ;EXTERNAL MCR FUNCTIONS M$$OVR=0 ;OVERLAYED MCR M$$XLN=256. ;TOTAL LENGTH OF MCR LINES O$$LAP=0 ;OVERLAPPED DEVICE OPERATION SUPPORT P$$MAX=256. ;MAXIMUM SIZE OF SEND/RECEIVE PACKETS P$$RFL=0 ;POWERFAIL RECOVERY SUPPORT R$$CON=0 ;RECONFIGURATION SUPPORT R$$EIS=0 ;REQUIRED FOR DECNET SUPPORT R$$GIN=0 ;GIN DIRECTIVE R$$LKL=1 ;RMS RECORD LOCKING R$$MPL=0 ;RSX-11M-PLUS SYSTEM R$$11M=0 ;RSX-11M SYSTEM (AS OPPOSED TO -11D OR IAS) S$$ECC=0 ;SHARED EXEC ECC SUPPORT S$$MAP=0 ;SMAP$ AND MVTS$ DIRECTIVES S$$OPT=0 ;DISK SEEK OPTIMIZATION U$$UMD=0 ;USER MODE DIAGNOSTICS SUPPORT U$$UMR=0 ;UMR SUPPORT (AS SEPARATE FROM M$$EXT) ; ; THE FOLLOWING SYMBOLS ARE FOR TERMINAL DRIVER OPTIONS THAT ARE ALWAYS ; INCLUDED IN RSX-11M-PLUS SYSTEMS. ; T$$CCA=0 ;UNSOLICITED INPUT AST T$$BTW=0 ;BREAKTHROUGH WRITE - REQUIRED FOR M$$MUP T$$CTR=0 ;CONTROL-R T$$GMC=0 ;GET TERMINAL CHARACTERISTICS T$$SMC=0 ;SET TERMINAL CHARACTERISTICS T$$GTS=0 ;GET TERMINAL DRIVER SUPPORT T$$LWC=0 ;SETTABLE CASE CONVERSION (LOWERCASE) T$$RPR=0 ;READ AFTER PROMPT T$$RUB=0 ;CRT RUBOUT T$$ESC=0 ;ESCAPE SEQUENCES T$$RED=0 ;HARD READ ERROR DETECTION T$$CUP=0 ;CURSOR POSITIONING T$$CON=0 ;SERIAL CONSOLE SUPPORT T$$RNE=0 ;READ WITH NO ECHO - REQUIRED FOR M$$MUP T$$RST=0 ;READ WITH SPECIAL TERMINATOR - REQUIRED FOR M$$MUP ; ; THE FOLLOWING SYMBOLS DEFINE THE FIRST FREE UMR FOR USE BY USER DRIVERS. ; IF THE SYSTEM INCLUDES DH11 TERMINAL CONTROLLERS, THESE SYMBOLS ARE ; REDEFINED LATER IN RSXMC. ; N$$UMR=5*4. ;NUMBER OF STATICALLY ALLOCATED UMRS U$$MRN=170224 ;ADDRESS OF FIRST FREE UMR U$$MHI=0 ;HIGH 2 BITS OF 18 BIT UNIBUS ADR IN BITS 4 & 5 U$$MLO=120000 ;LOW 16 BITS OF 18 BIT UNIBUS ADDRESS ; ; THE FOLLOWING SYMBOLS ARE FOR OPTIONS WHICH ARE ALWAYS INCLUDED BY SYSGEN. ; A KNOWLEDGEABLE USER COULD ALTER THESE SYMBOLS AT HIS OWN RISK TO TAILOR ; HIS SYSTEM. ; N$$MOV=33. ;SIZE OF 'BLXIO' MOVE TABLE C$$ORE=512. ;SIZE OF DYNAMIC STORAGE REGION Q$$OPT=5 ;PRE-ALLOCATE I/O PACKETS P$$CTL=0 ;POOL MONITORING TASK SUPPORT S$$HFC=30. ;MINIMUM TIME INTERVAL BETWEEN SHUFFLER REQUESTS ; ; THE FOLLOWING SYMBOLS ARE THE INITIAL VALUES FOR SYSTEM TUNING PARAMETERS ; THAT ARE RESET IN SYSVMR. ; R$$NDC=6 ;ROUND ROBIN SCHED: CLOCK TICKS PER SCHEDULING INTERVAL R$$NDL=1 ;ROUND ROBIN SCHED: LOWEST PRIORITY CLASS TO CONSIDER R$$NDH=150. ;ROUND ROBIN SCHED: HIGHEST PRIORITY CLASS TO CONSIDER S$$WPC=30. ;CLOCK TICKS PER SWAPPING INTERVAL S$$WPR=5 ;SWAPPING PRIORITY P$$HIL=1600. ;HIGH POOL LIMIT P$$LOL=600. ;LOW POOL LIMIT P$$FRS=200. ;LOWEST PERMISSIBLE SIZE OF LARGEST POOL FRAGMENT P$$BPR=51. ;POOL BASE PRIORITY TASK CONTROL ; ; THE FOLLOWING SYMBOLS ARE THOSE THAT ARE GENERATED BY THE "CHOOSING ; EXECUTIVE OPTIONS" QUESTIONS ANSWERED BY THE USER. ; R$$TPR="44 ;PROCESSOR TYPE (FOR NETGEN) S$$EXC=0 ;FULL-FUNCTIONALITY EXEC K$$DAS=0 ;KERNEL DATA SPACE SUPPORT D$$PAR=0 ;DIRECTIVE PARTITION U$$DAS=0 ;USER DATA SPACE SUPPORT X$$HDR=0 ;EXTERNAL HEADER SUPPORT S$$LIB=0 ;SUPERVISOR-MODE LIBRARY SUPPORT I$$CSZ=128. ;ICB POOL SIZE IN WORDS M$$NET=1400.+31. ;DECNET SUPPORT S$$WST=0 ;SWITCH STATE DIRECTIVE P$$MON=0 ;SPM-11 SUPPORT S$$NM1="LR ;SYSTEM NAME S$$NM2="S1 ; S$$NM3="00 ; S$$HDW=0 ;SHADOW RECORDING A$$CNT=0 ;ACCOUNTING - REQUIRES P$$OOL Q$$MGR=0 ;QUEUE MANAGER INCLUDED AT SYSGEN A$$CLI=16. ;ALTERNATE CLI SUPPORT P$$WND=0 ;SECONDARY POOL FCP - REQUIRES P$$OOL V$$TRM=0 ;VIRTUAL TERMINAL SUPPORT V$$TLD=120. ;DEFAULT VT: UNIT BUFFER SIZE V$$TLM=184. ;MAXIMUM VT: UNIT BUFFER SIZE T$$UTO=30. ;TIME-OUT ON UNSOLICITED INPUT T$$COM=0 ;SEPARATE TERMINAL BUFFER POOL C$$RSH=177564 ;CRASH NOTIFICATION DEVICE C$$CDA=7 ;CRASH DUMPS ON DL C$$RUN=1 ;PHYSICAL UNIT NUMBER OF CRASH DEVICE S$$WRG=0 ;CONSOLE SWITCH REGISTER PRESENT G$$TSS=0 ;GET SENSE SWITCHES DIRECTIVE S$$YSZ=512.*32. ;SIZE OF PHYS. MEMORY IN 32W BLOCKS M$$EXT=0 ;11/70 EXTENDED MEMORY SUPPORT P$$D70=0 ;11/70 PARITY SUPPORT H$$RTZ=60. ;LINE FREQUENCY K$$CSR=177546 ;LINE CLOCK CSR ADDRESS K$$CNT=177546 ;COUNT REGISTER ADDRESS K$$TPS=60. ;TICKS PER SECOND K$$LDC=1 ;LOAD COUNT VALUE K$$IEN=115 ;INTERRUPT ENABLE VALUE ; ; THE FOLLOWING SYMBOLS ARE DEFINED FOR ALL RSX-11M-PLUS SYSTEMS EXCEPT ; PREGENNERATED NON I/D-SPACE SYSTEMS. ; P$$RTY=0 ;PARITY MEMORY SUPPORT ; ; THE FOLLOWING SYMBOLS ARE THOSE THAT ARE GENERATED BY THE "CHOOSING ; PERIPHERAL CONFIGURATION" QUESTIONS ANSWERED BY THE USER. ; R$$H11=2 ;RH CONTROLLERS R$$JP1=2. ;RJ/RWP04-05-06 DISK PACK CONTROLLERS LD$DB=0 ;LOADABLE DBDRV T$$M03=1 ;TM02/03 MAGTAPE FORMATTERS LD$MM=0 ;LOADABLE MMDRV R$$HDV=0 ;RH DRIVER USED R$$L11=1 ;RL11 DISK CARTRIDGE CONTROLLERS LD$DL=0 ;LOADABLE DLDRV T$$U58=1 ;TU58 CONTROLLERS LD$DD=0 ;LOADABLE DDDRV L$$P11=1 ;LP/LS/LV11/LA180 LINE PRINTERS L$$PTO=240. ;TIME-OUT PERIOD FOR LP11 PRINTERS LD$LP=0 ;LOADABLE LPDRV LD$CO=0 ;LOADABLE CODRV D$$L11=1 ;DL11/DLV11 LINE INTERFACES LD$TT=0 ;LOADABLE TTDRV D$$Z11=2 ;DZ11/DZV11 ASYNCH LINE MULTIPLEXERS LD$TT=0 ;LOADABLE TTDRV D$$ZMD=0 ;DZ11/DZV11 MODEM SUPPORT N$$LDV=1 ;NULL DEVICE LD$NL=0 ;LOADABLE NLDRV LD$VT=0 ;LOADABLE VTDRV LD$RD=0 ;LOADABLE RDDRV V$$CTR=1000 ;ADDRESS OF HIGHEST VECTOR + 4 ; ; THIS MACRO PROVIDES THE LINKAGE BETWEEN THE LAST CTB IN SYSTB AND THE ; FIRST CTB IN THE USER-SUPPLIED RESIDENT DATA BASES. INVOKE THIS MACRO ; IN THE FIRST RESIDENT DATA BASE'S CTB JUST BEFORE THE L.LNK FIELD. ; .MACRO CTB $CTB3:: ; FIRST USER-SUPPLIED CTB .ENDM ; ; EXEC MACROS ; ; ; ASSUME MACRO FOR CHECKING SYMBOL DEPENDENCIES ; .MACRO ASSUME A,B=0 .IIF NE - .ERROR ;EXPRESSIONS NOT EQUAL .ENDM ; ; CALL SUBROUTINE ; .MACRO CALL SUBR ARG .IF IDN <$INTSV>, JSR R5,$INTSV .WORD ^C&PR7 .IFF .IF IDN <$SAVNR>, JSR R5,$SAVNR .IFF .IF IDN <$SWSTK>, EMT 376 .WORD ARG .IFF JSR PC,SUBR .ENDC .ENDC .ENDC .ENDM ; ; CALL AND RETURN FROM SUBROUTINE ; .MACRO CALLR SUBR JMP SUBR .ENDM ; ; CRASH SYSTEM ; .MACRO CRASH IOT .ENDM ; ; SUPERVISOR MODE SUPPORT MACROS ; .MACRO MFPD$ X .IF DF S$$LIB!U$$DAS MFPD X .IFF MFPI X .ENDC .ENDM .MACRO MTPD$ X .IF DF S$$LIB!U$$DAS MTPD X .IFF MTPI X .ENDC .ENDM ; ; DIRECTIVE REGISTER SAVE AND SET PRIORITY ; .MACRO DIRSV$ JSR R5,$DIRSV .ENDM ; ; SET DIRECTIVE STATUS ; .MACRO DRSTS VALUE TRAP VALUE .ENDM ; ; INTERRUPT SAVE GENERATION MACRO FOR ERROR LOGGING DEVICES ; .MACRO INTSE$ DEV,PRI,NCTRLR,PSWSV,UCBSV $'DEV'INT:: .IF NDF LD$'DEV JSR R5,$INTSE .WORD ^C&PR7 .ENDC GTUCB$ UCBSV,NCTRLR,DEV MOV U.SCB(R5),R4 ;;;GET OWNERS SCB ADDRESS BIC #S2.ACT,S.ST2(R4) ;;;INDICATE I/O IS FINISHED MOV S.KRB(R4),R4 ;;;RETRIEVE KRB ADDRESS MOVB K.CON(R4),R4 ;;;RETRIEVE CONTROLLER INDEX .ENDM ; ; INTERRUPT SAVE GENERATION FOR NON-ERROR LOGGING DEVICES ; .MACRO INTSV$ DEV,PRI,NCTRLR,PSWSV,UCBSV .IF NDF LD$'DEV JSR R5,$INTSV .WORD ^C&PR7 .ENDC GTUCB$ UCBSV,NCTRLR,DEV .ENDM ; ; GENERATE CODE TO LOAD UCB ADDRESS INTO R5 -- CALLED ; ONLY BY INTSE$, INTSV$, AND TTSET$ (IN TTDRV). ; .MACRO GTUCB$ UCBSV,NCTRLR,DEV .IF NB .IF GT NCTRLR-1 MOV UCBSV(R4),R5 .IFF MOV UCBSV,R5 .ENDC .IFF .IF DF LD$'DEV MOV 'DEV'CTB,R5 ;;;GET ADDRESS OF KRB TABLE IN CTB ADD R4,R5 ;;;ADD CONTROLLER INDEX MOV (R5),R5 ;;;GET KRB ADDRESS FROM CTB .IFF MOV $'DEV'CTB(R4),R5 ;;;GET KRB ADDRESS FROM CTB .ENDC MOV K.OWN(R5),R5 ;;;RETRIEVE OWNERS UCB ADDRESS .ENDC .ENDM ; ; GET I/O PACKET MACRO -- AUTOMATE UNIT DETERMINATION ; .MACRO GTPKT$ DEV,NCTRLR,ADDR,UCBSV,SUC CALL $GTPKT .IF B BCC 65535$ RETURN 65535$: .IFF BCS ADDR .ENDC .IF B $$$=0 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN ,
$$$=1 .IF B .IF EQ $$$ MOV R5,S.OWN(R4) .ENDC .ENDC .IFF .IF GT NCTRLR-1 MOV R5,UCBSV(R3) .IFF MOV R5,UCBSV .ENDC .ENDC .ENDM ; ; GENERATE THE DEVICE DISPATCH TABLE -- DDT ; .MACRO DDT$ DEV,NCTRLR,INY,INX,UCBSV,NEW,BUF,OPT .IF NB .WORD 'DEV'CHK .ENDC .IF NB .WORD 'DEV'DEA .IFF .IF NB .WORD 1 ;ENTRY SHOULD NOT BE USED - CRASH .ENDC .ENDC .ENABL LSB .IF B $'DEV'TBL::.WORD DEV'INI .IFF $'DEV'TBL::.WORD DEV'INX .ENDC .WORD DEV'CAN .WORD DEV'OUT .IF B .WORD 65533$ .WORD 0 .WORD 65531$ .IFF .WORD DEV'PWF .WORD DEV'KRB .WORD DEV'UCB .ENDC .IF DIF , .ASCII /DEV/ .IF B .WORD $'DEV'INT .IFF .IRP X, .WORD $'DEV''X .ENDM .ENDC .WORD 0 .IF DF LD$'DEV 'DEV'CTB: .WORD 0 .IFF $$$=0 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IF EQ $$$ 'DEV'CTB: .WORD $'DEV'CTB .IFF 'DEV'CTB: .WORD $RHCTB .ENDC .ENDC .ENDC .IF DF LD$'DEV $'DEV'TBE::.WORD 0 .ENDC .IF NB UCBSV: .BLKW NCTRLR .ENDC .IF B 65531$: BITB #UC.PWF,U.CTL(R5) BEQ 65532$ 65533$: BCS 65532$ JMP DEV'PWF 65532$: RETURN .ENDC .DSABL LSB .ENDM ; ; PROCESSOR STATUS READ/WRITE ; .MACRO MFPS DST MOVB @#PS,DST .ENDM .MACRO MTPS SRC .IF IDN <#0>, CLRB @#PS .IFF MOVB SRC,@#PS .ENDC .ENDM ; ; MULTIPROCESSOR LOCK AND UNLOCK MACROS ; .MACRO LOCK$ ADDR,TYPE,?LAB1,?LAB2 $$$=0 .IF IDN , $$$=1 .IF DF M$$PRO MOV #'ADDR,-(SP) CALL $MLOCK .ENDC .ENDC .IF IDN , $$$=1 .IF DF M$$PRO LAB1: ASRB ADDR BCC LAB1 CACHE$ BYPASS .IF DF L$$DBG .NTYPE TMP,ADDR .IF EQ TMP-67 TSTB ADDR+1 .IFF .IF EQ TMP&70-10 TSTB 1'ADDR .IFF .IF EQ TMP&70-60 TSTB 1+ADDR .IFF .ERROR ;INCORRECT ADDRESSING MODE FOR LOCK BLOCK .ENDC .ENDC .ENDC BMI LAB2 CRASH LAB2: .IF EQ TMP-67 MOVB $PROCN,ADDR+1 .IFF .IF EQ TMP&70-10 MOVB $PROCN,1'ADDR .IFF .IF EQ TMP&70-60 MOVB $PROCN,1+ADDR .IFF .ERROR ;INCORRECT ADDRESSING MODE IN LOCK$ .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .IIF EQ $$$ .ERROR ;NOT SPIN OR WAIT IN LOCK$ MACRO .ENDM .MACRO ULOCK$ ADDR,TYPE,?LAB .IF DF M$$PRO .IF IDN , MOV #'ADDR,-(SP) CALL $MULCK .ENDC .IF IDN , .IF DF L$$DBG .NTYPE TMP,ADDR .IF EQ TMP-67 CMPB $PROCN,ADDR+1 .IFF .IF EQ TMP&70-10 CMPB $PROCN,1'ADDR .IFF .IF EQ TMP&70-60 CMPB $PROCN,1+ADDR .IFF .ERROR ;INCORRECT ADDRESSING MODE IN ULOCK$ .ENDC .ENDC .ENDC BEQ LAB CRASH LAB: .IF EQ TMP-67 COMB ADDR+1 .IFF .IF EQ TMP&70-10 COMB 1'ADDR .IFF .IF EQ TMP&70-60 COMB 1+ADDR .IFF .ERROR ;INCORRECT ADDRESSING MODE IN ULOCK$ .ENDC .ENDC .ENDC .ENDC CACHE$ RESTOR MOVB #1,ADDR .ENDC .ENDC .ENDM .MACRO LCKDF$ TYPE .IF IDN , .BYTE 1 .BYTE -1 .ENDC .IF IDN , .BYTE 1 .BYTE -1 .BYTE 1 .BYTE -1 .WORD 0 .ENDC .ENDM LK.SPN=2 ;LENGTH OF SPIN LOCK BLOCK LK.WAT=10 ;LENGTH OF WAIT LOCK BLOCK ; ; DEFINITIONS FOR CACHE OPERATION ; .IF DF P$$D70 & M$$PRO FLUSH=1*400 ;CACHE FLUSH OPERATION BYPASS=2*400 ;CACHE BYPASS OPERATION .ENDC ; ; MACRO FOR CACHE OPERATION ; .MACRO CACHE$ ARG,ARG2 .IF DF P$$D70 & M$$PRO .IF IDN , BIC #BYPASS,@$MPCSR+6 .ENDC .IF IDN , BIS #BYPASS,@$MPCSR+6 .ENDC .IF IDN , BIS #FLUSH,@$MPCSR+6 .ENDC .IF IDN , MOV @$MPCSR+6,-(SP) BIC #^C,(SP) .IF DIF , BIC (SP),@$MPCSR+6 .IFF BIS #BYPASS,@$MPCSR+6 .ENDC .ENDC .IF IDN , BIC #BYPASS,@$MPCSR+6 BIS (SP)+,@$MPCSR+6 .ENDC .ENDC .ENDM ; ; SAVE NONVOLATILE REGISTERS ; .MACRO SAVNR JSR R5,$SAVNR .ENDM ; ; STATE SWITCHING MACRO ; .MACRO SWSTK$ ARG CALL $SWSTK,ARG .ENDM ; ; TALLY A FIELD IN SYSTEM ACCOUNT BLOCK ; .MACRO TALLY$ OFF,CND,PROC .IF DF X$$ACC&A$$CNT&CND MOV R0,-(SP) MOV #140002+OFF,R0 .IF IDN , CALL $ACINP .IFF ; IDN , CALL $ACINC .ENDC ; IDN , .ENDC ; DF X$$ACC&A$$CNT&CND .ENDM .IIF NDF S$$YDF , .LIST