Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/dskda3.mac
There are no other files named dskda3.mac in the archive.
;*MAINDEC-10-DSQZA [PART 2]
IFNDEF ONEPRT,<
DECVER==000
MCNVER==3
XLIST
DEFINE NAME (MCNVER,DECVER),<
TITLE KS10 DECSYSTEM 2020 DIAGNOSTICS KS-10 SIMULATOR PART 2, VER MCNVER,DECVER >
LIST
LALL
NAME \MCNVER,\DECVER
XALL
;*KS10 CENTRAL PROCESSOR SIMULATOR
;*COPYRIGHT 1978, 1979
;*DIGITAL EQUIPMENT CORPORATION
;*MARLBORO, MASS. 01752
;*JOHN R. KIRCHOFF
NOSYM
IF2,<PRINTX [STARTING PASS 2]>
>
SUBTTL SIMULATOR PARAMETERS AND DEFINITIONS
; **********************************************************************
SALL
MLON
; **********************************************************************
;*ACCUMULATOR DEFINITIONS
; **********************************************************************
F==0 ;MISC LOGIC FLIP FLOPS
T==1 ;TEMPORARY REGISTERS
T1==2
T2==3
T3==4
S==5 ;STATE REGISTER
AR==6 ;MACHINE REGISTERS
MQ==7
BR==10
AD==11
MB==12
PC==13
MA==14
SC==15
IR==16
P==17 ;PUSH DOWN POINTER
IFNDEF SIMASB,<
OFFSET==400000 ;SIMULATED PROGRAMS ARE IN HIGH SEGMENT>
IFNDEF ONEPRT,<
INTERN XCTF,IRLTCH,ARX,FE,SA,AB,ADX,FMREG,INDONE,SIMBRK,SIMGO,ERR
INTERN IT0,IT1,IT2,ET0S,ET1S,ET2S,FT1,FT2,FT3,FT4,FT5,FT6,FT7
INTERN ST1,ST2,ST3,ST4,ST5,FAT1,FAT2,FAT3,FAT4
INTERN FMT1,FMT2,FDT0,FDT1,FDT2,FDT3,FDT4,FDT5,FDT6,FDT7
INTERN FIXT1,FIXT2,SCT1,SCT2,SRT1,DST1,DST2,DST3,DST4,DST5,DST6
INTERN NRT1,NRT2,NRT3,NRT4,NRT5,NRT6
INTERN DMOVT1,DMVNT1,DMVNT2,DMVNT3
INTERN DFAT1,DFAT2,DFAT3,DFAT4,DFAT5
INTERN DFMT1,DFMT2,DFMT3
INTERN DFDT0,DFDT1,DFDT2,DFDT3,DFDT4,DFDT5,DFDT6,DFDT7,DFDT8
INTERN DFDT9,DFDT10,DFDT11,DFDT12
INTERN DNT1,DNT2,DNT3,DNT4,DNT5,DNT6,DNT7,DNT8,DNT9
INTERN BLTT0,BLTT1,BLTT2,BLTT3,BLTT4,BLTT5,BLTT6,BLTT7,BLTT8,BLTT9
INTERN JFFOT1,MEMST,BYF5
INTERN TTYDI,TTYDO,TTYCO,TTYCI,TTYCNZ,TTYCNO
INTERN APRDI,APRDO,APRCO,APRCI,APRCNZ,APRCNO
INTERN PIDI,PIDO,PICO,PICI,PICNZ,PICNO
INTERN PGDI,PGDO,PGCO,PGCI,PGCNZ,PGCNO
INTERN STATE,TIME,INDONE
EXTERN CPOPJ,INPC,ACS,DDTEX,SWITCH,JOBSYM,JOBSA
EXTERN USR420,USR424,USR425,USR427,USR436
>
DEFINE BITS (FIRST,PREFIX,LIST)<
.FOO.==FIRST
IRP LIST<
PREFIX'LIST==.FOO.
.FOO.==.FOO.+.FOO.
>>
; **********************************************************************
;*CONTROL BIT DEFINITIONS - LEFT HALF BITS
; **********************************************************************
; **********************************************************************
;*CLOCKS
; **********************************************************************
BITS (2,,<PCCLK>)
; **********************************************************************
;*EXECUTION TIME PULSE SWITCHES
; **********************************************************************
BITS (1,ET,<0,1>)
INFTST==4
; **********************************************************************
;*AD ENABLES
; **********************************************************************
BITS (10,AD,<MAGIC,ARRP,ARLP,ARMI,BRRP,BRLP,BRMI
,FMRP,FMLP,FMMI,CR36,ADD,EQV,PL1L,MI1B>)
ADFMPL==ADFMRP+ADFMLP
ADARPL==ADARRP+ADARLP
ADBRPL==ADBRRP+ADBRLP
ADPL1B==ADPL1L+ADCR36
; **********************************************************************
;*CONTROL BIT DEFINITIONS - RIGHT HALF BITS
; **********************************************************************
; **********************************************************************
;*FETCH AND STORE SWITCHES
; **********************************************************************
BITS (1,,<FCE,PSE,FCCACR,SCE,STORE
,SACINH,SACBR,SAC2,PCCHNG>)
FCEPSE==FCE+PSE
FCE2==PSE
FCCACL==FCCACR+PSE
SAIAC0==SACINH+SACBR
; **********************************************************************
;*MQ ENABLES
; **********************************************************************
BITS (1,MQ,<SHR2,SHRT,SHLT,ADEN,CLR>)
; **********************************************************************
;*AUX AR ENABLES
; **********************************************************************
BITS (.FOO.,AR,<SHR2,SHRT,SHLT,CLR>)
; **********************************************************************
;*BR ENABLES
; **********************************************************************
BRAREN==1000
; **********************************************************************
;*AR ENABLES
; **********************************************************************
BITS (2000,AR,<LTAD,RTAD,RARL,LARR,IREN>)
ARFLGS==ARLTAD+ARLARR
ARPCEN==ARRTAD+ARRARL
ARADEN==ARLTAD+ARRTAD
ARSWAP==ARRARL+ARLARR
; **********************************************************************
;*ADDRESS BUS ENABLES
; **********************************************************************
BITS (.FOO.,AB,<PCEN,ABEN,ADEN>)
LNGCYC==40000
ADCLKINH==1
; **********************************************************************
;*CONTROL FF'S
; **********************************************************************
BITS (ABPCEN,AB,<PC,AB,AD>)
CLKINH==1
ABAS==2
DSF2SET==4
DSF2CLR==10
FLAG1==20
FLAG2==40
FLAG3==100
SCP1S==200
SCP1IN==400
MUOF1S==1000
MUOF1C==2000
MUOF2S==4000
MUOF2C==10000
; **********************************************************************
;*SCADDER BITS RIGHT HALF
; **********************************************************************
SAMI22==1
SAPL44==2
SAZERO==3
SAP220==4
SAP110==5
SAM110==6
SAMI42==7
SAMI16==10
SAMI33==11
SAMI32==12
SAMI4==13
SAPL10==14
SAMI43==15
SAPL43==16
SAM100==17
BITS (20,SA,<SCPL,SCMI,ADD,PL1,MSIZ,ARPOS,AREX,EQV,FEEN>)
BITS (.FOO.,SC,<SAEN,AREN,SHRT,SCP1>)
BITS (.FOO.,FE,<SAEN>)
; **********************************************************************
;*SCADDER BITS LEFT HALF
; **********************************************************************
BITS (1,MB,<FMEN,AREN>)
BITS (.FOO.,BR,<ARXEN>)
BITS (.FOO.,ARX,<SR2,SHR,SHL,ADX,CLR>)
BITS (.FOO.,AD,<MSKG,BRP2,MBRE,MBLE>)
ADMBEN==ADMBRE+ADMBLE
; **********************************************************************
;*ADX BITS LEFT HALF
; **********************************************************************
BITS (.FOO.,ADX,<BRM,FM2,FMM,FMP,EQV,ADD>)
MEMREF=FCE!FCEPSE!SCE!FCCACL!FCCACR!FCE2
PAGDLY==^D100
WARNDLY==^D350
; **********************************************************************
;*FLAGS, LEFT HALF OF PC WORD
; **********************************************************************
AROV==400000
CRY0==200000
CRY1==100000
FOV==040000
BIS==020000
USERF==010000
EXIOT==004000
LIP==002000
UOLIP==001000
TN0==400
TN1==200
FXU==000100
DCK==000040
SUBTTL DISPATCH TABLE FOR INSTRUCTIONS
; **********************************************************************
TABLE:
; **********************************************************************
;*FORMAT OF DISPATCH TABLE
;* FETCH CYCLE ENABLES, SWITCHES
;* ET0 ADDRESS,, ET1 ADDRESS
;* ET2 ENABLES AND CLOCKS, ET2 DISPATCH
; **********************************************************************
; **********************************************************************
;*UUO'S
; **********************************************************************
DEFINE UUOMAC <
XWD ET0+ET1,STORE+SACINH
XWD [MONUUO],[XWD ADARPL,0]
XWD 0,ARIREN+ARRTAD
>
IFNDEF SIMASB,<
; **********************************************************************
;*ILLEGAL UUO 0
; **********************************************************************
UUOMAC
; **********************************************************************
;*USER UUO'S 1-37
; **********************************************************************
REPEAT 37,
< XWD ET0+ET1+ADMAGIC,STORE+SACINH+UUOFD
[XWD ADMAGIC,ARIREN+ABADEN+UUO1]
XWD INFTST,0
>
; **********************************************************************
;*MONITOR UUO'S 40-77
; **********************************************************************
REPEAT 40,
< UUOMAC
>
; **********************************************************************
;*UNDEFINED OP CODES 100-107
; **********************************************************************
REPEAT 10,
< UUOMAC
>>
; **********************************************************************
;*DFAD, DFSB 110-111
; **********************************************************************
REPEAT 2,
< XWD ET0+ET1+ADFMPL,FCE2+SAC2+DFAFD+PCCHNG
XWD [XWD ADFMPL,ARADEN+BRAREN+DFA0],[XWD ADBRPL,ARADEN+BRAREN+DFA1]
ARADEN+BRAREN+DFA2
>
; **********************************************************************
;*DFMP 112
; **********************************************************************
XWD ET0+ET1+ADFMPL,FCE2+SAC2+DFMFD+PCCHNG
XWD [XWD ADFMPL,ARADEN+BRAREN+DFM0],[XWD ADBRPL,ARADEN+DFM1]
ARADEN+BRAREN+DFM2
; **********************************************************************
;*DFDV 113
; **********************************************************************
XWD ET0+ET1+ADFMPL,FCE2+SAC2+DFDFD+PCCHNG+SACBR
XWD [XWD ADFMPL,ARADEN+BRAREN+DFD0],[ARADEN+DFD1]
DFD2
; **********************************************************************
;*UNDEFINED OP CODES 114-117
; **********************************************************************
REPEAT 4,
< UUOMAC
>
; **********************************************************************
;*DMOVE,DMOVN 120-121
; **********************************************************************
REPEAT 2,
< SAC2+FCE2+PCCHNG+SRINST
0
DMOV2
>
; **********************************************************************
;*FIX 122
; **********************************************************************
XWD ET0+ET1,FCE+FIXFD
XWD [FIX0],[FIX1]
FIX2
; **********************************************************************
;*UNDEFINED OP CODE 123
; **********************************************************************
UUOMAC
; **********************************************************************
;*DMOVEM 124
; **********************************************************************
XWD ADFMPL,SCE+SACINH+PCCHNG
0
ARADEN+BRAREN
; **********************************************************************
;*DMOVNM 125
; **********************************************************************
XWD ADFMMI+ET0+ET1,SCE+SACINH+PCCHNG+DMVMFD
XWD [XWD ADADD+ADCR36+ADARPL+ADMAGIC,ARADEN+BRAREN+DMVNM0],
[XWD ADFMMI+ADCR36+ADADD,DMVNM1]
DMVNM2
; **********************************************************************
;*FIXR 126
; **********************************************************************
XWD ET0+ET1,FCE+FIXFD
XWD [FIX0],[FIX1]
FIX2
; **********************************************************************
;*FLTR 127
; **********************************************************************
FCE+FLTFD
0
XWD ADARPL,FLT2
; **********************************************************************
;*UFA 130
; **********************************************************************
XWD ADFMPL,FCE+FADFD
0
BRAREN+ARADEN+UFA2
; **********************************************************************
;*DFN 131
; **********************************************************************
XWD ET0+ET1+ADARPL,FCEPSE+SACBR+LNGCYC+DFNFD
XWD [XWD ADFMMI,DFN0],[BRAREN+ARADEN+DFN1]
BRAREN+ARADEN
; **********************************************************************
;*FSC 132
; **********************************************************************
XWD ET0+ADFMPL,FSCFD
XWD [ARADEN+FSC0],0
XWD ADARPL,FSC2
; **********************************************************************
;*IBP 133
; **********************************************************************
BLOCK 3
; **********************************************************************
;*XLDB SECOND PART 134-135
; **********************************************************************
REPEAT 2,
< XWD ET0+ET1,FCE+LDBFD
XWD [LDB0],[XWD ADARPL+ADBRPL,BRAREN+LDB1]
ARADEN+LDB2
>
; **********************************************************************
;*XDPB SECOND PART 136-137
; **********************************************************************
REPEAT 2,
< XWD ADFMPL+ET0+ET1,FCE+SCE+SACINH+DPBFD
XWD [BRAREN+DPB0],[XWD ADARPL+ADBRPL,BRAREN+DPB1]
ARADEN+DPB2
>
; **********************************************************************
;*FADXX 140-147
; **********************************************************************
N==0
REPEAT 10,
< XWD <IFE N-5,<ET0>>+ADFMPL,<IFN N-5,<FCE>>+FADFD
+<IFN N&2,<SCE>>+<IFE N&3-2,<SACINH>>+<IFE N-1,<SAC2>>
XWD [XWD ADFMPL,ARSWAP+FMP0],0
BRAREN+ARADEN+FAD2
N==N+1
>
; **********************************************************************
;*FSBXX 150-157
; **********************************************************************
N==0
REPEAT 10,
< XWD <IFE N-5,<ET0>>+ADARMI+ADCR36+ADADD+ADMAGIC
+ET1,<IFN N-5,<FCE>>+FSBFD+<IFN N&2,<SCE>>+<IFE N&3-2,<SACINH>>
+<IFE N-1,<SAC2>>
XWD [XWD ADARMI+ADCR36+ADADD+ADMAGIC,ARSWAP],
[XWD ADFMPL,ARADEN+FMP0]
BRAREN+ARADEN+FAD2
N==N+1
>
; **********************************************************************
;*FMPXX 160-167
; **********************************************************************
N==0
REPEAT 10,
< XWD <IFE N-5,<ET0>>+ET1+ADFMPL,<IFN N-5,<FCE>>+FMPFD
+<IFN N&2,<SCE>>+<IFE N&3-2,<SACINH>>+<IFE N-1,<SAC2>>
XWD [XWD ADFMPL,ARSWAP+FMP0],[ARADEN+BRAREN+FMP1]
XWD ADARPL,FMP2
N==N+1
>
; **********************************************************************
;*FDVXX 170-177
; **********************************************************************
N==0
REPEAT 10,
< XWD ET1+ADFMPL+<IFE N-5,<ET0>>,<IFE N-1,<SAC2>>+<IFN N-5,<FCE>>+FDVFD
+<IFN N&2,<SCE>>+<IFE N&3-2,<SACINH>>
XWD [XWD ADFMPL,ARSWAP+FMP0],[BRAREN+ARADEN+<IFE N-1,<-1>>+FDV1]
FDV2+<IFE N-1,<-FDV2+FDV2L>>
N==N+1
>
; **********************************************************************
;*MOVES, ALIAS FWT 200-217
; **********************************************************************
N=0
REPEAT 20,
< XWD <IFE N&3-2,<ET0>>+
<IFN N&10,<IFN N&3-2,<ADCR36+ADARMI+ADADD+
ADFMMI>>>+ADFMPL,<IFE N&3,<FCE>>+<IFE N&3-3,<FCEPSE+SAIAC0>>
+<IFE N&3-2,<SCE+SACINH>>
XWD [XWD <IFN N&10,<ADADD+ADMAGIC+ADCR36+ADARMI>>,ARADEN],0
<IFE N&14-4,<ARSWAP>>+<IFE N&14-10,<ARADEN+ADSUB>>+<IFE N&14-14,<FWT>>
N=N+1
>
; **********************************************************************
;*MULTIPLIES 220-227
; **********************************************************************
DEFINE SWCHES
<XWD ET0+ET1+ADFMPL,<IFN N&3-1,<FCE>>+<IFN N&2,<SCE>>
+<IFE N&3-2,<SACINH>>+<IFN N&4,<IFN N&3-2,<SAC2>>>>
N=0
REPEAT 10,
< SWCHES+LNGCYC+MULFD
XWD [BRAREN+MUL0],[<IFE N&4,<IMUL1>>+<IFN N&4,<MUL1>>]
<IFE N&4,<IMUL2>>+<IFN N&4,<MUL2>>
N=N+1
>
; **********************************************************************
;*DIVIDES 230-237
; **********************************************************************
N=0
REPEAT 10,
< SWCHES!<IFN N&3-2,<SAC2>>+DIVFD
XWD [BRAREN+<IFN N&4,<ARADEN+DIV0>>+<IFE N&4,<ARADEN+IDIV0>>]
,[<IFN N&4,<DIV1>>+<IFE N&4,<IDIV1>>]
XWD ADARPL+ADADD,<IFN N&4,<DIV2>>+<IFE N&4,<IDIV2>>
N=N+1
>
; **********************************************************************
;*ASH, ROT, LSH 240-241-242
; **********************************************************************
A0==<ADFMPL+ET0+ET1>B17+SRINST
REPEAT 3,
< A0
XWD [ARADEN+BRAREN+SSHFT0],[SHFT1]
SSHFT2
>
; **********************************************************************
;*JFFO 243
; **********************************************************************
XWD ADFMPL+ET0+ET1,PCCHNG+LNGCYC+JFFOFD
XWD [XWD ADBRPL,ARADEN+BRAREN+JFFO0],[XWD ADARPL,ABPCEN+JFFO1]
XWD INFTST,JFFO2
; **********************************************************************
;*ASHC, ROTC, LSHC 244-245-246
; **********************************************************************
REPEAT 3,
< A0+SAC2
XWD [ARADEN+BRAREN+DSHFT0],[XWD ADFMPL,SHFT1]
DSHFT2
>
; **********************************************************************
;*UNDEFINED OP CODE 247
; **********************************************************************
UUOMAC
; **********************************************************************
;*EXCH 250
; **********************************************************************
XWD ADFMPL,FCEPSE+SACBR
0
BRAREN+ARADEN
; **********************************************************************
;*BLT 251
; **********************************************************************
XWD ADARMI+ADFMPL+ADPL1L+ADADD+ET0+ET1,PCCHNG+BLTFD
XWD [ARADEN+BLT0],[XWD ADADD+ADFMPL,ARRARL+BLT1]
XWD ADARPL+PCCLK,ARPCEN+BRAREN+BLT2
; **********************************************************************
;*AOBJX 252-253
; **********************************************************************
N=0
REPEAT 2,
< XWD ADFMPL+ADPL1B+ADADD,PCCHNG+LNGCYC+AOBJD
0
XWD ADBRPL,BRAREN+ARADEN+AOBJX+N
N=1
>
; **********************************************************************
;*JRST 254
; **********************************************************************
XWD 0,SACINH+PCCHNG+JRSTFD
0
ARPCEN+JRST1
; **********************************************************************
;*JFCL 255
; **********************************************************************
XWD 0,SACINH+PCCHNG+JFCLFD
0
XWD 0,JFCL1
; **********************************************************************
;*XCT 256
; **********************************************************************
XWD INFTST,PCCHNG+SACINH+XCTFD
0
XCT2
; **********************************************************************
;*MAP 257
; **********************************************************************
XWD 0,SCE+PCCHNG
0
ABPCEN+MAP2
; **********************************************************************
;*PUSHJ 260
; **********************************************************************
A0==<ADFMPL+ADPL1B+ADADD>B17+PUSHD
A1==A0+<ET0+ET1>B17+SACBR+STORE
A2==ARADEN+BRAREN
A3==<ADBRPL>B17
A1
XWD [A2+PUSHES],[A3+ABADEN]
XWD PCCLK,ABPCEN+ARFLGS+ARPCEN+BRAREN+PUSHJ1
; **********************************************************************
;*PUSH 261
; **********************************************************************
A1+FCE+ABADEN
XWD [A2+PUSH1],[A3]
ARADEN+BRAREN+PUSH2
A0==FCCACRT+<ADFMPL+ADMI1B+ADADD>B17
A1==BRAREN+ARADEN+POPS+<ADBRPL>B17
; **********************************************************************
;*POP 262
; **********************************************************************
A0+SCE+SACBR+<ET0>B17
XWD [A1],0
BRAREN+ARADEN
; **********************************************************************
;*POPJ 263
; **********************************************************************
A0+PCCHNG
0
A1+ABADEN
; **********************************************************************
;*JSR 264
; **********************************************************************
PCCHNG+SCE+SACINH
0
XWD PCCLK,ARPCEN+ARFLGS+ABPCEN+PCINCL
; **********************************************************************
;*JSP 265
; **********************************************************************
XWD 0,PCCHNG
0
XWD ADBRPL,ARPCEN+ARFLGS+BRAREN
; **********************************************************************
;*JSA 266
; **********************************************************************
XWD ADARPL+ET0,SACBR+SCE+PCCHNG+ABADEN
XWD [XWD ADFMPL+PCCLK,ARLARR+ARPCEN+ABPCEN+PCINCL],0
XWD INFTST,BRAREN+ARADEN
; **********************************************************************
;*JRA 267
; **********************************************************************
XWD ADBRPL,FCCACL+PCCHNG+ABADEN
0
XWD INFTST,0
; **********************************************************************
;*ADD-SUBTRACT 270-277
; **********************************************************************
N=0
REPEAT 10,
< XWD ADADD+ADFMPL+<IFE N&4,<ADARPL>>+<IFN N&4
,<ADARMI+ADCR36>>,<IFE N&3,<FCE>>+<IFN N&2,<FCEPSE>>+
<IFE N&3-2,<SACINH>>
0
ARADEN+ADSUB
N=N+1
>
; **********************************************************************
;*COMPARES, JUMPS AND SKIPS 300-377
; **********************************************************************
N=0
REPEAT 20,
< XWD ADFMPL+ADARMI+ADCR36+ADADD+ET0,SKPFD+ABPCEN+SACINH+
PCCHNG+<IFN N&10,<FCE>>
XWD [ADCLKINH,,0],0
XWD 0,COMP
N=N+1
>
REPEAT 60,
< <<ET0>B17>+PCCHNG+<IFN N&70-40,<SKPFD>>+<IFE N&10,<<ADFMPL>B17>>+<IFN N&10,<ABPCEN+SAIAC0
+<IFE N&70-30,<FCE>>+<IFE N&50-50,<FCEPSE>>+<ADARPL>B17>>
+<IFN N&40,<<ADADD>B17>>+<IFE N&70-50,<<ADCR36+ADMAGIC>B17>>
+<IFE N&70-40,<<ADCR36>B17+AOJD>>
[ADCLKINH,,0],,0
IFN N&10,<XWD 0,ARADEN+SKIPS>
IFE N&10,<XWD ADBRPL,ARADEN+BRAREN+JUMPS>
N=N+1
>
; **********************************************************************
;*BOOLEAN GROUP 400-477
; **********************************************************************
DEFINE CMP (X,LIST,ANS)
< ANS==0
IRP LIST <IFE <X&74>-<LIST*4>,<STOPI
ANS==1>>>
N=0
REPEAT 100,
< CMP (N,<0,5,12,17>,M)
CMP (N,<7,13,15,16>,A6)
CMP (N,<6,11>,A1)
CMP (N,<1,2,3,6,11,15,16>,A2)
CMP (N,<4,7,10,13,14>,A3)
CMP (N,<1,4,5,11,13,16>,A4)
CMP (N,<2,6,7,10,12,15>,A5)
BFLGS==A1*ADEQV+A2*ADARPL+A3*ADARMI+A4*ADFMPL+A5*ADFMMI
XWD BFLGS+A6*ET0,<IFE <N&3>,<<1-M>*FCE>>+<IFN <<N&2>*<1-M>>,<FCEPSE>>+
<IFE N&3-2,<SACINH>>+<IFN N&2,<M*SCE>>+<IFE <N&74>,<BOOL0D>>
XWD [XWD ADARMI,ARADEN],0
ARADEN
N=N+1
>
; **********************************************************************
;*HALF WORDS 500-577
; **********************************************************************
N=0
REPEAT 100,
< M=0
IFE N&33-2,<M=FCEPSE>
IFE N&3-3,<M=FCEPSE+SAIAC0>
XWD <IFE N&3-2,<ADFMPL+ET0>>+<IFE N&72-40,<ADFMLP>>+<IFE N&72,
<ADFMRP>>+<IFN N&3-2,<<IFE <N&44>*<N-43>*<N-47>,<ADARLP>>+
<IFE <N&44-40>*<N-3>*<N-7>,<ADARRP>>>>,<IFE N&3,<FCE>>+M+
<IFE N&3-2,<SACINH+<IFN N&30,<SCE>>>>
XWD [XWD <IFE N&70-40,<ADBRLP>>+<IFE N&70,<ADBRRP>>+
<IFE N&44-40,<ADARRP>>+<IFE N&44,<ADARLP>>,ARADEN+BRAREN],0
<IFE N&44-44,<ARRARL>>+<IFE N&44-4,<ARLARR>>+<IFE N&44,
<ARLTAD>>+<IFE N&44-40,<ARRTAD>>+<IFE N&50-40,<ARLTAD>>+
<IFE N&50,<ARRTAD>>+<IFE N&30-30,<HWTETS+<IFN <N&4*10+N>&40,<2>>>>
N=N+1>
; **********************************************************************
;*TEST GROUP 600-677
; **********************************************************************
N=0
REPEAT 100,
< M=0
IFN N&6,<M=1>
IFE N&60-60,<M=1>
A1=0
IFE N&66-20,<A1=1>
IFE N&66-40,<A1=1>
A0=ADFMPL+M*ADARPL+<IFE N&66-40,<ADEQV>>+A1*ADARMI
XWD <IFN N&1,<ET0>>+M*ET1+A0,<IFN N&10,<FCE>>+<IFE N&60,<SACINH>>
+<IFN N&6,<PCCHNG+ABPCEN>>+<IFE N&3-2,<LNGCYC>>
XWD [XWD A0,ARSWAP+<IFN N&2,<TEST1>>],
[XWD <IFE N&60-20,<ADARMI+ADFMPL>>+<IFE N&60-40,
<ADEQV+ADFMPL+ADARMI>>+<IFE N&60-60,<ADBRMI+ADFMMI+ADEQV
+ADARPL+ADARMI>>+<IFE N&6-4,<PCCLK>>
,BRAREN+<IFN N&2,<TEST+<IFN N&4,<1>>>>]
XWD <IFN N&6,<INFTST>>,ARADEN
N=N+1
>
IFNDEF SIMASB,<
; **********************************************************************
;*IOTS 700-
; **********************************************************************
BLOCK 300
IFN TABLE+3000-.,<PRINTX TABLE LENGTH INCORRECT>
>
SUBTTL DISPATCH TABLE FOR INSTRUCTIONS TWO PART INST'S
; **********************************************************************
BPINC:
N=3
REPEAT 5,
< XWD ADADD+<IFN N&5-5,<ET0+ADARPL+ADCR36+ADBRMI
+ADBRPL+ADMI1B>>,SACINH+<IFN N&4,<PCCHNG>>+<IFN N&5-5,<FCEPSE
+LNGCYC+BPIFD>>+<IFE N&5-5,<FCE+BPNIFD>>
XWD [XWD ADADD,BYTE0],0
BYTE2+<IFE N&4,<2>>
N=N+1
>
BPNINC:
XWD ADADD,SACINH+BPNI2D ;IBP (BYF6(1))
0
BYTE2+2
REPEAT 4,
< XWD ADADD,FCE+SACINH+PCCHNG+BPNIFD
0
BYTE2
>
DMVPT2: XWD ADARPL+ADADD+ADCR36+ADMAGIC+ET0+ET1,STORE+SACINH+DMVEFD
XWD [DMVE0A],[XWD ADFMPL,0]
ARADEN
XWD ADARPL+ADADD+ADCR36+ADMAGIC+ET0+ET1,STORE+SACINH+DMVEFD
XWD [XWD ADADD+ADCR36+ADARPL+ADMAGIC,DMVE0A],[XWD ADFMMI+ADADD+ADCR36,DMVN1A]
ARADEN+DMVN2A
IFNDEF SIMASB,<
MUUO2: XWD ET0,STORE+SACINH
XWD [MUUO02],0
XWD 0,ARPCEN+ARFLGS
MUUO3: ABADEN+PCCHNG+MUO3FD
XWD 0,0
XWD ADARPL,MUUO32
>
SUBTTL DISPATCH SUBROUTINES FROM MAIN TABLE
; **********************************************************************
DEFINE DSYM (A)
< A==.-ETAB
IFG A-777,<PRINTX DISPATCH TABLE OVERFLOW>>
ETAB=.-1
DSYM AOBJX
TRO T,ABPCEN ;AOBJP
SKIPL AD ;AOBJN
TRC T,ABPCEN
POPJ P,
DSYM JRST1
JRST JRST2
DSYM JFCL1
JRST JFCL2
DSYM FWT
JUMPGE AR,CPOPJ
TRO T,ARADEN
DSYM ADSUB
ADSUB1: MOVSI T1,AROV!CRY0!CRY1
AND T1,ADFLGS
TLNE F,ADADD
IOR PC,T1
TLNN F,ADADD
JRST .+3
TLNE T1,AROV
TLO PC,TN1
POPJ P,
DSYM COMP
PUSHJ P,CNDPQR
MOVE T1,CONDQ
IOR T1,CONDP
SKIPE T1
TLO T,PCCLK
MOVEI S,ST1
POPJ P,
DSYM SKIPS
TRNN T3,SACINH
SETOM FMWRSET
PUSHJ P,ADSUB1
PUSHJ P,CNDPQR
MOVE T1,CONDR
IOR T1,CONDP
SKIPE T1
TLO T,PCCLK
MOVEI S,ST1
POPJ P,
DSYM XCT2
TLNE PC,USERF
POPJ P,
TLNN PC,EXIOT
POPJ P,
TLNE IR,(1B11)
SETOM XCTPWR#
TLNE IR,(1B12)
SETOM XCTPRD#
POPJ P,
DSYM JUMPS
PUSHJ P,ADSUB1
PUSHJ P,CNDPQR
MOVE T1,CONDP
IOR T1,CONDR
SKIPN T1
TRO T,ABPCEN
SETOM FMWRSET
MOVEI S,ST1
POPJ P,
DSYM HWTETS
JUMPL AR,HWTET1 ;CHECKS AR0
POPJ P,
TRNN AR,400000 ;CHECKS AR18
POPJ P,
HWTET1: TRNE T,ARLTAD+ARLARR
TROA T,ARRTAD
TRO T,ARLTAD
POPJ P,
DSYM TEST1
SETOM LONGSET
POPJ P,
DSYM TEST
TLO T,PCCLK
SKIPE AD
TLC T,PCCLK
POPJ P,
DSYM PUSH1
SETOM INSYNC
DSYM PUSHES
MOVE T1,ADFLGS ;PUSH,PUSHJ
TLNE T1,CRY0 ;CARRY 0
TRO F,FLAG2
POPJ P,
DSYM PUSHJ1
SETOM PCP1FF
DSYM PUSH2
TRNE F,FLAG2
TLO PC,TN0
POPJ P,
DSYM POPS
MOVE T1,ADFLGS
TLNN T1,CRY0 ;CARRY 0
TLO PC,TN0
POPJ P,
DSYM UUO1
SETOM ARSMR
AOSA MAGIC#
DSYM PCINCL
SETZM PCP1FF
POPJ P,
DSYM MUL0
SETOM MPY
TRO T,MQADEN+ARCLR
TRO T2,SCSAEN
SETZM ARGOLT
MOVEI T1,6
MOVEM T1,SINDEX
PUSHJ P,MPYFCN
JUMPGE AD,SCTC5
JUMPGE AR,SCTC5
TRO F,FLAG3
JRST SCTC5
DSYM IMUL1
SETOM LONGSET
SKIPL AD
TLOA T,ADARPL
TLO T,ADARMI
DSYM MUL1
TRO T,ARSHLT
TRO F,FLAG1
MOVE T1,@INSTPT
TRNE T1,SCE
PUSHJ P,MEMWSS
POPJ P,
DSYM IMUL2
SETOM ARMQEN
JUMPN AD,MUL1A
DSYM MUL2
TLNE AR,(1B0)
TRNN F,FLAG3
POPJ P,
MUL1A: TLO PC,AROV+TN1
POPJ P,
DSYM JFFO0
SKIPE AD
TRO F,FLAG1
TLNN AD,-1
TRO F,FLAG2
JRST FMAC2E
DSYM JFFO1
TRNN F,FLAG1
POPJ P,
SETOM PCP1FF
TLO T,PCCLK
TRNN F,FLAG2
POPJ P,
TRO T,ARLARR
TRO MQ,22
POPJ P,
DSYM JFFO2
SETZM SINDEX
SETOM ARMQEN
TRO T,MQADEN
JFFO2A: PUSHJ P,MQMIXR
TRNE F,FLAG1
SKIPGE MQMIX
JRST JFFO2B
TLO T,ADARPL+ADMAGIC+ADADD+ADCR36
MOVEI S,JFFOT1
POPJ P,
JFFO2B: SETOM FMWRSET
MOVEI S,ST1
POPJ P,
DSYM DIV0
PUSHJ P,FMAC2E
DSYM IDIV0
TRO T2,SCSAEN
SKIPGE @FMREG
TLOA T,ADCR36+ADADD+ADMAGIC+ADARPL
TLOA T,ADARMI
TRO F,FLAG3
POPJ P,
DSYM IDIV1
TRO T,ARCLR
TLO T,ADMAGIC
AOS MAGIC
SETOM LONGSET
IDIV1A: TRO T,MQADEN
MOVEI T1,12
MOVEM T1,SINDEX
POPJ P,
DSYM DIV2
TRO T,MQADEN
TRNN F,FLAG3
JRST .+3
MOVE T1,ADFLGS
TLNE T1,CRY1
SETOM ARMQEN
JRST .+3
DSYM IDIV2
SKIPGE MQ
TRO T,ARADEN
MOVE T1,[POINT 4,IR,12]
MOVEM T1,FMADREN
TRO F,DSF2SET
MOVEI S,DST1
SKIPL BR
TLOA T,ADBRMI+ADCR36
TLO T,ADBRPL
POPJ P,
DSYM DIV1
TRNN F,FLAG3
JRST DIV1A
TLO T,ADCR36+ADADD+ADFMMI
TLO T2,ADMSKG
JRST IDIV1A-1
DIV1A: TLO T,ADFMPL
JRST IDIV1A
DSYM DSHFT0
PUSHJ P,FMAC2E
DSYM SSHFT0
MOVEI T2,SAADD+SAP220+SCAREN
SETOM LONGSET
TRNE AR,1B18
TROA T2,SASCPL
TRO T2,SASCMI+SAPL1
POPJ P,
DSYM SHFT1
MOVEI T2,SAADD+SAP110
SETOM LONGSET
SETZM SHLONG#
SKIPL SA
JRST SHFT1A
TRO T2,SCSAEN
SOSA SHLONG
SHFT1A: SKIPGE SC
TROA T2,SASCPL
TRO T2,SASCMI+SAPL1
POPJ P,
DSYM DSHFT2
TRO T,MQADEN
PUSHJ P,FMACEN
DSYM SSHFT2
MOVS T3,IR
ANDI T3,773000
MOVEI S,SRT1
SETOM LONGSET
SKIPL SA
JRST SHFT2A
CAIN T3,241000
TROA T2,SASCPL+SCSAEN
SHFT2E: TRO T2,SAM110+SCSAEN
POPJ P,
SHFT2A: JUMPL SC,SHFT2B
TRO T2,SASCMI+SAPL1+SAADD+SAZERO
JRST SHFT2C
SHFT2B: CAIE T3,241000
SKIPN SHLONG
TRO T2,SASCPL
SHFT2C: SKIPE SHLONG
CAIN T3,241000
POPJ P,
JRST SHFT2E
DSYM BYTE0
TDO T2,[XWD ADMSKG,SAMSIZ+SAPL1+SAADD]
SKIPGE SA
TROA T,ARADEN
TROA T2,SAARPOS
TRO T2,SAPL44
POPJ P,
DSYM BYTE2
TLO T2,MBAREN
SETOM INRDY
TRO T,MQADEN ;ENTER HERE FOR IBP
SETOM ARPOSEN#
JRST FIX1A
DSYM LDB0
TRO T2,SCSAEN
JUMPE SC,CPOPJ
SETZM SINDEX
JRST DFAT1G
DSYM DPB0
TRO T,MQADEN
SETOM ARMQEN
TRO T2,SCSAEN
JUMPE SC,DPB0A
SETOM ARGOLT
SETZM SINDEX
JRST SCTC5
DPB0A: TLO T,ADARMI+ADBRPL
POPJ P,
DSYM DPB1
TRO T,MQADEN
PUSHJ P,MEMWSS
DSYM LDB1
SETOM ARMQEN
POPJ P,
DSYM DPB2
SETOM ARMQEN
DSYM LDB2
SETZM BYF6#
TLZ PC,BIS
POPJ P,
DSYM DMOV2
TLO T2,ADMBEN
MOVEI S,DMOVT1
TLNE IR,1000
MOVEI S,DMVNT1
JRST DFA2D
DSYM DMVNM1
SETOM LONGSET
DSYM DMVN1A
TRO T,MQADEN
TLO T2,ADMSKG
POPJ P,
DSYM DMVNM2
MOVE T1,ADFLGS
TLNE T1,(1B2)
SETOM ARMQEN
POPJ P,
DSYM DMVN2A
TLZ AD,(1B0)
POPJ P,
DSYM DMVE0A
SETOM INSYNC
DSYM DMVNM0
JRST FMAC2E
IFNDEF SIMASB,<
DSYM TTYFD
LDB T3,[POINT 3,IR,12]
JRST @TTAB1(T3)
DSYM TDISP
LDB T3,[POINT 3,IR,12]
JRST @TTAB2(T3)
DSYM APRFD
LDB T3,[POINT 3,IR,12]
JRST @APRTB1(T3)
DSYM PIFD
LDB T3,[POINT 3,IR,12]
JRST @PITAB1(T3)
DSYM PAGFD
LDB T3,[POINT 3,IR,12]
JRST @PAGTB1(T3)
>
DSYM BLT0
SKIPGE AD17.5#
TRO F,FLAG3
SETOM BLTF1#
POPJ P,
DSYM BLT1
TRO T,ARLARR
TRNE F,FLAG3
TRC T,ARLARR+ARLTAD
POPJ P,
DSYM BLT2
SETZM PCP1FF
SKIPE BLTF1
MOVEI S,BLTT0
POPJ P,
DSYM FLT2
MOVEI S,SCT2
SETZM ARGOLT
JRST FIX1B
DSYM FSC0
TRO T2,SAADD+SAAREX+SASCPL+SCAREN
SKIPGE @FMREG
TRC T2,SASCPL+SASCMI+SAPL1
POPJ P,
DSYM FSC2
TRO T2,SAADD+SAPL1+SAZERO+SASCPL
SKIPL @FMREG
TRC T2,SASCPL+SASCMI
MOVEI S,NRT1
SETOM ARSMR
JRST FIX1B
DSYM DFN0
TDNN AD,[777777777]
TLOA T,ADCR36+ADADD
SOSA ARESAEN ;AR0 _ AR0(0)
TROA F,FLAG3
POPJ P,
TLO T2,ADMSKG
POPJ P,
DSYM DFN1
TRNN F,FLAG3
TLOA T2,ADMSKG
TLOA T,ADBRPL
TLO T,ADBRMI+ADCR36+ADADD
POPJ P,
PUSHJ P,FMAC2E
DSYM FDV1
TRO T2,SAAREX+SAADD+SASCMI
SKIPGE T1,@FMREG
TLOA T,ADADD+ADCR36+ADARMI+ADMAGIC
TROA T2,SAPL1
TRO F,FLAG3
TRNE F,FLAG3
SETOM LONGSET
FDV1B: MOVEI T3,10
MOVEM T3,SINDEX
FDV1A: XOR T1,AR
JUMPGE T1,FIX1A
TRC T2,SASCMI+SASCPL
JRST FIX1A
DSYM FDV2L
TRNE F,FLAG3
TLOA T,ADFMMI+ADADD+ADCR36
TLOA T,ADFMPL
TLO T2,ADMSKG
SETOM LONGSET
DSYM FDV2
TRO T2,SASCMI
MOVEI S,FDT0
TRNN F,FLAG3
TRCA T2,SASCPL+SASCMI
JRST [TDNE AD,[777,,-1]
TRO T,ARADEN
JRST FDV2X]
FDV2X: SETOM BRSMR
JRST FIX1A
DSYM FIX0
TRO T2,SAADD+SAMI33+SASCPL
JUMPGE AR,FIX1A
TRC T2,SASCPL+SASCMI
JRST FIX1A
DSYM FIX1
SETOM LONGSET
TRO T2,SASCMI+SAPL1+SAADD+FESAEN+SAPL10
FIX1B: MOVEI T3,10
MOVEM T3,SINDEX
FIX1A: TRO T2,SCSAEN
POPJ P,
DSYM FIX2
JUMPL SC,FIX2A
SKIPL SA
JRST FIX2B
TLO PC,AROV+TN1
MOVEI S,INDONE
POPJ P,
DFAF: TLNE IR,1000 ;IS IT DFSB ?
TLO T2,ADXFMP+ADXFMM+ADXEQV ;YES, *** ECO 42 ***
PUSHJ P,DFLTF
FADF:
FMPF: SETOM STINH
DSYM FMP0
FMP0A: TRO T2,SAAREX
POPJ P,
DSYM FMP1
TRO T2,SAADD+SASCPL+SAAREX
SKIPGE T1,@FMREG
TRO T2,SAPL1
SETOM MPY
JRST FDV1B
DSYM FMP2
SETOM BRSMR
SETOM ARSMR
SETOM LONGSET
TRO T2,SAMI16+FESAEN
MOVEI S,FMT1
POPJ P,
DSYM UFA2
PUSHJ P,FMAC2E
DSYM FAD2
SETOM BRSMR
TRO T2,SAAREX+SAADD+SAPL1+SASCMI
MOVEI S,FAT1
FAD2A: SETOM LONGSET
TRO T2,FESAEN
MOVE T1,@FMREG
JRST FDV1B
DSYM DFA0
TDO T2,[XWD ADXEQV+ADXBRM+ARXADX,SAADD+SAPL1+SAAREX+SASCMI] ;ECO 42
PUSHJ P,FMAC2E
JRST FAD2A
DSYM DFA1
PUSHJ P,FMACEN
TLO T2,ARXADX
SKIPL T1,SA
TRO T2,SASCMI+SAPL1+SAADD+SAZERO
XOR T1,AR
JUMPGE T1,FIX1A
TRO F,FLAG2
JRST FIX1A
DSYM DFA2
TLO T2,ADMBEN
SKIPL SC
TRO T2,SCSAEN
TRO T2,SAAREX
TRNE F,FLAG2
TRCA T2,SAAREX+SAFEEN
JRST [JUMPL BR,DFA2A
TRO T2,SAEQV+SASCPL+SASCMI
JRST DFA2A]
SKIPL ARX
JRST [TLNE IR,1000
JRST DFA2A
JRST .+2] ;ECO 42
TLNE IR,1000
TRO T2,SAEQV+SAZERO
DFA2A: SKIPL SA
TRZ F,FLAG2
;DFA2C: TLNE IR,1000 ;ECO 42
; TLO T2,ADXFMP+ADXFMM+ADXEQV
MOVEI S,DFAT1
DFA2B: MOVEI T1,7
MOVEM T1,SINDEX
DFA2D: SETOM FCE2W#
POPJ P,
DSYM DFM0
TDO T2,[ARXADX,,SAAREX+SAADD+SASCPL] ;ECO 42
TRO T,MQADEN
SETOM BRSMR
SETOM MPY
JRST DFD0A
DSYM DFM1
PUSHJ P,FMACEN
TRO T2,SASCPL
JUMPL MQ,FIX1A
JRST FDV1A+2
DSYM DFM2
TDO T2,[XWD ADMBEN,SAMI43+FESAEN]
MOVEI S,DFMT1
JRST DFA2B
DSYM DFD0
TDO T2,[XWD ADXEQV+ADXFMP+ADXFMM+ARXADX,
SAAREX+SAADD+SASCMI]
DFD0A: SETOM LONGSET
PUSHJ P,FMAC2E
SKIPL T1,@FMREG
TRO T2,SAPL1
JRST FDV1A
DSYM DFD1
TRO T,MQADEN
TRO T2,SASCPL
SKIPL ARX
TLOA T,ADARPL
TRCA T2,SASCPL+SASCMI
JRST FIX1A
TLO T,ADADD+ADCR36+ADARMI+ADMAGIC
TLO T2,ADXADD+ADXFMP+ADXFMM+ARXADX
TRO F,FLAG3
JRST FIX1A
DSYM DFD2
TDO T2,[XWD ARXADX+ADMBEN,FESAEN]
TRO T,MQADEN
SETOM ARMQEN
MOVEI S,DFDT0
MOVEI T1,11
JRST DFA2B+1
IFNDEF SIMASB,<
DSYM MONUUO
TRO F,MUOF2S
SETOM MCSPEC#
MOVEI T1,424
TLNE PC,USERF
MOVEI T1,USR424
MOVEM T1,MCSADR#
POPJ P,
DSYM MUUO02
SETOM MCSPEC
MOVEI T1,425
TLNE PC,USERF
MOVEI T1,USR425
MOVEM T1,MCSADR
POPJ P,
DSYM MUUO32
HLL PC,AR
TRO F,MUOF1C
MOVEI S,ST1
POPJ P,
DSYM MUOXC2
JRST MUOXC3
>
IFDEF SIMASB,<
DSYM MONUUO
JSR ERR
DSYM MUUO32
JSR ERR
>
DSYM MAP2
HRRZ AR,MA
POPJ P,
SUBTTL DISPATCH SUBROUTINES FROM MAIN TABLE - FETCH ACTIONS
; **********************************************************************
DEFINE ASYM(A)
< A==<.-AUXTAB>B26
IFG .-AUXTAB-37,<PRINTX AUXTAB OVERFLOW>>
AUXTAB: JFCL
ASYM MULFD
TRO T2,SAMI22
ASYM DIVFD
PUSHJ P,DIVF
ASYM MUO3FD
ASYM TCONSX
ASYM SKPFD
ASYM FSBFD
ASYM JFFOFD
ASYM SRINST
SETOM STINH
ASYM BPNI2D
PUSHJ P,BPNIF2
ASYM BPNIFD
PUSHJ P,BPNIF
ASYM BPIFD
TRO T2,SAARPOS+SAPL1+SAMSIZ+SAADD
ASYM LDBFD
ASYM DPBFD
PUSHJ P,LDBF
ASYM FIXFD
PUSHJ P,FIXF
ASYM FLTFD
PUSHJ P,FLTF
ASYM DFNFD
TRO T2,SAAREX+SASCPL+SASCMI+SAEQV
ASYM FSCFD
PUSHJ P,FSCF
ASYM FADFD
PUSHJ P,FADF
ASYM FMPFD
PUSHJ P,FMPF
ASYM FDVFD
PUSHJ P,FDVF
ASYM DFAFD
PUSHJ P,DFAF
ASYM DFMFD
PUSHJ P,DFMF
ASYM DFDFD
PUSHJ P,DFDF
ASYM BLTFD
PUSHJ P,BLTF
ASYM XCTFD
PUSHJ P,XCTFD1
ASYM AOBJD
ASYM PUSHD
ASYM BOOL0D
ASYM AOJD
TLO T2,ADMSKG
ASYM DMVMFD
PUSHJ P,XCTFD1+1
ASYM DMVEFD
PUSHJ P,DMVEA
ASYM UUOFD
PUSHJ P,UUOF
ASYM JFCLFD
PUSHJ P,JFCLF
ASYM JRSTFD
PUSHJ P,JRSTF
PCP1: HRRZM PC,PCP1G#
SKIPN PCP1FF#
AOS PCP1G
POPJ P,
CONDZ1: MOVE T1,PC
LSH T1,-11
AND T1,IR
SETZM CONDZ#
TLNE T1,740
SETOM CONDZ
POPJ P,
JFCL2: TLNE IR,(1B9)
TLZ PC,AROV
TLNE IR,(1B10)
TLZ PC,CRY0
TLNE IR,(1B11)
TLZ PC,CRY1
TLNE IR,(1B12)
TLZ PC,FOV
SKIPN CONDZ
TLO T,INFTST
POPJ P,
JFCLF: PUSHJ P,CONDZ1
SKIPN CONDZ
TROA T,ABPCEN
TLO T,INFTST
POPJ P,
JRSTF: TLNE IR,(1B10+1B11)
JRST .+3
TLO T,INFTST
POPJ P,
SETOM STINH
POPJ P,
JRST2: TLO T,ADBRPL
TRO T,BRAREN
TLNN IR,(1B10+1B11)
POPJ P,
TLNE IR,(1B10)
SETZM RUN#
TLNN IR,(1B11)
JRST JRST3
HLLZ T1,AR
TLNE PC,USERF ;USER MODE
TLOA T1,10000 ;USER CANNOT LEAVE USER MODE
JRST .+3
TLNN PC,EXIOT
TLZ T1,4000 ;USER CANNOT TURN ON USER IOT
TLZ T1,37
HLL PC,T1
SETZM BYF6
TLNE PC,BIS
SETOM BYF6
JRST3: MOVEI S,ST1
POPJ P,
IFNDEF SIMASB,<
MUOXC3: MOVEM 17,MONTMP+17 ;SAVE AC'S
MOVEI 17,MONTMP
BLT 17,MONTMP+16
HRRI PC,.+3 ;SET ACTUAL FLAGS
HLL PC,USR425
JRST 2,(PC)
MOVE 0,USR424
LSH 0,-^D27
CAIN 0,041
JRST MUOXC5 ;INIT UUO
MOVSI 17,ACS ;GET SIMULATED AC'S
BLT 17,17
XCT USR424 ;EXECUTE MONITOR UUO
SKIPA
MUOXC4: AOS USR425
MOVEM 17,ACS+17 ;PUT BACK SIM AC'S
MOVEI 17,ACS
BLT 17,ACS+16
JSP 0,.+1 ;GET ACTUAL FLAGS
HLLM 0,USR425 ;SETUP AS SIM FLAGS
MOVEI 0,0
CALL [SIXBIT /SETUWP/]
JFCL
MOVSI 17,MONTMP
BLT 17,17 ;RESTORE AC'S
POPJ P,
MUOXC5: MOVE 0,@USR425 ;MUUO INIT EXECUTION
MOVEM 0,MUOXC6 ;SETUP ARG'S
AOS USR425
MOVE 0,@USR425
MOVEM 0,MUOXC6+1
MOVSI 17,ACS ;GET SIMULATED AC'S
BLT 17,17
XCT USR424 ;EXECUTE INIT
MUOXC6: 0
0
SKIPA ;ERROR RETURN
AOS USR425 ;NORMAL RETURN
JRST MUOXC4
MONTMP: BLOCK 20
>
DMVEA: TLNE F,ADBRPL
TRO T,ARADEN
POPJ P,
DIVF: TRO T2,SAMI42
TLC T,ADFMPL+ADFMMI
SETOM STINH
POPJ P,
BPNIF: TLO T2,ADMSKG ;BYTE PTR NOT INC FETCH
BPNIF2: TRO T2,SAARPOS
POPJ P,
FIXF: PUSHJ P,FSCF
JRST FMP0A
FLTF: PUSHJ P,FSCF
TRO T2,SAMI4
POPJ P,
FSCF: SETOM STINH
POPJ P,
FDVF: PUSHJ P,FSCF
JRST FMP0A
LDBF: TRO T2,SASCMI+SAPL1+SAADD+SAZERO
JUMPGE SC,CPOPJ
TRO T2,SAM100
POPJ P,
DFMF: PUSHJ P,DFLTF
JRST FMP0A
DFLTF: TLOA T2,ARXCLR
BLTF: PUSHJ P,BLTFDA
SETOM STINH
POPJ P,
BLTFDA: SETOM PCP1FF
JRST DFDF+2
DFDF: PUSHJ P,DFLTF
TDO T2,[XWD ADXFMM+ADXEQV,SAAREX]
SETOM TNCLRI#
POPJ P,
UUOF: SETOM TNCLRI
SETOM XCTF#
MOVEI T1,40
MOVEM T1,MAGIC#
XCTFD1: SETOM XCTF
SETOM TNCLRI
POPJ P,
IFNDEF SIMASB,<
TDATAI: MOVEI S,TTYDI
POPJ P,
TDATAO: MOVEI S,TTYDO
POPJ P,
TCONO: MOVEI S,TTYCO
TRO T,ARLARR
POPJ P,
TCONI: MOVEI S,TTYCI
POPJ P,
TCONSZ: MOVEI S,TTYCNZ
POPJ P,
TCONSO: MOVEI S,TTYCNO
POPJ P,
TDTAI: PUSHJ P,MEMWSS
POPJ P,
TDTAO: POPJ P,
TCNO: POPJ P,
TCNI: JRST TDTAI
TCNSZ:
TCNSO: MOVEI S,ST1
POPJ P,
ADATAI: MOVEI S,APRDI
POPJ P,
ADATAO: MOVEI S,APRDO
POPJ P,
ACONO: MOVEI S,APRCO
TRO T,ARLARR
POPJ P,
ACONI: MOVEI S,APRCI
POPJ P,
ACONSZ: MOVEI S,APRCNZ
POPJ P,
ACONSO: MOVEI S,APRCNO
POPJ P,
PDATAI: MOVEI S,PIDI
POPJ P,
PDATAO: MOVEI S,PIDO
POPJ P,
PCONO: MOVEI S,PICO
TRO T,ARLARR
POPJ P,
PCONI: MOVEI S,PICI
POPJ P,
PCONSZ: MOVEI S,PICNZ
POPJ P,
PCONSO: MOVEI S,PICNO
POPJ P,
GDATAI: MOVEI S,PGDI
POPJ P,
GDATAO: MOVEI S,PGDO
POPJ P,
PGCONO: MOVEI S,PGCO
TRO T,ARLARR
POPJ P,
PGCONI: MOVEI S,PGCI
POPJ P,
GCONSZ: MOVEI S,PGCNZ
POPJ P,
GCONSO: MOVEI S,PGCNO
POPJ P,
>
SUBTTL MASTER CLOCK ROUTINE
; **********************************************************************
SIMGO:
GO: SETOM INFTFF
SETZM INSYNC
SETZM PCP1FF
MOVEI F,ABPC
MOVE PC,INPC
HRRZM PC,PCP1G
SETOM RUN
MOVEI S,INDONE
GO1: SETZM MEMCMP-GO1+.
SETZM MEMCMP-GO1+.
SETZM MEMCMP-GO1+.
SETZM MEMCMP-GO1+.
SETZM MAMAOFF
SETZM MEMDONE
SETZM WARNED
SETZM TIME
SETZM MEMWR
SETZM MEMWRWT
SETZM FMADMA
SETZM XCTF
SETZM DSF2
SETZM TTST#
SETZB IR,BYF5
SETZM BYF6
TLNE PC,BIS
SETOM BYF6
SETZM DFDF1
SETZM SACBRFF
SETZM FCE2ST
SETZM FCE2W
SETZM FMWRSET
SETZM FMSINAC#
SETZM MCSPEC
SETZM MCSADR#
SETZM MEMGOINH#
SETZM BLTF1
SETZM MUUOF1
SETZM MUUOF2
SETZM TRPCYC
SETZM PICYC
SETZM TRPSAT
SETZM PIRDYS
SETZM TRPCSET
SETZM PSINFT
SETZM INSNXT# ;INST FETCH NEXT
SETZB AR,MQ
SETZB BR,AD
SETZB MB,MA
SETZB SC,IR
SETZM ARI08#
MAIN: PUSHJ P,FMVAL
PUSHJ P,ADDER
PUSHJ P,ADXER
PUSHJ P,ABMIXR
PUSHJ P,SCAD
CAIN S,INDONE
PUSHJ P,INDONE
SKIPN IRLTCH
JRST [HLLZ IR,MB
TLZ IR,37
JRST .+1]
HRRZM S,STATE#
SETZB T,INRDYCLR
SETZB T2,INDNCLR
SKIPE INSNXT
TLO T,INFTST
SETZM INSNXT
SETZM FMWRSET
SETZM CLINSET
SETZM ARMQEN
SETZM LONGSET
SETZM ARPOSEN
SETZM BRSMR
SETZM ARSMR
SETZM ARESAEN
SKIPE INFTFF
PUSHJ P,INFTSB
SIMBRK: MOVEI S,ERR+1
SETOM ERR
SKIPE DSF2
JRST MAIN1
SKIPE DFDF1#
PUSHJ P,MAIN2
JRST DISP
MAIN1: MOVE T1,AD
XOR T1,BR
SKIPL T1
TLOA T,ADBRMI+ADCR36+ADADD+ADARPL
TLO T,ADBRPL+ADADD+ADARPL
JRST DISP
MAIN2: MOVE T1,ADX
TLO T2,ADXADD+ADXFMP
LSH T1,10
XOR T1,@FMREG
SKIPL T1
TLOA T,ADADD+ADARPL+ADBRMI+ADCR36
TLOA T,ADADD+ADARPL+ADBRPL
TLC T2,ADXFMP+ADXFMM
POPJ P,
DISP: PUSHJ P,@STATE
MOVEM T2,SCADEN#
PUSHJ P,ARMIXR
PUSHJ P,ARXMXR
PUSHJ P,BRMIXR
PUSHJ P,MQMIXR
PUSHJ P,MBMIXR
PUSHJ P,SCMIXR
SKIPE ARCLK
MOVE AR,ARMIX
MOVE T1,ARXMIX#
SKIPE ARXCLK#
MOVEM T1,ARX#
SKIPE BRCLK
MOVE BR,BRMIX
SKIPE MQCLK#
MOVE MQ,MQMIX
SKIPE MBCLK#
MOVE MB,MBMIX#
SKIPE SCCLK#
MOVE SC,SCMIX#
MOVE T1,SA
MOVE T2,SCADEN
TRNE T2,FESAEN
MOVEM T1,FE#
TRC T,ARFLGS
TRCN T,ARFLGS
TLZ PC,BIS
TLNN PC,BIS
SETZM BYF6
TLNE T,PCCLK
HRR PC,AB
PUSHJ P,PCP1
TRZN F,CLKINH
PUSHJ P,TIMCAL
TLNE T,ADCLKINH
JRST .+3
TRNN T,ABABEN
PUSHJ P,ADCLK
PUSHJ P,ABCLK
SKIPE FMWRSET
PUSHJ P,FMWR
SKIPE CLINSET
TRO F,CLKINH
TRZE F,SCP1S
TROA F,SCP1IN
TRZ F,SCP1IN
SKIPE LONGSET
TROA F,LNGCYC
TRZ F,LNGCYC
TLNE T,INFTST
SETOM INFTFF#
SKIPE FCE2W
PUSHJ P,FCE2SY
SKIPN BRSMR#
JRST .+4
TLNE BR,(1B0)
TLOA BR,377000
TLZ BR,377000
TRZE F,MUOF1S
SETOM MUUOF1#
TRZE F,MUOF1C
SETZM MUUOF1
TRZE F,MUOF2S
SETOM MUUOF2#
TRZE F,MUOF2C
SETZM MUUOF2
SKIPE TRPCSET#
SETOM TRPCYC
SETZM TRPCSET
SKIPE TRPSAT
TLZ PC,TN0+TN1
SKIPE TRPSAT
SETZM TRPCYC
SETZM TRPSAT
JRST MAIN
SUBTTL LOGIC SUBROUTINES
; **********************************************************************
; **********************************************************************
;*ADDER
; **********************************************************************
ADDER: MOVNI AD,1
TLNE F,ADARLP
HLL AD,AR
TLNE F,ADARRP
HRR AD,AR
TLNE F,ADARMI
ANDCM AD,AR
HLLO T1,MB
MOVE T2,SCADFF
TLNE T2,ADMBLE
AND AD,T1
HRRO T1,MB
TLNE T2,ADMBRE
AND AD,T1
TLNN T2,ADMSKG
JRST ADDER1
SETZM T1
HLRZ T3,IR
TRC T3,(DPB)
TRNE T3,774000
TRNN T3,773000
MOVEI T1,1
LDB T3,[POINT 6,AR,11]
LSH T1,(T3)
AND AD,T1
ADDER1: MOVEM AD,AD2#
SETZM ADOVF1#
SKIPGE AD
HLLOM ADOVF1
MOVNI AD,1
TLNE F,ADFMLP
HLL AD,@FMREG#
TLNE F,ADFMRP
HRR AD,@FMREG
TLNE F,ADFMMI
ANDCM AD,@FMREG
HLLO T1,BR
TLNE F,ADBRLP
AND AD,T1
HRRO T1,BR
TLNE F,ADBRRP
AND AD,T1
TLNE F,ADMAGIC
AND AD,MAGIC#
TLNE F,ADBRMI
ANDCM AD,BR
SETZM ADOVF#
SKIPGE AD
HLLOM ADOVF
TLNN T2,ADBRP2
JRST ADDER2
MOVE T1,BR
LSH T1,1
AND AD,T1
JUMPL BR,ADDER2
SETZM ADOVF
ADDER2: MOVEM AD,ADPR#
TLNN F,ADADD+ADEQV
AND AD,AD2
TLNE F,ADEQV
EQV AD,AD2
HRRZ T1,AD2
TLNE F,ADCR36
ADDI T1,1
ADDI T1,(AD)
MOVEM T1,AD4#
HLRZS T1
TLNN F,ADMI1B
ADDI T1,1
TLNE F,ADPL1L
ADDI T1,1
LSHC T1,-1
MOVEM T2,AD17.5#
HLRZ T2,AD
MOVSM T1,ADTEM#
HRL T1,ADOVF
ADD T1,T2
HLRZ T2,AD2
HRL T2,ADOVF1
ADD T1,T2
HRLM T1,AD4
TLNE F,ADADD
HLRZM T1,ADOVF
JFCL 17,.+1
HLLZ T1,AD
ADD T1,ADTEM
ADD T1,AD2
JSR ADFLGS
ADFLGS: 0
MOVE T1,ADFLGS
JOV ADFLGO
MOVE T1,ADOVF1
TLNE F,ADEQV
EQVM T1,ADOVF
TLNN F,ADADD+ADEQV
ANDM T1,ADOVF
TLNE F,ADADD
MOVE AD,AD4
POPJ P,
ADFLGO: TLO T1,AROV
MOVEM T1,ADFLGS
JRST ADFLGS+3
; **********************************************************************
;*ADX
; **********************************************************************
ADXER: MOVE T1,ARX#
MOVEM T1,ADX#
MOVNI T1,1
MOVE T3,SCADFF
TLNE T3,ADXFMP
MOVE T1,@FMREG
TLNE T3,ADXFMM
ANDCM T1,@FMREG
TLNE T3,ADXBRM
ANDCM T1,BR
SKIPL T1
TLZA T1,377000
TLO T1,377000
TLNN T3,ADXFM2
JRST ADXER1
MOVE T2,@FMREG
ASH T2,1
TLNE BR,(1B1)
TRO T2,1
SKIPL T2
TLZA T2,376000
TLO T2,376000
AND T1,T2
ADXER1: SETZM ADXTMP#
MOVE T2,AD2
XOR T2,ADPR
XOR T2,AD4
SKIPGE T2
AOS ADXTMP
MOVE T2,T1
ADD T2,ADX
ADD T2,ADXTMP
XOR T2,ADX
XOR T2,T1
SETZM ADXCR0
TLNE T2,(1B7)
SETOM ADXCR0#
TLNE T3,ADXEQV
EQVM T1,ADX
TLNN T3,ADXEQV+ADXADD
ANDM T1,ADX
TLNN T3,ADXADD
JRST ADXER2
ADD T1,ADXTMP
ADDM T1,ADX
ADXER2: MOVE T1,AD2
TLNE T3,ADXEQV
EQVM T1,ADPR
TLNN T3,ADXEQV+ADXADD
ANDM T1,ADPR
MOVE T1,AD4
TLNE T3,ADXADD
MOVEM T1,ADPR
POPJ P,
; **********************************************************************
;*SHIFTCOUNT ADDER
; **********************************************************************
SCAD: MOVE T3,SCADFF
MOVNI T1,1
TRNE T3,SASCPL
MOVE T1,SC
TRNE T3,SAFEEN
AND T1,FE#
TRNE T3,SASCMI
ANDCM T1,SC
LDB T2,[POINT 6,AR,11]
TRNE T3,SAMSIZ
ANDCM T1,T2
MOVEM T1,SA#
MOVNI T1,1
MOVEI T2,17
AND T2,T3
TRNE T3,17
MOVE T1,SAMAGN-1(T2)
LDB T2,[POINT 6,AR,5]
TRNE T3,SAARPOS
AND T1,T2
TRNE T3,SAAREX
JRST SCAD4
SCAD3: TRNE T3,SAADD
JRST SCAD1
TRNE T3,SAEQV
JRST SCAD2
ANDM T1,SA
POPJ P,
SCAD1: ADDM T1,SA
TRNE T3,SAPL1
AOS SA
POPJ P,
SCAD2: EQVM T1,SA
POPJ P,
SCAD4: LDB T2,[POINT 8,AR,8]
TRZN T2,200
ORCMI T2,177
AND T1,T2
JRST SCAD3
SAMAGN: -22
44
0
220
110
-110
-42
-16
-33
-32
-4
10
-43
43
-100
CNDPQR: MOVE T3,ADFLGS#
TLNE T3,100000 ;CARRY 1
TLC T3,200000 ;COMP CARRY 0
SKIPGE AD
TLC T3,200000
SETZM ADCOND#
TLNE T3,200000
SETOM ADCOND
SETZM IR6#
SETZM IR7#
SETZM IR8#
TLNE IR,(1B6)
SETOM IR6
TLNE IR,(1B7)
SETOM IR7
TLNE IR,(1B8)
SETOM IR8
SETCM T3,IR6 ;COMPUTE COND P
AND T3,IR7
MOVEM T3,CONDP#
SKIPE AD
SETZM CONDP
MOVE T3,IR6
ANDCM T3,IR7
ANDCM T3,IR8
IORM T3,CONDP
MOVE T3,IR6
ANDCM T3,IR8
SKIPN AD
MOVEI T3,0
IORM T3,CONDP
PUSHJ P,CONDQR
MOVEM T1,CONDQ#
SETZM ADCOND
SKIPGE AD
SETOM ADCOND
PUSHJ P,CONDQR
MOVEM T1,CONDR#
POPJ P,
CONDQR: SETCM T3,IR6
AND T3,ADCOND
AND T3,IR8
MOVEM T3,T1
MOVE T3,IR6
ANDCM T3,IR7
ANDCM T3,ADCOND
IORM T3,T1
MOVE T3,IR6
ANDCM T3,ADCOND
SKIPN AD
MOVEI T3,0
IORM T3,T1
POPJ P,
SUBTTL TIME PULSE SUBROUTINES - INSTRUCTION
; **********************************************************************
; **********************************************************************
;*IT0
; **********************************************************************
IT0: SKIPN T3,INRDY#
JFCL ;FIX FOR TRAPPING
CAML T3,TIME#
MOVEM T3,TIME
TLO T2,ADMBRE
SETZM XCTF
LDB T1,[POINT 4,MB,17]
SKIPE T1
TLOA T,ADFMPL+ADADD+ADPL1L
TLO T2,ADMBLE
TRO T,ABADEN
MOVEI T1,^D20
ADDM T1,TIME
MOVE T1,[POINT 4,IR,12]
TLNN MB,37
MOVEM T1,FMADREN
TRO F,DSF2CLR
SETZM STINH
SETZM MPY
SKIPN XCTPACT#
JRST .+3
SETZM XCTPRD
SETZM XCTPWR
SETZM XCTPACT
TLNN PC,TN0+TN1
JRST IT0A ;TN=0
SKIPE TRPCYC#
JRST IT0A
SKIPE PICYC#
JRST IT0A
MOVEI S,IT2
POPJ P,
IT0A: JSP S,CPOPJ
; **********************************************************************
;*IT1
; **********************************************************************
IT1: TRZ F,FLAG1+FLAG2+FLAG3
SETZM MAGIC#
SETZM SACBRFF
TRO T,ARRTAD
SETOM INRDYCLR#
SETOM IRLTCH#
LDB T3,[POINT 9,IR,8]
CAIN T3,254 ;SKIP IF NOT JRST
TRO T,ARLTAD
CAIG T3,137
CAIGE T3,133
SKIPA
JRST IT1BYT
SKIPE BYF6
JRST IT1DMV
IT1BY2: TLNE MB,(1B13)
JRST .+5
SKIPE XCTPRD
SETOM XCTPACT
SKIPE XCTPWR
SETOM XCTPACT
IFDEF SIMASB,<
CAIGE T3,110
JSR ERR >
IMULI T3,3 ;PICKUP DISPATCH TABLE
IFNDEF SIMASB,<
ADDI T3,TABLE >
IFDEF SIMASB,<
ADDI T3,TABLE-330 >
IT1A: MOVEM T3,INSTPT#
SKIPN T1,(T3)
JRST IT1H ;NO ENTRY
IT1G: SKIPE BYF5
JRST .+5
MOVE T3,2(T3)
ANDI T3,777
CAIE T3,SKIPS
PUSHJ P,IT1I
MOVEI T3,SAIAC0
AND T3,T1
CAIN T3,SACBR
SETOM SACBRFF
IT1C: TLNE MB,(1B13)
JRST IT1IND ;INDIRECT CYCLE
IT1B: MOVEI S,FT6 ;MB13 (0) ACTIONS
SETOM INDNCLR#
MOVE T1,@INSTPT
TRNN T1,MEMREF!STORE!PCCHNG
SETOM INSNXT
TRNN T1,MEMREF!STORE!PCCHNG
TRO T,ABPCEN
TLNE MB,37
JRST .+3 ;MB 13-17 NOT = 0
TRNN T1,MEMREF
JRST ETSEL ;ENABLE FETCH CYCLE ACTIONS
IT1D: TRNE T1,MEMREF ;MB13(0) AND MEMREF OR NOT MB14-17 = 0
SKIPA
TLO T,ADARPL ;NOT MEMREF
TRNE T1,FCCACR ;FCCACRT OR FCCACLT
TLOA T,ADFMPL
TRNN T1,FCE!FCEPSE!SCE!FCE2
PUSHJ P,FMACEN ;FM ADR AC EN
TRNE T1,FCCACR
TRNN MB,17
JRST .+3
SETOM LONGSET
TRO T2,SAADD
TRNE T1,FCE
TRNE T1,STORE!PCCHNG
SKIPA
SETOM INSYNC#
TRNE T1,SCE
TRNE T1,FCCACR!FCE!PCCHNG
SKIPA
SETOM INSYNC ;INST FETCH START SET
SETZM SCENACR#
TRNN T1,SCE
JRST .+3
TRNN T1,FCCACR
SETOM SCENACR ;SET FLAG FOR SCE AND NOT FCCACR
TRNN T1,SCE
JRST .+4
TRNE T1,FCCACL
JRST .+2
TRO T,ABABEN
TRNE T1,FCCACR
JRST .+3
TRNE T1,FCE!FCEPSE!FCE2
TRO T,ABABEN
SKIPE SCENACR
SETOM CLINSET
TRNE T1,FCE!FCEPSE
SETOM CLINSET
SKIPN SCENACR
JRST .+3
TRNN T1,FCE
SETOM MEMWR#
TRC T1,FCEPSE
TRCN T1,FCEPSE
SETOM MEMWR
TRC T1,FCCACL
TRCN T1,FCCACL
JRST .+3
TRNE T1,FCEPSE!FCE!FCE2
SETOM MEMREAD#
TRNE T1,FCCACR!FCE
JRST IT1E
TRNN T1,FCE2
JRST IT1E
MOVEI S,FT7
SETOM FCE2ST
JRST IT1F+1
IT1E: SKIPN MEMREAD
SKIPE MEMWR
JRST IT1F
TRNE T1,FCCACR
MOVEI S,FT3
TRC T1,FCCACL
TRCN T1,FCCACL
MOVEI S,FT1
CAIN S,FT3
TRO T,ABADEN
POPJ P,
IT1F: MOVEI S,MEMST
PUSH P,["C"]
POP P,MEMSIN#
TLNN MB,17
POPJ P,
SKIPN MEMWR
POPJ P,
PUSH P,["K"]
POP P,MEMSIN
POPJ P,
IT1H: SKIPE 2(T3)
JRST IT1G
IFNDEF SIMASB,<
LDB S,[POINT 10,IR,9]
CAIN S,1624 ;TTY I/O
JRST TTIO
CAIN S,1601 ;PI
JRST PIIO
CAIN S,1600 ;APR
JRST APRIO
CAIN S,1602 ;PAG
JRST PAGIO
CAIN S,1776
JRST MUOXCT ;MUUO EXECUTION
>
IT1DE: JSR ERR
IT1IND: SKIPE PIRDYS#
JRST PIT1A
MOVEI S,MEMST
PUSH P,["A"]
POP P,MEMSIN
SETOM CLINSET#
TRO T,ABABEN
SETOM MEMREAD#
TLO T,INFTST
SETOM PSINFT#
POPJ P,
IFNDEF SIMASB,<
MUOXCT: MOVEI T3,MUOBLK ;MUUO EXECUTE INSTRUCTION
MOVEM T3,INSTPT
JRST IT1G
MUOBLK: SACINH
0
MUOXC2
>
IT1BYT: SKIPE BYF5#
JRST IT1BY2
SUBI T3,133
IMULI T3,3
SKIPE BYF6
ADDI T3,BPNINC
SKIPN BYF6
ADDI T3,BPINC
JRST IT1A
IT1DMV: CAIG T3,125 ;DMOVNM
CAIGE T3,124 ;DMOVEM
JRST IT1BY2
TRNE T3,1
SKIPA T3,[DMVPT2+3]
MOVEI T3,DMVPT2
JRST IT1A
IT1I: LDB T3,[POINT 3,IR,2]
CAIN T3,7
POPJ P,
TRO T,MQCLR
POPJ P,
; **********************************************************************
;*IT2
; **********************************************************************
IT2: SETOM TRPCSET
SETZM PFF1#
SETOM MCSPEC#
MOVEI T1,420
TLNE PC,USERF
MOVEI T1,USR420
MOVEM T1,MCSADR
LDB T1,[POINT 2,PC,10]
ADDM T1,MCSADR
SETZM INRDY
SETOM PCP1FF
JRST IT1IND
PIT1A: MOVEI S,PIT1
POPJ P,
PIT1: JSR ERR
IFDEF SIMASB,<
USR420: 0
USR427: 0
USR436: 0 >
SUBTTL TIME PULSE SUBROUTINES - FETCH
; **********************************************************************
; **********************************************************************
;*FT1
; **********************************************************************
FT1: TRO T,BRAREN!ARADEN
JSP S,CPOPJ
; **********************************************************************
;*FT2
; **********************************************************************
FT2: TDO T,[XWD ADARPL,ABADEN+ARRARL]
JSP S,CPOPJ
; **********************************************************************
;*FT3
; **********************************************************************
FT3: SKIPE MUUOF1
SKIPE MUUOF2
SKIPA
JRST MUOES3
MOVE T1,@INSTPT
TRNN T1,FCCACR
JRST .+3
TRNN T1,PSE
TRO T,BRAREN
SETOM MEMREAD
TRO T,ABABEN
SETOM CLINSET
TRNN T1,STORE!PCCHNG!SCE
SETOM INSYNC ;INST FETCH START SET
SKIPN MUUOF1
JRST FT3A
SETOM MCSPEC
PUSH P,[430]
POP P,MCSADR
TLNN PC,USERF
JRST FT3A
PUSH P,[USR436]
POP P,MCSADR
FT3A: SKIPE TRPCYC
AOS MCSADR
TRNN T1,SCE
JRST .+3
PUSH P,["B"] ;NEXT CYCLE FT4
SKIPA
PUSH P,["C"] ;NEXT CYCLE FT6
POP P,MEMSIN
MOVEI S,MEMST
POPJ P,
; **********************************************************************
;*FT4
; **********************************************************************
FT4: TDO T,[XWD ADBRPL,ABADEN]
JSP S,CPOPJ
; **********************************************************************
;*FT5
; **********************************************************************
FT5: TRO T,ABABEN
SETOM CLINSET
SETOM MEMWR
PUSH P,["C"]
POP P,MEMSIN ;NEXT CYCLE FT6
MOVE T1,@INSTPT
TRNN PCCHNG
SETOM INSYNC ;INST FETCH START SET
MOVEI S,MEMST
POPJ P,
; **********************************************************************
;*FT6
; **********************************************************************
FT6: PUSHJ P,FMACEN
SETOM CLINCLR#
ETSEL: MOVE T1,@INSTPT
TRNE T1,LNGCYC
SETOM LONGSET#
MOVE T3,T1
TDZ T3,[XWD 3,077777]
IOR T,T3
MOVEI S,ET2S
TLNE T1,ET1
MOVEI S,ET1S
TLNE T1,ET0
MOVEI S,ET0S
TRNE T1,STORE
JRST .+3
SKIPN TNCLRI
SETOM TRPSAT#
TRC T,ARFLGS
TRCN T,ARFLGS
SETOM TRPSAT
LDB T3,[POINT 5,T1,26]
XCT AUXTAB(T3) ;FETCH CYCLE ACTIONS
POPJ P,
; **********************************************************************
;*FT7
; **********************************************************************
FT7: TDO T,[XWD ADADD+ADCR36+ADBRPL,BRAREN]
TLO T2,ADMSKG
SETOM CLINSET
MOVEI S,MEMST
MOVN T3,VERTIM
ADDM T3,TIME
POPJ P,
; **********************************************************************
;*FT8
; **********************************************************************
FT8: PUSHJ P,FMACEN
MOVEI S,FT6
POPJ P,
FMACEN: MOVE T3,[POINT 4,IR,12]
MOVEM T3,FMADREN#
POPJ P,
IFNDEF SIMASB,<
MUOES3: MOVEI T1,MUUO3
MOVEM T1,INSTPT
JRST FT3+4 >
IFDEF SIMASB,<
MUOES3: JSR ERR >
SUBTTL TIME PULSE SUBROUTINES -EXECUTE-
; **********************************************************************
; **********************************************************************
;*ET0
; **********************************************************************
ET0S: MOVE T1,INSTPT
MOVE T3,(T1)
HLRZ T1,1(T1)
MOVE T1,(T1)
MOVEI S,ET2S
TLNE T3,ET1
MOVEI S,ET1S
TRNE T3,STORE
JRST ET0SA
ETPULS: IOR T,T1
TRZ T,777
ANDI T1,777
TRNE T1,777
JRST ETAB(T1)
POPJ P,
ET0SA: MOVEI S,"F"
MOVEM S,MEMSIN
SETOM MEMWR
SETOM CLINSET
MOVEI S,MEMST
TRO T,ABABEN
JRST ETPULS
; **********************************************************************
;*ET1
; **********************************************************************
ET1S: MOVE T1,INSTPT
HRRZ T1,1(T1)
MOVE T1,(T1)
SETOM CLINCLR
MOVE T3,@INSTPT
TRNE T3,STORE
JRST .+3
SKIPN TNCLRI
SETOM TRPSAT
JSP S,ETPULS
; **********************************************************************
;*ET2
; **********************************************************************
ET2S: SETZM MEMGOINH
MOVE T3,@INSTPT
LDB T1,[POINT 4,IR,12]
TRC T3,SAIAC0
TRCE T3,SAIAC0
JRST ET2SA
TRZ T3,SAIAC0
SKIPN T1
TRO T3,SACINH
ET2SA: MOVE T1,INSTPT
MOVE T1,2(T1)
TRNE T3,FCE
TRNN T3,PSE
TRNE T3,SCE+STORE
JRST ET2SB
TRNE T3,SACINH
JRST ET2SC
ET2SB: SKIPN STINH#
MOVEI S,ST1
SKIPA
ET2SC: MOVEI S,INDONE
SKIPE STINH#
JRST ETPULS
TRNN T3,SACINH
SETOM FMWRSET#
JRST ETPULS
SUBTTL TIME PULSE SUBROUTINES -STORE-
; **********************************************************************
; **********************************************************************
;*ST1
; **********************************************************************
ST1A: SKIPE BLTF1#
JRST ST1B
TRNN T1,SAC2
JRST ST5A
JRST ST3A
ST1: SETZM SACBRFF
SKIPE BLTF1
TLO T,PCCLK
HLRZ T1,IR
ANDI T1,777000
CAIN T1,(JSP)
TLO T,INFTST
CAIN T1,(JSR)
TLO T,INFTST
CAIN T1,(PUSHJ)
TLO T,INFTST
CAIN T1,(POPJ)
TLO T,INFTST
CAIN T1,(DMOVE)
TLO T,INFTST
CAIN T1,(MAP)
TLO T,INFTST
CAIE T1,(BLT)
JRST .+3
SKIPN BLTF1
TLO T,INFTST
CAIE T1,(JRST)
JRST .+3
TLNE IR,(1B10+1B11)
TLO T,INFTST
ANDI T1,700000
CAIN T1,700000
JRST ST1C ;I/O
MOVE T1,INSTPT
MOVE T1,2(T1)
ANDI T1,777
CAIN T1,COMP
TLO T,INFTST
CAIN T1,SKIPS
TLO T,INFTST
CAIN T1,JUMPS
TLO T,INFTST
CAIN T1,AOBJX
TLO T,INFTST
CAIN T1,AOBJX+1
TLO T,INFTST
CAIN T1,MUUO32
TLO T,INFTST
ST1D: SKIPE MUUOF1
TRO F,MUOF2C
SKIPE MUUOF2
TRO F,MUOF1S
MOVE T1,@INSTPT
TRNE T1,SAC2
PUSHJ P,FMAC2E
TRC T1,FCE
TRNN T1,FCCACR+FCE
TRNN T1,PSE
TRNE T1,SCE+STORE
SKIPA
JRST ST1A
ST1B: SKIPN STINAC
SOSA CLINSET#
HRROM MA,FMADMA#
TLO T2,MBAREN
JSP S,CPOPJ
; **********************************************************************
;*ST2
; **********************************************************************
ST2: MOVE T1,@INSTPT
SETOM LONGSET
MOVEI S,ST4
SKIPE T3,STINAC#
SETOM FMWRSET#
SETZM STINAC#
MOVEM T3,FMSINAC
JUMPN T3,ST2A
MOVE T3,TIME
ADDI T3,^D100
CAMGE T3,MEMWRWT#
MOVE T3,MEMWRWT
MOVEM T3,TIME
PUSHJ P,WRRST
MOVE T1,@INSTPT
ST2A: SKIPE BLTF1
JRST BLTT1X
SKIPE PFF1
JRST PFX1
HLRZ T3,IR
ANDCM T3,BYF6
TRC T3,(DMOVEM)
TRNN T3,776000
JRST ST2B
SKIPE MUUOF2
JRST ST2C
SKIPE MUUOF1
JRST FT2+1
TRNN T1,SAC2
JRST ST4A
JSP S,CPOPJ
; **********************************************************************
;*ST3
; **********************************************************************
ST3:
ST3A: JSP S,CPOPJ
; **********************************************************************
;*ST4
; **********************************************************************
ST4: SETOM ARMQEN
SETOM FMWRSET
HLRZ T1,IR
ANDI T1,777000
CAIN T1,(DMOVN)
TLZ MQ,(1B0)
TRC T1,110000 ;DFAD
TRNN T1,774000
TLZ MQ,(1B0)
ST4A: JSP S,CPOPJ
; **********************************************************************
;*ST5
; **********************************************************************
ST5: HLRZ T3,IR
TRC T3,(DMOVEM)
TRNN T3,776000
SETZM BYF6
SKIPN BYF6
TLZ PC,BIS
ST5A: MOVEI S,INDONE
POPJ P,
ST2B: TLO T,ADBRPL
TRO T,ABADEN
MOVEI T3,DMVPT2
TLNE IR,(1B8)
MOVEI T3,DMVPT2+3
MOVEM T3,INSTPT
SETOM BYF6
TLO PC,BIS
MOVEI S,FT6
POPJ P,
IFNDEF SIMASB,<
ST2C: MOVEI T3,MUUO2
MOVEM T3,INSTPT
MOVEI S,FT6
POPJ P, >
IFDEF SIMASB,<
ST2C: JSR ERR >
ST1C: LDB T1,[POINT 2,IR,11]
CAIN T1,3 ;CONSX
TLO T,INFTST
JRST ST1D
PFX1: SETZM BYF5
SETZM IRLTCH
MOVE T3,[POINT 4,MB,17]
MOVEM T3,FMADREN
MOVEI S,IT2
POPJ P,
SUBTTL TIME PULSE SUBROUTINES -DIVIDE SUBRTN-
; **********************************************************************
; **********************************************************************
;*DST1
; **********************************************************************
DST1: SETZM MAGIC ;FOR SIMULATOR
TRO T,ARSHLT+MQSHLT
SETOM ARGOLT
JUMPL AD,SCTC5
TRO F,DSF2CLR
JSP S,CPOPJ
; **********************************************************************
;*DST2
; **********************************************************************
DST2: TLO PC,AROV!TN1!DCK
MOVS T1,IR
ANDI T1,770000
CAIN T1,170000
TLO PC,FOV
MOVE T1,@INSTPT
TRNE T1,SCE
PUSHJ P,INFT3
JRST ST5A
; **********************************************************************
;*DST3
; **********************************************************************
DST3: TRO T,MQSHLT
TRO F,DSF2CLR
TLNN IR,(1B1)
JRST DST3A
MOVE T1,@INSTPT
TRNE T1,SCE
PUSHJ P,MEMWSS
DST3A: TRO T,ARADEN
TRNN F,FLAG1
TRO T2,SAZERO+SAPL1+SAADD
TRO T2,SCSAEN+SASCMI
JSP S,CPOPJ
; **********************************************************************
;*DST4
; **********************************************************************
DST4: TRNN MQ,1
TRO T,ARADEN
TRNE F,FLAG3
TLOA T,ADARMI+ADCR36+ADADD+ADMAGIC
TLO T,ADARPL
TRO T2,SCSAEN
JSP S,CPOPJ
; **********************************************************************
;*DST5
; **********************************************************************
DST5: SETOM ARMQEN
TRO T,MQADEN
MOVE T1,BR
TRNE F,FLAG3
SETCA T1,
JUMPL T1,DST5A
TLNE IR,204000
JRST DST5D
DST5E: MOVEI S,NRT1
SETOM LONGSET
TRO T2,SASCPL
TLO T,ADARPL
POPJ P,
DST5D: TLNN IR,(1B1)
JRST DST5F
DST5B: MOVEI S,ST1
DST5C: MOVE T1,@INSTPT
TRNN T1,SACINH
SETOM FMWRSET
POPJ P,
DST5F: TLOA T,ADARPL+ADCR36+ADMAGIC+ADADD
DST5A: TLO T,ADARMI+ADCR36+ADADD+ADMAGIC
JSP S,CPOPJ
; **********************************************************************
;*DST6
; **********************************************************************
DST6: TRO T,ARADEN
TLNE IR,(1B1)
JRST DST5B
TLNE IR,(1B6)
TRC T,ARADEN+ARSHRT+MQCLR
JRST DST5E
FXUSET: SETZM FXUH
SKIPGE SA
SETOM FXUH
POPJ P,
SUBTTL TIME PULSE SUBROUTINES -FLOATING DIVIDE-
; **********************************************************************
; **********************************************************************
;*FDT0
; **********************************************************************
FDT0: TLNN AR,(1B0)
SETOM ARSMR
TLNE AR,(1B0)
SETOM ARI08
TRO T,ARCLR
TLO T,ADARPL
TRO T2,FESAEN
HLRZ T1,IR
TRC T1,(FDVL)
TRNE T1,777000
JRST FDT1A
TRO T,MQADEN
TRNE F,FLAG3
TDNN AD,[777777777]
JRST .+2
TLO T,ADADD
JSP S,CPOPJ
; **********************************************************************
;*FDT1
; **********************************************************************
FDT1: TLO T,ADARPL
TRO T,ARADEN+MQSHLT
FDT1A: TRO F,DSF2SET
JSP S,CPOPJ
; **********************************************************************
;*FDT2
; **********************************************************************
FDT2: TRO T,ARSHRT+MQSHRT
TLNE IR,4000
TROA T2,SAMI33
TRO T2,SAMI32
JSP S,CPOPJ
; **********************************************************************
;*FDT3
; **********************************************************************
FDT3: TRO T2,SCSAEN
TRO T,MQSHLT+ARSHLT
SETOM LONGSET
MOVEI S,FDT4
JUMPL AD,CPOPJ
MOVEI S,DST2
TRO F,DSF2CLR
POPJ P,
; **********************************************************************
;*FDT4
; **********************************************************************
FDT4: TRO T,MQSHLT+ARSHLT
MOVEI S,SCT2
PUSHJ P,FMACEN
SETOM ARGOLT
JUMPL AD,CPOPJ
TRO T2,SCSCP1
TRO F,FLAG1
POPJ P,
; **********************************************************************
;*FDT5
; **********************************************************************
FDT5: TRO T,BRAREN+ARADEN
SETOM FMWRSET
TRO T2,SAAREX+SCSAEN+SASCPL+SAADD
TRNE F,FLAG1
TRO T2,SAPL1
JSP S,CPOPJ
; **********************************************************************
;*FDT6
; **********************************************************************
FDT6: SETOM ARMQEN
PUSHJ P,FMAC2E
SETZM SACBRFF
TLO T,ADARPL
SETOM LONGSET
TRO T2,SASCMI
TRNN F,FLAG3
TRC T2,SASCPL+SASCMI
JSP S,FIX1A
; **********************************************************************
;*FDT7
; **********************************************************************
FDT7: SETOM FMWRSET
MOVEI S,ST5
MOVEI T1,200(SC)
TRNN T1,400
SKIPN AD
TROA T,ARCLR
SETOM ARESAEN
POPJ P,
SUBTTL TIME PULSE SUBROUTINES -FLOATING MULTIPLY-
; **********************************************************************
; **********************************************************************
;*FMT1
; **********************************************************************
FMT1: TRO T2,SCSAEN
TDO T,[XWD ADARPL,ARCLR+MQADEN]
MOVEI S,SCT2
SETZM ARGOLT
JRST MPYFCN
; **********************************************************************
;*FMT2
; **********************************************************************
FMT2: TRO T2,SAPL1+SAADD+SASCPL+SAZERO
SKIPL @FMREG
TRC T2,SASCPL+SASCMI
TRO T,ARSHLT+MQSHLT
FMT2A: TLO T,ADARPL
JSP S,FIX1A
SUBTTL TIME PULSE SUBROUTINES -NORMALIZE-
; **********************************************************************
; **********************************************************************
;*NRT1
; **********************************************************************
NRT1: TRO T2,SCSAEN ;SC SCAD EN
TLO T,ADARPL ;AD AR + EN
PUSHJ P,FXUSET ;SCAD-1(1):AR FXU HOLD SET
SETZM NRRND#
SETZM NRPOS#
SETZM NRNEG#
TLNN IR,(1B6)
JRST .+3
TLNE MQ,(1B8)
SETOM NRRND ;IR06(1)^MQ08(1):NR RND
JUMPL AR,NRT1X ;JUMP IF AR00(1)
TLNE AR,(1B9)
SETOM NRPOS ;AR00(0)^AR09(1):NR POS
MOVE T3,IR
TLC T3,(UFA)
TLCE T3,777000
JRST NRT1X ;NOT UFA
JUMPN AD,.+2 ;JUMP IF 'AD=0
TDNE MQ,[1B7-1]
SETOM NRPOS ;AR00(0)^IR UFA^('AD=0 OR 'MQ08-35=0):NR POS
NRT1X: TLNN AR,(1B9)
SETOM NRNEG ;AR09(0):NR NEG
MOVE T3,IR
TLC T3,(UFA)
TLCN T3,777000
SETOM NRNEG ;IR UFA:NR NEG
NRT1Y: SKIPN NRRND ;NRT1 NORMAL ROUND CHECK
JRST NRT1Z ;NOT ROUND
JUMPL AR,.+3
TLNE AR,(1B9)
JRST NRT1NR ;IR06(1)^MQ08(1)^AR00(0)^AR09(1):NRT1 NORMAL RND
JUMPGE AR,NRT1Z
TLNE AR,(1B9) ;HERE IF AR00(1)
JRST NRT1Z
TDNN MQ,[1B8-1] ;HERE IF AR09(0)
JRST NRT1Z
;IR06(1)^MQ08(1)^AR00(1)^AR09(0)^'MQ09-35=0
NRT1NR: TLO T,ADMAGIC+ADCR36+ADADD
SETOM LONGSET
NRT1Z: TLC IR,070000 ;NR ALL ZEROS CHECK
TLCN IR,070000
JUMPE AD,NRAZRO ;AD00-17=0^AD09-35=0^IR FDVXX:NR ALL ZERO
TDNN MQ,[1B7-1]
JUMPE AD,NRAZRO ;AD00-17=0^AD09-35=0^MQ08-35=0:NR ALL ZERO
SKIPE NRPOS ;NR POS^NR RND:NRT3 COND
SKIPN NRRND
JRST NRT1ZX
NRT13C: MOVEI S,NRT3 ;NRT3 CONDITION
TRO T2,SASCPL+SAADD
POPJ P,
NRT1ZX: SKIPN NRNEG
JRST .+3
TLNE AR,(1B8)
JRST NRT13C ;AR08(1)^NR NEG:NRT3 COND
SKIPN NRPOS ;NR POS^'NR RND:NRT4 COND
JRST NRT12C
SKIPE NRRND
JRST NRT12C
NRT14C: MOVEI S,NRT4 ;NRT4 CONDITION
TRO T2,SASCMI+SAPL1+SAZERO+SAADD
SETOM LONGSET
POPJ P,
NRT12C: MOVEI S,NRT2 ;NRT2, NOTHING ELSE - MUST BE THIS
POPJ P,
NRAZRO: TRO T,MQCLR ;NR ALL ZEROS
MOVE T3,@INSTPT
TRNN T3,SACINH
NRT1I: SETOM FMWRSET ;'SAC INH:FM WR EN
MOVEI S,ST1
POPJ P,
; **********************************************************************
;*NRT2
; **********************************************************************
NRT2: TDO T,[ADARPL,,ARSHLT]
TRO T2,SCSCP1
HLRZ T3,IR
TRC T3,(FDV)
TRNE T3,770000
TRO T,MQSHLT ;'IR FDVXX:MQ SH LT
SETZM NRRND
SETZM NRPOS
SETZM NRNEG
TLNN IR,(1B6)
JRST .+3
TLNE MQ,(1B9)
SETOM NRRND ;IR06(1)^MQ09(1):NR RND
TLNN AR,(1B10)
SETOM NRNEG ;AR10(0):NR NEG
JUMPL AR,.+3
TLNE AR,(1B10)
SETOM NRPOS ;AR00(0)^AR10(1):NR POS
SKIPN NRRND
JRST NRT2X ;NOT ROUND
SKIPE NRPOS
JRST NRT2NR ;NR RND^NR POS:NRT2 NORMAL RND
JUMPGE AR,NRT2X
TLNE AR,(1B10) ;HERE IF AR00(1)
JRST NRT2X
TDNN MQ,[1B9-1] ;HERE IF AR10(0)
JRST NRT2X
;NR RND^AR00(1)^AR10(0)^'MQ10-35=0:NRT2 NORM RND
NRT2NR: TLO T,ADMAGIC+ADCR36+ADADD
SETOM LONGSET
NRT2X: SKIPN NRPOS ;NR POS^'NR RND:NRT4 CONDITION
JRST NRT2Y
SKIPE NRRND
JRST NRT2Y
NRT24C: JRST NRT14C ;NRT4 CONDITION
NRT2Y: JUMPGE AR,.+3
TLNE AR,(1B10) ;HERE IF AR00(1)
JRST NRT12C ;AR00(1)^AR10(1):NRT2
JUMPL AR,.+3
TLNN AR,(1B10)
JRST NRT12C ;AR00(0)^AR10(0):NRT2
NRT2Z: SKIPN NRPOS
JRST .+3
SKIPE NRRND
JRST NRT13C ;NR POS^NR RND:NRT3 CONDITION
SKIPN NRNEG
JRST .+3
TLNE AR,(1B8)
JRST NRT13C ;AR08(1)^NR NEG:NRT3 CONDITION
NRT2XX: JSR ERR ;SHOULDN'T GET HERE
; **********************************************************************
;*NRT3
; **********************************************************************
NRT3: SETOM LONGSET
TRO T2,SAADD
SKIPGE AR
TROA T2,SASCPL
TRO T2,SASCMI+SAPL1+SAZERO
TDNE AD,[1B8-1]
JRST NRT3A
TRO T,ARSHRT
HLRZ T3,IR
TRC T3,(FDV)
TRNE T3,770000
TRO T,MQSHRT
TROA T2,SCSAEN
NRT3A: TRO T,ARADEN
JSP S,CPOPJ
; **********************************************************************
;*NRT4
; **********************************************************************
NRT4: TRO T2,SAMI33
SETOM ARESAEN
MOVE T1,@INSTPT
TRNE T1,SCE
PUSHJ P,MEMWSS
MOVE T1,SA
ADDI T1,200
TRNN T1,400
JRST NRT4A
SKIPN FXUH#
TLOA PC,AROV!FOV!TN1!FXU
NRT4D: TLO PC,AROV!FOV!TN1
NRT4A: HLRZ T3,IR
TRC T3,(FDVL)
TRNE T3,7000
MOVEI S,ST1
TRNN T3,777000
JRST NRT4B
TRO T,MQSHRT
TRNN T3,7000
MOVEI S,NRT5
JRST DST5C
NRT4B: MOVEI S,FDT5
SETOM SACBRFF#
TRNE F,FLAG3
TLOA T,ADFMMI
TLO T,ADFMPL
POPJ P,
; **********************************************************************
;*NRT5
; **********************************************************************
NRT5: SETOM ARMQEN
SETOM LONGSET
PUSHJ P,FMAC2E
TRO T2,SASCMI+SAPL1+SAMI33+SAADD
JSP S,CPOPJ
; **********************************************************************
;*NRT6
; **********************************************************************
NRT6: SETOM FMWRSET
MOVEI S,ST5
MOVE T1,SA
ADDI T1,200
TRNN T1,400
TDNN MQ,[1B8-1]
TROA T,ARCLR
SETOM ARESAEN
POPJ P,
SUBTTL TIME PULSE SUBROUTINES -DOUBLE NORMALIZE-
; **********************************************************************
DNT5A: TRO T,ARSHRT+MQSHRT
TDO T2,[XWD ARXSHR,SASCPL]
TRZ F,FLAG2
DNT5B: JSP S,FIX1A
; **********************************************************************
;*DNT1
; **********************************************************************
DNT1: SETZM MAGIC#
TRZ F,FLAG3
TRO T2,SCSAEN
TLO T,ADARPL
SKIPN T3,ARX
TLNE AR,377000
JRST DNT1B
TRNN F,FLAG1
JRST DNT1A
DNT1Z: TRO T,ARCLR
JRST NRAZRO
DNT1B: SKIPE ADXCR0
SKIPL SCADFF
JRST DNT1C
DNT1A: JSP S,CPOPJ
; **********************************************************************
;*DNT2
; **********************************************************************
DNT2: TLO T2,ADXBRM+ADXEQV+ARXCLR
TRO T,BRAREN+MQCLR
SETOM ARMQEN
JSP S,CPOPJ
; **********************************************************************
;*DNT3
; **********************************************************************
DNT3: TDO T2,[XWD ARXADX,SASCPL+SAPL43+SAADD]
TRO F,FLAG1
JRST DFAT1J
DNT1C: JUMPGE T3,DNT1G
TLNE T3,(1B9)
TRNE F,FLAG2
SKIPA
JRST DNT1E
TLNE MQ,(1B1)
TDNN MQ,[1B1-1]
JRST DNT1D
DNT1F: TDO T,[XWD ADADD+ADCR36+ADMAGIC,MQCLR]
TDO T2,[XWD ADXFMP+ADXFMM+ADXADD,SASCPL+SAADD]
JSP S,CPOPJ
; **********************************************************************
;*DNT5
; **********************************************************************
DNT5: SKIPL ARX
JRST DNT5A
TDO T,[XWD ADARPL,ARADEN]
TDO T2,[XWD ARXADX,SAPL1+SAZERO+SAADD+SASCMI]
MOVEI S,DNT7
POPJ P,
DNT1E: JSP S,CPOPJ
; **********************************************************************
;*DNT4
; **********************************************************************
DNT4: TDO T2,[XWD ARXSHL,SCSCP1+SASCPL]
TDO T,[XWD ADARPL,ARSHLT+MQSHLT]
TRO F,FLAG2
MOVS T1,IR
TRC T1,112000 ;DFMP
SKIPL T3,ARX
TLC T3,(1B10)
TRNE T1,777000
TLNN T3,(1B10)
JRST DFAT1K
JRST DNT1E
DNT1G: TLNN T3,(1B9)
TRNE F,FLAG2
SKIPA
JRST DNT1E
TLNE MQ,(1B1)
JRST DNT1F
JRST DNT6A
DNT1D: TRO T2,SASCPL+SAADD
JSP S,CPOPJ
; **********************************************************************
;*DNT6
; **********************************************************************
DNT6: TLO T,ADARPL
MOVE T1,ARX
JUMPN AD,.+3
TDNN T1,[1B8-1]
TDO T2,[XWD ARXSHR,SCSAEN]
DNT6A: TRO T2,SAPL1+SAZERO+SASCMI+SAADD
JSP S,CPOPJ
; **********************************************************************
;*DNT7
; **********************************************************************
DNT7: TDO T,[XWD ADBRPL,MQADEN]
TLO T2,BRARXE
SKIPGE ARX
TRO F,FLAG3
JSP S,FIX1A
; **********************************************************************
;*DNT8
; **********************************************************************
DNT8: TRO T2,SASCPL
TRNE F,FLAG3
TRC T2,SASCPL+SASCMI
MOVEI T1,200(SC)
TRNN T1,400
JRST DNT8A
TLO PC,AROV!FOV!TN1
SKIPN FXUH
TLO PC,FXU
DNT8A: TRO T,ARADEN
JSP S,CPOPJ
; **********************************************************************
;*DNT9
; **********************************************************************
DNT9: SETOM ARESAE
JRST NRT1I
SUBTTL TIME PULSE SUBROUTINES -FIX-
; **********************************************************************
FIX2B: SETOM ARSMR
SETOM LONGSET
TRO T2,SAADD+SAPL1+SASCMI+SAZERO
JSP S,CPOPJ
; **********************************************************************
;*FIXT1
; **********************************************************************
FIXT1: TRO T2,SCSAEN
SKIPL SA
JRST NRT1I
FIX2C: TLO T,ADARPL
SKIPGE FE
JRST FIX2E
SETOM ARGOLT
MOVEI S,SCT2
POPJ P,
FIX2E: SETZM ARGOLT
MOVEI S,SCT1
POPJ P,
FIX2A: MOVSI T1,(1B1)
ADD T1,AR
JUMPL T1,FIX2F
TRO T,ARCLR
; **********************************************************************
;*FIXT2
; **********************************************************************
FIXT2: TLNE IR,4000
JRST FIXT2A
FIX2G: JUMPGE AR,NRT1I
TDNN MQ,[1B8-1]
FIXT2A: TLNE MQ,(1B8)
FIXT2B: TRO T,ARADEN
JRST NRT1I
FIX2F: SETOM ARSMR
JRST FIX2C
SUBTTL TIME PULSE SUBROUTINES -DBLE FLOATING ADD/MUL/DIV-
; **********************************************************************
; **********************************************************************
;*DFAT1
; **********************************************************************
DFAT1: TDO T2,[XWD ARXADX,FESAEN]
TRO T,ARADEN+ABPCEN
PUSHJ P,FXUSET
TRNE F,FLAG2
JRST DFAT1C
JUMPGE SC,DFAT1A
TRC SC,300
TRCN SC,300
JRST DFAT1A
TLC T2,ARXADX+ARXCLR
TRC T,ARADEN+ARCLR
TLNE IR,1000
JRST DFAT1B
DFAT1A: TLNE IR,3000
JRST DFAT1C
TRC SC,700
TRCE SC,700
JRST DFAT1B
DFAT1G: TLO T,ADARPL
SETZM ARGOLT
MOVEI S,SCT1
POPJ P,
DFAT1D: TLNE IR,1000
JRST DFAT1E
DFAT1H: TRO T2,SAFEEN+SAZERO+SAPL1+SAADD
DFAT1J: TLO T2,ADXADD+ADXFMP+ADXFMM
TLO T,ADADD+ADMAGIC+ADARPL
MOVSI T1,(1B8)
MOVEM T1,MAGIC#
TRZ F,FLAG2
TLO T,INFTST
DFAT1K: MOVEI S,DNT1
POPJ P,
DFAT1E: TLO T,ADADD+ADARMI+ADCR36+ADMAGIC
TLO T2,ADXADD+ADXFMP+ADXFMM
JSP S,CPOPJ
; **********************************************************************
;*DFAT2
; **********************************************************************
DFAT2: TLO T2,ARXADX
TRO T,ARADEN
TRC SC,700
TRCE SC,700
JRST DFAT2A
TRNN F,FLAG2
JRST DFAT1G
JRST DFAT1F
DFAT1C: TRC SC,700
TRCE SC,700
JRST DFAT1D
TLNE IR,3000
JRST DFAT1E
DFAT1F: TLO T,ADBRPL
TLO T2,ADXFMM+ADXEQV
SETOM SACBRFF
JSP S,CPOPJ
; **********************************************************************
;*DFAT3
; **********************************************************************
DFAT3: TRO T,MQADEN
SETOM FMWRSET
TLO T2,ADXBRM+ADXEQV+BRARXE+ARXADX
JSP S,CPOPJ
; **********************************************************************
;*DFAT4
; **********************************************************************
DFAT4: TLO T2,ARXADX
SETOM ARMQEN
TRO T,BRAREN+MQCLR
SETZM SACBRFF
JRST DFAT1G
DFAT2A: TRNE F,FLAG2
JRST DFAT1H
DFAT1B: TLO T,ADARPL+ADBRPL+ADADD
TLO T2,ADXFMP+ADXADD
JSP S,CPOPJ
; **********************************************************************
;*DFAT5
; **********************************************************************
DFAT5: TRO T,ARSHRT+MQSHRT
TDO T2,[XWD ARXSHR,SAFEEN]
JRST DFAT1J
; **********************************************************************
;*DFMT1
; **********************************************************************
DFMT1: TDO T,[XWD ADARPL,ARCLR+MQADEN]
TLO T2,MBAREN
TRO F,FLAG2
SETZM ARGOLT
MOVEI S,SCT1
TRNN MB,1
JRST FIX1A
TLO T,ADADD+ADBRPL
TLO T2,ADXADD+ADXFMP
JRST FIX1A
; **********************************************************************
;*DFMT2
; **********************************************************************
DFMT2: TRZ F,FLAG2
TDO T,[XWD ADARPL,ABPCEN+MQADEN]
PUSHJ P,MPYFCN
MOVEI S,SCT2
JRST FIX1A
; **********************************************************************
;*DFMT3
; **********************************************************************
DFMT3: TRO T,ARSHLT+MQSHLT
TRZ F,FLAG1
TDO T2,[XWD ARXSHL,SCSAEN+SASCPL+SAADD+SAPL1+SAZERO]
PUSHJ P,FXUSET
JRST DFAT1J
; **********************************************************************
;*DFDT0
; **********************************************************************
DFDT0: TLO T2,ADMBEN
JSP S,CPOPJ
; **********************************************************************
;*DFDT1
; **********************************************************************
DFDT1: TRO T,ARADEN+MQSHRT
TLO T2,MBAREN+ARXSHR
SETOM DFDF1
SETOM FMWRSET
JSP S,CPOPJ
; **********************************************************************
;*DFDT2
; **********************************************************************
DFDT2: SETOM ARMQEN
TRO T,BRAREN+MQCLR
TRO T2,SAMI32
SETZM SACBRFF
JSP S,CPOPJ
; **********************************************************************
;*DFDT3
; **********************************************************************
DFDT3: TRO T,ABPCEN+ARSHLT+MQSHLT
TLO T2,ARXSHL
SKIPL ADX
JRST DFDT3A
JSP S,FIX1A
; **********************************************************************
;*DFDT4
; **********************************************************************
DFDT4: TRO T,ARSHLT+MQSHLT
TLO T2,ARXSHL
SETOM PCP1FF
TRO F,FLAG2
SETOM ARGOLT
MOVE T1,ADX
TLNN T1,(1B8)
JRST DFDT4A+1
TROA F,FLAG1+SCP1S
DFDT4A: TRO T2,SCSAEN
MOVEI S,SCT2
POPJ P,
DFDT3A: JSP S,FIX1A
; **********************************************************************
;*DFDT10
; **********************************************************************
DFDT10: TLO PC,AROV!FOV!TN1!DCK
DFD10A: SETZM DFDF1
SETOM TRPSAT
JSP S,CPOPJ
; **********************************************************************
;*DFDT11
; **********************************************************************
DFDT11: TLO T2,ADMBEN
TLO T,INFTST
JSP S,CPOPJ
; **********************************************************************
;*DFDT12
; **********************************************************************
DFDT12: TRO T,ARADEN
SETOM FMWRSET
MOVEI S,ST5
POPJ P,
; **********************************************************************
;*DFDT5
; **********************************************************************
DFDT5: SETOM ARMQEN
TDO T2,[XWD MBAREN+ADMBEN,SAMI42]
SETZM PCP1FF
TRZ F,FLAG2
SETOM TRPSAT
JSP S,CPOPJ
; **********************************************************************
;*DFDT6
; **********************************************************************
DFDT6: TDO T,[XWD ADADD+ADARPL+ADBRPL,ARADEN+MQCLR]
SETOM DFDF1
TLO T2,ADXADD+ADXFMP+MBAREN
MOVE T1,AR
ROT T1,-1
XOR T1,@FMREG
JUMPGE T1,DFDT4A
TLC T2,ADXFMP+ADXFMM
TLC T,ADBRPL+ADBRMI+ADCR36
JRST DFDT4A
; **********************************************************************
;*DFDT7
; **********************************************************************
DFDT7: TRO T,MQSHLT
TDO T2,[XWD ADMBEN,SCSAEN+SAFEEN+SAZERO+SAEQV]
PUSHJ P,FMACEN
SETOM LONGSET
SKIPGE @FMREG
TRC F,FLAG3
JSP S,CPOPJ
; **********************************************************************
;*DFDT8
; **********************************************************************
DFDT8: SETOM INSNXT
PUSHJ P,FXUSET
TDNE MQ,[1B0-1]
JRST DFDT8C
JUMPN AD,DFDT8A
TRO T,ARCLR
JRST NRT1I
DFDT8A: TRNE F,FLAG3
TDOA T,[XWD ADARMI+ADMAGIC+ADADD+ADCR36,ARADEN]
DFDT8D: TLO T2,ADMBEN
MOVEI S,DNT8
POPJ P,
DFDT8C: TRNN F,FLAG3
JRST DFDT8D
SETOM ARMQEN
TLO T,ADARMI+ADMAGIC+ADCR36+ADADD
MOVSI T1,(1B0)
MOVEM T1,MAGIC#
JSP S,CPOPJ
; **********************************************************************
;*DFDT9
; **********************************************************************
DFDT9: TDO T,[XWD ADEQV+ADMAGIC,MQADEN]
SETZM MAGIC#
JRST DFDT8D
SUBTTL TIME PULSE SUBROUTINES -FLT ADD, MISC-
; **********************************************************************
; **********************************************************************
;*FAT1
; **********************************************************************
FAT1: SKIPL T1,SA
TRO T2,SASCMI+SAPL1+SAADD+SAZERO
XOR T1,AR
SKIPGE T1
TRO F,FLAG2
JSP S,FIX1A
; **********************************************************************
;*FAT2
; **********************************************************************
FAT2: SKIPL SC
TRO T2,SCSAEN
TLO T,ADBRPL
TRO T2,SAAREX
TRNN F,FLAG2
JRST FAT2A
TRC T2,SAFEEN+SAAREX
JUMPGE BR,FAT2B
JRST FAT2C
FAT2A: JUMPL AR,FAT2C
TROA T2,SAEQV+SASCPL+SASCMI
FAT2B: TRO T2,SAEQV+SAZERO
FAT2C: JSP S,CPOPJ
; **********************************************************************
;*FAT3
; **********************************************************************
FAT3: TRO T2,FESAEN
SETOM BRSMR
SETZM ARGOLT
MOVEI S,SCT1
TLO T,ADARPL
TRNN F,FLAG2
TRO T,BRAREN
JUMPGE SC,FAT3A
TRC SC,300
TRCE SC,300
JRST [TRO T,ARCLR
JRST FAT3B]
FAT3A: TRNN F,FLAG2
TROA T,ARADEN
SETOM ARSMR
FAT3B: TRC SC,700
TRCN SC,700
POPJ P,
TLO T,ADBRPL+ADADD
SETOM LONGSET
JSP S,CPOPJ
; **********************************************************************
;*FAT4
; **********************************************************************
FAT4: SKIPL T1,AD
TLC T1,(1B8)
TLNE T1,(1B8)
TROA T,ARADEN
TROA T,ARSHRT+MQSHRT
TROA T2,SAADD+SAZERO+SAPL1
SETOM LONGSET
TRO T2,SAFEEN
JRST FMT2A
; **********************************************************************
;*JFFOT1
; **********************************************************************
JFFOT1: TRO T,ARADEN+MQSHLT
JRST JFFO2A
; **********************************************************************
;*SRT1
; **********************************************************************
SRT1: TRO T2,SCSAEN
LDB T1,[POINT 3,IR,8]
MOVE T3,SRTAB(T1)
MOVEM T3,SINDEX
HRRE T3,BR
HLLES T3
SETCAM T3,ARGOLT
MOVEI S,SCT2
SKIPN ARGOLT
MOVEI S,SCT1
SKIPN SA
JRST ST5A
TLO T,ADARPL
POPJ P,
SRTAB: 4 ;ASH
1 ;ROT
0 ;LSH
.-. ;(JFFO)
5 ;ASHC
2 ;ROTC
3 ;LSHC
FMAC2E: MOVSI T3,(1B12)
ADD T3,IR
MOVEM T3,ACPL2#
MOVE T3,[POINT 4,ACPL2,12]
MOVEM T3,FMADREN
POPJ P,
; **********************************************************************
;*DMOVT1
; **********************************************************************
DMOVT1: TRO T,ABPCEN+MQADEN
JRST JFFO2B
; **********************************************************************
;*DMVNT1
; **********************************************************************
DMVNT1: TDO T,[XWD ADARMI+ADCR36+ADADD+ADMAGIC,ABPCEN
+BRAREN+ARADEN]
SETOM LONGSET
JSP S,CPOPJ
; **********************************************************************
;*DMVNT2
; **********************************************************************
DMVNT2: TDO T,[XWD ADBRMI+INFTST,MQADEN]
MOVE T1,ADFLGS
TLNE T1,(1B2)
TLOA T,ADADD+ADCR36
JRST .+2
TLO T2,ADMSKG
JSP S,CPOPJ
; **********************************************************************
;*DMVNT3
; **********************************************************************
DMVNT3: TRO T,ARADEN
JRST JFFO2B
SUBTTL SHIFT SUBROUTINE
; **********************************************************************
; **********************************************************************
;*SCT1
; **********************************************************************
SCT1: TRO T2,SCSHRT
TRNN SC,1
JRST SCTC
TRO T,ARSHRT
HLRZ T1,IR
TRC T1,(ILDB)
TRNE T1,776000
TRO T,MQSHRT
CAMGE IR,[FIX]
TLO T2,ARXSHR
SCTC: TRC SC,37
TRCE SC,37
JRST [SKIPE MPY#
PUSHJ P,MPYFCN
JRST SCTC1]
SKIPE MPY
TRNE F,FLAG2
JRST .+3
TLO T,ADARPL
SETOM LONGSET
MOVE T3,SCADFF
TRNE MQ,2
TLNN T3,ADBRP2
JRST SCTC1
TRNN F,FLAG2
PUSHJ P,MPYFN5
SCTC1: MOVEI T3,1(SC)
JUMPE T3,SCTC2
TRNE F,FLAG2
SKIPN INTRQ#
SCTC5: TLOA T,ADARPL
JRST DFD10A
JSP S,CPOPJ
; **********************************************************************
;*SCT2
; **********************************************************************
SCT2: HLRZ T1,IR
TRO T2,SCSCP1
SKIPN ARGOLT#
JRST SCT2R
TRO T,MQSHLT+ARSHLT
CAMGE IR,[FIX]
TLO T2,ARXSHL
TRC T1,(ASH)
TRNE T1,773000
JRST SCTC
SKIPL T1,AR
TLC T1,(1B1)
TLNN T1,(1B1)
TLO PC,AROV+TN1
JRST SCTC
SCT2R: TRO T,ARSHR2
TRC T1,(ILDB)
TRNE T1,776000
TRO T,MQSHR2
CAMGE IR,[FIX]
TLO T2,ARXSR2
JRST SCTC
SCTC2: HLRZ T1,IR
ANDI T1,777000
SKIPN DSF2#
JRST .+3
TRO T2,SAFEEN
MOVEI S,DST3
CAIE T1,112000 ;DFMP
JRST SCTC3
TRNN F,FLAG2
JRST [TRO T2,SAFEEN+SAADD+SAPL1+SAZERO
MOVEI S,DFMT3
JRST SCTC3]
TDO T2,[XWD ADMBEN,SAMI16]
MOVEI S,DFMT2
SETOM LONGSET
SCTC3: CAIE T1,113000 ;DFDV
JRST SCTC4
TRNE F,FLAG2
JRST [SKIPE INTRQ
JRST SCTC4
SETZM DFDF1
MOVEI S,DFDT5
JRST SCTC4]
SETZM DFDF1
MOVEI S,DFDT7
TRO T2,SAFEEN
TRNN F,FLAG1
TRO T2,SAADD+SAZERO+SAPL1
SCTC4: MOVEI T3,776000
AND T3,T1
CAIE T1,(FIX)
CAIN T1,(FIXR)
TLOA T,ADARPL+ADMAGIC+ADCR36+ADADD
JRST .+2
MOVEI S,FIXT2
CAIN T1,(FLTR)
TROA T2,SAMI43
JRST .+4
TLO T,ADARPL
MOVEI S,NRT1
SETOM LONGSET
CAIN T3,110000 ;DFAD
PUSHJ P,DFAT1B
CAIN T3,(IDPB)
TLO T,ADARMI+ADBRPL
ANDI T3,774000
CAIN T3,(ILDB)
JRST .+3
ANDI T3,770000
CAIN T3,(IMUL)
MOVEI S,ET1S
CAIN T3,(ASH)
PUSHJ P,JFFO2B
CAIE T3,(FMP)
JRST .+3
TRO T2,SAFEEN
MOVEI S,FMT2
CAIE T3,(FAD)
CAIN T3,(FSB)
JRST .+3
CAIE T1,(UFA)
POPJ P,
TLO T,ADARPL+ADBRPL+ADADD
MOVEI S,FAT4
SETOM LONGSET
POPJ P,
SUBTTL TIME PULSE SUBROUTINES -INDONE-
; **********************************************************************
INDONE: SKIPE BYF5
JRST INDON1
HLRZ T3,IR
ANDI T3,774000
CAIN T3,134000
SETOM BYF5
CAIN T3,134000
SETOM BYF6
SKIPE BYF6
TLO PC,BIS
CAIN T3,134000
SETOM PSINFT
INDON2: SKIPE BYF5
JRST INDON3
MOVEI T3,^D50
ADDM T3,TIME
SETZM IRLTCH#
INDON3: SKIPN RUN#
JRST DDTEX
MOVE T3,[POINT 4,MB,17]
MOVEM T3,FMADREN
SETOM CLINSET
SETZM MEMWRWT#
SKIPE INFTFF
JRST INFTS2
MOVEI S,IT0
POPJ P,
ERR: 0
HALT
INDON1: SETZM BYF5
MOVE PC,MA ;?BYTE IN MEMORY BUG FIX
JRST INDON2
XLIST
IFNDEF SIMASB,<
IFDEF SIMLST,<LIST>
SUBTTL TIME PULSE SUBROUTINES -I/O-
TTIO: MOVEI T3,TBLK
LDB S,[POINT 3,IR,12]
SKIPN T1,TTAB(S)
JRST IT1DE
MOVEM T1,TBLK
JRST IT1A
TBLK: 0
XWD 0,[TTYFD]
XWD 0,TDISP
TTAB: 0 ;BLKI
XWD ET1,ABPCEN+PCCHNG+SACINH+SCE ;DATAI
0 ;BLKO
XWD ET1,ABPCEN+PCCHNG+SACINH+FCE ;DATAO
XWD ET1,ABPCEN+PCCHNG+SACINH ;CONO
XWD ET1,ABPCEN+PCCHNG+SACINH+SCE ;CONI
XWD ET1,ABPCEN+PCCHNG+SACINH+TCONSX ;CONSZ
XWD ET1,ABPCEN+PCCHNG+SACINH+TCONSX ;CONSO
TTAB1: 0
TDATAI
0
TDATAO
TCONO
TCONI
TCONSZ
TCONSO
TTAB2: 0
TDTAI
0
TDTAO
TCNO
TCNI
TCNSZ
TCNSO
TTYDI: TTCALL 2,AD ;INPUT CHAR
JRST .+1
MOVE T3,TTST
TRO T3,40 ;SET INPUT DONE
TRZ T3,100 ;CLEAR INPUT BUSY
MOVEM T3,TTST
TTYCMN: MOVE AR,AD
TLO T,INFTST
MOVEI S,ET2S
POPJ P,
TTYDO: TTCALL 1,AR ;OUTPUT CHAR
MOVE T3,TTST
TRO T3,10 ;SET OUTPUT DONE
TRZ T3,20 ;CLEAR OUTPUT BUSY
MOVEM T3,TTST
JRST TTYCMN
TTYCO: HRRZ T3,AR
TRZ T3,773600
IORM T3,TTST#
LSH AR,-4
TRZ AR,777607
ANDCAM AR,TTST
JRST TTYCMN
TTYCI: MOVE AD,TTST
TTCALL 13,0 ;SKIP IF CHAR WAITING
TRZA AD,100 ;NO CHAR, CLEAR INPUT BUSY
TRO AD,100 ;CHAR, SET INPUT BUSY
MOVEM AD,TTST
JRST TTYCMN
TTYCNZ: MOVE AD,TTST
TTCALL 13,0
TRZA AD,100
TRO AD,100
MOVEM AD,TTST
TRNN AD,(AR)
TLO T,PCCLK
JRST TTYCMN+1
TTYCNO: MOVE AD,TTST
TTCALL 13,0
TRZA AD,100
TRO AD,100
MOVEM AD,TTST
TRNE AD,(AR)
TLO T,PCCLK
MOVEI S,ET2S
POPJ P,
APRIO: MOVEI T3,APRBLK
LDB S,[POINT 3,IR,12]
SKIPN T1,TTAB(S) ;SAME FETCH ACTIONS, SWITCHES
JRST IT1DE ;NO ENTRY
MOVEM T1,APRBLK
JRST IT1A
APRBLK: 0
XWD 0,[APRFD]
XWD 0,TDISP ;SAME ET2 ACTIONS
APRTB1: 0
ADATAI
0
ADATAO
ACONO
ACONI
ACONSZ
ACONSO
PIIO: MOVEI T3,PIBLK
LDB S,[POINT 3,IR,12]
SKIPN T1,TTAB(S) ;SAME FETCH ACTIONS, SWITCHES
JRST IT1DE ;NO ENTRY
MOVEM T1,PIBLK
JRST IT1A
PIBLK: 0
XWD 0,[PIFD]
XWD 0,TDISP ;SAME ET2 ACTIONS
PITAB1: 0
PDATAI
0
PDATAO
PCONO
PCONI
PCONSZ
PCONSO
PAGIO: MOVEI T3,PGBLK
LDB S,[POINT 3,IR,12]
SKIPN T1,TTAB(S) ;SAME FETCH ACTIONS, SWITCHES
JRST IT1DE ;NO ENTRY
MOVEM T1,PGBLK
JRST IT1A
PGBLK: 0
XWD 0,[PAGFD]
XWD 0,TDISP ;SAME ET2 ACTIONS
PAGTB1: 0
GDATAI
0
GDATAO
PGCONO
PGCONI
GCONSZ
GCONSO
APRDI: MOVE AD,SWITCH
JRST TTYCMN
APRDO: MOVEM AR,APRDWD# ;APR DATAO WORD
JRST TTYCMN
APRCO: MOVEM AR,APCOWD# ;APR CONO WORD
JRST TTYCMN
APRCI: MOVE AD,APCIWD# ;APR CONI WORD
JRST TTYCMN
APRCNZ: MOVE AD,APCIWD
TDNN AD,AR
TLO T,PCCLK
JRST TTYCMN+1
APRCNO: MOVE AD,APCIWD
TDNE AD,AR
TLO T,PCCLK
JRST TTYCMN+1
PIDI: JRST TTYCMN
PIDO: MOVEI T2,"!" ;PRINT !
TTCALL 1,T2
MOVE T2,AR
MOVEI T1,^D12
PIDO1: MOVE T3,T2
ROT T3,3
ANDI T3,7
ADDI T3,"0"
TTCALL 1,T3 ;PRINT 12 OCTAL DIGITS
LSH T2,3
SOJG T1,PIDO1
MOVEI T2,15 ;CR
TTCALL 1,T2
MOVEI T2,12 ;LF
TTCALL 1,T2
MOVEI T2,0
JRST TTYCMN
PICO: HRRZM AR,PICOWD# ;PI CONO WORD
JRST TTYCMN
PICI: MOVE AD,PICIWD# ;PI CONI WORD
JRST TTYCMN
PICNZ: MOVE AD,PICIWD
TDNN AD,AR
TLO T,PCCLK
JRST TTYCMN+1
PICNO: MOVE AD,PICIWD
TDNE AD,AR
TLO T,PCCLK
JRST TTYCMN+1
PGDI: MOVE AD,PGDTWD# ;PAG DATA WORD
TLZ AD,400000
TRZ AD,400000
JRST TTYCMN
PGDO: MOVEM AR,PGDTWD ;PAG DATA WORD
JRST TTYCMN
PGCO: MOVEM AR,PGCOWD# ;PAG CONO WORD
JRST TTYCMN
PGCI: MOVE AD,PGCIWD# ;PAG CONI WORD
ADD AD,PGCOWD
JRST TTYCMN
PGCNZ: MOVE AD,PGCIWD
ADD AD,PGCOWD
TRNN AD,(AR)
TLO T,PCCLK
JRST TTYCMN+1
PGCNO: MOVE AD,PGCIWD
ADD AD,PGCOWD
TRNE AD,(AR)
TLO T,PCCLK
JRST TTYCMN+1
>
IFDEF SIMLST,<LIST>
SUBTTL TIME PULSE SUBROUTINES -BLT-
; **********************************************************************
; **********************************************************************
;*BLTT0
; **********************************************************************
BLTT1X: TDOA T,[XWD ADBRPL+ADADD+ADPL1B,ABADEN]
BLTT0: TDO T,[XWD ADBRPL+ADADD,MQADEN]
SETOM LONGSET
TLO T2,ADMSKG
JSP S,CPOPJ
; **********************************************************************
;*BLTT1
; **********************************************************************
BLTT1: TRO T,ARADEN
MOVE T1,ADFLGS
TLNN T1,CRY0
JRST .+4
SETOM TRPSAT
MOVEI S,BLTT8
POPJ P,
SKIPE INTRQ
JRST BLTT7A
SETOM MEMREAD
MOVEI T1,"J"
MOVEM T1,MEMSIN
TRO T,ABABEN
JSP S,CPOPJ
; **********************************************************************
;*BLTT2
; **********************************************************************
BLTT2: TRO T,BRAREN
SETOM CLINSET
MOVEI S,MEMST
POPJ P,
; **********************************************************************
;*BLTT3
; **********************************************************************
BLTT3: TRO T,ABPCEN
JSP S,CPOPJ
; **********************************************************************
;*BLTT4
; **********************************************************************
BLTT4: TRO T,ABABEN
BLTT9A: SETOM CLINSET
MOVEI T1,"E"
MOVEM T1,MEMSIN
SETOM MEMWR
MOVEI S,MEMST
POPJ P,
; **********************************************************************
;*BLTT5
; **********************************************************************
BLTT5: TLO T,ADBRPL
SETOM PFF1
JSP S,CPOPJ
; **********************************************************************
;*BLTT6
; **********************************************************************
BLTT6: TRO T,ARADEN
BLTT7A: JSP S,CPOPJ
; **********************************************************************
;*BLTT7
; **********************************************************************
BLTT7: TRO T,ARPCEN+ARLARR
SETOM FMWRSET
SETOM PCP1FF
SKIPN PFF1
JRST BLTT7B
TLO T,ADMAGIC
SETOM LONGSET
BLTT7B: JSP S,CPOPJ
; **********************************************************************
;*BLTT8
; **********************************************************************
BLTT8: SETOM ARMQEN
TDO T,[XWD ADARPL,ABADEN+MQADEN]
SETZM BLTF1
JSP S,CPOPJ
; **********************************************************************
;*BLTT9
; **********************************************************************
BLTT9: TDO T,[XWD PCCLK,ABPCEN]
SKIPE PFF1
JRST .+3
MOVEI S,ST1
POPJ P,
SETOM ARMQEN
SETOM MCSPEC
MOVEI T1,426
TLNE PC,USERF
MOVEI T1,USR427
MOVEM T1,MCSADR
JRST BLTT9A
SUBTTL REGISTER MIXERS, ETC.
; **********************************************************************
; **********************************************************************
;*BR
; **********************************************************************
BRMIXR: SETZM BRMIX
SETOM BRCLK#
TRNN T,BRAREN
AOSA BRCLK
MOVEM AR,BRMIX#
MOVE T1,AR
ROT T1,2
HRRZ T2,STATE
CAIN T2,DNT2
DPB T1,[POINT 1,BRMIX,0]
MOVE T3,SCADEN
TLNN T3,BRARXE
POPJ P,
SETOM BRCLK
MOVE T1,ARX
IORM T1,BRMIX
POPJ P,
; **********************************************************************
;*AB
; **********************************************************************
ABMIXR: MOVE T1,AB
TRNE F,ABPC
MOVE T1,PCP1G
TRNE F,ABAD
HRRZ T1,AD
TRNE F,ABAB
HRRZ T1,AB#
MOVEM T1,AB
POPJ P,
; **********************************************************************
;*FM
; **********************************************************************
FMVAL: SKIPE FMSINAC
SETZM FMADMA
SKIPL T1,FMADMA
LDB T1,FMADREN
MOVEI T1,ACS(T1)
MOVEM T1,FMREG
SETZM FMSINAC
POPJ P,
; **********************************************************************
;*AR
; **********************************************************************
ARMIXR: SETZB T1,ARCLK#
TRNN T,ARADEN!ARSWAP!ARPCEN!ARFLGS!ARIREN
JRST ARMIX1
SETOM ARCLK
TRNE T,ARLTAD
HLL T1,AD
TRNE T,ARRTAD
HRR T1,AD
TRNE T,ARRARL
HLR T1,AR
TRNE T,ARLARR
HRL T1,AR
TRC T,ARFLGS
TRCN T,ARFLGS
HLL T1,PC
TRC T,ARPCEN
TRCN T,ARPCEN
HRR T1,PCP1G
TRNE T,ARIREN
IOR T1,IR
ARMIX1: SKIPE ARSMR#
PUSHJ P,ARMIX6
SKIPE ARESAEN#
PUSHJ P,ARMIX7
TRNE T,ARSHLT
PUSHJ P,ARLT
TRNE T,ARSHRT
PUSHJ P,ARRT1
TRNE T,ARSHR2
PUSHJ P,ARRT2
TRNE T,ARCLR
SETOM ARCLK
SKIPN ARPOSEN
JRST ARMIX5
MOVE T2,SA
MOVE T3,AR
DPB T2,[POINT 6,T3,5]
IOR T1,T3
SETOM ARCLK
ARMIX5: TRNE F,FLAG1
JRST ARMIX2
ARMIX8: SKIPE T2,ARMQEN#
IOR T1,MQ
ARMIX3: SKIPE ARI08
TLO T1,1000
SETZM ARI08
MOVEM T1,ARMIX#
JUMPE T2,CPOPJ
ARMIX4: SETOM ARCLK
POPJ P,
ARMIX7: MOVE T2,SA
ANDI T2,377
TRC T2,200
ROT T2,-11
IOR T1,T2
MOVE T2,AR
HLRZ T3,IR
TRC T3,(DFN)
TRNN T3,777000
TLC T2,(1B0)
SKIPA
ARMIX6: SKIPL T2,AR
TLZA T2,377000
TLO T2,377000
IOR T1,T2
SETOM ARCLK
POPJ P,
ARMIX2: HLRZ T3,IR
TRC T3,(IMUL)
TRNE T3,770000
JRST ARMIX8
SKIPN T2,ARMQEN
JRST ARMIX3
MOVE T2,MQ
TLNN AR,(1B0)
TLZA T2,(1B0)
TLO T2,(1B0)
IOR T1,T2
JSP T2,ARMIX3
ARLT: MOVE T3,SINDEX#
HRRZ T2,STATE
CAIE T2,DFDT3
TDZA T2,T2
SETOM T2
AND T2,MB
MOVEM T2,ARLTEM#
SKIPE DSF2
JRST ARLT1
HLRZ T2,IR
TRC T2,(FDV)
TRNN T2,770000
JRST .+3
ARLT1: LDB T2,AR35L(T3)
IOR T1,T2
LDB T2,AR0L(T3)
MOVE T3,AD
LSH T3,2
ROTC T2,-1
JRST ARRT1A
ARRT1: MOVE T3,SINDEX
LDB T2,AR0R1(T3)
ROT T2,-1
IOR T1,T2
LDB T2,AR1R1(T3)
MOVE T3,AD
LSH T3,1
ROTC T2,-2
ARRT1A: IOR T1,T3
JRST ARMIX4
ARRT2: MOVE T3,SINDEX
LDB T2,AR0R2(T3)
ROT T2,-1
IOR T1,T2
LDB T2,AR1R2(T3)
LDB T3,AR2R2(T3)
LSH T2,1
IOR T2,T3
MOVE T3,AD
LSH T3,1
ROTC T2,-3
JRST ARRT1A
; **********************************************************************
;*MQ
; **********************************************************************
MQMIXR: SETZB T1,MQCLK
TRNE T,MQADEN
PUSHJ P,MQLTB
TRNE T,MQSHLT
PUSHJ P,MQLT
TRNE T,MQSHRT
PUSHJ P,MQRT1
TRNE T,MQSHR2
PUSHJ P,MQRT2
TRNE T,MQCLR
SETOM MQCLK
MOVEM T1,MQMIX#
POPJ P,
MQLT: MOVE T3,SINDEX
SETCAM AD,NEGAD#
SKIPN DSF2
SETZM NEGAD
MOVE T2,ADX
SETCAM T2,NEGADX#
LDB T2,MQ35L(T3)
IOR T1,T2
LDB T2,MQ0L(T3)
MOVE T3,MQ
LSH T3,2
ROTC T2,-1
MOVE T2,SINDEX
CAIN T2,10 ;FP SHIFT
TLZ T3,(1B7)
MQLTA: TDOA T1,T3
MQLTB: IOR T1,AD
SETOM MQCLK
POPJ P,
MQRT1: MOVE T3,SINDEX
LDB T2,MQ8R1(T3)
ROT T2,-11
IOR T1,T2
LDB T2,MQ0R1(T3)
LDB T3,MQ1R1(T3)
LSH T2,1
IOR T2,T3
MOVE T3,MQ
LSH T3,1
ROTC T2,-2
TLZ T3,(1B8)
JRST MQLTA
MQRT2: MOVE T3,SINDEX
LDB T2,MQ8R2(T3)
ROT T2,-11
IOR T1,T2
LDB T2,MQ9R2(T3)
ROT T2,-12
IOR T1,T2
LDB T2,MQ0R2(T3)
ROT T2,-1
IOR T1,T2
LDB T2,MQ1R2(T3)
LDB T3,MQ2R2(T3)
LSH T2,1
IOR T2,T3
MOVE T3,MQ
LSH T3,1
ROTC T2,-3
TLZ T3,(3B9)
JRST MQLTA
; **********************************************************************
;*MB
; **********************************************************************
MBMIXR: MOVE T3,SCADEN
SETZB T1,MBCLK
TLNE T3,MBAREN
PUSHJ P,MBMIX1
TLNE T3,MBFMEN
PUSHJ P,MBMIX2
MOVEM T1,MBMIX
POPJ P,
MBMIX1: TDOA T1,AR
MBMIX2: IOR T1,@FMREG
SETOM MBCLK
POPJ P,
; **********************************************************************
;*SC
; **********************************************************************
SCMIXR: MOVE T3,SCADEN
SETZB T1,SCCLK
HRREI T2,1(SC)
TRNE F,SCP1IN
MOVE T2,SC
TRNE T3,SCSCP1
PUSHJ P,SCMIX3
TRNE T3,SCSHRT
PUSHJ P,SCMIX4
TRNE T3,SCAREN
PUSHJ P,SCMIX5
TRNE T3,SCSAEN
PUSHJ P,SCMIX1
MOVEM T1,SCMIX
POPJ P,
SCMIX5: MOVE T2,AR
ANDI T2,377
TRNE AR,1B18
ORCMI T2,377
SKIPA
SCMIX4: ASH T2,-1
SCMIX3: TDO T1,T2
SETOM SCCLK
POPJ P,
SCMIX1: MOVE T2,SA
ANDI T2,777
TRNE T2,400
ORCMI T2,777
JRST SCMIX3
; **********************************************************************
;*ARX
; **********************************************************************
ARXMXR: SETZB T1,ARXCLK
EXCH T,SCADEN
TLNE T,ARXCLR
SETOM ARXCLK
TLNE T,ARXADX
PUSHJ P,ARXMX1
MOVE T3,SINDEX
TLNE T,ARXSHL
PUSHJ P,ARXMX2
TLNE T,ARXSHR
PUSHJ P,ARXMX3
TLNE T,ARXSR2
PUSHJ P,ARXMX4
TLNE T1,(1B8)
TLOA T1,776000
TLZ T1,776000
MOVEM T1,ARXMIX
EXCH T,SCADEN
POPJ P,
ARXMX2: MOVE T2,ADX
LSH T2,1
IOR T1,T2
LDB T2,ARX35L(T3)
ARXMX5: TDOA T1,T2
ARXMX1: IOR T1,ADX
SETOM ARXCLK#
POPJ P,
ARXMX3: MOVE T2,ADX
LSH T2,-1
TLZ T2,777000
IOR T1,T2
LDB T2,ARX0R1(T3)
ROT T2,-11
JRST ARXMX5
ARXMX4: MOVE T2,ADX
ASH T2,-2
JRST ARXMX5
; **********************************************************************
;*ADCLK
; **********************************************************************
ADCLK: TLZ F,777770
TDC F,T
TLZ T,777770
TDC F,T
MOVE T1,SCADEN
MOVEM T1,SCADFF#
TRZE F,DSF2CLR
SETZM DSF2#
TRZE F,DSF2SET
SETOM DSF2
POPJ P,
; **********************************************************************
;*ABCLK
; **********************************************************************
ABCLK: TRNE T,ABADEN+ABPCEN+ABABEN ;IF NONE AND
JRST .+3
TLNE T,INFTST ;INST FETCH START
TRO T,ABABEN ;SET ABABEN
TRNE T,ABADEN+ABPCEN+ABABEN ;IF ENABLE, CLEAR OTHER FLOPS
TRZ F,ABAD+ABAB+ABPC+ABAS
TRNE T,ABPCEN ;SET FLOPS
TRO F,ABPC
TRNE T,ABADEN
TRO F,ABAD
TRNE T,ABABEN
TRO F,ABAB
POPJ P,
; **********************************************************************
;*FMWR
; **********************************************************************
FMWR: SKIPL T1,FMADMA
LDB T1,FMADREN
MOVEI T1,ACS(T1)
CAME T1,FMREG
JSR ERR
MOVEM AR,(T1)
SKIPE SACBRFF
MOVEM BR,(T1)
POPJ P,
; **********************************************************************
;*TIMCAL
; **********************************************************************
TIMCAL: MOVE T2,LONGTM
SKIPGE T3,SCADFF
MOVE T2,DPADTM
JUMPL T3,TIMC1
TRNN F,LNGCYC
MOVE T2,ADTIME
TLNN F,ADADD
TRNE T3,SAADD
JRST TIMC1
MOVE T2,ADTIME
TRNN F,LNGCYC
MOVE T2,VERTIM
TIMC1: ADDM T2,TIME
POPJ P,
; **********************************************************************
;*MPYFCN
; **********************************************************************
MPYFCN: PUSH P,T2
PUSHJ P,MQMIXR
POP P,T2
MOVE T1,MQMIX
TRNE F,FLAG1
ADDI T1,1
ANDI T1,3
JRST .+1(T1)
POPJ P,
JRST MPYFN1
JRST MPYFN2
TRO F,FLAG1
MPYFN5: TLO T,ADBRMI+ADADD+ADCR36
TLO T2,ADXFMM
JRST MPYFN4
MPYFN2: TLOA T,ADADD
MPYFN1: TLOA T,ADBRPL+ADADD
TLOA T2,ADXFM2+ADBRP2
TLO T2,ADXFMP
MPYFN3: TRZ F,FLAG1
MPYFN4: TLNN IR,(1B3)
TLO T2,ADXADD
POPJ P,
SUBTTL SHIFT CONNECTIONS
; **********************************************************************
DEFINE PT(ADR,BIT)
< POINT 1,ADR,BIT>
AR0L: PT AD,1
PT AD,1
PT AD,1
PT AD,1
PT AR,0
PT AR,0
PT AD,1
0
PT AD,1
0
PT AD,1
AR35L: 0
PT AR,0
PT MQ,0
PT MQ,0
0
PT MQ,1
PT MQ,0
PT MQ,1
PT MQ,8
PT ARLTEM,35
PT MQ,1
AR0R1: 0
PT AR,35
PT MQ,35
0
PT AR,0
PT AR,0
.-. ;DON'T CARE CONDITION
0
PT ADOVF,35
.-.
.-.
AR0R2: 0
PT AR,34
PT MQ,34
0
PT AR,0
PT AR,0
PT ADOVF,34
0
PT ADOVF,34
.-.
.-.
AR1R2: 0
PT AR,35
PT MQ,35
0
PT AR,0
PT AR,0
PT ADOVF,35
PT ADX,34
PT ADOVF,35
.-.
.-.
AR1R1:
AR2R2: PT AD,0
PT AD,0
PT AD,0
PT AD,0
PT AD,0
PT AD,0
PT AD,0
PT ADX,35
PT AD,0
.-.
.-.
ARX35L: .-.
.-.
.-.
.-.
.-.
.-.
.-.
PT AD,1
.-.
PT ADPR,1
.-.
ARX9R2:
ARX0R1: .-.
.-.
.-.
.-.
.-.
.-.
.-.
PT ADX,7
.-.
0
.-.
MQ0L: PT MQ,1
.-.
PT MQ,1
PT MQ,1
.-.
PT AD,0
PT MQ,1
0
.-.
PT MQ,1
.-.
MQ0R2: .-.
.-.
PT AD,34
PT AD,34
.-.
PT AD,0
PT AD,34
0
.-.
.-.
.-.
MQ1R2: .-.
.-.
PT AD,35
PT AD,35
.-.
PT AD,34
PT AD,35
PT AD,34
.-.
.-.
.-.
MQ0R1: .-.
.-.
PT AR,35
PT AR,35
.-.
PT AD,0
.-.
0
.-.
0
.-.
MQ1R1: .-.
.-.
PT MQ,0
PT MQ,0
.-.
PT AD,35
.-.
PT AD,35
.-.
PT ARX,35
.-.
MQ2R2: .-.
.-.
PT MQ,0
PT MQ,0
.-.
PT AD,35
PT MQ,0
PT AD,35
.-.
.-.
.-.
MQ35L: 0
.-.
PT AR,0
0
.-.
0
.-.
0
PT NEGAD,0
PT NEGADX,8
PT NEGAD,0
MQ8R2: .-.
.-.
PT MQ,6
PT MQ,6
.-.
PT MQ,6
PT MQ,6
PT MQ,6
PT AD,34
.-.
.-.
MQ9R2:
MQ8R1: .-.
.-.
PT MQ,7
PT MQ,7
.-.
PT MQ,7
PT MQ,7
PT MQ,7
PT AD,35
PT MQ,7
.-.
SUBTTL MEMORY CONTROL SUBROUTINES
; **********************************************************************
; **********************************************************************
;*MEMST
; **********************************************************************
MEMST: SETZM STINAC
MOVE T1,TIME
ADDI T1,PAGDLY
CAMGE T1,MAMAOFF
MOVE T1,MAMAOFF
MEMSTA: MOVE MA,AB
SKIPE MCSPEC
MOVE MA,MCSADR
MOVE S,AB
SKIPE MCSPEC
MOVE S,MCSADR
CAIGE S,20
JRST ACREF
ANDI S,3
ADDI T1,^D82
SKIPE FCE2ST
JRST MEMST5
SKIPE INSYNC
JRST MEMST5
MEMST6: MOVE T3,MEMDONE#
SKIPE MEMREAD
JRST MEMST1
MOVEM T1,TIME
CAMGE T3,RDRST
MOVE T3,RDRST
ADDI T3,^D70
CAIGE T1,T3
MOVE T1,T3
MEMSTB: CAMGE T1,MEMCMP(S)
MOVE T1,MEMCMP(S)
ADD T1,ACKDLY(S)
MOVEM T1,MEMWRWT
SKIPE INSYNC
PUSHJ P,MEMST7
MOVE T3,T1
ADDI T3,^D60
MOVEM T3,MAMAOFF#
ADD T1,WARN(S)
ADD T1,CYCLE(S)
ADDI T1,WARNDLY
MOVEM T1,MEMCMP(S)
MEMST4: MOVE T1,MEMSIN
HRRZ S,MEMRET-"A"(T1)
SETZM MEMWR
POPJ P,
MEMST5: MOVE T3,T1
ADDI T3,^D155 ;100(PG RDY)+30(IN SYNC)+25(AB PROP)
MOVEM T3,INSYNC
JRST MEMST6
MEMST7: MOVE T3,T1
ADDI T3,^D60
CAMGE T3,INSYNC
MOVE T3,INSYNC
ADDI T3,^D25
MOVEM T3,INSYNC
POPJ P,
MEMST1: ADDI T3,^D50
CAIGE T1,T3
MOVE T1,T3
CAMGE T1,MEMCMP(S)
MOVE T1,MEMCMP(S)
SKIPLE MEMFLG(S)
JRST MEMST3
SKIPE MEMFLG(S)
JRST MEMST2
MOVE T3,WARNED#
ADDI T3,^D50
CAMGE T1,T3
MOVE T1,T3
MEMST2: ADD T1,ACKDLY(S)
SKIPE INSYNC
PUSHJ P,MEMST7
MOVE T3,T1
ADDI T3,^D60
MOVEM T3,MAMAOFF
ADD T1,WARN(S)
MOVEM T1,WARNED
ADDI T1,WARNDLY
MOVEM T1,RDRST#
MOVEM T1,TIME
SKIPLE MEMFLG(S)
MOVEM T1,MEMDONE
SKIPE MEMWR
MOVEM T1,MEMWRWT
ADD T1,CYCLE(S)
MOVEM T1,MEMCMP(S)
SKIPE MCSPEC
SKIPA T1,MCSADR
MOVE T1,AB
MOVEM T1,AB
SETZM MCSPEC
MOVE MB,OFFSET(T1)
MOVE T1,MEMSIN
HRRZ S,MEMRET-"A"(T1)
SKIPL MEMRET-"A"(T1)
MOVE AR,MB
SKIPE FCE2ST#
JRST FCE2M
SKIPE INSYNC
SKIPE MEMWR
JRST MEMST8
CAIE T1,"C"
JRST INFT3
SETCM T1,@INSTPT
TRNE T1,FCE+SCE
JRST INFT3
JRST MEMST8
FCE2SY: SETZM FCE2W
SKIPE FCE2ST
PUSHJ P,FCE2S1
MOVE T1,INRDY
CAMG T1,TIME
MOVE T1,TIME
ADD T1,VERTIM
MOVEM T1,TIME
POPJ P,
; **********************************************************************
;*ACREF
; **********************************************************************
ACREF: SKIPN INSYNC
JRST ACREF2
MOVE T3,PCP1G
MOVEM T3,AB
PUSHJ P,INFT3A
ACREF2: SKIPE MEMREAD
JRST ACREF1
ADDI T1,^D55
MOVEM T1,TIME
SETOM STINAC
JRST MEMST4
ACREF1: ADDI T1,^D260
MOVEM T1,TIME
MOVE T1,MEMSIN
SKIPL MEMRET-"A"(T1)
MOVE AR,ACS(S)
CAIE T1,"C"
JRST ACREF3
SETZM PSINFT
SETCM T3,@INSTPT
TRNE T3,FCE+SCE
ACREF3: SKIPE MEMWR
SETOM STINAC
SKIPGE MEMRET-"A"(T1)
MOVE MB,ACS(S)
HRRZ S,MEMRET-"A"(T1)
SKIPE FCE2ST
JRST FCE2M
MEMST8: SETZM MEMREAD
SETZM MEMWR
POPJ P,
MEMST3: MOVE T3,RDRST
ADDI T3,^D50
CAMGE T1,T3
MOVE T1,T3
JRST MEMST2
; **********************************************************************
;*INFTSB
; **********************************************************************
INFTSB: SKIPE MEMWRWT
JRST INFTS1
MOVEI T1,20
SKIPN STINAC
CAMLE T1,AB
JRST INFTS3
INFTS2: SKIPE XCTF
JRST .+3
SKIPN PSINFT
HRR PC,AB
SETZM XCTF
SKIPN PSINFT
SETZM PCP1FF
SETZM INFTFF
SETZM PSINFT
MOVEI T1,"A"
INFT2A: MOVEM T1,MEMSIN
PUSH P,TIME
MOVEI T1,^D100
ADDM T1,TIME
SETOM MEMREAD
PUSHJ P,MEMST
MOVE T1,TIME
MOVEM T1,INRDY
POP P,TIME
POPJ P,
INFT3A: SETOM INFTFF
INFT3B: SETZM INSYNC
INFTS1: TRZ F,ABPC+ABAD+ABAS
TRO F,ABAB
POPJ P,
INFTS3: SKIPE PSINFT
SETZM INFTFF
SETZM PSINFT
JRST INFTS1
; **********************************************************************
;*WRRST
; **********************************************************************
WRRST: SKIPE MCSPEC
MOVE MA,MCSADR
SETZM MCSPEC
MOVEM AR,OFFSET(MA)
MOVE T1,TIME
MOVEM T1,MEMDONE
MOVE T3,MA
ANDI T3,3
ADD T1,WRCYC(T3)
CAML T1,MEMCMP(T3)
MOVEM T1,MEMCMP(T3)
SETZM MEMWRWT
SKIPN INSYNC
POPJ P,
INFT3: HRRZ T1,PCP1G
SKIPE MCSPEC
MOVE T1,MCSADR
MOVEM T1,AB
CAIGE T1,20
JRST INFT3A
SKIPE XCTF
JRST .+3
SKIPN PSINFT
HRR PC,AB
SETZM XCTF
SKIPN PSINFT
SETZM PCP1FF
SETZM PSINFT
MOVEI T1,"A"
INFT3C: MOVEM T1,MEMSIN
SETOM MEMREAD
SETZB T1,MEMWR
EXCH T1,INSYNC
SUBI T1,^D82
PUSH P,S
PUSH P,TIME
PUSHJ P,MEMSTA
MOVE T1,TIME
MOVEM T1,INRDY
POP P,TIME
INFT3D: POP P,S
POPJ P,
FCE2M: HRRZM AD,AB
TRNN AD,777760
JRST INFT3B
SETZM FCE2ST
MOVEI T1,"I"
JRST INFT3C
FCE2S1: SETZM FCE2ST
MOVEI T1,"I"
PUSH P,S
PUSHJ P,INFT2A
JRST INFT3D
MEMWSS: SKIPE STINAC
POPJ P,
PUSH P,S
MOVE S,MA
ANDI S,3
MOVE T1,TIME
ADDI T1,^D75
PUSHJ P,MEMSTB
POP P,S
POPJ P,
MEMCMP: BLOCK 4 ;LAST COMPLETION TIME
CYCLE: REPEAT 4,<^D500> ;RD RST TO END OF CYCLE
WARN: REPEAT 4,<0> ;ADR ACK TO WARN
ACKDLY: REPEAT 4,<^D150> ;START TO ADR ACK
MEMFLG: REPEAT 4,<0> ;MEM TYPE
WRCYC: REPEAT 4,<^D500> ;TIME WRITE CYCLE COMPLETES
VERTIM: ^D110 ;STRAIGHT THRU TIME (NO ADD)
ADTIME: ^D170 ;FULL ADD TIME (NS)
LONGTM: ^D230 ;ADD TIME PLUS AD=0 GATING
DPADTM: ^D230 ;63-BIT ADD TIME
MEMRET: SETZ IT0
FT4
FT6
ERR
ST1
ET1S
ERR
ERR
SETZ FCE2SY
BLTT3
FT8
IFNDEF ONEPRT,<
LIT
VAR
END 30000 >
LIST