piroyan's Lablog

実験の合間に思いついた戯言などをつらつらと

<<次の記事 前の記事>>

MSX × SDCC

仕事がそろそろ終わりに向かいつつあり、また夜中にゴソゴソする元気が出て参りましたにひひ

今回のお題は、Z80用のCコンパイラでフリーなものは無いものか?と、いつもの気まぐれから始まり、目に止まったSDCC(Small Device C Compiler)で遊んでみようというものです。



さて、このSDCC、感触は中々良好です。
(付属のアセンブラ(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。

まずは小手調べということで、やっぱりコレでしょかねにこっ

Hello, World!

#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\"が出たところでおおー!と感激してしまいました。ありがとうございます!

| 通りすがり | EMAIL | URL | 2015/04/19 12:28 PM | aUh35Fnw |

コメントする








この記事のトラックバックURL

http://piroyan.com/lablog/tb.php/33

トラックバック

PAGE TOP ↑

CALENDAR

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31   
<前月 2024年10月 次月>

QR CODE

QRコード

PROFILE

NEW ENTRIES

CATEGORIES

ARCHIVES

RECENT COMMENTS

RECENT TRACKBACK

PRODUCTS

LINK

BANNER

piroyan's lablog banner

リンクする際にお使い下さい。
※リンクはご自由にどうぞ。

大きいサイズはコチラ

POWERED BY

BLOGNPLUS(ぶろぐん+)

OTHER