about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-06-15 08:59:36 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-06-15 08:59:36 -0700
commitb9fea696871aece599c4ec25ec01ee0c2c00513b (patch)
tree377b4346ba41b6ad6c66ad66123dae26d290550c
parentf99cd767a4a4eb400ebefcf45a7a9dab5137ec6a (diff)
downloadmu-b9fea696871aece599c4ec25ec01ee0c2c00513b.tar.gz
.
-rw-r--r--103grapheme.subx7
1 files changed, 4 insertions, 3 deletions
diff --git a/103grapheme.subx b/103grapheme.subx
index ac0cef95..a63e3098 100644
--- a/103grapheme.subx
+++ b/103grapheme.subx
@@ -19,7 +19,7 @@ draw-grapheme-on-real-screen:  # g: grapheme, x: int, y: int, color: int, backgr
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (draw-grapheme-on-screen-buffer *Video-memory-addr *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14) *(ebp+0x18) 0x400 0x300)
+    (draw-grapheme-on-screen-buffer *Video-memory-addr *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14) *(ebp+0x18) 0x80 0x30)
 $draw-grapheme-on-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -27,8 +27,6 @@ $draw-grapheme-on-real-screen:end:
     c3/return
 
 # 'buffer' here is not a valid Mu type: a naked address without a length.
-# 'x' and 'y' are in graphemes
-# 'screen-width' and 'screen-height' are in pixels
 draw-grapheme-on-screen-buffer:  # buffer: (addr byte), g: grapheme, x: int, y: int, color: int, background-color: int, screen-width: int, screen-height: int
     # . prologue
     55/push-ebp
@@ -39,6 +37,9 @@ draw-grapheme-on-screen-buffer:  # buffer: (addr byte), g: grapheme, x: int, y:
     52/push-edx
     53/push-ebx
     56/push-esi
+    # switch screen-width and screen-height from grapheme to pixel units
+    c1 4/subop/shift-left *(ebp+20) 3/imm8/log2-font-width
+    c1 4/subop/shift-left *(ebp+24) 4/imm8/log2-font-height
     # esi = g
     8b/-> *(ebp+0xc) 6/r32/esi
     # if (g >= 128) return  # characters beyond ASCII currently not supported