2006,06,16, Friday
MSX × SDCC
仕事がそろそろ終わりに向かいつつあり、また夜中にゴソゴソする元気が出て参りました
今回のお題は、Z80用のCコンパイラでフリーなものは無いものか?と、いつもの気まぐれから始まり、目に止まったSDCC(Small Device C Compiler)で遊んでみようというものです。
今回のお題は、Z80用のCコンパイラでフリーなものは無いものか?と、いつもの気まぐれから始まり、目に止まったSDCC(Small Device C Compiler)で遊んでみようというものです。
さて、このSDCC、感触は中々良好です。
(付属のアセンブラ(AS-Z80)は少しクセがありますが。。)
コンパイル→リンクで、IntelHex形式のデータまでは吐き出してくれます。
普通にROM化するならこれで十分なのですが、MSXで使用する為には、バイナリ形式に変換しなければなりません。
さらには、バイナリヘッダを付加して、bloadで読み込めるようにしなければなりません。
しかし、そんな都合の良いツールはその辺にコロがっていません。
仕方が無いので作ってみました → Hex2Bin.lzh (かなり手抜きですが)
※不具合が見つかったので、公開を一時停止しています。
さてさて、肝心のMSXでC言語を、という話題ですが……
MSXにはMSX-DOS用のMSX-Cがあり、MSXマガジン永久保存版3の付録についていますが、なにせ書式は古式ゆかしいK&R。
書きにくい上にエミュレータ上ではソースも編集しにくく、コンパイル速度も遅いと、三重苦だったので今回はパス。
IARのEWZも持っているのですが、ウェブログのネタにするからには、ここはやはりフリーソフトで勝負したい。
で、検索をかけてみて目に止まったのがSDCCというワケでした。
……と、能書きはこれくらいにして、早速実験開始
SDCCをインストールして、謹製のHex2BinをPathの通った場所に置いて、コードをチョチョイと組んでMake。
まずは小手調べということで、やっぱりコレでしょかね
本来は「printf( "Hello, World!n" ) ;」ですが、付属のstdioはそのままでは使えそうに無かったので(当然か)、今回は文字列の出力にMSX-DOSのシステムコールを使ってお茶を濁しています。(sysio.sにgetc, putc, gets, putsの4つだけ作っています)
ソース一式 → Hello.lzh
次回は、もうちょい色気のあるものを作ってみたいと思います
(付属のアセンブラ(AS-Z80)は少しクセがありますが。。)
コンパイル→リンクで、IntelHex形式のデータまでは吐き出してくれます。
普通にROM化するならこれで十分なのですが、MSXで使用する為には、バイナリ形式に変換しなければなりません。
さらには、バイナリヘッダを付加して、bloadで読み込めるようにしなければなりません。
しかし、そんな都合の良いツールはその辺にコロがっていません。
仕方が無いので作ってみました → Hex2Bin.lzh (かなり手抜きですが)
※不具合が見つかったので、公開を一時停止しています。
→第3回にて公開を再開しました。
さてさて、肝心のMSXでC言語を、という話題ですが……
MSXにはMSX-DOS用のMSX-Cがあり、MSXマガジン永久保存版3の付録についていますが、なにせ書式は古式ゆかしいK&R。
書きにくい上にエミュレータ上ではソースも編集しにくく、コンパイル速度も遅いと、三重苦だったので今回はパス。
IARのEWZも持っているのですが、ウェブログのネタにするからには、ここはやはりフリーソフトで勝負したい。
で、検索をかけてみて目に止まったのがSDCCというワケでした。
……と、能書きはこれくらいにして、早速実験開始
SDCCをインストールして、謹製のHex2BinをPathの通った場所に置いて、コードをチョチョイと組んでMake。
まずは小手調べということで、やっぱりコレでしょかね
#include "sysio.h"
void main( void )
{
sys_puts( "Hello, World!rn$" ) ;
}
本来は「printf( "Hello, World!n" ) ;」ですが、付属のstdioはそのままでは使えそうに無かったので(当然か)、今回は文字列の出力にMSX-DOSのシステムコールを使ってお茶を濁しています。(sysio.sにgetc, putc, gets, putsの4つだけ作っています)
ソース一式 → Hello.lzh
次回は、もうちょい色気のあるものを作ってみたいと思います
| MSX | 03:46 AM | comments (1) | trackback (0) |
コメント
良記事で大変参考になります!
サブルーチンだけCで実装したいと思い、BASICとCのインターワークについて調べていてこちらにたどり着きました。
実際にmakeしてBASIC画面で\"Hello\"が出たところでおおー!と感激してしまいました。ありがとうございます!
サブルーチンだけCで実装したいと思い、BASICとCのインターワークについて調べていてこちらにたどり着きました。
実際にmakeしてBASIC画面で\"Hello\"が出たところでおおー!と感激してしまいました。ありがとうございます!
| 通りすがり | EMAIL | URL | 2015/04/19 12:28 PM | aUh35Fnw |
コメントする
この記事のトラックバックURL
http://piroyan.com/lablog/tb.php/33