6720
This commit is contained in:
parent
e8ffaf29ce
commit
66daf3cc1f
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue