📄 io.asm
字号:
#include ht48r05A-1.inc
data .section 'data'
;----------Initialize
count1 db ?
count2 db ?
count3 db ?
cotA db ?
cotB db ?
stp0 db ?
stp1 db ?
stp2 db ?
stp3 db ?
statetemp db ?
tempAF db 00000000b
countAF db 11111111b
tempkey db ?
;----------Procedural block, Port initializes
code .section at 0 'code'
org 00h
jmp start
start:
clr pac
clr pbc
mov a,0ffh
mov pcc,a
clr pa
clr pb
clr pc
;-------Delay-Protect
call DelayProtect
;call DelayProtect
;----------Initialize systematically
mov a,0
mov statetemp,a
;----------Hoster procedure body
we:
;-------Change New-Model
state_change: mov a,00000011b
and a,statetemp
mov stp0,a
mov stp1,a
mov stp2,a
mov stp3,a
;--------Model-Judgement
mov a,0
xor a,stp0
mov tempkey,a
sz tempkey
jmp change1
jmp state0
change1: mov a,00000001b
xor a,stp1
mov tempkey,a
sz tempkey
jmp change2
jmp state1
change2: mov a,00000010b
xor a,stp2
mov tempkey,a
sz tempkey
jmp change3
jmp state2
change3: mov a,00000011b
xor a,stp3
mov tempkey,a
sz tempkey
jmp state0
;----------------Change Error
jmp state3
state0: mov a,10010010b
mov pa,a
mov a,1
mov cotA,a
mov a,5
mov cotB,a
st01:
call Delayn
sdz cotB
jmp st01
sdz cotA
jmp st01
clr pa
mov a,1
mov cotA,a
mov a,5
mov cotB,a
st02:
call Delayn
sdz cotB
jmp st02
sdz cotA
jmp st02
jmp we
state1:
mov a,11001100b
mov pa,a
mov a,1
mov cotA,a
mov a,5
mov cotB,a
st11:
call Delayn
sdz cotB
jmp st11
sdz cotA
jmp st11
clr pa
mov a,1
mov cotA,a
mov a,5
mov cotB,a
st12:
call Delayn
sdz cotB
jmp st12
sdz cotA
jmp st12
jmp we
state2: mov a,11100111b
mov pa,a
mov a,1
mov cotA,a
mov a,5
mov cotB,a
st21:
call Delayn
sdz cotB
jmp st21
sdz cotA
jmp st21
clr pa
mov a,1
mov cotA,a
mov a,5
mov cotB,a
st22:
call Delayn
sdz cotB
jmp st22
sdz cotA
jmp st22
jmp we
state3: mov a,11110011b
mov pa,a
mov a,1
mov cotA,a
mov a,5
mov cotB,a
st31:
call Delayn
sdz cotB
jmp st31
sdz cotA
jmp st31
clr pa
mov a,1
mov cotA,a
mov a,5
mov cotB,a
st32:
call Delayn
sdz cotB
jmp st32
sdz cotA
jmp st32
jmp we
;Hoster prolong time processor bill
Delayn proc
sdz tempAF
jmp next
jmp changeAF
nextAF: dec countAF
clr pb.2
next:mov a,00000000b
mov tempAF,a
mov a,pc
and a,00000010b
mov tempkey,a
call delaykey
mov a,pc
and a,00000010b
and a,tempkey
mov tempkey,a
sz tempkey
jmp enddelay
jmp changeAF
changeAF:
set pb.2
sdz countAF
jmp conAF
jmp nextAF
conAF:mov a,00000001b
mov tempAF,a
mov a,pc
and a,00000001b
mov tempkey,a
call delaykey
mov a,pc
and a,00000001b
and a,tempkey
mov tempkey,a
sz tempkey
jmp enddelay
jmp changeINC
changeINC:
;call DelayProtect
clr pb.2
mov a,00000000b
mov tempAF,a
mov a,00000011b
and a,statetemp
;===== Model inc ========
inc statetemp
mov a,00000011b
and a,statetemp
mov statetemp,a
mov pb,a
jmp enddelay
enddelay: ret
Delayn endp
;----Press key disappears quiver delay
delaykey proc
mov a,64h
mov count1,a
mov a,0ffh
mov count2,a
del:
sdz count2
jmp del
sdz count1
jmp del
ret
delaykey endp
DelayProtect proc
mov a,00ah
mov count1,a
mov a,0ffh
mov count2,a
mov count3,a
delp:
sdz count3
jmp delp
sdz count2
jmp delp
sdz count1
jmp delp
ret
DelayProtect endp
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -