X68000 Z 実機で、アプリ開発する方法をまとめます。Python はこちら
ほかの解説動画はこちら。
- X68000 Z 資料
- X68000 Z ツール入手先
- X68000Z アプリ開発用SDカードの作り方
- X68000との出会い
- 9VAeきゅうべえとの関係
- エディタEDの使い方
- ヒストリー、カーソルキー設定
- コマンドパス、LIBの設定
- コンパイラーフロッピー(XDF) Bドライブの作り方
- アセンブラ、リンカーをAドライブのBINにいれる
- C サンプルプログラム(マウスで線を引く)
- コンパイル、アセンブル、リンク用バッチファイル
- BASICが起動しない場合
- X68000 Z の画面キャプチャ
- 複数のフロッピーの切り替え
- GCC サンプルプログラム
- MicroPython
- MicroPython サンプルプログラム(マウスで線をひく、キーで終了)
- MicroPython 参考資料
- 解説動画の作り方
X68000 Z 資料
参考にした記事はこちらです。
- はじめての X68000 Z (note)
- X68000 の開発環境(Qiita)
- X68000 zで音楽を流す(MachiaWorks)
- Zマニュアル(サポート>マニュアル)
- OhX、OhMZなど
- X68K:IOCS
- iocsコール
X68000 Z ツール入手先
- DiskExplorer(XDFファイル作成)
- ブランクXDFファイル (出典Twitter)
- X68000 LIBRARY 各種リソース
- C Compiler PRO-68K
- HAS,X(アセンブラ)
- HLK.X(リンカー)
- 使えるSDカード(SDHC 最大32GB FAT32)
下は、まだ使えてません・・
X68000Z アプリ開発用SDカードの作り方
- DiskExplorer ダウンロード
- Lhaplus ダウンロード
- ブランクXDFダウンロード
- HumanSys ダウンロード
- SDカードの直下に「automount.xdf」という名前でいれておく
X68000との出会い
- X68000は、はじめてアニメーションをつくったパソコンです。lanma.x というベクトルアニメエディタを自作し、ASCII や 電脳倶楽部で公開しました。下は、lanmaで作ったアニメに、9VAeきゅうべえでイフェクトをつけた作品。登場人物は実在し、身内で公開したときは、めちゃうけました。
- 当時、最高のグラフィックス性能があり、簡単に音を鳴らすことができ、gcc コンパイラで高速な処理ができました。
- それが、X68000Z になって、よみがえるというので、当時を思い出してアプリ開発してみようと思いました。
- X68000 Z 実機のみでプログラム開発することを目指します。
9VAeきゅうべえとの関係
- 9VAe は、イラストに動きをつけてオリジナル動画素材が作れる無料のモーショングラフィックスアプリです。lanma.x は線が動く音が鳴るアプリでしたが、9VAeは、それに、ポリゴン塗りつぶし、半透明グラデーション、タイル塗りつぶし、SVG入出力、MP4出力などを追加したものです。この解説動画も9VAeで作成しました。
- 9VAeを、X6800 Zで動かそうと思ったのですが、プロジェクトが10MBあり、X68000 Z のフロッピーディスクが、1.2MBなので、そのままの移植は難しそう・・
- どうするか考え中
エディタEDの使い方
micro Emacs を使いたかったのですが、サイズが小さい Human68K bin の ED.X をつかうのがよさそう。PDFマニュアル(p.296)
EDの機能 | キー操作 |
終了 | ESC+Q |
上書き保存 | ESC+H |
全部保存して終了 | ESC+E |
ファイルを開く | ESC+F |
ファイルを閉じる | ESC+K |
ファイル切り替え | ESC+AまたはD |
ヒストリー、カーソルキー設定
Human68K コマンドを再入力するとき便利。PDFマニュアル(p.22) (p.214)
key.his を HISフォルダにいれておくとカーソルキーで以前入力した命令を修正して再実行できるので便利です。
- Human68K コマンドで、KEY を実行
- U (更新)
- 入力は、[KEY.SYS]、(2回目以降は前回作成した key.his )
- 出力は、key.his
- 処理を開始。次の4つのキーを変更「F」「2」「5」「Ctrl+W同時押し」「Enter」のように押すと設定できます。
F25 ^W
F26 ^S
F27 ^D
F28 ^E - Enter 2回で終了。KEY.HIS ができます。
- KEY.HIS を、\HIS フォルダにコピー。移動でもよいがオリジナルをのこしておくと安心。
- 作成した KEY.HIS をSDカードにいれておき、新しいフロッピーのHISフォルダにコピーできるようにしておくと便利です。
コマンドパス、LIBの設定
- Bドライブに コンパイラをいれて、パスを設定するには、Aドライブの autoexec.bat を、ed.x で編集して、パスを追加します。
ed autoexec.bat
PATH A:..........
の最後に ;b:¥(半角)などを追加します。下は、Cコンパイラ用のパスです。さらに、set lib=b:\lib も追加します。
PATH A:..........;B:\cc;
set lib=b:\lib
- X68000Zの電源ををOFF/ON して再起動。これでBドライブの cc が起動できました。
- lib はライブラリの場所の設定で、リンカーでつかいます。
コンパイラーフロッピー(XDF) Bドライブの作り方
ブランクの XDFを複製して以下をいれます。
- XCシステムディスク2をダウンロードして、LHAを展開。ブランクXDFにコピーします。CCフォルダに、Cコンパイラがはいっています。
- XCシステムディスク修正パッチを展開。MATH.H, MOUSE.H を、INCLUDEフォルダに上書きします。
- automount.xdf という名前に変更します。これをBドライブにいれます。
アセンブラ、リンカーをAドライブのBINにいれる
- HAS.x をダウンロード。Aドライブにいれる Humanフロッピーの BINフォルダの中に、HAS.Xをいれます。
- HLK.X をダウンロード。Humanフロッピーの BINフォルダの中に、HLK301.Xをいれ、HLK.Xに名前を変更しておきます。
- 空いた領域にソースをいれれば、2枚のSDカードで実機開発ができます。
C サンプルプログラム(マウスで線を引く)
マウスを動かすと画面に色のかわる線がかけるプログラムです。これを test01.c として、Aドライブ直下にいれましょう。
test01.c
#include <stdlib.h> void main(){ int x=0,y=0,xx,yy; screen(1,2,0,1);
printf("Draw line with Mouse. Exit=Move to bottom\n"); for(;y<500;){ mspos(&xx,&yy); line(x,y,xx,yy,xx%256,-1); x=xx;y=yy; } screen(2,0,1,0); }
#include < > | < >のファイルの中身をいれる |
stdlib.h | Cの標準関数の定義がはいってる |
void main | voidは値を返さない。main からプログラムがスタート |
printf | テキスト画面に文字列を表示。¥nは改行 |
for(;y<500;) | yが500より小さい間、繰り返す |
screen(1,2,0,1) | 256色、512x512、グラフィックスON |
screen(2,0,1,0) | 高解像度テキスト、グラフィックスOFF |
line(x,y,xx,yy,xx%256,-1) | xx%256 は色、-1は実線(0にすると透明) |
mspos(&xx,&yy) | マウス座標の取得、xx,yyに値がはいる |
マウスを動かすと画面にいろんな色の線が引けます。上から500ドット以下に移動すると終了します。x-basicの関数がそのまま使えるみたいです。
コンパイル、アセンブル、リンク用バッチファイル
プロは makefile をつくるところですが、ファイル1個なので、バッチファイルが簡単。%1のところに引数がはいります。ed で以下のファイルをソースと同じ場所につくります。
make.bat :コンパイル
cc /Fs /W /Y /Ib:\include %1.c
mas.bat:アセンブル
has /u /ib:\include %1.s
mlk.bat: リンク
hlk -l clib.l baslib.l doslib.l floatfnc.l iocslib.l %1.o
/Fs | アセンブラ生成して終了 |
/W | BASICライブラリを使う |
/Y | IOCS&DOSコールライブラリを使う |
/Iパス | インクルードファイルの場所 |
/u | 未定義シンボルを外部参照にする |
/iパス | インクルードファイルの場所 |
-l | 環境変数lib をライブラリパスにする |
使い方
- make test01
- mas test01
- mlk test01
- test01
- これで線がひけるはずです。一番下に移動させると終了します
BASICが起動しない場合
- autoexec.bat で、PATH に b:\basic2; を追加すれば、コマンドで、basic と入力して x-basic が起動できるはずですが、GPIO エラーが出ました。これは、BASIC2フォルダのなかの basic.cnf の最後の行頭に # をつけてコメントアウトすれば、起動できるようになります。
ed b:\basic2\basic.cnf
#FUNC = GPIB とする
X68000 Z の画面キャプチャ
エミュレータ(XM6)で実行し、Windowsでキャプチャするとよいです。
複数のフロッピーの切り替え
- SDカード直下の「X68000Z」フォルダに複数の XDF ファイルをいれておくと、起動時にどのXDFを使うか指定できます。
- フロッピースロットの下のボタンを2回おすと、XDFの切り替えができます。GCCは、コンパイラーが大きいので2つにわけないといけないかも。
GCC サンプルプログラム
lanma.x GCCでコンパイルしていました。ソースは5インチフロッピーにはいっていると思うのですが、みることができません・・。ネット検索すると、次のサイトのソースがわかりやすそう。SHOT68K も参考になりそうですが、まだうまく使いこなせていません。実機でのリンクが難しいです。
MicroPython
X68000の描画関数がつかえます。すごいです。Cよりおすすめ
- 上のZIPをダウンロード。解凍して、XDFファイルにいれる。名前を automount.xdf にするか、X68000Z フォルダにいれて、Bドライブにいれる。
- Aドライブで、ed autoexec.bat とし、PATHの最後に b:¥; を追加
- B:ドライブの micropyt.x を、python.x にリネームしとくと便利
- python で対話モードにはいったら、Ctrl+Dで終了
サンプル実行
python b:\sample\grplane.py
Shiftキーで終了
MicroPython サンプルプログラム(マウスで線をひく、キーで終了)
import x68k x68k.crtmod(16, True) g = x68k.GVRam(0) x=0 y=0 while 1: key = ( x68k.iocs(x68k.i.B_KEYSNS) >> 8 ) & 0x7f if key == 0x01: # ESCでループを抜ける break pos = x68k.iocs(x68k.i.MS_CURGT) #マウス座標取得 xx = (pos & 0xffff0000) >> 16 yy = (pos & 0xffff) btn = x68k.iocs(x68k.i.MS_GETDT) #マウスボタン取得 left = btn & 0xff00 right = btn & 0xff if left !=0: #左ボタンが押されていたら c = xx % 16 g.line(x,y,xx,yy,c) #線をひく x = xx y = yy
import x68k | x68k関数を使えるようにする |
x68k.crtmod(16, True) | 768 x 512 x 16色(31kHz) mode |
g = x68k.GVRam(0) | グラフィック画面 g |
while 1: | ループ、下の同じインデントの行がループ範囲 |
x68k.iocs(x68k.i.B_KEYSNS) | キーの状態 |
x68k.iocs(x68k.i.MS_CURGT) | マウス座標 |
x68k.iocs(x68k.i.MS_GETDT) | マウスボタン |
g.line(x,y,xx,yy,c) | 画面gに色cで線をひく |
MicroPython 参考資料
内容:
- X68000 Z 資料
- X68000 Z ツール入手先
- X68000Z アプリ開発用SDカードの作り方
- X68000との出会い
- 9VAeきゅうべえとの関係
- エディタEDの使い方
- ヒストリー、カーソルキー設定
- コマンドパス、LIBの設定
- コンパイラーフロッピー(XDF) Bドライブの作り方
- アセンブラ、リンカーをAドライブのBINにいれる
- C サンプルプログラム(マウスで線を引く)
- コンパイル、アセンブル、リンク用バッチファイル
- BASICが起動しない場合
- X68000 Z の画面キャプチャ
- 複数のフロッピーの切り替え
- GCC サンプルプログラム
- MicroPython
- MicroPython サンプルプログラム(マウスで線をひく、キーで終了)
- MicroPython 参考資料
- 解説動画の作り方
解説動画の作り方
この記事のひとコマ解説GIFは、フリーソフト9VAeきゅうべえで作成しています。
9VAeきゅうべえのダウンロード
- Android / Chromebook:9VAeきゅうべえAndroid版、9VAeDangla
- iPad / iPhone:9VAeDanga (Apple)、9VAePro (Apple)
- Win / Mac / Linux:無料ソフトでアニメを作ってみよう - Qiita
- Amazon Fire : 9VAeきゅうべえFire版 (Amazon)
- 9VAeのボタン説明、メニュー/キー
- 9VAeきゅうべえで、キャプチャー画面に、矢印や説明を加え、ページに「ひとコマ」設定するだけで作れます。
- FFmpeg を使って Youtube 動画にすることもできます。
画面キャプチャ方法
|
||
|
||
|
ライブラリ> Screenshots |
|
|
|
アルバム> スクリーンショット |
|
ファイル |
|
|
スクリーンショット |
|
|
ダウンロード |
|
|
アニメGIF、動画出力
- 「ファイルメニュー>アニメGIF出力」または「動画出力」で、好きなサイズのアニメGIF または MP4動画 が作成できます。
Win / RaspberryPi / Linux版 でMP4動画を作るには FFmpeg が必要。Youtube解説 - スマホの場合、端末内の「9VAe」フォルダの中に出力されます。フォトアプリで、「端末内の写真>9VAe」で見ることができます。
- アニメGIFは、背景を透明にできます。音がいれられません。
- MP4動画には音が入れられます。Youtubeに投稿できます。Youtubeに投稿する場合、1秒30コマ、高さ720 または 1080 で出力するとよいでしょう。
9VAeをつかえば素材動画が作れる
- 9VAeきゅうべえを使えば、オリジナルの素材動画が簡単に作れます。
- Openclipart や FreeSVG などフリーのSVGイラストをつかって動くキャラクタが作れます。
- 動画編集ソフトで動画に合成できます。
OS |
9VAeで作成する素材動画 |
|
---|---|---|
連番PNG または MP4 |
||
PowerDirector |
GIF または MP4 |
作り方
- もっと長いアニメを作ることもできます。以下をご覧ください。
9VAeきゅうべえに関する質問
- 9VAeに関する質問(Yahoo知恵袋)
- よくある質問(Qiita)
- 本記事の文章、図、アニメは複製自由です。教材、解説記事にご利用ください。