スキップしてメイン コンテンツに移動

前回の補足説明

現在使用しているCPMエミュレーターは2種類

一つは、https://github.com/jhallen/cpm から cpm を紹介します。
最後の更新から3年経過してますが、それでも まだ新しい部類の方です。

$ ./cpm #### で linuxのカレントディレクトリにあるCPMコマンドを直接起動して端末画面上で動作させることが出来ます。

$ ./cpm だけの場合は、linuxのカレントディレクトリを cpmの A> として扱います。
これは、BDOSエミュレーション機能によるものだそうです。

難点は、tek4010のコードを素通しできないので、一部改変が必要なことと。
BDOSエミュレーション機能のもとではhi-tech-Cがエラー出して、利用できません。

BDOSエミュレーション機能を切って、用意されたディスクイメージ上に
hi-tech-Cの諸々をコピーしてやれば使えるやもしれませんが、
そこまでの手間を掛けるのも如何なものかと思われるので試すことすらしていません。

tek4010対応 改変版のリンクは https://www.4shared.com/s/flRE-X7-pfa

二つ目は、https://github.com/serge-404/CPM32 から 「CP/M-80 program EXEcutor for LINUX」を紹介します。

こちらは、先の「cpm」と同じようですが A>のような コマンドプロンプトモードはありません。
linuxのシェル プロンプトから、カレントディレクトリにあるcpmコマンド 拡張子 COMかCPM のファイルを実行します。
難点は、tek4010のコードを素通しできないので、一部改変が必要なことと。
こちらではhi-tech-Cでのコンパイルはできるのですが、
逆にMBASICがBDOS・BIOSの機能の一部が対応してないとエラーで動作しない。
C言語より当時メジャーだったBASICが動かないのはかなり痛い問題なんだが
この問題は、既に作者のもとに報告されているので そう遠くなく改善されると期待する。

あと、動作異常でターミナルに戻ってくるとターミナルの表示が乱れる場合は
$ stty saneで解消されるらしい。

tek4010対応 改変版のリンクは https://www.4shared.com/s/fRHUOVFzpjq

最近みつけたのが、ntvcm https://github.com/davidly/ntvcm で、 上記2点の抱える問題をすべてクリアしてます。
tek4010に手を加えずに、描画コードを送れ、hi-tech-CもMBASICも使えます。

$ ./ntvcm asm.com test で、test.asmをアセンブルしてくれる動作ですが
「asm.com」の部分は大文字、小文字を含めて「.com」まで 正確に入力する必要があります。
cpm上のファイル名を強制的に小文字に改変する「-l」オプションはCPMコマンドの部分には効果がありませんので
癖を掴んで慣れるのに時間がかかります。 慣れればかなり便利なエミュだと思います。

あと、hi-tech-C用のgraphプログラムのソースとtek4010用のライブラリ、円、ひし形描画デモのソースなどの書庫リンクは
https://www.4shared.com/s/fju5TtYA4jq

MBASICでtek4010に描画するデモのソースとBDOSの一文字出力ルーチンのソースの書庫リンクは
https://www.4shared.com/s/fpSPuAEe6ku

コメント

このブログの人気の投稿

screen コマンドでの コピーペースト転送の実現について

 以前、GAME言語のあれこれについての中で、GAME80ICなどでZ80-MBC2とのscreenコマンドでのシリアル接続中にソーステキストのコピーペースト転送ができない事に触れていたが、単に使ってる環境に依存した所謂「おまかん」なのだが、回避したければ、素直にwindowsで使うか 若しくは linuxでもwine上でteratermを使えば済む話ではある。だが、我が家に於いては普段使いにできるwindows機など無い。棚の奥を探せばwin7の入った古PCが有るとは思うがボードマイコンとの接続の為だけに引っ張り出してきたいとまでは思わない。そこで ふと考えるにteratermにあってscreenやcu,minicomにないものはと、teratermには、テキスト転送中に行単位、文字単位でミリセカンドのディレイを挟む設定がある。対してlinux系のシリアル接続コマンドにそういった類のモノを知らない(単に自分が知らないだけの可能性もある) 。そこで、duckduckgo検索のサービスである「Duck.AI」に聞いてみた。自分の思いついた革新的なアイデアは大概は先人が既に思いついてる当たり前過ぎるモノというのはいつもの事であっさりと解決策を教えてくれた。

一部の関西の人にしか通じないネタ

たぶん「30年モノ」くらいだと思う?  拡大 値札に注目! ちなみに、ATMEGA32へのファーム書込用のアダプタを作るのに使用。

GAME言語 あれこれ

 MZ-700用にSDカードからMZTファイルの読み書きが出来る基板を入手して以降、MZ用のインタープリタやコンパイラの打ち込みをやってた延長でZ80-MBC2上のCPMで動作するGAMEインタープリタとコンパイラをいくつか発見。GAME-MZは国会図書館のコピーサービスで当時のアスキー誌の記事を入手済で打ち込みMZT化は済んでいるが動作の確認はしてない。 CP/M-80で動作するGAME80言語を3点ほど紹介する。 まず、動作環境は実機としては8Mhz動作のZ80-MBC2にXMODEMでPCからのファイル転送 PC側はFedora40の端末から「screen」コマンドでの接続、比較用に同じくFedora40の端末上で動作するCPMエミュレータ2種類。エミュレータで動作確認がとれたモノを実機に転送して最終動作させてみる流れ。    skyriverさんのGameOnCpm80 端末のエミュレータ上ではコピーペーストによるソースの転送もできるが ファイル読み書き用のコマンドが組み込まれているので、なぜか実機の方ではコピペに転送が出来ないのでありがたい。コンパイラも組み込まれているのでインタプリタで実行確認後、コンパイルもできる。 難点は、コンパイルの際にソース格納アドレスやデータエリア、オブジェクト格納エリアの指定をする必要がある。GAME-MZでもコンパイルの際は普通に必要な事ではあるが、自分の頭の中でシステムのメモリマップを把握しておくのが意外と面倒くさい。 コンパイルで 出来たオブジェクトをCOMファイルにするのにDDTなんかの別ツールでメモリ上に残ってるデータをCOMファイルとして保存するしかない。 COMファイル化とかを視野に入れずインタープリト、コンパイル、実行だけなら使いやすくお薦め。   ファイル操作コマンド例 files ファイル一覧表示 :\\ *.g 拡張子 .g のファイルの表示      \\のみ、\\ *.* での表示は出ない模様(単に自分の使い方が悪いだけかも?)  save(¥>FileName)とload(¥<FileName) 詳細は https://piclabo.blog.ss-blog.jp/CPM80GameCompiler...