#lang planet zwizwa/staapl/pic18 \ -*- forth -*-
provide-all
staapl pic18/vector
staapl pic18/prom
staapl pic18/route
2variable v-rx
2variable v-tx
: receive v-rx invoke : transmit v-tx invoke
\ macro
\ not necessary for uart transport
: wait-ack : rx-handshake : tx-wait-ack \ forth
\ --- SERIAL SPECIFIC
: tx-handshake #xFF transmit transmit
: forward-msg \ id --
transmit
receive dup transmit
0? if drop for receive transmit next
\ Include interpreter. Note that the `proper' way is to use units for
\ this kind of pluggability, but there is something to say for the
\ usefulness of incrementally loaded code in combination with early
\ binding.
\ This code requires: handshake, ack, transmit, receive
load interpreter.f