JR NZ,V I ;если в аккумуляторе не ноль - повторить цикл
LD BC,2048
V2 LDA,170 ;10101010
LD (HL),A
XOR (HL)
OR D
JP Z,V21
OR 0
JR NZ,V21
LD A,E
SBC 100
JP P,ERROR
V21 INC HL
INC DE
DEC ВС
LD A,B
AND С
JR NZ,V2
LD HL,32768
LD BC,2048
V3 LDA,55 ;01010101
LD (HL),A
XOR (HL)
JP Z,V31
LD A,D
OR 0
JR NZ,V31
LD A,E
SBC 100
JP P,ERROR
V31 INC HL
INC DE
DEC ВС
LD A,B
AND С
JR NZ,V3
LD HL,32768
LD BC,2048
V4 LDA.55 ;10101010
LD (HL),A
XOR (HL)
JPZ,V41
LD A,D
OR 0
JR NZ,V41
LD A,E
SBC 100
JP P,ERROR
V41 INC HL
INC DE
DEC ВС
LD A,B
AND С
JR NZ,V4
LD HL,32768
LD BC,2048
V5 LD A,0 ;00000000
LD (HL),A
XOR (HL)
JPZ,V51
LD A,D
OR 0
JR NZ,V51
LD A,E
SBC 100
JP P,ERROR
V51 INC HL
INC HL
INC DE
DEC ВС
LD A,B
AND С
JR NZ,V5
JP WORK;переход к нормальной работе
ERROR LD ВС,3000 ;количество импульсов звука
SERR LD A,16
OUT (249),А ;уст. I в бите порта для формирования импульса
S 1 LD DE,50 ;50 циклов - длительность импульса
DEC DE
LD A,D
AND E
JR NZ,S1
LD A,0
OUT (249),A ;остановка 0 - окончание импульса
DEC ВС
LD A,B
AND С
JR NZ,SERR
OUT (249),51 ;передача на индикатор сигнала ошибки ;запятая на 2-м индикаторе и «занято» ла линию абонентов
LD С,255 ;маска «все единицы»
LD A,6
OUT (220),A ;опрос 1 линии клавиатуры
IN A,(222) ;прием байта данных
XOR С ;проверка на равенство
JP Z,KL ;нажата клавиша
LD A,5
OUT (220),A ;опрос 2 линии клавиатуры
IN A,(222)
XOR С
JP Z,KL
LD A,3
OUT (220),A ;опрос 3 линии клавиатур
IN A,(222)
JP Z,KL
SEARCH LD A,6
OUT (220),A ;oпрос 1 линии клавиатуры
IN А,(222) ;прием байта данных
PUSH AF ;запомним аккумулятор в стеке
AND 14 ;проверка 1-й возвратной линии на 0
JP Z,KL 1 ;нажата клавиша «1»—обработка результата
POP АР ;возврат аккумулятора из стека
PUSH AF ;запомним аккумулятор в стеке
AND 13 ;проверка 2-й возвратной линии на 0
JP Z,KL4 ;нажата клавиша «4» - обработка результата
POP AF ;возврат аккумулятора из стека
PUSH AF ;запомним аккумулятор в стеке
POP AF ;возврат аккумулятора из стека
PUSH AF запомним аккумулятор в стеке
AND 11 ;проверка 3-й возвратной линии на 0
JP Z,KL7 ;нажата клавиша «7» - обработка результата
POP AF ;возврат аккумулятора из стека
PUSH AF ;запомним аккумулятор в стеке
POP AF ;возврат аккумулятора из стека
PUSH AF ;запомним аккумулятор в стеке
AND 7 ;проверка 4-й возвратной линии на 0
JP Z,KL7 ;нажата клавиша «#» - обработка результата
POP AF;возврат аккумулятора из стека
LDA,5
OUT (220),A ;опрос 2 линии клавиатуры
IN A,(222)
PUSH AF
AND 14
JP Z,KL2 ;нажата клавиша «2» - обработка результата
POP AF
PUSH AF
AND 13
JP Z,KL5 ;нажата клавиша «5» - обработка результата
POPAF
PUSH AF
POP AF
PUSH AF
AND 11
JP Z,KL8 ;нажата клавиша «8» - обработка результата
POP AF
PUSH AF
POP AF
PUSH AF
AND 7
JP Z,KL3 ;нажата клавиша «3» - обработка результата
POP AF
LD A,3
OUT (220),A ;onpoc 3 линии клавиатуры
IN A,(222)
PUSH AF
AND 14
JP Z,KL3 ;нажата клавиша «З» - обработка результата
POP AF
PUSH AF
AND 13
JP Z,KL6 ;нажата клавиша «6» - обработка результата
POP AF
PUSH AF
POP AF
PUSH AF
AND 11
JP Z,KL9 ;нажата клавиша «9» - обработка результата
POP AF
PUSH AF
POP AF
PUSH AF
AND 7
JP Z,KLZ ;нажата клавиша «*» - обработка результата
POP AF
RET ;возврат
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.