Quindle: Difference between revisions

From XionKB
Jump to navigationJump to search
(Created page with "{{stub}}thumb|right|The emblem for Quindle. '''Quindle''' is a tab-oriented graphical text editor program designed for DOS and future PC platforms. Category:Byblos components")
 
(Lots of new spaghetti)
Line 1: Line 1:
{{stub}}[[File:Quindle.svg|thumb|right|The emblem for Quindle.]]
{{infobox swproj
'''Quindle''' is a tab-oriented graphical text editor program designed for DOS and future PC platforms.
|name=Quindle
|emblem=Quindle.svg
|by=Alexander Nicholi
|langs={{wp|C (programming language)|C}}, [[C*]]
|systems=[[Sirius DOS]]
|archs={{wp|Intel 80286|i286}}
|lic=[[Artisan Software Licence#ASL 1.1|ASL 1.1]]
|repo={{gh|aquefir/quindle}}
}}
'''Quindle''' is a graphical {{wp|Text editor|editor}} program designed for [[Sirius DOS]] and future PC platforms such as [[Anodyne]]. It is principally designed and implemented by [[User:Alexander|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 {{wp|Model M keyboard}} created by {{wp|IBM}}, making sparing use of modifier keys and instead centring the function keys <code>F1</code>&ndash;<code>F12</code> along with <code>Esc</code>, <code>PgUp</code>, <code>PgDn</code>, <code>Home</code>, <code>End</code>, <code>Ins</code>, <code>Del</code>, <code>Bksp</code>, <code>Tab</code>, and <code>Enter</code> keys for navigation and control.
 
The function keys <code>F1</code>&ndash;<code>F12</code>, along with <code>PrtSc</code>, <code>Pause</code> and <code>SysRq</code> are reserved for the global Quindle program and cannot be delegated to the windows for use. They perform the following actions:
 
{| class="wikitable"
|-
! Key
! Action
|-
| <tt>F1</tt>
| Select window A
|-
| <tt>F2</tt>
| Select window B
|-
| <tt>F3</tt>
| Select window C
|-
| <tt>F4</tt>
| Select window D
|-
| <tt>F5</tt>
| Run macro command A
|-
| <tt>F6</tt>
| Run macro command B
|-
| <tt>F7</tt>
| Run macro command C
|-
| <tt>F8</tt>
| Run macro command D
|-
| <tt>F9</tt>
| Toggle mod function A
|-
| <tt>F10</tt>
| Toggle mod function B
|-
| <tt>F11</tt>
| Toggle mod function C
|-
| <tt>F12</tt>
| Toggle mod function D
|-
| <tt>PrtSc</tt>
| Dump a bitmap screenshot of all windows to file
|-
| <tt>Pause</tt>
| Suspend all activities and open the main menu
|-
| <tt>SysRq</tt>
| Suspend all activities and open the system manager menu
|}
 
The following keys are contextualised by the active window: <code>A-Z</code>, <code>1-9</code>, <code>0</code>, <code>-</code>, <code>=</code>, <code>[</code>, <code>]</code>, <code>\</code>, <code>;</code>, <code>'</code>, <code>,</code>, <code>.</code>, <code>/</code>, <code>`</code>, <code>BkSp</code>, <code>Enter</code>, <code>Tab</code>, <code>Esc</code>, <code>Left</code>, <code>Down</code>, <code>Right</code>, <code>Up</code>, <code>PgUp</code>, <code>PgDn</code>, <code>Home</code>, <code>End</code>, <code>Ins</code>, <code>Del</code>.
 
Additionally, all of the above keys may have the <code>Shift</code> and <code>Alt</code> keys applied as modifiers. The application does not discriminate between left and right regarding such keys.
 
===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 [[Sirius DOS#Hybridism|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 [[Pegasus]]). 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&times;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&times;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 series|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.


[[Category:Byblos components]]
[[Category:Byblos components]]

Revision as of 13:28, 18 April 2023

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 F1F12 along with Esc, PgUp, PgDn, Home, End, Ins, Del, Bksp, Tab, and Enter keys for navigation and control.

The function keys F1F12, along with PrtSc, Pause and SysRq 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 activities and open the main menu
SysRq Suspend all activities and open the system manager menu

The following keys are contextualised by the active window: A-Z, 1-9, 0, -, =, [, ], \, ;, ', ,, ., /, `, BkSp, Enter, Tab, Esc, 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.

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 Pegasus). 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.