=> R0 = pointer to destination string
R1 = redraw block (r_for and r_bac)
R2 = offset in source string of first character to be in the cursor
R3 = cursor length (length in characters of string pointed to by R4)
R4 = pointer to string of cursor characters (usually &7Fs)
R5 = pointer to source string (0,2 terminated)
R6 = b0-b7 fg colour to match (=> uses cur fg/bg inverted)
b8-b15 bg colour to match (=> used cur fg col as final bg col)
b16-b29 reserved
b30 do fg matching
b31 do bg matching
R7 = b0-b7 high byte to use for cursor characters in R4 string
b8-b15 control code to use when merging ie 4 or 8.
b16-b23 foreground colour of the cursor
b24-b31 background colour of the cursor
<= R0 = pointer to end of new destination string (after 0,2 terminator)
This SWI takes a line of the same format used in 'r_data', eg the output from
ZapRedraw_PrepareDataLine, and adds in the codes to place 'cursors' over
some of the text by using the code 0,4 (merge characters) or the code 0,8
(merge cursors). Here, a cursor means a string of characters to be overlayed.
Room should be reserved for the string to grow by 8*R3 characters. (eg
0,4,f,b,old,0,3,l,h) If the indicated offset (R2) is off the end of the
string then it will be lengthened with spaces (&20) so you should ensure
R2+9*R3 characters extra are reserved.
|
|
|