From 619dc31dfc565a2f8d76b6ab701b64394506f5ae Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Wed, 20 Oct 2021 11:51:24 -0700 Subject: [PATCH] sketching out a slow tutorial --- tutorial/add2.mu | 19 ++++ tutorial/c2f.mu | 19 ++++ tutorial/converter.mu | 138 +++++++++++++++++++++++++++ tutorial/converter2.mu | 161 +++++++++++++++++++++++++++++++ tutorial/counter.mu | 35 +++++++ tutorial/index.md | 169 +++++++++++++++++++++++++++++++++ tutorial/task1.png | Bin 0 -> 10546 bytes tutorial/task2.mu | 7 ++ tutorial/task2.png | Bin 0 -> 10513 bytes tutorial/task3.png | Bin 0 -> 94644 bytes tutorial/task4-calculator.html | 15 +++ tutorial/task4-initial.png | Bin 0 -> 10950 bytes tutorial/task4-solution.mu | 15 +++ tutorial/task4.mu | 15 +++ tutorial/vimrc.vim | 2 + 15 files changed, 595 insertions(+) create mode 100644 tutorial/add2.mu create mode 100644 tutorial/c2f.mu create mode 100644 tutorial/converter.mu create mode 100644 tutorial/converter2.mu create mode 100644 tutorial/counter.mu create mode 100644 tutorial/index.md create mode 100644 tutorial/task1.png create mode 100644 tutorial/task2.mu create mode 100644 tutorial/task2.png create mode 100644 tutorial/task3.png create mode 100644 tutorial/task4-calculator.html create mode 100644 tutorial/task4-initial.png create mode 100644 tutorial/task4-solution.mu create mode 100644 tutorial/task4.mu create mode 100644 tutorial/vimrc.vim diff --git a/tutorial/add2.mu b/tutorial/add2.mu new file mode 100644 index 00000000..250d72ca --- /dev/null +++ b/tutorial/add2.mu @@ -0,0 +1,19 @@ +fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) { + var result/eax: int <- do-add 3, 4 + draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen screen, result, 3/fg=cyan 0/bg +} + +fn do-add a: int, b: int -> _/eax: int { + var result/eax: int <- copy a + result <- add b + return result +} + +fn test-do-add { + var observed/eax: int <- do-add 0, 0 + check-ints-equal observed, 0, "F - 0+0" + observed <- do-add 3, 0 + check-ints-equal observed, 3, "F - 3+0" + observed <- do-add 3, 2 + check-ints-equal observed, 5, "F - 3+2" +} diff --git a/tutorial/c2f.mu b/tutorial/c2f.mu new file mode 100644 index 00000000..250d72ca --- /dev/null +++ b/tutorial/c2f.mu @@ -0,0 +1,19 @@ +fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) { + var result/eax: int <- do-add 3, 4 + draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen screen, result, 3/fg=cyan 0/bg +} + +fn do-add a: int, b: int -> _/eax: int { + var result/eax: int <- copy a + result <- add b + return result +} + +fn test-do-add { + var observed/eax: int <- do-add 0, 0 + check-ints-equal observed, 0, "F - 0+0" + observed <- do-add 3, 0 + check-ints-equal observed, 3, "F - 3+0" + observed <- do-add 3, 2 + check-ints-equal observed, 5, "F - 3+2" +} diff --git a/tutorial/converter.mu b/tutorial/converter.mu new file mode 100644 index 00000000..a8aa26e3 --- /dev/null +++ b/tutorial/converter.mu @@ -0,0 +1,138 @@ +# Temperature Converter app +# https://eugenkiss.github.io/7guis/tasks/#temp +# +# To build: +# $ ./translate converter.mu +# To run: +# $ qemu-system-i386 code.img + +# todo: +# less duplication +# error checking for input without hard-aborting + +fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) { + # celsius numeric representation + var zero: float + var celsius/xmm1: float <- fahrenheit-to-celsius zero + # celsius string representation + var s-storage: (stream byte 0x10) + var s/ecx: (addr stream byte) <- address s-storage + write-float-decimal-approximate s, celsius, 2/decimal-places + # celsius input/display + var celsius-input-storage: gap-buffer + var celsius-input/esi: (addr gap-buffer) <- address celsius-input-storage + initialize-gap-buffer celsius-input, 8/capacity + load-gap-buffer-from-stream celsius-input, s + var cursor-in-celsius?/edx: boolean <- copy 0xffffffff/true + # fahrenheit numeric representation + var fahrenheit/xmm2: float <- celsius-to-fahrenheit celsius + # fahrenheit string representation + clear-stream s + write-float-decimal-approximate s, fahrenheit, 2/decimal-places + # fahrenheit input/display + var fahrenheit-input-storage: gap-buffer + var fahrenheit-input/edi: (addr gap-buffer) <- address fahrenheit-input-storage + initialize-gap-buffer fahrenheit-input, 8/capacity + load-gap-buffer-from-stream fahrenheit-input, s + var cursor-in-fahrenheit?/ebx: boolean <- copy 0/false # exactly one cursor boolean must be true at any time + # widget title + set-cursor-position screen, 0x1f/x 0xe/y + draw-text-rightward-from-cursor-over-full-screen screen, " Converter ", 0xf/fg 0x16/bg + # event loop + { + # draw current state to screen + clear-rect screen, 0x1f/xmin 0xf/ymin, 0x45/xmax 0x14/ymax, 0xc5/color + var x/eax: int <- render-gap-buffer screen, celsius-input, 0x20/x 0x10/y, cursor-in-celsius?, 7/fg 0/bg + x <- draw-text-rightward screen, " celsius = ", x, 0x45/xmax, 0x10/y, 7/fg 0xc5/bg + x <- render-gap-buffer screen, fahrenheit-input, x 0x10/y, cursor-in-fahrenheit?, 7/fg 0/bg + x <- draw-text-rightward screen, " fahrenheit", x, 0x45/xmax, 0x10/y, 7/fg 0xc5/bg + # render a menu bar + set-cursor-position screen, 0x21/x 0x12/y + draw-text-rightward-from-cursor-over-full-screen screen, " tab ", 0/fg 0x5c/bg=highlight + draw-text-rightward-from-cursor-over-full-screen screen, " switch sides ", 7/fg 0xc5/bg + draw-text-rightward-from-cursor-over-full-screen screen, " enter ", 0/fg 0x5c/bg=highlight + draw-text-rightward-from-cursor-over-full-screen screen, " convert ", 7/fg 0xc5/bg + # process a single keystroke + $main:input: { + var key/eax: byte <- read-key keyboard + var key/eax: grapheme <- copy key + compare key, 0 + loop-if-= + # tab = switch cursor between input areas + compare key, 9/tab + { + break-if-!= + cursor-in-celsius? <- not + cursor-in-fahrenheit? <- not + break $main:input + } + # enter = convert in appropriate direction + compare key, 0xa/newline + { + break-if-!= + { + compare cursor-in-celsius?, 0/false + break-if-= + clear-stream s + emit-gap-buffer celsius-input, s + celsius <- parse-float-decimal s + fahrenheit <- celsius-to-fahrenheit celsius + clear-stream s + write-float-decimal-approximate s, fahrenheit, 2/decimal-places + clear-gap-buffer fahrenheit-input + load-gap-buffer-from-stream fahrenheit-input, s + } + { + compare cursor-in-fahrenheit?, 0/false + break-if-= + clear-stream s + emit-gap-buffer fahrenheit-input, s + { + var tmp/xmm1: float <- parse-float-decimal s + fahrenheit <- copy tmp + } + celsius <- fahrenheit-to-celsius fahrenheit + clear-stream s + write-float-decimal-approximate s, celsius, 2/decimal-places + clear-gap-buffer celsius-input + load-gap-buffer-from-stream celsius-input, s + } + break $main:input + } + # otherwise pass key to appropriate input area + compare cursor-in-celsius?, 0/false + { + break-if-= + edit-gap-buffer celsius-input, key + break $main:input + } + compare cursor-in-fahrenheit?, 0/false + { + break-if-= + edit-gap-buffer fahrenheit-input, key + break $main:input + } + } + loop + } +} + +fn fahrenheit-to-celsius f: float -> _/xmm1: float { + var result/xmm1: float <- copy f + var thirty-two/eax: int <- copy 0x20 + var thirty-two-f/xmm0: float <- convert thirty-two + result <- subtract thirty-two-f + var factor/xmm0: float <- rational 5, 9 + result <- multiply factor + return result +} + +fn celsius-to-fahrenheit c: float -> _/xmm2: float { + var result/xmm1: float <- copy c + var factor/xmm0: float <- rational 9, 5 + result <- multiply factor + var thirty-two/eax: int <- copy 0x20 + var thirty-two-f/xmm0: float <- convert thirty-two + result <- add thirty-two-f + return result +} diff --git a/tutorial/converter2.mu b/tutorial/converter2.mu new file mode 100644 index 00000000..c5dde9f5 --- /dev/null +++ b/tutorial/converter2.mu @@ -0,0 +1,161 @@ +# Temperature Converter app +# https://eugenkiss.github.io/7guis/tasks/#temp +# +# To build: +# $ ./translate converter2.mu +# To run: +# $ qemu-system-i386 code.img + +# todo: +# error checking for input without hard-aborting + +fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) { + # imgui approach + forever { + number-input fahrenheit, cursor-in-fahrenheit? + number-input celsius, cursor-in-celsius? + if (menu-key 9/tab "Tab" "switch sides") { # requires non-blocking input + cursor-in-celsius? <- not + cursor-in-fahrenheit? <- not + } + if (menu-key 0xa/newline "Enter" "convert") { + if cursor-in-fahrenheit + celsius = fahrenheit-to-celsius fahrenheit + else + fahrenheit = celsius-to-fahrenheit celsius + } + } + # celsius numeric representation + var zero: float + var celsius/xmm1: float <- fahrenheit-to-celsius zero + # celsius input/display + var celsius-input-storage: gap-buffer + var celsius-input/esi: (addr gap-buffer) <- address celsius-input-storage + initialize-gap-buffer celsius-input, 8/capacity + value-to-input celsius, celsius-input + # fahrenheit numeric representation + var fahrenheit/xmm2: float <- celsius-to-fahrenheit celsius + # fahrenheit input/display + var fahrenheit-input-storage: gap-buffer + var fahrenheit-input/edi: (addr gap-buffer) <- address fahrenheit-input-storage + initialize-gap-buffer fahrenheit-input, 8/capacity + value-to-input fahrenheit, fahrenheit-input + # cursor toggle + var cursor-in-celsius?/edx: boolean <- copy 0xffffffff/true + # + render-title screen + # event loop + { + # render + render-state celsius-input, fahrenheit-input, cursor-in-celsius? + render-menu-bar screen + # process a single keystroke + $main:input: { + var key/eax: byte <- read-key keyboard + var key/eax: grapheme <- copy key + compare key, 0 + loop-if-= + # tab = switch cursor between input areas + compare key, 9/tab + { + break-if-!= + cursor-in-celsius? <- not + break $main:input + } + # enter = convert in appropriate direction + compare key, 0xa/newline + { + break-if-!= + { + compare cursor-in-celsius?, 0/false + break-if-= + var tmp/xmm0: float <- input-to-value celsius-input + celsius <- copy tmp + fahrenheit <- celsius-to-fahrenheit celsius + value-to-input fahrenheit, fahrenheit-input + break $main:input + } + var tmp/xmm0: float <- input-to-value fahrenheit-input + fahrenheit <- copy tmp + celsius <- fahrenheit-to-celsius fahrenheit + value-to-input celsius, celsius-input + break $main:input + } + # otherwise pass key to appropriate input area + compare cursor-in-celsius?, 0/false + { + break-if-= + edit-gap-buffer celsius-input, key + break $main:input + } + edit-gap-buffer fahrenheit-input, key + } + loop + } +} + +# business logic + +fn fahrenheit-to-celsius f: float -> _/xmm1: float { + var result/xmm1: float <- copy f + var thirty-two/eax: int <- copy 0x20 + var thirty-two-f/xmm0: float <- convert thirty-two + result <- subtract thirty-two-f + var factor/xmm0: float <- rational 5, 9 + result <- multiply factor + return result +} + +fn celsius-to-fahrenheit c: float -> _/xmm2: float { + var result/xmm1: float <- copy c + var factor/xmm0: float <- rational 9, 5 + result <- multiply factor + var thirty-two/eax: int <- copy 0x20 + var thirty-two-f/xmm0: float <- convert thirty-two + result <- add thirty-two-f + return result +} + +# helpers for UI + +fn input-to-value in: (addr gap-buffer) -> _/xmm0: float { + var s-storage: (stream byte 0x10) + var s/ecx: (addr stream byte) <- address s-storage + emit-gap-buffer in, s + var result/xmm1: float <- parse-float-decimal s + return result +} + +fn value-to-input in: float, out: (addr gap-buffer) { + var s-storage: (stream byte 0x10) + var s/ecx: (addr stream byte) <- address s-storage + write-float-decimal-approximate s, in, 2/decimal-places + clear-gap-buffer out + load-gap-buffer-from-stream out, s +} + +# helpers for rendering to screen +# magic constants here need to be consistent between functions + +fn render-title screen: (addr screen) { + set-cursor-position screen, 0x1f/x 0xe/y + draw-text-rightward-from-cursor-over-full-screen screen, " Converter ", 0xf/fg 0x16/bg +} + +fn render-state screen: (addr screen), c: (addr gap-buffer), f: (addr gap-buffer), cursor-in-c?: boolean { + clear-rect screen, 0x1f/xmin 0xf/ymin, 0x45/xmax 0x14/ymax, 0xc5/color + var x/eax: int <- render-gap-buffer screen, c, 0x20/x 0x10/y, cursor-in-c?, 7/fg 0/bg + x <- draw-text-rightward screen, " celsius = ", x, 0x45/xmax, 0x10/y, 7/fg 0xc5/bg + var cursor-in-f?/ecx: boolean <- copy cursor-in-c? + cursor-in-f? <- not + x <- render-gap-buffer screen, f, x 0x10/y, cursor-in-f?, 7/fg 0/bg + x <- draw-text-rightward screen, " fahrenheit", x, 0x45/xmax, 0x10/y, 7/fg 0xc5/bg +} + +fn render-menu-bar screen: (addr screen) { + set-cursor-position screen, 0x21/x 0x12/y + draw-text-rightward-from-cursor-over-full-screen screen, " tab ", 0/fg 0x5c/bg=highlight + draw-text-rightward-from-cursor-over-full-screen screen, " switch sides ", 7/fg 0xc5/bg + draw-text-rightward-from-cursor-over-full-screen screen, " enter ", 0/fg 0x5c/bg=highlight + draw-text-rightward-from-cursor-over-full-screen screen, " convert ", 7/fg 0xc5/bg +} diff --git a/tutorial/counter.mu b/tutorial/counter.mu new file mode 100644 index 00000000..b1f3cc42 --- /dev/null +++ b/tutorial/counter.mu @@ -0,0 +1,35 @@ +# Counter app +# https://eugenkiss.github.io/7guis/tasks/#counter +# +# To build: +# $ ./translate counter.mu +# To run: +# $ qemu-system-i386 code.img + +fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) { + var count/ecx: int <- copy 0 + # widget title + set-cursor-position screen, 0x1f/x 0xe/y + draw-text-rightward-from-cursor-over-full-screen screen, " Counter ", 0xf/fg 0x16/bg + # event loop + { + # draw current state to screen + clear-rect screen, 0x1f/xmin 0xf/ymin, 0x40/xmax 0x14/ymax, 0xc5/color + set-cursor-position screen, 0x20/x 0x10/y + draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen screen, count, 7/fg 0xc5/bg + # render a menu bar + set-cursor-position screen, 0x24/x 0x12/y + draw-text-rightward-from-cursor-over-full-screen screen, " enter ", 0/fg 0x5c/bg=highlight + draw-text-rightward-from-cursor-over-full-screen screen, " increment ", 7/fg 0xc5/bg + # process a single keystroke + { + var key/eax: byte <- read-key keyboard + compare key, 0 + loop-if-= + compare key, 0xa/newline + break-if-!= + count <- increment + } + loop + } +} diff --git a/tutorial/index.md b/tutorial/index.md new file mode 100644 index 00000000..9cbc5e9f --- /dev/null +++ b/tutorial/index.md @@ -0,0 +1,169 @@ +# A slow tour through Mu software on x86 computers + +[Mu](https://github.com/akkartik/mu) shrinks all the software in a computer +until it can (in principle) fit in a single head. Sensible error messages with +as little code as possible, starting all the way from your (x86) processor's +instruction set. Everything easy to change to your needs +([habitable](http://akkartik.name/post/habitability)), everything easy to +check up on ([auditable](http://akkartik.name/post/neighborhood)). + +This page is a guided tour through Mu's Readme and reference documentation. +We'll start out really slow and gradually accelerate as we build up skills. By +the end of it all, I hope you'll be able to program your processor to run some +small graphical programs. The programs will only use a small subset of your +computer's capabilities; there's still a lot I don't know and therefore cannot +teach. However, the programs will run on a _real_ processor without needing +any other intermediary software. + +_Prerequisites_ + +You will need: + +* A computer with an x86 processor running Linux. We're going to slowly escape + Linux, but we'll need it at the start. Mu works on other platforms, but be + warned that things will be _much_ (~20x) slower. +* Some fluency in typing commands at the terminal and interpreting their + output. +* Fluency with some text editor. Things like undo, copying and pasting text, + and saving work in files. A little experience programming in _some_ language + is also handy. +* [Git](https://git-scm.com) for version control. +* [QEMU](https://www.qemu.org) for emulating a processor without Linux. +* Basic knowledge of number bases, and the difference between decimal and + hexadecimal numbers. + +If you have trouble with any of this, [I'm always nearby and available to +answer questions](http://akkartik.name/contact). The prerequisites are just +things I haven't figured out how to explain yet. In particular, I want this +page to be accessible to people who are in the process of learning +programming, but I'm sure it isn't good enough yet for that. Ask me questions +and help me improve it. + +# Task 1: getting started + +Open a terminal and run the following commands to prepare Mu on your computer: + +``` +git clone https://github.com/akkartik/mu +cd mu +``` + +Run a small program to start: + +``` +./translate apps/ex5.mu +qemu-system-i386 code.img +``` + +If you aren't on Linux, the command for creating `code.img` will be slightly +different: + +``` +./translate_emulated apps/ex5.mu +qemu-system-i386 code.img +``` + +Either way, you should see this: + +screenshot of hello world on the Mu computer + +If you have any trouble at this point, don't waste _any_ time thinking about +it. Just [get in touch](http://akkartik.name/contact). + +(You can look at `apps/ex5.mu` at this point if you like. It's just a few +lines long. But don't worry if it doesn't make much sense.) + +# Task 2: running tests + +Here's a new program to run: + +``` +./translate tutorial/task2.mu +qemu-system-i386 code.img +``` + +(As before, I'll leave you to substitute `translate` with `translate_emulated` +if you're not on Linux.) + +This time the screen will look like this: + +screenshot of failing test on the Mu computer + +Each of the dots is a _test_, a little self-contained and automated program +run with an expected result. Mu comes with a lot of tests, and it always runs +all tests before it runs any program. You may have missed the dots when you +ran Task 1 because there were no failures. They were printed on the screen and +then immediately erased. In Task 2, however, we've deliberately included a +failing test. When any tests fail, Mu will immediately stop, showing you +messages from failing tests and implicitly asking you to first fix them. + +(Don't worry just yet about what the message in the middle of all the dots means.) + +# Task 3: configure your text editor + +So far we haven't used a text editor yet, but we will now be starting to do +so. Before we do, it's worth spending a little bit of time setting your +preferred editor up to be a little more ergonomic. Mu comes with _syntax +highlighting_ settings for a few common text editors in the `editor/` +sub-directory. If you don't see your text editor there, or if you don't know +what to do with those files, [get in touch!](http://akkartik.name/contact) +Here's what my editor (Vim) looks like with these settings on the program of +Task 1: + +Vim text editor rendering some colors in a Mu program + +It's particularly useful to highlight _comments_ which the computer ignores +(everything on a line after a `#` character) and _strings_ within `""` double +quotes. + +# Task 4: your first Mu statement + +Mu is a statement-oriented language. Read the first section of the [Mu syntax +description](https://github.com/akkartik/mu/blob/main/mu.md) to learn a little +bit about it. + +Here's a skeleton of a Mu function that's missing a single statement. + +``` +fn the-answer -> _/eax: int { + var result/eax: int <- copy 0 + # insert your statement below { + + # } + return result +} +``` + +Try running it now: +``` +./translate tutorial/task4.mu +qemu-system-i386 code.img +``` + +(As before, I'll leave you to substitute `translate` with `translate_emulated` +if you're not on Linux.) + +You should see a failing test that looks something like this: + +screenshot of the initial (failing) state of task 4 + +Open `tutorial/task4.mu` in your text editor. Think about how to add a line +between the `{}` lines to make `the-answer` return 42. Rerun the above +commands. You'll know you got it right all the tests pass, i.e. when the rows +of dots and text above are replaced by an empty screen. + +Don't be afraid to run the above commands over and over again as you try out +different solutions. Here's a way to run them together so they're easy to +repeat. + +``` +./translate tutorial/task4.mu && qemu-system-i386 code.img +``` + +In programming there is no penalty for making mistakes, and once you arrive at +the correct solution you have it forever. As always, [feel free to ping me and +ask questions or share your experience](http://akkartik.name/contact). + +One gotcha to keep in mind is that numbers in Mu must always be in hexadecimal +notation, starting with `0x`. Use a calculator on your computer or phone to +convert 42 to hexadecimal, or [this page on your web browser](http://akkartik.github.io/mu/tutorial/task4-calculator.html). diff --git a/tutorial/task1.png b/tutorial/task1.png new file mode 100644 index 0000000000000000000000000000000000000000..0009990f44c390084af391f051e591d54b618023 GIT binary patch literal 10546 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 z

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 NWd#lSV%euJ{ufuSo6i6M literal 0 HcmV?d00001 diff --git a/tutorial/task4-calculator.html b/tutorial/task4-calculator.html new file mode 100644 index 00000000..dca1190c --- /dev/null +++ b/tutorial/task4-calculator.html @@ -0,0 +1,15 @@ + + +

