diff options
Diffstat (limited to 'src/jifsec.s')
| -rw-r--r-- | src/jifsec.s | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/jifsec.s b/src/jifsec.s index 4f3d3c8..15ae972 100644 --- a/src/jifsec.s +++ b/src/jifsec.s @@ -15,10 +15,32 @@ _hz = $f0 ; must agree with timers.h! .import _scr_act_printnum, _scr_putc_active + .import _read_rtclok, _a2uint .import mulax10 ; extern void print_jif_sec(unsigned int jiffies); - .export _print_jif_sec + .export _print_jif_sec, _calc_ping_time + +_calc_ping_time: + jsr _a2uint + sta acc16 + stx acc16+1 ; acc16 = timestamp in ping response + jsr _read_rtclok ; A/X = low 15 bits of RTCLOK + cpx acc16+1 ; has RTCLOK rolled over? + bcs @clok_ok + pha + txa + ora #$80 + tax + pla +@clok_ok: + sec + sbc acc16 + pha + txa + sbc acc16+1 + tax + pla ; A/X now holds "now" minus timestamp _print_jif_sec: jsr divbyhz |
