SSブログ

モトローラフリーアセンブラをWIndowsで [8bitマイコン]

68系の開発にモトローラのフリーアセンブラを使用しているが、これはMS-DOS時代のソフト(いや元々はunix系だったのかな?)で今のWindowsでは直接は動かない。ただこのアセンブラはソースも公開されているのでリコンパイルしてWindowsで動くようにしてみる。
さて、ソースは確かAMIGA版のやつがソース付だったと思ったが、今現在AMIGAは動作出来る状態にない。ネットであさるとGithubで難なく見つかった。

https://github.com/JimInCA/motorola-6800-assembler

ただし、公開者が色々手を入れてるみたいで完全なオリジナルではない。
Linuxでmakeできるようになっているが、このソースを利用してWindowsで動くようにしてみる。

(1)Windows Subsystem for Linux
これはLinuxだからそのまんま。
すっぴんのWindows Subsystem for Linuxはgccもmakeも入ってないのでインストールする必要があるが、makeするだけ。
当然だがWindowsのコマンドプロンプトから実行できるわけではない。

(2)コマンドプロンプトからmake
コマンドプロンプト、あるいはPowerShellからmakeできるか?
まずはVisual C++。
makefileをVisualC向けに書き直してみたがでエラー。
gnu系のmakeとnmakeでは書式が違ったかな?
bcc32(C++Builder)でmakeしてもだめ。Borlandのmakeはnmakeと同じだったような気もする。
もう何年(十何年)?もmakefileなんか書いてないし、すっかり忘れているのでこれ以上追求するのはやめ。

(3)C++ Builder
次に(Vsual Studioでもできるが)C++Builderの統合開発環境。
C++Builderを起動し、新規作成→その他→コンソールアプリケーションでプロジェクトを作る。
ターゲットフレームワークなし。
ソースの種類はC、マルチスレッドとプロジェクトソースの指定のチェックをはずす。
プロジェクトグループとグループ所属の空のプロジェクトが作成される。

cb_proj_console.jpg
cb_proj_console2.jpg

プロジェクトグループ名はオリジナルのあわせてmotoasmとでもし、プロジェクトはas0(6800用アセンブラ)と変更しておく。

cb_namechange.jpg

プロジェクトも一つ同時に作られるがプロジェクト名を
プロジェクトのあるフォルダにアセンブラソースを全部コピー。
プロジェクトas0に対して「プロジェクトに追加」でソースを追加。

cb_proj_add.jpg

ソースはdo*.c、table*.cが各CPUの個別ソースでそれ以外は共通。
なのでプロジェクトas0(6800向アセンブラ)ならdo0.c、table0.cとそれ以外を全部追加。
念のためヘッダファイルもプロジェクトに追加。
プロジェクト新規作成時にできたデフォルトのソースとヘッダは削除。

cb_proj_del.jpg

同様にプロジェクトグループに対してプロジェクト(as1,as4,as5,as9,as11)を新規追加していく。
そしてそれぞれのプロジェクトにソース(do*.c,table*.cだけ各個でそれ以外は全部同じものを指定)を追加していく。

cb_proj_add_end.jpg

それが終了したら全てのプロジェクトをビルド。as0,as1,as4,as5,as9,as11が一気にビルドされる。

cb_proj_build.jpg

ビルドするとヘッダファイル"unistd.h"がないとエラーがでる。

cb_include_err.jpg

"unistd.h"はunix系依存のヘッダファイル
エラーがでるinclude行をコメントアウトしてリビルドをかけると警告はでるがエラーもなく成功する。
警告はopen,close,read,write,create,lseek。
今は使わない古い関数ですね。
fopen等に変更すればいいはずだが、ソースを色々いじる必要があるので"io.h"で代用。これで警告もなくなる。
今までのソース等いくつかアセンブルさせてみたが問題なくアセンブルできているもよう。
まぁ全てのCPU版を試したわけではないが、とりあえず問題なさそう。
あとは今使ってるROMライタにあわせて、IntelHexをはけるようにできれば…



nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。