mov h,b ; если четный
mov l,c ; то сдвинем ст.тетраду
dad h ; на сторону младшей
dad h
dad h
dad h
mov b,h
mov c,l ; и загрузим назад в (BC)
LowTetr: rlc ; умножаем (A)*16
rlc
rlc
rlc ; умножили на 16
mov e,a
mvi d,0
lxi h,Open1-16 ; и прибавим к базе
call ADD16 ; спозиц. на нужныйпорт
mov a,c ; проинвертируем что было в (C)
cma
mov c,a ; назад в (C)
pchl ; прыгнем на Open...
Open1: lda Mirror1 ; зеркало вых. на 1 и 2 турникет
ora b ; вкл чего надо (1)
ana c ; выкл чего не надо (1)
sta Mirror1 ; запомнить в зеркале
out Pout1 ; вывести в порт
pop psw ; восст. рег. (A)
RET
nop ;
nop ;
nop ;
nop ; выравн. до 16 байт
Open2: lda Mirror1 ; зеркало вых. на 1 и 2 турн.
ora b ; вкл чего надо (2)
ana c ; выкл чего ненадо (2)
sta Mirror1 ; запомнить в зеркале
out Pout1 ; вывести в порт
pop psw ; восст. рег. (A)
RET
nop ;
nop ;
nop ;
nop ; выравн. до 16 байт
Open3: lda Mirror2 ; зеркало вых. на 1 и 2 турникет
ora b ; вкл чего надо (1)
ana c ; выкл чего не надо (1)
sta Mirror2 ; запомнить в зеркале
out Pout2 ; вывести в порт
pop psw ; восст. рег. (A)
RET
nop ;
nop ;
nop ;
nop ; выравн. до 16 байт
Open4: lda Mirror2 ; зеркало сост. на 1 и 2 турн.
ora b ; вкл чего надо (2)
ana c ; выкл чего ненадо (2)
sta Mirror2 ; запомнить в зеркале
out Pout2 ; вывести в порт
pop psw ; восст. рег. (A)
RET
nop ;
nop ;
nop ;
nop ; выравн. до 16 байт
Open5: lda Mirror3 ; зеркало вых. на 1 и 2 турникет
ora b ; вкл чего надо (1)
ana c ; выкл чего не надо (1)
sta Mirror3 ; запомнить в зеркале
out Pout3 ; вывести в порт
pop psw ; восст. рег. (A)
RET
nop ;
nop ;
nop ;
nop ; выравн. до 16 байт
Open6: lda Mirror3 ; зеркало вых. на 1 и 2 турн.
ora b ; вкл чего надо (2)
ana c ; выкл чего ненадо (2)
sta Mirror3 ; запомнить в зеркале
out Pout3 ; вывести в порт
pop psw ; восст. рег. (A)
RET
nop ;
nop ;
nop ;
nop ; выравн. до 16 байт
Open7: lda Mirror4 ; зеркало вых. на 1 и 2 турникет
ora b ; вкл чего надо (1)
ana c ; выкл чего не надо (1)
sta Mirror4 ; запомнить в зеркале
out Pout4 ; вывести в порт
pop psw ; восст. рег. (A)
RET
nop ;
nop ;
nop ;
nop ; выравн. до 16 байт
Open8: lda Mirror4 ; зеркало вых. на 1 и 2 турн.
ora b ; вкл чего надо (2)
ana c ; выкл чего ненадо (2)
sta Mirror4 ; запомнить в зеркале
out Pout4 ; вывести в порт
pop psw ; восст. рег. (A)
RET
;---------------------------------; TrToVRAM
; Обновление дисплейного RAM по содержимому счетчика людей.
;---------------------------------TrToVRAM: ;
lda Counter ; возьмем 10+1
mov b,a ; запомним
ani 0Fh ; выделим единицы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.