3チップ構成Pic24CPMマイコン(その3)ZSIDで小文字のシンボルを使う方法 [Z80]
「レトロマイコンZ80ボードの構想(その19)PCB化」の記事の最後の方に書いたようにHI-TECH CはANCI規格にも準拠していてプロトタイプ宣言や構造体も使えCP/M-80上で使用可能なC言語の中では最も使い易いのものの一つではないかと思います。
また、添付されているREAD.MEを見ると
と書かれており、営利的な使用も含めて特に使用制限は無いようです。
HI-TECH C(V3.09)はマニュアルも含めて ここ からダウンロード可能です(z80v309.exeにコンパイラが入っている)。
開発元のHI-TECHソフトウェア社は2009年3月にマイクロチップ社に買収され、現在、マイクロチップ社が提供しているPIC用Cコンパイラの開発元でもあります。
CP/M版HI-TECH Cのマニュアル(Z80DOC.TXT)を見るとZAS(アセンブラ)での数字表現のテンポラリラベルの後にf(forward)またはb(back)を付けて参照できる辺りにもPIC用の開発環境に通じる片鱗を垣間見ることができます。
HI-TECH Cでコンパイル時に -f オプションを付けることでシンボルファイルも作成できディバッグ時に活用できます。
また、シンボルは大文字/小文字の区別もありC言語を使う上では助かります。
しかし、ZSIDにシンボル情報を読込ませることはできましたが、コマンド内でシンボルを参照できませんでした・・・
ZSIDへHI-TECH Cのシンボルファイル読込み
上記のようなZSIDでシンボル参照できない問題の解決方法をネットで探しましたがすぐには見つかりませんでした・・・
リスト表示ではシンボル表記になることからシンボル情報自体はZSIDに読込まれているようです。
コマンドで入力したシンボル文字列がZSIDの内部処理で大文字変換されるため、内部のシンボル文字列とマッチせず入力したシンボルが参照できないようです。
(因みにMBASICは小文字も入力可能なので小文字のファイル名も作成でき、逆に小文字のファイル名のファイル削除にも使えます)
そこで、ZSIDの内部処理でコマンドラインを大文字変換している部分にパッチを当ててみました。
CP/M-80のコマンドはサイズが小さいので該当の処理を探すのは楽です^^
ZSIDへのパッチはDDTを使って当てていますw
ZSIDへパッチ適用し小文字のシンボルに対応
ZSID内でコマンドからもシンボルが使えるようになりました^^
注意点としてはコマンド自体が小文字だとエラーになるのでコマンドを大文字で入力する必要があります(パッチ適用前は大文字変換されるのでエラーにならなかった)
上記の制約は発生しますが、シンボルが使えるようになるメリットは私にとっては大きいです^^
★追記 2024/01/14
「チップ構成Pic24CPMマイコン(その4)ZSIDで小文字のシンボルを使う方法その2」の記事にシンボル部のみ大文字変換しないようにするパッチ方法について記載しました。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
また、添付されているREAD.MEを見ると
The HI-TECH Z80 CP/M C compiler V3.09 is provided free of charge for any use, private or commercial, strictly as-is. No warranty or product support is offered or implied. You may use this software for whatever you like, providing you acknowledge that the copyright to this software remains with HI-TECH Software. |
と書かれており、営利的な使用も含めて特に使用制限は無いようです。
HI-TECH C(V3.09)はマニュアルも含めて ここ からダウンロード可能です(z80v309.exeにコンパイラが入っている)。
開発元のHI-TECHソフトウェア社は2009年3月にマイクロチップ社に買収され、現在、マイクロチップ社が提供しているPIC用Cコンパイラの開発元でもあります。
CP/M版HI-TECH Cのマニュアル(Z80DOC.TXT)を見るとZAS(アセンブラ)での数字表現のテンポラリラベルの後にf(forward)またはb(back)を付けて参照できる辺りにもPIC用の開発環境に通じる片鱗を垣間見ることができます。
HI-TECH Cでコンパイル時に -f オプションを付けることでシンボルファイルも作成できディバッグ時に活用できます。
また、シンボルは大文字/小文字の区別もありC言語を使う上では助かります。
しかし、ZSIDにシンボル情報を読込ませることはできましたが、コマンド内でシンボルを参照できませんでした・・・
|
上記のようなZSIDでシンボル参照できない問題の解決方法をネットで探しましたがすぐには見つかりませんでした・・・
リスト表示ではシンボル表記になることからシンボル情報自体はZSIDに読込まれているようです。
コマンドで入力したシンボル文字列がZSIDの内部処理で大文字変換されるため、内部のシンボル文字列とマッチせず入力したシンボルが参照できないようです。
(因みにMBASICは小文字も入力可能なので小文字のファイル名も作成でき、逆に小文字のファイル名のファイル削除にも使えます)
そこで、ZSIDの内部処理でコマンドラインを大文字変換している部分にパッチを当ててみました。
CP/M-80のコマンドはサイズが小さいので該当の処理を探すのは楽です^^
ZSIDへのパッチはDDTを使って当てていますw
|
ZSID内でコマンドからもシンボルが使えるようになりました^^
注意点としてはコマンド自体が小文字だとエラーになるのでコマンドを大文字で入力する必要があります(パッチ適用前は大文字変換されるのでエラーにならなかった)
上記の制約は発生しますが、シンボルが使えるようになるメリットは私にとっては大きいです^^
★追記 2024/01/14
「チップ構成Pic24CPMマイコン(その4)ZSIDで小文字のシンボルを使う方法その2」の記事にシンボル部のみ大文字変換しないようにするパッチ方法について記載しました。
[TOP] [ 前へ ] 連載記事 [ 次へ ]