BASE         CLRWDT
	MOVLW	B'00011111'
	ANDWF	STATUS,F
	;	
;
BI0 ;INT TIMER FLAGS
;{
BI0.1

	MOVLW	.10
	SUBWF	Q.INT.100MCS,W
	BTFSS	STATUS,C
	GOTO	BI0.2
	;
	MOVWF	Q.INT.100MCS
	;
             BANKSEL      Q.INT.1MS ;B1 !!!
             INCF	Q.INT.1MS,F
;
	SWAPF        Q.INT.1MS,W  ;b'PREV:NEW'
             XORWF        Q.INT.1MS,W
             BTFSC        STATUS,Z
             GOTO         BI0.2
	;EACH 1MS
;
	CALL	INT1MS
;
	BANKSEL	Q.INT.1MS
             MOVF         Q.INT.1MS,W
             ADDLW        B'00010000'  ;FOR b'xxxx=xxxx'
             MOVWF        Q.INT.1MS
             ANDLW        B'00001111'
             SUBLW        .9
             BTFSS        STATUS,C
             CLRF         Q.INT.1MS ;00H
             ;
             B0
             MOVLW	Q.INT.1MS
             MOVWF	FSR
  ;;;;;
             MOVLW        LOW TAB.INT.10MS
             LGOTO        TAB.P2 ;PAGE2
  ;;;;;
	;BTFSC        INT.1MS
	;GOTO         BI.1MS
BI0.2	
	B0
	BTFSS        INT.250MS
	GOTO         BI0.3
	LGOTO         BI.250MS.P1
BI0.3
;  
BI0.OUT
	B0
	;};
;
BI2
;{
             ;};
BI3
;{
BI3.OUT
;};
BI4 ;
;{
  ;};
BI5
;{	
	;};
B01
;{	
B01.OUT
	;};
