

ORG 8200H
LD BC,0F03H ;Inizializza Porta B PIO in Modo 0 (Uscita)
OUT (C),B
XOR A
LD HL,TAB ;Inizializza il puntatore alla tabella sequenza
LD A,(HL) ;pilotaggio bobine
OUT (1),A
LD B,128 ;b contiena la posizione
LMAIN CALL LEGCONF ;Chiama sub.lettura confront
JR Z,LMAIN
JR C,SX
DX CP 10 ;controllo soglia
JR C,LMAIN
LD A,255 ;controllo limita
CP B
JR Z,LMAIN
CALL AVANTI
CALL RIT
JR LMAIN
SX CP 0FFH-9
JR NC,LMAIN
LD A,0
CP B
JR Z,LMAIN
CALL INDIETRO
CALL RIT
JR LMAIN
LOOP CALL AVANTI
CALL RIT
LD A,200
CP B
JR NZ,LOOP
LOP JR LOP
LEGCONF LD C,0F8H ;Legge e confronta il valore analogico
OUT (C),A
CALL MRIT
IN D,(C)
INC C
OUT (C),A
CALL MRIT
IN A,(C)
SUB D
RET
MRIT PUSH BC
LD B,10
LRI DJNZ LRI
POP BC
RET
AVANTI LD DE,TAB+3
PUSH HL
AND A
SBC HL,DE
POP HL
JR NZ,AV1
LD HL,TAB
JR AV2
AV1 INC HL
AV2 LD A,(HL)
OUT (1),A
INC B
RET
INDIETRO LD DE,TAB
PUSH HL
AND A
SBC HL,DE
POP HL
JR NZ,ID1
LD HL,TAB+3
JR ID2
ID1 DEC HL
ID2 LD A,(HL)
OUT (1),A
DEC B
RET
RIT PUSH BC
LD BC,1000
LOOPR DEC BC
LD A,B
OR C
JR NZ,LOOPR
POP BC
RET
DECRIT LD HL,400
SBC HL,DE
RET NC
DEC DE
RET
TAB DEFB 1010B
DEFB 1001B
DEFB 0101B ;
DEFB 0110B
END
FAP = 0010B
FAN = 0001B
FA0 = 0011B ;
FBP = 1000B
FBN = 0100B
FB0 = 1100B ;
END