Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | shell: load data disk as s-expr rather than string | Kartik K. Agaram | 2021-04-14 | 2 | -13/+29 |
| | |||||
* | shell: starting to work on persistent globals | Kartik K. Agaram | 2021-04-14 | 1 | -2/+8 |
| | |||||
* | . | Kartik K. Agaram | 2021-04-14 | 2 | -10/+18 |
| | |||||
* | shell: primitives for comparison, cursor movement | Kartik K. Agaram | 2021-04-14 | 1 | -10/+439 |
| | |||||
* | shell: more detailed description of primitives | Kartik K. Agaram | 2021-04-14 | 1 | -12/+44 |
| | |||||
* | shell: don't lose pixel graphics when moving cursor | Kartik K. Agaram | 2021-04-14 | 1 | -0/+1 |
| | |||||
* | shell: word/line navigation | Kartik K. Agaram | 2021-04-14 | 2 | -2/+228 |
| | |||||
* | . | Kartik K. Agaram | 2021-04-14 | 1 | -6/+6 |
| | |||||
* | shell: pixel graphics | Kartik K. Agaram | 2021-04-13 | 3 | -26/+194 |
| | |||||
* | . | Kartik Agaram | 2021-04-13 | 42 | -3659/+6682 |
| | |||||
* | shell: full closures | Kartik K. Agaram | 2021-04-10 | 1 | -6/+11 |
| | |||||
* | apply doesn't need caller env in lexical scope | Kartik K. Agaram | 2021-04-10 | 1 | -6/+9 |
| | |||||
* | shell: none of our primitives need to be closures | Kartik K. Agaram | 2021-04-10 | 2 | -52/+28 |
| | |||||
* | shell: streams that you can append graphemes to | Kartik K. Agaram | 2021-04-10 | 3 | -2/+110 |
| | |||||
* | . | Kartik K. Agaram | 2021-04-10 | 2 | -3/+8 |
| | |||||
* | shell: fake keyboard | Kartik K. Agaram | 2021-04-10 | 3 | -2/+71 |
| | |||||
* | shell: start jumping to keyboard using Tab | Kartik K. Agaram | 2021-04-10 | 2 | -27/+182 |
| | |||||
* | shell: UI now showing fake keyboard | Kartik K. Agaram | 2021-04-10 | 4 | -35/+131 |
| | | | | But we don't actually support fake keyboards anywhere yet. | ||||
* | shell: start on support for fake keyboard | Kartik K. Agaram | 2021-04-10 | 2 | -2/+17 |
| | |||||
* | shell: move fake screen to sandbox | Kartik K. Agaram | 2021-04-10 | 5 | -107/+86 |
| | |||||
* | shell: tweaks for fake screens | Kartik K. Agaram | 2021-04-10 | 2 | -5/+165 |
| | | | | | - make them more discoverable - clear them between commands | ||||
* | shell: fake screens | Kartik K. Agaram | 2021-04-10 | 2 | -0/+14 |
| | | | | | | | I just realized Mu has a pretty big weakness: writes to null pointers don't error out. Perhaps writes to address 0 do, but address 1 and so on don't? I need a slightly more sophisticated page table. | ||||
* | . | Kartik K. Agaram | 2021-04-10 | 1 | -54/+54 |
| | |||||
* | shell: render fake screens | Kartik K. Agaram | 2021-04-10 | 3 | -29/+149 |
| | | | | 'print' turns out to not be working yet. | ||||
* | . | Kartik K. Agaram | 2021-04-10 | 1 | -1/+1 |
| | |||||
* | shell: start of 'print' primitive | Kartik K. Agaram | 2021-04-10 | 5 | -13/+125 |
| | |||||
* | shell: structural equality check | Kartik K. Agaram | 2021-04-09 | 4 | -3/+52 |
| | | | | Mu can now compute (factorial 5) | ||||
* | shell: if | Kartik K. Agaram | 2021-04-09 | 1 | -0/+41 |
| | |||||
* | shell: highlight matching paren for cursor | Kartik K. Agaram | 2021-04-09 | 2 | -17/+301 |
| | |||||
* | shell: highlight matching close-paren | Kartik K. Agaram | 2021-04-09 | 3 | -3/+114 |
| | |||||
* | . | Kartik K. Agaram | 2021-04-09 | 1 | -10/+6 |
| | |||||
* | shell: render primitives at the bottom | Kartik K. Agaram | 2021-04-08 | 1 | -2/+44 |
| | |||||
* | . | Kartik K. Agaram | 2021-04-08 | 2 | -2/+5 |
| | |||||
* | shell: start rendering globals | Kartik K. Agaram | 2021-04-08 | 2 | -1/+38 |
| | |||||
* | shell: create space to display globals | Kartik K. Agaram | 2021-04-08 | 4 | -5/+61 |
| | |||||
* | shell: ctrl-u to clear sandbox | Kartik K. Agaram | 2021-04-06 | 1 | -4/+14 |
| | |||||
* | shell: 'set' for defining globals | Kartik K. Agaram | 2021-04-06 | 2 | -0/+62 |
| | | | | Currently stateful, but still good for things. | ||||
* | shell: quote | Kartik K. Agaram | 2021-04-06 | 4 | -0/+76 |
| | |||||
* | shell: now we can start adding primitives | Kartik K. Agaram | 2021-04-06 | 2 | -0/+314 |
| | |||||
* | shell: look up globals | Kartik K. Agaram | 2021-04-06 | 2 | -31/+53 |
| | |||||
* | shell: extensible array of globals | Kartik K. Agaram | 2021-04-05 | 4 | -95/+151 |
| | | | | I'm not bothering with full dynamic scope for now. | ||||
* | . | Kartik K. Agaram | 2021-04-05 | 1 | -1/+1 |
| | |||||
* | shell: save repl input to disk before running | Kartik K. Agaram | 2021-04-05 | 2 | -24/+31 |
| | |||||
* | shell: ctrl-a/e | Kartik K. Agaram | 2021-04-05 | 1 | -0/+12 |
| | |||||
* | support for arrow keys | Kartik K. Agaram | 2021-04-05 | 4 | -4/+67 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mu's keyboard handling is currently a bit of a mess, and this commit might be a bad idea. Ideally keyboards would return Unicode. Currently Mu returns single bytes. Mostly ASCII. No support for international keyboards yet. ASCII and Unicode have some keyboard scancodes grandfathered in, that don't really make sense for data transmission. Like backspace and delete. However, other keyboard scancodes don't have any place in Unicode. Including arrow keys. So Mu carves out an exception to Unicode for arrow keys. We'll place the arrow keys in a part of Unicode that is set aside for implementation-defined behavior (https://en.wikipedia.org/wiki/C0_and_C1_control_codes#C1_controls): 0x80: left arrow 0x81: down arrow 0x82: up arrow 0x83: right arrow The order is same as hjkl for mnemonic convenience. I'd _really_ to follow someone else's cannibalization here. If I find one later, I'll switch to it. Applications that blindly assume the keyboard generates Unicode will have a bad time. Events like backspace, delete and arrow keys are intended to be processed early and should not be in text. With a little luck I won't need to modify this convention when I support international keyboards. | ||||
* | undo previous commit | Kartik K. Agaram | 2021-04-05 | 5 | -149/+123 |
| | |||||
* | snapshot: stupid debugging session | Kartik K. Agaram | 2021-04-05 | 6 | -123/+152 |
| | | | | | | | | | | | | | | | I spent a while building a little keyboard scancode printer: $ ./translate ex1.mu && qemu-system-i386 disk.img ..and wondering why up-arrow was 0x48 in hex but 724 in decimal. I ended up paranoidly poking at a bunch of crap (though there _is_ a cool chromatography-based debugging technique in 126write-int-decimal.subx) before I realized: - 724 just has one extra digit over the correct answer - the 0xe0 scan code is a 3-digit number in decimal -- and the final digit is '4' There's nothing actually wrong. | ||||
* | shell: clean up unimplemented menu items | Kartik K. Agaram | 2021-04-05 | 2 | -17/+0 |
| | |||||
* | . | Kartik K. Agaram | 2021-04-05 | 1 | -0/+0 |
| | |||||
* | . | Kartik Agaram | 2021-04-05 | 1 | -1/+1 |
| |