send-now 10
     after 1000
     read -nonewline $rwy
-    send-now 11
     fileevent $rwy readable readable
     set buf {}
     set last_fast_speed 0
 
 proc proc-msg {msg} {
     global until detend settle_detend settle_time settle_after
+    global pointing pointed
     switch -glob $msg {
        90?? {
            if {[lsearch $settle_detend $msg]<0} { debug_r "o $msg"; return }
            set settle_after [after $settle_time { set until 1}]
            return
        }
-       01 - 02 - 03 return
-       28 return
+       01 - 02 - 03 - 20 return
+       28 {
+           if {[llength $pointing]} {
+               set point [lindex $pointing 0]
+               set pointing [lrange $pointing 1 end]
+               puts stderr "> $point"
+               send-now $point
+           } else {
+               set pointed 1
+           }
+           return
+       }
        98?? {
            if {[lsearch $detend $msg]<0} { debug_r "I $msg"; return }
            debug_r "* $msg"
     use-segment                X8 09                           C5 2f
 }
 
+proc normalise1 {seg_unused feat_unused pos_unused hex} {
+    global pointing
+    lappend pointing $hex
+}
+
+proc normalise_C {} {
+    normalise1         C5 P 0  a045
+    normalise1         C9 P 0  a021
+    normalise1         C0 P 0  a067
+}
+proc normalise_AX {} {
+    # NYI
+}
+
 proc speed-msg {speed} {
     global loco reverse
     list speed126 $loco [expr {abs($speed)}] [expr {$speed<0 != $reverse}]
 
 define-segments
 startup
+normalise_$track
+send-now 11
+vwait pointed
 
 foreach s [lrange $argv 5 end] {
     run-test $how $s