カテゴリー: C言語

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のプログラムとできるだけ同じ条件で処理時間を比較して比較してみたかったので […]

Z80: SDCC – Small Device C Compiler

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

CC65:6502-CORE用ライブラリの再構築

現在インストールされているCC65に合致したxcore.libを再構築する方法を示します。 ライブラリファイルが収められている[CC65-CORELIB.zip]を展開する 展開されたCCLIBフォルダをカレントディレク […]

CC65:プログラムの起動アドレスの自動設定

C言語によるプログラミングとは別に、アセンブラで「開始アドレス設定: STARTVEC.ASM」のファイルをアセンブルし、Sレコードの出力ファイルSTARTVEC.SRECを作成しておきます。 このファイルで生成されたS […]

CC65:エラトステネスのふるい

プログラムの処理時間を計測するための関数の利用例として、\ref{sec:osi-basic-benchmark}で紹介した素数を求めるプログラムをC言語で記述したものを「エラトステネスのふるい:sieve.c」に示しま […]

CC65:出力コードの評価

ここでは、CC65が生成するアセンブリコードの内容をみてみましょう。 対象は、ACIA(6551)のとってもシンプルな入力用コードです。 C言語のコードは図\ref{fig:c-consc}のconin()関数です。 人 […]