about summary refs log tree commit diff stats
path: root/103grapheme.subx
diff options
context:
space:
mode:
Diffstat (limited to '103grapheme.subx')
-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