Skip to content
/ mscon Public

Windows のコマンドプロンプトで Gauche を使うときに、コンソールの制御を可能とするモジュールです。

Notifications You must be signed in to change notification settings

Hamayama/mscon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mscon

image

概要

  • Windows のコマンドプロンプトで Gauche を使うときに、
    コンソールの制御を可能とするモジュールです。

インストール方法

  • mscon.scm を Gauche でロード可能なフォルダにコピーします。
    (例えば (gauche-site-library-directory) で表示されるフォルダ等)

使い方

  (use mscon)                  ; モジュールをロードします
  (cls)                        ; 画面をクリアします(コマンドのため遅い)
  (cls2)                       ; 画面をクリアします2(*)
  (screen-size 80 300)         ; 画面のバッファのサイズ(w,h)を設定します(単位:文字)(*2)
                               ;   (ウィンドウサイズより小さくは設定できません)
  (screen-area 0 0 79 24)      ; 画面の表示エリア(x1,y1,x2,y2)を設定します(単位:文字)
                               ;   (画面のバッファを越える値は設定できません)
                               ;   (ディスプレイに入りきらない値は設定できません)
  (screen-left)                ; 画面の左上のx座標を取得します(単位:文字)
  (screen-top)                 ; 画面の左上のy座標を取得します(単位:文字)
  (screen-width)               ; 画面の幅を取得します(単位:文字)
  (screen-height)              ; 画面の高さを取得します(単位:文字)
  (screen-buffer-width)        ; 画面のバッファの幅を取得します(単位:文字)
  (screen-buffer-height)       ; 画面のバッファの高さを取得します(単位:文字)
  (cursor-x)                   ; カーソルのx座標を取得します(単位:文字)
  (cursor-y)                   ; カーソルのy座標を取得します(単位:文字)
  (cursor-off)                 ; カーソルを非表示にします
  (cursor-on)                  ; カーソルを表示します
  (locate 10 40)               ; カーソルを座標(x,y)に移動します(単位:文字)
                               ;   (画面のバッファを越える値は設定できません)
  (color COL_GREEN)            ; 色を設定します
                               ;   (設定可能な色の定数はソースコード参照)
  (print "HIT ANY KEY!")       ;
  (keywait)                    ; キーボードの入力を待ちます
                               ;   (戻り値は、入力した文字になります)
  (keystate)                   ; キーボードの状態を取得します(*)
                               ;   (戻り値は、キーボードの状態のリストになります。
                               ;    入力がない場合は、空リストが返ります。
                               ;    キーボードの状態1個は、数値6個で構成されるリストです。
                               ;    数値6個の意味は、ソースコードのkeystate等を参照)
  (keystate-test)              ; キーボード状態取得テスト用です(*)
  (keywait2 3000)              ; キーボードの入力を待ちます2(タイムアウト設定可能(msec))(*)
                               ;   (タイムアウト値を省略すると、入力があるまで待ちます。
                               ;    戻り値は、入力時のキーボードの状態のリストになります。
                               ;    入力がなくタイムアウトした場合は、空リストが返ります。
                               ;    キーボードの状態1個は、数値6個で構成されるリストです。
                               ;    数値6個の意味は、ソースコードのkeystate等を参照)
  (keyclear)                   ; キーボードの入力をクリアします(*)
  (puttext "ABCDE" 10 10)      ; 座標(x,y)に文字列を表示します
                               ;   (引数の順番は、文字列 x y の順です)
  (putcolor 5 10 10 COL_GREEN) ; 座標(x,y)からn文字分に色を設定します(*)
                               ;   (引数の順番は、文字数 x y 色 の順です)
  (set-console-title "test")   ; コンソールのタイトル(文字列)を設定します(*2)
  (get-console-title)          ; コンソールのタイトル(文字列)を取得します

  (*)マークがある命令は Gauche v0.9.3.3 以前では使用できません。
     使用可能かどうかは (mscon-all-available?) でチェックできます。
  (*2)マークがある命令は Gauche v0.9.4 以前では使用できません。
     Gauche v0.9.5 では使用可能です。

注意事項

  1. write や display が、指定したカーソル位置に表示しないことがあります。
    → flush すれば表示されます。

  2. 最下行に print で表示すると、改行のためスクロールします。

  3. puttext は、color で指定した色では表示しません。
    (色をつけるには putcolor と併用する必要があります)

  4. リダイレクトには非対応です(エラーになります)。

  5. Windows 8 上の Gauche v0.9.3.3 では、付属の test.scm を実行すると、
    しばらく動いた後に実行時エラーが発生します。
    (実数の計算でエラーになっているようだが、詳細原因不明)
    (Gauche v0.9.4 では、エラーは発生しません)

環境等

  • OS
    • Windows 8.1 (64bit)
    • Windows XP Home SP3
  • 言語
    • Gauche v0.9.5
    • Gauche v0.9.4
    • Gauche v0.9.3.3

履歴

  • 2014-6-22 v1.00 (初版)
  • 2014-6-22 v1.01 コメント修正のみ
  • 2014-6-23 v1.02 コメント修正のみ
  • 2014-6-23 v1.03 keywait2の処理を修正
  • 2014-6-23 v1.04 cls2の処理を修正
    (sys-fill-console-output-characterの引数型変更(文字列→文字))
  • 2014-6-24 v1.05 コメント修正のみ
  • 2014-6-24 v1.06 keystate-testの処理を一部見直し
  • 2014-6-25 v1.07 keywait2の処理を修正
  • 2014-7-21 v1.08 コマンド追加(screen-left,screen-top,cursor-x,cursor-y)
    一部処理見直し
  • 2014-7-22 v1.09 keystateの処理を一部見直し
  • 2014-7-23 v1.10 keywait2の処理を一部見直し
  • 2014-7-24 v1.11 clsの処理を一部見直し
  • 2014-8-6 v1.12 インデント修正のみ
  • 2014-8-8 v1.13 一部処理見直し(mscon-all-available?,rlet1)
  • 2014-8-9 v1.14 一部処理見直し(let*)
  • 2014-8-14 v1.15 keystate-testの処理を一部見直し
  • 2014-8-17 v1.16 一部処理見直し(and #t)
  • 2014-9-12 v1.17 コマンド追加(screen-size,screen-area)
  • 2014-9-13 v1.18 一部処理見直し(screen-sizeの引数)
  • 2014-9-17 v1.19 コマンド追加(screen-buffer-width,screen-buffer-height)
  • 2014-9-23 v1.20 一部処理見直し(let*)
  • 2014-11-26 v1.21 コメント修正のみ
  • 2015-7-31 v1.22 コマンド追加(set-console-title,get-console-title)
  • 2015-8-13 v1.23 一部処理見直し(keystate,keystate-test,keywait2)
  • 2015-10-12 v1.24 仮想キーコードの定数をエクスポート
  • 2015-10-12 v1.25 一部処理見直し(keywait2)
  • 2016-3-14 v1.26 keywait2の戻り値変更等
  • 2016-3-17 v1.27 変数名変更
  • 2016-6-9 v1.28 一部処理見直し(sys-peek-console-input, sys-read-console-input,
    mscon-all-available?, keystate)
  • 2016-10-14 v1.29 一部処理見直し(keystate-test)
  • 2016-11-25 v1.30 コメント修正のみ

(2016-11-25)

About

Windows のコマンドプロンプトで Gauche を使うときに、コンソールの制御を可能とするモジュールです。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published