Format strings

Format strings are used for dynamic texts, such as prompts

Format strings are used for prompts, but can also be used directly using the control-format control on any handle that supports output. No tailing new line is added, so it needs to be added manually if required.

Example
  538 (* 0) "cat" ~> control %stdout sni:73 "The current tag is: $*\n"
The current tag is:   538 (* 0) "cat"
  538 (* 0) "cat" ~>
                

Currently, the following variables are supported in prompts:

Variable Meaning Example output
$A
Ampersand
&
$B
Pipe
|
$C
Opening bracket
(
$E
US-ASCII Escape (0x1B) N/A
$F
Closing bracket
)
$G
Greater than
>
$H
Backspace N/A
$L
Less than
<
$Q
Equal
=
$S
Space
 
$$
Dollar sign
$
$_
New line N/A
$*
Current tag
  538 (* 0) "cat"
$:
Output handle
<none> 
$R
Clear (reset) terminal attributes N/A
$P

or

$.
Alias for
$*
  538 (* 0) "cat"
$D
Reserved for current date N/A
$T
Reserved for current time N/A
$V
Reserved for version number N/A
$N
Reserved for DOS compatibility (current drive) N/A
$+
Reserved for DOS compatibility (pushd-level) N/A
$M
Reserved for DOS compatibility (remote name of current drive) N/A
All others Reserved for future use N/A
3982 (* 0) "Format strings" ~>

Function numbers

Function numbers are used to access functions both quickly and easier on limited keyboards.

7
show
17
dir
27
spread
37
shell
8
transfer
18
seek
28
set
38
swap
9
debug
19
hexdump
29
context
39
history
4
back
14
read
24
lci
34
into
5
render
15
control
25
echo
35
more
6
forward
16
write
26
run
36
outro
1
quit
11
new_relation
21
poolinfo
31
2
12
new_metadata
22
32
3
search
13
23
terminfo
33
termtest
0
hello_world
10
cls
20
ver
30
pause
2382 (* 0) "Function numbers" ~>

Common registers

The following lists the common register specification. Please note that this specifictaion is highly experimental.

Number Name Type Default VM v0: on call Info
0-7 user0 .. user7 user undef TBD General user registers
8-31 user8 .. user31 user undef unchanged Additional user registers, not generally available
32 arg system undef saved, reset Used in control calls for the arg value
33 ns system sni saved, reset -
34 error system undef reset Last error code, is set by most opcodes
35 context system call context saved, updated Holds the current call context
36 in system filter input data updated -
37 out system undef reset -
38 deep system undef unchanged Used for deep storage (heap)
39-60 - system - - Unassigned
61 io system TBD TBD -
62 rodata system undef unchanged read only data (not executable)
63 program_text system N/A saved, updated program text

Note: For saved only includes the handle itself, not it's current position or other attributes. The caller is responsible for saving them if needed.

3298 (* 0) "Common registers" ~>

SIRTX numerical identifiers (sni)

The following lists the SIRTX numerical identifiers with a short description. The list might be incomplete at any point.

