SSブログ
English Version

レトロマイコン86ボードの構想(その13)自作スクリーンエディタ [8086]

 前回の記事で書いたようにCP/M-86でWordStarが動くようになりました。
 しかし、WordStarは起動の度にファイル内容の表示領域を広げるために操作が必要だったり、ディフォルトでページ境界線が表示されていたり、更には当時の基本的なエスケープシーケンスのみで制御していることもあり動作が重いです・・・

 そこで「3チップ構成68Kマイコンの構想(その14)スクリーンエディタの開発」の記事で書いた自作のsked(Simple Kitten EDitor)をDRC(デジタルリサーチ社製C言語)環境を使ってCP/M-86に移植してみました。

 skedのコマンド体系はWordStarライクの2ストロークにしているので私にとっては使い勝手がいいです。

help表示状態の画面


 実装機能は必要最小限(エディタの追加機能を考え出したら切りがない)ですがオンメモリ処理でBIOSを直にコール(BDOS経由でのBIOSコール機能しか提供していないCP/M-86ではあまり例がないと思う)しているのでWordStarと比較し動作がかなり速いです。

 DRC(Ver 1.11)への移植作業について気が付いたこと等をメモしておきます。

  1. SIZE_T/size_tの定義
    SIZE_Tの定義がDOS.Hのみにあり、今回はDOS.Hは使わないので自分でunsigned intとして定義しています。

  2. SIZE_T(unsigned int)の演算
    SIZE_Tでキャストした0x8000の2除算が0xc000になってしまう。除算式に含まれる全ての数値をSIZE_Tでキャストしても変化ありませんでした。

  3. unsigned charが使えない
    DRCのコンパイラが対応していないためunsigned charでエラーになります。

  4. 実行ファイルのサイズが大きい
    "Hello!"表示のプログラムのサイズが28KBでAztecCの6KBと比較してかなり大きい。

  5. コンパイル時間
    結構時間が掛かります。体感ではAztecCの5倍程度かかります。
    但し、AztecCは大きめのソースをコンパイルしたところ、私の環境ではコンパイラがうまく動かなかったので今回はDRCを使っています。
    ★2019/10/24 追記 {
     Pic24V20をプリント基板化したことで安定化できました。AztecCも問題なく動いています。AztecCの方がコンパイル&リンクの速度も速く、C言語自体もDRCより使い易いです。何より実行ファイルのサイズが小さい(というかDRCが大きすぎ)。
     DRCはおそらくデジタルリサーチ社初のCコンパイラでこなれていない部分がある印象です。
    }

  6. マニュアルの情報は多い
    マニュアルの内容は充実しています。インラインアセンブル機能は無いようですがrasm86(リロケータブルアセンブラ)の処理と割合簡単にリンクできます。

  7. デバッガ
    DRCには関係ないですがCP/M-86用のシンボリックディバッガを探したけれどまだ見つけられていないのでシンボルをマニュアルで参照する必要があり不便です。
    ★2019/10/01 追記 {
     シンボリックディバッガ(SID86)はここからダウンロードできました。
    }

★2019/09/30 追記
twitterにWordStarとの比較動画をアップしました。




★2019/10/13 追記
 自作スクリーンエディタsked(CP/M-86版)は下記のリンクからダウンロードできます。(商用目的以外であれば自由に使用可能)

SKED_CPM86_V001f.zip



[TOP] [ 前へ ] 連載記事 [ 次へ ]
nice!(1)  コメント(0) 
共通テーマ:趣味・カルチャー

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。