月: 2022年6月

Z80:SDCCの関数呼び出し規約

低レベルの機能をアセンブラで書いたものをC言語から利用したり、モニタの機能をC言語から利用するために、C言語の関数呼び出しのデータの受け渡し方法を確認してみました。 関数呼び出し時のレジスタ等の利用法の関数呼び出し規約は […]

Z80:SDCC:エラトステネスのふるい

Z80-COREでも、SDCCを使用してC言語でエラトステネスのふるいのプログラムを記述・実行できます。 Z80-CORE用のSDCCのライブラリをまだ作成していないので、プログラムの前半には、文字の出力や計時機能など、 […]

SDCC:実数演算機能:計算できるけど表示できない???

実数計算はできるけど、計算結果の表示はできない? SDCCにはfloat型(しかもIEEE形式)の実数演算機能が備わっています。doubleはさすがにありません。 float1.c 喜び勇んで上記のような確認用のプログラ […]

Z80:SDCC:crt0.s 初期化ルーチン

オリジナル SDCCのZ80用のcrt0.sには、Z80-COREでの使用時に障害となるいくつかの記述が見て取れます。 SDCCで作成されたコードは、それ単体でROMに書き込んで実行することを想定しているためだと思われま […]

Z80:SDCC:マンデルブロ集合表示プログラム

SDCCでは、実数の計算ができるので、BASICで書かれたマンデルブロ集合表示プログラムをSDCCに移植して性能評価を行ってみました。 BASICのプログラムとできるだけ同じ条件で処理時間を比較して比較してみたかったので […]

NMIでのタイマー割込みによる計時機能

いろいろとお小言をいただく前に言い訳をしておきます。。。 NMIによる計時処理 XENESISシリーズのボードでは、計時機能を実現するために、PICのタイマーで作成したインターバル信号を各マイクロプロセッサのNMIに接続 […]

Z80-COREのメモリ管理機構:全RAM化

Z80-COREはコンパクトでシンプルなその構成とは裏腹に、以下に示す、ユニークなあるいはかなり強力なメモリ管理機構を持っています。 起動時には、メモリ領域の最初の16KBをROMが占めるが、任意の時点で、メモリのすべて […]

Z80: SDCC – Small Device C Compiler

Z80-COREのプログラミングツールとして、CコンパイラSDCCを紹介します。 SDCCは昔から存在は知っていたのですが、SDCCがサポートするPICのプログラミングでは、Microchipの開発環境とコンパイラを使っ […]