
;  - 160000
 .PSECT 160000
COMD=177130
COMK=177660
REG16=177716
IF0=177656 ;
IF1=177654 ; 
IF2=177652 ; .  .
IF3=177650 ;   
IF4=177646 ; .  .
IF5=177644 ; .  .
IF6=177642 ;SDH SDH
IF7=177640 ; 
ZF6=177622 ;  .
ZF7=177620 ;  ----------

T0: BR BOOTS
T2: BR BOOT
T4: BR LOGIC
T6: BR FIZIC
T10: BR INIT
T12: JMP FORMAT
T16: JMP ARIFM+16 ;.

BOOTS:
 CALL GRUZ0D ;. 
 CALL GRUZ0D
 CALL GRUZ0D
 CALL GRUZ0D
 CLR R0 ;.  A:,B:
 CALL GRUZ
 MOV #1,R0
 CALL GRUZ
 CLR @#COMD ;
 CLR @#COMK
 RET
BOOT:
GRUZ: CMP R0,#2
 BLO GMD
 CALL GRUZND
 BR 2
GMD: MOV #2000,R3
 CALL INIT
 MOVB R0,34(R3)
 CLR R0
 MOV #400,R1
 MOV #1000,R2
 CALL LOGIC
 BCS 2
 MOV #1000,R2
 CMP (R2)+,#240
 BNE 2
 CMP @R2,#5
 BEQ 2
 MOVB 34(R3),R0 ; -  R0 !!!
 CALL -(R2) ;  RT-11  ...
2: RET



;   
PGRUZ:
 MOV #2000,R3

;  SP,PSW,@#4
PREDS:
 MOV SP,50(R3)
 ADD #2,50(R3)
 MFPS 52(R3)
 MOV @#4,46(R3)
 MOV #STOP,@#4
 MOV #177640,R4 ;  HDD
 RET

FIZIKH: CLR R0 ; //  ...
 MOV #24,R2
 MOVB 33(R3),R1
 BIC #177400,R1
 BEQ 1
2: ADD R1,R0
 SOB R2,2
1: TSTB 32(R3)
 BEQ 3
 ADD #12,R0
3: MOVB 35(R3),R1
 DEC R1
 ADD R1,R0
 MOV R0,44(R3)
;     44(R3)

OBMEN: CALL PREDS
 CLRB @#52
 MOV #HLT,@#4
 CALL ZAG
 TSTB @#52
 BEQ 1
 JMP STOP
1: JMP ENDS


ZAG: CALL INDR.N
 MOV 30(R3),R2
 BPL 001
 NEG R2 ;   
001: MOV R2,R5
 ADD #377,R5
 CLRB R5
 SWAB R5
 MOV R5,R1
 ADD 44(R3),R1
 CMP R1,54(R3)
 BLOS 002
 CALL ENO
 .WORD 4
002:;BIT #1,56(R3)
;BEQ 003
;   
;      -3
003: MOV R5,R1
 COM R1
 MOV R1,@#IF2 ;
 SWAB R5
 SUB R2,R5
 MOV R5,22(R3) ;
 MOV 44(R3),R0
 CALL REGI4
 MOV 26(R3),R1 ;-Adres
 MOV 30(R3),R2 ;-
 BMI 3
 BIT #20,56(R3)
 BNE 5
 MOV #337,@R4
 CALL READ1
 MOV 22(R3),R2
 BEQ 11
 CALL READF
11: RET
5: CALL ENO
 .WORD 1 ; OT /
3: NEG R2
 BIT #10,56(R3)
 BNE 5
 MOV #317,@R4
 CALL WRITE1
 MOV 22(R3),R2
 BEQ 12
 CALL WRITEF
12: RET

;   . .
CONTR:
 MOVB 34(R3),R5 ; 
 BIC #177400,R5
 ADD 36(R3),R5 ; 
 ADC R5
 ADD 40(R3),R5 ; 
 ADC R5
 ADD 60(R3),R5 ; 
 ADC R5
 ADD 62(R3),R5 ; 
 ADC R5
 RET


;        R0
; ! ! !     CONTR
REGI4: INC R0
REGI: CALL T120
 MOV 62(R3),R1 ;  ST
 ADD 60(R3),R0 ;  ML
 ADC R1
 CALL DIV2
 COM R0 ;   
 MOV R0,@#IF4
 SWAB R0
 MOV R0,@#IF5

; R5 - 

 MOV R5,R0
 MOVB 40(R3),R2
 BIC #177400,R2
 CALL DIV1
 COM R0
;  MASTER-SLAVE.
PUSH R1
MOV @#IF6,R1
BIC #177757,R1
BIS R1,R0
POP R1
 MOVB R0,@#IF6 ;
 INC R5
 COM R5
 MOVB R5,@#IF3 ;
 RET

;   "B"
GRUZ0D:
; 

 CALL PGRUZ
 MOV #20,R1
10: CLR R2
9: TSTB @#IF7
 BMI 8
 SOB R2,9
 SOB R1,10
 RET
8: CALL IND00
 BR 7
GRUZND:
 CALL PGRUZ
 MOVB R0,34(R3)
 CALL INDRV
