about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 7730 - baremetal/shell: boolean valuesKartik K. Agaram2021-02-125-13/+229
| | | | | In the process I found a bug in the Mu compiler. Limitations of just asserting the emitted code but not running it.
* 7729Kartik K. Agaram2021-02-121-3/+3
|
* 7728Kartik K. Agaram2021-02-121-0/+30
|
* 7727 - baremetal/shell: 1+1Kartik K. Agaram2021-02-113-0/+35
|
* 7726Kartik K. Agaram2021-02-113-7/+210
|
* 7725 - baremetal/shell: start on evaluatorKartik K. Agaram2021-02-112-0/+174
|
* 7724 - baremetal: rendering array valuesKartik K. Agaram2021-02-115-0/+1644
|
* 7723 - baremetal: rendering string valuesKartik K. Agaram2021-02-116-3/+370
|
* 7722Kartik K. Agaram2021-02-111-0/+2
|
* 7721 - baremetal: start rendering valuesKartik K. Agaram2021-02-111-0/+84
|
* 7720 - baremetal: load more sectors againKartik K. Agaram2021-02-113-12/+28
|
* 7719 - baremetal: print floatsKartik K. Agaram2021-02-114-0/+646
|
* 7718Kartik K. Agaram2021-02-111-4/+4
| | | | Bugfix in clear-screen.
* 7717 - baremetal: enable FPU (I think)Kartik K. Agaram2021-02-112-5/+20
|
* 7716Kartik K. Agaram2021-02-101-0/+8
|
* 7715Kartik K. Agaram2021-02-101-2/+1
|
* 7714Kartik K. Agaram2021-02-101-0/+8
|
* 7713Kartik K. Agaram2021-02-105-14/+20
|
* 7712Kartik K. Agaram2021-02-101-71/+0
|
* 7711 - baremetal/shell: line data structureKartik K. Agaram2021-02-102-4/+176
| | | | | | Pretty thin; perhaps we should put cursor management in words. But we don't need every node in the list of words to know which word in the list the cursor is at.
* 7710Kartik K. Agaram2021-02-101-0/+58
| | | | Include a file for commit 7708.
* 7709Kartik K. Agaram2021-02-092-24/+28
| | | | | | | Fix the jarringness in the previous commit. Gap buffers now always occupy the same width on screen regardless of where their cursor is. The price: we sometimes have more whitespace between words. But that is perhaps a good thing.
* 7708 - baremetal/shell: word data structureKartik K. Agaram2021-02-092-1/+786
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not everything here is tested, but enough that I'm starting to feel confident. We see our first divergence with apps/tile. In apps/tile we render everything, then go back and figure out where to position the cursor. This relies on some low-level smarts and is also quite klunky and complex. In baremetal/shell I plan to do something simpler: maintain a tree of objects where each level knows which sub-object under it has the cursor. Now I can pass in the cursor object to each object, and if it detects that it has the cursor it can recursively figure out which sub-object has the cursor. The bottom-most objects (grapheme stacks) draw the cursor as they render themselves. Single-pass algorithm, draw the cursor as you render, no low-level smarts needed. But there's a divergence. What in apps/tile used to look like this, with a cursor ␣ at the end of the word 'abc': abc␣def ..now looks like this: abc␣ def ..with an extra space. This could cause some jarring 'dancing' as you move the cursor through a list of words.
* 7707Kartik K. Agaram2021-02-091-0/+14
|
* 7706Kartik K. Agaram2021-02-092-9/+30
|
* 7705Kartik K. Agaram2021-02-091-6/+3
|
* 7704Kartik K. Agaram2021-02-091-6/+6
|
* 7703Kartik K. Agaram2021-02-091-0/+3
|
* 7702Kartik K. Agaram2021-02-092-7/+7
|
* 7701Kartik K. Agaram2021-02-093-9/+9
|
* 7700Kartik Agaram2021-02-091-0/+0
|
* 7699Kartik K. Agaram2021-02-082-11/+442
| | | | Gap buffer with a more testable interface for rendering to screen.
* 7698 - starting to test-drive baremetal shellKartik Agaram2021-02-074-5/+259
|
* 7697Kartik Agaram2021-02-071-4/+6
|
* 7696Kartik Agaram2021-02-071-1/+0
|
* 7695 - baremetal: second bg assertion for spacesKartik Agaram2021-02-071-1/+60
| | | | | | When I'm also checking graphemes I assume that spaces can be in other bg colors. However, if I want to closely check the bg color for a cell with a space in it (ahem, cursor), I have to check the color in isolation.
* 7694 - baremetal: asserting bg color in testsKartik Agaram2021-02-072-7/+103
|
* 7693 - baremetal: pass background color everywhereKartik Agaram2021-02-0714-117/+137
|
* 7692Kartik Agaram2021-02-073-6/+33
| | | | | It's bad enough that metadata comments are restricted to integer literals; let's at least make them work on _all_ integer literals.
* 7691Kartik Agaram2021-02-072-5/+21
|
* 7690Kartik Agaram2021-02-0751-662/+662
| | | | Convert comments about magic constants into metadata.
* 7689 - permit metadata on Mu literal integersKartik Agaram2021-02-062-0/+33
| | | | | | | | | | | | | | Metadata is always ignored. It's purely for documentation purposes. But as long as Mu has no named constants it's starting to feel increasingly essential. I'm still not going to bother to add metadata to other parts of the language. Let's see if we need them. Even though it's a little warty that the rules vary throughout the stack: - bare SubX: metadata everywhere - SubX with syntax sugar: no metadata in calls or addressing-mode sigil-expressions - Mu: metadata only for literal integers
* 7688Kartik Agaram2021-02-061-1/+1
|
* 7687Kartik Agaram2021-02-051-0/+3
|
* 7686Kartik Agaram2021-02-041-2/+2
|
* 7685Kartik Agaram2021-02-032-739/+727
|
* 7684 - baremetal will have no mouseKartik Agaram2021-02-032-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I spent a week on trying to support it, and I am now past the five stages of grief. -- Important things I read https://web.archive.org/web/20040604041507/http://panda.cs.ndsu.nodak.edu/~achapwes/PICmicro/keyboard/atkeyboard.html https://web.archive.org/web/20040604043149/http://panda.cs.ndsu.nodak.edu/~achapwes/PICmicro/mouse/mouse.html https://wiki.osdev.org/index.php?title=Mouse_Input&oldid=23086#Waiting_to_Send_Bytes_to_Port_0x60_and_0x64 says command 0xa8 is optional SaniK: https://forum.osdev.org/viewtopic.php?t=10247 recommends command 0xa8 before setting Compaq Status byte Setting Compaq status byte before 0xa8: https://forum.osdev.org/viewtopic.php?f=1&t=19873 This thread also suggests that keeping reads from keyboard vs mouse straight is non-trivial. -- Where I got stuck Following SaniK's recipe doesn't seem to work. It seems like not sending the 0xa8 command gets us a little closer. I saw the mouse handler trigger, but it seems to not actually happen in response to mouse events (vector 0x74 in the interrupt descriptor table). -- Other options that may be worth considering USB mouse Serial mouse Implementing a PS/2 handler in SubX would require somehow referring to SubX labels in this file It seems clear that a mouse driver is complex enough to need a higher-level language than just hex bytes. But it's _not_ clear how to _explain_ a mouse driver. There's just a lot of random rules, historical anecdotes, just-so stories and sheer black magic here. I'm going to try to do without it all. Mu will be a keyboard-only computer for the foreseeable future.
* 7683Kartik Agaram2021-02-011-1/+1
|
* 7682Kartik Agaram2021-02-012-32/+20
|
* 7681Kartik Agaram2021-02-011-4/+3
|