package jopui;
import com.jopdesign.jopui.core.Graphics;
import com.jopdesign.jopui.core.Image;
import com.jopdesign.jopui.helper.KeyBoard;
import com.jopdesign.sys.Native;
public class KeyboardTest {
public static final int MEM_START = 0x78500;
public static final int SCREEN_WIDTH = 320;
public static final int SCREEN_HEIGHT = 240;
static Image screen = Image.createImage(SCREEN_WIDTH, SCREEN_HEIGHT);
Graphics g = null;
public static void drawToScreen() {
int [] data = screen.getData();
for(int i=0; i<data.length; ++i) {
Native.wr(data[i], MEM_START+i);
}
}
public void run() {
Graphics g = screen.getGraphics();
g.drawRect(0,0,320,240);
KeyBoard kb = new KeyBoard();
int x_pos = 0;
int y_pos = 0;
for(;;) {
int ctrl = kb.getCtrlReg();
if((ctrl & KeyBoard.MSK_ASCII_RDY) != 0) {
int c_in = kb.getAscii();
g.drawChar((char)c_in,x_pos,y_pos);
x_pos+=8;
} else if((ctrl & KeyBoard.MSK_SCC_RDY) != 0) {
int sc_in = kb.getScanCode();
if((ctrl & KeyBoard.MSK_KEY_REL) != 0) {
sc_in = sc_in & 0xff;
if(sc_in == 0x5a)
x_pos = 320;
else if(sc_in == 0x0d)
x_pos += (4*8);
}
}
if(x_pos >= 320) {
y_pos = y_pos + 10;
x_pos = 0;
}
if(y_pos>= 240) {
y_pos=0;
g.setColor(0x00);
g.fillRect(0,0,320,240);
g.setColor(0xFF);
}
drawToScreen();
}
}
public static void main(String [] args) throws Exception {
new KeyboardTest().run();
}
}