вання від клавіатури
139 in al, PKDID; вважати номер клавіші з ПККІ
140 test al, 64; аналізувати його значення
141 jz need_output; натиснута клавіша друку
142 test al, 63
jz need_comp; натиснута клавіша обробки
144 cli; заборонити переривання
145 inc si
mov ds: [si], al; інакше збережемо її код в області виводу
147 sti; дозволити переривання
148 jmp end_input
need_comp:
call computing
need_output:
int 32; виклик п/програми виведення
153 end_input:
154 mov al, 64h; очищення регістра поточних переривань ВКП
155 out PICR1, al
iret
input ENDP
158 output PROC NEAR; обробник переривання від принтера
159 and si, si; встановити прапор z
160 jz end_out; якщо si = 0, дані висновку не готові
161 ready:
in al, PPIB; вважати слово стану принтера (порт У ППІ)
163 or al, 00011111b; виділити значущі біти
164 test al, 19h; 11001b-слово стану принтера, готового до прийому
165 jnz ready; чекати готовності принтера
166 cli; заборонити переривання
167 mov al, ds: [si]; отримати черговий байт з пам'яті
168 dec si; перевести покажчик на наступний елемент
169 sti; дозволити переривання
170 out PPIA, al; вивести поточний байт на принтер (порт А ППІ)
171 mov al, LPTW1; керуюче слово для принтера - встановити стрибає
172 out PPIC, al
173 mov al, LPTW2; зняти стрибає
174