aboutsummaryrefslogtreecommitdiff
path: root/src/jifsec.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/jifsec.s')
-rw-r--r--src/jifsec.s24
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