Skip to content

Commit

Permalink
Add xm7 license.
Browse files Browse the repository at this point in the history
This is xm7src.txt from the 17020 zip file, transcoded from shift_jis to
utf-8 and with an english pre-amble that explains the license a bit.

Thanks to mef for help!
  • Loading branch information
0-wiz-0 committed Oct 10, 2016
1 parent 8a6c7e8 commit 83e2039
Showing 1 changed file with 288 additions and 0 deletions.
288 changes: 288 additions & 0 deletions licenses/xm7-license
Original file line number Diff line number Diff line change
@@ -0,0 +1,288 @@
This is the original README coming with the 71020 distfile.
It basically says:

If you re-use whole part of, or some part of this software,
the following rules should be honored. This applies all the software
versions released historically.

- Re-use under the VM directory, Copyright notice should be explicitly
marked (reserved) for the source and the documnets. Commercial use is
prohibited.
- Other parts could be re-used freely. But commercial use is still
prohibited.

Re-Distribution of this archive could not be accepted. You need prior
permission to do that.

Here's the original:

------------------------------------------------------------------------------

FM-7 EMULATOR XM7 (V1.0L20)

ソースコード
Copyright (C) 1999-2001 PI.([email protected])

------------------------------------------------------------------------------
□ソース公開にあたって

このアーカイブはFM-7エミュレータXM7(V1.0L20)の全ソースコードです。

私は元々、ソースコード公開に余り積極的ではありません。ただ本ソフトについては
その性質上、実機・資料の入手が難しい過去の機種の、詳細なドキュメント・仕様書
となり得ますので、電子保存の意味でも公開すべきだと考えます。

またXM7の開発の過程で、M88をはじめとする多くのソフトウェアのソースを参考に
させて頂きました。そのお礼という意味もあります。


□使用規定

アーカイブに含まれるファイル群は、一部の例外(後述)を除きPI.が著作権を保有
しています。

ソースファイルの一部、もしくは全部を再利用する場合は、次の規則に基づくもの
とします。
・VMディレクトリ下のファイルを再利用する場合は、ドキュメントにオリジナルの
著作権表示を明記してください。また商用利用は禁止します。
・それ以外の部分の再利用は自由です。ただし前項同様、商用利用は禁止します。

このアーカイブの再配布はできません。無断転載を禁じます。


□例外、その他

以下に示すファイルはM88の作者であるcisc氏の許可を得て、改変の上組み込んで
いるものです。この部分については前述の規定は適用されません。

vm\fmgen.cpp
vm\fmgen.h
vm\fmgeninl.h
vm\fmgenx86.h
vm\opna.cpp
vm\opna.h
vm\psg.cpp
vm\psg.h

またLinuxディレクトリについては、(寿)TM氏が開発を担当し、PI.が管理を代行
しています。

次にあげるファイルはM.A.M.E. 0.33のソースファイルを再利用し、改変したもの
です。

vm\cpu.c


□ディレクトリ

以下のようなディレクトリ構成になっています。これは便宜的なものです。

VM 仮想FM-7
X680x0 I/O部(SHARP X680x0)
PC-98 I/O部(NEC PC-98x1)
Linux I/O部(Linux, FreeBSD等)
WIN16 I/O部(Microsoft Windows 3.1)
FMTOWNS I/O部(FUJITSU FM-TOWNS)
IBMPC I/O部(IBM-PC Compatible)
WIN32 I/O部(Microsoft Windows95/98/NT4/2000)
TOOL 補助ツール


□定義済みシンボル

以下のシンボルを全体で使っています。

_DEBUG デバッグビルドします。WIN32版以外は定義しないでください。
NDEBUG リリースビルドします。通常はこちらを定義します。
CPU_ASM アセンブラ版CPUコアを使います。X680x0では定義しないでください。

HUMAN68K X680x0を宣言します。(gccによる自動定義)
__MSDOS__ MS-DOSを宣言します。(tcc,bccによる自動定義)
PC98 PC-98を宣言します。
_XWIN X Windowを宣言します。
_WIN16 WIN16を宣言します。
FMT FM-TOWNSを宣言します。
IBM IBM-PCを宣言します。
_WIN32 WIN32を宣言します。(clによる自動定義)


□ソース解説

VMディレクトリのソースを参考にされる方のために、取っかかりを説明します。

次の部分を見ると全体の構造はつかめます。device.hで定義されている関数の
実体や、mainetc_timer()、keyboard_make()などを呼び出すのが機種別実装の役割
です。

XM7.h
device.h
system.c
debug.c内 debug_run()
mainetc.c内 mainetc_timer()

またhistory.cに開発履歴を書いています。参考までに。


□ビルド

メイクファイル類は複数ディレクトリに対応していません。このためビルドの際は
ターゲットとなるプラットフォームのファイルと、VMディレクトリ下の全ファイル
を同一ディレクトリに配置します。

全体としてメイクファイルはあまり凝っていません。どちらかというと間に合わせ
的なものですので、問題があれば適宜書き換えるなどして対処して下さい。

またIntelプラットフォームではアセンブラとしてNASM(Netwide Assembler)を採用
しています。無償で入手できますので、別途準備してください。バージョンは0.98
を使っています。

以下、プラットフォームごとに説明します。


□X680x0

コンパイル時にワークエリアとして2MBを宣言しているので、4MB以上の空きメモリ
を推奨します。X680x0の実装メモリが6MBあれば大丈夫でしょう。

