CR3(落ち物ミニゲーム)+BDS C用MSXライブラリ

http://www.nabeta.tk/msx/cr3.html

バージョンアップしました。
MSXライブラリはMSX-DISK-BASICにも対応して、MSX-DOSがなくても動作するプログラムを作れるようになりました。
そして、CR3のソースは、asu ansi2krを使用することによりANSI C記述に変えました。
また、HI-TECH Cにも対応しました。
HI-TECH CでのMSX機能は自作しました。
HI-TECH CのMSX機能はライブラリ化せずCソースの中にC言語とZ80インラインアセンブラで書いています。
HI-TECH CのほうはMSX-DOSでMSX-DISK-BASICに対応しません。

add MSX BLOAD header tool for binary file

http://www.nabeta.tk/msx/bloadmake1.0.zip

MSXのBLOADファイルのヘッダをバイナリファイルに付けるプログラムを作りました。
一度作ってすぐ消してしまってまた作りました。
Windows版です。C++ Builderで作りました。
C言語ソース付きです。
デフォルトは読み込みアドレスと実行アドレスは8100H、
読み込みサイズはファイルサイズです。
値はオプションで任意に変更できます。
また、これから公開する予定のBDS CのMSX-BASIC環境の初期化ルーチンに対応させるためのオプションを持っています。

ANSI C to K&R converter for BDS C,MSX-C asu ansi2kr version up 1.2

add MSX-DOS2 version
Windows、CP/M、MSX-DOSに続きMSX-DOS2専用版も登場。
support BDS C and MSX-C
ANSI C to K&R C converter, asu ansi2kr for CP/M,MSX-DOS and for MSX-DOS2 download

ANSI C to K&R C converter, asu ansi2kr for Windows download

このソースはANSI Cで書かれてWindowsのC++ Builderでコンパイルしたものですが、
asu ansi2krで自身のソースを変換することにより、BDS CでもMSX-Cでもコンパイルできました。
つまり、K&RのはずのBDS CもMSX-Cもasu ansi2krさえあれば、ANSI Cにある程度対応したコンパイラとして使えるわけです。

やはりZ80のセルフコンパイラはBDS Cが最強だった。

ANSI CのソースをKR&Cのソースに変換するasu ansi2kr を開発中ですが、
Windows版だけではなくCP/M、MSX-DOS版も用意したいと思い、
BDS C V1.60、HI-TECH C(CP/M)、Ver 3.90、MSX-C Ver 1.2でもコンパイルしてみたんですが
MSX-Cは論外のような感じ。
式を分解しないとエラーになるし、関数を小さく分けないとエラーになる。
関数名は6文字までしか区別できないので関数名も短く変えまくりました。
それらをやってコンパイルできるところまで持っていっても生成したバイナリは正しく動作しなかった。
後での追記です、ソースの先頭に#pragma noregaloを書いて且つ MSX-Cのcfに、-t オプションを付けたら正しく動作しました。
#pragma noregaloとcfの-tオプションなしのMSX-Cは爆弾抱えたような状態で使うべきではないですね。
大きなソース修正が必要でしたが一応コンパイルはできたのでなんとか使えないこともないです。
MSXエミュレーターのturboRモードでもMSX-Cは遅いです。
HI-TECH Cはasu ansi2krの最初のバージョンはコンパイルできたんですが処理を追加して少しソースが大きくなったら、”$TMP1.$$$:5561: Too many temporary labels”とエラーが出てコンパイルできなくなった。
ソースを分ければいいんだろうけども、BDS CでコンパイルできているのにわざわざHI-TECH Cのためだけにそんなことはしたくない。

MSX-Cは論外と最初思いましたが、生成したファイルサイズがすごく小さいものができました。
BDS Cよりも5000バイトぐらい小さかった。
今はもうHI-TECH Cではコンパイルできなくなりましたが、コンパイルできたVer 1.0ではBDS CよりもHI-TECH Cのほうが2000バイトぐらいファイルサイズが大きくなりました。
メモリが少ないMSXではファイルサイズは結構重要なんです。
ファイルサイズが大きいということはそれだけ使えるメモリが少ないということです。

