SSブログ
English Version

3チップ構成68Kマイコンの構想(その14)スクリーンエディタの開発 [68K]

 ソフトが豊富なCP/M-80とは違いCP/M-68Kはインターネットからダウンロードできるソフトはそれ程豊富ではありません。
 CP/Mのラインエディタ(ED)はあまり使い勝手が良くないので使い易いエディタが欲しくなります。

 CP/M-68K用のマイクロEmacsが入手可能ですがWordStar系のエディタが欲しいところです。ZDEもCP/M-68Kには対応していないようです・・・

 ネットで探すとCP/M-68K用のエディタのソースがいくつか見つかりますが、ソースファイル数が多くてCP/Mのコマンドライン内でリンクできなかったり(ライブラリアンを使ってリンクしたという記事もあった)、ビルドはできてもうまく動かなかったりでソースを解析して動くようにするよりは、エディタを作ってみようという結論に達しました^^

 ということでCP/M-68K Ver1.3のCコンパイラ環境を使ってスクラッチでスクリーンエディタを作り、sked(Simple Kitten EDitor)と命名しました^^
 ターミナルはTeraTermを想定し、VT100のエスケープシーケンスの一部を使い制御しています。
 エディタ内のデータ構造や処理方法について書いておこうかとも思いましたが、あまり興味をひかない内容と思われるので割愛しますw

 今時、TeraTermで接続したCP/M-68Kボードを動かす人はほとんどいないと思うので必要とする人は少ないでしょうが、シンボル情報が含まれるリロケータブル形式のものを公開します。

 reloc sked.rel sked.68k

の操作でシンボル情報を取り除いたコンパクトな実行ファイルに変換できます。
 typeコマンドの代わりにviewerとしても使えるのでコンソール接続のCP/M-68Kが動く環境を持っている人にとってはそれなりに便利だと思います。

 現時点で実装しているコマンドに関しては下のヘルプを表示中の画面キャプチャを参照してください。

help表示状態の画面


 ダウンロードはこちらからどうぞ(商用利用以外であれば自由に使用できます)
  • sked68k_v001g.zip
    ★2022/02/09 V0.01g メモリ確保方法をmallocからSP参照方式に変更 ★2019/04/08 V0.01f 新規ファイル中断時に新規ファイルが残らないようにした ★2019/04/06 v0.01d ファイル内のコントロールコードを表示
    ★2017/12/19 v0.01b help表示の誤記修正
    ★2017/12/17 v0.01a ステータス表示部分を改善

★2018/12/14 追記
 twitterにアップした操作動画付きツイートを貼っておきます。
 Win10の画面録画機能?で保存していますが、ウィンド内表示の上下がカットされるため、TeraTermを26行に設定して録画したので表示中の最下端の行の表示はゴミです。(skedは 80文字x24行 の画面で動作します)


★2019/01/12 追記
 WordStarのコマンドライクなスクリーンエディタがCP/M-68K上で使えるようになったのでライフゲームを動かしてみました。
 実行ファイルとソースは下記からダウンロードできます。(★2019/01/13 定常状態の検出ロジックを強化しました)

 実行ファイルはシンボル情報の入ったリロケータブル形式(rel形式)になっているので

reloc life68.rel life68.68k

でシンボル情報のないコンパクトな実行ファイルに変換できます。

LifeGame on CP/M-68K


★2019/02/11 追記
 CP/M-68K用に開発したxmodemアプリを下記の記事で公開しています。
 TeraTermのxmodem機能を使ってファイルの送受信が可能になります。
3チップ構成68Kマイコンの構想(その10)XMODEMアプリの作成



★2020/08/13 追記 {
 「レトロマイコン86ボードの構想(その14)untarの製作」の記事で書いたCP/M-86用に作成したuntarをCP/M-68Kに移植しました。

reloc untar.rel untar.68k

でシンボル情報のないコンパクトな実行ファイルに変換できます。

 ダウンロードは下記のリンクからどうぞ(商用利用以外であれば自由に使用できます)
・2021/01/04 Ver0.05
 Win10のtarコマンド等のヘッダ内サイズデータのデリミタが20Hの場合に対応

}

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

nice! 0

コメント 9

