opcodes[]: global scope global { global scope implicit__sio { } type FD: type Node: type Device: type SerialDevice: type SioData: uint16 avail_in ( SioData¢ channel ) { var SioData¢ channel lvar-1+0 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "ibuwi" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-1-1 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+8 "iburi" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) tor ( uint16 -- ) fromr ( -- uint16 ) jp ( -- ) -> L351 } uint16 avail_out ( SioData¢ channel ) { var SioData¢ channel 16 ( -- uint16 ) lvar-1-1 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+9 "obuwi" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-1-2 "channel" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+10 "oburi" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) - ( uint16, uint16 -- uint16 ) tor ( uint16 -- ) fromr ( -- uint16 ) jp ( -- ) -> L353 } void irpt ( SioData¢ this ) { var SioData¢ this var uint16 c var uint16 SR var uint16 IO 0 ( -- uint16 ) lvar-1-1 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+13 "SR" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-1-2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+14 "IO" ( -- uint16& ) peek ( uint16& -- uint16 ) L356: lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+2 "sw_handshake" ( -- bool& ) peek ( bool& -- bool ) !! ( uint16 -- bool ) and0 ( bool -- ) -> L361 lvar+0-3 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 17 ( -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) or1 ( bool -- ) -> L360 lvar+0-3 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 19 ( -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) L360: !! ( uint16 -- bool ) L361: !! ( uint16 -- bool ) jp_z ( bool -- ) -> L359 lvar+0-3 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 19 ( -- uint16 ) == ( uint16, uint16 -- bool ) lvar-1-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_received" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L358 L359: lvar+0-3 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-1-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+5 "ibu" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-1-5 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "ibuwi" ( -- uint16& ) peekpp ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) poke ( uint16, uint16& -- ) L358: jp ( -- ) -> L356 L357: lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "ibuwi" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-1-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+8 "iburi" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) 16 ( -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L365 lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "xoff_sent" ( -- bool& ) peek ( bool& -- bool ) ! ( uint16 -- bool ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L367 1 ( -- bool ) lvar-1-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "xoff_sent" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L366 L367: L366: jp ( -- ) -> L364 L365: lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "xoff_sent" ( -- bool& ) peek ( bool& -- bool ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L369 0 ( -- bool ) lvar-1-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "xoff_sent" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L368 L369: L368: L364: L370: jp ( -- ) -> L370 L371: lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+7 "ibuwi" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-1-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+8 "iburi" ( -- uint16& ) peek ( uint16& -- uint16 ) - ( uint16, uint16 -- uint16 ) 16 ( -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L373 lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+15 "mIMR_RX_ready" ( -- uint16& ) peek ( uint16& -- uint16 ) ~ ( uint16 -- uint16 ) gvar+1 "IMR_value" ( -- uint16& ) &= ( uint16, uint16& -- ) jp ( -- ) -> L372 L373: lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+15 "mIMR_RX_ready" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar+1 "IMR_value" ( -- uint16& ) |= ( uint16, uint16& -- ) L372: lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+9 "obuwi" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-1-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+10 "oburi" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) or1 ( bool -- ) -> L376 lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_received" ( -- bool& ) peek ( bool& -- bool ) !! ( uint16 -- bool ) L376: !! ( uint16 -- bool ) jp_z ( bool -- ) -> L375 lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+16 "mIMR_TX_ready" ( -- uint16& ) peek ( uint16& -- uint16 ) ~ ( uint16 -- uint16 ) gvar+1 "IMR_value" ( -- uint16& ) &= ( uint16, uint16& -- ) jp ( -- ) -> L374 L375: lvar-1-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+16 "mIMR_TX_ready" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar+1 "IMR_value" ( -- uint16& ) |= ( uint16, uint16& -- ) L374: } void set_baudrate ( SioData¢ this, uint16 baudrate ) { var SioData¢ this var uint16 baudrate var uint16 chx8 var uint16 i var uint16 t var uint16 v var uint16 csr_mask lvar-2+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+0 "channel" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) 41062 ( -- uint16 ) lvar-1-1 "baudrate" ( -- uint16& ) peek ( uint16& -- uint16 ) msbit ( uint16 -- int16 ) lvar+1-2 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) !! ( uint16 -- bool ) and0 ( bool -- ) -> L379 lvar-1-2 "baudrate" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+1-3 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) >> ( uint16, int16 -- uint16 ) 1 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) L379: lvar+2-3 "t" ( -- uint16& ) peek ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L382 3 ( -- uint16 ) lvar+1-4 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) << ( uint16, int16 -- uint16 ) jp ( -- ) -> L383 L382: lvar+1-3 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) 6 ( -- uint16 ) < ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L380 1 ( -- uint16 ) lvar+1-4 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint16, int16 -- uint16 ) jp ( -- ) -> L381 L380: 4 ( -- uint16 ) L381: L383: lvar-2-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+3 "baudrate" ( -- uint16& ) poke ( uint16, uint16& -- ) 0 ( -- uint16 ) lvar-2-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "clk_handshake" ( -- uint16& ) peek ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L385 lvar-2-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "clk_handshake" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L387 15 ( -- uint16 ) lvar+4-5 "csr_mask" ( -- uint16& ) |= ( uint16, uint16& -- ) jp ( -- ) -> L386 L387: L386: lvar-2-4 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "clk_handshake" ( -- uint16& ) peek ( uint16& -- uint16 ) 2 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L389 240 ( -- uint16 ) lvar+4-5 "csr_mask" ( -- uint16& ) |= ( uint16, uint16& -- ) jp ( -- ) -> L388 L389: L388: jp ( -- ) -> L384 L385: L384: } void set_sw_handshake ( SioData¢ this, bool f ) { var SioData¢ this var bool f lvar-2+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+2 "sw_handshake" ( -- bool& ) peek ( bool& -- bool ) lvar-1-1 "f" ( -- bool& ) peek ( bool& -- bool ) != ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L393 lvar-1+0 "f" ( -- bool& ) peek ( bool& -- bool ) lvar-2-1 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+2 "sw_handshake" ( -- bool& ) poke ( bool, bool& -- ) 0 ( -- bool ) lvar-2-1 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+11 "xoff_received" ( -- bool& ) poke ( bool, bool& -- ) 0 ( -- bool ) lvar-2-1 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+12 "xoff_sent" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L392 L393: L392: } 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+0 "channel" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) lvar-2-1 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+1 "hw_handshake" ( -- bool& ) peek ( bool& -- bool ) lvar-1-2 "f" ( -- bool& ) peek ( bool& -- bool ) != ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L397 lvar-1-1 "f" ( -- bool& ) peek ( bool& -- bool ) lvar-2-2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+1 "hw_handshake" ( -- bool& ) poke ( bool, bool& -- ) jp ( -- ) -> L396 L397: L396: } void set_clock_handshake ( SioData¢ this, uint16 flags ) { var SioData¢ this var uint16 flags var uint16 ch var uint16 chx2 lvar-2+0 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+0 "channel" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0-1 "ch" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- int16 ) << ( uint16, int16 -- uint16 ) lvar-2-2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "clk_handshake" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-1-3 "flags" ( -- uint16& ) peek ( uint16& -- uint16 ) != ( uint16, uint16 -- bool ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L401 lvar-1-2 "flags" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+4 "clk_handshake" ( -- uint16& ) poke ( uint16, uint16& -- ) lvar-1-2 "flags" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L403 3 ( -- uint16 ) lvar+1-3 "chx2" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint16, int16 -- uint16 ) gvar+2 "OPCR_value" ( -- uint16& ) |= ( uint16, uint16& -- ) jp ( -- ) -> L402 L403: 3 ( -- uint16 ) lvar+1-3 "chx2" ( -- uint16& ) peek ( uint16& -- uint16 ) << ( uint16, int16 -- uint16 ) ~ ( uint16 -- uint16 ) gvar+2 "OPCR_value" ( -- uint16& ) &= ( uint16, uint16& -- ) L402: lvar-1-2 "flags" ( -- uint16& ) peek ( uint16& -- uint16 ) 4 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L405 jp ( -- ) -> L404 L405: L404: lvar-2-2 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) lvar-2-3 "this" ( -- SioData¢& ) peek ( SioData¢& -- SioData¢ ) item+3 "baudrate" ( -- uint16& ) peek ( uint16& -- uint16 ) call set_baudrate ( SioData¢, uint16 ) jp ( -- ) -> L400 L401: L400: } } 0 ( -- uint16 ) 0 ( -- uint16 ) 0 ( -- uint16 ) 0 ( -- uint16 ) 0 ( -- uint16 )