Expand description
What has the keyboard: the stack (the ROM’s top-level outer loop), an open command line, a halted program, or an application’s own loop (an input form, a choose box, a message box, the graphics screen), read from RAM without pressing a key; the display only where RAM gave no sign (wiki: hardware/ui-state).
The signals, observed on the 48SX (ROM J), 48GX (ROM R) and 49G (ROM 2.10 and 1.19-6) while the ROM waits for a key:
- The RPL return stack (between the saved
HeapStartand the saved B): its bottom entries are the system outer loop’s own frame; while the stack has the keyboard, the sixth entry from the top (under the key wait’s four entries and the calling loop’s own return into it) is that same outer-loop frame. Any other loop (a parameterized outer loop: forms, choose and message boxes, the graphics screen,INPUT,WAIT, the interactive stack; the 48’s equation writer) puts its own frame there. A halted program leaves its frames on the return stack with a new outer loop above them, so each halted program adds one more copy of the outer-loop frame. - The temporary environments (RPLMAN 13.1): input forms bind named
temporaries (
IFon the 48GX,IfMenu,CurrentField, … on the 49G), the 49G’s choose box bindsNbElmand others. - The display: the stack display’s GROB pointer equals the PICT pointer while the graphics screen shows.
- The 48GX’s choose and message boxes bind only unnamed temporaries, so they are told apart on the display: a framed box with a two-dot shadow, a choose box with a dark (inverted) row inside it.
Structs§
- Return
Stack - The return stack as the ROM left it.
- Screen
- The
uiStateprotocol answer. - Screen
Layout - Where a model’s ROM keeps what the screen state is read from (wiki:
hardware/ui-state). The
*_ptrfields hold 5-nibble pointers.
Enums§
- Kind
- What has the keyboard.
- Source
- Where a
Screen::kindcame from.
Functions§
- framed_
box - A framed box with a two-dot shadow on the display (the 48GX’s and the
49G’s message and choose boxes):
Some(true)when a row inside it is dark (a choose box’s highlighted item or title rule),Some(false)without,Nonewhen there is no such box. - innermost_
names - The names of the temporaries bound in the newest environments, down to
and including the first that binds
SavedUI(the parameterized outer loop’s saved state: what the innermost loop bound); only the newest environment when none does. Names lose a leading'. - read
- Read the screen state through the layouts, with
pixelsthe display for the boxes RAM does not name. - screen
- The screen state of
machine(48SX, 48GX, 49G).