+; helper for tests 5 and 6
+macro ld_a 2
+ ld a, @2 ; 7
+ ld @1, a ; 7
+endmacro
+macro save_hvcount_unstable dst
+0
+ ld bc, ($7f08) ; hvc 20
+ ld hl, ($7f08) ; hvc 16
+ ld a, b ; 4
+ xor a, h ; 4
+ and a, $c0 ; 7 hcnt bad sample?
+ jp nz,0b ; 10 (61 loop)
+ ld a, c ; 4
+ xor a, l ; 4 vcnt changed while sampling?
+ jp nz,0b ; 10 (79 loop)
+ ld (dst), hl ; 20 (99)
+endmacro
+macro save_hvcount dst
+ ld hl, $7f08 ; vcnt 10
+0
+ ld a, (hl) ; 7
+ cp a, (hl) ; 7
+ jp nz,0b ; 10
+ ld (dst), a
+endmacro
+t_timer_prepare
+ ld d, $2 ; 7
+ ld hl, $4000 ; addr 10
+ ld bc, $4001 ; data 14
+ ld (hl), $26 ; 10
+ ld_a (bc), $ff ; 14
+ ld (hl), $27 ; 10
+ ld_a (bc), $3a ; 14 enable timer+flag,clear
+0
+ ld a, (hl) ; 7
+ and d ; 4
+ jp z,0b ; 10
+ xor a ; 4
+ ld (bc), a ; 7 stop (timer tick in (16*72*2)*7/15)
+ ld a, ($7f08) ; vcnt 13
+ exx ; 4
+ save_hvcount $1102 ; 99+
+ exx ; 4
+ ret ; 10