diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-04-10 20:49:20 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-04-10 20:49:20 -0700 |
commit | a509279aea989b4c0f47d1e11965ed297a4d6587 (patch) | |
tree | 5e3fb59b00bc6fa7f586dd9fd1cffbbfbe8caf16 /shell/cell.mu | |
parent | 400574f956f8428785ecefe5536ebf5512f23408 (diff) | |
download | mu-a509279aea989b4c0f47d1e11965ed297a4d6587.tar.gz |
shell: start on support for fake keyboard
Diffstat (limited to 'shell/cell.mu')
-rw-r--r-- | shell/cell.mu | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/shell/cell.mu b/shell/cell.mu index 9dfe298b..6ca1fcb3 100644 --- a/shell/cell.mu +++ b/shell/cell.mu @@ -12,6 +12,8 @@ type cell { index-data: int # type 5: screen screen-data: (handle screen) + # type 6: keyboard + keyboard-data: (handle stream byte) # TODO: array, (associative) table, stream } @@ -148,3 +150,13 @@ fn clear-screen-cell _self-ah: (addr handle cell) { var screen/eax: (addr screen) <- lookup *screen-ah clear-screen screen } + +fn allocate-keyboard _out: (addr handle cell), capacity: int { + var out/eax: (addr handle cell) <- copy _out + allocate out + var out-addr/eax: (addr cell) <- lookup *out + var dest-ah/ecx: (addr handle stream byte) <- get out-addr, keyboard-data + populate-stream dest-ah, capacity + var type/ecx: (addr int) <- get out-addr, type + copy-to *type, 6/keyboard +} |