Quindle
Quindle | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Created by | Alexander Nicholi | ||||||||||
Written in | C, C* | ||||||||||
OSes | Sirius DOS | ||||||||||
ISAs | i286 | ||||||||||
Licence | ASL 1.1 | ||||||||||
Repository | aquefir/quindle |
Quindle is a graphical editor program designed for Sirius DOS and future PC platforms such as Anodyne. It is principally designed and implemented by Alexander Nicholi.
User interface
Quindle's user interface is exclusively driven by the keyboard. Its usage of keys is designed conservatively around the design lingua franca descended from the seminal Model M keyboard created by IBM, making sparing use of modifier keys and instead centring the function keys F1
–F12
along with Esc
, Pause
, PrtSc
, PgUp
, PgDn
, Home
, End
, Ins
, Del
, Bksp
, Tab
, and Enter
keys for navigation and control.
The function keys F1
–F12
, along with PrtSc
, Pause
and Esc
are reserved for the global Quindle program and cannot be delegated to the windows for use. They perform the following actions:
Key | Action |
---|---|
F1 | Select window A |
F2 | Select window B |
F3 | Select window C |
F4 | Select window D |
F5 | Run macro command A |
F6 | Run macro command B |
F7 | Run macro command C |
F8 | Run macro command D |
F9 | Toggle mod function A |
F10 | Toggle mod function B |
F11 | Toggle mod function C |
F12 | Toggle mod function D |
PrtSc | Dump a bitmap screenshot of all windows to file |
Pause | Suspend all tasks and open the main menu |
Esc | Open the main menu without suspending all tasks |
The following keys are contextualised by the active window: A-Z
, 1-9
, 0
, -
, =
, [
, ]
, \
, ;
, '
, ,
, .
, /
, `
, BkSp
, Enter
, Tab
, Left
, Down
, Right
, Up
, PgUp
, PgDn
, Home
, End
, Ins
, Del
.
Additionally, all of the above keys may have the Shift
and Alt
keys applied as modifiers. The application does not discriminate between left and right regarding such keys. Scroll lock also works as it does in Lotus and Excel in modifying the arrow keys for navigation.
Windows
Quindle is designed with four (4) conceptual windows, each of which serve a unique purpose; they are enumerated A, B, C and D.
Window A, also called the Subject, is the main editor window where text editing happens. It is defined to display 72 characters per line, with a flexible number of lines, along with an 8-character-wide minimap in the style of Atom and VS Code.
Window B, also called the Lenses, is the principal auxiliary window for use by the editor. It is an arbitrary high colour pel buffer, inside which anything may be displayed. In practise, Window B is manipulated by mod functions (more on that below). Some examples of things Window B is useful for displaying include:
- Graphical output for a hybrid program
- Statistical graphs about a project
- Live macro-level memory usage maps
- Previews of Simbel documentation
- Arbitrary OLE-style objects, including those embedded in source code
Window C, also called the Console, is the text terminal used for issuing commands. It is monochromatic, and provides a more rigidly synchronised standard I/O system than found on most Unices. Like Window A, it is 80 characters in total width, and has an arbitrary length denominated in characters.
Window D, also called the Scopes, is a window for browsing external content, such as documentation (via Simbel) or web pages (via Senusret's). It is fully arbitrary in size.
Rendering modes
Quindle implements two rendering modes on Sirius DOS: single-wide and double-wide. Both run in 15-bit RGB555 "high colour".
Single-wide runs at 640×480, with character cells being 8 pels wide. The entire viewport is used to display the selected window, while the other unselected windows are hidden.
Double-wide runs at 1280×1024, with character cells being 8 pels wide. Window A is 640 pels wide and 1024 pels tall and occupies the left half of the viewport. Window B is 640 pels wide and 480 pels tall and occupies the top right corner of the viewport. Window C is 640 pels wide and 544 pels tall and occupies the bottom right corner of the viewport. Window D is 1280 pels wide and 1024 pels tall and is either shown in place of windows A, B and C, or displayed simultaneously on a second monitor (pending dual Alpine card support).
In the future, other rendering modes may be proposed, in particular for future software systems beyond Sirius DOS. Chief amog these is Anodyne's system software, A*.
Mod functions
Mod functions are Quindle's notion of plug-ins. They are implemented natively with a position-independent ABI, and are given access to most of Quindle's processes through hooks. These things may perform rendering, delegate commands to the console, modify the subject state, connect to external data sources (such as I/O ports for device driving), and probably more.
Mod functions should not be confused with macro commands, which are simply macros of console commands loaded into their respective function keys for easy execution. In fact, macro commands are to be implemented with what amounts to a built-in mod function.