1\ Words implementing frame drawing 2\ XXX Filled boxes are left as an exercise for the reader... ;-/ 3\ $FreeBSD$ 4 5marker task-frames.4th 6 7variable h_el 8variable v_el 9variable lt_el 10variable lb_el 11variable rt_el 12variable rb_el 13variable fill 14 15\ Single frames 16196 constant sh_el 17179 constant sv_el 18218 constant slt_el 19192 constant slb_el 20191 constant srt_el 21217 constant srb_el 22\ Double frames 23205 constant dh_el 24186 constant dv_el 25201 constant dlt_el 26200 constant dlb_el 27187 constant drt_el 28188 constant drb_el 29\ Fillings 300 constant fill_none 3132 constant fill_blank 32176 constant fill_dark 33177 constant fill_med 34178 constant fill_bright 35 36: hline ( len x y -- ) \ Draw horizontal single line 37 at-xy \ move cursor 38 0 do 39 h_el @ emit 40 loop 41; 42 43: f_single ( -- ) \ set frames to single 44 sh_el h_el ! 45 sv_el v_el ! 46 slt_el lt_el ! 47 slb_el lb_el ! 48 srt_el rt_el ! 49 srb_el rb_el ! 50; 51 52: f_double ( -- ) \ set frames to double 53 dh_el h_el ! 54 dv_el v_el ! 55 dlt_el lt_el ! 56 dlb_el lb_el ! 57 drt_el rt_el ! 58 drb_el rb_el ! 59; 60 61: vline ( len x y -- ) \ Draw vertical single line 62 2dup 4 pick 63 0 do 64 at-xy 65 v_el @ emit 66 1+ 67 2dup 68 loop 69 2drop 2drop drop 70; 71 72: box ( w h x y -- ) \ Draw a box 73 2dup 1+ 4 pick 1- -rot 74 vline \ Draw left vert line 75 2dup 1+ swap 5 pick + swap 4 pick 1- -rot 76 vline \ Draw right vert line 77 2dup swap 1+ swap 5 pick 1- -rot 78 hline \ Draw top horiz line 79 2dup swap 1+ swap 4 pick + 5 pick 1- -rot 80 hline \ Draw bottom horiz line 81 2dup at-xy lt_el @ emit \ Draw left-top corner 82 2dup 4 pick + at-xy lb_el @ emit \ Draw left bottom corner 83 2dup swap 5 pick + swap at-xy rt_el @ emit \ Draw right top corner 84 2 pick + swap 3 pick + swap at-xy rb_el @ emit 85 2drop 86; 87 88f_single 89fill_none fill ! 90