]> cloudbase.mooo.com Git - z180-stamp-cpm3.git/commitdiff
get_timer returns diff between time stamps
authorLeo C <erbl259-lmu@yahoo.de>
Sat, 30 May 2015 09:51:04 +0000 (11:51 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Sat, 30 May 2015 09:51:04 +0000 (11:51 +0200)
cbios/ascip.180
cbios/misc.180

index 95addd1ba7eb8658f33518e61d6cec9a378a55a7..2cedd1aa580496f3c7cbe067d97fe2bb34994a68 100644 (file)
@@ -45,13 +45,13 @@ as1init:
 as_init:\r
        push    hl\r
 \r
-       ld      c,8             ;\r
-       mlt     bc              ;\r
-       ld      hl,@ctbl+7      ;get baudrate index\r
-       add     hl,bc           ;\r
+       ld      c,8                     ;\r
+       mlt     bc                      ;\r
+       ld      hl,@ctbl+7              ;get baudrate index\r
+       add     hl,bc                   ;\r
        ld      a,(hl)\r
        and     0fh\r
-       add     a,a\r
+       add     a,a                     ;get factor\r
        ld      hl,bd150_tab\r
        call    add_hla\r
        ld      c,(hl)\r
index 5d683740d14bf8822dea1368b32a87d2ab48482a..0352a591bfc7a11d7f8afb39356c7eeda9b0fad7 100644 (file)
@@ -249,8 +249,12 @@ spi$nr:    db      '0'
        dseg
 
 cpu_frq:
-       ld      hl,tmr_rcv_msg_1
+       ld      hl,0
+       ld      d,h
+       ld      e,l
        call    get_timer
+       push    hl
+       push    de
 
 ; delay  ~8ms @ 18.432MHz  --> 147456 clock cycles
 ; delay ~10ms @ 18.432MHz  --> 184320 clock cycles
@@ -264,15 +268,12 @@ dly_lp:
        sbc     hl,de           ; 10
        jr      nz,dly_lp       ; 6/8  -> 18
 
-       ld      hl,tmr_rcv_msg_2
+       pop     de
+       pop     hl
        call    get_timer
 
-       ld      hl,(stamp2)
-       ld      de,(stamp1)
-       or      a
-       sbc     hl,de
-;      ld      de,4            ; round
-       ld      de,5            ; round
+;      ld      hl,4            ; round
+       ld      hl,5            ; round
        add     hl,de
        ex      de,hl
        ld      hl,0
@@ -298,36 +299,25 @@ cpuf_done:
 
 get_timer:
        push    hl
-       ld      hl,timer_msg
-       ld      b,timer_msg_len
+       push    de
+       ld      hl,1*256 + 3            ; d = subcommand, e = command
+       push    hl
+       ld      hl,0
+       add     hl,sp
+       ld      b,6
        call    msg.sm
 
-       pop     hl
-       ld      b,tmr_rcv_msg_len       ; max receive message len
-       jp      msg.recv
-
-
-timer_msg:
-       db      3       ; timer/clock command
-       db      1       ; subcommand (get timer)
-timer_msg_len  equ     $ - timer_msg
-
-
-tmr_rcv_msg_1:
-       ds      1       ; len
-       ds      1       ; command
-       ds      1       ; subcommand
-stamp1:
-       ds      4       ; return value
-tmr_rcv_msg_len        equ $ - tmr_rcv_msg_1
-
+       dec     sp
+       ld      hl,0
+       add     hl,sp
+       ld      b,7                     ; max receive message len
+       call    msg.recv
 
-tmr_rcv_msg_2:
-       ds      1       ; len
-       ds      1       ; command
-       ds      1       ; subcommand
-stamp2:
-       ds      4       ; return value
+       pop     bc
+       inc     sp
+       pop     de
+       pop     hl
+       ret
 
 ;--------------------------------------------------------------------