about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* .Kartik K. Agaram2021-07-071-9/+9
|
* render ppm/pgmKartik K. Agaram2021-07-071-7/+106
| | | | Looks pretty bad compressing 256 shades of grey to 8.
* load ppm/pgm/ppm on demandKartik K. Agaram2021-07-071-8/+113
|
* initial image renderingKartik K. Agaram2021-07-075-0/+6163
| | | | | | Supports just some ASCII formats: https://en.wikipedia.org/wiki/Netpbm Colors are messed up. That's next.
* .Kartik K. Agaram2021-07-061-8/+18
|
* .Kartik K. Agaram2021-07-062-44/+44
|
* nearest h/s/l color by a euclidean metricKartik K. Agaram2021-07-061-0/+51
|
* primitives for double-bufferingKartik K. Agaram2021-07-051-4/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I thought I needed these for this bouncing-ball demo: def (bounce screen) with (w (width screen) h (height screen) cx 16 cy 16 dx 12 dy 19) while 1 clear screen ring screen cx cy 16 3 5 cx += dx cy += dy when (or (cx > w) (cx < 0)) set dx 0-dx when (or (cy > h) (cy < 0)) set dy 0-dy for _ 0 (< _ 100) ++_ # delay No matter how I adjusted the delay I couldn't get rid of the jitter. So I built a double-buffered version: (bounce2 . [def (bounce2 screen) with (w (width screen) h (height screen) cx 16 cy 16 dx 12 dy 19 screen2 (new_screen (columns screen) (lines screen))) while 1 clear screen2 ring screen2 cx cy 16 3 5 cx += dx cy += dy when (or (cx > w) (cx < 0)) set dx 0-dx when (or (cy > h) (cy < 0)) set dy 0-dy blit screen2 screen for _ 0 (< _ 100) ++_]) # delay But it didn't make a difference! Turns out nothing will help you when successive frames are too far apart. This is the correct tweak to `bounce`: - dx 12 - dy 19) + dx 1 + dy (/ 19 12)) Still, we'll keep double-buffering around for the future.
* shell: fix clear on screensKartik K. Agaram2021-07-051-1/+1
| | | | | | | Broken since commit c95648c96 on Jul 3. Unclear what test to write for this. Should clear-stream check for NULL? Should apply-clear?
* expose Mu implementation of 'bezier'Kartik K. Agaram2021-07-051-1/+256
| | | | Still no support for acute-angled control points.
* replace 'circle' with Mu implementationKartik K. Agaram2021-07-052-19/+161
|
* replace 'vline' with Mu implementationKartik K. Agaram2021-07-052-6/+162
|
* replace 'hline' with Mu implementationKartik K. Agaram2021-07-052-9/+165
|
* replace 'line' with Mu implementationKartik K. Agaram2021-07-052-32/+196
|
* grow code region yet againKartik K. Agaram2021-07-053-2/+16
| | | | We need a cleaner way to do this.
* .Kartik K. Agaram2021-07-051-1/+1
|
* .Kartik K. Agaram2021-07-051-140/+140
|
* reading from streamsKartik K. Agaram2021-07-038-23/+206
| | | | | | The Mu shell has no string literals, only streams. No random access, only sequential access. But I've been playing fast and loose with its read pointer until now. Hopefully things are cleaned up now.
* alistsKartik K. Agaram2021-07-031-0/+13
|
* new primitive: cons?Kartik K. Agaram2021-07-031-1/+42
|
* .Kartik K. Agaram2021-07-031-5/+10
|
* .Kartik K. Agaram2021-07-031-4/+4
|
* reorg primitives on screenKartik K. Agaram2021-07-022-43/+80
|
* clean up final abort in macroexpandKartik K. Agaram2021-06-302-1/+14
|
* delete a known issueKartik Agaram2021-06-301-3/+0
| | | | I can't reproduce the issue with the keyboard handler anymore :/
* more general timer interfaceKartik K. Agaram2021-06-294-17/+46
|
* .Kartik K. Agaram2021-06-291-0/+0
|
* move timer handler to boot.subxKartik K. Agaram2021-06-292-468/+26
|
* timer and keyboard handlers working togetherKartik K. Agaram2021-06-291-18/+44
|
* .Kartik K. Agaram2021-06-291-10/+8
|
* .Kartik K. Agaram2021-06-291-5/+5
|
* timer working in presence of null keyboard handlerKartik K. Agaram2021-06-291-2/+2
|
* .Kartik K. Agaram2021-06-291-1/+23
|
* ooh, timer works fine in isolationKartik K. Agaram2021-06-291-0/+416
| | | | Acknowledging the interrupt is necessary.
* poking at the broken timer interrupt handler againKartik K. Agaram2021-06-291-19/+1
|
* .Kartik Agaram2021-06-271-22/+21
|
* .Kartik K. Agaram2021-06-271-5/+11
|
* .Kartik K. Agaram2021-06-273-2/+2
|
* simplify Qemu instructionsKartik K. Agaram2021-06-271-12/+10
| | | | | Turns out we don't need a special case for KVM. https://qemu.readthedocs.io/en/latest/system/invocation.html
* .Kartik K. Agaram2021-06-272-16/+20
|
* html: better highlighting for int registersKartik Agaram2021-06-26108-4912/+4824
|
* .Kartik Agaram2021-06-26261-1499/+1499
| | | | | Switch html rendering to my current colorscheme with a little less blue, for night browsing.
* .Kartik Agaram2021-06-261-6/+0
| | | | Drop some long-obsolete tooling. I no longer use iTerm2.
* .Kartik Agaram2021-06-241-38/+44
|
* .Kartik Agaram2021-06-24261-8393/+8636
| | | | Switch html rendering to a white background.
* .Kartik Agaram2021-06-241-53/+0
|
* .Kartik Agaram2021-06-241-3/+3
|
* .Kartik Agaram2021-06-245-2/+2
|
* .Kartik Agaram2021-06-241-1/+1
|
* .Kartik Agaram2021-06-234-2/+2
|