From 8aeadbc538fdaf77c158d867fe69d0a75fdcb2a6 Mon Sep 17 00:00:00 2001 From: Yuichi Nakamura Date: Mon, 15 Jul 2024 19:36:32 +0900 Subject: [PATCH] Update README.md --- README-elf2x68k.md | 41 ++++++++++------------------------------- README.md | 23 ++++++++++++++++++++++- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/README-elf2x68k.md b/README-elf2x68k.md index 447ca9e..6bb4555 100644 --- a/README-elf2x68k.md +++ b/README-elf2x68k.md @@ -39,6 +39,13 @@ m68k-xelf/ 内に追加される、X68k 対応のためのファイル一覧で * ELFファイルをX形式実行ファイルに変換するpythonスクリプトです * bin/x68k2elf.py * X68kのオブジェクトファイルやライブラリをELF形式に変換するpythonスクリプトです +* bin/bas2c.py +* bin/bas2c.def + * [X-BASIC to Cコンバータ](https://github.com/yunkya2/bas2c-x68k) の python スクリプトです +* bin/m68k-xelf-bas + * bas2c.py を用いて X-BASIC プログラムを C に変換し、m68k-xelf-gcc でコンパイルするスク +* bin/unlha.py + * [LZH アーカイブ展開ツール](https://github.com/yunkya2/unlha) の python スクリプトです * lib/gcc/m68k-elf/\/specs * m68k-xelf-gcc の挙動を修正するspecsファイルです。デフォルトの Newlib 環境時に使われます * リンク時にX68kに必要なライブラリもリンクします @@ -64,8 +71,9 @@ m68k-xelf/ 内に追加される、X68k 対応のためのファイル一覧で * m68k-elf/include/x68k/* * libiocs.a, libdos.a を利用するためのヘッダファイルです * m68k-elf/sys-include/* - * 標準ヘッダファイル m68k-elf/include 内を置き換えるためのヘッダファイルです。 - * fcntl.h に O_BINARY, O_TEXT の定義を追加するために使われます。 + * 標準ヘッダファイル m68k-elf/include 内を置き換えるためのヘッダファイルです + * fcntl.h に O_BINARY, O_TEXT の定義を追加するために使われます + * dirent.h に DIR, struct dirent の定義を追加するために使われます * install-xclib.sh * [無償公開されている C Compiler PRO-68K v2.1 (XC)](http://retropc.net/x68000/software/sharp/xc21/) をダウンロードし、ライブラリとヘッダファイルをインストールして XC 環境を構築するスクリプトです。 @@ -82,32 +90,3 @@ usage: elf2x68k.py [-h] [-o OUTPUT] [-b BASE] [-s] file * `-b` オプションが指定されている場合は、変換後のX形式ファイルのベースアドレスが指定したアドレスに設定されます。 * X68kのディスクのブートセクタから起動可能なファイルを生成するためには、`-b 0x6800` を指定してベースアドレスを0x6800にしておく必要があります。 * 変換元のELFファイルのシンボル情報がX形式ファイルにも付加されます。 `-s` オプションが指定されている場合はシンボル情報を削除します。 - -## サンプル - -### sample/hello - -* printf()とシンプルなIOCSコール呼び出しのサンプルです -* makeすると hello.x というファイルができます。Human68kでそのまま実行できます - -### sample/hellosys - -* 上記 sample/hello と同じ内容を、Human68k を使わずに実行するサンプルです -* makeすると hellosys.sys というバイナリが生成されます。このファイルは以下の手順で起動できます。 - 1. 実機でフォーマット済みのフロッピーディスク、またはエミュレータでフォーマット済みディスクイメージを用意します - 2. hellosys.sys を **human.sys という名前で** ディスクにコピーします - * ディスクには他のファイルを置かないでください。ブートセクタから起動できるファイルはディスクの連続したセクタに配置されている必要があるためです。 - 3. 作成したディスク(イメージ)を実機またはエミュレータにセットし、リセットします。 - - -### sample/fileio - -* newlibのファイルI/O周りのAPIをテストするサンプルです - -### sample/xsp - -* よっしん氏 (@yosshin4004) 作の [スプライト管理ライブラリ XSP](https://github.com/yosshin4004/x68k_xsp) のサンプルコードを elf2x68k 環境でビルドできるようにしたサンプルです - -### sample/defsptool - -* Human68k システムディスクに含まれているスプライトパターンエディタ DEFSPTOOL.BAS を C に変換できるようにパッチを当てて m68k-xelf-bas でコンパイルするサンプルです diff --git a/README.md b/README.md index 9f25fc9..d445e3e 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,11 @@ elf2x68k はシャープ X680x0 用実行ファイル(X 形式)を PC の Unix/L ## インストール +### Linux/MinGW 向け + 以下の環境向けバイナリを配布しています * x86_64 Linux (Windows 11 の WSL2 にインストールした Ubuntu-20.04 で動作確認) * MSYS2 MinGW 64bit -* Apple Silicon macOS (14.5 Sonoma) [Release](https://github.com/yunkya2/elf2x68k/releases) から利用する環境のアーカイブをダウンロードし、任意のディレクトリに展開してください。 `m68k-xelf/bin` にパスを通すことで使用できるようになります。 @@ -35,8 +36,28 @@ elf2x68k はシャープ X680x0 用実行ファイル(X 形式)を PC の Unix/L * X-BASIC to C コンバータを利用する場合には必ず実行してください。 * インストール後に `m68k-xelf` ディレクトリを移動した場合は `install-xclib.sh` スクリプトを再度実行してください (スクリプト内で実行時の絶対パスを記録する箇所があるため)。 +### macOS 向け + +macOS 向けは Homebrew からインストールできます (M3 Macbook Air / macOS 14.5 (Sonoma) で動作確認)。 +Homebrew がインストールされている環境でコマンドラインから + +``` +brew install yunkya2/tap/elf2x68k +``` +を実行すると、ソースコードをダウンロードしてビルド、インストールを行います +(M3 Macbook Air で 30 分程度かかります)。 + +XC ライブラリのインストールも合わせて行いますので、`install-xclib.sh` スクリプトは実行不要です。 + +### ソースコードからのビルド + ソースコードからビルドを行う方法は [README-elf2x68k.md](README-elf2x68k.md) を参照してください +## サンプルコード + +C や C++、X-BASIC to C のサンプルコードを [elf2x68k-samples](https://github.com/yunkya2/elf2x68k-sample) リポジトリに用意しています。 +サンプルコードの説明は [README.md](https://github.com/yunkya2/elf2x68k-sample/blob/master/README.md) を参照してください。 + ## 実行例 テストとして、以下のようなサンプルをコンパイルしてみます。