/*---------------------------------------------------------------*/ /* ■テンキーでカーソル位置の移動 */ /*---------------------------------------------------------------*/ /* テンキーから数字が入力できない場合,テンキーの[num lk]を */ /* 切り替えてください。 */ /* */ /* [num lk]を切り替えるには[num lk]を押します。 */ /* */ /* 述語testでは入力コードを確認します。[ctrl]+Zで終わります。 */ /* */ /* 述語screenでは,2, 8, 6, 4 でカーソル移動, 5 で全角の■, 0 */ /* で全角スペース, 1 でカーソル非表示, 3 でカーソル表示します。 */ /* その他の文字はカーソル位置に表示します。 */ /*  */ /* [BS]キーもききますが,文字は削除されません。 */ /* */ test:-d_clear,repeat, d_keyin(X),(X=:=26;(write(X),fail)). screen:- d_clear,repeat, d_keyin(X),(X=:=26;(moveC(X),fail)). moveC(53):-!,ttyput(33185). /* 5 :全角■ */ moveC(48):-!,ttyput(33088). /* 0 :全角スペース */ moveC(49):-!,d_cursor(off). /* 1 :カーソル非表示 */ moveC(51):-!,d_cursor(on ). /* 3 :カーソル表示 */ moveC(50):-!,d_pos(X,Y), YY is Y+1, d_cursor(X,YY). /* 2 ↓の替り*/ moveC(56):-!,d_pos(X,Y), YY is Y-1, d_cursor(X,YY). /* 8 ↑の替り*/ moveC(54):-!,d_pos(X,Y), XX is X+1, d_cursor(XX,Y). /* 6 →の替り*/ moveC(52):-!,d_pos(X,Y), XX is X-1, d_cursor(XX,Y). /* 4 ←の替り*/ moveC(X ):-!,ttyput(X).