1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-25 01:47:08 +00:00
Files
PDP-10.its/src/ucode/macro.43
Lars Brinkhoff 6d577568a2 KL10 microcode.
Plus assorted KL10-related documents.
2018-06-12 07:58:19 +02:00

1264 lines
40 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.TOC "MACROS -- AC TRANSFERS"
GEN AC0 "FMADR/AC0,ADB/FM,AD/B"
AR_AC0 "FMADR/AC0,ADB/FM,AD/B,AR/AD"
AR_AC1 "FMADR/AC1,ADB/FM,AD/B,AR/AD"
AR_AC2 "FMADR/AC2,ADB/FM,AD/B,AR/AD"
AR_AC3 "FMADR/AC3,ADB/FM,AD/B,AR/AD"
AR_AC4 "FMADR/AC4,ADB/FM,AD/B,AR/AD"
AC0_AR "FMADR/AC0,COND/FM WRITE"
AC1_AR "FMADR/AC1,COND/FM WRITE"
AC2_AR "FMADR/AC2,COND/FM WRITE"
AC3_AR "FMADR/AC3,COND/FM WRITE"
AC4_AR "FMADR/AC4,COND/FM WRITE"
ARX_AC0 "FMADR/AC0,ADB/FM,AD/B,ARX/AD"
ARX_AC1 "FMADR/AC1,ADB/FM,AD/B,ARX/AD"
ARX_AC2 "FMADR/AC2,ADB/FM,AD/B,ARX/AD"
ARX_AC3 "FMADR/AC3,ADB/FM,AD/B,ARX/AD"
ARX_AC4 "FMADR/AC4,ADB/FM,AD/B,ARX/AD"
AR_-AC0 "FMADR/AC0,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
AR_AC0 COMP "FMADR/AC0,ADB/FM,AD/SETCB,AR/AD"
AR_AC1 COMP "FMADR/AC1,ADB/FM,AD/SETCB,AR/AD"
AR_AC1*2 "FMADR/AC1,ADB/FM,AD/B,AR/AD*2"
AR_AC3*2 "FMADR/AC3,ADB/FM,AD/B,AR/AD*2"
GEN AR*AC0 "FMADR/AC0,ADB/FM,ADA/AR"
AR_AR*AC0 "FMADR/AC0,ADB/FM,ADA/AR,AR/AD" ;GENERAL BINARY OPERATION
AR_AR*AC1 "FMADR/AC1,ADB/FM,ADA/AR,AR/AD"
AR_AC0+1 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,AR/AD"
AR_AC1+1 "ADA EN/0S,ADB/FM,FMADR/AC1,AD/A+B+1,AR/AD"
ARX_AC0+1 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,ARX/AD"
ARX_AC1+1 "ADA EN/0S,ADB/FM,FMADR/AC1,AD/A+B+1,ARX/AD"
ARX_-AC0 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A-B,ARX/AD"
ARX_AC0 COMP "ADB/FM,FMADR/AC0,AD/SETCB,ARX/AD"
AR_XR "FMADR/XR,ADB/FM,AD/B,AR/AD"
AR_FM(VMA) "FMADR/VMA,ADB/FM,AD/B,AR/AD"
ARX_FM(VMA) "FMADR/VMA,ADB/FM,AD/B,ARX/AD"
.TOC "MACROS -- DATA PATH TRANSFERS AND SHIFTS"
MQ_AR "SH/AR,MQ/SH"
MQ_ARX "SH/ARX,MQ/SH"
AR_MQ "ADA/MQ,AD/A,AR/AD"
MQ_SHIFT "SH/SHIFT AR!ARX,MQ/SH"
AR_SHIFT "SH/SHIFT AR!ARX,AR/SH"
ARX_SHIFT "SH/SHIFT AR!ARX,ARX/SH"
MQ_AD "COND/REG CTL,MQ CTL/AD,MQ/MQM SEL"
MQ_AR (AD) "ADA/AR,AD/A,MQ_AD"
(MQ)*.25 "COND/REG CTL,MQ/MQM SEL,MQ CTL/MQ*.25"
(MQ)*2 "COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*2"
AR_ARX "SH/ARX,AR/SH"
AR_ARX (ADX) "ADA EN/EN,AD/A,AR/ADX"
AR_ARX (AD) "ADA/ARX,AD/A,AR/AD"
ARX_AR "SH/AR,ARX/SH"
ARX_AR (AD) "ADA/AR,AD/A,ARX/AD"
BR_AR LONG "BR/AR,BRX/ARX"
AR_AR*2 "ADA/AR,AD/A,AR/AD*2"
AR_AR*4 "ADB/AR*4,AD/B,AR/AD"
AR_AR*8 "ADB/AR*4,AD/B,AR/AD*2"
ARX_ARX*2 "ADA EN/EN,AD/A,ARX/ADX*2"
ARX_ARX*4 "ADB/AR*4,AD/B,ARX/ADX"
ARX_ARX*8 "ADB/AR*4,AD/B,ARX/ADX*2"
AR_AR*2 LONG "ADA/AR,AD/A,AR/AD*2,ARX/ADX*2"
AR_AR*4 LONG "ADB/AR*4,AD/B,AR/AD,ARX/ADX"
AR_AR*8 LONG "ADB/AR*4,AD/B,AR/AD*2,ARX/ADX*2"
AR_ARX*2 "ADA/ARX,AD/A,AR/AD*2"
AR_ARX*4 "ADB/AR*4,AD/B,AR/ADX"
MQ_MQ*2 "SPEC/MQ SHIFT,MQ/MQ*2"
AR_AR*.25 "ADA/AR,AD/A,AR/AD*.25"
AR_ARX*.25 "ADA/ARX,AD/A,AR/AD*.25"
AR_MQ*.25 "ADA/MQ,AD/A,AR/AD*.25"
AR_MQ*4 "ADA/MQ,AD/A*2,AR/AD*2"
ARX_ARX*.25 "ADA EN/EN,AD/A,ARX/ADX*.25"
MQ_MQ*.25 "SPEC/MQ SHIFT,MQ/MQ*.25"
(AR+ARX+MQ)*2 "ADA/AR,AD/A,AR/AD*2,ARX/ADX*2,(MQ)*2"
(AR+ARX+MQ)*.25 "ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25,(MQ)*.25"
AR_AR*.5 "ADA/AR,AD/A*2,AR/AD*.25"
ARX_ARX*.5 "ADA/EN,AD/A*2,ARX/ADX*.25"
AR_AR*.5 LONG "ADA/AR,AD/A*2,SPEC/AD LONG,AR/AD*.25,ARX/ADX*.25"
AR_ARX COMP "ADA EN/EN,AD/SETCA,AR/ADX"
AR_BR COMP "ADB/BR,AD/SETCB,AR/AD"
ARX_BRX COMP "ADB/BR,AD/SETCB,ARX/ADX"
AR_BR COMP LONG "ADB/BR,AD/SETCB,AR/AD,ARX/ADX"
AR_MQ COMP "ADA/MQ,AD/SETCA,AR/AD"
ARX_AR*4 COMP "ADB/AR*4,AD/SETCB,ARX/AD"
ARX_ARX*2 COMP "ADA EN/EN,AD/SETCA,ARX/ADX*2"
MQ_BR COMP "ADB/BR,AD/SETCB,MQ_AD"
MQ_ARX COMP "ADA/ARX,AD/SETCA,MQ_AD"
AR_-AR "ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25"
AR_BR "ADB/BR,AD/B,AR/AD"
AR_BRX "ADB/BR,AD/B,AR/ADX"
ARX_BRX "ADB/BR,AD/B,ARX/ADX"
AR_BR LONG "ADB/BR,AD/B,AR/AD,ARX/ADX"
ARX_BR "ADB/BR,AD/B,ARX/AD"
AR_-BR "ADB/BR,ADA EN/0S,AD/A-B,AR/AD"
AR_-BRX "ADB/BR,ADA EN/0S,AD/A-B,AR/ADX"
ARX_-BRX "ADB/BR,ADA EN/0S,AD/A-B,ARX/ADX"
AR_BR*2 "ADB/BR*2,AD/B,AR/AD"
ARX_BRX*2 "ADB/BR*2,AD/B,ARX/ADX"
ARX_BRX*2+1 "ADA EN/0S,ADB/BR*2,AD/A+B+1,ARX/ADX"
AR_BR+1 "ADB/BR,ADA EN/0S,AD/A+B+1,AR/AD"
ARX_BR*2 "ADB/BR*2,AD/B,ARX/AD"
AR_BR*4 LONG "ADB/BR*2,AD/B,AR/AD*2,ARX/ADX*2"
AR_BR*.5 "ADB/BR*2,AD/B,AR/AD*.25"
AR_BR*.5 LONG "ADB/BR*2,AD/B,AR/AD*.25,ARX/ADX*.25"
AR_MQ*2 "ADA/MQ,AD/A,AR/AD*2"
GEN AR "ADA/AR,AD/A"
GEN ARX "ADA/ARX,AD/A"
GEN ARX COMP "ADA/ARX,AD/SETCA"
GEN MQ "ADA/MQ,AD/A"
GEN BR*2 "ADB/BR*2,AD/B"
FORCE AR-ARX "ADB/AR*4,AD/B,AR/AD*.25,ARX/ADX*.25"
.TOC "MACROS -- ARITHMETIC"
GEN AR+1 "ADA/AR,AD/A+1"
GEN AR-1 "ADA/AR,AD/A-1"
AR_AR+1 "ADA/AR,AD/A+1,AR/AD"
AR_AR-1 "ADA/AR,AD/A-1,AR/AD"
AR_AR+BR "ADA/AR,ADB/BR,AD/A+B,AR/AD"
ARX_AR+BR "ADA/AR,ADB/BR,AD/A+B,ARX/AD"
GEN AR*BR "ADA/AR,ADB/BR"
GEN AR+BR "ADA/AR,ADB/BR,AD/A+B"
GEN AR-BR "ADA/AR,ADB/BR,AD/A-B"
GEN AR-BR-1 "GEN AR*BR,AD/A-B-1"
AR_AR-BR "ADA/AR,ADB/BR,AD/A-B,AR/AD"
ARX_-AR-1 "ADA/AR,AD/SETCA,ARX/AD"
AR_AR-BR-1 "GEN AR*BR,AD/A-B-1,AR/AD"
ARX_AR+1 "ADA/AR,AD/A+1,ARX/AD"
ARX_AR-1 "ADA/AR,AD/A-1,ARX/AD"
ARX_ARX+1 "ADA EN/EN,AD/A+1,ARX/ADX"
ARX_ARX-1 "ADA EN/EN,AD/A-1,ARX/ADX"
ARX_ARX-1 (AD) "ADA/ARX,AD/A-1,ARX/AD"
AR_ARX-1 "ADA EN/EN,AD/A-1,AR/ADX"
ARX_BRX+1 "ADA EN/0S,ADB/BR,AD/A+B+1,ARX/ADX"
AR_ARX+BR "ADA/ARX,ADB/BR,AD/A+B,AR/AD"
ARX_ARX+BR "ADA/ARX,ADB/BR,AD/A+B,ARX/AD"
AR_ARX-BR "ADA/ARX,ADB/BR,AD/A-B,AR/AD"
GEN AR-AC3 "FMADR/AC3,ADB/FM,ADA/AR,AD/A-B"
AR_MQ+1 "ADA/MQ,AD/A+1,AR/AD"
MQ_MQ+1 "ADA/MQ,AD/A+1,MQ_AD"
AR_MQ-1 "ADA/MQ,AD/A-1,AR/AD"
AR_MQ-BR "ADA/MQ,ADB/BR,AD/A-B,AR/AD"
AR_MQ+AC0 "FMADR/AC0,ADB/FM,ADA/MQ,AD/A+B,AR/AD"
AR_MQ*AC1 "FMADR/AC1,ADB/FM,ADA/MQ,AR/AD"
AR_MQ*AC2 "FMADR/AC2,ADB/FM,ADA/MQ,AR/AD"
AR_MQ*AC3 "FMADR/AC3,ADB/FM,ADA/MQ,AR/AD"
AR_AR*BR "ADA/AR,ADB/BR,AR/AD"
AR_ARX*BR "ADA/ARX,ADB/BR,AR/AD"
ARX_AR*BR "ADA/AR,ADB/BR,ARX/AD"
AR_2(AR*BR) "ADA/AR,ADB/BR,AR/AD*2"
AR_2(AR+BR) "AR_2(AR*BR),AD/A+B"
AR_2(AR-BR) "AR_2(AR*BR),AD/A-B"
AR_(AR+BR)*.25 "ADA/AR,ADB/BR,AD/A+B,AR/AD*.25"
AR_(AR-BR)*.25 "ADA/AR,ADB/BR,AD/A-B,AR/AD*.25"
AR_(AR+2BR)*.25 "ADA/AR,ADB/BR*2,AD/A+B,AR/AD*.25"
AR_(AR-2BR)*.25 "ADA/AR,ADB/BR*2,AD/A-B,AR/AD*.25"
GEN AR+2BR "ADA/AR,ADB/BR*2,AD/A+B"
GEN AR-2BR "ADA/AR,ADB/BR*2,AD/A-B"
ARX_ARX*BRX "ADA/AR,ADB/BR,ARX/ADX"
ARX_ARX+BRX "ARX_ARX*BRX,AD/A+B"
AR_ARX*BRX "ADA/AR,ADB/BR,AR/ADX"
AR_AR*10 "ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2"
ARX_ARX*5 "ADA/AR,ADB/AR*4,AD/A+B,ARX/ADX"
AR_BR+1000000 "AR/AD,AD/A+B,ADA EN/0S,ADB/BR,GEN CRY18"
AR_2(AR+1) "ADA/AR,AD/A+1,AR/AD*2"
AR_ARX*.25-AR-1 "ADB/AR*4,ADA/ARX,AD/A-B-1,AR/AD*.25"
AR_(ARX OR AR*4)*.25 "ADA/ARX,ADB/AR*4,AD/OR,AR/AD*.25"
ARX_ARX*-6 "ADA EN/EN,ADB/AR*4,AD/A-B,ARX/ADX*2"
ARX0_MQ35 "ADA/MQ,AD/A*2+1,ARX/ADX*.25"
.TOC "MACROS -- SCRATCH AC'S (BLOCK 7)"
;PARITY ERROR DIAGNOSIS/RECOVERY INFORMATION
.IFNOT/KLPAGE
SV.AR_AR "FMADR/#B#,FM#/160,COND/FM WRITE" ;AR SAVED
SV.ARX_AR "FMADR/#B#,FM#/161,COND/FM WRITE" ;ARX SAVED
AR_SV.AR "FMADR/#B#,FM#/160,AR_FM"
.ENDIF/KLPAGE
SV.IOPF_AR "FMADR/#B#,FM#/162,COND/FM WRITE" ;IO PAGE FAIL WORD
T0 "FMADR/#B#,FM#/166"
T1 "FMADR/#B#,FM#/171"
T2 "FMADR/#B#,FM#/172"
E0 "FMADR/#B#,FM#/164"
E1 "FMADR/#B#,FM#/165"
SLEN "FMADR/#B#,FM#/170" ;MUST BE 170
MSK "FMADR/#B#,FM#/167"
FILL "FMADR/#B#,FM#/173"
SFLGS "FMADR/AC0"
SRCP "FMADR/AC1"
DLEN "FMADR/AC3"
DSTP "FMADR/AC4"
AR_FM "ADB/FM,AD/B,AR/AD"
AR_FM+1 "ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
FM_AR "COND/FM WRITE"
ARX_FM "ADB/FM,AD/B,ARX/AD"
.IF/INSTR.STAT
;ACCESS TO AC'S WHICH CONTROL TRACKS FEATURE
TRB "FMADR/#B#,FM#/176"
TRX "FMADR/#B#,FM#/177"
AR_TRB "TRB,AR_FM"
AR_AR+TRB "TRB,ADB/FM,ADA/AR,AD/A+B,AR/AD"
ARX_TRB "TRB,ARX_FM"
VMA_TRB "TRB,ADB/FM,AD/B,VMA/AD"
VMA_AR+TRB "TRB,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
TRB_AR "TRB,FM_AR"
AR_TRX "TRX,AR_FM"
TRX_AR "TRX,FM_AR"
AR_TRX+1 "TRX,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
.ENDIF/INSTR.STAT
T0_AR "T0,FM_AR"
T1_AR "T1,FM_AR"
T2_AR "T2,FM_AR"
E0_AR "E0,FM_AR"
E1_AR "E1,FM_AR"
SLEN_AR "SLEN,FM_AR"
DLEN_AR "DLEN,FM_AR"
MSK_AR "MSK,FM_AR"
FILL_AR "FILL,FM_AR"
SRCP_AR "SRCP,FM_AR"
SFLGS_AR "SFLGS,FM_AR"
DSTP_AR "DSTP,FM_AR"
AR_T0 "T0,AR_FM"
AR_AR+T0 "T0,ADB/FM,ADA/AR,AD/A+B,AR/AD"
AR_AR-T0 "T0,ADB/FM,ADA/AR,AD/A-B,AR/AD"
AR_AR*T0 "T0,ADB/FM,ADA/AR,AR/AD"
VMA_T0+1 "T0,ADB/FM,ADA EN/0S,AD/A+B+1,VMA/AD"
GEN AR*T0 "T0,ADB/FM,ADA/AR"
AR_T1 "T1,AR_FM"
AR_T2 "T2,AR_FM"
AR_AR+T1 "T1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
ARX_T2 "T2,ARX_FM"
AR_SLEN "SLEN,AR_FM"
AR_SLEN+1 "SLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
AR_SLEN COMP "SLEN,ADB/FM,AD/SETCB,AR/AD"
AR_-SLEN "SLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
ARX_-SLEN "SLEN,ADB/FM,ADA EN/0S,AD/A-B,ARX/AD"
AR_AR*SLEN "SLEN,ADB/FM,ADA/AR,AR/AD"
AR_DLEN "DLEN,AR_FM"
AR_DLEN+1 "DLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
AR_DLEN COMP "DLEN,ADB/FM,AD/SETCB,AR/AD"
AR_-DLEN "DLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
AR_E0 "E0,AR_FM"
VMA_E0+1 "E0,ADB/FM,ADA EN/0S,AD/A+B+1,VMA/AD"
VMA_AR+E0 "E0,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
VMA_AR+E0+1 "E0,ADB/FM,ADA/AR,AD/A+B+1,VMA/AD"
AR_E1 "E1,AR_FM"
VMA_AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
AR_AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
GEN AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B"
AR_AR*MSK "MSK,ADB/FM,ADA/AR,AR/AD"
ARX_AR*MSK "MSK,ADB/FM,ADA/AR,ARX/AD"
AR_FILL "FILL,AR_FM"
AR_SRCP "SRCP,AR_FM"
ARX_SRCP "SRCP,ARX_FM"
AR_SFLGS "SFLGS,AR_FM"
AR_AR*SFLGS "SFLGS,ADB/FM,ADA/AR,AR/AD"
AR_DSTP "DSTP,AR_FM"
ARX_DSTP "DSTP,ARX_FM"
.TOC "MACROS -- ITS AC BLOCKS USAGE TABLE"
;ITS USES THE EIGHT ACCUMULATOR BLOCKS AS FOLLOWS:
;
;BLOCK 0 EXEC MODE ACCUMULATORS
;BLOCK 1 USER MODE ACCUMULATORS
;BLOCK 2 MUSIC REGISTERS (.IF/MUSIC)
; 0 MUSAOB AOBJN POINTER TO MUSIC DATA
; 1 MUSDEV DATAO INSTR TO MUSIC DEVICE
; 2 MUSMIN MINIMUM LENGTH MUSIC QUANTUM
; 3 MUSTIM TIME FOR NEXT INTERVAL
; 4 MUSBT1 BITS FOR NEXT FROBBING
; 5 MUSBT2 BITS FOR TIME AFTER THAT
; 6 CHDTIM TIME LEFT FOR CURRENT CHORD
; 7 CN7777 MUST CONTAIN 7777 (OCTAL)
; 10 V1BR BASE REG FOR VOICE TABLE 1
; 11 V2BR BASE REG FOR VOICE TABLE 2
; 12 V3BR BASE REG FOR VOICE TABLE 3
; 13 V4BR BASE REG FOR VOICE TABLE 4
; 14 V5BR BASE REG FOR VOICE TABLE 5
; 15 V6BR BASE REG FOR VOICE TABLE 6
; 16 UNUSED
; 17 UNUSED
;BLOCK 3 MUSIC REGISTERS (.IF/MUSIC)
; 0 V1CTR COUNTER FOR FROBBING VOICE 1
; 1 V2CTR COUNTER FOR FROBBING VOICE 2
; 2 V3CTR COUNTER FOR FROBBING VOICE 3
; 3 V4CTR COUNTER FOR FROBBING VOICE 4
; 4 V5CTR COUNTER FOR FROBBING VOICE 5
; 5 V6CTR COUNTER FOR FROBBING VOICE 6
; 6 UNUSED
; 7 UNUSED
; 10 V1TIM TIME BETWEEN VOICE 1 FROBBINGS
; 11 V2TIM TIME BETWEEN VOICE 2 FROBBINGS
; 12 V3TIM TIME BETWEEN VOICE 3 FROBBINGS
; 13 V4TIM TIME BETWEEN VOICE 4 FROBBINGS
; 14 V5TIM TIME BETWEEN VOICE 5 FROBBINGS
; 15 V6TIM TIME BETWEEN VOICE 6 FROBBINGS
; 16 UNUSED
; 17 UNUSED
;BLOCK 4 EXEC MODE JPC RING (.IF/JPC.RING)
;BLOCK 5 USER MODE JPC RING (.IF/JPC.RING)
;BLOCK 6 VARIOUS PAGING BOX AND OTHER REGISTERS
; 0 UPFW PFW AS OF THE LAST REAL PAGE FAILURE
; 1 DBR1 DBR FOR USER LOW HALF
; 2 DBR2 DBR FOR USER HIGH HALF
; 3 DBR3 DBR FOR EXEC HIGH HALF
; 4 DBR4 DBR FOR EXEC LOW HALF
; 5 LH.AGE AGE BITS IN LEFT HALFWORD
; 6 RH.AGE AGE BITS IN RIGHT HALFWORD
; 7 CN1000 MUST CONTAIN 1000 FOR PAGING BOX CODE
; 10 CN100 MUST CONTAIN 100 FOR PAGING BOX CODE
; 11 UNUSED
; 12 SV.VMA SAVED VMA DURING PAGE FAIL
; 13 SV.BR SAVED BR DURING PAGE FAIL
; 14 XJPC EXEC JPC (EXEC JPC RING POINTER IF RING)
; 15 JPC USER JPC (JPC RING POINTER IF JPC RING)
; 16 SV.AR SAVED AR DURING PAGE FAIL
; 17 SV.ARX SAVES ARX DURING PAGE FAIL
;BLOCK 7 VARIOUS RANDOM REGISTERS
; 0 SV.PAR SAVED WORD WITH BAD PARITY DURING PARITY ERROR
; 1 SV.PFW SAVED PAGE FAIL WORD
; 2 SV.IOPF SAVED I/O PAGE FAIL WORD
; 3 SV.SC SAVE FE,,SC DURING PAGE FAIL
; 4 E0 TEMP FOR STRING STUFF ETC.
; 5 E1
; 6 T0
; 7 MSK
; 10 SLEN
; 11 T1
; 12 T2
; 13 GCSTBR GC SEGMENT TABLE BASE REG (.IF/LISP)
; 14 STBR SEGMENT TABLE BASE REG (.IF/LISP)
; 15 UNUSED
; 16 TRB BASE AOBJN POINTER FOR TRACKS FEATURE
; 17 TRX CURRENT AOBJN POINTER FOR TRACKS
.TOC "MACROS -- KL-MODE PAGING REGISTERS"
.IF/KLPAGE
.IFNOT/ITSPAGE
CSMSK "FMADR/#B#,FM#/140"
PUR "FMADR/#B#,FM#/141"
CBR "FMADR/#B#,FM#/142"
SBR "FMADR/#B#,FM#/143"
PFA "FMADR/#B#,FM#/144"
SV.VMA "FMADR/#B#,FM#/145"
SV.BR "FMADR/#B#,FM#/150"
SV.SC "FMADR/#B#,FM#/151"
SV.PFW "FMADR/#B#,FM#/152"
.IF/ITSPAGE
UPFW "FMADR/#B#,FM#/140" ;PFW AS OF LAST REAL PAGE FAIL
DBR1 "FMADR/#B#,FM#/141" ;USER LOW
DBR2 "FMADR/#B#,FM#/142" ;USER HIGH
DBR3 "FMADR/#B#,FM#/143" ;EXEC HIGH
DBR4 "FMADR/#B#,FM#/144" ;EXEC LOW
LH.AGE "FMADR/#B#,FM#/145"
RH.AGE "FMADR/#B#,FM#/146"
CN1000 "FMADR/#B#,FM#/147"
CN100 "FMADR/#B#,FM#/150"
SV.VMA "FMADR/#B#,FM#/152"
SV.BR "FMADR/#B#,FM#/153"
.IF/JPC SUPPORT
XJPC "FMADR/#B#,FM#/154" ;EXEC JPC (OR RING PTR)
JPC "FMADR/#B#,FM#/155" ;JPC (OR JPC RING PTR)
.ENDIF/JPC SUPPORT
SV.PFW "FMADR/#B#,FM#/161"
SV.SC "FMADR/#B#,FM#/163"
.ENDIF/ITSPAGE
SV.AR "FMADR/#B#,FM#/156" ;GROSS KLUDGES AT PF2 AND PFPAR
SV.ARX "FMADR/#B#,FM#/157" ; DEPEND ON THESE THREE
SV.PAR "FMADR/#B#,FM#/160" ; VALUES BEING WHAT THEY ARE
PFA_AR "PFA,FM_AR"
SV.PFW_AR "SV.PFW,FM_AR"
SV.VMA_AR "SV.VMA,FM_AR"
SV.AR_AR "SV.AR,FM_AR"
SV.ARX_AR "SV.ARX,FM_AR"
SV.BR_AR "SV.BR,FM_AR"
SV.SC_AR "SV.SC,FM_AR"
SV.PAR_AR "SV.PAR,FM_AR"
.IF/ITSPAGE
DBR1_AR "DBR1,FM_AR"
DBR2_AR "DBR2,FM_AR"
LH.AGE_AR "LH.AGE,FM_AR"
RH.AGE_AR "RH.AGE,FM_AR"
UPFW_AR "UPFW,FM_AR"
.IF/JPC SUPPORT
JPC_AR "JPC,FM_AR"
XJPC_AR "XJPC,FM_AR"
.ENDIF/JPC SUPPORT
.ENDIF/ITSPAGE
AR_SV.PFW "SV.PFW,AR_FM"
AR_SV.VMA "SV.VMA,AR_FM"
ARX_SV.VMA "SV.VMA,ARX_FM"
VMA_SV.VMA "SV.VMA,ADB/FM,AD/B,VMA/AD"
REQ SV.VMA "SV.VMA,ADB/FM,AD/B,VMA/1,MEM/AD FUNC"
AR_SV.AR "SV.AR,AR_FM"
ARX_SV.AR "SV.AR,ARX_FM"
AR_SV.ARX "SV.ARX,AR_FM"
ARX_SV.ARX "SV.ARX,ARX_FM"
AR_SV.BR "SV.BR,AR_FM"
ARX_SV.BR "SV.BR,ARX_FM"
AR_SV.SC "SV.SC,AR_FM"
.IF/ITSPAGE
AR_DBR1 "DBR1,AR_FM"
AR_DBR2 "DBR2,AR_FM"
ARX_DBR1 "DBR1,ARX_FM"
ARX_DBR2 "DBR2,ARX_FM"
ARX_DBR3 "DBR3,ARX_FM"
ARX_DBR4 "DBR4,ARX_FM"
AR_LH.AGE "LH.AGE,AR_FM"
AR_UPFW "UPFW,AR_FM"
GEN SV.PFW "AD/B,ADB/FM,SV.PFW"
.IF/JPC SUPPORT
AR_JPC "JPC,AR_FM"
AR_XJPC "XJPC,AR_FM"
.IF/JPC.RING
AR_JPC+1 "JPC,AR_FM+1"
AR_XJPC+1 "XJPC,AR_FM+1"
.ENDIF/JPC.RING
.ENDIF/JPC SUPPORT
.ENDIF/ITSPAGE
AR_AR+SBR "SBR,ADB/FM,ADA/AR,AD/A+B,AR/AD"
VMA_AR+SBR "SBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
ARX_AR+CBR "CBR,ADB/FM,ADA/AR,AD/A+B,ARX/AD"
VMA_AR+CBR "CBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
ARX_ARX+CBR "CBR,ADB/FM,ADA/ARX,AD/A+B,ARX/AD"
VMA_ARX+CBR "CBR,ADB/FM,ADA/ARX,AD/A+B,VMA/AD"
AR_AR AND CSMSK "CSMSK,ADB/FM,ADA/AR,AD/AND,AR/AD"
AR_AR OR PUR "PUR,ADB/FM,ADA/AR,AD/OR,AR/AD"
AR_ARX OR PUR "PUR,ADB/FM,ADA/ARX,AD/OR,AR/AD"
AR_PUR+AR0 "PUR,ADB/FM,ADA EN/0S,AD/A+B,SPEC/XCRY AR0,AR/AD"
.IF/ITSPAGE
AR_AR*LH.AGE "LH.AGE,ADA/AR,ADB/FM,AR/AD"
AR_AR*RH.AGE "RH.AGE,ADA/AR,ADB/FM,AR/AD"
GEN ARX*CN1000 "CN1000,ADA/ARX,ADB/FM"
GEN ARX*SV.VMA "SV.VMA,ADA/ARX,ADB/FM"
ARX_ARX-CN100 "CN100,ADA/ARX,ADB/FM,AD/A-B,ARX/AD"
.ENDIF/ITSPAGE
;DEFINE PAGE FAIL CODES GENERATED BY MICROCODE
SC_PF.ILW "SC_#,#/24" ;ILLEGAL WRITE
SC_PF.PNA "SC_#,#/33" ;PAGE NO ACCESS
; PF.APE 36 ;AR PARITY ERROR
; PF.XPE 37 ;ARX PARITY ERROR
.ENDIF/KLPAGE
.TOC "MACROS -- ITS JPC RING REGISTERS"
XJPC0 "FMADR/#B#,FM#/100" ;EXEC JPC RING - AC BLK 4
XJPC1 "FMADR/#B#,FM#/101"
XJPC2 "FMADR/#B#,FM#/102"
XJPC3 "FMADR/#B#,FM#/103"
XJPC4 "FMADR/#B#,FM#/104"
XJPC5 "FMADR/#B#,FM#/105"
XJPC6 "FMADR/#B#,FM#/106"
XJPC7 "FMADR/#B#,FM#/107"
XJPC10 "FMADR/#B#,FM#/110"
XJPC11 "FMADR/#B#,FM#/111"
XJPC12 "FMADR/#B#,FM#/112"
XJPC13 "FMADR/#B#,FM#/113"
XJPC14 "FMADR/#B#,FM#/114"
XJPC15 "FMADR/#B#,FM#/115"
XJPC16 "FMADR/#B#,FM#/116"
XJPC17 "FMADR/#B#,FM#/117"
JPC0 "FMADR/#B#,FM#/120" ;USER JPC RING - AC BLK 5
JPC1 "FMADR/#B#,FM#/121"
JPC2 "FMADR/#B#,FM#/122"
JPC3 "FMADR/#B#,FM#/123"
JPC4 "FMADR/#B#,FM#/124"
JPC5 "FMADR/#B#,FM#/125"
JPC6 "FMADR/#B#,FM#/126"
JPC7 "FMADR/#B#,FM#/127"
JPC10 "FMADR/#B#,FM#/130"
JPC11 "FMADR/#B#,FM#/131"
JPC12 "FMADR/#B#,FM#/132"
JPC13 "FMADR/#B#,FM#/133"
JPC14 "FMADR/#B#,FM#/134"
JPC15 "FMADR/#B#,FM#/135"
JPC16 "FMADR/#B#,FM#/136"
JPC17 "FMADR/#B#,FM#/137"
XJPC0_AR "XJPC0,FM_AR"
XJPC1_AR "XJPC1,FM_AR"
XJPC2_AR "XJPC2,FM_AR"
XJPC3_AR "XJPC3,FM_AR"
XJPC4_AR "XJPC4,FM_AR"
XJPC5_AR "XJPC5,FM_AR"
XJPC6_AR "XJPC6,FM_AR"
XJPC7_AR "XJPC7,FM_AR"
XJPC10_AR "XJPC10,FM_AR"
XJPC11_AR "XJPC11,FM_AR"
XJPC12_AR "XJPC12,FM_AR"
XJPC13_AR "XJPC13,FM_AR"
XJPC14_AR "XJPC14,FM_AR"
XJPC15_AR "XJPC15,FM_AR"
XJPC16_AR "XJPC16,FM_AR"
XJPC17_AR "XJPC17,FM_AR"
JPC0_AR "JPC0,FM_AR"
JPC1_AR "JPC1,FM_AR"
JPC2_AR "JPC2,FM_AR"
JPC3_AR "JPC3,FM_AR"
JPC4_AR "JPC4,FM_AR"
JPC5_AR "JPC5,FM_AR"
JPC6_AR "JPC6,FM_AR"
JPC7_AR "JPC7,FM_AR"
JPC10_AR "JPC10,FM_AR"
JPC11_AR "JPC11,FM_AR"
JPC12_AR "JPC12,FM_AR"
JPC13_AR "JPC13,FM_AR"
JPC14_AR "JPC14,FM_AR"
JPC15_AR "JPC15,FM_AR"
JPC16_AR "JPC16,FM_AR"
JPC17_AR "JPC17,FM_AR"
.TOC "MACROS -- REGISTERS FOR MUSIC"
MUSAOB "FMADR/#B#,FM#/40"
MUSDEV "FMADR/#B#,FM#/41"
MUSMIN "FMADR/#B#,FM#/42"
MUSTIM "FMADR/#B#,FM#/43"
MUSBT1 "FMADR/#B#,FM#/44"
MUSBT2 "FMADR/#B#,FM#/45"
CHDTIM "FMADR/#B#,FM#/46"
CN7777 "FMADR/#B#,FM#/47"
V1BR "FMADR/#B#,FM#/50"
V2BR "FMADR/#B#,FM#/51"
V3BR "FMADR/#B#,FM#/52"
V4BR "FMADR/#B#,FM#/53"
V5BR "FMADR/#B#,FM#/54"
V6BR "FMADR/#B#,FM#/55"
V1CTR "FMADR/#B#,FM#/60"
V2CTR "FMADR/#B#,FM#/61"
V3CTR "FMADR/#B#,FM#/62"
V4CTR "FMADR/#B#,FM#/63"
V5CTR "FMADR/#B#,FM#/64"
V6CTR "FMADR/#B#,FM#/65"
V1TIM "FMADR/#B#,FM#/70"
V2TIM "FMADR/#B#,FM#/71"
V3TIM "FMADR/#B#,FM#/72"
V4TIM "FMADR/#B#,FM#/73"
V5TIM "FMADR/#B#,FM#/74"
V6TIM "FMADR/#B#,FM#/75"
GEN MUSDEV "MUSDEV,ADB/FM,AD/B"
AR_MUSTIM "MUSTIM,AR_FM"
AR_MUSBT1 "MUSBT1,AR_FM"
AR_MUSBT2 "MUSBT2,AR_FM"
AR_MUSAOB+1 "MUSAOB,AR_FM+1"
AR_CN7777 "CN7777,AR_FM"
AR_AR*MUSBT1 "MUSBT1,ADA/AR,ADB/FM,AR/AD"
AR_ARX+CHDTIM "CHDTIM,ADA/ARX,ADB/FM,AD/A+B,AR/AD"
AR_AR+V1TIM "V1TIM,ADA/AR,ADB/FM,AD/A+B,AR/AD"
AR_AR+V2TIM "V2TIM,ADA/AR,ADB/FM,AD/A+B,AR/AD"
AR_AR+V3TIM "V3TIM,ADA/AR,ADB/FM,AD/A+B,AR/AD"
AR_AR+V4TIM "V4TIM,ADA/AR,ADB/FM,AD/A+B,AR/AD"
AR_AR+V5TIM "V5TIM,ADA/AR,ADB/FM,AD/A+B,AR/AD"
AR_AR+V6TIM "V6TIM,ADA/AR,ADB/FM,AD/A+B,AR/AD"
AR_ARX+V1CTR "V1CTR,ADA/ARX,ADB/FM,AD/A+B,AR/AD"
AR_ARX+V2CTR "V2CTR,ADA/ARX,ADB/FM,AD/A+B,AR/AD"
AR_ARX+V3CTR "V3CTR,ADA/ARX,ADB/FM,AD/A+B,AR/AD"
AR_ARX+V4CTR "V4CTR,ADA/ARX,ADB/FM,AD/A+B,AR/AD"
AR_ARX+V5CTR "V5CTR,ADA/ARX,ADB/FM,AD/A+B,AR/AD"
AR_ARX+V6CTR "V6CTR,ADA/ARX,ADB/FM,AD/A+B,AR/AD"
MUSTIM_AR "MUSTIM,FM_AR"
MUSBT1_AR "MUSBT1,FM_AR"
MUSBT2_AR "MUSBT2,FM_AR"
MUSAOB_AR "MUSAOB,FM_AR"
CHDTIM_AR "CHDTIM,FM_AR"
V1CTR_AR "V1CTR,FM_AR"
V2CTR_AR "V2CTR,FM_AR"
V3CTR_AR "V3CTR,FM_AR"
V4CTR_AR "V4CTR,FM_AR"
V5CTR_AR "V5CTR,FM_AR"
V6CTR_AR "V6CTR,FM_AR"
V1TIM_AR "V1TIM,FM_AR"
V2TIM_AR "V2TIM,FM_AR"
V3TIM_AR "V3TIM,FM_AR"
V4TIM_AR "V4TIM,FM_AR"
V5TIM_AR "V5TIM,FM_AR"
V6TIM_AR "V6TIM,FM_AR"
.TOC "MACROS -- LISP-RELATED REGISTERS"
GCSTBR "FMADR/#B#,FM#/173"
STBR "FMADR/#B#,FM#/174"
GEN STBR "STBR,AD/B,ADB/FM"
AR_GCSTBR "GCSTBR,AR_FM"
AR_STBR "STBR,AR_FM"
.TOC "MACROS -- CONSTANT GENERATION"
AR_1S "AD/1S,AR/AD"
ARX_1S "AD/1S,ARX/AD"
MQ_1S "COND/REG CTL,MQ CTL/1S,MQ/MQM SEL"
AR_0S "AD/0S,AR/AD"
ARX_0S "AD/0S,ARX/AD"
AR_SIGN "AD/XCRY-1,SPEC/XCRY AR0,AR/AD"
ARX_AR SIGN "AD/XCRY-1,SPEC/XCRY AR0,ARX/AD"
AR_0.C "COND/ARL IND,CLR/AR"
ARL_0.C "COND/ARL IND,CLR/ARL"
ARR_0.C "COND/ARL IND,CLR/ARR"
ARX_0.C "COND/ARL IND,CLR/ARX"
MQ_0.C "COND/ARL IND,CLR/MQ"
AR_0.S "SPEC/ARL IND,CLR/AR"
ARL_0.S "SPEC/ARL IND,CLR/ARL"
ARR_0.S "SPEC/ARL IND,CLR/ARR"
ARX_0.S "SPEC/ARL IND,CLR/ARX"
MQ_0.S "SPEC/ARL IND,CLR/MQ"
AR_0.M "MEM/ARL IND,CLR/AR"
ARL_0.M "MEM/ARL IND,CLR/ARL"
ARR_0.M "MEM/ARL IND,CLR/ARR"
ARX_0.M "MEM/ARL IND,CLR/ARX"
MQ_0.M "MEM/ARL IND,CLR/MQ"
ARX+MQ_0.M "MEM/ARL IND,CLR/ARX+MQ"
AR+ARX+MQ_0.M "MEM/ARL IND,CLR/AR+ARX+MQ"
ARL+ARX+MQ_0.M "MEM/ARL IND,CLR/ARL+ARX+MQ"
ARL+ARX_0.M "MEM/ARL IND,CLR/ARL+ARX"
AR+MQ_0.M "MEM/ARL IND,CLR/AR+MQ"
AR+MQ_0.S "SPEC/ARL IND,CLR/AR+MQ"
ARR+MQ_0.S "SPEC/ARL IND,CLR/ARR+MQ"
ARX+MQ_0.S "SPEC/ARL IND,CLR/ARX+MQ"
CLR AR "COND/AR CLR"
CLR ARX "COND/ARX CLR"
CLR MQ "COND/REG CTL,MQ/MQ SEL,MQ CTL/0S"
AR_1 "ADA EN/0S,AD/A+1,AR/AD"
ARX_1 "ADA EN/0S,AD/A+1,ARX/AD"
AR_1 LONG "ADA EN/0S,AD/A+1,AR/AD*.25,ARX/ADX"
MQ_1 "ADA EN/0S,AD/A+1,COND/REG CTL,MQ/MQM SEL,MQ CTL/AD"
AR_2 "ADA EN/0S,AD/A+1,AR/AD*2"
ARX_1B1 "ADA EN/0S,AD/A+1,ARX/ADX*.25"
.TOC "MACROS -- ADDRESS MANIPULATION"
GEN AR+XR "FMADR/XR,ADB/FM,ADA/AR,AD/A+B"
GEN ARX+XR "FMADR/XR,ADB/FM,ADA/ARX,AD/A+B"
VMA_AR+XR "GEN AR+XR,VMA/AD"
VMA_ARX+XR "GEN ARX+XR,VMA/AD"
AR_AR+XR "GEN AR+XR,AR/AD"
AR_ARX+XR "GEN ARX+XR,AR/AD"
VMA_ARX "ADA/ARX,AD/A,VMA/AD"
VMA_AR "ADA/AR,AD/A,VMA/AD"
VMA_AR+1 "ADA/AR,AD/A+1,VMA/AD"
VMA_AR-1 "ADA/AR,AD/A-1,VMA/AD"
VMA_MQ "ADA/MQ,AD/A,VMA/AD"
VMA_BR "ADB/BR,AD/B,VMA/AD"
VMA_AR+BR "ADA/AR,ADB/BR,AD/A+B,VMA/AD"
VMA_ARX+BR "ADA/ARX,ADB/BR,AD/A+B,VMA/AD"
VMA_ARX+FM "ADA/ARX,ADB/FM,AD/A+B,VMA/AD"
VMA_AC0 "FMADR/AC0,ADB/FM,AD/B,VMA/AD"
VMA_AC1 "FMADR/AC1,ADB/FM,AD/B,VMA/AD"
VMA_AC3 "FMADR/AC3,ADB/FM,AD/B,VMA/AD"
VMA_PC+1 "VMA/PC+1"
VMA_VMA-1 "VMA/VMA,COND/VMA DEC"
VMA_VMA+1 "VMA/VMA,COND/VMA INC"
VMA_# "VMA/1,COND/VMA_#"
VMA_40 "VMA/1,COND/VMA_#,#/40"
VMA_41 "VMA/1,COND/VMA_#,#/41"
VMA_40+PI*2 "VMA/1,COND/VMA_#+PI*2,#/40"
VMA_41+PI*2 "VMA/1,COND/VMA_#+PI*2,#/41"
VMA_420+TRAP "VMA/1,COND/VMA_#+TRAP,#/420"
VMA_430+MODE "VMA/1,COND/VMA_#+MODE,#/430"
VMA_#+AR32-35 "VMA/1,COND/VMA_#+AR32-35"
PC_VMA "SPEC/LOAD PC"
AR_PC "ADA/PC,AD/A,AR/AD"
AR_PC+1 "ADA/PC,AD/A+1,AR/AD,SPEC/SAVE FLAGS"
ARR_PC+1 "ADA/PC,AD/A+1,AR/AD"
ARX_PC "ADA/PC,AD/A,ARX/AD"
REQ VMA HELD "COND/SEL VMA,ADA/PC,AD/A,VMA/1,MEM/AD FUNC"
VMA_VMA HELD "COND/SEL VMA,ADA/PC,AD/A,VMA/AD"
AR_VMA HELD "COND/SEL VMA,AR_PC"
ARX_VMA HELD "COND/SEL VMA,ARX_PC"
.TOC "MACROS -- LONG (72-BIT) ARITHMETIC"
AR_AR+1 LONG "AR_AR+1,ARX/ADX,SPEC/AD LONG"
AR_BR+1 LONG "ADA EN/0S,ADB/BR,AD/A+B+1,AR/AD,ARX/ADX,SPEC/AD LONG"
GEN -AR LONG "ADB/AR*4,ADA EN/0S,AD/A-B,SPEC/AD LONG"
AR_AD*.25 LONG "AR/AD*.25,ARX/ADX*.25,SPEC/AD LONG"
AR_-AR LONG "GEN -AR LONG,AR_AD*.25 LONG"
AR_-BR LONG "ADA EN/0S,ADB/BR,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
AR_BR*2 LONG "ADB/BR*2,AD/B,AR/AD,ARX/ADX"
AR_-BR*2 LONG "ADA EN/0S,ADB/BR*2,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
AR_AR+BR LONG "AR_AR+BR,ARX/ADX,SPEC/AD LONG"
AR_AR-BR LONG "AR_AR-BR,ARX/ADX,SPEC/AD LONG"
AR_2(AR+BR) LONG "AR_2(AR*BR),AD/A+B,ARX/ADX*2,SPEC/AD LONG"
AR_AR*5 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR/AD,ARX/ADX,SPEC/AD LONG"
AR_AR*10 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2,ARX/ADX*2,SPEC/AD LONG"
AR_AR*1.25 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR_AD*.25 LONG"
AR_AR*.25 LONG "ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25"
.TOC "MACROS -- HALFWORD MANIPULATION"
AR_AR SWAP "SH/AR SWAP,AR/SH"
ARX_AR SWAP "SH/AR SWAP,ARX/SH"
MQ_AR SWAP "SH/AR SWAP,MQ/SH"
ARL_AC0 "FMADR/AC0,ADB/FM,AD/B,COND/ARL IND,ARL/AD"
ARL_ARX "COND/ARL IND,ARL/AD,ADA/ARX,AD/A"
ARR_AC0 "AR_AC0"
ARL_ARR "COND/ARL IND,ARL/SH,SH/AR SWAP"
ARL_ARR.S "SPEC/ARL IND,ARL/SH,SH/AR SWAP"
ARL_ARR.M "MEM/ARL IND,ARL/SH,SH/AR SWAP"
ARR_ARL "SH/AR SWAP,AR/SH"
ARR_ARR "AR/AR"
ARL_ARL "COND/ARL IND,ARL/ARL"
ARL_ARL.M "MEM/ARL IND,ARL/ARL"
ARL_ARXL "SPEC/ARL IND,SH/ARX,ARL/SH"
ARR_BRXR "SPEC/ARL IND,AD/B,ARL/ADX,ADB/BR"
ARR_ARXR "SH/ARX,AR/SH"
ARL_ARXL.M "MEM/ARL IND,SH/ARX,ARL/SH"
ARL_ARX (ADX) "ADA EN/EN,AD/A,MEM/ARL IND,ARL/ADX"
ARR_0S "AR_0S"
ARL_0S "COND/ARL IND,CLR/ARL"
ARR_1S "AR_1S"
ARL_1S "AD/1S,COND/ARL IND,ARL/AD"
ARL_1S.M "AD/1S,MEM/ARL IND,ARL/AD"
ARL_BRL "ADB/BR,AD/B,COND/ARL IND,ARL/AD"
ARL_BRL.S "ADB/BR,AD/B,SPEC/ARL IND,ARL/AD"
ARR_ARX "AR_ARX"
ARL_SHIFT.C "COND/ARL IND,ARL/SH,SH/SHIFT AR!ARX"
ARL_BRL.M "ADB/BR,AD/B,MEM/ARL IND,ARL/AD"
ARL_SHIFT "MEM/ARL IND,SH/SHIFT AR!ARX,ARL/SH"
.TOC "MACROS -- SC"
CLR SC "SCADA EN/0S,SCAD/A,SC/SCAD"
GEN # AND SC "SCADA/#,SCADB/SC,SCAD/AND"
SC_# "SCADA/#,SCAD/A,SC/SCAD"
SC_#-SC "SCADA/#,SCADB/SC,SCAD/A-B,SC/SCAD"
SC_#-SC-1 "SCADA/#,SCADB/SC,SCAD/A-B-1,SC/SCAD"
SC_#+SC "SCADA/#,SCADB/SC,SCAD/A+B,SC/SCAD"
SC_SC AND # "SCADA/#,SCADB/SC,SCAD/AND,SC/SCAD"
SC_# OR SC "SCADA/#,SCADB/SC,SCAD/OR,SC/SCAD"
SC_P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND,SC/SCAD"
SC_P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,SC/SCAD"
SC_# AND S "SCADA/#,SCADB/AR6-11,SCAD/AND,SC/SCAD"
SC_P-# "SCADA/AR0-5,SCADB/#,SCAD/A-B,SC/SCAD"
SC_S "SCADB/AR6-11,SCADA EN/0S,SCAD/A+B,SC/SCAD"
SC_P "SCADA/AR0-5,SCAD/A,SC/SCAD"
SC_-SC "SCADA EN/0S,SCADB/SC,SCAD/A-B,SC/SCAD"
SC_-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,SC/SCAD"
SC_1 "SCADA EN/0S,SCAD/A+1,SC/SCAD"
SC_1S "SCADA EN/0S,SCAD/A-1,SC/SCAD"
SC_FE "SPEC/SCM ALT,SC/FE"
SC_FE+1 "SCADA/FE,SCAD/A+1,SC/SCAD"
SC_FE-1 "SCADA/FE,SCAD/A-1,SC/SCAD"
SC_FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,SC/SCAD"
SC_FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,SC/SCAD"
SC_FE-SC-1 "SCADA/FE,SCADB/SC,SCAD/A-B-1,SC/SCAD"
SC_FE+# "SCADA/FE,SCADB/#,SCAD/A+B,SC/SCAD"
SC_AR0-8 AND # "SCADA/#,SCADB/AR0-8,SCAD/AND,SC/SCAD"
SC_FE-# "SCADA/FE,SCADB/#,SCAD/A-B,SC/SCAD"
SC_FE AND # "SCADA/FE,SCADB/#,SCAD/AND,SC/SCAD"
SC_EA "SPEC/SCM ALT,SC/AR SHIFT"
SC_# AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND,SC/SCAD"
SC_EXP "SCADA/AR EXP,SCAD/A,SC/SCAD"
SC_EXP+1 "SCADA/AR EXP,SCAD/A+1,SC/SCAD"
SC_EXP-1 "SCADA/AR EXP,SCAD/A-1,SC/SCAD"
SC_EXP+SC "SCADA/AR EXP,SCADB/SC,SCAD/A+B,SC/SCAD"
SC_EXP-# "SCADA/AR EXP,SCADB/#,SCAD/A-B,SC/SCAD"
SC_EXP-SC "SCADA/AR EXP,SCADB/SC,SCAD/A-B,SC/SCAD"
SC_AR0-8 "SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,SC/SCAD"
.TOC "MACROS -- FE"
FE_S "SCADA EN/0S,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
FE_# AND S "SCADA/#,SCADB/AR6-11,SCAD/AND,FE/SCAD"
FE_P "SCADA/AR0-5,SCAD/A,FE/SCAD"
FE_SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,FE/SCAD"
FE_-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,FE/SCAD"
FE_# "SCADA/#,SCAD/A,FE/SCAD"
FE_+# "SCADA EN/0S,SCADB/#,SCAD/A+B,FE/SCAD"
FE_#+SC "SCADA/#,SCADB/SC,SCAD/A+B,FE/SCAD"
FE_#-SC "SCADA/#,SCADB/SC,SCAD/A-B,FE/SCAD"
FE_FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,FE/SCAD"
FE_FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,FE/SCAD"
FE_FE+# "SCADA/FE,SCADB/#,SCAD/A+B,FE/SCAD"
FE_FE-# "SCADA/FE,SCADB/#,SCAD/A-B,FE/SCAD"
FE_FE OR # "SCADA/FE,SCADB/#,SCAD/OR,FE/SCAD"
FE_FE AND # "SCADA/FE,SCADB/#,SCAD/AND,FE/SCAD"
FE_EXP "SCADA/AR EXP,SCAD/A,FE/SCAD"
FE_EXP+1 "SCADA/AR EXP,SCAD/A+1,FE/SCAD"
FE_EXP-1 "SCADA/AR EXP,SCAD/A-1,FE/SCAD"
FE_EXP+SC "SCADA/AR EXP,SCADB/SC,SCAD/A+B,FE/SCAD"
FE_EXP-# "SCADA/AR EXP,SCADB/#,SCAD/A-B,FE/SCAD"
FE_AR0-8 "SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
FE_AR0-8 COMP "SCADA EN/0S,SCADB/AR0-8,SCAD/A-B-1,FE/SCAD"
FE_#+AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
FE_AR0-8 AND # "SCADA/#,SCADB/AR0-8,SCAD/AND,FE/SCAD"
FE_FE OR AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/OR,FE/SCAD"
FE_FE AND AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/AND,FE/SCAD"
GEN P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND"
GEN P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND"
FE_P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,FE/SCAD"
FE_P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND,FE/SCAD"
FE_P+SC "SCADA/AR0-5,SCADB/SC,SCAD/A+B,FE/SCAD"
FE_FE SHRT "COND/FE SHRT,FE/0"
CLR FE "SCADA EN/0S,SCAD/A,FE/SCAD"
FE_1 "SCADA EN/0S,SCAD/A+1,FE/SCAD"
FE_-1 "SCADA EN/0S,SCAD/A-1,FE/SCAD"
FE_FE+1 "SCADA/FE,SCAD/A+1,FE/SCAD"
FE_FE-1 "SCADA/FE,SCAD/A-1,FE/SCAD"
GEN SC "SCADB/SC,SCADA EN/0S,SCAD/A+B"
GEN -SC-1 "SCADB/SC,SCADA EN/0S,SCAD/A-B-1"
GEN FE "SCADA/FE,SCAD/A"
GEN FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B"
GEN FE AND SC "SCADA/FE,SCADB/SC,SCAD/AND"
GEN FE AND # "SCADA/FE,SCADB/#,SCAD/AND"
GEN FE-1 "SCADA/FE,SCAD/A-1"
GEN FE-# "SCADA/FE,SCADB/#,SCAD/A-B"
GEN FE AND S "SCADA/FE,SCADB/AR6-11,SCAD/AND"
GEN #+SC "SCADA/#,SCADB/SC,SCAD/A+B"
GEN #-SC "SCADA/#,SCADB/SC,SCAD/A-B"
GEN #+AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/A+B"
GEN # AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND"
GEN P-S "SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B"
.TOC "MACROS -- AR MIXER MIXER (BITS 0-8)"
GEN P-# "SCADA/AR0-5,SCADB/#,SCAD/A-B"
P_SCAD "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
P_SCAD.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
P_SCAD.C "COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
P_SCAD# "COND/LD AR0-8,AR/ARMM,ARMM/SCAD POS"
P_P-S "SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B,P_SCAD.M"
P_P+S "SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,P_SCAD"
P_P+1 "SCADA/AR0-5,SCAD/A+1,P_SCAD"
P_SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,P_SCAD.M"
P_SC# "SCADA EN/0S,SCADB/SC,SCAD/A+B,P_SCAD#"
P_-SC "SCADA EN/0S,SCADB/SC,SCAD/A-B,P_SCAD.M"
P_P OR SC "SCADA/AR0-5,SCADB/SC,SCAD/OR,P_SCAD.M"
P_P OR SC# "SCADA/AR0-5,SCADB/SC,SCAD/OR,P_SCAD#"
P_P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND,P_SCAD.M"
P_P OR # "SCADA/AR0-5,SCADB/#,SCAD/OR,P_SCAD#"
P_P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,P_SCAD#"
P_P+# "SCADA/AR0-5,SCADB/#,SCAD/A+B,P_SCAD#"
P_P-# "SCADA/AR0-5,SCADB/#,SCAD/A-B,P_SCAD#"
P_FE "SCADA/FE,SCAD/A,P_SCAD"
P_# "SCADA/#,SCAD/A,P_SCAD#"
GEN S AND # "SCADA/#,SCADB/AR6-11,SCAD/AND"
P_FE-S "SCADA/FE,SCADB/AR6-11,SCAD/A-B,P_SCAD.C"
P_FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,P_SCAD.C"
P_FE OR SC "SCADA/FE,SCADB/SC,SCAD/OR,P_SCAD"
EXP_SCAD "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
EXP_SCAD.C "COND/REG CTL,AR CTL/AR0-8 LOAD,AR/ARMM,ARMM/SCAD EXP"
EXP TST "COND/REG CTL,EXP TST/AR_EXP"
CLR P "SCADA EN/0S,SCAD/A,P_SCAD"
P_1S "SCADA EN/0S,SCAD/A-1,P_SCAD"
CLR EXP "SCADA EN/0S,SCAD/A,EXP_SCAD"
EXP_1 "SCADA EN/0S,SCAD/A+1,EXP_SCAD"
EXP_SIGN "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
EXP_SIGN.C "COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
EXP_SIGN.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP_SIGN"
EXP_SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,EXP_SCAD"
EXP_-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP_SCAD"
EXP_FE TST "SCADA/FE,SCAD/A,EXP_SCAD.C,EXP TST"
EXP_-SC-1 TST "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP_SCAD.C,EXP TST"
AR0-8_SCAD "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
AR0-8_SCAD# "ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
AR0-8_SCAD.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
AR0-8_SCAD.R "ARMM/SCAD EXP,AR/ARMM,COND/REG CTL,AR CTL/AR0-8 LOAD"
AR0-8_SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,AR0-8_SCAD"
AR0-8_-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,AR0-8_SCAD"
AR0-8_FE "SCADA/FE,SCAD/A,AR0-8_SCAD"
AR0-8_FE.M "SCADA/FE,SCAD/A,AR0-8_SCAD.M"
AR0-8_FE.R "GEN FE,AR0-8_SCAD.R"
AR0-8_FE# "SCADA/FE,SCAD/A,ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
AR0-8_FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,AR0-8_SCAD.M"
AR0-8_FE OR SC "SCADA/FE,SCADB/SC,SCAD/OR,AR0-8_SCAD.M"
AR0-8_FE+# "SCADA/FE,SCADB/#,SCAD/A+B,AR0-8_SCAD#"
AR0-8_FE OR # "SCADA/FE,SCADB/#,SCAD/OR,AR0-8_SCAD#"
AR0-8_# AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND,AR0-8_SCAD#"
AR0-8_# "COND/LD AR0-8,AR/ARMM,ARMM/#"
.TOC "MACROS -- MICROPROGRAM SKIPS"
SKP AR0 "SKIP/AR0"
SKP ARX0 "SKIP/ARX0"
SKP BR0 "SKIP/BR0"
SKP AD0 "SKIP/AD0"
SKP ADX0 "SKIP/ADX0"
SKP AR18 "SKIP/AR18"
SKP SC0 "SKIP/SC0"
SKP SCAD0 "SKIP/SCAD0"
SKP AD NE "SKIP/AD#0"
SKP SCAD NE "SKIP/SCAD#0"
SKP CRY0 "SKIP/AD CRY0"
SKP INTRPT "SKIP/INTRPT"
SKP AC#0 "SKIP/AC#0"
SKP -START "SKIP/-START"
SKP RUN "SKIP/RUN"
SKP KERNEL "SKIP/KERNEL"
SKP USER "SKIP/USER"
SKP P!S XCT "SKIP/P!S XCT"
SKP RPW "SKIP/RPW REF"
SKP AC REF "SKIP/AC REF"
SKP FETCH "SKIP/FETCH"
SKP SC LE 36 "SCADB/SC,SCADA/#,#/-36.,SCAD/A+B,SKIP/SCAD0"
SKP SC NE "SCADB/SC,SCADA EN/0S,SCAD/A+B,SKIP/SCAD#0"
SKP FE0 "SCADA/FE,SCAD/A,SKIP/SCAD0"
SKP EXP NE "SCADA/AR EXP,SCAD/A,SKIP/SCAD#0"
SKP P NE "SCADA/AR0-5,SCAD/A,SKIP/SCAD#0"
SKP AR GT BR "ADA/AR,ADB/BR,AD/XOR,SKIP/AD CRY0"
SKP AR GT FM "ADA/AR,ADB/FM,AD/XOR,SKIP/AD CRY0"
SKP ARX LT BRX "ADA EN/EN,ADB/BR,AD/A-B,SKIP/ADX0"
SKP ARX LE BRX "ADA EN/EN,ADB/BR,AD/A-B-1,SKIP/ADX0"
SKP MQ EQ -1 "ADA/MQ,AD/CRY A EQ -1,SKIP/AD CRY0"
SKP AR SIG "ADA/AR,AD/A+XCRY,SPEC/XCRY AR0,SKIP/AD#0"
SKP AC0- "FMADR/AC0,ADB/FM,AD/B,SKIP/AD0"
SKP AC0+ "FMADR/AC0,ADB/FM,AD/SETCB,SKIP/AD0"
SKP AR1 "ADA/AR,AD/A*2,SKIP/AD0"
SKP AR2 "ADB/AR*4,AD/B,SKIP/AD0"
SKP AR6 "SCADB/AR6-11,SCADA/#,#/40,SCAD/AND,SKIP/SCAD#0"
SKP AR NE "ADA/AR,AD/CRY A#0,SKIP/AD CRY0"
SKP ARX2 "ADB/AR*4,AD/B,SKIP/ADX0"
SKP ARX NE "ADA/ARX,AD/CRY A#0,SKIP/AD CRY0"
SKP BR EQ "ADA EN/0S,ADB/BR,AD/CRY A GE B,SKIP/AD CRY0"
SKP BR EQ -1 "ADA EN/0S,ADB/BR,AD/A+B+1,SKIP/AD CRY0"
SKP ARX+MQ NE "ADA/MQ,AD/CRY A#0,SPEC/AD LONG,SKIP/AD CRY0"
SKP AR EQ "ADA EN/0S,ADB/AR*4,AD/ORCB+1,SKIP/AD CRY0"
.TOC "MACROS -- CRY0 GENERATORS"
NO CRY "AD/SETCA"
TEST AR "ADA/AR,AD/CRY A#0"
TEST ARX "ADA/ARX,AD/CRY A#0"
TEST ARX.AR*4 "ADA/ARX,ADB/AR*4,AD/CRY A.B#0"
TEST AR.AC0 "FMADR/AC0,ADB/FM,ADA/AR,AD/CRY A.B#0"
TEST AR.BR "ADB/BR,ADA/AR,AD/CRY A.B#0"
TEST AR.MSK "MSK,ADB/FM,ADA/AR,AD/CRY A.B#0"
TEST BRL "ADA EN/0S,ADB/BR,AD/ORCB+1,GEN CRY18"
.TOC "MACROS -- SUBROUTINE CALL AND RETURNS"
CALL "SPEC/CALL"
CALL.M "MEM/ARL IND,CALL/CALL"
CALL.S "SPEC/ARL IND,CALL/CALL"
CALL.C "COND/ARL IND,CALL/CALL"
RETURN0 "DISP/RETURN,J/0"
RETURN1 "DISP/RETURN,J/1"
RETURN2 "DISP/RETURN,J/2"
RETURN3 "DISP/RETURN,J/3"
RETURN4 "DISP/RETURN,J/4"
RETURN5 "DISP/RETURN,J/5"
RETURN6 "DISP/RETURN,J/6"
RETURN7 "DISP/RETURN,J/7"
RETURN10 "DISP/RETURN,J/10"
RETURN12 "DISP/RETURN,J/12"
.TOC "MACROS -- DISPATCHES"
IR DISP "DISP/DRAM J"
B DISP "DISP/DRAM B"
EA MOD DISP "DISP/EA MOD"
EA TYPE DISP "DISP/EA TYPE"
NXT INSTR "MEM/MB WAIT,DISP/NICOND,#/0,J/NEXT" ;MUSTN'T CLEAR FE!
.IF/NXT.INSTR.BITES
NXT INSTR AFTER AC1 "J/FINI"
FINISH "J/FINI" ;USE INSTEAD OF NXT INSTR IF FM WRITE
.IF/JPC SUPPORT
NXT INSTR AFTER JPC "J/FINI"
.ENDIF/JPC SUPPORT
.IFNOT/NXT.INSTR.BITES
NXT INSTR AFTER AC1 "NXT INSTR"
FINISH "NXT INSTR" ;USE INSTEAD OF NXT INSTR IF FM WRITE
.IF/JPC SUPPORT
NXT INSTR AFTER JPC "NXT INSTR"
.ENDIF/JPC SUPPORT
.ENDIF/NXT.INSTR.BITES
SH DISP "SH/SHIFT AR!ARX,DISP/SH0-3"
AR0-3 DISP "SH/AR,DISP/SH0-3"
AR18-21 DISP "SH/AR SWAP,DISP/SH0-3"
ARX0-3 DISP "SH/ARX,DISP/SH0-3"
BYTE DISP "DISP/BYTE"
SIGNS DISP "DISP/SIGNS"
SR DISP "DISP/SR"
PF DISP "DISP/PG FAIL"
NORM "DISP/NORM"
NORM AR "ADB/AR*4,AD/B,DISP/NORM"
NORM -AR "ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25,ARX/ADX*.25,DISP/NORM"
.TOC "MACROS -- I/O OPERATIONS ON EBUS"
AR_EBUS "AR/EBUS,TIME/5T"
IO INIT "COND/EBUS CTL,EBUS CTL/IO INIT"
SET DATAO "COND/EBUS CTL,EBUS CTL/DATAO"
SET DATAI "COND/EBUS CTL,EBUS CTL/DATAI,AD/0S,AR/AD"
REQ EBUS "COND/EBUS CTL,EBUS CTL/REQ EBUS"
REL EBUS "COND/EBUS CTL,EBUS CTL/REL EBUS"
DROP EBUS REQ "COND/EBUS CTL,EBUS CTL/0"
SKP -EBUS GRANT "SKIP/-EBUS GRANT"
SKP -EBUS XFER "SKIP/-EBUS XFER"
SET EBUS DEMAND "COND/EBUS CTL,EBUS CTL/EBUS DEMAND"
CLR EBUS DEMAND "COND/EBUS CTL,EBUS CTL/EBUS NODEMAND"
SKP IO LEGAL "SKIP/IO LEGAL"
SKP PI CYCLE "SKIP/PI CYCLE"
GET ECL EBUS "COND/EBUS CTL,EBUS CTL/GRAB EEBUS"
REL ECL EBUS "COND/EBUS CTL,EBUS CTL/REL EEBUS"
DIAG OUT "COND/DIAG FUNC,ADA/AR,AD/A"
DIAG IN "COND/DIAG FUNC,AR/EBUS"
AR_EBUS REG "DIAG IN,DIAG FUNC/RD EBUS REG"
AR05_SCD ADDR BRK CYC "DIAG IN,DIAG FUNC/537"
AR03-04_SCD TRAP CYC "DIAG IN,DIAG FUNC/530"
DATAO APR "DIAG OUT,DIAG FUNC/DATAO APR"
DATAI APR(L) "DIAG IN,DIAG FUNC/DATAI APR"
CONO APR "DIAG OUT,DIAG FUNC/CONO APR"
CONI APR(L) "DIAG IN,DIAG FUNC/CONI APR(L)"
CONI APR(R) "DIAG IN,DIAG FUNC/CONI APR(R)"
CONO PI "DIAG OUT,DIAG FUNC/CONO PI"
CONI PI(L) "DIAG IN,DIAG FUNC/CONI PI(L)"
CONI PI(R) "DIAG IN,DIAG FUNC/CONI PI(R)"
CONI PI(PAR) "DIAG IN,DIAG FUNC/CONI PI(PAR)"
DATAO PAG(L) "DIAG OUT,DIAG FUNC/DATAO PAG"
DATAI PAG(L) "DIAG IN,DIAG FUNC/DATAI PAG(L)"
CONO PAG "DIAG OUT,DIAG FUNC/CONO PAG"
CONI PAG "DIAG IN,DIAG FUNC/CONI PAG"
AR_SERIAL "AR/ARMM,COND/REG CTL,AR CTL/ARR LOAD"
LD PREV CTXT "COND/DIAG FUNC,DIAG FUNC/LD PCS+CWSX,ADA/PC,AD/A"
AR_TIME BASE "DIAG IN,DIAG FUNC/RD TIME"
RD+CLR TB "SPEC/MTR CTL,AR_TIME BASE"
AR_PERF CNT "DIAG IN,DIAG FUNC/RD PERF CNT"
RD+CLR PA "SPEC/MTR CTL,AR_PERF CNT"
AR_EBOX CNT "DIAG IN,DIAG FUNC/RD EBOX CNT"
RD+CLR E CNT "SPEC/MTR CTL,AR_EBOX CNT"
AR_CACHE CNT "DIAG IN,DIAG FUNC/RD CACHE CNT"
RD+CLR C CNT "SPEC/MTR CTL,AR_CACHE CNT"
AR_INTERVAL "DIAG IN,DIAG FUNC/RD INTRVL"
AR_PERIOD "DIAG IN,DIAG FUNC/RD PERIOD"
CONI MTR "DIAG IN,DIAG FUNC/CONI MTR"
AR_MTR REQ "DIAG IN,DIAG FUNC/RD MTR REQ"
CONO TIM "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO TIM"
CONO MTR "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO MTR"
BLKO TIM(L) "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA LEFT"
BLKO TIM(R) "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA RIGHT"
.TOC "MACROS -- MEMORY ACCESS"
LOAD AR "MEM/LOAD AR"
LOAD ARX "MEM/LOAD ARX"
LOAD IR "COND/LOAD IR"
LOAD AR VIA RPW "MEM/RPW"
EXIT "DISP/DRAM B,MEM/B WRITE,J/ST0"
EXIT DBL "MB WAIT,J/ST2AC" ;"I FETCH,J/DSTAC" WHEN TIMING FIXED
STORE "MEM/WRITE"
B WRITE "DISP/DRAM B,MEM/B WRITE"
I FETCH "VMA/PC+1,MEM/FETCH,FETCH/UNCOND"
REFETCH "VMA/PC,MEM/FETCH,FETCH/UNCOND"
FETCH "MEM/FETCH,FETCH/UNCOND"
FETCH+1 "COND/VMA INC,MEM/FETCH,FETCH/UNCOND"
COMP FETCH "AD/XOR,VMA/PC+1,MEM/FETCH,FETCH/COMP"
SKIP FETCH "ADA/AR,AD/A,VMA/PC+1,MEM/FETCH,FETCH/SKIP"
JUMP FETCH "VMA/PC+1,MEM/FETCH,FETCH/JUMP"
TEST FETCH "VMA/PC+1,MEM/FETCH,FETCH/TEST"
JFCL FETCH "VMA/PC+1,MEM/FETCH,FETCH/JFCL"
CMS FETCH "VMA/PC+1,MEM/FETCH,FETCH/SKIP"
A READ "VMA/PC+1,DISP/DRAM A RD,MEM/A RD,#/0,J/0"
A INDRCT "MEM/A IND,VMA/1"
BYTE READ "MEM/BYTE RD"
BYTE INDRCT "MEM/BYTE IND,VMA/1"
MB WAIT "MEM/MB WAIT"
FIN STORE "FMADR/VMA" ;FINISH STOREING
FIN XFER "FMADR/VMA,ADB/FM,AD/B" ;FINISH XFER WHILE STARTING ANOTHER
AR_MEM "MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B"
ARX_MEM "MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B"
MEM_AR "FMADR/VMA,MEM/MB WAIT"
EPT REF "SPEC/SP MEM CYCLE,SP MEM/EPT"
EPT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/EPT FETCH"
UPT REF "SPEC/SP MEM CYCLE,SP MEM/UPT"
UPT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/UPT FETCH"
PT REF "SPEC/SP MEM CYCLE,SP MEM/PT"
PT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/PT FETCH"
PHYS REF "SPEC/SP MEM CYCLE,SP MEM/UNPAGED"
EXEC REF "SPEC/SP MEM CYCLE,SP MEM/EXEC"
USER REF "SPEC/SP MEM CYCLE,SP MEM/USER"
MAP "MEM/REG FUNC,MREG FNC/MAP"
LOAD EBR "MEM/REG FUNC,MREG FNC/LOAD EBR"
LOAD UBR "MEM/REG FUNC,MREG FNC/LOAD UBR"
READ EBR "MEM/REG FUNC,MREG FNC/READ EBR"
READ UBR "MEM/REG FUNC,MREG FNC/READ UBR"
READ ERA "MEM/REG FUNC,MREG FNC/READ ERA"
SWEEP CACHE "MEM/REG FUNC,MREG FNC/LOAD CCA"
SBUS DIAG "MEM/REG FUNC,MREG FNC/SBUS DIAG"
WR REFILL RAM "MEM/REG FUNC,MREG FNC/WR REFILL RAM"
CLR PT LINE "COND/MBOX CTL,MBOX CTL/CLR PT LINE"
WR PT ENTRY "COND/MBOX CTL,MBOX CTL/PT WR"
PT SEL_INVAL "COND/MBOX CTL,MBOX CTL/PT DIR CLR"
PT SEL_NORMAL "COND/MBOX CTL,MBOX CTL/NORMAL"
.TOC "MACROS -- FLAG CONTROL"
TRAP1 "COND/PCF_#,PC FLAGS/TRAP1"
TRAP2 "COND/PCF_#,PC FLAGS/TRAP2"
TRAP3 "COND/PCF_#,PC FLAGS/TRAP3"
SET FPD "COND/PCF_#,PC FLAGS/FPD"
CLR FPD "SPEC/CLR FPD"
SET AROV "COND/PCF_#,PC FLAGS/AROV"
SET NO DIVIDE "COND/PCF_#,PC FLAGS/DIV CHK"
SET FLOV "COND/PCF_#,PC FLAGS/FLOV"
SET FL NO DIV "COND/PCF_#,PC FLAGS/FDV CHK"
EXP TEST "COND/REG CTL,EXP TST/AR_EXP"
GEN CRY18 "SPEC/GEN CRY18"
INH CRY18 "SPEC/INH CRY18"
AD LONG "SPEC/AD LONG"
AD FLAGS "COND/AD FLAGS"
SET FLAGS_AR "SPEC/FLAG CTL,FLAG CTL/SET FLAGS"
RSTR FLAGS_AR "SPEC/FLAG CTL,FLAG CTL/RSTR FLAGS"
JFCL T "SPEC/FLAG CTL,FLAG CTL/JFCL"
JFCL S "SPEC/FLAG CTL,FLAG CTL/JFCL+LD"
DISMISS "SPEC/FLAG CTL,FLAG CTL/DISMISS"
PORTAL "SPEC/FLAG CTL,FLAG CTL/PORTAL"
HALT "SPEC/FLAG CTL,FLAG CTL/HALT"
SET PI CYCLE "COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE"
SET PC+1 INH "COND/SPEC INSTR,SPEC INSTR/INH PC+1"
CLR INTRPT INH "COND/SPEC INSTR,SPEC INSTR/0"
TAKE INTRPT "SKIP/-MTR REQ,J/MTRINT"
ABORT INSTR "COND/SPEC INSTR,SPEC INSTR/INSTR ABORT"
SET SXCT "COND/SPEC INSTR,SPEC INSTR/SXCT"
SET PXCT "COND/SPEC INSTR,SPEC INSTR/PXCT"
SET HALTED "COND/SPEC INSTR,SPEC INSTR/HALTED"
CONTINUE "COND/SPEC INSTR,SPEC INSTR/CONT"
SET CONS XCT "COND/SPEC INSTR,SPEC INSTR/CONS XCT"
SET IO PF "COND/MBOX CTL,MBOX CTL/SET IO PF ERR"
#OPTIONS "Q400/Q,Q200/Q,Q100/Q,Q40/Q,Q20/Q,Q10/Q,Q4/Q,Q2/Q,Q1/Q"
BAG-BITING NO-OP "FORCE AR-ARX" ;TO FIX GODDAMN TIMING SCREWS
SET MTR PA EN "COND/EBOX STATE,#/225"
CLR MTR PA EN "COND/EBOX STATE,#/025"
CLR ACCOUNT EN "COND/EBOX STATE,#/145"
SET ACCOUNT EN "COND/EBOX STATE,#/105"
SET TRACKS EN "COND/EBOX STATE,#/131"
CLR TRACKS EN "COND/EBOX STATE,#/121"
SET TRK+PA EN "COND/EBOX STATE,#/231"
CLR TRK+PA EN "COND/EBOX STATE,#/021"
.TOC "MACROS -- STATE REGISTER CONTROL"
SR_# "COND/SR_#" ;USED FOR NON-PAGE-FAIL APPLICATIONS
SR_0 "COND/SR_#,#/0"
SR_1 "COND/SR_#,#/1"
SR_BLT(SRC) "COND/SR_#,#/607" ;CONTEXT CONTROLLED BY PXCT 2,1
SR_BLT(DST) "COND/SR_#,#/107" ; BY PXCT 10,4
.IF/EIS
SR_ED(S) "COND/SR_#,#/1"
SR_ED(+D) "COND/SR_#,#/24"
.IF/DECIMAL
SR_DB "COND/SR_#,#/2" ;D2B ANYWHERE
SR_BDF "COND/SR_#,#/3" ;B2D STORING FILLERS
SR_BDD "COND/SR_#,#/6" ;B2D AFTER UPDATING DST PTR
SR_BDT "COND/SR_#,#/10" ;B2D IN TRANSLATION
.ENDIF/DECIMAL
SR_SRC "COND/SR_#,#/11"
SR_DST "COND/SR_#,#/12"
SR_SRC+DST "COND/SR_#,#/13"
SR_DSTF "COND/SR_#,#/14"
.ENDIF/EIS
.IF/MAP
SR_MAP "COND/SR_#,#/15" ;CATCH MAP PAGE FAILURES
.ENDIF/MAP
.IF/LISP
SR_LIST "COND/SR_#,#/16" ;LISP LIST HACKERY
.ENDIF/LISP
SR_JRSTF "COND/SR_#,#/17" ;FOR JRSTF ABORT INSTR BUG
SET SR1 "COND/SR_#,#/64"
SET SR2 "COND/SR_#,#/62"
SET SR3 "COND/SR_#,#/61"
CLR SR2 "COND/SR_#,#/20"
.TOC "DISPATCH RAM MACROS"
.DCODE
;"A FIELD" MACROS
; DECODED TO TELL WHAT TO DO WITH EFFECTIVE ADDRESS
; AND WHETHER TO PREFETCH FROM PC+1
I "A/IMMED"
I-PF "A/IMMED-PF"
W "A/WR-TST"
R "A/READ"
R-PF "A/READ-PF"
RW "A/RD-WR"
.IF/RPW
RPW "A/RD-P-WR"
.IFNOT/RPW
RPW "A/RD-WR"
.ENDIF/RPW
.IF/WRTST
IW "A/WR-TST"
.IFNOT/WRTST
IW "A/IMMED"
.ENDIF/WRTST
;"B FIELD" MACROS
; DECODED BY MOST INSTRUCTIONS TO TELL WHERE TO STORE RESULTS,
; BUT USED BY OTHERS TO HOLD VARIOUS "MODE" INFORMATION
AC "B/AC"
M "B/MEM"
S "B/SELF"
B "B/BOTH"
DBL AC "B/DBL AC"
DBL B "B/DBL BOTH"
FL-AC "B1-2/AC"
FL-MEM "B1-2/MEM"
FL-BOTH "B1-2/BOTH"
TN- "B0/CRY0(1),B1-2/0"
TNE "B0/CRY0(0),B1-2/0"
TNA "B0/CRY0(0),B1-2/0"
TNN "B0/CRY0(1),B1-2/0"
TZ- "B0/CRY0(1),B1-2/1"
TZE "B0/CRY0(0),B1-2/1"
TZA "B0/CRY0(0),B1-2/1"
TZN "B0/CRY0(1),B1-2/1"
TC- "B0/CRY0(1),B1-2/2"
TCE "B0/CRY0(0),B1-2/2"
TCA "B0/CRY0(0),B1-2/2"
TCN "B0/CRY0(1),B1-2/2"
TO- "B0/CRY0(1),B1-2/3"
TOE "B0/CRY0(0),B1-2/3"
TOA "B0/CRY0(0),B1-2/3"
TON "B0/CRY0(1),B1-2/3"
SJC- "B/SJC-"
SJCL "B/SJCL"
SJCE "B/SJCE"
SJCLE "B/SJCLE"
SJCA "B/SJCA"
SJCGE "B/SJCGE"
SJCN "B/SJCN"
SJCG "B/SJCG"
BLKI "B0/CRY0(0),B1-2/2"
BLKO "B0/CRY0(0),B1-2/0"
DATAI "B/6"
DATAO "B/4"
CONI "B/6"
CONO "B/4"
CONSO "B0/CRY0(1),B1-2/1"
CONSZ "B0/CRY0(0),B1-2/1"
.UCODE