Number ISE Name Logical As control As key Info
0 Null value
1-9 Reserved.
10 039e0bb7-5dd3-40ee-a98c-596ff6cce405 sirtx-numerical-identifier sni No As type The SIRTX numerical identifier type itself
11 8e7f3363-8293-4e0e-97a6-1f0719e3f119 control-get-size out No Gets the size of the object in bytes (e.g. if it is a memory region)
12 945c50e1-7ca9-454c-a05b-cd2331797f59 control-allocate out, in No Request a memory allocation from a memory pool for the given size (in bytes)
13 7f493f8d-84b1-4f70-bd9b-3a35933e5740 control-is-used out No Returns if the current handle refers to a used slot in a storage pool. This call is mostly useful for debugging
14 858c69d7-450e-4538-aa7e-12d335310747 control-get-list-size out No Gets the number of list items this list holds
15 f0dac4d8-b909-4cb3-b5da-097c563de751 control-get-id out, in No Returns the identifier of type in of this handle if any
16 c1ab89c7-6aa1-4055-b37f-6da4027ab8f9 control-get-ise out No Get the ISE for the given handle
17 fc3c8538-f668-4281-8173-36ee8c3e6eef control-get-best-id-sirtx out No Gets the best ID to be used as input in a lci style parser
18 04f51827-74d6-463a-b7d7-64997df75e6d control-get-best-id-eise out No Gets the best ID as EISE
19 438295e7-2aa8-4354-a55a-17263ed5cfc2 control-apply-to in No The values from the handle are applied to in, this might be used to apply styles
20 4f0aa73b-764a-4a83-96aa-2ca160dc5c37 control-zero None No Sets the content of the object to zero (0-bytes)
21 b30d233b-9836-4717-b477-d64653d6fc6b control-erase None No Sets the content of the object to it's idle state
22 aa29a47b-cbd1-46c4-8466-fe2dfc94dca7 control-get-current-hash out, in No Gets the current hash for the object using hash algorthm in as binary string
23 ea598694-6428-4b8f-98fb-31226347c325 control-get-current-hash-hex out, in No Gets the current hash for the object using hash algorthm in as hex string
24 8d6b6d2b-8013-4bfd-85a3-01a0532155ed control-tell out No Returns the current position within the object. This might be a number, but can also be a complex object
25 fe6dff5b-aac9-4efc-924f-4baf2bf232ee control-seek in, arg // SEEK_SET No Sets the current position within the object. in may or may not be a number, also depending on arg
26 38b1b7f2-590e-46b3-883f-6526db5cdee4 control-local-id-clear (in) No Clears the local identifier list, optionally setting the current identifier to in
27 8a6c27c7-8810-488c-97d1-10834eff5271 control-local-id-add out, in No Tries to add in as a local identifier. The local identifier is returned in out if any
28 c343ca18-906f-44b3-93d0-1e4ac4676913 control-local-id-get out, in No Get the value for the current local identifier given as in
29 d49391ad-76a5-4e91-b11b-043e9f36baa3 value-local-id-fill No Yes The number of local identifiers that are currently in use
30 357a3632-4e38-4f88-8f12-d3a13add32c4 value-session-done No Yes Whether the current session is in done state
31 ef9b98a1-eaad-4e24-bf7e-a80bf39b9bcc control-history-push in No Pushes in into the history (navigates to in)
32 f44814a5-2782-43d6-b1c9-dcbb75a3bcb8 control-history-pop None No Moves backwards one entry in the history
33 0ced7959-1d24-4bcc-8f83-e3d40ae73880 control-history-replay None No Moves forward one entry in the history
34 9d824a69-52b2-4701-be03-9c862a81d59a control-history-get out, in No Gets the entry in from the history
35 738f88fb-90b4-4ae5-9d47-ce6e846de77a value-history-fill No Yes The number of entries in the history
36 c692a61c-f371-45c0-a01b-0beb18be4fd5 value-history-pointer No Yes The index of the current entry in the history
37 d1532921-d8d0-4f7d-b525-ac08b36c1384 sirtx-ansi-code No Boolean Whether a basic subset of ANSI escape codes are supported by the device. See SIRTX ANSI escape code support requirements
38 78103e65-b741-484c-9d4c-eda3caffc38a option-rows No Yes The number of (text) rows
39 37adcc2c-6947-425f-8619-60284bfada77 option-columns No Yes The number of (text) columns
40 4afecddd-ecb5-43e8-b366-d14fedc98cb0 option-colour-mode No Yes The supported colour mode by the device (e.g. 3bit-and-bold)
41 451a404a-5389-4a93-aaf1-3f130b7c5357 option-interactive No Boolean Whether the (terminal) session is interactive
42 fa2d64e3-2743-4247-ac3a-491617a78aa7 option-safe-mode No Boolean Whether safe mode is enabled. In safe mode writing control characters is disallowed. Please note that Unicode still contains some pitfalls this cannot protect against
43 0bcd44bd-d9e4-4609-af5d-82e8a71cf490 option-dec-special-graphics No Boolean Whether DEC special graphics are supported
44 71f7efc1-435e-46fc-bfa9-b3dec4117f41 option-extended-graphic-rendition No Boolean Whether extended graphic rendition is supported
45 703805a1-5789-4a3e-8e49-7b57325d56e3 option-lf-to-crlf No Boolean Whether to convert \n to \r\n
46 d975bb06-15f4-4c72-92c7-d3e82aadc55a terminal-control-reset None No Resets the terminal to it's inital state
47 e89ad53c-f414-4d8f-8f0f-7508333c41f3 terminal-control-clear None No Clears the terminal (clear screen), homes the cursor (if any)
48 1e9c0ccb-6e22-45b6-b1ad-6af1383db5f4 terminal-control-ring None No Rings the bell
49 e51fffb3-91f9-43d1-8ae0-4a0901a72997 terminal-control-set-title in No Sets the title of the view to the given value
50 36e66023-277f-4839-87d1-4188d074343d terminal-control-clear-attributes None No Clears all current terminal attribnutes
51 ffd186af-0ee2-4671-a8d5-088c44dc3ef2 terminal-control-set-attribute in No Sets (activiates) the given attribute (e.g. bold)
52 dc689414-886a-42ff-bfcf-5a726ea3def8 terminal-control-move-relative-cursor in, arg // 1 No Move the cursor to the new position, in is the direction, arg the distance (defaults to one)
53 041aa5e0-000d-4fe6-a174-b397467914a3 terminal-control-move-absolute-cursor in, arg No Move the cursor to the new position, in is for line, arg for column
54 589cb516-4a14-4fc2-aace-5f63fb220c03 terminal-control-set-screen-mode in No Whether to use reverse video (dark on light)
56 f9d10112-79db-4ee6-9091-a5fa2c390338 terminal-control-set-cursor in No Whether to show the cursor
57 2cb95fa0-99c8-4adb-a13d-45851dd5fdf7 terminal-control-set-dec-special-graphics in No Switches to DEC special graphics if in is true or back (if false)
58 1f148605-86e9-48b2-88fe-a3e8e1ef8b28 terminal-control-set-fg-colour in No Sets the foreground colour of the given view
59 aae12114-e595-48a6-8175-f72520c925b1 terminal-control-set-bg-colour in No Sets the background colour of the given view
60 60b2974c-024c-44ac-ab65-e9bb7e0ca4e7 control-attach in No Re-attaches handle to in
61 e8a8c6f1-fefc-4d77-96fc-f55217bd4246 control-get-attached out No Gets the backend handle is attached to
62 582c27ce-8236-4cd3-a057-6cfa13c9e249 control-copy out, in No Creates a copy of handle using the storage pool in
63 8c2de5f1-8045-4294-ba6a-aabcb88011ad terminal-control-set-want-input in No Sets whether input is wanted from the user
64 a5bd4638-2a92-457b-bdad-8ecea59ef5bb control-discard None No Discards the data in handle without destroying the handle. Ready any data from handle again without writing it first results in undefined results
65 7841595e-4b4f-47e9-b999-bb6c8c669289 control-findnext in, arg // false No Finds the next occurrence of text in within handle. The position of handle will point to the end (arg is true) or end (arg is false, the default) start of the occurrence
66 9448cdf3-b2aa-43f7-835a-4f33432dc112 control-flush None No Asks the backend to flush all data. This is a request only, it is likely to be performed in background
67 8d1c9aa6-c837-415a-b962-186f4c8cfb1f control-drain None No Asks the backend to flush all data and waits for the drain to be complete (or fail)
68 293ab31c-987a-4a3e-b7ed-55d35aa1dfaa control-get-inode out No Returns the inode number of this object if any
69 d3c42344-6a98-43a4-9d28-83351d6244b1 terminal-control-set-tbm in, arg No Sets top (in)/bottom(arg) margins (scroll window size) and homes cursor
70 8b8da9b7-b92a-4bbe-bd18-0f5fc59ea633 terminal-control-readline out, in, (arg) No Reads a line from handle, the buffer is provided via in, optionally a prompt is provided via arg (using format strings). The length of the line is returned in out
71 36b14d90-c1e8-486e-845b-830e00877d5a terminal-control-set-origin-mode in No Sets the origin mode (true is cursor is relative to top of scrolling window, false is relative to screen)
72 c1cc3aa8-808e-48ee-905a-05118be33363 terminal-control-set-title-for in No Sets the title of the view to the correct value for the given object (in)
73 d5d4aa40-801f-494c-9365-f5b74718b09e control-format in No Renders the format string in and writes it to handle
74 8b78feea-8b9d-41a6-a127-9ef87dc69daa control-truncate in No Sets the length of the object to in. This is mostly useful with objects such as memory areas or files
75 ec62110c-c2a7-42d0-b9a8-ea82b2e0af72 option-autogrow No Boolean This value controls whether objects automatically grow (e.g. by writing to them)
76 4525d620-d763-4c32-8fc7-ef0abdd7ec2e option-input-no-translate No Boolean Disables translation on the input stream
77 6d3f5864-b96f-4fcf-8e61-3e8b91147f92 option-output-no-translate No Boolean Disables translation on the output stream
78 3b8f280c-16e9-43f5-978f-869f05d8bb7e control-get-host out No Get the current host (handle to the machine this instance is running on)
79 93d6bdd1-adbb-4490-b503-fb40c3608eac control-connect out, in No Connects to the device/peer in on the bus handle. Possible values depend on the bus type
80 d2734906-039e-4559-9606-26fe32de6d34 bus-transfer (in), (arg) No Performas a low level bus transfer. in is a object to send, and arg provides information on what to expect back (often a byte count). Possible values depend on the bus type
81 895f49b6-0366-4689-8286-3e48ffd3675d number-control-add out = handle + in * (arg // 1) No Result of in scaled by arg added to handle, arg defaults to one
82 45491c91-9bde-4841-8cfd-a580ae5c0b35 number-control-subtract out = handle - in * (arg // 1) No Result of in scaled by arg subtracted from handle, arg defaults to one
83 6111a4f1-f5a1-4074-8ef2-86455f8faa41 number-control-divide out = handle / in No Integer result of division of handle and in
84 e4bfea9c-8afe-4093-a69f-1a996a650fe6 number-control-modulo out = handle % in No Modulo of handle and in
85 1c4d5c3d-0dc8-464e-9f78-db5bbdde200b number-control-left-shift out = handle << in No Left shift of handle
86 01acacd1-f372-4354-a1b3-fd0f116ca8ab number-control-right-shift-unsigned out = (unsigned…)handle >> in No Unsigned right shift of handle
87 629b1a3e-dd94-4c3d-b3fb-318fc3273fbd number-control-right-shift-signed out = (signed…)handle >> in No Signed right shift of handle
88 644aabd7-c9cd-4c9e-a28c-2c2f1131a063 number-control-additive-inverse out = -handle No Get additive inverse of handle
89 6ac97281-7ced-4ba6-a236-5180deca7214 control-prepare None No Prepares handle to be used in near future. This might perform some time intensive initialisation which otherwise would be run by later use
90 5ac5469b-4473-4518-a4e5-e063139faead control-get-stats out, in, (arg) No Gets the statistic value for the key in of domain arg. Possible keys depend on the type of handle
91 1b51648d-24ba-475a-9ce0-5d430b372ac6 control-get-blocksize out No Gets the block size used by handle, this is mostly relevant for storage pools
92 14efdfb0-3234-481a-8166-2a3aaf72af28 stats-key-total No Yes A total value of some resource, e.g. total size of a storage pool
93 bf83c564-e28a-4374-a0bd-aa0657fd90ed stats-key-free No Yes The amount of free parts of a resource, e.g. the amount of free space on a storage pool
94 fdbed9ba-dd57-4320-9fbb-26d933fbb7c2 stats-key-used No Yes The amount of in-use parts of a resource, e.g. the amount of used space on a storage pool
95 209dfb58-0f69-4e44-8fb4-ad59c1344d3f stats-domain-bytes No As domain Ask for byte counter
96 4c9caaeb-acda-4f98-b75f-ffb8df5002ff stats-domain-blocks No As domain As for block counter
97 bee2788f-e4a4-494f-9ede-d4e810cea66c stats-domain-entries No As domain Ask for entry counter (e.g. inode counter)
98 c6435341-1f3b-4fa9-9cf4-3f2a32d1542e control-load-image out, in, (arg) No Loads the image (program code) from in, returns a callable handle. arg may include more details on how to understand this request, however might need to be NULL in some cases
99 c52a731b-415f-4d64-8601-34f5bd12af9f control-get-symbol out, in No Lookup symbol in and return a handle to it
100 61a6bc1a-79e1-4ea8-b54d-d329f9e552e8 is-supported out, in No Asks if option in is supported and currently active on handle
101 6df2e6f8-03bb-4735-9512-4b15c0da5f72 get-value getvalue, get-value out, in No Get value for option in
102 1b2a97a5-feb3-416e-92f3-0d39b1944ecb set-value setvalue, set-value in, arg No Set option in to arg
103 45ea3828-ed6d-4d64-b7f8-7eee25a1b890 get-keys getkeys, get-keys out No Get a list of all keys from handle. On arrays this will return a sequence of all indexes
104 24f841af-1245-4e6b-8db7-89ea5fd7e492 get-values getvalues, get-values out No Get a list of all values from handle
105 71cce154-2a58-4de0-a0f4-6841e45b0859 exists exists out, in No Returns a boolean if an entry for the given key in exists
106 f1bca9be-4cf3-4276-abe2-9fdc8b8315a9 index-of index-of out, index No Returns an index for the value in if any entry exists with this value
107 7630d156-b76e-4707-a0a7-d9a285325cea device-control-set-address-bits in No Sets the width of the addresses used by device to in bits
108 396fd9b8-a419-4ad6-8cb3-74986fcfb481 device-control-set-register-bits in No Sets the width of registers on the target device to in bits
109 55874378-3042-4acf-be60-9cd1f8d7cb97 device-control-read-register out, in No Reads the single register in from the device and returns the value
110 7415f864-281b-498e-9c81-7efa213832e9 device-control-write-register in, arg No Writes the single register in on the device to arg
111 acab9783-f682-462e-a578-a4ebf7fb3cff device-control-set-protocol-style in No Sets the protocol style used by the device to in. Possoble values depend on the type of bus and device
112 e3fd0fff-48b2-4212-8e47-776fd890609c protocol-style-registers No As protocol style The device only exposes a flat register file. This is often used by sensors
113 f4713b5a-ed0c-42a4-b25e-0b4d68664de2 protocol-style-linear-bytes No As protocol style The device only exposes a flat, linear range of bytes. This is often used by simple storage devices
114 4032dfe4-79d6-4276-a025-f48604406b34 protocol-style-sirtx No As protocol style The device exposes the SIRTX protocol
115 f87a38cb-fd13-4e15-866c-e49901adbec5 small-identifier sid, small-identifier No As type A type of numeric identifiers, used as a shared base vocabulary between different devices
116 2bffc55d-7380-454e-bd53-c5acd525d692 roaraudio-error-number raen No As type A type of numerical error codes as used by SIRTX and other software
117 66beb503-9159-41cb-9e7f-2c3eb6b4b5ff roaraudio-error-symbol raes No As type A set of error symbols that can be translated to roaraudio-error-numbers
118 2c7e15ed-aa2f-4e2f-9a1d-64df0c85875a chat-0-word-identifier chat0w No As type A type of numeric identifier used to identify words and terms in text messages
119 8be115d2-dc2f-4a98-91e1-a6e3075cbc31 uuid uuid No As type A very common type of identifiers, core part of the universal tag standard
120 d08dc905-bbf6-4183-b219-67723c3c8374 oid oid No As type A common type of identifiers
121 a8d1637d-af19-49e9-9ef8-6bc1fbcf6439 uri uri No As type A common type of identifiers used on the internet
122 f4b073ff-0b53-4034-b4e4-4affe5caf72c ascii-code-point asciicp No As type US-ASCII character code point
123 ce7aae1e-a210-4214-926a-0ebca56d77e3 wikidata-identifier wd, wikidata-identifier No As type Any Wikidata identifier (Q, P, or L)
124 dd32dcc6-30fd-44a7-9455-8e340de7557a filter-input fin No As port Standard port for ingest of data, used e.g. with filters. Not to be confused with standard file streams
125 dc976444-f361-404b-94a2-e765959b0f46 filter-output fout No As port Standard port for output of data, used e.g. with filters. Not to be confused with standard file streams
126 fa72dae4-0132-4705-ae73-87e51bf64b4d control-create-child out, (in) No Used to create child objects, specifically a child context. If in is given and non-zero, then so many ports are allocated using dynamic memory
127 d73b6550-5309-46ad-acc9-865c9261065b function-number, sirtx-function-number No As type Function numbers
128 d690772e-de18-4714-aa4e-73fd35e8efc9 function-name, sirtx-function-name No As type Function names
129 5e80c7b7-215e-4154-b310-a5387045c336 sirtx-logical logical, sirtx-logical No As type SIRTX logicals, which provide easy to remember names
130 ff3147d3-ad8c-453b-b8fc-ef199087eb10 context-control-get-symbolic-port out, in No Allows to the value from a port by providing a symbolic value as a key (in). This can be used to if there are multiple ports that could hold the information in question
131 9916f12c-27c6-46d1-979d-b926d03e5c83 context-control-get-unix-handle out, in No Get a port by the UNIX like handle number in. This is mostly used for syscall emulation
132 b205c60d-a95a-4b7b-9de2-c25c16535b8c context-control-set-unix-handle in, arg No Sets the UNIX like handle with the number given as in to arg.
133 64286c36-f98f-497b-a37d-3dee7957fa21 context-control-get-dos-device out, in No Gets the handle for a port using the DOS device in. This is mostly used for syscall emulation
134 987a0940-5b18-45c3-916c-8f362c3f65b8 context-control-set-dos-device in, arg No Sets the value for the DOS device in to arg
135 dae8b81b-43bf-4e8a-8c65-1bd4d0f3bc08 ram-pool rampool, ram-pool No As port The port holds a pool that allows allocating local RAM. Unless the allocated handle is to be used for a specific usecase that is restricted to RAM memory-pool should be used
136 946cbe6b-f6b0-4a0f-b1f3-673bb5d2f7a1 memory-pool memorypool, memory-pool No As port The port holds a pool that can be used to allocate non-permanent storage. This can be local RAM or another type of volatile memory.
137 f6473c75-e4fc-4a0f-84cb-3b337a46afde storage-pool storagepool, storage-pool No As port The port holds a pool for permanent storage. That is data is kept in the pool even when the power is fully cut
138 c8c43f23-2ad3-42eb-9038-72114c0ed104 separation-port, sirtx-separation-port sepport, separation-port No As port This port is used to separate ranges of ports within a context. It is similar to "--" on UNIX systems
139 20c1ee25-929f-4d61-9be4-e1bb0ede0442 vmtype-vmv0 No As VM type Used to select the VM v0 image type when loading an image into the VM
140 54cbd950-7a6f-4a04-96e0-3d14ef9dc84f vmtype-bf No As VM type Used to select the brainfuck code when loading an image into the VM
141 f1912957-c65f-4fa5-af41-1d1fd6cbdb9e vmtype-cpu8086 No As VM type Used to select the raw 8086 image type ("com file") when loading an image into the VM
142 31f1cdc7-c214-4845-887b-da85a21fbf27 control-create out, in, (arg) No Ask the corresponding handle to create a new handle of a given type/role
143 bf901443-64b9-4585-9a5a-200e974913cf control-read-in-network-byteorder out, in No Reads the given amount of bits from the handle (using network byte order) and returns it as a number
144 dc14703b-f4b2-4ed6-8ce8-a25778a3b1ec control-write-in-network-byteorder in, arg No Write the given number of bits in network byte order to the handle
145 6078ea8c-74ab-43ea-bfd4-81d42276874d value-event-source No Device/Source The source of an event
146 342a6a17-cfa1-42f7-a93e-f40f5a961ee6 value-event-type No Type The type of the event
147 dd913d0f-38fa-4d6c-bf24-f5dbe0874b4c type-event No As type The type for events
148 5c510c7d-be96-471a-9866-3e9c42a11687 control-emit-event, terminal-control-emulate-event in No Emits an event on the given handle
149 c79a7d52-4229-4c49-bcf4-a0a95993fc9b value-event-payload No Any Event specific payload
150 8d89dbfe-97f5-4895-9c0f-82f9ca39232e primary-port, sirtx-primary-port No As port The primary-port is used to hold primary but otherwise unnamed data for a function. It is also the default port to use in lci
151 b3fe3e4d-7918-40eb-9050-70c2c9ea497e terminal-control-print-sirtx-character in No Print a SIRTX character to the handle. This is normally only done by converters/drivers.
152 a19da941-c364-4d80-900c-8a4bd89f6090 sirtx-function No No Type used by SIRTX functions
153 b1a20dcd-2341-4c41-9249-5d4a2adf1000 ctty ctty No As device The current (controlling) terminal
154 09445574-f9d8-4cc9-8e68-b4789d725b93 session session No As device The current session
155 de384c81-fd47-4b76-8010-537d4bd10be2 instance instance No As device The current instance
156 d3734170-6722-4452-add3-758adaa3433b mem No As device This represents the host's main memory. This device should be hardly used as memory management is done by memory pools
157 54c465a8-deb3-45e7-964e-76e1027f79a3 ports No As device This represents the host's ports (a special memory space on some systems). This should only be used by driver
158 0836a629-dad0-4fe7-b8a4-37150a4b142a eeprom No As device This represents the host's main EEPROM (a space non-volatile memory on some systems). It should not be used directly but by means of memory pools
159 6d6913de-dd8c-4556-bcf0-13dac340b0d7 flash No As device This represents the host's main flash memory (if any). This memory is likely read-only. Access to it should only be by drivers
160 96333aee-e279-4f8e-be71-dadc5b286d27 control-broadcast-event in No Emits the given event in broadcast mode (ignoring any handled valued)
161 2ee4fea4-0b53-4c14-ade3-fd5f8a9d01c4 event-handled-port No As port Event handlers can set this port to mark an event as handled. If set the event will not be passed to more handlers unless it was emitted in broadcast mode
162 a94e2481-745e-4725-9031-c1cee5eb6af2 control-getc-as-event None No Read one byte off the handle and emits it as an event
163 913af0b1-5dc9-4015-be7e-6d6c7adec08a event-gotc No As event type This type indicates that one byte was read from a given handle and is included in this event
2911 (* 0) "SIRTX numerical identifiers (sni)" ~>

SIRTX ANSI escape code support requirements

The following outlines the requirements for any terminal to confirm to the SIRTX ANSI escape code support. Any terminal that does not adhere may be supported but must not be marked with the corresponding flag.

Note that the default VT-NNN style terminal driver (term) supports a wide range of additional controls. This list merely outlines one of many possible common subsets.

Code Requirement Description
ESC "c"
Implemented Resets terminal
CSI "1J"
Implemented Erase screen
CSI "H"
Implemented Move cursor to home
BEL
Implemented or ignored Rings bell
CSI "0m"
Implemented or ignored if no attributes are supported Resets all attributes
CSI "1m"
Implemented or ignored Sets bold attribute
CSI "2m"
Implemented or ignored Sets dim attribute
CSI "4m"
Implemented or ignored Sets underline attribute
CSI "?5" {"h" | "l"}
Implemented Sets screen mode
CSI "?6" {"h" | "l"}
Implemented Sets origin mode
CSI "?25" {"h" | "l"}
Implemented or ignored Sets cursor display
CSI n {"A" | "B" | "C" | "D"}
Implemented Moves cursor by a relative amount
CSI n ";" n "H"
Implemented Moves cursor to an absolute position
CSI n ";" n "r"
Implemented Set top bottom margin (scroll window)
7839 (* 0) "SIRTX ANSI escape code support requirements" ~>

VT-NNN colours

The following lists the colours SIRTX uses on VT-NNN compatible terminals depending on the selected colour mode.

Colour 3 Bit 3 Bit and Bold 4 Bit 8 Bit 24 Bit
black   Yes Yes Yes Yes Yes
red   Yes Yes Yes Yes Yes
green   Yes Yes Yes Yes Yes
blue   Yes Yes Yes Yes Yes
megenta   Yes Yes Yes Yes Yes
cyan   Yes Yes Yes Yes Yes
grey   Yes Yes Yes Yes Yes
yellow   No No Yes Yes Yes
white   No No Yes Yes Yes
orage   No No No No Yes
savannah   No No No No Yes
Custom colours   No No No No Yes

Please note that while some modes have more colour values than listed here. Those extra values are however generally not portable and therefore ignored by SIRTX. Modern terminals most likely support 24 bit mode rendering this problem void for them.

2372 (* 0) "VT-NNN colours" ~>

SIRTX characters

The following listing contains the characters SIRTX provides on legacy terminals missing important characters but support DLLCS.

  • U+20AC
    "\xE2\x82\xAC"
    EURO SIGN
  • U+2191
    "\xE2\x86\x91"
    UPWARDS ARROW
  • U+2193
    "\xE2\x86\x93"
    DOWNWARDS ARROW
  • U+2190
    "\xE2\x86\x90"
    LEFTWARDS ARROW
  • U+2192
    "\xE2\x86\x92"
    RIGHTWARDS ARROW
  • U+221E
    "\xE2\x88\x9E"
    INFINITY
  • U+2261
    "\xE2\x89\xA1"
    IDENTICAL TO
  • U+25C4
    "\xE2\x97\x84"
    BLACK LEFT-POINTING POINTER
  • U+25BA
    "\xE2\x96\xBA"
    BLACK RIGHT-POINTING POINTER
  • U+2642
    "\xE2\x99\x82"
    MALE SIGN
  • U+2640
    "\xE2\x99\x80"
    FEMALE SIGN
  • U+263A
    "\xE2\x98\xBA"
    WHITE SMILING FACE
  • U+263B
    "\xE2\x98\xBB"
    BLACK SMILING FACE
  • U+2665
    "\xE2\x99\xA5"
    BLACK HEART SUIT
  • U+2660
    "\xE2\x99\xA0"
    BLACK SPADE SUIT
  • U+2663
    "\xE2\x99\xA3"
    BLACK CLUB SUIT
  • U+266A
    "\xE2\x99\xAA"
    EIGHTH NOTE
  • U+23A1
    "\xE2\x8E\xA1"
    LEFT SQUARE BRACKET UPPER CORNER
  • U+23A6
    "\xE2\x8E\xA6"
    RIGHT SQUARE BRACKET LOWER CORNER
  • 🐱
    U+1F431
    "\xF0\x9F\x90\xB1"
    CAT FACE
  • 🮰
    U+1FBB0
    "\xF0\x9F\xAE\xB0"
    ARROWHEAD-SHAPED POINTER
  • U+2026
    "\xE2\x80\xA6"
    HORIZONTAL ELLIPSIS
  • Ω
    U+03A9
    "\xCE\xA9"
    GREEK CAPITAL LETTER OMEGA
  • U+231B
    "\xE2\x8C\x9B"
    HOURGLASS
  • ¤
    U+00A4
    "\xC2\xA4"
    CURRENCY SIGN
9928 (* 0) "SIRTX characters" ~>