diff --git a/examples/curlywas/control.cwa b/examples/curlywas/control.cwa index 0cdaffb..0ee05fa 100644 --- a/examples/curlywas/control.cwa +++ b/examples/curlywas/control.cwa @@ -6,7 +6,11 @@ export fn upd() { } data 0x20000 { - i8(14, 0xfd, 12) // clear screen to color 0xfd + i8(14, 0xfd, 15, 15, 12) // clear screen to color 0xfd "Top left" + i8(31, 28, 29) "Bottom right" + i8(31, 1, 2, 14, 10, 15, 0xf0) "Other colors" + i8(24)" inverted" + i8(5, 31, 6, 28, 15, 0xe5) "warning!" i8(0) } diff --git a/platform/bin/platform.uw8 b/platform/bin/platform.uw8 index d245d77..7c8c182 100644 Binary files a/platform/bin/platform.uw8 and b/platform/bin/platform.uw8 differ diff --git a/platform/src/platform.cwa b/platform/src/platform.cwa index 53ca1d1..b704a1b 100644 --- a/platform/src/platform.cwa +++ b/platform/src/platform.cwa @@ -331,6 +331,20 @@ fn printSingleChar(char: i32) { return; } + if char == 8 { + textCursorX = textCursorX - 8; + if !graphicsText & textCursorX < 0 { + textCursorX = 320-8; + printSingleChar(11); + } + return; + } + + if char == 9 { + textCursorX = textCursorX + 8; + return; + } + if char == 10 { textCursorY = textCursorY + 8; if !graphicsText & textCursorY >= 240 { @@ -345,6 +359,20 @@ fn printSingleChar(char: i32) { return; } + if char == 11 { + textCursorY = textCursorY - 8; + if !graphicsText & textCursorY < 0 { + textCursorY = 0; + let i = 320 * (240 - 8); + loop scroll_copy { + i!(116 + 320 * 8) = i!116; + branch_if (i := i - 4): scroll_copy; + } + rectangle(0 as f32, 0 as f32, 320 as f32, 8 as f32, bgColor); + } + return; + } + if char == 12 { cls(bgColor); return; @@ -365,6 +393,19 @@ fn printSingleChar(char: i32) { return; } + if char == 24 { + let tmp = textColor; + textColor = bgColor; + bgColor = tmp; + return; + } + + if char == 31 { + textCursorX = 0x12d20?1 * (8 - graphicsText * 6); + textCursorY = 0x12d20?2 * (8 - graphicsText * 7); + return; + } + drawChar(char); } @@ -373,11 +414,11 @@ data(0x12d00) { 1, 2, 1, 1, // 0-3 1, 1, 1, 1, // 4-7 1, 1, 1, 1, // 8-11 - 1, 1, 2, 1, // 12-15, + 1, 1, 2, 2, // 12-15, 1, 1, 1, 1, // 16-19, 1, 1, 1, 1, // 20-23, 1, 1, 1, 1, // 24-27, - 1, 1, 1, 1 // 28-31 + 1, 1, 1, 3 // 28-31 ) }