opcodes[]: global scope global { global scope implicit__main { MenuItem kill ( MenuItem ) { var MenuItem ANON dup ( -- MenuItem¢ ) item+2 "text" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) dispose ( ucs1str -- ) } Button kill ( Button ) { var Button ANON dup ( -- Button¢ ) item+4 "text" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) dispose ( ucs1str -- ) } } type utf8str: type ucs1str: type ucs2str: type Button: void draw ( Button¢ this ) { var Button¢ this var uint16 xy var uint16 wh var uint16 w var uint16 h 0 ( -- bool ) lvar+0+2 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) 1 ( -- bool ) lvar+0+2 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+9 "disabled" ( -- bool& ) poke ( bool, bool& -- ) lvar+0+0 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+4 "wh" ( -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) 1 ( -- uint8 ) == ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L551 3 ( -- int16 ) lvar-2+6 "xy" ( -- uint16& ) lo ( uint16& -- uint8& ) <<= ( int16, uint8& -- ) lvar-2+4 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) call locate ( uint16 ) 79 ( -- uint8 ) call setattr ( uint8 ) lvar+0+4 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+4 "text" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) call print ( ucs1str¢ ) 3 ( -- int16 ) lvar-2+6 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) <<= ( int16, uint8& -- ) jp ( -- ) -> L550 L551: lvar-2+4 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+6 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 79 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) lvar-2+4 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+6 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+4 "text" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 0 ( -- int16 ) atindex ( ucs1str¢, int16 -- ucs1char& ) peek ( ucs1char& -- ucs1char ) cast ( uint8 -- uint16 ) call draw_digit ( uint16, uint16 ) 3 ( -- int16 ) lvar-2+6 "xy" ( -- uint16& ) <<= ( int16, uint16& -- ) L550: 3 ( -- int16 ) lvar-4+6 "wh" ( -- uint16& ) <<= ( int16, uint16& -- ) lvar-4+4 "wh" ( -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+6 "wh" ( -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 8 ( -- int16 ) << ( uint16, int16 -- uint16 ) lvar-2+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 256 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar-2+10 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+12 "w" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 257 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) call draw ( uint16, uint16 ) lvar-2+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "h" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-2+10 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+12 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) call draw ( uint16, uint16 ) lvar-2+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) lvar-2+10 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+12 "h" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 257 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) call draw ( uint16, uint16 ) lvar-2+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+10 "w" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-2+10 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+12 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 256 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) call draw ( uint16, uint16 ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( Button¢ -- ) } void disable ( Button¢ this ) { var Button¢ this 1 ( -- bool ) lvar+0+2 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+9 "disabled" ( -- bool& ) poke ( bool, bool& -- ) lvar+0+0 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 79 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) drop ( Button¢ -- ) } void enable ( Button¢ this ) { var Button¢ this 0 ( -- bool ) lvar+0+2 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+9 "disabled" ( -- bool& ) poke ( bool, bool& -- ) lvar+0+0 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+4 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) peek ( bool& -- bool ) jp_z ( bool -- ) -> L556 112 ( -- uint8 ) jp ( -- ) -> L557 L556: 120 ( -- uint8 ) L557: cast ( uint8 -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) drop ( Button¢ -- ) } void enable ( Button¢ this, bool f ) { var Button¢ this var bool f lvar+0+0 "f" ( -- bool& ) peek ( bool& -- bool ) cast ( bool -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L561 lvar+2+0 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) call enable ( Button¢ ) jp ( -- ) -> L559 L561: lvar+2+0 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) call disable ( Button¢ ) L559: drop ( bool -- ) drop ( Button¢ -- ) } void select ( Button¢ this, bool f ) { var Button¢ this var bool f lvar+0+0 "f" ( -- bool& ) peek ( bool& -- bool ) lvar+2+2 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) lvar+2+0 "this" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) call enable ( Button¢ ) drop ( bool -- ) drop ( Button¢ -- ) } void select_pencil ( uint16 ) { var uint16 ANON 1 ( -- bool ) gvar-6 "button_pencil" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) 0 ( -- bool ) gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) gvar-6 "button_pencil" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-6 "button_pencil" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 112 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 120 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) drop ( uint16 -- ) } void select_pen ( uint16 ) { var uint16 ANON 1 ( -- bool ) gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) 0 ( -- bool ) gvar-6 "button_pencil" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 112 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) gvar-6 "button_pencil" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-6 "button_pencil" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 120 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) drop ( uint16 -- ) } void select_number ( uint16 z ) { var uint16 z var Button¢ b var bool f local scope ANON var Button¢ b gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) lvar+0+2 "z" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) lvar-2+2 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) peek ( bool& -- bool ) ! ( bool -- bool ) gvar-16 "current_number" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L684 gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) gvar-16 "current_number" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) 0 ( -- bool ) lvar-6+8 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) 0 ( -- uint8 ) gvar-16 "current_number" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar-6+6 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 514 ( -- uint16 ) 120 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) drop ( Button¢ -- ) jp ( -- ) -> L684 L684: lvar-4+4 "f" ( -- bool& ) peek ( bool& -- bool ) cast ( bool -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L686 lvar-4+4 "f" ( -- bool& ) peek ( bool& -- bool ) lvar-2+6 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) lvar+0+4 "z" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) gvar-16 "current_number" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar-2+4 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 514 ( -- uint16 ) 112 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) jp ( -- ) -> L686 L686: call check_board () gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) peek ( bool& -- bool ) ! ( bool -- bool ) and0 ( bool -- ) -> L690 gvar-6 "button_pencil" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) peek ( bool& -- bool ) ! ( bool -- bool ) L690: jp_z ( bool -- ) -> L683 0 ( -- uint16 ) call select_pen ( uint16 ) jp ( -- ) -> L683 L683: drop ( bool -- ) drop ( Button¢ -- ) drop ( uint16 -- ) local scope ANON { } } MenuItem new ( uint16 x, uint16 w, ucs1str text, void(uint16) fu ) { var uint16 x var uint16 w var ucs1str text var void(uint16) fu var MenuItem this 6 ( -- uint16 ) alloc ( uint16 -- MenuItem ) lvar+6+2 "x" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) lvar-2+4 "this" ( -- MenuItem& ) peek ( MenuItem& -- MenuItem¢ ) item+0 "x" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar+4+2 "w" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) lvar-2+4 "this" ( -- MenuItem& ) peek ( MenuItem& -- MenuItem¢ ) item+1 "w" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar+2+2 "text" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) lvar-2+4 "this" ( -- MenuItem& ) peek ( MenuItem& -- MenuItem¢ ) item+2 "text" ( -- ucs1str& ) swapwithvar ( ucs1str, ucs1str& -- ucs1str ) dispose ( ucs1str -- ) lvar+0+2 "fu" ( -- void(uint16)& ) peek ( void(uint16)& -- void(uint16) ) lvar-2+4 "this" ( -- MenuItem& ) peek ( MenuItem& -- MenuItem¢ ) item+4 "fu" ( -- void(uint16)& ) poke ( void(uint16), void(uint16)& -- ) 7 ( -- uint8 ) call setattr ( uint8 ) lvar+6+2 "x" ( -- uint16& ) peek ( uint16& -- uint16 ) call locate ( uint16 ) 9 ( -- ucs1char ) call print ( ucs1char ) lvar+4+2 "w" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- ucs1char ) call print ( ucs1char ) lvar+2+2 "text" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) call print ( ucs1str¢ ) lvar-2+2 "this" ( -- MenuItem& ) peek ( MenuItem& -- MenuItem¢ ) retain ( MenuItem¢ -- MenuItem ) tor ( MenuItem -- ) call! kill ( MenuItem -- MenuItem ) dispose ( MenuItem -- ) drop ( void(uint16) -- ) dispose ( ucs1str -- ) drop ( uint16 -- ) drop ( uint16 -- ) fromr ( -- MenuItem ) } Button new ( uint16 xy, uint16 wh, ucs1str text, void(uint16) fu, uint16 cookie ) { var uint16 xy var uint16 wh var ucs1str text var void(uint16) fu var uint16 cookie var Button this 11 ( -- uint16 ) alloc ( uint16 -- Button ) lvar+8+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+4 "this" ( -- Button& ) peek ( Button& -- Button¢ ) item+0 "xy" ( -- uint16& ) poke ( uint16, uint16& -- ) lvar+6+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+4 "this" ( -- Button& ) peek ( Button& -- Button¢ ) item+2 "wh" ( -- uint16& ) poke ( uint16, uint16& -- ) lvar+4+2 "text" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) lvar-2+4 "this" ( -- Button& ) peek ( Button& -- Button¢ ) item+4 "text" ( -- ucs1str& ) swapwithvar ( ucs1str, ucs1str& -- ucs1str ) dispose ( ucs1str -- ) lvar+2+2 "fu" ( -- void(uint16)& ) peek ( void(uint16)& -- void(uint16) ) lvar-2+4 "this" ( -- Button& ) peek ( Button& -- Button¢ ) item+6 "fu" ( -- void(uint16)& ) poke ( void(uint16), void(uint16)& -- ) lvar+0+2 "cookie" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) lvar-2+4 "this" ( -- Button& ) peek ( Button& -- Button¢ ) item+10 "cookie" ( -- uint8& ) poke ( uint8, uint8& -- ) lvar-2+2 "this" ( -- Button& ) peek ( Button& -- Button¢ ) retain ( Button¢ -- Button ) tor ( Button -- ) call! kill ( Button -- Button ) dispose ( Button -- ) drop ( uint16 -- ) drop ( void(uint16) -- ) dispose ( ucs1str -- ) drop ( uint16 -- ) drop ( uint16 -- ) fromr ( -- Button ) } bool isinbox ( uint16 pos, uint16 xy, uint16 wh ) { var uint16 pos var uint16 xy var uint16 wh lvar+4+0 "pos" ( -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) lvar+2+2 "xy" ( -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) >= ( uint8, uint8 -- bool ) and0 ( bool -- ) -> L569 lvar+4+0 "pos" ( -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) lvar+2+2 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) >= ( uint8, uint8 -- bool ) L569: and0 ( bool -- ) -> L570 lvar+4+0 "pos" ( -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar+2+2 "xy" ( -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) lvar+0+4 "wh" ( -- uint16& ) lo ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) + ( uint8, uint8 -- uint16 ) < ( uint16, uint16 -- bool ) L570: and0 ( bool -- ) -> L571 lvar+4+0 "pos" ( -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar+2+2 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) lvar+0+4 "wh" ( -- uint16& ) hi ( uint16& -- uint8& ) peek ( uint8& -- uint8 ) + ( uint8, uint8 -- uint16 ) < ( uint16, uint16 -- bool ) L571: tor ( bool -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) fromr ( -- bool ) } void track_mouse_while_button_down ( uint16 xy, uint16 wh ) { var uint16 xy var uint16 wh call wait () L574: call wait () gvar "mouse_buttons" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) and0 ( bool -- ) -> L576 gvar "mouse_xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+4 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) call isinbox ( uint16, uint16, uint16 -- bool ) L576: jp_z ( bool -- ) -> L573 jp ( -- ) -> L574 L573: drop ( uint16 -- ) drop ( uint16 -- ) } void track_mouse_while_button_up ( uint16 xy, uint16 wh ) { var uint16 xy var uint16 wh L579: call wait () gvar "mouse_buttons" ( -- uint8& ) peek ( uint8& -- uint8 ) ! ( uint8 -- bool ) and0 ( bool -- ) -> L581 gvar "mouse_xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+4 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) call isinbox ( uint16, uint16, uint16 -- bool ) L581: jp_z ( bool -- ) -> L578 call getc_avail ( -- bool ) jp_z ( bool -- ) -> L579 jp ( -- ) -> L578 L578: drop ( uint16 -- ) drop ( uint16 -- ) } void set_cell_attr ( uint16 idx, uint16 attr ) { var uint16 idx var uint16 attr var uint16 xy lvar+2+0 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 9 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) 9 ( -- int16 ) << ( uint16, int16 -- uint16 ) 780 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar+2+2 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 9 ( -- uint16 ) % ( uint16, uint16 -- uint16 ) 1 ( -- int16 ) << ( uint16, int16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 514 ( -- uint16 ) lvar+0+6 "attr" ( -- uint16& ) peek ( uint16& -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) } void draw_cross () { 6288 ( -- uint16 ) 42896 ( -- uint16 ) call draw ( uint16, uint16 ) 6336 ( -- uint16 ) 42944 ( -- uint16 ) call draw ( uint16, uint16 ) 18272 ( -- uint16 ) 18415 ( -- uint16 ) call draw ( uint16, uint16 ) 30560 ( -- uint16 ) 30703 ( -- uint16 ) call draw ( uint16, uint16 ) } void check_board () { local scope ANON var uint16 i var uint16 sli local scope ANON var uint8* set var uint16 mask var uint16 emask var uint8* p local scope ANON var uint16 c var uint16 m local scope ANON var uint16 c var uint16 m 780 ( -- uint16 ) call board_reset_attr ( uint16 ) gvar-16 "current_number" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L590 81 ( -- uint16 ) L592: lvar-2+2 "i" ( -- uint16& ) peekmm ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L593 gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-2+4 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) gvar-16 "current_number" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L592 lvar-2+2 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) 112 ( -- uint16 ) call set_cell_attr ( uint16, uint16 ) jp ( -- ) -> L592 L593: drop ( uint16 -- ) jp ( -- ) -> L590 L590: 27 ( -- uint16 ) L596: lvar-2+2 "sli" ( -- uint16& ) peekmm ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L589 lvar-2+2 "sli" ( -- uint16& ) peek ( uint16& -- uint16 ) call get_cellset ( uint16 -- uint8* ) 0 ( -- uint16 ) 0 ( -- uint16 ) lvar-4+8 "set" ( -- uint8*& ) peek ( uint8*& -- uint8* ) 9 ( -- int16 ) + ( uint8*, int16 -- uint8* ) L598: lvar-10+10 "p" ( -- uint8*& ) mmpeek ( uint8*& -- uint8* ) lvar-4+12 "set" ( -- uint8*& ) peek ( uint8*& -- uint8* ) >= ( uint8*, uint8* -- bool ) jp_z ( bool -- ) -> L599 gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-10+12 "p" ( -- uint8*& ) peek ( uint8*& -- uint8* ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) lvar-12+12 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) 0 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L600 drop ( uint16 -- ) jp ( -- ) -> L598 L600: 1 ( -- uint16 ) lvar-12+14 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) << ( uint16, int16 -- uint16 ) lvar-6+14 "mask" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-14+16 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L603 lvar-14+14 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+16 "emask" ( -- uint16& ) |= ( uint16, uint16& -- ) jp ( -- ) -> L602 L603: lvar-14+14 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+16 "mask" ( -- uint16& ) |= ( uint16, uint16& -- ) L602: drop ( uint16 -- ) drop ( uint16 -- ) jp ( -- ) -> L598 L599: lvar-8+10 "emask" ( -- uint16& ) peek ( uint16& -- uint16 ) ! ( uint16 -- bool ) jp_z ( bool -- ) -> L604 drop ( uint8* -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint8* -- ) jp ( -- ) -> L596 L604: lvar-4+10 "set" ( -- uint8*& ) peek ( uint8*& -- uint8* ) 9 ( -- int16 ) + ( uint8*, int16 -- uint8* ) lvar-10+12 "p" ( -- uint8*& ) poke ( uint8*, uint8*& -- ) L606: lvar-10+10 "p" ( -- uint8*& ) mmpeek ( uint8*& -- uint8* ) lvar-4+12 "set" ( -- uint8*& ) peek ( uint8*& -- uint8* ) >= ( uint8*, uint8* -- bool ) jp_z ( bool -- ) -> L607 gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-10+12 "p" ( -- uint8*& ) peek ( uint8*& -- uint8* ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) lvar-12+12 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) 0 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L608 drop ( uint16 -- ) jp ( -- ) -> L606 L608: 1 ( -- uint16 ) lvar-12+14 "c" ( -- uint16& ) peek ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) << ( uint16, int16 -- uint16 ) lvar-8+14 "emask" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-14+16 "m" ( -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L610 lvar-10+14 "p" ( -- uint8*& ) peek ( uint8*& -- uint8* ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 80 ( -- uint16 ) call set_cell_attr ( uint16, uint16 ) jp ( -- ) -> L610 L610: drop ( uint16 -- ) drop ( uint16 -- ) jp ( -- ) -> L606 L607: drop ( uint8* -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint8* -- ) jp ( -- ) -> L596 L589: drop ( uint16 -- ) local scope ANON { } local scope ANON { local scope ANON { } local scope ANON { } } } void set_cell ( uint16 idx, uint16 value ) { var uint16 idx var uint16 value var uint16 x var uint16 y lvar+0+0 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+2+4 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) poke ( uint16, uint16& -- ) lvar+2+0 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 9 ( -- uint16 ) % ( uint16, uint16 -- uint16 ) lvar+2+2 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 9 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) call hide_mouse () lvar-2+4 "x" ( -- uint16& ) peek ( uint16& -- uint16 ) 1 ( -- int16 ) << ( uint16, int16 -- uint16 ) 780 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar-4+6 "y" ( -- uint16& ) peek ( uint16& -- uint16 ) 9 ( -- int16 ) << ( uint16, int16 -- uint16 ) + ( uint16, uint16 -- uint16 ) lvar+0+6 "value" ( -- uint16& ) peek ( uint16& -- uint16 ) call draw_digit ( uint16, uint16 ) lvar-2+4 "x" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L615 6288 ( -- uint16 ) 42896 ( -- uint16 ) call draw ( uint16, uint16 ) jp ( -- ) -> L614 L615: lvar-2+4 "x" ( -- uint16& ) peek ( uint16& -- uint16 ) 6 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L614 6336 ( -- uint16 ) 42944 ( -- uint16 ) call draw ( uint16, uint16 ) jp ( -- ) -> L614 L614: lvar-4+4 "y" ( -- uint16& ) peek ( uint16& -- uint16 ) 2 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L619 18272 ( -- uint16 ) 18415 ( -- uint16 ) call draw ( uint16, uint16 ) jp ( -- ) -> L618 L619: lvar-4+4 "y" ( -- uint16& ) peek ( uint16& -- uint16 ) 5 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L618 30560 ( -- uint16 ) 30703 ( -- uint16 ) call draw ( uint16, uint16 ) jp ( -- ) -> L618 L618: call show_mouse () drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) } void clear_pencil_in_set ( uint16 mask, uint8* set ) { var uint16 mask var uint8* set var uint16 i local scope ANON var uint16 j 9 ( -- uint16 ) L624: lvar-2+2 "i" ( -- uint16& ) peekmm ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L623 lvar+0+2 "set" ( -- uint8*& ) peekpp ( uint8*& -- uint8* ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-4+6 "j" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) lvar+2+6 "mask" ( -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L626 lvar-4+4 "j" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-4+8 "j" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) lvar+2+8 "mask" ( -- uint16& ) peek ( uint16& -- uint16 ) ^ ( uint16, uint16 -- uint16 ) call set_cell ( uint16, uint16 ) jp ( -- ) -> L626 L626: drop ( uint16 -- ) jp ( -- ) -> L624 L623: drop ( uint16 -- ) drop ( uint8* -- ) drop ( uint16 -- ) local scope ANON { } } void track_mouse () { local scope ANON var uint8 i local scope ANON var MenuItem¢ m var uint16 xy var uint16 wh local scope ANON var uint8 i local scope ANON var Button¢ b var uint16 xy var uint16 wh local scope ANON local scope ANON var uint16 x var uint16 y var uint16 idx var uint16 mask call show_mouse () L630: gvar "mouse_buttons" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L631 call wait () jp ( -- ) -> L630 L631: gvar "mouse_xy" ( -- uint16& ) peek ( uint16& -- uint16 ) extern const uint16* rndseed16 += ( uint16, uint16& -- ) gvar "mouse_y" ( -- uint8& ) peek ( uint8& -- uint8 ) 8 ( -- uint8 ) < ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L633 gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) count ( MenuItem[]¢ -- uint16 ) cast ( uint16 -- uint8 ) L634: lvar-2+2 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L635 gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) lvar-2+4 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) peek ( MenuItem& -- MenuItem¢ ) lvar-4+4 "m" ( -- MenuItem¢& ) peek ( MenuItem¢& -- MenuItem¢ ) item+0 "x" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+6 "m" ( -- MenuItem¢& ) peek ( MenuItem¢& -- MenuItem¢ ) item+1 "w" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 2048 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) gvar "mouse_xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+10 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+12 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) call isinbox ( uint16, uint16, uint16 -- bool ) jp_z ( bool -- ) -> L636 lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 71 ( -- uint16 ) call set_attr_p ( uint16, uint16, uint16 ) lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) call track_mouse_while_button_up ( uint16, uint16 ) gvar "mouse_buttons" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L638 lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 95 ( -- uint16 ) call set_attr_p ( uint16, uint16, uint16 ) lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) call track_mouse_while_button_down ( uint16, uint16 ) gvar "mouse_buttons" ( -- uint8& ) peek ( uint8& -- uint8 ) ! ( uint8 -- bool ) jp_z ( bool -- ) -> L638 0 ( -- uint16 ) lvar-4+10 "m" ( -- MenuItem¢& ) peek ( MenuItem¢& -- MenuItem¢ ) item+4 "fu" ( -- void(uint16)& ) peek ( void(uint16)& -- void(uint16) ) call_procptr ( uint16, void(uint16) ) jp ( -- ) -> L638 L638: lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 7 ( -- uint16 ) call set_attr_p ( uint16, uint16, uint16 ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( MenuItem¢ -- ) jp ( -- ) -> L635 L636: drop ( uint16 -- ) drop ( uint16 -- ) drop ( MenuItem¢ -- ) jp ( -- ) -> L634 L635: drop ( uint8 -- ) jp ( -- ) -> L629 L633: gvar "mouse_xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 6160 ( -- uint16 ) 36928 ( -- uint16 ) call isinbox ( uint16, uint16, uint16 -- bool ) jp_z ( bool -- ) -> L642 gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) count ( Button[]¢ -- uint16 ) cast ( uint16 -- uint8 ) L643: lvar-2+2 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L644 gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) lvar-2+4 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) lvar-4+4 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) lvar-4+6 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- int16 ) << ( uint16, int16 -- uint16 ) gvar "mouse_xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+10 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+12 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) call isinbox ( uint16, uint16, uint16 -- bool ) jp_z ( bool -- ) -> L645 lvar-4+8 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+9 "disabled" ( -- bool& ) peek ( bool& -- bool ) cast ( bool -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L647 drop ( uint16 -- ) drop ( uint16 -- ) drop ( Button¢ -- ) jp ( -- ) -> L644 L647: lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 112 ( -- uint16 ) call set_attr_p ( uint16, uint16, uint16 ) lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) call track_mouse_while_button_up ( uint16, uint16 ) gvar "mouse_buttons" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L649 lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 96 ( -- uint16 ) call set_attr_p ( uint16, uint16, uint16 ) lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) call track_mouse_while_button_down ( uint16, uint16 ) gvar "mouse_buttons" ( -- uint8& ) peek ( uint8& -- uint8 ) ! ( uint8 -- bool ) jp_z ( bool -- ) -> L649 lvar-4+8 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+10 "cookie" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+10 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+6 "fu" ( -- void(uint16)& ) peek ( void(uint16)& -- void(uint16) ) call_procptr ( uint16, void(uint16) ) jp ( -- ) -> L649 L649: lvar-6+8 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+12 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) peek ( bool& -- bool ) jp_z ( bool -- ) -> L653 112 ( -- uint8 ) jp ( -- ) -> L654 L653: 120 ( -- uint8 ) L654: cast ( uint8 -- uint16 ) call set_attr_p ( uint16, uint16, uint16 ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( Button¢ -- ) jp ( -- ) -> L644 L645: drop ( uint16 -- ) drop ( uint16 -- ) drop ( Button¢ -- ) jp ( -- ) -> L643 L644: drop ( uint8 -- ) jp ( -- ) -> L629 L642: gvar-14 "game_on" ( -- bool& ) peek ( bool& -- bool ) and0 ( bool -- ) -> L656 gvar-16 "current_number" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) L656: and0 ( bool -- ) -> L657 gvar "mouse_xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 6240 ( -- uint16 ) 37008 ( -- uint16 ) call isinbox ( uint16, uint16, uint16 -- bool ) L657: jp_z ( bool -- ) -> L629 6240 ( -- uint16 ) 37008 ( -- uint16 ) call track_mouse_while_button_up ( uint16, uint16 ) gvar "mouse_buttons" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L629 gvar "mouse_x" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) >> ( uint16, int16 -- uint16 ) 780 ( -- uint16 ) lo ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) - ( uint16, uint16 -- uint16 ) 1 ( -- int16 ) >> ( uint16, int16 -- uint16 ) gvar "mouse_y" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- int16 ) >> ( uint16, int16 -- uint16 ) 780 ( -- uint16 ) hi ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) - ( uint16, uint16 -- uint16 ) 1 ( -- int16 ) >> ( uint16, int16 -- uint16 ) lvar-4+4 "y" ( -- uint16& ) peek ( uint16& -- uint16 ) 9 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) lvar-2+6 "x" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint16, uint16 -- uint16 ) 64 ( -- uint16 ) gvar-16 "current_number" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) << ( uint16, int16 -- uint16 ) gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) peek ( bool& -- bool ) cast ( bool -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L661 gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-6+10 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) 16 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L662 drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) jp ( -- ) -> L629 L662: gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-6+10 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) gvar-16 "current_number" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L665 lvar-6+8 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 0 ( -- uint16 ) call set_cell ( uint16, uint16 ) jp ( -- ) -> L664 L665: lvar-6+8 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-16 "current_number" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) call set_cell ( uint16, uint16 ) lvar-8+8 "mask" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+10 "x" ( -- uint16& ) peek ( uint16& -- uint16 ) call get_colset ( uint16 -- uint8* ) call clear_pencil_in_set ( uint16, uint8* ) lvar-8+8 "mask" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+10 "y" ( -- uint16& ) peek ( uint16& -- uint16 ) call get_rowset ( uint16 -- uint8* ) call clear_pencil_in_set ( uint16, uint8* ) lvar-8+8 "mask" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-4+10 "y" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) lvar-2+12 "x" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) call get_blkset ( uint16, uint16 -- uint8* ) call clear_pencil_in_set ( uint16, uint8* ) L664: call check_board () jp ( -- ) -> L660 L661: gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-6+10 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L666 drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) jp ( -- ) -> L629 L666: lvar-6+8 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-6+12 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+12 "mask" ( -- uint16& ) peek ( uint16& -- uint16 ) ^ ( uint16, uint16 -- uint16 ) call set_cell ( uint16, uint16 ) L660: drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) drop ( uint16 -- ) jp ( -- ) -> L629 L629: local scope ANON { local scope ANON { } } local scope ANON { local scope ANON { } } local scope ANON { local scope ANON { } } } void clear_mbar () { 0 ( -- uint16 ) 8 ( -- uint16 ) 255 ( -- uint16 ) 8 ( -- uint16 ) call draw ( uint16, uint16, uint16, uint16 ) 71 ( -- uint8 ) call setattr ( uint8 ) 1 ( -- ucs1char ) call print ( ucs1char ) 26 ( -- ucs1char ) call print ( ucs1char ) 225 ( -- uint16 ) call locate ( uint16 ) "00:00" ( -- ucs1str ) call print ( ucs1str ) } void draw_board () { var uint16 xy var uint8 i local scope ANON local scope ANON var uint8 c 780 ( -- uint16 ) 0 ( -- uint8 ) L674: gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-4+6 "i" ( -- uint8& ) peekpp ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) lvar-6+6 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) 15 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L676 lvar-2+6 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-6+8 "c" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) call draw_digit ( uint16, uint16 ) jp ( -- ) -> L676 L676: 2 ( -- uint8 ) lvar-2+8 "xy" ( -- uint16& ) lo ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-4+6 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 9 ( -- uint16 ) % ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_nz ( bool -- ) -> L678 drop ( uint8 -- ) jp ( -- ) -> L675 L678: drop ( uint8 -- ) jp ( -- ) -> L674 L675: 18 ( -- uint8 ) lvar-2+6 "xy" ( -- uint16& ) lo ( uint16& -- uint8& ) -= ( uint8, uint8& -- ) 2 ( -- uint8 ) lvar-2+6 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-4+4 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) 81 ( -- uint8 ) < ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L673 jp ( -- ) -> L674 L673: call draw_cross () drop ( uint8 -- ) drop ( uint16 -- ) local scope ANON { local scope ANON { } } } void select_joystick () { L680: } void undo ( uint16 ) { var uint16 ANON L692: drop ( uint16 -- ) } void redo ( uint16 ) { var uint16 ANON L694: drop ( uint16 -- ) } void set_level ( uint16 n ) { var uint16 n var Button¢ b gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) gvar-12 "level" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 14 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) 0 ( -- bool ) lvar-2+4 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) lvar-2+2 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+4 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 120 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) lvar+0+2 "n" ( -- uint16& ) peek ( uint16& -- uint16 ) cast ( uint16 -- uint8 ) gvar-12 "level" ( -- uint8& ) poke ( uint8, uint8& -- ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) gvar-12 "level" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 14 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) lvar-2+4 "b" ( -- Button¢& ) poke ( Button¢, Button¢& -- ) 1 ( -- bool ) lvar-2+4 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) lvar-2+2 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+0 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-2+4 "b" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+2 "wh" ( -- uint16& ) peek ( uint16& -- uint16 ) 112 ( -- uint16 ) call set_attr_c ( uint16, uint16, uint16 ) drop ( Button¢ -- ) drop ( uint16 -- ) } void start_game ( uint16 ) { var uint16 ANON 1 ( -- bool ) gvar-14 "game_on" ( -- bool& ) poke ( bool, bool& -- ) drop ( uint16 -- ) } void pause ( uint16 ) { var uint16 ANON var uint8 x 0 ( -- uint8 ) L701: lvar-2+2 "x" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 96 ( -- uint16 ) extern const int8* sintab lvar-2+8 "x" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) + ( int8*, int16 -- int8* ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) - ( uint16, int16 -- int16 ) call plot ( uint16, uint16 ) lvar-2+2 "x" ( -- uint8& ) pppeek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L700 jp ( -- ) -> L701 L700: drop ( uint8 -- ) drop ( uint16 -- ) } void abort ( uint16 ) { var uint16 ANON 0 ( -- bool ) gvar-14 "game_on" ( -- bool& ) poke ( bool, bool& -- ) drop ( uint16 -- ) } void save ( uint16 ) { var uint16 ANON L706: drop ( uint16 -- ) } void load ( uint16 ) { var uint16 ANON L708: drop ( uint16 -- ) } void mogrify_board () { var ucs1str xch var uint16 i local scope ANON var uint16& c " 123456789??????" ( -- ucs1str ) 9 ( -- uint16 ) L711: lvar-2+4 "xch" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-4+6 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( ucs1str¢, int16 -- ucs1char& ) lvar-2+6 "xch" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-4+8 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) call random ( uint16 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) atindex ( ucs1str¢, int16 -- ucs1char& ) swap ( ucs1char&, ucs1char& -- ) lvar-4+4 "i" ( -- uint16& ) mmpeek ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L712 jp ( -- ) -> L711 L712: 81 ( -- uint16 ) lvar-4+6 "i" ( -- uint16& ) poke ( uint16, uint16& -- ) L713: lvar-4+4 "i" ( -- uint16& ) peekmm ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L710 gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-4+6 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) lvar-6+6 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) peek ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L715 lvar-6+6 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) peek ( uint16& -- uint16 ) 65520 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) lvar-2+8 "xch" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-6+10 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) peek ( uint16& -- uint16 ) 15 ( -- uint16 ) & ( uint16, uint16 -- uint16 ) atindex ( ucs1str¢, int16 -- ucs1char& ) peek ( ucs1char& -- ucs1char ) cast ( ucs1char -- uint8 ) 15 ( -- uint8 ) & ( uint8, uint8 -- uint8 ) cast ( uint8 -- uint16 ) | ( uint16, uint16 -- uint16 ) lvar-6+8 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) poke ( uint16, uint16& -- ) jp ( -- ) -> L715 L715: drop ( uint16& -- ) jp ( -- ) -> L713 L710: drop ( uint16 -- ) dispose ( ucs1str -- ) local scope ANON { } } uint8[] get_related ( uint16 idx ) { var uint16 idx var uint8[] list var uint8 col var uint8 row var uint8* p var uint8 i var int8 row0 var int8 col0 var int8 r local scope ANON var int8 c lvar+0+0 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 81 ( -- uint16 ) < ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L719 "main.cc, line 616: assert(idx<81)" ( -- ucs1str ) abort ( ucs1str -- ) L719: 20 ( -- uint16 ) alloc ( uint16 -- uint8[] ) lvar+0+2 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 9 ( -- uint16 ) % ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar+0+4 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 9 ( -- uint16 ) / ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar-2+6 "list" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) 0 ( -- int16 ) atindex ( uint8[]¢, int16 -- uint8& ) 8 ( -- uint8 ) L720: lvar-10+10 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L721 lvar-10+10 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-6+12 "row" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L722 8 ( -- uint16 ) jp ( -- ) -> L723 L722: lvar-10+10 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) L723: 9 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) lvar-4+12 "col" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar-8+12 "p" ( -- uint8*& ) peekpp ( uint8*& -- uint8* ) poke ( uint8, uint8& -- ) lvar-6+10 "row" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 9 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) lvar-10+12 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+14 "col" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L724 8 ( -- uint16 ) jp ( -- ) -> L725 L724: lvar-10+12 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) L725: + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar-8+12 "p" ( -- uint8*& ) peekpp ( uint8*& -- uint8* ) poke ( uint8, uint8& -- ) jp ( -- ) -> L720 L721: lvar-6+10 "row" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-6+12 "row" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- uint16 ) % ( uint16, uint16 -- uint16 ) - ( uint16, uint16 -- uint16 ) cast ( uint16 -- int8 ) lvar-4+12 "col" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+14 "col" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 3 ( -- uint16 ) % ( uint16, uint16 -- uint16 ) - ( uint16, uint16 -- uint16 ) cast ( uint16 -- int8 ) lvar-12+14 "row0" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) 3 ( -- uint16 ) + ( int16, uint16 -- int16 ) cast ( int16 -- int8 ) L726: lvar-16+16 "r" ( -- int8& ) mmpeek ( int8& -- int8 ) lvar-12+18 "row0" ( -- int8& ) peek ( int8& -- int8 ) >= ( int8, int8 -- bool ) jp_z ( bool -- ) -> L727 lvar-16+16 "r" ( -- int8& ) peek ( int8& -- int8 ) lvar-6+18 "row" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( int8, uint8 -- bool ) jp_z ( bool -- ) -> L728 jp ( -- ) -> L726 L728: lvar-14+16 "col0" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) 3 ( -- uint16 ) + ( int16, uint16 -- int16 ) cast ( int16 -- int8 ) L730: lvar-18+18 "c" ( -- int8& ) mmpeek ( int8& -- int8 ) lvar-14+20 "col0" ( -- int8& ) peek ( int8& -- int8 ) >= ( int8, int8 -- bool ) jp_z ( bool -- ) -> L731 lvar-18+18 "c" ( -- int8& ) peek ( int8& -- int8 ) lvar-4+20 "col" ( -- uint8& ) peek ( uint8& -- uint8 ) == ( int8, uint8 -- bool ) jp_z ( bool -- ) -> L732 jp ( -- ) -> L730 L732: lvar-16+18 "r" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) 9 ( -- uint16 ) * ( int16, uint16 -- int16 ) lvar-18+20 "c" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) + ( int16, int16 -- int16 ) lvar+0+20 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) != ( int16, uint16 -- bool ) jp_nz ( bool -- ) -> L734 "main.cc, line 636: assert(r*9+c != idx)" ( -- ucs1str ) abort ( ucs1str -- ) L734: lvar-16+18 "r" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) 9 ( -- uint16 ) * ( int16, uint16 -- int16 ) lvar-18+20 "c" ( -- int8& ) peek ( int8& -- int8 ) cast ( int8 -- int16 ) + ( int16, int16 -- int16 ) cast ( int16 -- uint8 ) lvar-8+20 "p" ( -- uint8*& ) peekpp ( uint8*& -- uint8* ) poke ( uint8, uint8& -- ) jp ( -- ) -> L730 L731: drop ( int8 -- ) jp ( -- ) -> L726 L727: lvar-2+16 "list" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) retain ( uint8[]¢ -- uint8[] ) tor ( uint8[] -- ) drop ( int8 -- ) drop ( int8 -- ) drop ( int8 -- ) drop ( uint8 -- ) drop ( uint8* -- ) drop ( uint8 -- ) drop ( uint8 -- ) dispose ( uint8[] -- ) drop ( uint16 -- ) fromr ( -- uint8[] ) local scope ANON { } } void clear_board () { var uint8 i 0 ( -- uint8 ) L737: 511 ( -- uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-2+6 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) poke ( uint16, uint16& -- ) lvar-2+2 "i" ( -- uint8& ) pppeek ( uint8& -- uint8 ) 81 ( -- uint8 ) < ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L736 jp ( -- ) -> L737 L736: drop ( uint8 -- ) } void _set ( uint16 idx, uint16 symbol ) { var uint16 idx var uint16 symbol var uint8[] related var uint8 i local scope ANON var uint8 j var uint16& c lvar+2+0 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) 81 ( -- uint16 ) < ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L741 "main.cc, line 661: assert(idx<81)" ( -- ucs1str ) abort ( ucs1str -- ) L741: lvar+0+0 "symbol" ( -- uint16& ) peek ( uint16& -- uint16 ) call is1bit ( uint16 -- bool ) jp_nz ( bool -- ) -> L742 "main.cc, line 662: assert(is1bit(symbol))" ( -- ucs1str ) abort ( ucs1str -- ) L742: lvar+0+0 "symbol" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+2+4 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_nz ( bool -- ) -> L743 "main.cc, line 663: assert(symbol & board[idx])" ( -- ucs1str ) abort ( ucs1str -- ) L743: lvar+0+0 "symbol" ( -- uint16& ) peek ( uint16& -- uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+2+4 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) poke ( uint16, uint16& -- ) lvar+2+0 "idx" ( -- uint16& ) peek ( uint16& -- uint16 ) call get_related ( uint16 -- uint8[] ) 20 ( -- uint8 ) L744: lvar-2+4 "related" ( -- uint8[]& ) peek ( uint8[]& -- uint8[]¢ ) lvar-4+6 "i" ( -- uint8& ) mmpeek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint8[]¢, int16 -- uint8& ) peek ( uint8& -- uint8 ) lvar-6+6 "j" ( -- uint8& ) peek ( uint8& -- uint8 ) 81 ( -- uint8 ) < ( uint8, uint8 -- bool ) jp_nz ( bool -- ) -> L746 "main.cc, line 677: assert(j<81)" ( -- ucs1str ) abort ( ucs1str -- ) L746: gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-6+8 "j" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) lvar-8+8 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+10 "symbol" ( -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L747 lvar-8+8 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+10 "symbol" ( -- uint16& ) peek ( uint16& -- uint16 ) != ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L749 "main.cc, line 681: assert(c != symbol)" ( -- ucs1str ) abort ( ucs1str -- ) L749: lvar+0+8 "symbol" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-8+10 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) -= ( uint16, uint16& -- ) lvar-8+8 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) peek ( uint16& -- uint16 ) call is1bit ( uint16 -- bool ) jp_z ( bool -- ) -> L747 lvar-6+8 "j" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-8+10 "c" ( -- uint16&& ) peek ( uint16&& -- uint16& ) peek ( uint16& -- uint16 ) call _set ( uint16, uint16 ) jp ( -- ) -> L747 L747: lvar-4+8 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_nz ( bool -- ) -> L752 drop ( uint16& -- ) drop ( uint8 -- ) jp ( -- ) -> L740 L752: drop ( uint16& -- ) drop ( uint8 -- ) jp ( -- ) -> L744 L740: drop ( uint8 -- ) dispose ( uint8[] -- ) drop ( uint16 -- ) drop ( uint16 -- ) local scope ANON { } } void newBoard ( uint8* qdata ) { var uint8* qdata var uint8 qbyte var uint8 qmask var uint8 i var uint8 bi local scope ANON var uint16 z var uint8 n var uint8 i var uint16 q 0 ( -- uint8 ) 0 ( -- uint8 ) call clear_board () 9 ( -- uint8 ) L755: lvar-6+6 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L756 lvar-6+6 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) lvar-6+10 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) << ( uint16, int16 -- uint16 ) call _set ( uint16, uint16 ) jp ( -- ) -> L755 L756: 8 ( -- uint8 ) L757: lvar-8+8 "bi" ( -- uint8& ) pppeek ( uint8& -- uint8 ) 81 ( -- uint8 ) < ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L754 gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-8+10 "bi" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) lvar-10+10 "z" ( -- uint16& ) peek ( uint16& -- uint16 ) call count1bits ( uint16 -- uint8 ) lvar-12+12 "n" ( -- uint8& ) peek ( uint8& -- uint8 ) 1 ( -- uint8 ) == ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L759 drop ( uint8 -- ) drop ( uint16 -- ) jp ( -- ) -> L757 L759: lvar-12+12 "n" ( -- uint8& ) peek ( uint8& -- uint8 ) 1 ( -- uint8 ) > ( uint8, uint8 -- bool ) and0 ( bool -- ) -> L761 lvar-12+12 "n" ( -- uint8& ) peek ( uint8& -- uint8 ) 8 ( -- uint8 ) <= ( uint8, uint8 -- bool ) L761: jp_nz ( bool -- ) -> L762 "main.cc, line 718: assert(n>1 && n<=8)" ( -- ucs1str ) abort ( ucs1str -- ) L762: lvar-12+12 "n" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) - ( uint16, uint16 -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) cast ( uint16 -- uint8 ) lvar-12+14 "n" ( -- uint8& ) poke ( uint8, uint8& -- ) 0 ( -- uint8 ) L763: lvar-12+14 "n" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L764 lvar-4+14 "qmask" ( -- uint8& ) peek ( uint8& -- uint8 ) 0 ( -- uint8 ) == ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L765 lvar+0+14 "qdata" ( -- uint8*& ) peekpp ( uint8*& -- uint8* ) peek ( uint8& -- uint8 ) lvar-2+16 "qbyte" ( -- uint8& ) poke ( uint8, uint8& -- ) 128 ( -- uint8 ) lvar-4+16 "qmask" ( -- uint8& ) poke ( uint8, uint8& -- ) jp ( -- ) -> L765 L765: 1 ( -- int16 ) lvar-14+16 "i" ( -- uint8& ) <<= ( int16, uint8& -- ) lvar-2+14 "qbyte" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+16 "qmask" ( -- uint8& ) peek ( uint8& -- uint8 ) & ( uint8, uint8 -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L767 lvar-14+14 "i" ( -- uint8& ) ++ ( uint8& -- ) jp ( -- ) -> L767 L767: 1 ( -- int16 ) lvar-4+16 "qmask" ( -- uint8& ) >>= ( int16, uint8& -- ) jp ( -- ) -> L763 L764: 1 ( -- uint16 ) L771: lvar-10+16 "z" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-16+18 "q" ( -- uint16& ) peek ( uint16& -- uint16 ) & ( uint16, uint16 -- uint16 ) !! ( uint16 -- bool ) jp_nz ( bool -- ) -> L772 1 ( -- int16 ) lvar-16+18 "q" ( -- uint16& ) <<= ( int16, uint16& -- ) lvar-16+16 "q" ( -- uint16& ) peek ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_nz ( bool -- ) -> L771 "main.cc, line 734: assert(q)" ( -- ucs1str ) abort ( ucs1str -- ) jp ( -- ) -> L771 L772: lvar-14+16 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L770 1 ( -- int16 ) lvar-16+18 "q" ( -- uint16& ) <<= ( int16, uint16& -- ) jp ( -- ) -> L771 L770: lvar-8+16 "bi" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-16+18 "q" ( -- uint16& ) peek ( uint16& -- uint16 ) call _set ( uint16, uint16 ) drop ( uint16 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint16 -- ) jp ( -- ) -> L757 L754: drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8* -- ) local scope ANON { } } void swap_cols ( uint16 a, uint16 b ) { var uint16 a var uint16 b lvar+2+0 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "b" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L776 "[]" ( -- ucs1str ) call print ( ucs1str ) jp ( -- ) -> L775 L776: "[sc" ( -- ucs1str ) call print ( ucs1str ) L778: gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+2+2 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+0+4 "b" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) swap ( uint16&, uint16& -- ) 9 ( -- uint16 ) lvar+2+2 "a" ( -- uint16& ) += ( uint16, uint16& -- ) 9 ( -- uint16 ) lvar+0+2 "b" ( -- uint16& ) += ( uint16, uint16& -- ) lvar+2+0 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) 81 ( -- uint16 ) < ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L779 jp ( -- ) -> L778 L779: "]" ( -- ucs1str ) call print ( ucs1str ) L775: drop ( uint16 -- ) drop ( uint16 -- ) } void swap_rows ( uint16 a, uint16 b ) { var uint16 a var uint16 b var uint16[] z lvar+2+0 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "b" ( -- uint16& ) peek ( uint16& -- uint16 ) == ( uint16, uint16 -- bool ) jp_z ( bool -- ) -> L782 "[]" ( -- ucs1str ) call print ( ucs1str ) jp ( -- ) -> L781 L782: "[sr" ( -- ucs1str ) call print ( ucs1str ) 9 ( -- uint16 ) lvar+2+2 "a" ( -- uint16& ) *= ( uint16, uint16& -- ) 9 ( -- uint16 ) lvar+0+2 "b" ( -- uint16& ) *= ( uint16, uint16& -- ) 18 ( -- uint16 ) alloc ( uint16 -- uint16[] ) lvar-2+2 "z" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) 0 ( -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+2+6 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) 18 ( -- uint16 ) call memcpy ( void*, void*, uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+2+4 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+0+6 "b" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) 18 ( -- uint16 ) call memcpy ( void*, void*, uint16 ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar+0+4 "b" ( -- uint16& ) peek ( uint16& -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) lvar-2+4 "z" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) 0 ( -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) 18 ( -- uint16 ) call memcpy ( void*, void*, uint16 ) "]" ( -- ucs1str ) call print ( ucs1str ) dispose ( uint16[] -- ) L781: drop ( uint16 -- ) drop ( uint16 -- ) } void mirror_h () { var uint8 r "[mh" ( -- ucs1str ) call print ( ucs1str ) 81 ( -- uint8 ) L786: lvar-2+2 "r" ( -- uint8& ) peek ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L787 9 ( -- uint8 ) lvar-2+4 "r" ( -- uint8& ) -= ( uint8, uint8& -- ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-2+4 "r" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) lvar-2+6 "r" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 9 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) substr ( uint16[]¢, int16, int16 -- uint16[to] ) revert ( uint16[to] ) jp ( -- ) -> L786 L787: "]" ( -- ucs1str ) call print ( ucs1str ) drop ( uint8 -- ) } void mirror_v () { var uint8 a var uint8 b "[mv" ( -- ucs1str ) call print ( ucs1str ) 0 ( -- uint8 ) 8 ( -- uint8 ) L790: lvar-2+4 "a" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-4+6 "b" ( -- uint8& ) peek ( uint8& -- uint8 ) < ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L791 lvar-2+4 "a" ( -- uint8& ) peekpp ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+6 "b" ( -- uint8& ) peekmm ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) call swap_rows ( uint16, uint16 ) jp ( -- ) -> L790 L791: "]" ( -- ucs1str ) call print ( ucs1str ) drop ( uint8 -- ) drop ( uint8 -- ) } void mirror_h_blk ( uint16 i ) { var uint16 i "[mhb" ( -- ucs1str ) call print ( ucs1str ) 3 ( -- uint16 ) lvar+0+2 "i" ( -- uint16& ) *= ( uint16, uint16& -- ) lvar+0+0 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) 2 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) call swap_cols ( uint16, uint16 ) "]" ( -- ucs1str ) call print ( ucs1str ) drop ( uint16 -- ) } void mirror_v_blk ( uint16 i ) { var uint16 i "[mvb" ( -- ucs1str ) call print ( ucs1str ) 27 ( -- uint16 ) lvar+0+2 "i" ( -- uint16& ) *= ( uint16, uint16& -- ) lvar+0+0 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar+0+2 "i" ( -- uint16& ) peek ( uint16& -- uint16 ) 18 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) call swap_rows ( uint16, uint16 ) "]" ( -- ucs1str ) call print ( ucs1str ) drop ( uint16 -- ) } void transpose_board () { var uint8 i local scope ANON var uint8 j "[xb" ( -- ucs1str ) call print ( ucs1str ) 9 ( -- uint8 ) L798: lvar-2+2 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L799 lvar-2+2 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) L800: lvar-4+4 "j" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L801 gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-2+6 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 9 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) lvar-4+8 "j" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) + ( uint16, uint16 -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-2+8 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) lvar-4+10 "j" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 9 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) + ( uint16, uint16 -- uint16 ) atindex ( uint16[]¢, int16 -- uint16& ) swap ( uint16&, uint16& -- ) jp ( -- ) -> L800 L801: drop ( uint8 -- ) jp ( -- ) -> L798 L799: "]" ( -- ucs1str ) call print ( ucs1str ) drop ( uint8 -- ) local scope ANON { } } void shuffle_h () { var uint16 a "[sh" ( -- ucs1str ) call print ( ucs1str ) 9 ( -- uint16 ) L804: lvar-2+2 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) call random ( uint16 -- uint16 ) lvar-2+4 "a" ( -- uint16& ) mmpeek ( uint16& -- uint16 ) call swap_cols ( uint16, uint16 ) lvar-2+2 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L805 jp ( -- ) -> L804 L805: "]" ( -- ucs1str ) call print ( ucs1str ) drop ( uint16 -- ) } void shuffle_v () { var uint16 a "[sv" ( -- ucs1str ) call print ( ucs1str ) 9 ( -- uint16 ) L808: lvar-2+2 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) call random ( uint16 -- uint16 ) lvar-2+4 "a" ( -- uint16& ) mmpeek ( uint16& -- uint16 ) call swap_rows ( uint16, uint16 ) lvar-2+2 "a" ( -- uint16& ) peek ( uint16& -- uint16 ) !! ( uint16 -- bool ) jp_z ( bool -- ) -> L809 jp ( -- ) -> L808 L809: "]" ( -- ucs1str ) call print ( ucs1str ) drop ( uint16 -- ) } void main () { var uint16 xy var uint8 i local scope ANON var uint16 brdidx var uint8* cboard var uint8* pp var uint8 bits var uint8 byte var uint8 mask var uint8[9] syms var uint8 i local scope ANON var ucs1char c "\r\rPress key --> " ( -- ucs1str ) call print ( ucs1str ) call waitc ( -- ucs1char ) drop ( ucs1char -- ) 162 ( -- uint16 ) alloc ( uint16 -- uint16[] ) gvar-10 "board" ( -- uint16[]& ) poke ( uint16[], uint16[]& -- ) 38 ( -- uint16 ) alloc ( uint16 -- Button[] ) gvar-4 "buttons" ( -- Button[]& ) poke ( Button[], Button[]& -- ) 12 ( -- uint16 ) alloc ( uint16 -- MenuItem[] ) gvar-2 "menu_items" ( -- MenuItem[]& ) poke ( MenuItem[], MenuItem[]& -- ) 770 ( -- uint16 ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 259 ( -- uint16 ) "Easy" ( -- ucs1str ) push_procptr set_level ( -- void(uint16)* ) 0 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 14 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 4 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 260 ( -- uint16 ) "Normal" ( -- ucs1str ) push_procptr set_level ( -- void(uint16)* ) 1 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 15 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) 2 ( -- uint8 ) lvar-2+4 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 259 ( -- uint16 ) "Hard" ( -- ucs1str ) push_procptr set_level ( -- void(uint16)* ) 2 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 16 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 4 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 260 ( -- uint16 ) "Expert" ( -- ucs1str ) push_procptr set_level ( -- void(uint16)* ) 3 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 17 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) 2 ( -- uint8 ) lvar-2+4 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 264 ( -- uint16 ) "Start Game" ( -- ucs1str ) push_procptr start_game ( -- void(uint16)* ) 1 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 18 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) 2 ( -- uint8 ) lvar-2+4 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 514 ( -- uint16 ) "1" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 1 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 0 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 514 ( -- uint16 ) "2" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 2 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 1 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 6 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 514 ( -- uint16 ) "3" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 3 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 2 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) 3 ( -- uint8 ) lvar-2+4 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 514 ( -- uint16 ) "4" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 4 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 3 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 514 ( -- uint16 ) "5" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 5 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 4 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 6 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 514 ( -- uint16 ) "6" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 6 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 5 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) 3 ( -- uint8 ) lvar-2+4 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 514 ( -- uint16 ) "7" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 7 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 6 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 3 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 514 ( -- uint16 ) "8" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 8 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 7 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 6 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 514 ( -- uint16 ) "9" ( -- ucs1str ) push_procptr select_number ( -- void(uint16)* ) 9 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 8 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) 3 ( -- uint8 ) lvar-2+4 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 259 ( -- uint16 ) "Pen" ( -- ucs1str ) push_procptr select_pen ( -- void(uint16)* ) 1 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 9 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 9 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) gvar-8 "button_pen" ( -- Button¢& ) poke ( Button¢, Button¢& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 4 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 260 ( -- uint16 ) "Pencil" ( -- ucs1str ) push_procptr select_pencil ( -- void(uint16)* ) 1 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 10 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 10 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) gvar-6 "button_pencil" ( -- Button¢& ) poke ( Button¢, Button¢& -- ) 2 ( -- uint8 ) lvar-2+4 "xy" ( -- uint16& ) hi ( uint16& -- uint8& ) += ( uint8, uint8& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 257 ( -- uint16 ) extern const ucs1char charcode_left_arrow cast ( uint8 -- uint16 ) call charstr ( uint16 -- ucs1str ) push_procptr undo ( -- void(uint16)* ) 1 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 11 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 2 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 257 ( -- uint16 ) extern const ucs1char charcode_right_arrow cast ( uint8 -- uint16 ) call charstr ( uint16 -- ucs1str ) push_procptr redo ( -- void(uint16)* ) 1 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 12 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) lvar-2+2 "xy" ( -- uint16& ) peek ( uint16& -- uint16 ) 4 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 260 ( -- uint16 ) "Pause" ( -- ucs1str ) push_procptr pause ( -- void(uint16)* ) 1 ( -- uint16 ) call new ( uint16, uint16, ucs1str, void(uint16), uint16 -- Button ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) 13 ( -- int16 ) atindex ( Button[]¢, int16 -- Button& ) poke ( Button, Button& -- ) call clear_background () gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) count ( Button[]¢ -- uint16 ) cast ( uint16 -- uint8 ) L812: lvar-4+4 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L813 gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) lvar-4+6 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) call draw ( Button¢ ) jp ( -- ) -> L812 L813: call select_joystick () L814: call clear_mbar () 0 ( -- uint16 ) 28 ( -- uint16 ) "Save" ( -- ucs1str ) push_procptr save ( -- void(uint16)* ) call new ( uint16, uint16, ucs1str, void(uint16) -- MenuItem ) gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) 0 ( -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) swapwithvar ( MenuItem, MenuItem& -- MenuItem ) call! kill ( MenuItem -- MenuItem ) dispose ( MenuItem -- ) 34 ( -- uint16 ) 29 ( -- uint16 ) "Load" ( -- ucs1str ) push_procptr load ( -- void(uint16)* ) call new ( uint16, uint16, ucs1str, void(uint16) -- MenuItem ) gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) 1 ( -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) swapwithvar ( MenuItem, MenuItem& -- MenuItem ) call! kill ( MenuItem -- MenuItem ) dispose ( MenuItem -- ) 780 ( -- uint16 ) call clear_board ( uint16 ) call draw_cross () gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) count ( Button[]¢ -- uint16 ) cast ( uint16 -- uint8 ) lvar-4+6 "i" ( -- uint8& ) poke ( uint8, uint8& -- ) L816: lvar-4+4 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L817 gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) lvar-4+6 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) lvar-4+6 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) 14 ( -- uint8 ) >= ( uint8, uint8 -- bool ) call enable ( Button¢, bool ) jp ( -- ) -> L816 L817: gvar-12 "level" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) call set_level ( uint16 ) L818: gvar-14 "game_on" ( -- bool& ) peek ( bool& -- bool ) ! ( bool -- bool ) jp_z ( bool -- ) -> L819 call track_mouse () jp ( -- ) -> L818 L819: call hide_mouse () 0 ( -- uint8 ) gvar-16 "current_number" ( -- uint8& ) poke ( uint8, uint8& -- ) call clear_mbar () 0 ( -- uint16 ) 28 ( -- uint16 ) "Save" ( -- ucs1str ) push_procptr save ( -- void(uint16)* ) call new ( uint16, uint16, ucs1str, void(uint16) -- MenuItem ) gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) 0 ( -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) poke ( MenuItem, MenuItem& -- ) 34 ( -- uint16 ) 29 ( -- uint16 ) "Load" ( -- ucs1str ) push_procptr load ( -- void(uint16)* ) call new ( uint16, uint16, ucs1str, void(uint16) -- MenuItem ) gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) 1 ( -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) poke ( MenuItem, MenuItem& -- ) 66 ( -- uint16 ) 29 ( -- uint16 ) "Undo" ( -- ucs1str ) push_procptr undo ( -- void(uint16)* ) call new ( uint16, uint16, ucs1str, void(uint16) -- MenuItem ) gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) 2 ( -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) poke ( MenuItem, MenuItem& -- ) 98 ( -- uint16 ) 29 ( -- uint16 ) "Redo" ( -- ucs1str ) push_procptr redo ( -- void(uint16)* ) call new ( uint16, uint16, ucs1str, void(uint16) -- MenuItem ) gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) 3 ( -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) poke ( MenuItem, MenuItem& -- ) 130 ( -- uint16 ) 37 ( -- uint16 ) "Pause" ( -- ucs1str ) push_procptr pause ( -- void(uint16)* ) call new ( uint16, uint16, ucs1str, void(uint16) -- MenuItem ) gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) 4 ( -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) poke ( MenuItem, MenuItem& -- ) 171 ( -- uint16 ) 36 ( -- uint16 ) "Abort" ( -- ucs1str ) push_procptr abort ( -- void(uint16)* ) call new ( uint16, uint16, ucs1str, void(uint16) -- MenuItem ) gvar-2 "menu_items" ( -- MenuItem[]& ) peek ( MenuItem[]& -- MenuItem[]¢ ) 5 ( -- int16 ) atindex ( MenuItem[]¢, int16 -- MenuItem& ) poke ( MenuItem, MenuItem& -- ) 15 ( -- uint8 ) call setattr ( uint8 ) 5376 ( -- uint16 ) call locate ( uint16 ) 26 ( -- ucs1char ) call print ( ucs1char ) 5632 ( -- uint16 ) call locate ( uint16 ) 26 ( -- ucs1char ) call print ( ucs1char ) 5888 ( -- uint16 ) call locate ( uint16 ) 26 ( -- ucs1char ) call print ( ucs1char ) 5376 ( -- uint16 ) call locate ( uint16 ) extern const uint16 num_boards call random ( uint16 -- uint16 ) 10 ( -- uint16 ) * ( uint16, uint16 -- uint16 ) extern const uint8* cboards lvar-6+8 "brdidx" ( -- uint16& ) peek ( uint16& -- uint16 ) + ( uint8*, int16 -- uint8* ) lvar-8+8 "cboard" ( -- uint8*& ) peek ( uint8*& -- uint8* ) call newBoard ( uint8* ) extern const uint8* level4_cdata lvar-8+10 "cboard" ( -- uint8*& ) peek ( uint8*& -- uint8* ) 9 ( -- int16 ) + ( uint8*, int16 -- uint8* ) peek ( uint8& -- uint8 ) lvar-12+12 "bits" ( -- uint8& ) peek ( uint8& -- uint8 ) 1 ( -- uint8 ) gvar-12 "level" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) switch ( int16 -- ) { 0:L821, 1:L822, 2:L823, dflt:L820, join:L820 } L821: 3 ( -- int16 ) lvar-14+18 "byte" ( -- uint8& ) >>= ( int16, uint8& -- ) extern const uint8* level1_cdata lvar-10+18 "pp" ( -- uint8*& ) poke ( uint8*, uint8*& -- ) jp ( -- ) -> L820 L822: 2 ( -- int16 ) lvar-14+18 "byte" ( -- uint8& ) >>= ( int16, uint8& -- ) extern const uint8* level2_cdata lvar-10+18 "pp" ( -- uint8*& ) poke ( uint8*, uint8*& -- ) jp ( -- ) -> L820 L823: 1 ( -- int16 ) lvar-14+18 "byte" ( -- uint8& ) >>= ( int16, uint8& -- ) extern const uint8* level3_cdata lvar-10+18 "pp" ( -- uint8*& ) poke ( uint8*, uint8*& -- ) L820: {1, 2, 3, 4, 5, 6, 7, 8, 9} ( -- uint8[9] ) lvar-18+18 "syms" ( -- uint8[9]& ) peek ( uint8[9]& -- uint8[9]¢ ) cast ( uint8[9]¢ -- uint8[to] ) shuffle ( uint8[to] ) lvar-6+18 "brdidx" ( -- uint16& ) peek ( uint16& -- uint16 ) lvar-10+20 "pp" ( -- uint8*& ) += ( int16, uint8*& -- ) 0 ( -- uint8 ) L824: lvar-16+20 "mask" ( -- uint8& ) peek ( uint8& -- uint8 ) ! ( uint8 -- bool ) jp_z ( bool -- ) -> L826 lvar-10+20 "pp" ( -- uint8*& ) peekpp ( uint8*& -- uint8* ) peek ( uint8& -- uint8 ) lvar-14+22 "byte" ( -- uint8& ) poke ( uint8, uint8& -- ) 128 ( -- uint8 ) lvar-16+22 "mask" ( -- uint8& ) poke ( uint8, uint8& -- ) jp ( -- ) -> L826 L826: gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-20+22 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) call is1bit ( uint16 -- bool ) jp_nz ( bool -- ) -> L828 "main.cc, line 999: assert(is1bit(board[i]))" ( -- ucs1str ) abort ( ucs1str -- ) L828: lvar-14+20 "byte" ( -- uint8& ) peek ( uint8& -- uint8 ) lvar-16+22 "mask" ( -- uint8& ) peek ( uint8& -- uint8 ) & ( uint8, uint8 -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L829 lvar-18+20 "syms" ( -- uint8[9]& ) peek ( uint8[9]& -- uint8[9]¢ ) gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-20+24 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) peek ( uint16& -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint8[9]¢, int16 -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- uint16 ) 16 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) jp ( -- ) -> L830 L829: 0 ( -- uint16 ) L830: gvar-10 "board" ( -- uint16[]& ) peek ( uint16[]& -- uint16[]¢ ) lvar-20+24 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( uint16[]¢, int16 -- uint16& ) poke ( uint16, uint16& -- ) 1 ( -- int16 ) lvar-16+22 "mask" ( -- uint8& ) >>= ( int16, uint8& -- ) lvar-20+20 "i" ( -- uint8& ) pppeek ( uint8& -- uint8 ) 81 ( -- uint8 ) < ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L831 jp ( -- ) -> L824 L831: call draw_board () gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) count ( Button[]¢ -- uint16 ) cast ( uint16 -- uint8 ) lvar-20+22 "i" ( -- uint8& ) poke ( uint8, uint8& -- ) L859: lvar-20+20 "i" ( -- uint8& ) peekmm ( uint8& -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L860 0 ( -- bool ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) lvar-20+24 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) item+8 "on" ( -- bool& ) poke ( bool, bool& -- ) gvar-4 "buttons" ( -- Button[]& ) peek ( Button[]& -- Button[]¢ ) lvar-20+22 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) cast ( uint8 -- int16 ) atindex ( Button[]¢, int16 -- Button& ) peek ( Button& -- Button¢ ) lvar-20+22 "i" ( -- uint8& ) peek ( uint8& -- uint8 ) 13 ( -- uint8 ) <= ( uint8, uint8 -- bool ) call enable ( Button¢, bool ) jp ( -- ) -> L859 L860: 0 ( -- uint16 ) call select_pen ( uint16 ) L861: gvar-14 "game_on" ( -- bool& ) peek ( bool& -- bool ) cast ( bool -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L862 call track_mouse () call getc ( -- ucs1char ) lvar-22+22 "c" ( -- ucs1char& ) peek ( ucs1char& -- ucs1char ) cast ( ucs1char -- uint8 ) 49 ( -- uint8 ) >= ( uint8, uint8 -- bool ) and0 ( bool -- ) -> L865 lvar-22+22 "c" ( -- ucs1char& ) peek ( ucs1char& -- ucs1char ) cast ( ucs1char -- uint8 ) 57 ( -- uint8 ) <= ( uint8, uint8 -- bool ) L865: jp_z ( bool -- ) -> L864 lvar-22+22 "c" ( -- ucs1char& ) peek ( ucs1char& -- ucs1char ) cast ( ucs1char -- uint8 ) 48 ( -- uint8 ) - ( uint8, uint8 -- uint16 ) call select_number ( uint16 ) jp ( -- ) -> L863 L864: lvar-22+22 "c" ( -- ucs1char& ) peek ( ucs1char& -- ucs1char ) cast ( ucs1char -- uint8 ) 112 ( -- uint8 ) == ( uint8, uint8 -- bool ) jp_z ( bool -- ) -> L863 gvar-8 "button_pen" ( -- Button¢& ) peek ( Button¢& -- Button¢ ) item+8 "on" ( -- bool& ) peek ( bool& -- bool ) cast ( bool -- uint8 ) !! ( uint8 -- bool ) jp_z ( bool -- ) -> L869 0 ( -- uint16 ) call select_pencil ( uint16 ) jp ( -- ) -> L863 L869: 0 ( -- uint16 ) call select_pen ( uint16 ) jp ( -- ) -> L863 L863: drop ( ucs1char -- ) jp ( -- ) -> L861 L862: call hide_mouse () drop ( uint8 -- ) dispose ( uint8[9] -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8 -- ) drop ( uint8* -- ) drop ( uint8* -- ) drop ( uint16 -- ) jp ( -- ) -> L814 local scope ANON { local scope ANON { } } } } 1 ( -- ucs1char ) call print ( ucs1char ) 13 ( -- ucs1char ) call print ( ucs1char ) "\rtape size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 tape_size call print ( uint16 ) "\rslow cdata size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 uncompressed_data_size call print ( uint16 ) "\rslow data size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 SLOW_DATA_size call print ( uint16 ) "\rslow code size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 SLOW_CODE_size call print ( uint16 ) "\rVcode size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 VCODE_size call print ( uint16 ) "\rVM core size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 VMCORE_size call print ( uint16 ) "\rcode size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 CODE_size call print ( uint16 ) "\rconst size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 CONST_size call print ( uint16 ) "\rdata size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 GSDATA_size extern const uint16 DATA_size + ( uint16, uint16 -- uint16 ) call print ( uint16 ) "\rstacks size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 STACKS_size call print ( uint16 ) "\rheap size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 HEAP_size call print ( uint16 ) "\rinit code size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 GSINIT_size call print ( uint16 ) "\rZX7 size = " ( -- ucs1str ) call print ( ucs1str ) extern const uint16 ZX7_size call print ( uint16 ) 61680 ( -- uint16 ) call count1bits ( uint16 -- uint8 ) 8 ( -- uint8 ) == ( uint8, uint8 -- bool ) jp_nz ( bool -- ) -> L531 "main.cc, line 23: assert(count1bits(0xf0f0)==8)" ( -- ucs1str ) abort ( ucs1str -- ) L531: 85 ( -- uint16 ) call count1bits ( uint16 -- uint8 ) 4 ( -- uint8 ) == ( uint8, uint8 -- bool ) jp_nz ( bool -- ) -> L532 "main.cc, line 24: assert(count1bits(0x0055)==4)" ( -- ucs1str ) abort ( ucs1str -- ) L532: 511 ( -- uint16 ) call count1bits ( uint16 -- uint8 ) 9 ( -- uint8 ) == ( uint8, uint8 -- bool ) jp_nz ( bool -- ) -> L533 "main.cc, line 25: assert(count1bits(0x01ff)==9)" ( -- ucs1str ) abort ( ucs1str -- ) L533: 0 ( -- uint16 ) call count1bits ( uint16 -- uint8 ) 0 ( -- uint8 ) == ( uint8, uint8 -- bool ) jp_nz ( bool -- ) -> L534 "main.cc, line 26: assert(count1bits(0x0000)==0)" ( -- ucs1str ) abort ( ucs1str -- ) L534: 1 ( -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 1 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L535 "main.cc, line 27: assert(msbit(2-1)+1==1)" ( -- ucs1str ) abort ( ucs1str -- ) L535: 2 ( -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 2 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L536 "main.cc, line 28: assert(msbit(3-1)+1==2)" ( -- ucs1str ) abort ( ucs1str -- ) L536: 3 ( -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 2 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L537 "main.cc, line 29: assert(msbit(4-1)+1==2)" ( -- ucs1str ) abort ( ucs1str -- ) L537: 4 ( -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 3 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L538 "main.cc, line 30: assert(msbit(5-1)+1==3)" ( -- ucs1str ) abort ( ucs1str -- ) L538: 5 ( -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 3 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L539 "main.cc, line 31: assert(msbit(6-1)+1==3)" ( -- ucs1str ) abort ( ucs1str -- ) L539: 6 ( -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 3 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L540 "main.cc, line 32: assert(msbit(7-1)+1==3)" ( -- ucs1str ) abort ( ucs1str -- ) L540: 7 ( -- uint16 ) call msbit ( uint16 -- uint8 ) cast ( uint8 -- uint16 ) 1 ( -- uint16 ) + ( uint16, uint16 -- uint16 ) 3 ( -- uint16 ) == ( uint16, uint16 -- bool ) jp_nz ( bool -- ) -> L541 "main.cc, line 33: assert(msbit(8-1)+1==3)" ( -- ucs1str ) abort ( ucs1str -- ) L541: NULL ( -- MenuItem[] ) gsinit "menu_items" NULL ( -- Button[] ) gsinit "buttons" NULL ( -- Button¢ ) gsinit "button_pencil" NULL ( -- Button¢ ) gsinit "button_pen" NULL ( -- uint16[] ) gsinit "board" 0 ( -- uint8 ) gsinit "level" 0 ( -- bool ) gsinit "game_on" 0 ( -- uint8 ) gsinit "current_number"