6 var mousec ( display coordinates flag )
\r
7 create mousebuf 100 alloc
\r
8 var mousebe ( amount of buffer elements )
\r
10 D> \listF\I01_MCARROW fsDloadnew mousepointer !
\r
12 : mouseadd ( addr x1 x2 y1 y2 -- )
\r
13 mousebe @ dup 1+ mousebe !
\r
14 14 * mousebuf + ( ... addr )
\r
23 dup 0 bit@ if mousekeyl on else mousekeyl off then
\r
24 dup 1 bit@ if mousekeyr on else mousekeyr off then
\r
25 2 bit@ if mousekeym on else mousekeym off then
\r
27 mousey @ + 0 swap 1DF bound mousey !
\r
28 mousex @ + 0 swap 27F bound mousex !
\r
31 screen dynp mousex @ mousey @ tvidput
\r
33 mousekeyl @ mousekeyr @ + mousekeym @ + if
\r
36 dup @ swap 4 + @ mousey @ rot bound? if
\r
37 i 14 * mousebuf + 8 +
\r
38 dup @ swap 4 + @ mousex @ rot bound? if
\r
39 i 14 * mousebuf + 10 + @ goto pop drop 0 push
\r
50 mousex @ . tab. mousey @ .
\r