call
jc
dec
jb
orl
mov
mov
rr
add
mov
mov
mov
anl
orl
mov
sjmp
numrun:
mov
anl
xrl
jnz
mov
add
mov
mov
inc
jnb
mov
nwrap:
mov
sjmp
storetime:
mov
rl
add
mov
mov
mov
inc
mov
mov
call
mov
mov
inc
ljmp
ljmp
terminate:
mov
clr
clr
ret
endp
;---------------------------------------------------------------------------
; recall timer values
proc
setb
setb
clr
clr
mov
call
readnum
; number entered?
numrun
; no-->
a
; must be in range 0..7
acc.3,numrun
a,r6
; otherwise merge into station marker
r6,a
a,r2
; calculate address of station marker
a
; we know that bit 0 was 0!
a,#prog_perm
r0,a
a,r6
; store station to RAM
@r0,a
a,#7
; display in number LEDs
a,#80h
auxdata,a
storetime
; go on storing time
a,clk_msec
; time to increment aux display?
a,#0e0h
a,r7
progloop
; no->
a,r7
; calculate next time
a,#20h
r7,a
a,auxdata
; increment display
a
acc.3,nwrap
a,#80h
auxdata,a
progloop
a,r2
; success: calculate address
a
a,#time_permon
; of time to write
r0,a
a,r4
; save time
@r0,a
r0
a,r5
@r0,a
clrdisp
; clear display again
dispdata+2,#1
a,r2
; go on with next time
a
stepdisp
loop
; shouldn't be reached
auxdata,#15
; turn LEDs off afterwards
AM
FM
check
ON
; turn tuner off
MUTE
AM
FM
auxdata,#15
; turn LEDs off
readnum
; wait for a number to be entered
Need help?
Do you have a question about the RT200 and is the answer not in the manual?