File-Manager/CORE/CLOCK.ASM
2025-04-05 01:58:39 +10:00

105 lines
2.2 KiB
NASM
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;-------------------------------------------------
; ‚뢮¤ ç á®¢ ¢¢¥àåã ¯ ­¥«¨
;-------------------------------------------------
show_clock:
db 3Eh ; ld a,..
enable_clock:
db false ; ä« £ ¢ë¢®¤  ç á®¢
or a
ret z
call test_show_panels ; â¥áâ ­  ०¨¬ ¢ª«. ¯ ­¥«¥©
ret z ; ¢ëª«.
call get_systime ; ã§­ âì á¨áâ. ¢à¥¬ï
ld de,clock_string ; ¡ãä¥à ç á®¢
ld hl,0301h ; á 0-© áâப¨
in a,(PORT_Y)
ld b,a ; á®åà. ¯®àâ
in a,(SLOT0)
ld c,a ; á®åà.¯®àâ
di
ld a,50h ; ¢¨¤¥®-áâà ­¨æ 
out (SLOT0),a
ld a,75+81h ; +0 (ᬥé. á«¥¢ )
out (PORT_Y),a ; ª®«®­ª 
; ¢ë¢®¤ ⥪áâ 
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,5 ; ¤«¨­  áâப¨
ld b,b ; ¢ëª«.  ªá¥«ì
ld l,l ; ª®¯¨à®¢ âì ¡«®ª
ld a,(de)
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,a ; ª®¯¨à®¢ ­¨¥ ¡«®ª  (¢¥àâ. «¨­¨¨)
ld (hl),a
ld b,b ; ¢ëª«.  ªá¥«ì
; ¢ë¢®¤  âਡã⮢
ld de,clock_attr ; áâப   âਡã⮢
ld a,75+81h ; +0 (ᬥé. á«¥¢ )
out (PORT_Y),a
inc hl ; ¯¥à¥©â¨ ­   âਡãâë
ld d,d ; ãáâ. à §¬¥à ¡«®ª 
ld a,5 ; ¤«¨­  áâப¨
ld b,b ; ¢ëª«.  ªá¥«ì
ld l,l ; ª®¯¨à®¢ âì ¡«®ª
ld a,(de)
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,a ; ª®¯¨à®¢ ­¨¥ ¡«®ª  (¢¥àâ. «¨­¨¨)
ld (hl),a
ld b,b ; ¢ëª«.  ªá¥«ì
ld a,b
out (PORT_Y),a ; ¢®ááâ. ¯®àâ
ld a,c
out (SLOT0),a ; ¢®ááâ. ¯®àâ
ei
ret
;-------------------------------------------------
; “¡à âì ç áë
;-------------------------------------------------
hidden_clock:
ld a,(cur_panel) ;  ªâ. ¯ ­¥«ì 0/80h - «¥¢ ï/¯à ¢ ï
or a
push af
call z,change_panel ; ¯¥à¥©â¨ ­  ¯à ¢ãî
call print_up_path ; § â¥à¥âì ç áë
pop af
call z,change_panel ; ¢¥à­ãâì  ªâ. ¯ ­¥«ì
ret
; <20>à®ç¨â âì á¨áâ. ¢à¥¬ï ¨§ ॣ¨áâà  "A" CMOS
get_systime:
ld hl,clock_string ; ¡ãä¥à áâப¨
ld d,04h ; ॣ¨áâà ç á®¢ (0=ॣ.A,  ¤à¥á = +4)
call get_systime__
inc hl
ld d,02h ; ॣ¨áâà ¬¨­ãâ
; —⥭¨¥ cmos-ॣ¨áâà 
; ¢å®¤: d=­®¬¥à ॣ¨áâà  ¨  ¤à¥á
get_systime__:
ld bc,0DFBDh ; ¯®àâ § ¯¨á¨  ¤à¥á  CMOS
out (c),d
ld bc,0FFBDh ; ¯®àâ ç⥭¨ï ¤ ­­ëå CMOS
in a,(c)
; hex-ä®à¬ â
ld c,a
rra
rra
rra
rra
call $+4
ld a,c
and 0Fh
cp 9+1
sbc a,69h
daa
ld (hl),a
inc hl
ret
clock_string:
db "00:00" ; áâப  ç á®¢
clock_attr:
db 30h,30h,30h,30h,30h ; 梥â ç á®¢