Author: mcayland Date: Sun Jun 9 14:25:43 2013 New Revision: 1155 URL: http://tracker.coreboot.org/trac/openbios/changeset/1155
Log: display.fs: add implementation of fb8-insert-characters and fb8-delete-characters.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk
Modified: trunk/openbios-devel/forth/device/display.fs
Modified: trunk/openbios-devel/forth/device/display.fs ============================================================================== --- trunk/openbios-devel/forth/device/display.fs Sun Jun 9 14:25:39 2013 (r1154) +++ trunk/openbios-devel/forth/device/display.fs Sun Jun 9 14:25:43 2013 (r1155) @@ -175,7 +175,12 @@ frame-buffer-adr + window-left depth-bytes * + ; - + +: fb8-curpos2addr ( col line -- addr ) + char-height * fb8-line2addr + swap char-width * depth-bytes * + +; + : fb8-copy-lines ( count from to -- ) fb8-line2addr swap fb8-line2addr swap @@ -253,9 +258,41 @@ ;
: fb8-insert-characters ( n -- ) - ; + \ numcopy = ( #columns - column# - n ) + #columns over - column# - + char-width * depth-bytes * ( n numbytescopy ) + + over column# + line# fb8-curpos2addr + column# line# fb8-curpos2addr ( n numbytescopy destaddr srcaddr ) + char-height 0 do + 3dup swap rot move + line-bytes + swap line-bytes + swap + loop 3drop
+ background-color + column# char-width * window-left + line# char-height * window-top + + 3 pick char-width * char-height + fb8-fillrect + drop + ; + : fb8-delete-characters ( n -- ) + \ numcopy = ( #columns - column# - n ) + #columns over - column# - + char-width * depth-bytes * ( n numbytescopy ) + + over column# + line# fb8-curpos2addr + column# line# fb8-curpos2addr swap ( n numbytescopy destaddr srcaddr ) + char-height 0 do + 3dup swap rot move + line-bytes + swap line-bytes + swap + loop 3drop + + background-color + over #columns swap - char-width * window-left + line# char-height * window-top + + 3 pick char-width * char-height + fb8-fillrect + drop ;
: fb8-insert-lines ( n -- )