This commit is contained in:
Kartik Agaram 2020-08-22 10:10:54 -07:00
parent e8ffaf29ce
commit 66daf3cc1f
39 changed files with 106 additions and 106 deletions

View File

@ -6,7 +6,7 @@
#
# Press 'q' to quit. All other keys scroll down.
fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
# var file/esi: (addr buffered-file) = open args-on-stack[1] for reading {{{
var file/esi: (addr buffered-file) <- copy 0
{
@ -16,7 +16,7 @@ fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
# var filename/ecx: (addr array byte) = args-on-stack[1] {{{
var filename/ecx: (addr array byte) <- copy 0
{
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
var args/eax: (addr array addr array byte) <- copy args-on-stack
var tmp/eax: (addr addr array byte) <- index args, 1
filename <- copy *tmp
}

View File

@ -6,10 +6,10 @@
# $ echo $?
# 123
fn main _args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main _args: (addr array addr array byte) -> exit-status/ebx: int {
$main-body: {
# if no args, print a message and exit
var args/esi: (addr array (addr array byte)) <- copy _args
var args/esi: (addr array addr array byte) <- copy _args
var n/ecx: int <- length args
compare n, 1
{

View File

@ -7,8 +7,8 @@
# $ ./a.elf x
# abc
fn main _args: (addr array (addr array byte)) -> exit-status/ebx: int {
var args/eax: (addr array (addr array byte)) <- copy _args
fn main _args: (addr array addr array byte) -> exit-status/ebx: int {
var args/eax: (addr array addr array byte) <- copy _args
$main-body: {
var n/ecx: int <- length args
compare n, 1

View File

@ -3,7 +3,7 @@
# See translate_mu for how this file is used.
#
# Mu programs start at a function called 'main' with this signature:
# fn main args: (addr array (addr array byte)) -> exit-status/ebx: int
# fn main args: (addr array addr array byte) -> exit-status/ebx: int
# If your program doesn't need commandline arguments you can drop it:
# fn main -> exit-status/ebx: int
#

View File

@ -1,12 +1,12 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/ecx: (addr buffered-file) <- load-file filename
dump file
exit-status <- copy 0
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -3,7 +3,7 @@
# monospace font of a terminal window. So underscores and asterisks will both
# be bold.
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -152,8 +152,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,7 +1,7 @@
# The current organization doesn't really work for the next feature (section
# headings) so let's inline attribute-handling.
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -148,8 +148,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,6 +1,6 @@
# Now the trailing asterisk or underscore renders correctly, for starters.
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -153,8 +153,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,6 +1,6 @@
# Support more than two states.
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -154,8 +154,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -152,8 +152,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -3,7 +3,7 @@
# The state machine is getting out of control, and I notice old bugs like
# turning '*abc_' into bold text.
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -194,8 +194,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -19,7 +19,7 @@
# Then again, maybe I should just keep going and not try to be compatible with
# GitHub-Flavored Markdown. Require that new headings are also new paragraphs.
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -163,8 +163,8 @@ fn done-drawing? self: (addr screen-position-state) -> result/eax: boolean {
# self->rightcol >= self->ncols
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -99,8 +99,8 @@ fn render-header-line fs: (addr file-state), state: (addr screen-position-state)
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -26,8 +26,8 @@ fn render-normal fs: (addr file-state) {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -43,8 +43,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,12 +1,12 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/eax: (addr buffered-file) <- load-file filename
dump file
exit-status <- copy 0
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -43,8 +43,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -43,8 +43,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -43,8 +43,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -45,8 +45,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -108,8 +108,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -152,8 +152,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -240,8 +240,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -247,8 +247,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -249,8 +249,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
# initialize fs from args[1]
var filename/eax: (addr array byte) <- first-arg args
var file-state-storage: file-state
@ -259,8 +259,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,12 +1,12 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/eax: (addr buffered-file) <- load-file filename
dump file
exit-status <- copy 0
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/eax: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -58,8 +58,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/eax: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -60,8 +60,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/eax: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -71,8 +71,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -75,8 +75,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -91,8 +91,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

View File

@ -1,4 +1,4 @@
fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
fn main args: (addr array addr array byte) -> exit-status/ebx: int {
var filename/eax: (addr array byte) <- first-arg args
var file/esi: (addr buffered-file) <- load-file filename
enable-screen-grid-mode
@ -128,8 +128,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
}
}
fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var result/eax: (addr addr array byte) <- index args, 1
out <- copy *result
}

4
prototypes/tile/10.mu generated
View File

@ -14,8 +14,8 @@
# To run unit tests:
# $ ./a.elf test
fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var tmp/ecx: int <- length args
$main-body: {
# if (len(args) > 1 && args[1] == "test") run-tests()

4
prototypes/tile/11.mu generated
View File

@ -14,8 +14,8 @@
# To run unit tests:
# $ ./a.elf test
fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var tmp/ecx: int <- length args
$main-body: {
# if (len(args) > 1 && args[1] == "test") run-tests()

4
prototypes/tile/6.mu generated
View File

@ -13,8 +13,8 @@
# We also have tests now:
# $ ./a.elf test
fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var tmp/ecx: int <- length args
$main-body: {
# if (len(args) > 1 && args[1] == "test") run-tests()

4
prototypes/tile/7.mu generated
View File

@ -17,8 +17,8 @@
# To run unit tests:
# $ ./a.elf test
fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var tmp/ecx: int <- length args
$main-body: {
# if (len(args) > 1 && args[1] == "test") run-tests()

4
prototypes/tile/8.mu generated
View File

@ -17,8 +17,8 @@
# To run unit tests:
# $ ./a.elf test
fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var tmp/ecx: int <- length args
$main-body: {
# if (len(args) > 1 && args[1] == "test") run-tests()

4
prototypes/tile/9.mu generated
View File

@ -11,8 +11,8 @@
# To run unit tests:
# $ ./a.elf test
fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
var args/eax: (addr array (addr array byte)) <- copy args-on-stack
fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
var args/eax: (addr array addr array byte) <- copy args-on-stack
var tmp/ecx: int <- length args
$main-body: {
# if (len(args) > 1 && args[1] == "test") run-tests()