skyriver

ライフゲームを追記しました。

by skyriver (2019-01-12 23:17) 

skyriver

skedでプリント用ファイルを表示した際等にファイル内に改ページ等のコントロールコードがあった場合、表示画面にゴミが残ることがあったのでコントロールコードを水色で表示するようにしました(v001d)
by skyriver (2019-04-06 23:12) 

skyriver

海外のレトロ関連フォーラムに去年の暮れに書き込んだコメントに追加コメントが書かれてた^^

http://www.vcfed.org/forum/showthread.php?58725-Software-for-CP-M-68k/page3
by skyriver (2019-05-05 08:09) 

Ron

Hi,

sked is just the program I have been looking for.
It looks great.
Unfortunately when I run the reloc commnd i am
getting an error as follows ;-

reloc sked.rel sked.68k
Illegal reloc = 6500 at 0

Page E32 of the CPM68K Operating System Programmer's Guide suggests the following possible problems ;-

a. The file is Truncated or Corrupted.
b. The file has no relocaton bits.

Please would you check the file.
I would love it to work for me.

Thanks,

Ron
by Ron (2019-11-13 06:41) 

skyriver

Hi Ron.
I downloaded "sked.rel" and checked to reloc it.
The result was below. It was no problem under my environment(CP/M version is 1.3).

|O>m:stat sked.*
|
| DRIVE O: USER : 0
| RECS BYTES FCBS ATTRIBUTES NAME
| 376 48K 3 DIR RW O:SKED .REL
|----------------------------------------------
|TOTAL: 48K 3
|O: RW, FREE SPACE: 1,750K
|O>m:reloc sked.rel sked.68k
|
|O>m:stat sked.*
|
| DRIVE O: USER : 0
| RECS BYTES FCBS ATTRIBUTES NAME
| 176 22K 2 DIR RW O:SKED .68K
| 376 48K 3 DIR RW O:SKED .REL
|----------------------------------------------
|TOTAL: 70K 5
|O: RW, FREE SPACE: 1,728K
|O>


In addition, the following command shows that "sked.rel" is relocatable and contains symbol information.

|O>m:ddt sked.rel
|
|********************************************************
|* DDT-68K 9/20/84 Version 1.3 *
|* Serial #XXXX-0000 All Rights Reserved *
|* Copyright 1982,1983,1984,1985 Digital Research Inc. *
|********************************************************
|
|File is relocatable
|text base = 00007000 data base = 0000BEFA bss base = 0000C7B4
|text length = 00004EFA data length = 000008BA bss length = 000024CC
|base page address = 00006F00 initial stack pointer = 00075C1A
|-l._main
|_main:
| 00008310 link A6,#$FFEC
| 00008314 clr.w $FFF0(A6)
| 00008318 cmpi.w #$2,$8(A6)
| 0000831E beq $832A
| 00008320 move.w #$64,$FFF0(A6)
| 00008326 bra $8484
| 0000832A jsr $95A8 ._DspSpla
| 00008330 movea.l $A(A6),A0
| 00008334 move.l $4(A0),$E0F8 ._FName
| 0000833C move.l #$C0C8,(A7)
| 00008342 move.l $E0F8,-(A7) ._FName
|-^C
|O>

Regards.

by skyriver (2019-11-13 20:01) 

Ron

Hi Skyriver,
Thanks for reply.
When I run the DDT command it says "Bad relocation bits"
I have been using CPMTools to copy sked.rel into CPM disk file.
Maybe something is wrong here.
I will let you know.
Ron
by Ron (2019-11-14 21:39) 

skyriver

CP/M-86用に作成したuntarをCP/M-68Kに移植し公開しました。
by skyriver (2020-08-13 01:57) 

Jean-Yves

ありがとうございました!
I was able to run RELOC fine on my 68K-MBC board running CP/M 68K v1.3.

Thank you for providing us with such a useful tool :)

Jean-Yves

by Jean-Yves (2021-10-11 00:04) 

skyriver

Hello,
thanks for reporting the operating status of sked in your environment.
I'm glad it worked well.
And thanks for writing the beginning in Japanese.

by skyriver (2021-10-11 03:38) 

コメントを書く

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