-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcategories.yaml
102 lines (98 loc) · 4.67 KB
/
categories.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
categories:
Color:
stub: Color graphics and display driver
summary:
KnightOS supports the TI-84+ Color Silver Edition. This calculator uses a
[ILI9335 display](http://www.displayfuture.com/Display/datasheet/controller/ILI9335.pdf),
which has a resolution of 320x240. KnightOS uses 16-bit colors, in the
format 0bRRRRRGGGGGGBBBBB.
Due to the size of the screen, and the speed requirements for driving it,
KnightOS programs do not use an in-memory buffer. An uncompressed image
the full size of the screen takes up more than all addressable memory on
the device. Instead, we've provided functions for drawing directly to
the LCD.
Generally speaking, the color you wish to draw with is provided in the IY
register (which is used for the monochrome buffer in non-color
applications).
The kernel supports both monochrome and color display modes on the same
calculator, and even running at the same time. We refer to monochrome
mode as "legacy mode", and color mode as "color mode". Your program
should tell the kernel which mode you'd like to use, and the kernel will
handle the switching semantics to help you coorperate with the rest of
the enviornment.
Concurrency:
stub: Implementations of concurrent patterns
Cryptography:
stub: Cryptographic hashing functions
summary:
KnightOS offers minimal cryptographic support, including SHA-1, MD5, and
CRC. CRC and MD5 are suitable for data validation, and SHA-1 is suitable
for cryptographic hashing. This statement is true in 2014, but may not
hold up long after this document is written. Always research the latest
news in cryptography before settling on an algorithm.
Decimal Floating Point:
stub: Decimal floating point math
summary:
The kernel provides functions for working with BCD-encoded floating point
numbers. These are slower than binary floats but have greater accuracy in
base 10. A binary floating point implementation are available in
[libc](https://github.com/KnightOS/libc).
Display:
stub: Monochrome graphics and display driver
summary:
The monochrome display is 96x64 pixels. KnightOS programs are expected to
allocate a 768-byte buffer of memory, and place the address in IY
([[allocScreenBuffer]] does this for you). You may use
[fastCopy](#fastCopy) to copy this buffer to the display.
This page documents monochrome functions. For the color display, see
[color](/documentation/reference/color).
Filestreams:
stub: File stream manipulation
summary:
File streams allow you to read from or write to files on the filesystem.
It operates at a higher level than the [filesystem
driver](/documentation/reference/filesystem.html) does. Note that certain
filesystem operations on KnightOS are much slower than others. You should
probably display some sort of "waiting" UI to users while you do
expensive operations. Writing files sequentially is pretty fast, but
editing the middle of a file can be quite slow as Flash erasures are
often required to complete these writes.
Filesystem:
stub: Low-level filesystem driver
summary:
These functions are part of the low-level filesystem driver, and interact
directly with the filesystem tree. To read or write files, see the
[filestream reference](/documentation/reference/filestreams.html).
Flash:
stub: Low-level Flash storage driver
summary:
Manipulating Flash can be dangerous and lead to severe data loss. Please
only use these functions if you feel qualified that you can safely work
with them. Nearly all of them require Flash to be unlocked first, via
[unlockFlash](#unlockFlash).
Hardware:
stub: Concurrent hardware management
Input:
stub: Keyboard driver
I/O:
stub: Link routines
Maths:
stub: Common mathematical utility functions
Miscellaneous:
stub: Various helpful functions that fit nowhere else
Strings:
stub: Useful routines to work with strings
System:
stub: Interaction with basic system functionality
Text:
stub: Text graphics
Threading:
stub: Thread creation and management
summary:
The default kernel configuration allows for up to 32 threads to be
running simultaneously. It is possible to change this number by
reconfiguring your kernel, and userspace programs should not depend on
this number to be accurate.
Time:
stub: Time and date mathematics and hardware driver
summary: The hardware clock is not present on all devices, but time/date mathematics is available on all platforms.