📄 alarm.asm
字号:
bra flashmalm2
flashmalm1: bbs0 <SysF,flashmalm3 ; Skip if complete second.
lda #SpaceChar ; Blank MALMMinute.
sta TextBuffor+45H+3 ;;;;2*16+8
sta TextBuffor+46H+3 ;;2*16+9
flashmalm2: ;LUpdateScreen ; Update multi-alarm's screen.
jsr dispalarmbmp
rts ; Return to superstructure.
flashmalm3: jsr DisplayMAlarm ; Update multi-alarm's screen.
rts ; Return to superstructure.
;[P]----------------------[P]
; Display calendar data.
;[P]----------------------[P]
DisplayDate:
lda <ViewYear
cmp #31h
bcs displaydate1 ; Skip if 1931 ~ 1999.
stz <ox
lda #16
sta <oy
ljprintimage eforyeli
lda #8
sta <ox
lda #16
sta <oy
ljprintimage lingforyeli
bra displaydate2
displaydate1:
stz <ox
lda #16
sta <oy
ljprintimage yiforyeli
lda #8
sta <ox
lda #16
sta <oy
ljprintimage jiuforyeli
displaydate2:
lda #16
sta <ox
sta <oy
lda <ViewYear
jsr Ba2xyCH
phy
txa
jsr publicshow09
lda #24
sta <ox
lda #16
sta <oy
ply
tya
jsr publicshow09
lda #32
sta <ox
lda #16
sta <oy
ljprintimage yearfontforyeli
lda #8
sta <ox
lda #32
sta <oy
lda <ViewMonth
jsr Ba2xyCH
cpx #0
bne displaydate3 ; Skip if 1x.
;;ldx #SpaceChar
phy
ljprintimage nulldraw
bra displaydate3xno0
displaydate3:
phy
txa
jsr publicshow09
displaydate3xno0:
lda #16
sta <ox
lda #32
sta <oy
ply
tya
jsr publicshow09
lda #24
sta <ox
lda #32
sta <oy
ljprintimage monthfontforyeli
;LUpdateScreen ; Update calendar screen.
jsr dispalarmbmp
rts ; Return to superstructure.
;[S]------------------------[S]
; Display stop-watch data.
;[S]------------------------[S]
DisplaySWatch: ; LSetCur 0,0
; LPrint SWATCHDSLine0 ; Display "【秒表】" on TextBuffor.
; lda #00000100b
; bit AlarmFlag4
; beq displayswatch2 ; Skip if stop.
; lda #00001000b
; bit AlarmFlag4
; bne displayswatch1 ; Skip if pause.
; LPrint SWATCHDSLine2 ; Display "启动" on TextBuffor.
; bra displayswatch4
displayswatch1:; LPrint SWATCHDSLine3 ; Display "暂停" on TextBuffor.
; bra displayswatch4
displayswatch2:; lda #00001000b
; bit AlarmFlag4
; bne displayswatch1 ; Skip if pause.
; lda #00h
; cmp SWHour
; bne displayswatch3 ; Skip if SWHour <> 0.
; cmp SWMinute
; bne displayswatch3 ; Skip if SWMinute <> 0.
; cmp SWSecond
; bne displayswatch3 ; Skip if SWSecond <> 0.
; bra displayswatch4
displayswatch3:; LPrint SWATCHDSLine1 ; Display "停止" on TextBuffor.
displayswatch4:; LCheckCRLF
; lda #':' ; Display ":" on TextBuffor.
; sta TextBuffor+2eh ;;30h ;;+2*16+5
; sta TextBuffor+31h ;;33h ;;+2*16+8
; lda #00000100b
; bit AlarmFlag4
; beq displayswatch6 ; Skip if stop.
; lda #00001000b
; bit AlarmFlag4
; beq displayswatch6 ; Skip if go.
; bbs0 <SysF,displayswatch6 ; Skip if complete second.
; lda #SpaceChar ; Blank ":".
; sta TextBuffor+2eh ;;30h ;;+2*16+5
; sta TextBuffor+31h ;;33h ;;+2*16+8
displayswatch6:; lda AlarmFlag4
; bit #00001000b
; bne test1
; lda SWHour
; bra displayswatch7
test1: ; lda SWHourPause
displayswatch7:; jsr Ba2xyCH
; stx TextBuffor+2ch ;;2eh ;+2*16+3 ; Display SWHour on TextBuffor.
; sty TextBuffor+2dh ;;2fh ;;2*16+4
; lda AlarmFlag4
; bit #00001000b
; bne test2
; lda SWMinute
; bra displayswatch8
test2: ; lda SWMinutePause
displayswatch8:; jsr Ba2xyCH
; stx TextBuffor+2fh ;;31h ;;+2*16+6 ; Display SWMinute on TextBuffor.
; sty TextBuffor+30h ;;32h ;;2*16+7
; lda AlarmFlag4
; bit #00001000b
; bne test3
; lda SWSecond
; bra displayswatch9
test3: ; lda SWSecondPause
displayswatch9:; jsr Ba2xyCH
; stx TextBuffor+32h ;;34h ;;+2*16+9 ; Display SWSecond on TextBuffor.
; sty TextBuffor+33h ;;35h ;;2*16+10
; LUpdateScreen ; Update stop-watch's screen.
rts ; Return to superstructure.
;[S]---------------------------[S]
; 将萤幕上正在设定的项目闪烁.
;[S]---------------------------[S]
FlashTimer: lda TMRSetItem
cmp #00h
beq flashtimer2 ; Skip if setting TMRSecond.
cmp #01h
beq flashtimer1 ; Skip if setting TMRMinute.
bbs0 <SysF,flashtimer4 ; Skip if complete second.
lda #SpaceChar ; Blank TMRHour.
sta TextBuffor+2ch
sta TextBuffor+2dh
bra flashtimer3
flashtimer1: bbs0 <SysF,flashtimer4 ; Skip if complete second.
lda #SpaceChar ; Blank TMRMinute.
sta TextBuffor+2fh
sta TextBuffor+30h
bra flashtimer3
flashtimer2: bbs0 <SysF,flashtimer4 ; Skip if complete second.
lda #SpaceChar ; Blank TMRSecond.
sta TextBuffor+32h
sta TextBuffor+33h
flashtimer3: ;LUpdateScreen ; Update timer's screen.
jsr dispalarmbmp
rts ; Return to superstructure.
flashtimer4: jsr DisplayTimer ; Update timer's screen.
rts ; Return to superstructure.
;[S]-------------------[S]
; Display timer data.
;[S]-------------------[S]
DisplayTimer: ;LSetScreen 14 ; Set screen mode 1.
;LPrint TIMERDSLine0 ; Display "【定时器】" on TextBuffor.
;bbs4 <AlarmFlag1,displaytimer2 ; Skip if timer set screen.
;lda #00100000b
;bit AlarmFlag4
;beq displaytimer2 ; Skip if timer stop.
;lda #00010000b
;bit AlarmFlag4
;beq displaytimer1 ; Skip if timer go.
;LPrint SWATCHDSLine3 ; Display "暂停" on TextBuffor.
;bra displaytimer2
displaytimer1: ;LPrint SWATCHDSLine2 ; Display "启动" on TextBuffor.
displaytimer2: ;LCheckCRLF
;lda #':' ; Display ":" on TextBuffor.
;sta TextBuffor+2eh ;;30h ;;2*16+5
;sta TextBuffor+31h ;;33h ;;2*16+8
;lda TMRHour
;jsr Ba2xyCH
;stx TextBuffor+2ch ;;2eh ;;+2*16+3 ; Display TMRHour on TextBuffor.
;sty TextBuffor+2dh ;;2fh ;;+2*16+4
;lda TMRMinute
;jsr Ba2xyCH
;stx TextBuffor+2fh ;;31h ;; 2*16+6 ; Display TMRMinute on TextBuffor.
;sty TextBuffor+30h ;;32h ;;2*16+7
;lda TMRSecond
;jsr Ba2xyCH
;stx TextBuffor+32h ;;34h ;;+2*16+9 ; Display TMRSecond on TextBuffor.
;sty TextBuffor+33h ;;35h ;;+2*16+10
;LUpdateScreen ; Update timer's screen.
rts ; Return to superstructure.
;[S]---------------------------[S]
; 将萤幕上正在设定的项目闪烁.
;[S]---------------------------[S]
FlashAD2K: lda AD2KSetItem
cmp #02h
beq flashad2k2 ; Skip if setting AD2KDay.
cmp #01h
beq flashad2k1 ; Skip if setting AD2KMonth.
bbs0 <SysF,flashad2k4 ; Skip if complete second.
lda #SpaceChar ; Blank AD2KYear.
sta TextBuffor+2ah ;;+1*16+0
sta TextBuffor+2bh ;;1*16+1
sta TextBuffor+2ch ;;1*16+2
sta TextBuffor+2dh ;;1*16+3
bra flashad2k3
flashad2k1: bbs0 <SysF,flashad2k4 ; Skip if complete second.
lda #SpaceChar ; Blank AD2KMonth.
sta TextBuffor+30h ;;1*16+6
sta TextBuffor+31h ;;1*16+7
bra flashad2k3
flashad2k2: bbs0 <SysF,flashad2k4 ; Skip if complete second.
lda #SpaceChar ; Blank AD2KDay.
sta TextBuffor+34h ;;1*16+10
sta TextBuffor+35h ;;1*16+11
flashad2k3: ;LUpdateScreen ; Update AD2000's screen.
jsr dispalarmbmp
rts ; Return to superstructure.
flashad2k4: jsr DisplayAD2000 ; Update AD2000's screen.
rts ; Return to superstructure.
;[S]------------------------[S]
; Display world-time data.
;[S]------------------------[S]
DisplayWTime:
LSetScreen_to_ds0 14 ; Set screen mode 1.
jsr DisplayCity ; Display city name on TextBuffor.
jsr TransferData ; Transfer real time clock to world time.
jsr CalWTime ; Calculate world time lag.
jsr DisplayWDate ; Display World date on TextBuffor. Ji Ang
LUpdateScreen ; Update world time's screen.
jsr dispshipbmp
rts ; Return to superstructure.
DisplayWTimeA:
LSetScreen_to_ds0 14 ; Set screen mode 1.
jsr DisplayCity ; Display city name on TextBuffor.
jsr TransferData ; Transfer real time clock to world time.
jsr CalWTime ; Calculate world
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -