opcodes[]: global scope global { global scope implicit__sio { } type utf8str: type ucs1str: type ucs2str: type ucs4str: global scope vt100 { } type SioData: uint16 avail_in ( SioData¢ channel ) = inline { var SioData¢ channel lvar+0+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "ibuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+0+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peek ( uint8& -- uint8 ) - ( uint8, uint8 -- uint16 ) tor ( uint16 -- ) drop ( SioData¢ -- ) fromr ( -- uint16 ) } uint16 avail_out ( SioData¢ channel ) = inline { var SioData¢ channel 16 ( -- uint16 ) lvar+0+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+0+4 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "oburi" ( -- uint8& ) peek ( uint8& -- uint8 ) - ( uint8, uint8 -- uint16 ) - ( uint16, uint16 -- uint16 ) tor ( uint16 -- ) drop ( SioData¢ -- ) fromr ( -- uint16 ) } void irpt ( SioData¢ this, uint8 SR, uint8 IO, uint8 mIMR_RX_ready, uint8 mIMR_TX_ready ) { var SioData¢ this var uint8 SR var uint8 IO var uint8 mIMR_RX_ready var uint8 mIMR_TX_ready var uint8 c 0 ( -- uint8 ) L838: lvar+6+2 "SR" ( -- uint8& ) peek ( uint8& -- uint8 ) in ( uint8 -- uint8 ) 1 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) !! ( uint8 -- bool ) and0 ( bool -- ) -> L840 lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "ibuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peek ( uint8& -- uint8 ) - ( uint8, uint8 -- uint16 ) 16 ( -- uint16 ) < ( uint16, uint16 -- bool ) !! ( uint8 -- bool ) L840: !! ( uint8 -- bool ) jp_z ( bool -- ) -> L839 lvar+4+2 "IO" ( -- uint8& ) peek ( uint8& -- uint8 ) in ( uint8 -- uint8 ) lvar-2+4 "c" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+9 "sw_handshake" ( -- bool& ) peek ( bool& -- bool ) !! ( uint8 -- bool ) and0 ( bool -- ) -> L844 lvar-2+2 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) 17 ( -- uint8 ) == ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) or1 ( bool -- ) -> L843 lvar-2+2 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) 19 ( -- uint8 ) == ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) L843: !! ( uint8 -- bool ) L844: !! ( uint8 -- bool ) jp_z ( bool -- ) -> L842 lvar-2+2 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) 19 ( -- uint8 ) == ( uint8, uint8 -- bool ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+10 "xoff_received" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L838 L842: lvar-2+2 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+0 "ibu" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) lvar+8+6 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "ibuwi" ( -- uint8& ) peekpp ( uint8& -- uint8 ) 15 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint8[]¢, int16 -- uint8& ) poke ( uint8, uint8& -- ) jp ( -- ) -> L838 L839: lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+9 "sw_handshake" ( -- bool& ) peek ( bool& -- bool ) !! ( uint8 -- bool ) and0 ( bool -- ) -> L847 lvar+6+2 "SR" ( -- uint8& ) peek ( uint8& -- uint8 ) in ( uint8 -- uint8 ) 4 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) !! ( uint8 -- bool ) L847: !! ( uint8 -- bool ) jp_z ( bool -- ) -> L854 lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "ibuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peek ( uint8& -- uint8 ) - ( uint8, uint8 -- uint16 ) 16 ( -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L849 lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_sent" ( -- bool& ) peek ( bool& -- bool ) ! ( uint8 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L854 lvar+4+2 "IO" ( -- uint8& ) peek ( uint8& -- uint8 ) 19 ( -- uint8 ) out ( uint8, uint8 ) 1 ( -- bool ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_sent" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L854 L849: lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_sent" ( -- bool& ) peek ( bool& -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L854 lvar+4+2 "IO" ( -- uint8& ) peek ( uint8& -- uint8 ) 17 ( -- uint8 ) out ( uint8, uint8 ) 0 ( -- bool ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_sent" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L854 L854: lvar+6+2 "SR" ( -- uint8& ) peek ( uint8& -- uint8 ) in ( uint8 -- uint8 ) 4 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) !! ( uint8 -- bool ) and0 ( bool -- ) -> L856 lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "oburi" ( -- uint8& ) peek ( uint8& -- uint8 ) != ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) L856: !! ( uint8 -- bool ) and0 ( bool -- ) -> L857 lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+10 "xoff_received" ( -- bool& ) peek ( bool& -- bool ) ! ( uint8 -- bool ) !! ( uint8 -- bool ) L857: !! ( uint8 -- bool ) jp_z ( bool -- ) -> L855 lvar+4+2 "IO" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+2 "obu" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) lvar+8+6 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "oburi" ( -- uint8& ) peekpp ( uint8& -- uint8 ) 15 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint8[]¢, int16 -- uint8& ) peek ( uint8& -- uint8 ) out ( uint8, uint8 ) jp ( -- ) -> L854 L855: lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "ibuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peek ( uint8& -- uint8 ) - ( uint8, uint8 -- uint16 ) 16 ( -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L859 lvar+2+2 "mIMR_RX_ready" ( -- uint8& ) peek ( uint8& -- uint8 ) ~ ( uint8 -- uint8 ) gvar-4 "imr_value" ( -- uint8& ) &= ( uint8, uint8& -- ) jp ( -- ) -> L858 L859: lvar+2+2 "mIMR_RX_ready" ( -- uint8& ) peek ( uint8& -- uint8 ) gvar-4 "imr_value" ( -- uint8& ) |= ( uint8, uint8& -- ) L858: lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+8+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "oburi" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) or1 ( bool -- ) -> L862 lvar+8+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+10 "xoff_received" ( -- bool& ) peek ( bool& -- bool ) !! ( uint8 -- bool ) L862: !! ( uint8 -- bool ) jp_z ( bool -- ) -> L861 lvar+0+2 "mIMR_TX_ready" ( -- uint8& ) peek ( uint8& -- uint8 ) ~ ( uint8 -- uint8 ) gvar-4 "imr_value" ( -- uint8& ) &= ( uint8, uint8& -- ) jp ( -- ) -> L860 L861: lvar+0+2 "mIMR_TX_ready" ( -- uint8& ) peek ( uint8& -- uint8 ) gvar-4 "imr_value" ( -- uint8& ) |= ( uint8, uint8& -- ) L860: 5 ( -- uint8 ) gvar-4 "imr_value" ( -- uint8& ) peek ( uint8& -- uint8 ) out ( uint8, uint8 ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( SioData¢ -- ) } void set_baudrate ( SioData¢ this, uint8 baudrate ) { var SioData¢ this var uint8 baudrate var uint8 chx8 var uint8 i var uint8 t var uint16 v var uint8 csr_mask lvar+2+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "channel" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) cast ( uint16 -- uint8 ) lvar+0+2 "baudrate" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) msbit ( uint16 -- uint8 ) lvar-4+4 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) and0 ( bool -- ) -> L865 lvar+0+4 "baudrate" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+6 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) >> ( uint16, int16 -- uint16 ) 1 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) L865: gvar-2 "uart_values_for_baudrate" ( -- uint16[16]& ) peek ( uint16[16]& -- uint16[16]¢ ) lvar-6+8 "t" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) lvar-4+10 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) + ( uint16, uint16 -- uint16 ) atindex ( uint16[16]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+8 "t" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L868 3 ( -- uint16 ) lvar-4+10 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) << ( uint16, int16 -- uint16 ) jp ( -- ) -> L869 L868: lvar-4+8 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) 6 ( -- uint8 ) < ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L866 1 ( -- uint16 ) lvar-4+10 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) << ( uint16, int16 -- uint16 ) jp ( -- ) -> L869 L866: 4 ( -- uint16 ) L869: cast ( uint16 -- uint8 ) lvar+2+10 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+13 "baudrate" ( -- uint8& ) poke ( uint8, uint8& -- ) 0 ( -- uint8 ) lvar+2+10 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+14 "clk_handshake" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L870 lvar+2+10 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+14 "clk_handshake" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L872 15 ( -- uint8 ) lvar-10+12 "csr_mask" ( -- uint8& ) |= ( uint8, uint8& -- ) jp ( -- ) -> L872 L872: lvar+2+10 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+14 "clk_handshake" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 2 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L870 240 ( -- uint8 ) lvar-10+12 "csr_mask" ( -- uint8& ) |= ( uint8, uint8& -- ) jp ( -- ) -> L870 L870: lvar-2+10 "chx8" ( -- uint8& ) peek ( uint8& -- uint8 ) 2 ( -- uint8 ) + ( uint8, uint8 -- uint16 ) cast ( uint16 -- uint8 ) 176 ( -- uint8 ) out ( uint8, uint8 ) lvar-2+10 "chx8" ( -- uint8& ) peek ( uint8& -- uint8 ) 0 ( -- uint8 ) + ( uint8, uint8 -- uint16 ) cast ( uint16 -- uint8 ) lvar-8+12 "v" ( -- uint16& ) peek ( uint16& -- uint16 ) get_hi ( uint16 -- uint8 ) out ( uint8, uint8 ) lvar-2+10 "chx8" ( -- uint8& ) peek ( uint8& -- uint8 ) 1 ( -- uint8 ) + ( uint8, uint8 -- uint16 ) cast ( uint16 -- uint8 ) lvar-8+12 "v" ( -- uint16& ) peek ( uint16& -- uint16 ) get_lo ( uint16 -- uint8 ) lvar-10+14 "csr_mask" ( -- uint8& ) peek ( uint8& -- uint8 ) | ( uint8, uint8 -- uint8 ) out ( uint8, uint8 ) drop ( uint8 -- ) drop ( uint16 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( SioData¢ -- ) } void set_sw_handshake ( SioData¢ this, bool f ) { var SioData¢ this var bool f lvar+2+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+9 "sw_handshake" ( -- bool& ) peek ( bool& -- bool ) lvar+0+2 "f" ( -- bool& ) peek ( bool& -- bool ) != ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L877 lvar+0+0 "f" ( -- bool& ) peek ( bool& -- bool ) lvar+2+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+9 "sw_handshake" ( -- bool& ) poke ( bool, bool& -- ) 0 ( -- bool ) lvar+2+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+10 "xoff_received" ( -- bool& ) poke ( bool, bool& -- ) 0 ( -- bool ) lvar+2+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_sent" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L877 L877: drop ( bool -- ) drop ( SioData¢ -- ) } void set_hw_handshake ( SioData¢ this, bool f ) { var SioData¢ this var bool f var uint16 chx8 lvar+2+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "channel" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) lvar+2+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+8 "hw_handshake" ( -- bool& ) peek ( bool& -- bool ) lvar+0+4 "f" ( -- bool& ) peek ( bool& -- bool ) != ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L881 lvar+0+2 "f" ( -- bool& ) peek ( bool& -- bool ) lvar+2+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+8 "hw_handshake" ( -- bool& ) poke ( bool, bool& -- ) lvar-2+2 "chx8" ( -- uint16& ) peek ( uint16& -- uint16 ) 2 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) 16 ( -- uint8 ) out ( uint8, uint8 ) lvar-2+2 "chx8" ( -- uint16& ) peek ( uint16& -- uint16 ) 0 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar+0+4 "f" ( -- bool& ) peek ( bool& -- bool ) cast ( uint8 -- uint16 ) 7 ( -- int16 ) << ( uint16, int16 -- uint16 ) 83 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) out ( uint8, uint8 ) lvar-2+2 "chx8" ( -- uint16& ) peek ( uint16& -- uint16 ) 0 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar+0+4 "f" ( -- bool& ) peek ( bool& -- bool ) cast ( uint8 -- uint16 ) 4 ( -- int16 ) << ( uint16, int16 -- uint16 ) 7 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) out ( uint8, uint8 ) jp ( -- ) -> L881 L881: drop ( uint16 -- ) drop ( bool -- ) drop ( SioData¢ -- ) } void set_clock_handshake ( SioData¢ this, uint8 flags ) { var SioData¢ this var uint8 flags var uint8 ch var uint8 chx2 lvar+2+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "channel" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-2+2 "ch" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- int16 ) << ( uint16, int16 -- uint16 ) cast ( uint16 -- uint8 ) lvar+2+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+14 "clk_handshake" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+0+6 "flags" ( -- uint8& ) peek ( uint8& -- uint8 ) != ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L885 lvar+0+4 "flags" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+2+6 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+14 "clk_handshake" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar+0+4 "flags" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L889 3 ( -- uint16 ) lvar-4+6 "chx2" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) << ( uint16, int16 -- uint16 ) cast ( uint16 -- uint8 ) gvar-6 "opcr_value" ( -- uint8& ) |= ( uint8, uint8& -- ) jp ( -- ) -> L888 L889: 3 ( -- uint16 ) lvar-4+6 "chx2" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) << ( uint16, int16 -- uint16 ) ~ ( uint16 -- uint16 ) cast ( uint16 -- uint8 ) gvar-6 "opcr_value" ( -- uint8& ) &= ( uint8, uint8& -- ) L888: 13 ( -- uint8 ) gvar-6 "opcr_value" ( -- uint8& ) peek ( uint8& -- uint8 ) out ( uint8, uint8 ) 14 ( -- uint8 ) 69 ( -- uint16 ) lvar-2+8 "ch" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) << ( uint16, int16 -- uint16 ) cast ( uint16 -- uint8 ) out ( uint8, uint8 ) lvar+0+4 "flags" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 4 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L890 15 ( -- uint8 ) 65 ( -- uint16 ) lvar-2+8 "ch" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) << ( uint16, int16 -- uint16 ) cast ( uint16 -- uint8 ) out ( uint8, uint8 ) jp ( -- ) -> L890 L890: lvar+2+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) lvar+2+6 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+13 "baudrate" ( -- uint8& ) peek ( uint8& -- uint8 ) call set_baudrate ( SioData¢, uint8 ) jp ( -- ) -> L885 L885: drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( SioData¢ -- ) } void reset ( SioData¢ this, bool tx, bool rx ) { var SioData¢ this var bool tx var bool rx var uint8 CR lvar+4+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "channel" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) 2 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar+0+2 "rx" ( -- bool& ) peek ( bool& -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L894 lvar-2+2 "CR" ( -- uint8& ) peek ( uint8& -- uint8 ) 32 ( -- uint8 ) out ( uint8, uint8 ) 0 ( -- bool ) lvar+4+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_sent" ( -- bool& ) poke ( bool, bool& -- ) lvar+4+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+4+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "ibuwi" ( -- uint8& ) poke ( uint8, uint8& -- ) jp ( -- ) -> L894 L894: lvar+2+2 "tx" ( -- bool& ) peek ( bool& -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L896 lvar-2+2 "CR" ( -- uint8& ) peek ( uint8& -- uint8 ) 48 ( -- uint8 ) out ( uint8, uint8 ) 0 ( -- bool ) lvar+4+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+10 "xoff_received" ( -- bool& ) poke ( bool, bool& -- ) lvar+4+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+4+4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "oburi" ( -- uint8& ) poke ( uint8, uint8& -- ) jp ( -- ) -> L896 L896: lvar-2+2 "CR" ( -- uint8& ) peek ( uint8& -- uint8 ) 64 ( -- uint8 ) out ( uint8, uint8 ) lvar-2+2 "CR" ( -- uint8& ) peek ( uint8& -- uint8 ) 5 ( -- uint8 ) out ( uint8, uint8 ) drop ( uint8 -- ) drop ( bool -- ) drop ( bool -- ) drop ( SioData¢ -- ) } void init ( SioData¢ this, uint8 ch ) { var SioData¢ this var uint8 ch var uint8 chx8 lvar+0+0 "ch" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+2+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "channel" ( -- uint8& ) poke ( uint8, uint8& -- ) 16 ( -- uint16 ) alloc ( uint16 -- uint8[16] ) lvar+2+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+0 "ibu" ( -- uint8[]& ) poke ( uint8[], uint8[]& -- ) 16 ( -- uint16 ) alloc ( uint16 -- uint8[16] ) lvar+2+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+2 "obu" ( -- uint8[]& ) poke ( uint8[], uint8[]& -- ) lvar+2+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) 4 ( -- uint8 ) call set_baudrate ( SioData¢, uint8 ) lvar+0+0 "ch" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) cast ( uint16 -- uint8 ) lvar-2+2 "chx8" ( -- uint8& ) peek ( uint8& -- uint8 ) 2 ( -- uint8 ) + ( uint8, uint8 -- uint16 ) cast ( uint16 -- uint8 ) 16 ( -- uint8 ) out ( uint8, uint8 ) lvar-2+2 "chx8" ( -- uint8& ) peek ( uint8& -- uint8 ) 0 ( -- uint8 ) + ( uint8, uint8 -- uint16 ) cast ( uint16 -- uint8 ) 83 ( -- uint8 ) out ( uint8, uint8 ) lvar-2+2 "chx8" ( -- uint8& ) peek ( uint8& -- uint8 ) 0 ( -- uint8 ) + ( uint8, uint8 -- uint16 ) cast ( uint16 -- uint8 ) 7 ( -- uint8 ) out ( uint8, uint8 ) lvar+2+2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) 1 ( -- bool ) 1 ( -- bool ) call reset ( SioData¢, bool, bool ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( SioData¢ -- ) } void irpt () { 5 ( -- uint8 ) in ( uint8 -- uint8 ) 8 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L902 15 ( -- uint8 ) in ( uint8 -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L904 jp ( -- ) -> L904 L904: call timer () jp ( -- ) -> L902 L902: gvar-8 "channel_A" ( -- SioData& ) peek ( SioData& -- SioData¢ ) 1 ( -- uint8 ) 3 ( -- uint8 ) 2 ( -- uint8 ) 1 ( -- uint8 ) call irpt ( SioData¢, uint8, uint8, uint8, uint8 ) gvar-10 "channel_B" ( -- SioData& ) peek ( SioData& -- SioData¢ ) 9 ( -- uint8 ) 11 ( -- uint8 ) 32 ( -- uint8 ) 16 ( -- uint8 ) call irpt ( SioData¢, uint8, uint8, uint8, uint8 ) } void setctl ( SioData¢ channel, uint8 fu, uint16 value ) { var SioData¢ channel var uint8 fu var uint16 value call di () lvar+2+0 "fu" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) switch ( int16 -- ) { 0:L910, 1:L911, 2:L912, 3:L913, 4:L914, 5:L915, 8:L909, dflt:L908, join:L908 } L909: lvar+4+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) lvar+0+2 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) call set_clock_handshake ( SioData¢, uint8 ) jp ( -- ) -> L908 L910: lvar+4+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) 1 ( -- bool ) 1 ( -- bool ) call reset ( SioData¢, bool, bool ) jp ( -- ) -> L908 L911: lvar+4+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) lvar+0+2 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) 24 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) call set_baudrate ( SioData¢, uint8 ) jp ( -- ) -> L908 L912: lvar+4+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) lvar+0+2 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) 0 ( -- uint16 ) != ( uint16, uint16 -- bool ) call set_hw_handshake ( SioData¢, bool ) jp ( -- ) -> L908 L913: lvar+4+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) lvar+0+2 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) 0 ( -- uint16 ) != ( uint16, uint16 -- bool ) call set_sw_handshake ( SioData¢, bool ) jp ( -- ) -> L908 L914: lvar+4+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) 0 ( -- bool ) 1 ( -- bool ) call reset ( SioData¢, bool, bool ) jp ( -- ) -> L908 L915: lvar+4+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) 1 ( -- bool ) 0 ( -- bool ) call reset ( SioData¢, bool, bool ) L908: call ei () drop ( uint16 -- ) drop ( uint8 -- ) drop ( SioData¢ -- ) } uint16 getctl ( SioData¢ channel, uint8 fu ) { var SioData¢ channel var uint8 fu lvar+0+0 "fu" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) switch ( int16 -- ) { 1:L919, 2:L920, 3:L921, 4:L923, 5:L924, 8:L922, dflt:L925, join:L917 } L919: lvar+2+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+13 "baudrate" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 24 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) jp ( -- ) -> L917 L920: lvar+2+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+8 "hw_handshake" ( -- bool& ) peek ( bool& -- bool ) cast ( uint8 -- uint16 ) jp ( -- ) -> L917 L921: lvar+2+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+9 "sw_handshake" ( -- bool& ) peek ( bool& -- bool ) cast ( uint8 -- uint16 ) jp ( -- ) -> L917 L922: lvar+2+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+14 "clk_handshake" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) jp ( -- ) -> L917 L923: lvar+2+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) call avail_in ( SioData¢ -- uint16 ) jp ( -- ) -> L917 L924: lvar+2+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) call avail_out ( SioData¢ -- uint16 ) jp ( -- ) -> L917 L925: 0 ( -- uint16 ) jp ( -- ) -> L917 L917: tor ( uint16 -- ) drop ( uint8 -- ) drop ( SioData¢ -- ) fromr ( -- uint16 ) } uint16 getc ( SioData¢ channel ) { var SioData¢ channel var uint16 c L928: lvar+0+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) call avail_in ( SioData¢ -- uint16 ) !! ( uint16 -- bool ) jp_nz ( bool -- ) -> L929 wait () jp ( -- ) -> L928 L929: lvar+0+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+0 "ibu" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) lvar+0+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peek ( uint8& -- uint8 ) 15 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint8[]¢, int16 -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar+0+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peekpp ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar+0+4 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "ibuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) 16 ( -- uint8 ) - ( uint8, uint8 -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L930 call irpt () jp ( -- ) -> L930 L930: lvar-2+2 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) tor ( uint16 -- ) drop ( uint16 -- ) drop ( SioData¢ -- ) fromr ( -- uint16 ) } void putc ( SioData¢ channel, uint8 c ) { var SioData¢ channel var uint8 c L934: lvar+2+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) call avail_out ( SioData¢ -- uint16 ) !! ( uint16 -- bool ) jp_nz ( bool -- ) -> L935 wait () jp ( -- ) -> L934 L935: lvar+0+0 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar+2+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+2 "obu" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) lvar+2+4 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) 15 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint8[]¢, int16 -- uint8& ) poke ( uint8, uint8& -- ) lvar+2+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) peekpp ( uint8& -- uint8 ) lvar+2+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "oburi" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( uint8, uint8 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L933 call irpt () jp ( -- ) -> L933 L933: drop ( uint8 -- ) drop ( SioData¢ -- ) } uint16 gets ( SioData¢ channel, uint8[]¢ bu, uint16 a, uint16 e ) { var SioData¢ channel var uint8[]¢ bu var uint16 a var uint16 e var uint16 n lvar+0+0 "e" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+2+2 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar+6+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) call avail_in ( SioData¢ -- uint16 ) min ( uint16, uint16 -- uint16 ) lvar+6+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+0 "ibu" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) lvar+6+4 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peek ( uint8& -- uint8 ) 15 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) cast ( uint8 -- uint16 ) lvar+4+6 "bu" ( -- uint8[]¢& ) peek ( uint8[]¢& -- uint8[]¢ ) lvar+2+8 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+10 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call copy ( uint8[]¢, uint16, uint8[]¢, uint16, uint16 ) lvar-2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) lvar+6+4 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) += ( uint8, uint8& -- ) lvar+6+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "iburi" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar+6+4 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "ibuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) 16 ( -- uint8 ) - ( uint8, uint8 -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L940 call irpt () jp ( -- ) -> L940 L940: lvar-2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) tor ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint8[]¢ -- ) drop ( SioData¢ -- ) fromr ( -- uint16 ) } uint16 puts ( SioData¢ channel, uint8[]¢ bu, uint16 a, uint16 e ) { var SioData¢ channel var uint8[]¢ bu var uint16 a var uint16 e var uint16 n lvar+0+0 "e" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+2+2 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar+6+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) call avail_out ( SioData¢ -- uint16 ) min ( uint16, uint16 -- uint16 ) lvar+4+2 "bu" ( -- uint8[]¢& ) peek ( uint8[]¢& -- uint8[]¢ ) lvar+2+4 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+6+6 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+2 "obu" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) lvar+6+8 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) 15 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) cast ( uint8 -- uint16 ) lvar-2+10 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) call copy ( uint8[]¢, uint16, uint8[]¢, uint16, uint16 ) lvar-2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) lvar+6+4 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) += ( uint8, uint8& -- ) lvar+6+2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+6 "obuwi" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-2+4 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar+6+4 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "oburi" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L944 call irpt () jp ( -- ) -> L944 L944: lvar-2+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) tor ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint8[]¢ -- ) drop ( SioData¢ -- ) fromr ( -- uint16 ) } uint16 systemtimer ( uint16 value ) { var uint16 value var uint16 foo lvar+0+0 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) get_lo ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) swap ( uint16 -- uint16 ) 1111 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar+0+2 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) get_hi ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 472 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) 8 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar+0+2 "value" ( -- uint16& ) poke ( uint16, uint16& -- ) 6 ( -- uint8 ) lvar+0+2 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) get_hi ( uint16 -- uint8 ) out ( uint8, uint8 ) 7 ( -- uint8 ) lvar+0+2 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) get_lo ( uint16 -- uint8 ) out ( uint8, uint8 ) 14 ( -- uint8 ) in ( uint8 -- uint8 ) cast ( uint8 -- uint16 ) lvar+0+2 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) get_lo ( uint16 -- uint8 ) 1111 ( -- uint16 ) get_hi ( uint16 -- uint8 ) * ( uint8, uint8 -- uint16 ) lvar+0+4 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) get_hi ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1111 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar+0+4 "value" ( -- uint16& ) poke ( uint16, uint16& -- ) drop ( uint16 -- ) } } {41062, 41096, 41113, 41147, 42035, 41164, 41113, 41113, 40960, 41301, 41318, 41352, 41369, 41403, 42086, 41420} ( -- uint16[16] ) 59 ( -- uint8 ) 0 ( -- uint8 ) 14 ( -- uint8 ) 255 ( -- uint8 ) out ( uint8, uint8 ) 4 ( -- uint8 ) 112 ( -- uint8 ) out ( uint8, uint8 ) 15 ( -- uint16 ) alloc ( uint16 -- SioData ) 15 ( -- uint16 ) alloc ( uint16 -- SioData ) gvar-8 "channel_A" ( -- SioData& ) peek ( SioData& -- SioData¢ ) 0 ( -- uint8 ) call init ( SioData¢, uint8 ) gvar-10 "channel_B" ( -- SioData& ) peek ( SioData& -- SioData¢ ) 1 ( -- uint8 ) call init ( SioData¢, uint8 ) 5 ( -- uint8 ) 59 ( -- uint8 ) out ( uint8, uint8 )