gcc1(まりこ版)、has、hlkが必要です。私は次のバージョンを使っています。

gcc X68000 真里子バージョン Ver1.29
X68k High-speed Assembler v3.09
X68k SILK Hi-Speed Linker v3.01

メイクにGNU make(homy版)を使います。has,hlkはそれぞれas,lkにリネームするか、
lndrvを使ってリンクをはっておきます。準備が完了したら、メイクできます。

make -f makefile.68k

フルメイクはかなり時間が掛かります。私の環境(XVI 24MHz, RAM 12MB)で、大体
15分〜20分程度を要します。


□PC-98x1

Turbo C++ 4.0Jでコンパイルしています。一部インラインアセンブラを使用し、
メモリモデルはラージです。

別途、アセンブラ版CPUコア(cpu_x86.obj)を用意する必要があります。cpu_x86.asm
をアセンブルすれば良いのですが、MS-DOS版NASMではメモリ不足で作成できません。
Win32上でクロスアセンブルしたオブジェクトを持ってきます。

nasm -f obj -d __MSDOS__ cpu_x86.asm

cpu_x86.objが揃えば、メイクできます。makeはTC++付属のものを使います。

maker -fmakefile.98

リンカに386プロセスを指示しているので、286以下のプロセッサではリンクできな
いと思われます(出来たオブジェクトはV30以降で動きます)。その場合はmakefile
内の LDFLAGS から /3 を取って下さい。


□Linux(X Window System)

Linuxは若干めんどうです。以下のツールが必要です。
gcc, g++, nasm, strip, nkf, lha

ファイルを作業ディレクトリに準備したら、nkf, lhaを使って漢字コードを変換
します。

make -f Makefile.X11 convert

ビルドします。

make -f Makefile.X11

stripを使って、シンボルテーブルを取り去ります。(取らなくても良い)

strip xm7


□Windows 3.1

Borland C++ 4.0Jでコンパイルしています。付属のOWLライブラリを使っています。

cpu_x86.objはPC-98x1と同じ方法で準備してください。オブジェクトをコピーする
だけでokです。

Borland C++のIDEを起動し、プロジェクトファイルXM7.IDEをロードします。
メニューから「再構築」でXM7.EXEができあがります。


□FM-TOWNS

Turbo C 2.0Jでコンパイルしています。メモリモデルはラージです。makefile.fmt
のSTARTUP,LIBS定義を絶対パスで書いていますので、コンパイル環境に合わせて
調整する必要があります。

cpu_x86.objはPC-98x1と同じ方法で準備してください。オブジェクトをコピーする
だけでokです。fmt_sub.asmは小さいのでMS-DOS版NASM16.EXEでアセンブルします。
メイクはTurbo C付属のものだと通りません。Turbo C++ 4.0Jのものを使って下さい。

maker -fmakefile.fmt

FM-TOWNS版は全体的に作業量重視、軽めの作りにしています。最初に移植したとき
は2日間で作業完了させました:-)


□IBM-PC

Borland C++ 4.0Jでコンパイルしています。一部インラインアセンブラを使用し、
メモリモデルはラージです。

cpu_x86.objはPC-98x1と同じ方法で準備してください。オブジェクトをコピーする
だけでokです。

IBM-PC版は386必須、コプロセッサ必須です。このため/3で386コードを指定し、
FP87.LIBをリンクしています。makeはBC++付属のものを使います。

maker -fmakefile.ibm


□Windows95/98/NT4/2000

Visual C++ (4.0J Standard Edition)でコンパイルしています。またDirectX3
SDKを必要とします。あらかじめインストールしておいて下さい。

ビルドの前にcpu_x86.objを用意します。次の構文でアセンブルします。

nasm -f win32 -d _WIN32 cpu_x86.asm

Visual C++のIDEを開き、ワークスペースXM7.mdpをロードします。メニューから
「リビルド」を選ぶとReleaseもしくはDebugディレクトリにXM7.exeが生成され
ます。

Visual C++の5.0、6.0ではうまくビルドできないかもしれません。そのときは
cisc.hの内容をチェックしてください。VC++4.0ではboolが実装されていません。

Resources下に含まれるアイコンは、渡辺 善美氏に提供頂いた物です、99/夏頃の
開発が軌道に乗った頃に作成していただきました。


□補助ツール

ROM作成ツールSAVEROMは、FM77AV上で動作する部分(6809アセンブラで記述)と、
起動ディスクを作成する部分(8086アセンブラで記述)に分かれています。

6809アセンブラ部は次のツールで作成します。
HD63C09/6809 クロスアセンブラ AS63.EXE Version1.12Ta
8086アセンブラ部は次のツールで作成します。
Turbo Assembler Version 2.0
Turbo Link Version 3.0

メイクは適当なツールを使って下さい。TASM付属のもので十分です。

AS63のオプティマイズ機能を使い、6809のブランチはロングブランチ主体で記述
しています。アセンブル時にショートで届くものはショートに変換されます。


□連絡先

ホームページ(PI. Home page)
http://www.ipc-tokai.or.jp/‾ytanaka/

公式掲示板
http://cgi.ipc-tokai.or.jp/‾ytanaka/cgi-bin/xm7/hyperbbs.cgi

メールアドレス
[email protected]

0 comments on commit 83e2039

Please sign in to comment.