+ = + + diff --git a/tutorial/task4-initial.png b/tutorial/task4-initial.png new file mode 100644 index 0000000000000000000000000000000000000000..99b5514ae522f5fcfcf1f2f826bd731688536168 GIT binary patch literal 10950 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 Bg@XV9 literal 0 HcmV?d00001 diff --git a/tutorial/task4-solution.mu b/tutorial/task4-solution.mu new file mode 100644 index 00000000..060b7123 --- /dev/null +++ b/tutorial/task4-solution.mu @@ -0,0 +1,15 @@ +fn the-answer -> _/eax: int { + var result/eax: int <- copy 0 + # insert your statement below { + result <- copy 0x2a + # } + return result +} + +fn test-the-answer { + var result/eax: int <- the-answer + check-ints-equal result, 0x2a, "F - the-answer should return 42, but didn't." +} + +fn main { +} diff --git a/tutorial/task4.mu b/tutorial/task4.mu new file mode 100644 index 00000000..ca8da8f4 --- /dev/null +++ b/tutorial/task4.mu @@ -0,0 +1,15 @@ +fn the-answer -> _/eax: int { + var result/eax: int <- copy 0 + # insert your statement below { + + # } + return result +} + +fn test-the-answer { + var result/eax: int <- the-answer + check-ints-equal result, 0x2a, "F - the-answer should return 42, but didn't." +} + +fn main { +} diff --git a/tutorial/vimrc.vim b/tutorial/vimrc.vim new file mode 100644 index 00000000..348fe364 --- /dev/null +++ b/tutorial/vimrc.vim @@ -0,0 +1,2 @@ +" when opening files in this directory, load vimrc from cwd (top-level) +source vimrc.vim