Commit Graph

8185 Commits

Author SHA1 Message Date
Kartik K. Agaram a08658f218 . 2021-05-03 18:16:15 -07:00
Kartik K. Agaram 1048729a6e . 2021-05-03 17:31:19 -07:00
Kartik K. Agaram 93f1bee02c reading and printing backquotes and unquotes 2021-05-03 12:02:12 -07:00
Kartik K. Agaram 71a04056a8 printing quoted expressions 2021-05-02 22:31:19 -07:00
Kartik K. Agaram 27691024c4 . 2021-05-02 22:25:47 -07:00
Kartik Agaram c6343de7b0 . 2021-05-02 00:00:54 -07:00
Kartik Agaram f0e146fc7b . 2021-05-01 23:52:28 -07:00
Kartik K. Agaram f3fe2ac195 tool: compute nearby colors in default palette 2021-05-01 23:41:24 -07:00
Kartik K. Agaram 673025b346 primitive: convert r/g/b to h/s/l 2021-05-01 22:14:08 -07:00
Kartik K. Agaram 2c0539e6fa primitive: read r/g/b for color 2021-05-01 21:11:40 -07:00
Kartik K. Agaram 83847e9f0a .
Clean up menus.
2021-05-01 16:20:44 -07:00
Kartik K. Agaram d0e2d093f7 cleaner rendering of fake screens and keyboards
I don't understand why a second line in the keyboard is visible now where
it wasn't before. That whole aspect has unclear desires. What exactly do
I want to happen on newlines?
2021-05-01 16:12:49 -07:00
Kartik K. Agaram 719b6acf3d .
Use sandbox background in the top line on the right.
2021-05-01 15:54:02 -07:00
Kartik K. Agaram c426cc0327 .
Clean up trace colors.
2021-05-01 15:49:48 -07:00
Kartik K. Agaram 2b616894fd move color scheme closer to Solarized dark
sed -i 's,0x12/bg=almost-black,0xdc/bg=green-bg,g' shell/*.mu
sed -i 's, 0/bg, 0xc5/bg=blue-bg,g' shell/*.mu
sed -i 's, 7/fg=trace, 0x38/fg=trace,g' shell/*.mu
sed -i 's, 7/bg=grey, 0x5c/bg=black,g' shell/*.mu

Still a few issues.

Thanks Adrian Cochrane and Zach DeCook.
  https://floss.social/@alcinnz/106152068473019933
  https://social.librem.one/@zachdecook/106159988837603417
2021-05-01 15:37:55 -07:00
Kartik Agaram e3290a6c1a support color comparison in the palette doc
It's intended to be used with a browser's inspector.
2021-05-01 09:37:14 -07:00
Kartik K. Agaram bf4c19f053 shell: squeeze menu 2021-04-30 00:00:55 -07:00
Kartik K. Agaram 3385febc11 shell: allow 'def' to overwrite 2021-04-29 23:53:28 -07:00
Kartik K. Agaram d46c4b06b2 shell: comments 2021-04-29 23:48:36 -07:00
Kartik K. Agaram 24883b04f5 . 2021-04-29 23:43:17 -07:00
Kartik K. Agaram 772b7b6585 adjust fake screen aspect ratio for verisimilitude 2021-04-29 23:38:37 -07:00
Kartik K. Agaram ca47215a6b keep the temporary progress screen off the keyboard 2021-04-29 20:38:18 -07:00
Kartik K. Agaram 24222b1735 make pixel borders of screen clear 2021-04-29 20:35:50 -07:00
Kartik K. Agaram 26eae87d3f make matching parens pop again 2021-04-29 16:47:26 -07:00
Kartik K. Agaram c811754807 render definitions in 2 columns 2021-04-29 16:43:40 -07:00
Kartik K. Agaram 6503529627 white text everywhere by default 2021-04-29 16:27:43 -07:00
Kartik K. Agaram 5124feb31e tweak colors for definitions 2021-04-29 16:14:47 -07:00
Kartik K. Agaram e13fd3e0a1 render in a narrow column 2021-04-29 16:11:23 -07:00
Kartik K. Agaram 05879d4f99 load large definitions 2021-04-29 16:10:30 -07:00
Kartik K. Agaram b860f108f7 adjust some colors and padding 2021-04-29 15:10:17 -07:00
Kartik K. Agaram 4541bfa59b extremely threadbare null-pointer protection
This protects us from reading null arrays, but not null structs.
It also doesn't protect us from writes to address 0 itself.

It is also incredibly unsafe. According to https://wiki.osdev.org/Memory_Map_(x86),
address 0 contains the real-mode IVT. Am I sure it'll never ever get used
after I switch to protected mode? I really need a page table, something
minimal to protect the first 4KB of physical memory or something.

I wonder what other languages/OSs do to protect against really large struct
definitions.
2021-04-28 22:22:55 -07:00
Kartik K. Agaram dcb6a21a91 bugfix: initialize gap buffers before using them
I keep running into one hole in Mu's memory-safety since dropping the Linux
dependency: null pointers no longer error when dereferenced. Here the problem
manifests as aliasing: lots of gap buffers share the same exact data near
address 0, because it was never initialized.
2021-04-28 22:03:58 -07:00
Kartik K. Agaram 7fa356abef fix rendering 2021-04-28 17:54:02 -07:00
Kartik K. Agaram b9c59a5f5b shell: load/store from/to disk with indent
Once I came up with the right approach, this worked on the first try once
I got the types and registers to line up!
2021-04-28 17:49:55 -07:00
Kartik K. Agaram ef8dc999ca . 2021-04-28 17:08:15 -07:00
Kartik K. Agaram d5d3e02ad4 shell: bugfix for stream literals
I was forgetting that callers sometimes reuse outputs between successive
tokens.
2021-04-28 16:34:40 -07:00
Kartik K. Agaram 9269234e46 start rendering definitions with indentation 2021-04-28 14:47:41 -07:00
Kartik K. Agaram 5b7f938733 start stashing and clearing sandbox after definitions 2021-04-28 13:55:10 -07:00
Kartik K. Agaram e73f1a3b41 . 2021-04-28 12:21:51 -07:00
Kartik K. Agaram a71ff2383a . 2021-04-28 09:45:39 -07:00
Kartik K. Agaram 55cde01edf shell: stream literals 2021-04-27 23:10:30 -07:00
Kartik K. Agaram 9e9e40c05a . 2021-04-27 23:04:20 -07:00
Kartik K. Agaram 409d26ca87 . 2021-04-27 23:03:23 -07:00
Kartik K. Agaram 6ecd9920ca shell: tokenizing stream (string) literals
We're calling them streams since they support appending.
2021-04-27 22:48:16 -07:00
Kartik K. Agaram 16f51dd76d . 2021-04-27 22:14:08 -07:00
Kartik Agaram 865f37aa9c . 2021-04-26 09:42:05 -07:00
Kartik K. Agaram 606c5681b7 bresenham circles
Known issue: circles of radius 9 crash. (Multiples of 9 overflow the trace.)
2021-04-25 22:33:26 -07:00
Kartik K. Agaram 7148f1222e bug in bresenham lines 2021-04-25 22:20:57 -07:00
Kartik K. Agaram 891083c44d shell: primitives 'and' and 'or' 2021-04-25 22:19:00 -07:00
Kartik K. Agaram bd9c1e6a79 shell: primitive 'not' 2021-04-25 22:09:51 -07:00