なくしたプログラムの作り直し

今からDOS窓のDELコマンドのミスで削除してしまった自作プログラムを最初から作り直します。
これをしないことには先に進めない。
完成してあまり間があいてないのに削除してしまったのは初めてかも知れない。

やりはじめたけども、いちど作って完成したものをまたはじめから作り直すとか
ばかばかしい感が半端ないです。
やる気もあまり出ないです。

追記、
二回目作が完成しました。
しかし、他にもまだソースを間違って削除したものが残っています。

ANSI C to K&R C converter for CP/M,MSX-DOS

Update Ver 1.2 18 Mar 2017
add MSX-DOS2 version
バージョンアップしてリンクも書き換えました。
MSX-DOS2専用版も登場。
ANSI C to K&R C converter, asu ansi2kr for CP/M,MSX-DOS and for MSX-DOS2 download

ANSI C to K&R C converter, asu ansi2kr for Windows download

Windows版に続いて、CP/M,MSX-DOS版も公開しました。
OSを超えて動くところがC言語のすごいところです。

ZCASMB. BDS C’s ZCASM for Windows

including file Version up 18 Mar 2017
but zcasmb same version.
同梱している関連ソフトのバージョンアップにより中身を替えました。
zcasmb自体は変更していません。
http://www.nabeta.tk/msx/zcasmb1.6a.zip

BDS Cでアセンブリ言語とのリンクをするためのプリプロセッサーのZCASMをWindowsに移植しました。
名前はZCASMBに変えました。
C++ Builderで、ANSI C記述で書きました。
ソース込みです。
ZCASMのバグも修正してほんの少しだけ機能も強化しています。
セットで使うであろう関連ソフトのasu ihex2bin.exe と、aapp.exeと、asu ansi2krも同梱しています。
別途フリーのWindows版のZ80アセンブラのzmac があるといいです。

I made intel HEX file to binary file converter.

Version Up to ver 1.1
18 Mar 2017
http://www.nabeta.tk/msx/ihex2bin1.1.zip

FFFF番地まで対応。
Z80アセンブラを使うのに必要だったので作りました。
Windows版です。
コマンドラインで、DOS窓で使います。
C++ Builderで、ANSI C記述で作りました。
ソース込み。
ライセンスは、2-Clause BSD License
ソースや実行ファイルをたまになくすので、なくす前に公開しました。

I made ANSI C to K&R C(BDS C,MSX-C)converter,translator

This is a old version. please wait upload new version.
バージョンアップしました。
これは古いので新しいバージョンのアップロードをお待ちください。
http://www.nabeta.tk/msx/ansi2krwin1.0.zip

名前は、asu ansi2kr です。
これはBDS Cをある程度ANSI C化するためのものです。
ANSI C記述のソースをK&Rソースにある程度変換します。
おそらくMSX-Cにも有効だと思います。
C++ Builder(ANSI C記述)で作りました。
ソース込みで公開しました。
ライセンスは2-clause BSD license です。
添付している実行バイナリはC++ BuilderでコンパイルしたWindows版ですが、
BDS CでコンパイルしたCP/M、MSX-DOS版と
HI-TECH CでコンパイルしたCP/M、MSX-DOS版も存在します。
現時点、CP/M、MSX-DOS版の実行バイナリは公開していませんがする予定でいますし、ソースあります。
BDS Cは単体ではANSI Cに対応していませんが、このasu ansi2krで変換かけるとasu ansi2krのソースをBDS Cでコンパイルできます。
まだホームページは作っていないです。
最近いろいろ作っていて、まとめて公開しようと思っていたのですが、昨夜、最近作った二つのプログラムを誤って削除してしまい無くしてしまいしました。
いますぐまとめて公開することはできなくなりました。
そこで、一番最後に作ったこの asu ansi2kr を先に公開します。
Vectorにも登録申請しました。
変換前と変換後の行番号が一致してずれないのでコンパイラが出力するエラー行を見てANSI仕様の変換前のソースの修正をすることができます。
このコンバーターのおかげで、BDS CのソースをC++ BuilderやHI-TECH Cと共通化できて便利です。