Text display words

The text-only PicoCalc terminal emulator exposes text displays that can be accessed directly via picocalc-term::with-term-display. These text displays inherit from the text8::<text8> class, which implements a means of storing and fetching 8-bit characters with RGB332 color for the foreground and background and optional underlining. These text displays can often be accessed directly faster in a random-access fashion than generating ANSI terminal control characters to generate the equivalent characters.

text8:

The text8 module contains the following words:

rgb8:

( r g b – color )

A convenience word for constructing an RGB332 color from red, green, and blue components from 0 to 255.

text8-buf-size

( columns rows – bytes )

Get the size of a <text8> buffer in bytes for a given number of columns and rows.

The text8 module contains the following class:

<text8>

The <text8> class has the following constructor:

new

( buffer columns rows text – )

Construct a <text8> object with the address of a buffer of the size returned by text8-buf-size for the given numbers of columns and rows, a number of columns, and a number of rows.

The <text8> class has the following methods:

dim@

( text – columns rows )

Get text dimensions.

clear-text

( text – )

Clear the text.

dirty?

( text – dirty? )

Get whether the text is dirty.

whole-char!

( c fg-color bk-color underlined? column row text – )

Quickly write a whole character at once at a column and row.

char@

( column row text – c )

Get a character at a column and row.

char!

( c column row text – )

Set a character at a column and row.

fg-color@

( column row text – color )

Get a character’s foreground color at a column and row.

fg-color!

( color column row text – )

Set a character’s foreground color at a column and row.

bk-color@

( column row text – color )

Get a character’s background color at a column and row.

bk-color!

( color column row text – )

Set a character’s background color at a column and row.

underlined@

( column row text – underlined? )

Get whether a character is underlined at a column and row.

raw-underlined@

( column row text – underlined? )

Get whether a character is underlined without testing for bounds.

underlined!

( underlined? column row text – )

Set whether a character is underlined at a column and row.

scroll-up

( lines text – )

Scroll up a number of lines (note that this will not fill in the new lines).

scroll-down

( lines text – )

Scroll down a number of lines (note that this will not fill in the new lines).

invert-text

( text – )

Invert the text.

st7365p-text-common

The st7365p-text-common module contains the following class:

<st7365p-text-common>

This class inherits from text8::<text8>.

The <st7365p-text-common> class has the following constructor:

new

( dc-pin cs-pin invert the-font buffer columns rows physical-columns physical-rows display – )

Construct an <st7365p-text-common> object for a given DC pin, CS pin, invert boolean, font, <text8> buffer, number of character columns, number of character rows, physical number of pixel columns, and physical number of pixel rows.

The <st7365p-text-common> class has the following methods:

char-dim@

( display – columns rows )

Get the character dimensions.

backlight!

( backlight display – )

Set the backlight (this may be a no-op).

update-display

( display – )

Update the display.

clear-display

( display – )

Clear the display, including pixels that do not have corresponding characters at the edges of the display.

st7789v-text-common

The st7789v-text-common module contains the following class:

<st7789v-text-common>

This class inherits from text8::<text8>.

The <st7789v-text-common> class has the following constructor:

new

( dc-pin cs-pin backlight-pin the-font buffer round columns rows physical-columns physical-rows display – )

Construct an <st7789v-text-common> object for a given DC pin, CS pin, backlight pin, font, <text8> buffer, round boolean, number of character columns, number of character rows, physical number of pixel columns, and physical number of pixel rows.

The <st7789v-text-common> class has the following methods:

char-dim@

( display – columns rows )

Get the character dimensions.

backlight!

( backlight display – )

Set the backlight (this may be a no-op).

update-display

( display – )

Update the display.

clear-display

( display – )

Clear the display, including pixels that do not have corresponding characters at the edges of the display.