sl-jslinux

JavaScript で書いた PC エミュレータ上で動作する OS、jslinux が一部で話題らしい。@hasegawayosuke さんが、sl を動かしたいと言っているので、なんとかしてみましたよ。termcap を移植するのは面倒なので、vt100 環境限定で。

必要なのは、
sl-2010 - hatenablog.utashiro.com
のソースの、curses.h の代わりに下のコードを入れるだけ。
ソースのコピーは /dev/clipboard 経由。コンパイルtcc というコマンドを使う。

#include <tcclib.h>
#define COLS 80
#define LINES 30
#define _IONBF 2
void initscr() {
    setvbuf(stdout, 0, _IONBF, 0);
    printf("\033[H\033[2J");
}
void mvprintw(int y, int x, char *f, char *s) {
    printf("\033[%d;%dH", y+1, x+1);
    printf(f, s);
}
void refresh() {
}

ウェイトは入れなくても大丈夫なので、むしろ最初に作ったころの環境に近かったりする。