7: CALL CMPDR ;+1
 CALL READFP
 .WORD 377 ;+400
 MOV #1000,26(R3)
 MOV #400,30(R3)
 CLR 44(R3)
 CALL ZAG
 MOV #1000,R2
 CMP #240,(R2)+
 BNE 1EZ
 CMP #5,(R2)
 BEQ 1EZ
 MOVB 34(R3),R0
 JMP -(R2)
1EZ: CALL ENO
 .WORD 10

CMPDR: CLR R0
 CALL REGI
 MOV #376,@#IF2 ; = 1
 MOV #337,@R4 ;
 CALL READP
 .BYTE 6
 .BYTE 1
;6(R3)  =   -  -4 
 CMPB 6(R3),34(R3)
 BNE 1
 RET
1: CALL READFP
 .WORD 377
 CALL ENO ;    
 .WORD 3

;   
INDR.N:
 CALL CONTR
 CMP R5,64(R3)
 BEQ 1
 CALL INDRV ; . ....

1: CALL CMPDR
; 54(R3)  
; 56(R3) 

;    
;10-.  
;20-.  
;40
;100
;200
 CALL READP
 .BYTE 54
 .BYTE 2
 CALL READFP
 .WORD 375
 RET
IND36: CALL T120
 MOV #377,R0		;   ****
 MOV R0,@#IF6
 MOV R0,@#IF5
 MOV R0,@#IF4
 DEC R0
 MOV R0,@#IF2 ;
 DEC R0
 MOV R0,@#IF3 ;
 MOV #337,@R4 ;
 CALL READP
 .BYTE 54 ; 54(R3)-    
 .BYTE 1
; 36(R3)- ' 
; 40(R3)- ' 
; 41(R3)- - 
 CALL READP
 .BYTE 36
 .BYTE 2
 RET
IND00: CALL IND36
 MOVB 54(R3), 34(R3)
 BR 390
;  , No   ***
; R3   
INDRV: CALL IND36
390: MOVB 34(R3),R2
 SUB #2,R2
 BEQ 1
 ASL R2
 CALL READF
1: CALL READP ;60(R3)\ .   
 .BYTE 60
 .BYTE 2
 MOVB 34(R3),R1 ;64(R3)/
 ASL R1
 INC R1
 MOV #400,R2
 SUB R1,R2
 CALL READF	; r2  
 CALL CONTR
 MOV R5,64(R3)
 RET
;  
BSYH: TSTB @R4
 BPL 1
 RET
1: CLR R5
2: TSTB @R4
 BMI BSYH
 SOB R5,2
 CALL ENO
 .WORD 3
;   
T120: CALL BSYH
 BIT #120,@R4
 BNE 1
 BIT #10,@R4
 BEQ 3
 RET
1: CLR R5
01: BIT #120,@R4
 BEQ T120
 SOB R5,01
 CALL ENO
 .WORD 6
3: MOV #0,@#ZF6
 MOV #2000,R5
33: SOB R5,33
 MOV #377,@#ZF6
 CALL ENO ;   
 .WORD 5
;  
T130: CALL BSYH
 BIT #130,@R4
 BNE 1
 RET
1: CLR R5
01: BIT #130,@R4
 BEQ T130
 SOB R5,01
 CALL ENO
 .WORD 10

READP: MOV @SP,R2
 MOVB (R2)+,R1
 MOVB (R2)+,R2
 ADD R3,R1
 ADD #2,@SP
; BLOK  R1+
READ1:
1: CALL T130
0: TSTB @R4
 BPL 1
01: MOV @#IF0,(R1)+
 SOB R2,0
 RET
; BLOK  R1+
WRITE1:
1: CALL T130
0: TSTB @R4
 BPL 1
01: MOV (R1)+,@#IF0
 SOB R2,0
 RET

READFP: MOV @SP,R2
 ADD #2,@SP
 MOV @R2,R2
; 
READF:
1: CALL T130
0: TSTB @R4
 BPL 1
01: MOV @#IF0,R5
 SOB R2,0
 RET
; 
WRITEF:
1: CALL T130
0: TSTB @R4
 BPL 1
 MOV #0,@#IF0
 SOB R2,0
 RET

; R1- . R0-.
; R2 36(R3)
DIV2: MOV 36(R3),R2 ;' 
DV2: MOV R4,-(SP)
 MOV #40,R4
 CLR R5
1: ASL R0
 ROL R1
 ROL R5
 CMP R2,R5
 BHI 2
 SUB R2,R5
 ADD #1,R0
 ADC R1
2: SOB R4,1
 BR 88

; R0  R2
DIV1:
 MOV R4,-(SP)
 MOV #20,R4
 CLR R5
1: ASL R0
 ROL R5
 CMP R2,R5
 BHI 2
 SUB R2,R5
 INC R0
2: SOB R4,1
88: MOV (SP)+,R4
 RET ;R0- R5-

;  ""
HLT: INCB @#52
 SUB @PC,@SP
 RTI
ARIFM:.END
  "LM"   FIS.
..   :
 >RS
 >LO ? CONNER.MAC
 >CL
 >LM ? FIS
 :
 >SA ? CONNER20