;
C1.CHECK
;{
	;BTFSC	Q.DR.ZUB_0
	;GOTO	C1.CH.OUT
	;
	BTFSS	C1.INT.OK
	GOTO	C1.CH.OUT
	;
	BCF	C1.INT.OK
	;
	;BSF	P.PIP
	;
	CALL	TOUT.DR.XY ;C
	CALL	L.T.DR
	BCF	XY.SP.UP.MODE
	;
	;
             MOVLW        .1
             SUBWF        Q.DR.ZUB.L,F
             BTFSS	STATUS,C
             SUBWF	Q.DR.ZUB.H,F
             BTFSC	STATUS,C
             GOTO	IP.XY.1
             ;
             MOVCFQ	.0,Q.DR.ZUB.L,.2
             MOVLW	.34
             BTFSS	ERR.IND
             CALL	L.ERR
             ;
	;FULL POSITION INC/DEC
IP.XY.1
	MOVLW	Q.REG.H
	;
	BTFSC	DVIG.X
	MOVLW	POS.ZUB.X.L
	BTFSC	DVIG.Y
	MOVLW	POS.ZUB.Y.L
	MOVWF	FSR
	;'''
	BTFSS	DR.FR_RE
	GOTO	IP.XY.SUB
;ADD ZUB
	MOVLW	.1
	ADDWF	INDF,F
	INCF	FSR,F
	BTFSC	STATUS,C
	ADDWF	INDF,F
	;
	GOTO	IP.XY.OUT
	;
;SUB ZUB
IP.XY.SUB	
	MOVLW	.1
	SUBWF	INDF,F
	INCF	FSR,F
	BTFSS	STATUS,C
	SUBWF	INDF,F
	BTFSS	STATUS,C
	CLRF	INDF
	DECF	FSR,F
	BTFSS	STATUS,C
	CLRF	INDF
;
IP.XY.OUT
;
C1.CH.OUT
	;};
CH.Q.DR.ZUB_0
;{
	CLRW
	ADDWF	Q.DR.ZUB.L,F
	BTFSC	STATUS,Z
	ADDWF	Q.DR.ZUB.H,F
	BSF	Q.DR.ZUB_0
	BTFSS	STATUS,Z
	BCF	Q.DR.ZUB_0
	;};
;
DRIVE_JOB
;{
;1-UP,2-RIGHT,3-DOWN,4-LEFT,5-EZD FRONT,6-EZD REAR
;
	BTFSS	DR.ON
	GOTO	DR.OUT
	;
	;'''
DR.SC.TAB	MOVLW	LOW TAB.DR
	GOTO	TAB
	;'''
	;};
DR.SC0 ;SELECT & ON RELAY
;{
	BTFSS	Z.T.DR.250
	BTFSC	Z.T.DR
	GOTO	DR.OUT
	;
	BTFSC	DR.OFF
	GOTO	DR.S.TORM.ON
	;
	BTFSC	DVIG.Z
	GOTO	DR.SC0.Z
	;
	
	BTFSC	Q.DR.ZUB_0
	BTFSC	DR.MAN
	GOTO	DR.SC0.XY
	GOTO	DR.S.TORM.ON ;NOT RELAY ON (IMITATION JOB)
;
DR.SC0.XY
	BCF	XY.SP.UP.MODE
	
	BTFSC	DR.MAN
	BCF	P.TORM.OFF
;
	BTFSS	DVIG.Y
	GOTO	DR.SC0.CH.X
	;
	BSF	P.DVIG.Y
	
	;
	GOTO	DR.SC0.OUT
;
DR.SC0.CH.X	MOVLW	.33
	BTFSS	DVIG.X
	GOTO	DR.ERR.OUT
	;
	BSF	P.DVIG.X
	;
	GOTO	DR.SC0.OUT
	;
DR.SC0.Z
	BSF	P.DVIG.Z
	;
	BCF	DR.A.NOT.PAUSE
	MOVF	Z.STEP,W
	CALL	L.IND2.WDAT
             CALL	L.IND3.EMP
             BCF	P.TORM.OFF
	;
DR.SC0.OUT
;
	MOVLW	.5  ;x10MS
	CALL	L.T.DR ;LOAD DELAY & set Z.T.DR
	MOVLW	.1
	CALL	L.DR.STAT
	;};
DR.SC1 ;SELECT VESPER CH
;{
	BTFSC	Z.T.DR
	GOTO	DR.OUT
	;
	BTFSS	DR.FR_RE
	BSF	P.S2 ;RE
	;
	BTFSC	DR.FR_RE
	BSF	P.S1
	;
	; LOAD FIRST TOUT
	;Z
	BTFSS	DVIG.Z
	GOTO	DR.SC1.XY1
	;
	CALL	TOUT.DR.Z  ;C
	CALL	L.T.DR.250
	BCF	Z.S.OK
	MOVLW	.5
	MOVWF	Q.H.XX
	;
	GOTO	DR.SC1.OUT
	;
	;XY
DR.SC1.XY1	CALL	TOUT.FIRST.DR.Y.UP ;C
	BTFSS	DR.FR_RE
	CALL	TOUT.FIRST.DR.Y.DOWN ;C
	BTFSS	DVIG.Y	
	CALL	TOUT.FIRST.DR.X ;C
	CALL	L.T.DR
	;
	BTFSS	DVIG.Y
	GOTO	DR.SC1.X1
	;SAVE CUR HORDA
	MOVCFQ	.0,UP.HORDA.L,.2
	;
	BTFSC	DR.FR_RE
	GOTO	DR.SC1.XY2
	; DOWN DRIVE
	MOVFQFQ	CUR.HORDA.L,.2,UP.HORDA.L,.2
	GOTO	DR.SC1.XY2
	;
DR.SC1.X1	BSF	H.F.XX  ;FOR Z [XX]
;
DR.SC1.XY2	MOVLW	.100
	CALL	L.T.DR.1 ;FOR DELAY C1 ON
	BSF	FL.C1.ON
	;
	;LOAD NEXT LEVEL
DR.SC1.OUT	MOVLW	.2
	CALL	L.DR.STAT
	;
	GOTO	DR.OUT
	;};
DR.SC2 ;JOB XYZ
;{
	CLRF	T.REG.1S
	CLRW
	BTFSC	ERR.H.PIL
	GOTO	DR.ERR.OUT
	;
	BTFSC	DVIG.Z
	GOTO	DR.SC2.Z
	;
DR.SC2.2	BTFSS	DR.MAN
	GOTO	DR.SC2.3
; DR.MAN
	BTFSC	DR.OFF
	GOTO	DR.S.TORM.ON
	;
	CALL	CH.GR.OUT
	XORLW	.1
	BTFSS	STATUS,Z
	GOTO	DR.S.TORM.ON ;RIGHT/UP LIM
	GOTO	DR.SC2.FIX.SP
;
; DR.AUTO
DR.SC2.3	;MOVLW	.19
	BTFSC	Z.T.DR
	GOTO	DR.SC2.4
	; TIMEOUT
	BTFSS	DVIG.X
	GOTO	DR.SC2.XY.SP.UP
	;
	BTFSS	DR.UNLIM
	GOTO	DR.SC2.XY.SP.UP
	;
	BTFSS	DR.FR_RE
	BTFSS	GR.L.X
	GOTO	DR.SC2.31
	MOVCFQ	.0,POS.ZUB.X.L,.2 ;SET 0 POSITION
	GOTO	DR.SC2.32
	;
DR.SC2.31	BTFSC	DR.FR_RE
	BTFSS	GR.R.X
	GOTO	DR.SC2.XY.SP.UP
	;MAX X CALIBR
	CALL	MAX.POS.X.L ;C
	MOVWF	POS.ZUB.X.L
	CALL	MAX.POS.X.H ;C
	MOVWF	POS.ZUB.X.H
	;
DR.SC2.32	MOVLW	.1
	CALL	LOAD.PIP
	MOVLW	.3
	CALL	LOAD.LED	
	GOTO	DR.S.TORM.OFF
	;
DR.SC2.4	
	BTFSC	Q.DR.ZUB_0
	GOTO	DR.S.TORM.OFF
	;
DR.SC2.47	BTFSC	DR.OFF
	GOTO	DR.S.TORM.ON
;
DR.SC2.5	BTFSC	ERR.POS
	GOTO	DR.SC2.67 ;MIN SP
;
; SQR^2(Q.DR.ZUB)*C.X-C.X1=RAS.SP
DR.SC2.6	
	BTFSC	XY.SP.UP.MODE
	GOTO	DR.OUT
	;
	BTFSC	SQR.JOB
	GOTO	DR.OUT
	;
	BSF	P.TORM.OFF
	BANKSEL	SQR.REZ.L
	MOVF	SQR.REZ.L,W
	BANKSEL	0H
	MOVWF	REZ.L
	;
	MOVLW	Q.DR.ZUB.L
	MOVWF	FSR
	CALL	L.SQR
	;
	CALL	C.Y.UP ;C
	BTFSS	DR.FR_RE
	CALL	C.Y.DOWN ;C
	BTFSS	DVIG.Y	
	CALL	C.X ;C
	;
	CALL	MUL1B1B ;W*REZ.L
	MOVLW	.10
	MOVWF	REG.AL
	CALL	DIV2B1B
	;
	CALL	C.Y1.UP ;C
	BTFSS	DR.FR_RE
	CALL	C.Y1.DOWN ;C
	BTFSS	DVIG.Y	
	CALL	C.X1 ;C
	;
	SUBWF	REZ.L,F
	MOVLW	.1
	BTFSS	STATUS,C
	SUBWF	REZ.M,F
	BTFSC	STATUS,C
	GOTO	DR.SC2.7
	;
DR.SC2.67	CLRF	REZ.L
	GOTO	L.SP.MIN
;
DR.SC2.7 ;L.SP.XY	
	CALL	MAX.PWM.X ;C
	BTFSC	DVIG.Y
	CALL	MAX.PWM.Y ;C
	MOVWF	REZ.H ;MAX
	;
	MOVF	REZ.M,F
	BTFSC	STATUS,Z
	GOTO	L.S.2
L.SP.MAX	MOVF	REZ.H,W ;L.MAX
	GOTO	L.S.OUT
	;
L.S.2	MOVF	REZ.L,W
	SUBWF	REZ.H,W
	BTFSS	STATUS,C
	GOTO	L.SP.MAX
	;CH.MIN
L.SP.MIN	CALL	MIN.PWM.Y.UP ;C
	BTFSS	DR.FR_RE
	CALL	MIN.PWM.Y.DOWN ;C
	BTFSS	DVIG.Y
	CALL	MIN.PWM.X ;C
	MOVWF	REZ.M
	;
	MOVF	REZ.L,W
	SUBWF	REZ.M,W ;MIN-CUR
	;
	MOVF	REZ.L,W
	BTFSC	STATUS,C
	MOVF	REZ.M,W ;L.MIN
	;
L.S.OUT	CALL	WR.PWM2
;
	GOTO	DR.OUT
;
DR.SC2.XY.SP.UP
	MOVLW	.19
	BTFSC	XY.SP.UP.MODE
	GOTO	DR.ERR.OUT
	;
	BSF	XY.SP.UP.MODE ;ON MODE
	CALL	TOUT.DR.XY.SP.UP ;C
	CALL	L.T.DR
	BSF	REZ.M,0
	GOTO	DR.SC2.7
	;};
DR.SC2.Z ;
;{
	BTFSS	DR.MAN
	GOTO	DR.SC2.Z.A
	;MAN MODE
	CALL	CH.GR.OUT
	XORLW	.12
	MOVLW	.12
	BTFSC	STATUS,Z
	GOTO	DR.ERR.OUT
	BTFSC	DR.OFF
	GOTO	DR.S.TORM.ON
	GOTO	DR.SC2.FIX.SP
;
DR.SC2.Z.A	CALL	CH.GR.OUT
	XORLW	.1
	MOVLW	.12
	BTFSS	STATUS,Z
	GOTO	DR.ERR.OUT
	;
DR.SC2.Z.2	BTFSC	DR.OFF
	GOTO	DR.S.TORM.ON
;
DR.SC2.Z.1	MOVLW	.19
	BTFSS	Z.T.DR.250
	GOTO	DR.ERR.OUT
	;
;LIM SP IN CUR POS
	BTFSC	DR.FR_RE
	GOTO	DR.SC2.Z.FR
;REAR
	MOVF	Z.STEP,F
	CALL	MAX.SP.Z.POS0 ;C
	BTFSC	STATUS,Z
	GOTO	DR.SC2.Z.LIM.SP
	MOVLW	.1
	XORWF	Z.STEP,W
	CALL	MAX.SP.Z.POS1 ;C
	BTFSC	STATUS,Z
	GOTO	DR.SC2.Z.LIM.SP
	GOTO	DR.SC2.Z.A.SP
;FRONT
DR.SC2.Z.FR	MOVLW	.13
	XORWF	Z.STEP,W
	CALL	MAX.SP.Z.POS13 ;C
	BTFSC	STATUS,Z
	GOTO	DR.SC2.Z.LIM.SP
	MOVLW	.12
	XORWF	Z.STEP,W
	CALL	MAX.SP.Z.POS12 ;C
	BTFSC	STATUS,Z
	GOTO	DR.SC2.Z.LIM.SP
	MOVLW	.11
	XORWF	Z.STEP,W
	CALL	MAX.SP.Z.POS11 ;C
	BTFSC	STATUS,Z
	GOTO	DR.SC2.Z.LIM.SP
;
DR.SC2.Z.A.SP ;AUTO SEL SP
	;
	BTFSC	ON.PIL
	BTFSS	ON.PIL1
	GOTO	DR.SC2.FIX.SP
	;
	CALL	RD.PWM2 ;OUT:REZ.H
	;
	CALL	C.MIN.POS.Z ;C
	MOVWF	Q.REG.H
	MOVF	Z.STEP,W
	SUBWF	Q.REG.H,W
	;
	BTFSC	STATUS,C
	GOTO	DR.SC2.Z.START
	;
	
	;BTFSC	H.F.XX
	;GOTO	DR.SC2.Z.START
;AUTO SPEED SEL
DR.SC2.Z.003	MOVF	H.F.H,F
	BTFSS	STATUS,Z
	GOTO	DR.SC2.Z.001
;
	CALL	H.POR.JOB.SP ;C
	SUBWF	H.F.L,W
	BTFSS	STATUS,Z
	BTFSS	STATUS,C
	GOTO	DR.SC2.Z.002
	;
DR.SC2.Z.001	;BSF	P.LED
	CALL	MAX.PWM.Z.FR ;C
	BTFSS	DR.FR_RE
	CALL	MAX.PWM.Z.RE  ;C
	;
	GOTO	DR.SC2.FS.1
	;
DR.SC2.Z.002	;BCF	P.LED
	CALL	MIN.PWM.Z ;C
	GOTO	DR.SC2.FS.1
;
DR.SC2.Z.START
	CALL	H.XX.SP.Z ;C
	;MOVWF	Q.REG.H  ;ST	
	;MOVF	H.F.H,F
	;BTFSS	STATUS,Z
	;GOTO	DR.SC2.Z.START.1 ;>255
	;
	;CALL	H.POR.XX.SP ;C
	;SUBWF	H.F.L,W
	;
	;CALL	H.XX.SP.Z ;C
	;BTFSC	STATUS,C
	;GOTO	DR.SC2.Z.START.1
	;
	;DECFSZ	Q.H.XX,F
	GOTO	DR.SC2.FS.1
	;
	;BCF	H.F.XX
	;GOTO	DR.SC2.Z.A.SP
;
DR.SC2.Z.START.1
	;MOVLW	.10
	;MOVWF	Q.H.XX
	;MOVF	Q.REG.H,W
	;GOTO	DR.SC2.FS.1	
;
DR.SC2.Z.LIM.SP
	MOVWF	REG.AL
	BTFSC	DR.FR_RE
	SUBWF	F.MANUAL.Z,W
	BTFSS	DR.FR_RE
	SUBWF	F.MANUAL.Z.RET,W
	MOVF	REG.AL,W
	BTFSC	STATUS,C
	GOTO	DR.SC2.L.SP
	;
DR.SC2.FIX.SP
	CALL	RD.PWM2 ;OUT:REZ.H
	;
	MOVF	F.MANUAL.X,W
	BTFSC	DVIG.Y
	MOVF	F.MANUAL.Y,W
	BTFSS	DVIG.Z
	GOTO	DR.SC2.FS.1
	MOVF	F.MANUAL.Z,W
	BTFSS	DR.FR_RE
	MOVF	F.MANUAL.Z.RET,W
	;
DR.SC2.FS.1	SUBWF	REZ.H,F
	BTFSS	STATUS,Z
DR.SC2.L.SP	CALL	WR.PWM2
	GOTO	DR.OUT
	;};
DR.ERR.OUT ;DR.TORM
;{
	CALL	L.ERR
	BSF	DR.ERR
	GOTO	DR.S.TORM
;
DR.S.TORM.OFF	
	BSF	P.TORM.OFF ;TORM.OFF
	GOTO	DR.S.TORM
DR.S.TORM.ON
	BCF	P.TORM.OFF
	BCF	DR.ERR
	;
DR.S.TORM
	BTFSS	DR.FR_RE
	BCF	P.S2
	BTFSC	DR.FR_RE
	BCF	P.S1
	;		
	MOVLW	.3 ;LAST LEVEL
	CALL	L.DR.STAT
	MOVLW	.5
	CALL	L.T.DR
	;};
DR.SC3
;{
	BTFSS	DVIG.Z
	GOTO	DR.SC3.1XY
	;
	BTFSS	GR.END.Z
	BTFSC	GR.START.Z
	GOTO	DR.SC3.NW ;NO WAIT
	GOTO	DR.SC3.1
;
DR.SC3.1XY	BTFSC	DR.ERR
	GOTO	DR.SC3.NW ;NO WAIT
;
DR.SC3.1
	BTFSS	Z.T.DR
	BTFSS	_VESPER.JOB
	GOTO	DR.OUT
;
DR.SC3.NW
	CALL	DR.SC.OFF
	;
	BTFSS	DR.ERR ;out with err
	GOTO	DR.SC3.Z
	;
	BCF	DR.ERR
	GOTO	DR.OUT
;
;;; CH PREV DVIG JOB FOR NEXT AUTO JOB
;
;
DR.SC3.Z	BTFSS	DR.MAN
	BTFSS	RAD.OK
	GOTO	DR.OUT
	;
	BTFSC	Z.LIM.POS.MAN
	GOTO	DR.OUT
	;
	BTFSS	DVIG.Z
	GOTO	DR.SC3.XY
;AFTER Z
	;	
	BTFSS	Z.S.OK ;izm max pos (inv)
	GOTO	DR.SC3.OFF
	;
	;BCF	H.F.XX  ;! ADD 02.06.20
	;	
	BTFSC	MAX.POS.Z
	GOTO	DR.SC3.Z.MAX
	;	
	MOVLW	.6  ;AFTER Z ; X or Y
	CALL	L.DR.STAT
	;
	GOTO	DR.OUT
	;
DR.SC3.Z.MAX
	BTFSS	DR.A.NOT.PAUSE
	GOTO	DR.SC3.X.3
	GOTO	DR.SC3.51
;
DR.SC3.XY
;
DR.SC3.Y	BTFSS	DVIG.Y
	GOTO	DR.SC3.X
;AFTER Y	;GO TO 0 & AFTER X RET
	;
DR.SC3.Y.3	BCF	X.RET
	;
DR.SC3.Y.4
	MOVLW	.4
	CALL	L.DR.STAT
	GOTO	DR.OUT
;
;AFTER X
DR.SC3.X	BTFSC	DVIG.X
	BTFSC	CLEAN.X
	GOTO	DR.OUT
	;
	BTFSC	X.RET
	GOTO	DR.SC3.Y.4
	; GOTO RET X
	
	;
DR.SC3.X.3	BTFSC	DR.A.PAUSE.OFF
	GOTO	DR.SC3.51
	BSF	DR.A.PAUSE
	GOTO	DR.OUT
;AUTO Z
DR.SC3.51
	MOVLW	.5
	CALL	L.DR.STAT
	MOVLW	.2
	BSF	L.IMP
	CALL	LOAD.PIP
	;CALL	DELAY.RET.Z  ;C
	;CALL	L.T.DR.250
	GOTO	DR.OUT
;
DR.SC3.OFF

	BCF	DR.ON
	CLRW
	CALL	LOAD.LED
	GOTO	DR.OUT
	;};
DR.SC4 ;AFTER Y (& FULL LEFT) ;X RET
;{
	BTFSC	Z.T.DR
	GOTO	DR.OUT
	;
	CLRF	FL.DR ;CL OLD STATUS
	BSF	DVIG.X
	;
	BTFSC	X.RET
	GOTO	DR.SC4.RET.2
	; DR.FR_RE=0
	BSF	X.RET  ;!
	BSF	F.AX.X  ; FIRST X AXIS NOT JOB CURRENT SLOY
	BSF	DR.UNLIM
	CALL	DRLD.XY  ;CL L.DR.STAT
	GOTO	DR.OUT	
;
DR.SC4.RET.2
	BCF	X.RET
	CALL	CH.ST.AX.SH.HORDA
	;
	MOVFQFQ	REZ.L,.2,Q.REG.L,.2 ;ST AXIS CUR HORDA
	;
	BTFSC	RAD2.OK
	GOTO	DR.SC4.R2
	;
	BTFSC	UP.HORDA.OK
	GOTO	DR.SC4.NP
	;
	CALL	CH.ST.AX.CUR.HORDA
	GOTO	DR.SC4.R2.01
	;
DR.SC4.NP	
	CALL	DRLD.NEW.POS
	BCF	F.AX.X  ;FIRST X AXIS JOB
	GOTO	DR.OUT
	;
	;
DR.SC4.R2	; MID POS - H/2(R2)
	CALL	MID.POS.X.L ;C
	MOVWF	REZ.L
	CALL	MID.POS.X.H ;C
	MOVWF	REZ.M
	;
	MOVLW	CUR.HORDA2.L
	CALL	SUB22
	;
DR.SC4.R2.01
	MOVFQFQ	REZ.L,.2,Q.NN2.L,.2 ;ST AXIS CUR HORDA R2 (or R1)
	;
	BTFSS	UP.HORDA.OK
	GOTO	DR.SC4.R2.1
	;
	MOVFQFQ	Q.REG.L,.2,REZ.L,.2 ;AXIS CUR HORDA
	MOVLW	Q.NN2.L
	CALL	SUB22
	;
	CALL	MAX.PIL.X ;C
	MOVWF	REG.AL
	MOVLW	REG.AL
	CALL	SUB21
	;
	BTFSC	A_B
	GOTO	DR.SC4.R2.1
	;
	MOVFQFQ	Q.REG.L,.2,REZ.L,.2
	GOTO	DR.SC4.NP
	;
DR.SC4.R2.1
	CALL	MAX.PIL.X ;C
	ADDWF	Q.NN2.L,W
	MOVWF	REZ.L
	MOVLW	.1
	BTFSS	STATUS,C
	CLRW
	ADDWF	Q.NN2.H,W
	MOVWF	REZ.M
	;
	CALL	DRLD.NEW.POS
	GOTO	DR.OUT
	;};
DR.SC5 ;AFTER X; LOAD Z JOB
;{
	BTFSC	Z.T.DR
	GOTO	DR.OUT
	;
	CLRF	FL.DR
	BSF	DVIG.Z
	;
	;CALL	DELAY.DR.A.Z
	;CALL	L.T.DR.250
	;
	CALL	C.MIN.POS.Z ;C
	MOVWF	REG.AL
	MOVF	Z.STEP,W
	SUBWF	REG.AL,W
	;
	BCF	DR.FR_RE
	BTFSC	STATUS,C
	BSF	DR.FR_RE
	;
	CALL	DRLD.Z
	XORLW	.1
	BTFSC	STATUS,Z
	GOTO	DR.OUT
	;
	XORLW	.1
	GOTO	DR.ERR.OUT
	;};
DR.SC6 ;AFTER Z ; X or Y
;{
	BTFSC	Z.T.DR
	GOTO	DR.OUT
	;
	CLRF	FL.DR
	BSF	DVIG.X
	BSF	DR.FR_RE ;RIGHT
	;
	BTFSS	UP.HORDA.OK
	GOTO	DR.SC6.OUT.RIGHT	
	;
;L or R OF LEFT AXIS CUR HORDA?
	; MID POS - CUR H/2
	BTFSS	F.AX.X
	GOTO	DR.SC6.R1.2
	;
	CALL	CH.ST.AX.SH.HORDA
	;
	MOVLW	POS.MM.X.L
	CALL	SUB22
	;
DR.SC6.6	BTFSS	A_B
	GOTO	DR.SC6.R1.2 ;CUR.POS RIGHT BY ST.AXIS
	;
	CALL	MAX.PIL.X ;C
	MOVWF	Q.NN1.L
	MOVLW	Q.NN1.L
	CALL	SUB21
	;
	BTFSS	B_A
	GOTO	DR.SC6.4
	;
	;IMIT RET.X ; GO TO X FIRST AXIS
	CALL	CH.ST.AX.SH.HORDA
	;
	CALL	DRLD.NEW.POS
	BCF	F.AX.X ;FIRST X AXIS JOBER
	GOTO	DR.OUT
;
DR.SC6.4
	;MAX PIL X = Q.NN1.L
	CLRF	Q.NN1.H
	;
	CALL	DRLD.XY
	XORLW	.1
	BTFSC	STATUS,Z
	GOTO	DR.OUT
	GOTO	DR.NN.ERR	
	;
;;L or R OF RIGHT AXIS CUR HORDA?
DR.SC6.R1.2
	BTFSC	OVER.POS.X.SHORT.HORDA
	GOTO	DR.SC6.OUT.RIGHT
;
;IN OBREZ ZONA
	BANKSEL	OST.POS.MM.X.L
	MOVFQFQ	OST.POS.MM.X.L,.2,REZ.L,.2 ;ST ;OSTATOK:POS.X...SHORT.HORDA
	BANKSEL	0H
	;
	MOVLW	RAZMER.X
	CALL	SUB21
	;
	BTFSC	B_A ;B>A?
	GOTO	DR.A.X.LAST.PIL.X ;OST<RAZMER.X
;RAZMER.X PIL
	MOVF	RAZMER.X,W
	MOVWF	Q.NN1.L
	CLRF	Q.NN1.H	
	CALL	DRLD.XY ;REG (0x77-0x7F) USED
	XORLW	.1
	BTFSS	STATUS,Z
	GOTO	DR.NN.ERR
	GOTO	DR.OUT
;
DR.A.X.LAST.PIL.X
;
	CALL	L.IND2.EMP
	BCF	STATUS,IRP
	MOVLW	OST.POS.MM.X.L
	BSF	FL.LOCAL1
	CALL	L.IND3.WADR
	CLRF	FL.DR
	GOTO	DR.OUT
;
;	
DR.SC6.OUT.RIGHT
	;
	BTFSS	RAD2.OK
	GOTO	DR.SC6.R1.RIGHT
	;
;;L or R OF RIGHT AXIS CUR HORDA2 ?
	; MID POS - H/2
	CALL	MID.POS.X.L ;C
	MOVWF	REZ.L
	CALL	MID.POS.X.H ;C
	MOVWF	REZ.M
	;
	MOVLW	CUR.HORDA2.L
	CALL	ADD22
	;
	MOVLW	POS.MM.X.L
	CALL	SUB22
	;
	BTFSC	B_A
	GOTO	DR.SC6.NEW.POS.Y
	;
DR.A.X.LAST.PLINTUS
;
	BANKSEL	0H
	PAGESEL	$
	BCF	DVIG.Y
	BSF	DVIG.X
	BSF	DR.FR_RE
	;
	CALL	MAX.PIL.X ;C DEF:170
	MOVWF	Q.NN1.L
	CLRF	Q.NN1.H
	;
	CALL	DRLD.XY
	;
	XORLW	.1
	BTFSC	STATUS,Z
	GOTO	DR.OUT
	;
	BSF	DR.UNLIM
	CALL	DRLD.XY
	BCF	DR.UNLIM
	;
	XORLW	.1
	BTFSS	STATUS,Z
	GOTO	DR.NN.ERR
	;
	MOVLW	.5  ;ZUB 
	MOVWF	REZ.H
	;
DR.AXLP.IT1
	MOVF	REZ.H,W
	SUBWF	Q.DR.ZUB.L,F
	MOVLW	.1
	BTFSS	STATUS,C
	SUBWF	Q.DR.ZUB.H,F
	BTFSC	STATUS,C
	GOTO	DR.OUT
	;
	MOVF	REZ.H,W
	ADDWF	Q.DR.ZUB.L,F
	MOVLW	.1
	BTFSC	STATUS,C
	ADDWF	Q.DR.ZUB.H,F
	;
	DECF	REZ.H,F
	GOTO	DR.AXLP.IT1
;
;
DR.SC6.R1.RIGHT	
;
	BTFSS	UP.HORDA.OK
	GOTO	DR.SC6.RR1
	;
	BTFSS	SHORT.CUR.HORDA
DR.SC6.RR1	BTFSC	OVER.POS.X.LONG.HORDA
	GOTO	DR.SC6.NEW.POS.Y
	GOTO	DR.A.X.LAST.PLINTUS
;
;
; Y JOB
DR.SC6.NEW.POS.Y
	CALL	A.NEW.POS.Y
;
DR.SC7
	BSF	DVIG.Y
	;
	BTFSC	RAD2.OK
	BTFSS	Y.F.AXIS
	GOTO	DR.SC6.R1.01
	;
	MOVF	RAZMER.Y,W
	CALL	RAZMER1_W.PIL.TO.ZUB
	MOVFQFQ	REZ.L,.2,BCD.NN.L,.2  ;RAZMER.Y+W.PIL [ZUB]
	;
	MOVFQFQ	POS.ZUB.Y.L,.2,REZ.L,.2
	MOVLW	Y.F.POS.ZUB.L  ;[ZUB]
	CALL	SUB22
	;
	BTFSS	A_B
	GOTO	DR.SC6.YR2.CL
	;
	MOVLW	BCD.NN.L
	CALL	SUB22
	;
	BTFSC	A_B
	GOTO	DR.SC6.R2.01
	;
	MOVFQFQ	Y.F.POS.ZUB.L,.2,REZ.L,.2
	CALL	DRLD.NEW.POS.ZUB
	GOTO	DR.OUT
	;
DR.SC6.R2.01	
	MOVF	RAZMER.Y,W
	MOVWF	Q.NN1.L
	CLRF	Q.NN1.H
	;
	CALL	DRLD.XY
	GOTO	DR.OUT
	;
DR.SC6.YR2.CL
	CLRF	Y.F.POS.ZUB.L
	CLRF	Y.F.POS.ZUB.H
	BCF	Y.F.AXIS
	;
DR.SC6.R1.01
	
	MOVFQFQ	POS.ZUB.Y.L,.2,REZ.L,.2
	;
	CALL	MIN.POS.Y.L  ;C ;ZUB
	MOVWF	REG.AL
	CALL	MIN.POS.Y.H
	MOVWF	REG.AM
	;
	MOVLW	REG.AL
	CALL	SUB22
	;
	BTFSS	A_B
	GOTO	DR.A.END.JOB
	;
	MOVLW	.10  ;ZUB
	MOVWF	REG.AL
	MOVLW	REG.AL
	CALL	SUB21
	;
	BTFSS	A_B
	GOTO	DR.A.END.JOB
	;
	MOVF	Q.SLOY2.Y,F
	BTFSS	STATUS,Z
	GOTO	DR.SC6.07
	;
	MOVF	RAZMER.Y,W
	MOVWF	Q.NN1.L
	CLRF	Q.NN1.H
	;
DR.SC6.05
	;
	CALL	DRLD.XY
	;
	XORLW	.1
	BTFSC	STATUS,Z
	GOTO	DR.OUT
	;
	MOVLW	.2
	BSF	L.IMP
	LCALL	LOAD.PIP
	;
	BSF	DR.UNLIM
	CALL	DRLD.XY
	GOTO	DR.OUT
;
DR.SC6.07
	MOVF	RAZMER2.Y,W
	MOVWF	Q.NN1.L
	CLRF	Q.NN1.H
	;
	DECF	Q.SLOY2.Y,F
	GOTO	DR.SC6.05
;
DR.A.END.JOB
	CLRF	FL.DR
	CALL	CL.RAD_HORDA
	NOP
	BCF	ON.PIL
	BCF	ON.PIL1
	;
	CALL	T.JOB.IND
	;
	GOTO	DR.OUT
;
;
DR.NN.ERR	XORLW	.1
	GOTO	DR.ERR.OUT
	;};	
DR.OUT
;
	LGOTO	BASE1