以前作ったCPUボードの開発環境整備を気が向いたときにしていますが、久々に6809ボードを引っ張り出してきました。酷い埃まみれ・・
6809用のクロスCコンパイラとしてMicro-Cというのがありましたが、今動かそうとするとありがちなエラー
が出てしまいます。古いCPUのアセンブラ/コンパイラでMS-DOSのコマンドラインで動いていたようなものはほぼ全滅ですね。
他に探すとCMOCというコンパイラがフォルダから発掘されました。これは米国Tandy社のTRS-80ColorComputer(通称CoCo)をターゲットにしたもので、どこかからか拾ってきてインストールしたのが2016年くらい。バージョンが0.1.32となっています。
これはもともとcygwin環境下で動かすものですがWin32用にビルドされたものを落としてきたようなのです。ところがこれも今動かすと何故かリンク未解決エラーが消せません。このボード用に活用していたかも覚えていないのですが、たしかコンパイラドライバがちゃんとWin32へ移植できてなくプリプロセッサ、アセンブラ、リンカを個別に呼び出すバッチを自分で組んでました。環境変数の設定に問題があるのかもしれません。
このコンパイラを現時点でさがすと今も開発は継続されていて直近バージョンが0.1.69になっていました。Win32用のパッケージもあったのでさっそくアップデートして簡単なソースをコンパイルしてみたらちゃんとバイナリまでできたので使えそうです
0xFFC0番地にあるパラレルポートにインクリメントデータを出力するいつものLチカテストをしてみます
起動させるのはコンパイラドライバcmocのみです。コマンドラインのオプションも --srecでSフォーマット出力、--org=0x0000で先頭番地を0番地に指定するくらいです。
リスティングファイルをみると最適化の過程などいろいろコメントが埋め込まれてきますがちょっとそれをどけてやるとかなり質の良いコードを生成しているのがわかります
Sフォーマットの形でボードに転送して実行してみました。パラレルLEDのLSBで約43kHzでチカチカしています。