Convert some old code to current idioms.
This commit is contained in:
Kartik K. Agaram 2021-08-28 21:49:32 -07:00
parent 79e2569f1a
commit 2e00a9c288
4 changed files with 80 additions and 80 deletions

View File

@ -110,10 +110,10 @@ fn draw-grapheme _screen: (addr screen), g: grapheme, x: int, y: int, color: int
return
}
# fake screen
var idx/ecx: int <- screen-cell-index screen, x, y
var index/ecx: int <- screen-cell-index screen, x, y
var data-ah/eax: (addr handle array screen-cell) <- get screen, data
var data/eax: (addr array screen-cell) <- lookup *data-ah
var offset/ecx: (offset screen-cell) <- compute-offset data, idx
var offset/ecx: (offset screen-cell) <- compute-offset data, index
var dest-cell/ecx: (addr screen-cell) <- index data, offset
var dest-grapheme/eax: (addr grapheme) <- get dest-cell, data
var g2/edx: grapheme <- copy g
@ -333,8 +333,8 @@ fn fake-screen-empty? _screen: (addr screen) -> _/eax: boolean {
{
compare x, width
break-if->=
var idx/ecx: int <- pixel-index screen, x, y
var color-addr/ecx: (addr byte) <- index pixels, idx
var index/ecx: int <- pixel-index screen, x, y
var color-addr/ecx: (addr byte) <- index pixels, index
var color/ecx: byte <- copy-byte *color-addr
compare color, 0
{
@ -426,17 +426,17 @@ fn clear-rect-on-real-screen xmin: int, ymin: int, xmax: int, ymax: int, backgro
fn screen-grapheme-at _screen: (addr screen), x: int, y: int -> _/eax: grapheme {
var screen/esi: (addr screen) <- copy _screen
var idx/ecx: int <- screen-cell-index screen, x, y
var result/eax: grapheme <- screen-grapheme-at-idx screen, idx
var index/ecx: int <- screen-cell-index screen, x, y
var result/eax: grapheme <- screen-grapheme-at-index screen, index
return result
}
fn screen-grapheme-at-idx _screen: (addr screen), idx-on-stack: int -> _/eax: grapheme {
fn screen-grapheme-at-index _screen: (addr screen), _index: int -> _/eax: grapheme {
var screen/esi: (addr screen) <- copy _screen
var data-ah/eax: (addr handle array screen-cell) <- get screen, data
var data/eax: (addr array screen-cell) <- lookup *data-ah
var idx/ecx: int <- copy idx-on-stack
var offset/ecx: (offset screen-cell) <- compute-offset data, idx
var index/ecx: int <- copy _index
var offset/ecx: (offset screen-cell) <- compute-offset data, index
var cell/eax: (addr screen-cell) <- index data, offset
var src/eax: (addr grapheme) <- get cell, data
return *src
@ -444,17 +444,17 @@ fn screen-grapheme-at-idx _screen: (addr screen), idx-on-stack: int -> _/eax: gr
fn screen-color-at _screen: (addr screen), x: int, y: int -> _/eax: int {
var screen/esi: (addr screen) <- copy _screen
var idx/ecx: int <- screen-cell-index screen, x, y
var result/eax: int <- screen-color-at-idx screen, idx
var index/ecx: int <- screen-cell-index screen, x, y
var result/eax: int <- screen-color-at-index screen, index
return result
}
fn screen-color-at-idx _screen: (addr screen), idx-on-stack: int -> _/eax: int {
fn screen-color-at-index _screen: (addr screen), _index: int -> _/eax: int {
var screen/esi: (addr screen) <- copy _screen
var data-ah/eax: (addr handle array screen-cell) <- get screen, data
var data/eax: (addr array screen-cell) <- lookup *data-ah
var idx/ecx: int <- copy idx-on-stack
var offset/ecx: (offset screen-cell) <- compute-offset data, idx
var index/ecx: int <- copy _index
var offset/ecx: (offset screen-cell) <- compute-offset data, index
var cell/eax: (addr screen-cell) <- index data, offset
var src/eax: (addr int) <- get cell, color
var result/eax: int <- copy *src
@ -463,17 +463,17 @@ fn screen-color-at-idx _screen: (addr screen), idx-on-stack: int -> _/eax: int {
fn screen-background-color-at _screen: (addr screen), x: int, y: int -> _/eax: int {
var screen/esi: (addr screen) <- copy _screen
var idx/ecx: int <- screen-cell-index screen, x, y
var result/eax: int <- screen-background-color-at-idx screen, idx
var index/ecx: int <- screen-cell-index screen, x, y
var result/eax: int <- screen-background-color-at-index screen, index
return result
}
fn screen-background-color-at-idx _screen: (addr screen), idx-on-stack: int -> _/eax: int {
fn screen-background-color-at-index _screen: (addr screen), _index: int -> _/eax: int {
var screen/esi: (addr screen) <- copy _screen
var data-ah/eax: (addr handle array screen-cell) <- get screen, data
var data/eax: (addr array screen-cell) <- lookup *data-ah
var idx/ecx: int <- copy idx-on-stack
var offset/ecx: (offset screen-cell) <- compute-offset data, idx
var index/ecx: int <- copy _index
var offset/ecx: (offset screen-cell) <- compute-offset data, index
var cell/eax: (addr screen-cell) <- index data, offset
var src/eax: (addr int) <- get cell, background-color
var result/eax: int <- copy *src
@ -496,8 +496,8 @@ fn pixel screen: (addr screen), x: int, y: int, color: int {
break-if-!=
abort "pixel graphics not enabled for this screen"
}
var idx/ecx: int <- pixel-index screen, x, y
var dest/ecx: (addr byte) <- index pixels, idx
var index/ecx: int <- pixel-index screen, x, y
var dest/ecx: (addr byte) <- index pixels, index
var src/eax: byte <- copy-byte color
copy-byte-to *dest, src
}

View File

@ -8,11 +8,11 @@ fn check-screen-row screen: (addr screen), y: int, expected: (addr array byte),
check-screen-row-from screen, 0/x, y, expected, msg
}
fn check-screen-row-from screen-on-stack: (addr screen), x: int, y: int, expected: (addr array byte), msg: (addr array byte) {
var screen/esi: (addr screen) <- copy screen-on-stack
fn check-screen-row-from _screen: (addr screen), x: int, y: int, expected: (addr array byte), msg: (addr array byte) {
var screen/esi: (addr screen) <- copy _screen
var failure-count/edi: int <- copy 0
var idx/ecx: int <- screen-cell-index screen, x, y
# compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
var index/ecx: int <- screen-cell-index screen, x, y
# compare 'expected' with the screen contents starting at 'index', grapheme by grapheme
var e: (stream byte 0x100)
var e-addr/edx: (addr stream byte) <- address e
write e-addr, expected
@ -20,7 +20,7 @@ fn check-screen-row-from screen-on-stack: (addr screen), x: int, y: int, expecte
var done?/eax: boolean <- stream-empty? e-addr
compare done?, 0
break-if-!=
var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
var _g/eax: grapheme <- screen-grapheme-at-index screen, index
var g/ebx: grapheme <- copy _g
var expected-grapheme/eax: grapheme <- read-grapheme e-addr
# compare graphemes
@ -51,7 +51,7 @@ fn check-screen-row-from screen-on-stack: (addr screen), x: int, y: int, expecte
draw-text-wrapping-right-then-down-from-cursor-over-full-screen 0/screen, "'", 3/fg/cyan, 0/bg
move-cursor-to-left-margin-of-next-line 0/screen
}
idx <- increment
index <- increment
increment x
loop
}
@ -72,10 +72,10 @@ fn check-screen-row-in-color screen: (addr screen), fg: int, y: int, expected: (
check-screen-row-in-color-from screen, fg, y, 0/x, expected, msg
}
fn check-screen-row-in-color-from screen-on-stack: (addr screen), fg: int, y: int, x: int, expected: (addr array byte), msg: (addr array byte) {
var screen/esi: (addr screen) <- copy screen-on-stack
var idx/ecx: int <- screen-cell-index screen, x, y
# compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
fn check-screen-row-in-color-from _screen: (addr screen), fg: int, y: int, x: int, expected: (addr array byte), msg: (addr array byte) {
var screen/esi: (addr screen) <- copy _screen
var index/ecx: int <- screen-cell-index screen, x, y
# compare 'expected' with the screen contents starting at 'index', grapheme by grapheme
var e: (stream byte 0x100)
var e-addr/edx: (addr stream byte) <- address e
write e-addr, expected
@ -83,7 +83,7 @@ fn check-screen-row-in-color-from screen-on-stack: (addr screen), fg: int, y: in
var done?/eax: boolean <- stream-empty? e-addr
compare done?, 0
break-if-!=
var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
var _g/eax: grapheme <- screen-grapheme-at-index screen, index
var g/ebx: grapheme <- copy _g
var _expected-grapheme/eax: grapheme <- read-grapheme e-addr
var expected-grapheme/edi: grapheme <- copy _expected-grapheme
@ -99,7 +99,7 @@ fn check-screen-row-in-color-from screen-on-stack: (addr screen), fg: int, y: in
{
compare expected-grapheme, 0x20
break-if-!=
var color/eax: int <- screen-color-at-idx screen, idx
var color/eax: int <- screen-color-at-index screen, index
compare color, fg
break-if-!= $check-screen-row-in-color-from:compare-cells
}
@ -129,7 +129,7 @@ fn check-screen-row-in-color-from screen-on-stack: (addr screen), fg: int, y: in
move-cursor-to-left-margin-of-next-line 0/screen
}
$check-screen-row-in-color-from:compare-colors: {
var color/eax: int <- screen-color-at-idx screen, idx
var color/eax: int <- screen-color-at-index screen, index
compare fg, color
{
break-if-!=
@ -153,7 +153,7 @@ fn check-screen-row-in-color-from screen-on-stack: (addr screen), fg: int, y: in
move-cursor-to-left-margin-of-next-line 0/screen
}
}
idx <- increment
index <- increment
increment x
loop
}
@ -163,10 +163,10 @@ fn check-screen-row-in-background-color screen: (addr screen), bg: int, y: int,
check-screen-row-in-background-color-from screen, bg, y, 0/x, expected, msg
}
fn check-screen-row-in-background-color-from screen-on-stack: (addr screen), bg: int, y: int, x: int, expected: (addr array byte), msg: (addr array byte) {
var screen/esi: (addr screen) <- copy screen-on-stack
var idx/ecx: int <- screen-cell-index screen, x, y
# compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
fn check-screen-row-in-background-color-from _screen: (addr screen), bg: int, y: int, x: int, expected: (addr array byte), msg: (addr array byte) {
var screen/esi: (addr screen) <- copy _screen
var index/ecx: int <- screen-cell-index screen, x, y
# compare 'expected' with the screen contents starting at 'index', grapheme by grapheme
var e: (stream byte 0x100)
var e-addr/edx: (addr stream byte) <- address e
write e-addr, expected
@ -174,7 +174,7 @@ fn check-screen-row-in-background-color-from screen-on-stack: (addr screen), bg:
var done?/eax: boolean <- stream-empty? e-addr
compare done?, 0
break-if-!=
var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
var _g/eax: grapheme <- screen-grapheme-at-index screen, index
var g/ebx: grapheme <- copy _g
var _expected-grapheme/eax: grapheme <- read-grapheme e-addr
var expected-grapheme/edi: grapheme <- copy _expected-grapheme
@ -190,7 +190,7 @@ fn check-screen-row-in-background-color-from screen-on-stack: (addr screen), bg:
{
compare expected-grapheme, 0x20
break-if-!=
var background-color/eax: int <- screen-background-color-at-idx screen, idx
var background-color/eax: int <- screen-background-color-at-index screen, index
compare background-color, bg
break-if-!= $check-screen-row-in-background-color-from:compare-cells
}
@ -221,7 +221,7 @@ fn check-screen-row-in-background-color-from screen-on-stack: (addr screen), bg:
break $check-screen-row-in-background-color-from:compare-graphemes
}
$check-screen-row-in-background-color-from:compare-background-colors: {
var background-color/eax: int <- screen-background-color-at-idx screen, idx
var background-color/eax: int <- screen-background-color-at-index screen, index
compare bg, background-color
{
break-if-!=
@ -245,7 +245,7 @@ fn check-screen-row-in-background-color-from screen-on-stack: (addr screen), bg:
move-cursor-to-left-margin-of-next-line 0/screen
}
}
idx <- increment
index <- increment
increment x
loop
}
@ -258,10 +258,10 @@ fn check-background-color-in-screen-row screen: (addr screen), bg: int, y: int,
check-background-color-in-screen-row-from screen, bg, y, 0/x, expected-bitmap, msg
}
fn check-background-color-in-screen-row-from screen-on-stack: (addr screen), bg: int, y: int, x: int, expected-bitmap: (addr array byte), msg: (addr array byte) {
var screen/esi: (addr screen) <- copy screen-on-stack
fn check-background-color-in-screen-row-from _screen: (addr screen), bg: int, y: int, x: int, expected-bitmap: (addr array byte), msg: (addr array byte) {
var screen/esi: (addr screen) <- copy _screen
var failure-count: int
var idx/ecx: int <- screen-cell-index screen, x, y
var index/ecx: int <- screen-cell-index screen, x, y
# compare background color where 'expected-bitmap' is a non-space
var e: (stream byte 0x100)
var e-addr/edx: (addr stream byte) <- address e
@ -273,7 +273,7 @@ fn check-background-color-in-screen-row-from screen-on-stack: (addr screen), bg:
var _expected-bit/eax: grapheme <- read-grapheme e-addr
var expected-bit/edi: grapheme <- copy _expected-bit
$check-background-color-in-screen-row-from:compare-cells: {
var background-color/eax: int <- screen-background-color-at-idx screen, idx
var background-color/eax: int <- screen-background-color-at-index screen, index
# if expected-bit is space, assert that background is NOT bg
compare expected-bit, 0x20
{
@ -306,7 +306,7 @@ fn check-background-color-in-screen-row-from screen-on-stack: (addr screen), bg:
draw-int32-hex-wrapping-right-then-down-from-cursor-over-full-screen 0/screen, background-color, 3/fg/cyan, 0/bg
move-cursor-to-left-margin-of-next-line 0/screen
}
idx <- increment
index <- increment
increment x
loop
}
@ -322,8 +322,8 @@ fn check-background-color-in-screen-row-from screen-on-stack: (addr screen), bg:
}
fn test-draw-single-grapheme {
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var _screen: screen
var screen/esi: (addr screen) <- address _screen
initialize-screen screen, 5, 4, 0/no-pixel-graphics
draw-code-point screen, 0x61/a, 0/x, 0/y, 1/fg, 2/bg
check-screen-row screen, 0/y, "a", "F - test-draw-single-grapheme" # top-left corner of the screen
@ -333,8 +333,8 @@ fn test-draw-single-grapheme {
}
fn test-draw-multiple-graphemes {
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var _screen: screen
var screen/esi: (addr screen) <- address _screen
initialize-screen screen, 0x10/rows, 4/cols, 0/no-pixel-graphics
draw-text-wrapping-right-then-down-from-cursor-over-full-screen screen, "Hello, 世界", 1/fg, 2/bg
check-screen-row screen, 0/y, "Hello, 世界", "F - test-draw-multiple-graphemes"

View File

@ -205,8 +205,8 @@ fn test-render-grapheme-stack {
g <- copy 0x63/c
push-grapheme-stack gs, g
# setup: screen
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/esi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-stack-from-bottom screen, gs, 0/x, 0/y, 0/no-highlight-matching-open-paren, 0/open-paren-depth
@ -237,8 +237,8 @@ fn test-render-grapheme-stack-while-highlighting-matching-close-paren {
g <- copy 0x28/open-paren
push-grapheme-stack gs, g
# setup: screen
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/esi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-stack-from-top screen, gs, 0/x, 2/y, 1/cursor=true
@ -271,8 +271,8 @@ fn test-render-grapheme-stack-while-highlighting-matching-close-paren-2 {
g <- copy 0x28/open-paren
push-grapheme-stack gs, g
# setup: screen
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/esi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-stack-from-top screen, gs, 0/x, 2/y, 1/cursor=true
@ -293,8 +293,8 @@ fn test-render-grapheme-stack-while-highlighting-matching-open-paren-with-close-
g <- copy 0x29/close-paren
push-grapheme-stack gs, g
# setup: screen
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/esi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-stack-from-bottom screen, gs, 0/x, 2/y, 1/highlight-matching-open-paren, 1/open-paren-depth
@ -320,8 +320,8 @@ fn test-render-grapheme-stack-while-highlighting-matching-open-paren-with-close-
g <- copy 0x29/close-paren
push-grapheme-stack gs, g
# setup: screen
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/esi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-stack-from-bottom screen, gs, 0/x, 2/y, 1/highlight-matching-open-paren, 1/open-paren-depth
@ -339,8 +339,8 @@ fn test-render-grapheme-stack-while-highlighting-matching-open-paren {
g <- copy 0x62/b
push-grapheme-stack gs, g
# setup: screen
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/esi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-stack-from-bottom screen, gs, 0/x, 2/y, 1/highlight-matching-open-paren, 0/open-paren-depth
@ -364,8 +364,8 @@ fn test-render-grapheme-stack-while-highlighting-matching-open-paren-2 {
g <- copy 0x29/close-paren
push-grapheme-stack gs, g
# setup: screen
var screen-on-stack: screen
var screen/esi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/esi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-stack-from-bottom screen, gs, 0/x, 2/y, 1/highlight-matching-open-paren, 0/open-paren-depth

View File

@ -818,8 +818,8 @@ fn test-render-gap-buffer-without-cursor {
var gap/esi: (addr gap-buffer) <- address gap-storage
initialize-gap-buffer-with gap, "abc"
# setup: screen
var screen-on-stack: screen
var screen/edi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/edi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-gap-buffer screen, gap, 0/x, 0/y, 0/no-cursor, 3/fg, 0xc5/bg=blue-bg
@ -836,8 +836,8 @@ fn test-render-gap-buffer-with-cursor-at-end {
initialize-gap-buffer-with gap, "abc"
gap-to-end gap
# setup: screen
var screen-on-stack: screen
var screen/edi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/edi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-gap-buffer screen, gap, 0/x, 0/y, 1/show-cursor, 3/fg, 0xc5/bg=blue-bg
@ -856,8 +856,8 @@ fn test-render-gap-buffer-with-cursor-in-middle {
gap-to-end gap
var dummy/eax: grapheme <- gap-left gap
# setup: screen
var screen-on-stack: screen
var screen/edi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/edi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-gap-buffer screen, gap, 0/x, 0/y, 1/show-cursor, 3/fg, 0xc5/bg=blue-bg
@ -873,8 +873,8 @@ fn test-render-gap-buffer-with-cursor-at-start {
initialize-gap-buffer-with gap, "abc"
gap-to-start gap
# setup: screen
var screen-on-stack: screen
var screen/edi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/edi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-gap-buffer screen, gap, 0/x, 0/y, 1/show-cursor, 3/fg, 0xc5/bg=blue-bg
@ -890,8 +890,8 @@ fn test-render-gap-buffer-highlight-matching-close-paren {
initialize-gap-buffer-with gap, "(a)"
gap-to-start gap
# setup: screen
var screen-on-stack: screen
var screen/edi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/edi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-gap-buffer screen, gap, 0/x, 0/y, 1/show-cursor, 3/fg, 0xc5/bg=blue-bg
@ -908,8 +908,8 @@ fn test-render-gap-buffer-highlight-matching-open-paren {
gap-to-end gap
var dummy/eax: grapheme <- gap-left gap
# setup: screen
var screen-on-stack: screen
var screen/edi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/edi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-gap-buffer screen, gap, 0/x, 0/y, 1/show-cursor, 3/fg, 0xc5/bg=blue-bg
@ -925,8 +925,8 @@ fn test-render-gap-buffer-highlight-matching-open-paren-of-end {
initialize-gap-buffer-with gap, "(a)"
gap-to-end gap
# setup: screen
var screen-on-stack: screen
var screen/edi: (addr screen) <- address screen-on-stack
var screen-storage: screen
var screen/edi: (addr screen) <- address screen-storage
initialize-screen screen, 5, 4, 0/no-pixel-graphics
#
var x/eax: int <- render-gap-buffer screen, gap, 0/x, 0/y, 1/show-cursor, 3/fg, 0xc5/bg=blue-bg