MSX1(CF1200)の購入(その2)カーリッジケースの作成(その2) [MSX]
前回の記事で3DプリンタでのMSXカートリッジケースの作成について書きましたが、ネットでカードエッジ直後から横幅が広いプリント基板もあることを知りました。
そこで幅広のプリント基板にも対応すべくカートリッジケースを改善してみました。今までは固定するネジが上の方にあり、これが邪魔して大きなサイズの基板が入らない状態でした。今回はプリント基板固定用スペーサー部をネジで固定するようにすることで幅広の基板に対応しました。カートリッジの上側は嵌め込み式にして開かないようにしています。
下図が rear 側(後ろ側)のケース部品です。下側の辺を除く3辺の内側にズレ防止の爪を付けました。
下図が front側(手前側)のケース部品でプリント基板を固定するスペーサ部に木ネジで固定できるように穴を設けています。
下の写真が 3D プリンタで出力した rear 側(左)と front 側(右)の部品の内側です。中央部分がスロットに入れる部分(ケースの下側)になります。
下の写真は 3D プリンタで出力した rear 側(左)と front 側(右)の部品の外側です。3D プリンタのベッドに貼ったフィルムと同様に艶消しの様な仕上がりになっています。
★追記 2022/12/30 ベッドに貼ったフィルムが光沢の場合、表面は光沢になります。
サンプルのプリント基板を rear 側に嵌め込んだ状態が下の写真になります。
2本のネジで固定後のカートリッジの下側(スロットのカードエッジコネクタに接続される側)が下の写真です。
下の写真はカートリッジを上側から見た外観になります。
今回は新たな試みとして3Dプリンタで出力した本カートリッジケースをBOOTHで配布することにしました。
twitterに投稿した動画付きメッセージを貼っておきます。動画はフル画面で見るとケースの質感をより感じることが出来ます。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
そこで幅広のプリント基板にも対応すべくカートリッジケースを改善してみました。今までは固定するネジが上の方にあり、これが邪魔して大きなサイズの基板が入らない状態でした。今回はプリント基板固定用スペーサー部をネジで固定するようにすることで幅広の基板に対応しました。カートリッジの上側は嵌め込み式にして開かないようにしています。
改善したケースの CAD 表示 |
|
下図が rear 側(後ろ側)のケース部品です。下側の辺を除く3辺の内側にズレ防止の爪を付けました。
改善したケースの CAD 表示(rear) |
|
下図が front側(手前側)のケース部品でプリント基板を固定するスペーサ部に木ネジで固定できるように穴を設けています。
改善したケースの CAD 表示(front) |
|
下の写真が 3D プリンタで出力した rear 側(左)と front 側(右)の部品の内側です。中央部分がスロットに入れる部分(ケースの下側)になります。
3D プリンタで造形した部品(内側) |
|
下の写真は 3D プリンタで出力した rear 側(左)と front 側(右)の部品の外側です。3D プリンタのベッドに貼ったフィルムと同様に艶消しの様な仕上がりになっています。
3D プリンタで造形した部品(外側) |
|
サンプルのプリント基板を rear 側に嵌め込んだ状態が下の写真になります。
プリント基板実装例 |
|
2本のネジで固定後のカートリッジの下側(スロットのカードエッジコネクタに接続される側)が下の写真です。
カートリッジケース 外観1 |
|
下の写真はカートリッジを上側から見た外観になります。
カートリッジケース 外観2 |
|
今回は新たな試みとして3Dプリンタで出力した本カートリッジケースをBOOTHで配布することにしました。
twitterに投稿した動画付きメッセージを貼っておきます。動画はフル画面で見るとケースの質感をより感じることが出来ます。
自作のMSX用カートリッジケースを幅広のプリント基板にも対応できるように改善してみました
— skyriver (@wcinp) August 26, 2022
また新たな試みとしてBOOTHでも配布できるようにしてみましたhttps://t.co/id50OzU2h8#MSX #カートリッジケース #3Dプリンター pic.twitter.com/eYfRDj5imk
[TOP] [ 前へ ] 連載記事 [ 次へ ]
MSX1(CF1200)の購入(その1)カーリッジケースの作成 [MSX]
最近、Twitter では MSX3 の話題で賑わっています。私は MSX の実機を弄ったことは無いのですが CPU が Z80 なので興味が沸き、MSX1 の初期の頃の機種である National 製 CF1200 の中古をマニュアル&箱付きで購入してみました。
基本的な機能しか試していませんが動作上の問題はなさそうです。
しかし、これだけでは内蔵 ROM から起動する BASIC で遊べるだけで他に何もできません。そこで、ROM を実装できる カートリッジ用基板が安く販売されていたので購入してみました。
これを使えばモニタプログラム等作り、カートリッジから立ち上げることが出来るようになります。
基板が剥き出しの状態では扱いづらいのでカートリッジのケースを作ることにしました。ネットで探すとケースのSTL ファイルがいくつか見つかったので上記の基板が取り付けられそうなものを選び、3Dプリンタで出力してみましたが、丸ピンソケットで実装した ROM がつかえてうまくケースに収まりませんorz
そこでケースを自作しようと思いましたがケースのサイズ情報がフルセットで記載されたサイトまたは資料が見つかりませんでした^^;
下記のサイトの情報とネットで探した STL ファイルを参照してカートリッジのケースを CAD で設計してみました。
作成したケースの CAD 表示が下図になります。ROM の部分は窓で外に出し、ROM の上面がケースの外側と面一くらいになりギリギリで収まりました。
3Dプリンタで出力した結果が下の写真になります。若干お焦げが発生していますね^^;
★追記 2022/08/30 {
フィラメントの流量調整やヒートブロックへのシリコンカバー装着等により焦げ問題はかなり改善されました。
}
基板を嵌め込むと下図の様になります。基板は下側のホールで固定されていますが、これはコナミ仕様のサポータの位置だと思います。
下の写真は3Dプリンタで出力したケースに基板を格納し、蓋をネジで固定した状態の様子です。
CF1200 のカートリッジスロットに入れてみましたが問題無さそうです。
★追記 2022/08/12
何か新しいことをやってみようと思い、カートリッジシェルのSTLファイルを BOOTH にアップしてみました。
★追記 2022/08/30
BOOTH ではカートリッジケースのSTLファイルでは無く、3Dプリンタで出力したケース自体を販売することにしました。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
購入した MSX1(CF1200) |
|
基本的な機能しか試していませんが動作上の問題はなさそうです。
しかし、これだけでは内蔵 ROM から起動する BASIC で遊べるだけで他に何もできません。そこで、ROM を実装できる カートリッジ用基板が安く販売されていたので購入してみました。
カートリッジ用 ROM 実装基板 |
|
これを使えばモニタプログラム等作り、カートリッジから立ち上げることが出来るようになります。
基板が剥き出しの状態では扱いづらいのでカートリッジのケースを作ることにしました。ネットで探すとケースのSTL ファイルがいくつか見つかったので上記の基板が取り付けられそうなものを選び、3Dプリンタで出力してみましたが、丸ピンソケットで実装した ROM がつかえてうまくケースに収まりませんorz
そこでケースを自作しようと思いましたがケースのサイズ情報がフルセットで記載されたサイトまたは資料が見つかりませんでした^^;
下記のサイトの情報とネットで探した STL ファイルを参照してカートリッジのケースを CAD で設計してみました。
- MSX Datapack wiki化計画 4.1 カートリッジ仕様
- テクハンwiki Appendix A.7 カートリッジ ハードウェア仕様
作成したケースの CAD 表示が下図になります。ROM の部分は窓で外に出し、ROM の上面がケースの外側と面一くらいになりギリギリで収まりました。
カートリッジ用ケース(CAD画面) |
|
3Dプリンタで出力した結果が下の写真になります。若干お焦げが発生していますね^^;
カートリッジ用ケースの出力結果 |
|
★追記 2022/08/30 {
フィラメントの流量調整やヒートブロックへのシリコンカバー装着等により焦げ問題はかなり改善されました。
}
基板を嵌め込むと下図の様になります。基板は下側のホールで固定されていますが、これはコナミ仕様のサポータの位置だと思います。
カートリッジ用ケースと基板 |
|
下の写真は3Dプリンタで出力したケースに基板を格納し、蓋をネジで固定した状態の様子です。
完成したカートリッジケース |
|
CF1200 のカートリッジスロットに入れてみましたが問題無さそうです。
★追記 2022/08/12
何か新しいことをやってみようと思い、カートリッジシェルのSTLファイルを BOOTH にアップしてみました。
★追記 2022/08/30
BOOTH ではカートリッジケースのSTLファイルでは無く、3Dプリンタで出力したケース自体を販売することにしました。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
MSX-DOS上でのGAME言語のベンチマーク [MSX]
「MSX-DOSに自作スクリーンエディタ移植」の記事内で書いたWebMSX環境を使ったMSX-DOSでGAME言語を動かした際のサンプルプログラムではGAMEコンパイラの効果があまり出ていなかったので実用的なプログラムに近いもので実行速度を評価してみました。
WebMSXでは「MSX2+ JAPAN(NTSC)」を選択し、QuickOptionsの設定内にある「CPU Turbo」を「8x」に設定しています。
使用したプログラムはインタプリタでの実行時間が数分かかりそうなものということで縦横合計式のクイズ(私が適当に作ったもの)を全探索で解くプログラムにしました。
A-Fは1~6の範囲の整数です。
ベンチマークで使われるASCIIARTの整数版と言ったところです。
参考にtwitterにポストした動画付きコメントを貼っておきます。
計測結果は次のとおりです。
尚、後述のようにBASICソースの先頭に「DEFINT A-Z」を追加したので上記のTwitterの値より速くなっています。
★2022/02/21 追記
自作のMC68Kボード(Pic24MC68K)を追記
DEFINTには対応していないのでREMでコメントアウトして実行
★2021/10/15 追記
自作のZ80ボード(Z80GAL)を追記
★2020/09/25 追記
自作のCP/M-86ボード(Pic24V20)が16MHzで動くようになったので追記
★2020/01/28 追記
パピコン(PC-6001)にGAMEインタプリタとコンパイラを移植したので追記
クロックが約4MHzにしては遅い結果でした。VRAMのDMA等が原因?
★2020/01/18 追記
PC-G850V(ポケコン)での内蔵C言語の測定結果を追記
BASICの4倍強、GAMEインタプリタより若干速いという結果でした。
★2020/01/16 変更
PC-G850V(ポケコン)でのGAMEインタプリタをチューニングし高速化
★2020/01/15 追記
PC-G850V(ポケコン)にGAMEコンパイラを移植したので測定結果を追記
インタプリタではかなり遅かったが、コンパイルするとクロック相当の速度
★2020/01/14 追記
PC-G850V(ポケコン)にGAME80を移植したので測定結果を追記
予想外に遅いですね^^;キーセンスのシステムコールで時間が掛かっている?
★2020/01/09 追記
PC-G850V(ポケコン)の測定結果を追記。エラー対処のため、下記の変更を実施
「DEFINT A-Z」 --> comment out
for段数超過エラーのため、変数Aに関してはIF文でループ
★2020/01/09 追記
CP/M-80でのGAME80 Interpreterの測定結果を追記
★2020/01/09 追記
CP/M-68KのCBASIC(Compiler)の測定結果を追記。コンパイルエラー対応のため、下記の変更を実施
「'」 --> 「REM」
「DEFINT A-Z」 --> comment out
「END」 --> 「STOP」
※コンパイラなのにメチャ遅いですねぇ^^;;
★2019/12/31 修正
BASICソースのfor文の初期値を0から1への修正に伴いBASIC系の実行時間を修正(なんとMSX BASICがGAME80より高速になった!)
CP/M-86のMBASICが異様に遅いのが気になりますが、CPUがV20(i8088互換)なので8bitバスであることが一因かもしれません。
尚、今回のベンチマークで使用したソースは次のとおりです。
★2019/01/08 変更
終了時のメッセージからスペースを削除し、GAME言語側と合わせた
★2019/12/31 修正
for文の初期値を0から1に修正
★2020/01/05 変更
行番号をGAME言語側ソースに合わせた(実行時間計測値は変化無し)
★2020/01/18 追加
★2019/12/31 修正
for文の初期値を0から1に修正
WebMSXでは「MSX2+ JAPAN(NTSC)」を選択し、QuickOptionsの設定内にある「CPU Turbo」を「8x」に設定しています。
使用したプログラムはインタプリタでの実行時間が数分かかりそうなものということで縦横合計式のクイズ(私が適当に作ったもの)を全探索で解くプログラムにしました。
A-Fは1~6の範囲の整数です。
ベンチマークで使われるASCIIARTの整数版と言ったところです。
ベンチマーク用のクイズ |
|
参考にtwitterにポストした動画付きコメントを貼っておきます。
WebMSX(MSX2JPN:8倍速)上のMSXDOSで
— skyriver (@wcinp) December 30, 2019
B+B+F=E
E+A+C=12
B+D+F=9
9 12 E
の縦横合計(A..Fは1..6)を解くAPでGAME言語を評価した
インタプリタでは54秒、コンパイル後1秒、MSX BASICでは132秒だった
参考にpicleコンパイラ(PIC24FJ:32MHz)ではコンパイル時間も含めて0.5秒程度#WebMSX #GAME #picle pic.twitter.com/lTug7yZi13
計測結果は次のとおりです。
尚、後述のようにBASICソースの先頭に「DEFINT A-Z」を追加したので上記のTwitterの値より速くなっています。
Language | Time[sec] | Environment |
---|---|---|
GAME80 Interpreter | 54 | WebMSX MSX2+ JAPAN, CPU Turbo 8x, MSX-DOS Ver1.03 |
GAME80 Compiler | 1 | WebMSX MSX2+ JAPAN, CPU Turbo 8x, MSX-DOS Ver1.03 |
MSX BASIC | 38 | WebMSX MSX2+ JAPAN, CPU Turbo 8x, BASIC Ver3.0 |
CP/M-80 GAME80 Interpreter | 52 | Pic24CPM ボード Z-80:16MHz |
CP/M-80 GAME80 V0.03 Interpreter | 43 | Z80GAL ボード Z-80:20MHz |
CP/M-80 GAME80 Compiler | 1 | Z80GAL ボード Z-80:20MHz |
CP/M-80 MBASIC | 65(1m5s) | Pic24CPM ボード Z-80:16MHz, MBASIC Rev. 5.21 |
CP/M-86 MBASIC | 191(3m11s) | Pic24V20 ボード V20:8MHz, MBASIC Rev. 5.22 |
CP/M-86 MBASIC | 97(1m37s) | Pic24V20 ボード V20:16MHz, MBASIC Rev. 5.22 |
CP/M-86 BASIC | 85(1m25s) | Pic24V20 ボード V20:16MHz, Personal Basic Ver 1.1 |
CP/M-68K CBASIC Compiler | 319(5m19s) | Pic24CPM68K ボード MC68008:8MHz, CBASIC Ver 1.0 |
PC-G850V BASIC | 296(4m56s) | PC-G850V(ポケコン) Built-in BASIC Interpreter Z-80:8MHz |
PC-G850V GAME80 Interpreter | 87(1m27s) | PC-G850V(ポケコン) Z-80:8MHz |
PC-G850V GAME80 Compiler | 2.5 | PC-G850V(ポケコン) Z-80:8MHz |
PC-G850V C Compiler | 72(1m12s) | PC-G850V(ポケコン) Built-in C compiler Z-80:8MHz |
PC-6001 GAME80 Interpreter | 395(6m35s) | PC-6001エミュレータ(PC6001V) PC-6001's CPU is Z80:3.9936MHz |
PC-6001 GAME80 Compiler | 11 | PC-6001エミュレータ(PC6001V) PC-6001's CPU is Z80:3.9936MHz |
ehBASIC V3.52 interpreter for 68000 | 67(1m7s) | Pic24MC68K(CP/M-68K) MC68HC000-P16:16MHz |
★2022/02/21 追記
自作のMC68Kボード(Pic24MC68K)を追記
DEFINTには対応していないのでREMでコメントアウトして実行
★2021/10/15 追記
自作のZ80ボード(Z80GAL)を追記
★2020/09/25 追記
自作のCP/M-86ボード(Pic24V20)が16MHzで動くようになったので追記
★2020/01/28 追記
パピコン(PC-6001)にGAMEインタプリタとコンパイラを移植したので追記
クロックが約4MHzにしては遅い結果でした。VRAMのDMA等が原因?
★2020/01/18 追記
PC-G850V(ポケコン)での内蔵C言語の測定結果を追記
BASICの4倍強、GAMEインタプリタより若干速いという結果でした。
★2020/01/16 変更
PC-G850V(ポケコン)でのGAMEインタプリタをチューニングし高速化
★2020/01/15 追記
PC-G850V(ポケコン)にGAMEコンパイラを移植したので測定結果を追記
インタプリタではかなり遅かったが、コンパイルするとクロック相当の速度
★2020/01/14 追記
PC-G850V(ポケコン)にGAME80を移植したので測定結果を追記
予想外に遅いですね^^;キーセンスのシステムコールで時間が掛かっている?
★2020/01/09 追記
PC-G850V(ポケコン)の測定結果を追記。エラー対処のため、下記の変更を実施
「DEFINT A-Z」 --> comment out
for段数超過エラーのため、変数Aに関してはIF文でループ
★2020/01/09 追記
CP/M-80でのGAME80 Interpreterの測定結果を追記
★2020/01/09 追記
CP/M-68KのCBASIC(Compiler)の測定結果を追記。コンパイルエラー対応のため、下記の変更を実施
「'」 --> 「REM」
「DEFINT A-Z」 --> comment out
「END」 --> 「STOP」
※コンパイラなのにメチャ遅いですねぇ^^;;
★2019/12/31 修正
BASICソースのfor文の初期値を0から1への修正に伴いBASIC系の実行時間を修正(なんとMSX BASICがGAME80より高速になった!)
CP/M-86のMBASICが異様に遅いのが気になりますが、CPUがV20(i8088互換)なので8bitバスであることが一因かもしれません。
尚、今回のベンチマークで使用したソースは次のとおりです。
1' quiz solver 1000 A=1,6 1005 / ?=A 1010 B=1,6 1020 C=1,6 1030 D=1,6 1040 E=1,6 1050 F=1,6 1060 !=2000 1070 @=F+1 1080 @=E+1 1090 @=D+1 1100 @=C+1 1110 @=B+1 1120 @=A+1 1130 /"complete!" 1140 #=-1 2000 ;=B+B+F<>E ] 2010 ;=A+C+E<>12 ] 2020 ;=B+D+F<>9 ] 2030 ;=B+E+B<>9 ] 2040 ;=A+B+D<>12 ] 2050 ;=C+F+F<>E ] 2060 /"A B C D E F =" 2070 ?(2)=A ?(2)=B ?(2)=C ?(2)=D ?(2)=E ?(2)=F 2080 ] |
1 ' quiz solver 1000 DEFINT A-Z 1010 FOR A=1 TO 6 1015 PRINT A 1020 FOR B=1 TO 6 1030 FOR C=1 TO 6 1040 FOR D=1 TO 6 1050 FOR E=1 TO 6 1060 FOR F=1 TO 6 1070 GOSUB 2000 1080 NEXT 1090 NEXT 1100 NEXT 1110 NEXT 1120 NEXT 1130 NEXT 1140 PRINT "complete!" 1150 END 2000 IF B+B+F<>E THEN RETURN 2010 IF A+C+E<>12 THEN RETURN 2020 IF B+D+F<>9 THEN RETURN 2030 IF B+E+B<>9 THEN RETURN 2040 IF A+B+D<>12 THEN RETURN 2050 IF C+F+F<>E THEN RETURN 2060 PRINT "A B C D E F ="; 2070 PRINT A;B;C;D;E;F 2080 RETURN |
★2019/01/08 変更
終了時のメッセージからスペースを削除し、GAME言語側と合わせた
★2019/12/31 修正
for文の初期値を0から1に修正
★2020/01/05 変更
行番号をGAME言語側ソースに合わせた(実行時間計測値は変化無し)
/* quiz solver */ int a,b,c,d,e,f; Check() { if ((b+b+f)!=e) return; if ((a+c+e)!=12) return; if ((b+d+f)!=9) return; if ((b+e+b)!=9) return; if ((a+b+d)!=12) return; if ((c+f+f)!=e) return; printf( "\nA B C D E F = %d %d %d %d %d %d",a,b,c,d,e,f ); } main() { for (a=1; a<7; a++ ) { printf( "\n%d",a ); for ( b=1; b<7; b++ ) { for ( c=1; c<7; c++ ) { for ( d=1; d<7; d++ ) { for ( e=1; e<7; e++ ) { for ( f=1; f<7; f++ ) { Check(); } } } } } } printf( "\ncomplete!" ); } |
★2020/01/18 追加
# quiz solver var a,b,c,d,e,f; proc Check() { if ((b+b+f)=e) { if ((a+c+e)=12) { if ((b+d+f)=9) { if ((b+e+b)=9) { if ((a+b+d)=12) { if ((c+f+f)=e) { PrnStr_( "\nA B C D E F =" ); PrnDecF_( a, 2 ); PrnDecF_( b, 2 ); PrnDecF_( c, 2 ); PrnDecF_( d, 2 ); PrnDecF_( e, 2 ); PrnDecF_( f, 2 ); } } } } } } } proc main() { for (a=1; a<7; a=a+1 ) { PrnStr_( "\n" ); PrnDec_( a ); for ( b=1; b<7; b=b+1 ) { for ( c=1; c<7; c=c+1 ) { for ( d=1; d<7; d=d+1 ) { for ( e=1; e<7; e=e+1 ) { for ( f=1; f<7; f=f+1 ) { Check(); } } } } } } PrnStr_( "\ncomplete!" ); } |
★2019/12/31 修正
for文の初期値を0から1に修正
MSX-DOSに自作スクリーンエディタ移植 [MSX]
MSX-DOSはCP/M-80のDOSコールサービスに対応しているのでCP/M-80用の多くのソフトが動作します。
試しに「3チップ構成Pic24CPMマイコン(その7)GAMEコンパイラ」の記事で書いたGAME言語で試してみたところ、インタプリタ及びコンパイラが問題なく動作しました。
実機のMSXマシンが無いので動作環境としてはWebMSXを使わせていただきました。
※WebMSX環境ではALT+V操作でコピペ可能です。
GAME言語を使ってMSX-DOSのメモリを確認した結果、MSX-DOSではRST28を使っていないようでした。
CP/M-80用ディバッガのZSIDで使っているRST38をRST28に変更することでMSX-DOS上で動作しました。
ZSIDはダンプ表示1行化のパッチと「3チップ構成Pic24CPMマイコン(その4)ZSIDで小文字のシンボルを使う方法その2」の記事で書いた小文字シンボル対応のパッチを入れ、コマンド名と表示名をZSIDM(MSX用なので'M'を追加)にしました。
また、CP/M-80用のHI-TECH Cを試してみたところ問題なく動作しました。
注意点として、Bドライブに入れましたがBドライブもbootableにしないと動作後にMSX-DOSのコマンド入力状態に戻れなくなります。
CP/M-68K用に開発し、CP/M-80にも移植した自作スクリーンエディタ(sked)をMSX-DOSに移植を試みました。
MSX-DOSのエスケープシーケンスについてはMSX Datapack wiki化計画の14章 画面制御コードを参照させていただきました。
MSX-DOSには反転表示や色付き等に表示文字属性を変更するエスケープシーケンスが無いのでステータス行の区別が付きづらいため、25行目をステータス行に固定し、ファイル内容は24行表示にしてみました。
また、skedでは改ページ(^L)等の制御コードを色付きで表示していましたが、色付きができないので色なしで表示するようにしています。
画面モードは80文字x25行を想定していますのでMSX-DOSの「mode 80」のコマンドで画面モードを変更してから起動しています。
MSX-DOS用のskedは下記からダウンロードできます。商用利用以外であれば自由に使用可能です。
また、MSX-DOSでも動作するzsidも置いておきます。
試しに「3チップ構成Pic24CPMマイコン(その7)GAMEコンパイラ」の記事で書いたGAME言語で試してみたところ、インタプリタ及びコンパイラが問題なく動作しました。
実機のMSXマシンが無いので動作環境としてはWebMSXを使わせていただきました。
※WebMSX環境ではALT+V操作でコピペ可能です。
CP/M-80に移植したGAME言語をWebMSXで動かしてみた
— skyriver (@wcinp) December 1, 2019
コンパイラも動いたけどソースをコピペができないのでソースのロード/セーブ機能を追加しないと使いづらい・・#GAME言語 #GAMEコンパイラ #MSXDOS #WebMSXhttps://t.co/7OsMhjhhbX pic.twitter.com/e3KTLJSHks
GAME言語を使ってMSX-DOSのメモリを確認した結果、MSX-DOSではRST28を使っていないようでした。
MSX-DOSのGAME言語によるメモリダンプ |
|
CP/M-80用ディバッガのZSIDで使っているRST38をRST28に変更することでMSX-DOS上で動作しました。
ZSIDはダンプ表示1行化のパッチと「3チップ構成Pic24CPMマイコン(その4)ZSIDで小文字のシンボルを使う方法その2」の記事で書いた小文字シンボル対応のパッチを入れ、コマンド名と表示名をZSIDM(MSX用なので'M'を追加)にしました。
MSX-DOS上で動作中のZSID |
|
また、CP/M-80用のHI-TECH Cを試してみたところ問題なく動作しました。
注意点として、Bドライブに入れましたがBドライブもbootableにしないと動作後にMSX-DOSのコマンド入力状態に戻れなくなります。
MSX-DOS上で動作中のHI-TECHC |
|
CP/M-68K用に開発し、CP/M-80にも移植した自作スクリーンエディタ(sked)をMSX-DOSに移植を試みました。
MSX-DOSのエスケープシーケンスについてはMSX Datapack wiki化計画の14章 画面制御コードを参照させていただきました。
MSX-DOSには反転表示や色付き等に表示文字属性を変更するエスケープシーケンスが無いのでステータス行の区別が付きづらいため、25行目をステータス行に固定し、ファイル内容は24行表示にしてみました。
また、skedでは改ページ(^L)等の制御コードを色付きで表示していましたが、色付きができないので色なしで表示するようにしています。
画面モードは80文字x25行を想定していますのでMSX-DOSの「mode 80」のコマンドで画面モードを変更してから起動しています。
MSX-DOS上でのsked |
|
MSX-DOS用のskedは下記からダウンロードできます。商用利用以外であれば自由に使用可能です。
- SKED_MSX_20191209.zip
★2019/12/09 変更 ステータス表示部効率化
また、MSX-DOSでも動作するzsidも置いておきます。