about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* handle drawing 16*4 = 64 pixelsKartik K. Agaram2021-04-161-1/+1
| | | | | | | | | | | | | | | Previously we'd only drawn 8*5 = 40 pixels. Current contents of data.img: ( (globals . ( (hline . (fn () (screen y) (hline1 screen y 0 (width screen)))) (hline1 . (fn () (screen y lo hi) (if (>= lo hi) () ((fn () (pixel screen lo y 12) (hline1 screen y (+ lo 1) hi)))))) (vline1 . (fn () (screen x lo hi) (if (>= lo hi) () ((fn () (pixel screen x lo 12) (vline1 screen x (+ lo 1) hi)))))) )) (sandbox . (vline1 screen 5 0 (height screen))) )
* data.img now has more than one sector of dataKartik K. Agaram2021-04-165-42/+88
|
* open question: animations in the fake screenKartik K. Agaram2021-04-151-0/+38
| | | | Right now we just render the state of the screen at the end of an evaluation.
* .Kartik K. Agaram2021-04-151-17/+17
|
* .Kartik K. Agaram2021-04-151-2/+6
|
* .Kartik K. Agaram2021-04-151-1/+2
|
* shell: horline working nowKartik K. Agaram2021-04-151-1/+9
| | | | And we give a high-level error when the pixel buffer fills up.
* first session programming _within_ the Mu computerKartik K. Agaram2021-04-152-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I tried building a function to draw a horizontal line across the screen. Here's what I have in data.txt: ( (globals . ( (horline . (fn () (screen y) (horline_1 screen y 0 (width screen)))) (horline_1 . (fn () (screen y lo hi) (if (>= lo hi) () ((fn () (pixel screen lo y 12) (horline_1 screen y (+ lo 1) hi)))))) )) (sandbox . (horline_1 screen 0 0 20)) ) $ dd if=/dev/zero of=data.img count=20160 $ cat data.txt |dd of=data.img conv=notrunc $ ./translate shell/*.mu && qemu-system-i386 -hda disk.img -hdb data.img Result: I can't call (horline screen 0) over a fake screen of width 40. Some stream overflows somewhere after all the tweaks to various fixed-size buffers scattered throughout the app. Calling horline_1 gets to a 'hi' column of 20, but not to 30.
* shell: primitives for screen sizeKartik K. Agaram2021-04-151-2/+180
|
* shell: restore bindings after restartKartik K. Agaram2021-04-152-0/+52
|
* shell: start persisting global bindingsKartik K. Agaram2021-04-152-2/+39
|
* .Kartik K. Agaram2021-04-153-5/+17
|
* .Kartik K. Agaram2021-04-152-1/+8
|
* .Kartik K. Agaram2021-04-152-5/+9
|
* .Kartik K. Agaram2021-04-152-11/+9
|
* add some structure to the serialization formatKartik K. Agaram2021-04-152-2/+24
|
* parse dotted listsKartik K. Agaram2021-04-152-0/+191
|
* .Kartik K. Agaram2021-04-151-14/+25
|
* .Kartik K. Agaram2021-04-151-6/+4
|
* .Kartik K. Agaram2021-04-151-4/+7
|
* .Kartik K. Agaram2021-04-151-0/+7
|
* .Kartik K. Agaram2021-04-151-0/+1
|
* shell: starting to parse dotted listsKartik K. Agaram2021-04-151-10/+20
|
* shell: dot tokenKartik K. Agaram2021-04-151-0/+58
|
* .Kartik K. Agaram2021-04-151-5/+9
|
* .Kartik K. Agaram2021-04-151-16/+17
|
* shell: load data disk as s-expr rather than stringKartik K. Agaram2021-04-142-13/+29
|
* shell: starting to work on persistent globalsKartik K. Agaram2021-04-141-2/+8
|
* .Kartik K. Agaram2021-04-142-10/+18
|
* shell: primitives for comparison, cursor movementKartik K. Agaram2021-04-141-10/+439
|
* shell: more detailed description of primitivesKartik K. Agaram2021-04-141-12/+44
|
* shell: don't lose pixel graphics when moving cursorKartik K. Agaram2021-04-141-0/+1
|
* shell: word/line navigationKartik K. Agaram2021-04-142-2/+228
|
* .Kartik K. Agaram2021-04-141-6/+6
|
* shell: pixel graphicsKartik K. Agaram2021-04-133-26/+194
|
* .Kartik Agaram2021-04-1342-3659/+6682
|
* shell: full closuresKartik K. Agaram2021-04-101-6/+11
|
* apply doesn't need caller env in lexical scopeKartik K. Agaram2021-04-101-6/+9
|
* shell: none of our primitives need to be closuresKartik K. Agaram2021-04-102-52/+28
|
* shell: streams that you can append graphemes toKartik K. Agaram2021-04-103-2/+110
|
* .Kartik K. Agaram2021-04-102-3/+8
|
* shell: fake keyboardKartik K. Agaram2021-04-103-2/+71
|
* shell: start jumping to keyboard using TabKartik K. Agaram2021-04-102-27/+182
|
* shell: UI now showing fake keyboardKartik K. Agaram2021-04-104-35/+131
| | | | But we don't actually support fake keyboards anywhere yet.
* shell: start on support for fake keyboardKartik K. Agaram2021-04-102-2/+17
|
* shell: move fake screen to sandboxKartik K. Agaram2021-04-105-107/+86
|
* shell: tweaks for fake screensKartik K. Agaram2021-04-102-5/+165
| | | | | - make them more discoverable - clear them between commands
* shell: fake screensKartik K. Agaram2021-04-102-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. Agaram2021-04-101-54/+54
|
* shell: render fake screensKartik K. Agaram2021-04-103-29/+149
| | | | 'print' turns out to not be working yet.