From d963cf829416eafb75f07c26249551440d0b0792 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 29 Jan 2021 14:19:37 +0900 Subject: [PATCH] behaviour of con.addch changed - no longer advances cursor --- assets/JS_INIT.js | 16 ++++++++++++++++ assets/disk0/home/emittest.js | 2 +- assets/disk0/tbas/basic.js | 9 +++++---- assets/disk0/tvdos/bin/command.js | 10 +++++----- assets/disk0/tvdos/bin/flsh.js | 6 +++--- assets/disk0/tvdos/bin/less.js | 2 +- assets/disk0/tvdos/tuidev/demo.js | 5 +++-- src/net/torvald/tsvm/GraphicsJSR223Delegate.kt | 1 - .../torvald/tsvm/peripheral/GraphicsAdapter.kt | 2 +- src/net/torvald/tsvm/peripheral/TTY.kt | 2 +- 10 files changed, 36 insertions(+), 19 deletions(-) diff --git a/assets/JS_INIT.js b/assets/JS_INIT.js index e197834..ec62954 100644 --- a/assets/JS_INIT.js +++ b/assets/JS_INIT.js @@ -394,6 +394,22 @@ con.getmaxyx = function() { con.getyx = function() { return graphics.getCursorYX(); }; +con.curs_up = function() { + let c = graphics.getCursorYX(); + con.move(c[0]-1,c[1]); +}; +con.curs_down = function() { + let c = graphics.getCursorYX(); + con.move(c[0]+1,c[1]); +}; +con.curs_left = function() { + let c = graphics.getCursorYX(); + con.move(c[0],c[1]-1); +}; +con.curs_right = function() { + let c = graphics.getCursorYX(); + con.move(c[0],c[1]+1); +}; con.hitterminate = function() { // ^C sys.poke(-40, 1); return (sys.peek(-41) == 31 && (sys.peek(-42) == 129 || sys.peek(-42) == 130)); diff --git a/assets/disk0/home/emittest.js b/assets/disk0/home/emittest.js index 58ea13a..d27406d 100644 --- a/assets/disk0/home/emittest.js +++ b/assets/disk0/home/emittest.js @@ -2,6 +2,6 @@ con.clear(); con.move(1,1); for (let i = 0; i < 1024; i++) { if (i < 512) con.color_pair(239, 0); else con.color_pair(0, 239); - con.addch(i%256); + con.addch(i%256);con.curs_right(); } println(); \ No newline at end of file diff --git a/assets/disk0/tbas/basic.js b/assets/disk0/tbas/basic.js index 84a15e2..3e844d6 100644 --- a/assets/disk0/tbas/basic.js +++ b/assets/disk0/tbas/basic.js @@ -236,11 +236,11 @@ const greetRightPad = termWidth - greetLeftPad - greetText.length - 6; con.clear(); con.color_pair(253,255); -print(' ');con.addch(17); +print(' ');con.addch(17);con.curs_right(); con.color_pair(0,253); print(" ".repeat(greetLeftPad)+greetText+" ".repeat(greetRightPad)); con.color_pair(253,255); -con.addch(16); +con.addch(16);con.curs_right();print(' '); con.move(3,1); con.color_pair(239,255); @@ -1117,9 +1117,10 @@ if no arg text were given (e.g. "10 NEXT"), args will have zero length let printstr = ""; if (rsvArg === undefined) print("") - else if (!isNaN(rsvArg)) { + else if (isNumable(rsvArg)) { let c = con.getyx(); - con.addch(rsvArg); + con.addch(tonum(rsvArg)); + con.move(c[0],c[1]+1); } else if (rsvArg.toString !== undefined) print(rsvArg.toString()); diff --git a/assets/disk0/tvdos/bin/command.js b/assets/disk0/tvdos/bin/command.js index 0c29f8a..8e7cb1c 100644 --- a/assets/disk0/tvdos/bin/command.js +++ b/assets/disk0/tvdos/bin/command.js @@ -21,7 +21,7 @@ function print_prompt_text() { con.color_pair(239,161); print(" "+CURRENT_DRIVE+":"); con.color_pair(161,253); - con.addch(16); + con.addch(16);con.curs_right(); con.color_pair(0,253); print(" \\"+shell_pwd.join("\\").substring(1)+" "); if (errorlevel != 0) { @@ -29,8 +29,8 @@ function print_prompt_text() { print("["+errorlevel+"] "); } con.color_pair(253,255); - con.addch(16); - con.addch(32); + con.addch(16);con.curs_right(); + con.addch(32);con.curs_right(); con.color_pair(239,255); } else { @@ -46,11 +46,11 @@ function greet() { con.color_pair(239,255); con.clear(); con.color_pair(253,255); - print(' ');con.addch(17); + print(' ');con.addch(17);con.curs_right(); con.color_pair(0,253); print(" ".repeat(greetLeftPad)+welcome_text+" ".repeat(greetRightPad)); con.color_pair(253,255); - con.addch(16);print(' '); + con.addch(16);con.curs_right();print(' '); con.move(3,1); } else diff --git a/assets/disk0/tvdos/bin/flsh.js b/assets/disk0/tvdos/bin/flsh.js index 8b0f957..d412de1 100644 --- a/assets/disk0/tvdos/bin/flsh.js +++ b/assets/disk0/tvdos/bin/flsh.js @@ -9,12 +9,12 @@ function print_prompt_text() { con.color_pair(239,161); print(" "+CURRENT_DRIVE+":"); con.color_pair(161,253); - con.addch(16); + con.addch(16);con.curs_right(); con.color_pair(0,253); print(" \\"+shell_pwd.join("\\")+" "); con.color_pair(253,255); - con.addch(16); - con.addch(32); + con.addch(16);con.curs_right(); + con.addch(32);con.curs_right(); con.color_pair(239,255); } diff --git a/assets/disk0/tvdos/bin/less.js b/assets/disk0/tvdos/bin/less.js index b2cf70d..4123695 100644 --- a/assets/disk0/tvdos/bin/less.js +++ b/assets/disk0/tvdos/bin/less.js @@ -69,7 +69,7 @@ let repaint = function() { if (cx >= 0 && cx < termW) { con.move(cy, cx); if (char != 10 && char != 13) - con.addch(char); + con.addch(char);con.curs_right(); } cx += 1; } diff --git a/assets/disk0/tvdos/tuidev/demo.js b/assets/disk0/tvdos/tuidev/demo.js index b5cdc48..24bac3e 100644 --- a/assets/disk0/tvdos/tuidev/demo.js +++ b/assets/disk0/tvdos/tuidev/demo.js @@ -26,11 +26,12 @@ class SimpleScreen { con.move(1,1); con.color_pair(253,255); - print(' ');con.addch(17); + print(' ');con.addch(17);con.curs_right(); con.color_pair(0,253); print(" ".repeat(titleLeftPad)+this.title+" ".repeat(titleRightPad)); con.color_pair(253,255); - con.addch(16);print(' '); + con.addch(16);con.curs_right();print(' '); + con.move(3,1); } redraw() { con.color_pair(239,255); diff --git a/src/net/torvald/tsvm/GraphicsJSR223Delegate.kt b/src/net/torvald/tsvm/GraphicsJSR223Delegate.kt index f2b30cc..a123d36 100644 --- a/src/net/torvald/tsvm/GraphicsJSR223Delegate.kt +++ b/src/net/torvald/tsvm/GraphicsJSR223Delegate.kt @@ -88,7 +88,6 @@ class GraphicsJSR223Delegate(val vm: VM) { it.putChar(cx, cy, c.toByte()) - it.setCursorPos(cx + 1, cy) } } diff --git a/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt b/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt index 57b0fe5..5421cee 100644 --- a/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt +++ b/src/net/torvald/tsvm/peripheral/GraphicsAdapter.kt @@ -123,7 +123,7 @@ open class GraphicsAdapter(val vm: VM, val config: AdapterConfig, val sgr: Super var newx = x var newy = y - if (newx > TEXT_COLS) { + if (newx >= TEXT_COLS) { newx = 0 newy += 1 } diff --git a/src/net/torvald/tsvm/peripheral/TTY.kt b/src/net/torvald/tsvm/peripheral/TTY.kt index 958c2ee..036fc9a 100644 --- a/src/net/torvald/tsvm/peripheral/TTY.kt +++ b/src/net/torvald/tsvm/peripheral/TTY.kt @@ -39,7 +39,7 @@ class TTY(val vm: VM) : GlassTty(TEXT_ROWS, TEXT_COLS), PeriBase { var newx = x var newy = y - if (newx > TEXT_COLS) { + if (newx >= TEXT_COLS) { newx = 0 newy += 1 }