F-BASIC詳細編(その2:デモ画面集)
本ページの各画面キャプチャについては、XM7 V3.4を使用させていただきました。
PI.さん、たけがみりうさん、いつも感謝しております。
(XM7がなかったらこんなページを作ろうという気にはなりませんでした。^^;)
お急ぎの方へ。
・FM-8 デモ(前期、F-BASIC V1.0 の頃)
・FM-8 デモ(後期、F-BASIC V2.0 の頃)
・FM-7 デモ(F-BASIC V3.0)
・FM-NEW7 デモ(F-BASIC V3.0 L2.0)
・FM-77 デモ(F-BASIC V3.0 L2.0)
・FM-77L2 デモ(F-BASIC V3.0 L2.0)
・FM音源カードデモ(付属テープ)
・音声合成カードデモ(F-BASIC V3.0 L2.0)
・マウスセットデモ(F-BASIC V3.0 L2.0)
・オマケコーナー
2. F-BASIC 詳細編
2.3 F-BASIC V1.0/2.0/3.0のデモプログラム
ここでは、FM-8/7/NEW7シリーズ本体付属テープのデモ、
DISK版F-BASIC V1.0/V2.0/V3.0のシステムディスクのデモ、
およびFM音源カード付属テープのデモについて紹介しています。
(各画像をクリックするとフルサイズの画像になります。)
2.3.1 FM-8 デモ(前期、F-BASIC V1.0 の頃)
- 機種:FM-8
- SOFT:FM-8 Demonstration Program(FM-8添付TAPE 前期版)
- PROGRAM:DEMO
- テーマ:FM-8
- 添付のTAPEには、デモプログラムが3本格納されています。
- 機種:FM-8
- PROGRAM:DEMO
- テーマ:富士通
- 今の富士通ロゴ(Fujitsu)とは全然違いますね。
- 機種:FM-8
- PROGRAM:DEMO
- テーマ:BOX LINE
- 機種:FM-8
- PROGRAM:DEMO
- テーマ:多角形(描き始め)
- 機種:FM-8
- PROGRAM:DEMO
- テーマ:多角形(完成)
- 機種:FM-8
- PROGRAM:MANGE
- テーマ:万華鏡
- ひたすら、万華鏡風のカラフルな表示が続きます。
- 機種:FM-8
- PROGRAM:GRAPH
- テーマ:HOPE
- F-BASIC のグラフィック系コマンドを活用したお絵描きプログラムです。
(コマンド入力で HOPE と入力するとこの絵が描かれます。)
- 機種:FM-8
- PROGRAM:GRAPH
- テーマ:CAR
- モチーフは、当時の高級車であるトヨタ2800GT ソアラです。
(コマンド入力で CAR と入力するとこの絵が描かれます。)
- 機種:FM-8
- SOFT:DISK版 F-BASIC Ver 1.0 L1 (81.10.31)
型格:SM07217-F021
- PROGRAM:DEMO
- テーマ:FM-8
- F-BASIC V1.0 のシステムディスクには、デモプログラムが1本のみ格納されています。
この画面以外は同じなので省略します。
補足:FM77AVシリーズ、FM-11シリーズで実行した場合の誤動作
・上記の DEMO は、F-BASIC V3.3/V3.4/V4.0/V5.0 で実行した場合、そのままではPAINTが乱れます。
原因は2つあり、それぞれ別な対処が必要です。
- 機種:FM77AV以降 + F-BASIC V3.3/V3.4、FM-11 + F-BASIC V4.0/V5.0
- FM77AV以降 + F-BASIC V3.3/V3.4 では、事前に SCREEN@ 0 の実行が必要です。
- FM-11 + F-BASIC V4.0/V5.0 では、事前に SCREEN 0 もしくは SCREEN 4 の実行が必要です。
- SOFT:FM-8 Demonstration Program(FM-8添付TAPE 前期版)
- SOFT:DISK版 F-BASIC Ver 1.0 L1 (81.10.31)
型格:SM07217-F021
- PROGRAM:DEMO
- テーマ:FM-8
- PAINT文をコメントアウトして、途中で止めています。
- F と M の字の LINE が白で引かれています。
これは、F-BASIC V4.0 以降における、COLOR文の仕様変更によるものです。
- 8 の字のくびれの部分、第3象限の付け根の部分に、1ドット欠けがあります。
これは FM-11以降のサブシステムにおける LINE の処理の仕様変更によるものです。
- 機種:FM-8/7/NEW7/77 + F-BASIC V1.0/V2.0/V3.0
- SOFT:FM-8 Demonstration Program(FM-8添付TAPE 前期版)
- SOFT:DISK版 F-BASIC Ver 1.0 L1 (81.10.31)
型格:SM07217-F021
- PROGRAM:DEMO
- テーマ:FM-8
- PAINT文をコメントアウトして、途中で止めています。
こちらが本来の動作です。
それぞれの対策例は次の通りです。
対策1A (FM77AVシリーズ、FM-11シリーズ専用修正)
20 CLS:COLOR 2
40 COLOR 4
↓↓
20 CLS:COLOR ,,2
40 COLOR ,,4
もしくは
対策1B (FMシリーズ共通修正)
30 CONNECT(0,16)-(152,16)- ... 途中省略 ... -(0,16)
50 CONNECT(168,16)-(200,16)- ... 途中省略 ... -(168,16)
↓↓
30 CONNECT(0,16)-(152,16)- ... 途中省略 ... -(0,16),2
50 CONNECT(168,16)-(200,16)- ... 途中省略 ... -(168,16),4
対策2 (FMシリーズ共通修正)
220 LINE(489,70)-(581,70),PSET,6
↓↓
220 LINE(486,70)-(581,70),PSET,6
2.3.2 FM-8 デモ(後期、F-BASIC V2.0 の頃)
・FM-7 デモ(F-BASIC V3.0)
・FM-NEW7 デモ(F-BASIC V3.0 L2.0)
・FM-77 デモ(F-BASIC V3.0 L2.0)
・FM-77L2 デモ(F-BASIC V3.0 L2.0)
・FM音源カードデモ(付属テープ)
・音声合成カードデモ(F-BASIC V3.0 L2.0)
・マウスセットデモ(F-BASIC V3.0 L2.0)
- 機種:FM-8 (V2.0)
- SOFT:FM-8 Demonstration Program(FM-8添付TAPE 後期版)
型格:SM07217-F901
- SOFT:5インチDISK版 F-BASIC Ver 2.0 L1.0 (0200821225)
型格:SM07217-F023
- PROGRAM:DEMO
- テーマ:FUJITSU MICRO 8
- この DEMO は TAPE版と DISK版で全く同じ内容です。
- TAPE版にはこれ以外に MANGE と GRAPH が格納されていますが、前期版と同じなので省略
します。DISK版はこの DEMO だけが格納されています。
- 中央の"HIGH PERFORMANCE PERSONAL COMPUTER"の部分はマーキーになっていて、
左に流れます。FM-11のF-BASIC V4.0のデモでも採用されています。
- この配色は覚えておいてください。
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:FM-8
- BEEP音以外に満足に音を出せないFM-8ですが、この画面ではモールス信号で"FM-8"を発信しています。
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:ハードウェア構成図
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:ハードウェア構成図
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:ハードウェア構成図
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:ソフトウェア構成図
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:ソフトウェア構成図
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:ソフトウェア構成図
- この当時はまだOS-9は出荷されていないようです。
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:CIRCLE
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:GRAPH
- ビジネス機を標榜するマシンとしてはこうした画像は欠かせません。
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:sin(x)/x
- 機種:FM-8 (V2.0)
- PROGRAM:DEMO
- テーマ:花火(音が貧弱なので寂しい限りです...)
補足:バグと、FM77AVシリーズ、FM-11シリーズで実行した場合の誤動作
・バグ:上記の DEMO は、午前9時6分8秒以降に実行すると、途中でエラーで止まります。
具体的には、RANDOMIZE TIME を実行しようとして、Overflow になります。
・FM77AV/FM-11:上記の DEMO を F-BASIC V3.3/V3.4/V4.0/V5.0 で実行した場合、PAINTが乱れたり、微妙に違った動きをします。
それぞれ別な対処が必要です。
- 機種:FMシリーズ + F-BASIC V1.0/V2.0/V3.0/V3.3/V3.4/V4.0/V5.0
- FM77AV以降 + F-BASIC V3.3/V3.4 では、事前に SCREEN@ 0 の実行が必要です。
- FM-11 + F-BASIC V4.0/V5.0 では、事前に SCREEN 4 の実行が必要です。
- SOFT:FM-8 Demonstration Program(FM-8添付TAPE 後期版)
型格:SM07217-F901
- SOFT:5インチDISK版 F-BASIC Ver 2.0 L1.0 (0200821225)
型格:SM07217-F023
- PROGRAM:DEMO
- テーマ:花火
- RANDOMIZE の受付可能な引数が -32768〜32767 なのに対し、
TIMEシステム変数は、単に TIME$ を秒に変換しただけですので、0〜86399 の値を取ります。
したがって、TIME>32767 になった時点で RANDOMIZE TIME を実行すると Overflow エラーになります。
- 機種:FM77AV以降 + F-BASIC V3.3/V3.4、FM-11 + F-BASIC V4.0/V5.0
- FM77AV以降 + F-BASIC V3.3/V3.4 では、事前に SCREEN@ 0 の実行が必要です。
- FM-11 + F-BASIC V4.0/V5.0 では、事前に SCREEN 4 の実行が必要です。
- SOFT:FM-8 Demonstration Program(FM-8添付TAPE 後期版)
型格:SM07217-F901
- SOFT:5インチDISK版 F-BASIC Ver 2.0 L1.0 (0200821225)
型格:SM07217-F023
- PROGRAM:DEMO
- テーマ:FM-8
- 配色はこの通りでない場合があります。8の字の PAINT の塗り残しが発生します。
また、これ以降のテーマで PAINT が乱れることがあります。
それぞれの対策例は次の通りです。
バグ対策 (FMシリーズ共通修正)
6340 GOSUB 6440:RANDOMIZE TIME
↓↓
6340 GOSUB 6440:RANDOMIZE TIME/3
FM77AV/FM-11シリーズ対応 (FM77AVシリーズ、FM-11シリーズ専用修正)
90 COLOR 7
1640 DATA -3,50,12,40, ... 途中省略 ... ,-4,45,20,-5
↓↓
90 COLOR ,,7
1640 DATA -3,50,12,40, ... 途中省略 ... ,-4,43,20,58,20,-5
2.3.3 FM-7 デモ(F-BASIC V3.0)
・FM-NEW7 デモ(F-BASIC V3.0 L2.0)
・FM-77 デモ(F-BASIC V3.0 L2.0)
・FM-77L2 デモ(F-BASIC V3.0 L2.0)
・FM音源カードデモ(付属テープ)
・音声合成カードデモ(F-BASIC V3.0 L2.0)
・マウスセットデモ(F-BASIC V3.0 L2.0)
F-BASIC V3.0のデモは機種毎に作られており、なんと4種類もあります。
- 機種:FM-7
- SOFT:5インチDISK版 F-BASIC Ver 3.0 L1.0 (830311)
型格:SM07317-F121
- SOFT:FM-7 Demonstration Program(FM-7添付TAPE)
型格:SM07317-R010
- PROGRAM:DEMO1
- DISK版はこの画面でしばらく待たされます。実は何かキーを押すとすぐに先へ進むのですが、
どこにもそんなこと書いてないのは不親切です。TAPE版はロード完了すれば始まります。
- 機種:FM-7
- PROGRAM:DEMO1 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:HORIZON
- 音楽:バッハ インベンションとシンフォニア シンフォニア第1番ハ長調
- 元祖です。パレットを活用しています。
- 機種:FM-7
- PROGRAM:DEMO1 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:WAVE
- 機種:FM-7
- PROGRAM:DEMO1
- テーマ:FIGHTER
- これも元祖と言ってよいでしょう。R,G,Bの画面を単独で表示したり
重ね合わせ表示したりします。SCREEN命令のデモと言えます。
- 機種:FM-7
- PROGRAM:DEMO1
- テーマ:CROSS
- 機種:FM-7
- PROGRAM:DEMO1
- テーマ:BASEBALL
- 機種:FM-7
- PROGRAM:DEMO1 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:GRAPH
- この頃はビジネス用途も対象にしていたようです。
- マシン語サブプログラムは、棒グラフがニョキニョキと延びるところで使われています。
- 機種:FM-7
- PROGRAM:DEMO21 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:FUJITSU MICRO 7
- 音楽:バッハ インベンションとシンフォニア インベンション第1番ハ長調
- どこかで見た配色ですね。(^^;)
- 機種:FM-7
- PROGRAM:DEMO21 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:PALLET
- 音楽:バッハ インベンションとシンフォニア インベンション第1番ハ長調
- 機種:FM-7
- PROGRAM:DEMO21 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:自動車
- マシン語サブプログラムは、自動車を動かすところで使われています。
- 車輪のハブ部分(中央の白い部分)が次のテーマにつながります。
- 機種:FM-7
- PROGRAM:DEMO21 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:RGB
- 音楽:バッハ インベンションとシンフォニア インベンション第1番ハ長調
- この三つの円が次のGRAPH2に化けます。
- 機種:FM-7
- PROGRAM:DEMO21 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:GRAPH2
- 音楽:バッハ インベンションとシンフォニア インベンション第1番ハ長調
- 機種:FM-7
- PROGRAM:DEMO21 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:WAVE2
- 正直、このデモは蛇足だと思います。
- 機種:FM-7
- PROGRAM:DEMO21 DEMOSUB(DISK版) または SUB(TAPE版)
- テーマ:SHOOTING
- マシン語サブプログラムは、敵機を動かすところで使われています。
FM-7デモの解析結果です。
FM-7 DEMO (F-BASIC V3.0 L1.0 5インチ版、FM-7付属TAPE)
RUN"DEMO1" または RUN"DEMO2"
TAPE版と共通になっており、容量の制限から2本組に分割している。
裏RAMは使用せず、プログラムとデータをオンメモリにしてサイクリック
に実行している。
楽曲は少なく、3曲を使いまわしている。
# 音楽シーケンサは、I/O別冊 FM-7/8活用研究 P.36 掲載の サウンド
# エディタ V2.0 の一部(「シーケンサ」)が使われています。
DEMO1
HORIZONデモ 元祖バージョン
WAVEデモ
FIGHTERデモ
CROSSデモ
BASE BALLデモ
GRAPHデモ
の順に実施。(サイクリック)
DEMO2
FM-7ロゴデモ
PALLETデモ
自動車デモ
GRAPHデモ2
WAVEデモ2
SHOOTINGデモ
の順に実施。(サイクリック)
1. ファイル構成、ロードアドレス
DEMO1
DEMO1 (BASIC) デモプログラム本体
DEMOSUB $5100-$678F (DEMO2と共通、TAPE版のファイル名はSUB)
DEMO2
DEMO2 (BASIC) ローダー
DEMO21 (BASIC) デモプログラム本体
DEMOSUB $5100-$678F (DEMO1と共通、TAPE版のファイル名はSUB)
2. メモリマップ
DEMO1/DEMO2共通
0 -+---------------------------------------+
|F-BASICワークエリア |
-+---------------------------------------+
|DEMO1/DEMO2/DEMO21 (BASIC) |
-+---------------------------------------+
|変数領域 |
|空きエリア(ほとんどなし) |
|スタック領域 |
|文字領域 |
5100 -+---------------------------------------+
| |
| DEMOSUB (SUB) |
5430 -+-----------+ |
|シーケンサ | |
5A70 -+-----------+ |
|音楽データ | |
678F -+-----------+---------------------------+
| |
6800 -+---------------------------------------+
|DEMO1プログラム中で使用(FIRQベクタ設定)|
680C -+---------------------------------------+
| |
8000 -+---------------------------------------+
| |
| F-BASIC ROM |
| |
EC05 -+PLAYコマンド初期化処理 |
| |
FBFF -+---------------------------------------+
3. マシン語プログラム仕様
DEMO1/DEMO21
DEMOSUB (SUB)
$5100 ブロックコピー/ムーブ
$5370 高速PALLET切り替え付き音楽演奏開始
$5372 高速PALLET切り替え付き音楽演奏終了
$5430 音楽シーケンサ (FM-7/8活用研究掲載 サウンドエディタ V2.0 の一部)
$5430 音楽演奏開始
$5432 音楽演奏終了
$5A70 音楽データ
$5A70 バッハ インベンションとシンフォニア シンフォニア第1番ハ長調
$6110 WAVE/WAVE2で使われている曲(楽曲名不明)
$61B0 バッハ インベンションとシンフォニア インベンション第1番ハ長調
音楽演奏関係はユーザー関数(USR0, USR1, USR2, USR3)に定義され呼び出される。
DEF USR0=&H5370 (高速PALLET切り替え付き音楽演奏開始)
DEF USR1=&H5372 (高速PALLET切り替え付き音楽演奏終了)
DEF USR2=&H5430 (音楽演奏開始)
DEF USR3=&H5432 (音楽演奏終了)
USR0で開始したらUSR1で終了、USR2で開始したらUSR3で終了、と対応つける必要がある。
楽曲は引数で切り替える。(USR0とUSR2で同じ楽曲を参照)
A=USR0(0) バッハ インベンションとシンフォニア シンフォニア第1番ハ長調
A=USR2(1) WAVE/WAVE2で使われている曲(楽曲名不明)
A=USR2(2) バッハ インベンションとシンフォニア インベンション第1番ハ長調
2.3.4 FM-NEW7 デモ(F-BASIC V3.0 L2.0)
・FM-NEW7 デモ(F-BASIC V3.0 L2.0)
・FM-77 デモ(F-BASIC V3.0 L2.0)
・FM-77L2 デモ(F-BASIC V3.0 L2.0)
- 機種:FM-NEW7
- SOFT:5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (市販版=NEW7用)
型格:SM07317-F123
- SOFT:3.5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (市販版=NEW7用)
型格:SM07317-F128
- SOFT:FM-NEW7 Demonstration Program(FM-NEW7添付TAPE)
型格:SM07317-F912
- PROGRAM:DEMO-1
- DISK版の待ち時間は短くなりました。初代より改良されています。
- 機種:FM-NEW7
- PROGRAM:MAIN1 NEW7.LOC DEMOSUB
- テーマ:HORIZON
- 音楽:モーツァルト ピアノソナタ 第10番 ハ長調 K.330 第1楽章
- 二代目です。この画像からはわかりませんが、
F,M,-,N,E,W,7の各文字が奥の方から回転・拡大しながら近づいてきます。
当時はかなり新鮮でした。
- 機種:FM-NEW7
- PROGRAM:MAIN1 GROBE.M DEMOSUB
- テーマ:螺旋 (プログラム名はGROBEとなっていますが...)
- 音楽:チャイコフスキー 組曲「くるみ割り人形」(中国の踊り)
- 機種:FM-NEW7
- PROGRAM:MAIN1 JET DEMOSUB
- テーマ:JET
- FM-7デモのFIGHTERが進化したやつです。四角の中を戦闘機が所狭しと
飛び回ります。SCREEN命令とPALLETを駆使した擬似アニメーションです。
- 機種:FM-NEW7
- PROGRAM:MAIN1
- テーマ:音楽
- 機種:FM-NEW7
- PROGRAM:DEMO-2
- 機種:FM-NEW7
- PROGRAM:WPDEMO_M LINEDEMO
- テーマ:LINEデモ
- 音楽:チャイコフスキー 組曲「くるみ割り人形」(小序曲)
- 上から1LINEずつ降りてきます。雪が積もるようにたまっていきます。はせりんのお気に入りデモのひとつです。
- 機種:FM-NEW7
- PROGRAM:WPDEMO_M KDATA_M LOC2.O
- テーマ:WPデモ
- 漢字ROMを標準搭載していないFM-NEW7でも大丈夫。漢字フォントを裏RAMに転送しています。
- 機種:FM-NEW7
- PROGRAM:WPDEMO_M FLOWER LOC2.O
- テーマ:FLOWERデモ
- 音楽:ショパン ワルツ第6番「子犬のワルツ」
- VRAM OFFSET(ハードウェア・スクロール)を駆使したアニメーションです。
FM-NEW7デモの解析結果です。
FM-NEW7 DEMO (F-BASIC V3.0 L2.0 5インチ版、3.5インチ市販版、NEW7付属TAPE)
RUN"DEMO-1" または RUN"DEMO-2"
TAPE版と共通になっており、容量の制限から2本組に分割している。
各1回のロードで済ませるため、裏RAMを駆使してプログラムとデータを
オンメモリにしてサイクリックに実行している。
DEMO-1
HORIZONデモ
螺旋デモ
JETデモ
楽譜デモ
FM-77以降の機種では低速モードにしないと、2回目以降の螺旋デモの音が汚くなる。
DEMO-2
LINEデモ
ワープロデモ
FLOWERデモの順に実施。(サイクリック)
FM-77以降の機種では低速モードにしないと、2回目以降のLINEデモの音が汚くなる。
1. ファイル構成、ロードアドレス
DEMO-1
DEMO-1 (BASIC) ローダー
JET $2000-$67FF
NEW7.LOC $4D00-$5EFF Kコンパイラランタイムを含む
LOC.O $4100-$413F
DEMOSUB $4000-$57FF 裏RAMコール、音楽シーケンサ+データ
GROBE.M $5800-$64FF 音楽シーケンサ+データ
MAIN1 (BASIC) メインプログラム
# Kコンパイラ・ランタイムルーチンが使用されているのは意外でした。
# しかしよく考えてみればデモプログラムのような物には向いている
# のいかもしれませんね。
# バージョンは V3.6 で、IODOS9 で使われてるのと同じ、$CD00〜$CFFF
# にリロケートされたものが使われています。
# 音楽シーケンサは、I/O別冊 FM-7/11活用研究 P.158 掲載の MUSIC
# MAKER の一部(「シーケンサ」)が使われています。音楽データは、同
# 記事掲載の「ジェネレータ」で生成されたもの、ということですね。
DEMO-2
DEMO-2 (BASIC) ローダー
FLOWER $1700-$5EFF 描画、音楽シーケンサ+データ
LOC2.O $6F00-$6FFF
KDATA_M $2000-$407F
REL.OBJ $5000-$505D
LINEDEMO $3D00-$5BFF 描画、音楽シーケンサ+データ
WPDEMO_M (BASIC) メインプログラム
2. メモリマップ
DEMO-1
ローディング中 → 実行中
0 -+--------------------------------------------------+
|F-BASICワークエリア |
-+-----------------------------+-------+------------+
|DEMO-1 (BASIC) | | |
-+-----------------------------+ |MAIN1 |
|変数領域 | |(BASIC) |
|スタック領域 | | |
|文字領域 | -+------------+
2000 -+----------+-------+----------+ |変数領域 |
| | | | |スタック |
| | | | |文字領域 |
| | | | 4000 -+------------+
| | 4100 -+----------+ |DEMOSUB |
| | |LOC.O | 411B -+CALL裏$D000 |
| | | | 412C -+CALL裏$C500 |
| | 413F -+----------+ | |
|JET | | | 4180 -+音楽演奏開始|
| | | | 4182 -+音楽演奏終了|
| | | | 4200 -+----------+ |
| | | | |シーケンサ| |
| | | | 4300 -+----------+ |
| | | | |音楽データ| |
| | 4D00 -+----------+ | | |
| | |NEW7.LOC | 5800 -+----------+-+
| | | | |シーケンサ| |
| | | | 5900 -+----------+ |
| | | | |音楽データ| |
| | 5EFF -+----------+ | | |
6480 -+Entry | | | | | |
| | | | 64A6 -+----------+ |
| | | | | GROBE.M|
| | | | 64FF -+------------+
67FF -+----------+ | | | |
| | | | | |
| |
8000 -+------------------------+ +-----------------------+
|JET(転送後) | | |
C500 -+Entry | | |
C7F0 -+------------------------+ | |
| | | |
CD00 -+---------------------+--+ | F-BASIC ROM |
|Kコンパイラランタイム| | | |
D000 -+---------------------+ + | |
|NEW7.LOC(転送後) | | |
DEFF -+------------------------+ | |
| | | |
FBFF -+------------------------+-+-----------------------+
裏RAM F-BASIC ROM
DEMO-2
ローディング中 → 実行中
0 -+----------------------------------------------------+
|F-BASICワークエリア |
-+-------------------------------+-------+------------+
|DEMO-2 (BASIC) | | |
-+-------------------------------+ |WPDEMO_M |
|変数領域 | |(BASIC) |
|スタック領域 | | |
|文字領域 | -+------------+
| | | | |変数領域 |
1700 -+------------+ | | |スタック |
|FLOWER1 | | | |文字領域 |
1800 -+------------+ | | | |
|FLOWER2 | 2000 -+----------+ | |
| | | | | |
| | |KDATA_M | 3D00 -+------------+
| | | | | |
| | 407F -+----------+ |LINEDEMO |
4200 -+----------+ | | | 4200 -+----------+ |
|シーケンサ| | | | |シーケンサ| |
4300 -+----------+ | | | 4300 -+----------+ |
|音楽データ| | | | |音楽データ| |
| | | 5000 -+----------+ | | |
| | | 5007 -+REL.OBJ | | | |
| | | 505D -+----------+ | | |
| | | | | | | |
| | | | | 5BFF -+----------+-+
5EFF -+----------+-+ | | | |
| | | | | |
| |
6F00 -+----------------------------------------------------+
|漢字PUT |
6F80 -+FLOWER2転送 LOC2.O |
6F82 -+FLOWER2呼び出し |
6FFF -+----------------------------------------------------+
| |
8000 -+-----------------------+ +--------------------------+
|KDATA_M(転送後) | | |
A07F -+-----------------------+ | |
| | | |
B000 -+-----------------------+ | F-BASIC ROM |
|FLOWER2(転送後) | | |
DA00 -+----------+ | | |
|シーケンサ| | | |
DB00 -+----------+ | | |
|音楽データ| | | |
F6DF -+----------+------------+ | |
| | | |
FBFF -+-----------------------+-+--------------------------+
裏RAM F-BASIC ROM
3. マシン語プログラム仕様
DEMO-1
JET
$6480 自身を$8000〜$C7F0に転送。
$C500 (転送後の)Entryアドレス。
LOC.O
$4100 $4D00〜$6FFFを裏RAMの$CD00〜$EFFFに転送。
$411B 裏RAMの$D000をコール (未使用)
$412C 裏RAMの$E000をコール (未使用)
DEMOSUB
$4000 スムーズスクロール(2LINE分)
$4100 $4D00〜$6FFFを裏RAMの$CD00〜$EFFFに転送。(未使用)
$411B 裏RAMの$D000をコール (FM-NEW7)
$412C 裏RAMの$C500をコール (JET)
$4180 音楽演奏開始
$4182 音楽演奏終了
$4200 音楽シーケンサ (FM-7/11活用研究掲載 MUSIC MAKER の一部)
$4200 音楽演奏開始(音楽データ=$DB00)
$4202 音楽演奏開始(音楽データ=Xレジスタ)
$4204 音楽演奏停止
$4300 音楽データ(モーツァルト ピアノソナタ 第10番 ハ長調 K.330 第1楽章 )
$FFFFが終了コード
GROBE.M
$5800 音楽シーケンサ (FM-7/11活用研究掲載 MUSIC MAKER の一部)
$5800 音楽演奏開始(音楽データ=$DB00)
$5802 音楽演奏開始(音楽データ=Xレジスタ)
$5804 音楽演奏停止
$5900 音楽データ(チャイコフスキー 組曲「くるみ割り人形」<中国の踊り> )
$FFFFが終了コード
DEMO-2
LOC2.O
$6F00 裏RAMの指定アドレスから$20のサイズ分だけ表RAMに転送後、
PUT BLOCK を行う。
WPDEMO_M の中で漢字表示に使用。以下のパラメタを設定。
$6F02 裏RAMのアドレス
$6F04 BIOS FCB (PUT BLOCK)
$6F0A SUB COMMAND (PUT BLOCK)
$6F0D- X1,Y1,X2,Y2 を格納
$6F15- COLOR, FUNCTION を格納
$6F80 $1800-$5EDF(FLOWER2) を、裏RAMの $B000- に転送。
DEMO-2 から LOADM"LOC2.O",,R で実行されている。
$6F82 裏RAMの$B000 をコール。
WPDEMO_M の最後で FLOWER呼び出しの際使用されている。
REL.OBJ
$5007 転送実行。下記を事前に設定する。
$5000 転送元開始アドレス
$5002 転送元最終アドレス
$5004 転送先アドレス
$5006 エラーフラグ (最終アドレス<開始アドレス の時 $FF)
($5000)<($5004)の場合に順転送(先頭から末尾へ)、
($5000)>($5004)の場合に逆順転送(末尾から先頭へ)をするように
なっているが、この条件判断はあまり意味がない。
(領域が重なっている場合が考慮されていない。)
FLOWER2(転送後)
$B000 FLOWERデモ本体
$DA00 音楽シーケンサ (FM-7/11活用研究掲載 MUSIC MAKER の一部)
$DA00 音楽演奏開始(音楽データ=$DB00)
$DA02 音楽演奏開始(音楽データ=Xレジスタ)
$DA04 音楽演奏停止
$DB00 音楽データ(ショパン ワルツ第6番「子犬のワルツ」 )
$FFFFが終了コード
LINEDEMO
$3D00 LINEDEMO本体
$4200 音楽シーケンサ (FM-7/11活用研究掲載 MUSIC MAKER の一部)
$4200 音楽演奏開始(音楽データ=$4300)
$4202 音楽演奏開始(音楽データ=Xレジスタ)
$4204 音楽演奏停止
$4300 音楽データ(チャイコフスキー 組曲「くるみ割り人形」<小序曲>)
$FFFFが終了コード
4. 謎
FLOWER1 の部分は何のためにあるのか?
- 機種:FM-NEW7
- PROGRAM:GAME GAMESUB
- 付属ゲーム:TUBULAR SPACE for FM-NEW7
- 機種:FM-NEW7
- PROGRAM:GAME GAMESUB
- 付属ゲーム:TUBULAR SPACE for FM-NEW7
- 機種:FM-NEW7
- PROGRAM:GAME GAMESUB
- 付属ゲーム:TUBULAR SPACE for FM-NEW7
I/O別冊のPROGRAM CONTEST作品集1に、上記の「TUBULAR SPACE for FM-NEW7」の元となった
オリジナル版の「TUBULAR SPACE」が掲載されてましたので一緒に紹介しておきます。
- SOFT:TUBULAR SPACE
- 開発者:SATOH KAZUHIKO さん
- 掲載誌:I/O別冊 PROGRAM CONTEST作品集1
- 出版元:工学社
- PROGRAM:TUBE TUBE2
- 「... for FM-NEW7」とは微妙に仕様(起動画面や配色)が異なっているようです。
- 1983 というのは、恐らくこのプログラムが開発された年だと思われます。
- 逆に、「... for FM-NEW7」の 199x は何なんだろう?と疑問が湧きますね。
- 「... for FM-NEW7」には [ESC] の説明があるのですが、こちらにはありません。
- しかし、ESCキーはちゃんと効きます。恐らく、隠し機能扱いだったのでしょう。
- 背景の色が違います。それ以外の配色は同じようです。
1. ファイル構成、ロードアドレス
GAME / TUBE (BASIC) メインプログラム
GAMESUB / TUBE2 $2000-$3E5F 機械語プログラム
2. メモリマップ
0 -+------------------------+
|F-BASICワークエリア |
-+------------------------+
|GAME / TUBE (BASIC) |
-+------------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
2000 -+------------------------+
|GAMESUB / TUBE2 |
| |
3E60 -+------------------------+
| |
| |
8000 -+------------------------+
| |
| F-BASIC ROM |
| |
FBFF -+------------------------+
2.3.5 FM-77 デモ(F-BASIC V3.0 L2.0)
・FM-77L2 デモ(F-BASIC V3.0 L2.0)
・FM音源カードデモ(付属テープ)
・音声合成カードデモ(F-BASIC V3.0 L2.0)
・マウスセットデモ(F-BASIC V3.0 L2.0)
- 機種:FM-77
- SOFT:3.5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (FM-77添付)
型格:SM07317-F122
- PROGRAM:DEMO
- 機種:FM-77
- PROGRAM:DEMO1 DEMO1.M1
- テーマ:FM-77
- 機種:FM-77
- PROGRAM:DEMO1 DEMO1.M1
- テーマ:FM-77
- 機種:FM-77
- PROGRAM:DEMO1 DEMO1.M1
- テーマ:FM-77
- 機種:FM-77
- PROGRAM:DEMO1 DEMO1.M1
- テーマ:FM-77
- 機種:FM-77
- PROGRAM:DEMO1 DEMO1.M1
- テーマ:FM-77
- 機種:FM-77
- PROGRAM:DEMO1 DEMO1.M2
- テーマ:FM-77
- 音楽:ワーグナー 「ニュルンベルクのマイスタージンガー」前奏曲
- 機種:FM-77
- PROGRAM:DEMO2 DEMO2.M1 DEMO2.M2
- テーマ:DELPHIS
- 特筆すべき点としては、PLAYABLE である事です。
- 機種:FM-77
- PROGRAM:DEMO2 DEMO2.M1 DEMO2.M2
- テーマ:DELPHIS
- 機種:FM-77
- PROGRAM:DEMO3 DEMO3.M
- テーマ:鶴
- 音楽:チャイコフスキー 組曲「くるみ割り人形」(花のワルツ)前半
- VRAM OFFSET(ハードウェア・スクロール)を駆使したアニメーションです。
- 機種:FM-77
- PROGRAM:DEMO4 DEMO4.M1 DEMO4.M2
- テーマ:地球
- 音楽:チャイコフスキー 組曲「くるみ割り人形」(花のワルツ)後半
- VRAM OFFSET(ハードウェア・スクロール)とパレットを駆使したワイヤーフレーム
アニメーションです。FM-NEW7のデモのようにFM-77の文字が奥からだんだん大きくなり
つつ近づいてきます。
- 機種:FM-77
- PROGRAM:DEMO5
- テーマ:OS-9
- フルBASICで書かれたデモです。
- キーをタイプした際にクリック音を発声しています。本来FM-77用のOS-9ではキーをタイプした時にクリック音は出ないのですが...
- Reproduces Under Liense と表示されていますが、本物は Reproduced Under License と表示されます。
- 本物の OS-9 と BASIC09 を使って本デモを再現してみました。
本デモと本物ではいろいろと差分がありますので、ぜひ比較してみてください。
- 機種:FM-77
- PROGRAM:DEMO5
- テーマ:OS-9
- これまたどこかで見たような多角形描画デモです。
- 機種:FM-77
- PROGRAM:DEMO5
- テーマ:OS-9
- 画面を4分割しています。
- 分割後の表示が、本モノとは一部異なっている様です。
さて、どこが違っているのでしょう?(間違い探しのノリになって来てます...)
- 機種:FM-77
- PROGRAM:DEMO5
- テーマ:OS-9
- 本モノとは異なり、4つの画面で同時に描き始めて同時に描き終わります。
- 重要なのはそこじゃなくて、同じプログラムで画面サイズが変わっても自動的にリサイズ
されている点です。
- 機種:FM-77
- PROGRAM:DEMO6 DEMO6.M
- テーマ:FM-77の特長
- 音楽:ショパン ワルツ第6番「子犬のワルツ」
- これも1LINEずつ上から降ってきます。これも好きなデモです。
- 機種:FM-77
- PROGRAM:DEMO6 DEMO6.M
- テーマ:FM-77の特長 (完了時)
- 機種:FM-77
- PROGRAM:DEMO6 DEMO6.M
- テーマ:豊富なオプション
- 機種:FM-77
- PROGRAM:DEMO6 DEMO6.M
- テーマ:豊富なオプション (完了時)
- 機種:FM-77
- PROGRAM:DEMO6 DEMO6.M
- テーマ:ソフトウェア
- 機種:FM-77
- PROGRAM:DEMO6 DEMO6.M
- テーマ:ソフトウェア (完了時)
- どう見てもソフトウェアは貧弱ですね。(泣)
FM-77デモの解析結果です。
FM-77 DEMO (F-BASIC V3.0 L2.0 3.5インチ版 FM-77付属)
RUN"DEMO"
6本のプログラムに分割されているが、自動的に実行される。
FM-77ロゴデモ
DELPHIS
鶴
地球
OS-9
SNOW
の順に実施。(サイクリック)
1. ファイル構成、ロードアドレス(SAVE時)
DEMO (BASIC) タイトル画面
DEMO1 (BASIC) FM-77ロゴデモ
DEMO1.M1 $4D00-$53D9 爆発(Kコンパイラ・ランタイム含む)、音楽シーケンサ+データ
DEMO1.M2 $6000-$6783 キラキラ+効果音
DEMO2 (BASIC) DELPHIS
DEMO2.M1 $3F00-$6821
DEMO2.M2 $1600-$4D23
DEMO3 (BASIC) 鶴
DEMO3.M $3000-$6E6B 描画、音楽シーケンサ+データ
DEMO4 (BASIC) 地球
DEMO4.M1 $3D00-$4BFF 音楽シーケンサ+データ
DEMO4.M2 $4D00-$61FF 描画+アニメーション(Kコンパイラ・ランタイム含む)
DEMO5 (BASIC) OS-9
DEMO6 (BASIC) SNOW
DEMO6.M $3D00-$535F 描画、音楽シーケンサ+データ
# Kコンパイラ・ランタイムルーチンが使用されているのは意外でした。
# しかしよく考えてみればデモプログラムのような物には向いている
# のいかもしれませんね。
# バージョンは V3.6 のようです。
2. メモリマップ
DEMO1 (FM-77ロゴデモ)
0 -+-------------------+
|F-BASICワークエリア|
-+-------------------+
|DEMO1 (BASIC) |
-+-------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
4200 -+-------------------+
| |
4D00 -+-----------+-------+
|Kランタイム| |
5000 -+-----------+ |
| DEMO1.M1|
5200 -+-----------+ |
|シーケンサ | |
5300 -+-----------+ |
|音楽データ | |
53D9 -+-----------+-------+
| |
6000 -+-------------------+
|DEMO1.M2 |
| |
6783 -+-------------------+
| |
71D5 -+-------------------+
| DISK-BASIC |
8000 -+-------------------+
| |
| F-BASIC ROM |
| |
FBFF -+-------------------+
DEMO2 (DELPHIS)
ローディング中 → 実行中
0 -+-----------------------------------------------+
|F-BASICワークエリア |
-+-----------------------------------------------+
|DEMO2 (BASIC) |
-+-----------------------------------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
1500 -+-----------------------------------------------+
| | | |
| | 1600 -+-----------------+
| | | |
3D00 -+-----------------+ |DEMO2.M2 |
| | | |
|DEMO2.M1 | 4D23 -+-----------------+
| | | |
6821 -+-----------------+ | |
| | | |
71D5 -+-----------------------------------------------+
| DISK-BASIC |
8000 -+----------------------+-+----------------------+
| | | |
9F00 -+----------------------+ | |
|DEMO2.M1(転送後) | | F-BASIC ROM |
C7FF -+----------------------+ | |
| | | |
FBFF -+----------------------+-+----------------------+
裏RAM F-BASIC ROM
DEMO3 (鶴)
0 -+-------------------+
|F-BASICワークエリア|
-+-------------------+
|DEMO3 (BASIC) |
-+-------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
3000 -+-------------------+
|DEMO3.M |
| |
6300 -+-----------+ |
|シーケンサ | |
6400 -+-----------+ |
|音楽データ | |
6E00 -+-----------+ |
|VRAM OFFSET| |
6E6C -+-----------+-------+
| |
71D5 -+-------------------+
| DISK-BASIC |
8000 -+-------------------+
| |
| F-BASIC ROM |
| |
FBFF -+-------------------+
DEMO4 (地球)
0 -+-------------------+
|F-BASICワークエリア|
-+-------------------+
|DEMO4 (BASIC) |
-+-------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
1500 -+-------------------+
|DEMO4.M2 へのパッチ| BASICプログラム中でパッチを当てている。
150F -+-------------------+
| |
3300 -+----------+--------+
|シーケンサ| | LOADM時にOFFSETロードされる。
3400 -+----------+DEMO4.M1|
|音楽データ| |
41FF -+----------+--------+
| |
4D00 -+-----------+-------+
|Kランタイム| |
5000 -+-----------+ |
|DEMO4.M2 |
61FF -+-------------------+
| |
71D5 -+-------------------+
| DISK-BASIC |
8000 -+-------------------+
| |
| F-BASIC ROM |
| |
FBFF -+-------------------+
DEMO5 (OS-9)
0 -+-------------------+
|F-BASICワークエリア|
-+-------------------+
|DEMO5 (BASIC) |
-+-------------------+
|変数領域 |
| |
6809 -+-------------------+
|カーソル表示 |
683B -+-------------------+
|スタック領域 |
|文字領域 |
6FFF -+-------------------+ ← CLEAR の宣言はここ
| |
71D5 -+-------------------+
| DISK-BASIC |
8000 -+-------------------+
| |
| F-BASIC ROM |
| |
FBFF -+-------------------+
DEMO6 (SNOW)
0 -+-------------------+
|F-BASICワークエリア|
-+-------------------+
|DEMO6 (BASIC) |
-+-------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
3000 -+-------------------+
|DEMO6.M |
| |
4200 -+-----------+ |
|シーケンサ | |
4300 -+-----------+ |
|音楽データ | |
5360 -+-----------+-------+
| |
71D5 -+-------------------+
| DISK-BASIC |
8000 -+-------------------+
| |
| F-BASIC ROM |
| |
FBFF -+-------------------+
3. マシン語プログラム仕様
DEMO1.M1
$4D00 Kランタイム
$5000 FM-77爆発表示+効果音
$5200 音楽シーケンサ (FM-7/11活用研究掲載 MUSIC MAKER の一部)
$5200 音楽演奏開始(音楽データ=$4300)
$5202 音楽演奏開始(音楽データ=Xレジスタ)
$5204 音楽演奏停止
$5300 音楽データ(ワーグナー「ニュルンベルクのマイスタージンガー」前奏曲)
$FFFFが終了コード
DEMO1.M2
$6000 キラキラ+効果音
DEMO3.M
$3000 鶴描画
$6300 音楽シーケンサ (FM-7/11活用研究掲載 MUSIC MAKER の一部)
$6300 音楽演奏開始(音楽データ=$4300)
$6302 音楽演奏開始(音楽データ=Xレジスタ)
$6304 音楽演奏停止
$6400 音楽データ(チャイコフスキー 組曲「くるみ割り人形」<花のワルツ> 前半)
$FFFFが終了コード
$6E00 VRAM OFFSET
$6E00 VRAM OFFSET値(2byte)
$6E02 VRAM OFFSET実行
DEMO4.M1 (オフセットロード後)
$3300 音楽シーケンサ (FM-7/11活用研究掲載 MUSIC MAKER の一部)
$3300 音楽演奏開始(音楽データ=$4300)
$3302 音楽演奏開始(音楽データ=Xレジスタ)
$3304 音楽演奏停止
$3400 音楽データ(チャイコフスキー 組曲「くるみ割り人形」<花のワルツ> 後半)
$FFFFが終了コード
DEMO4.M2
$4D00 Kランタイム
$5000 地球デモ本体
DEMO5 内プログラム
$6809 カーソル表示。演出のため、BASICプログラム実行中にもカーソルを点滅
させています。BASICで表示を行うとすぐに解除されてしまうので、CLS文、
PRINT文、LOCATE文の直後に置かれています。
CLEAR 宣言の内側に格納されているお行儀の悪いプログラムです。
コードレビューしてなかったのでしょうか。
DEMO6.M
$3000 SNOWデモ本体
$4200 音楽シーケンサ (FM-7/11活用研究掲載 MUSIC MAKER の一部)
$4200 音楽演奏開始(音楽データ=$4300)
$4202 音楽演奏開始(音楽データ=Xレジスタ)
$4204 音楽演奏停止
$4300 音楽データ(ショパン ワルツ第6番「子犬のワルツ」)
$FFFFが終了コード
2.3.6 FM-77L2 デモ(F-BASIC V3.0 L2.0)
・FM音源カードデモ(付属テープ)
・音声合成カードデモ(F-BASIC V3.0 L2.0)
・マウスセットデモ(F-BASIC V3.0 L2.0)
2.3.6.1 FM-77L2 デモ&ゲーム
- 機種:FM-77L2
- SOFT:3.5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (FM-77L2添付)
型格:SM07317-F131
- PROGRAM:DEMO
- 機種:FM-77L2
- PROGRAM:DEMOS demo1.m1 demo1.m3 demo1.m3 demo1.m4 brun
- テーマ:FM-77L2
- 音楽:ワーグナー ワルキューレの騎行
- まさかのバックスクロールで始まります。最初は度肝を抜かれました。
- 音楽ももちろんFM音源使用。
- 機種:FM-77L2
- PROGRAM:DEMOS demo1.m1 demo1.m3 demo1.m3 demo1.m4 brun
- テーマ:FM-77L2
- 機種:FM-77L2
- PROGRAM:DEMOS demo1.m1 demo1.m3 demo1.m3 demo1.m4 brun
- テーマ:FM-77L2
- 機種:FM-77L2
- PROGRAM:DEMOS demo1.m1 demo1.m3 demo1.m3 demo1.m4 brun
- テーマ:FM-77L2
- (旧)富士通マークを描いて完了です。
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat boy.m boy.d boy.md
- テーマ:BOY
- これもVRAM OFFSET(ハードウェア・スクロール)を駆使したアニメーションです。
どこかおどけた感じのBOYがかわいいです。
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat boy.m boy.d boy.md
- テーマ:BOY
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat boy.m boy.d boy.md
- テーマ:BOY
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat boy.m boy.d boy.md
- テーマ:BOY
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat boy.m boy.d boy.md
- テーマ:BOY
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat boy.m boy.d boy.md
- テーマ:BOY
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat boy.m boy.d boy.md
- テーマ:BOY
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat boy.m boy.d boy.md
- テーマ:BOY
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
- 音楽:ショパン エチュード 作品25 第9番 変ト長調「蝶々」
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
- 機種:FM-77L2
- PROGRAM:demo2 sub.m rtcd fmobj02 fmdobj fmd.dat neko.m neko.d neko.md
- テーマ:NEKO
FM-77L2デモの解析結果です。
FM-77L2 DEMO (F-BASIC V3.0 L2.0 3.5インチ版 FM-77L2付属)
RUN"DEMO"
DEMO または GAME を選択可能。DEMOを選択すると下記のデモが
実行される。プログラムは2本に分かれているが自動的に実行される。
L2DEMO (逆スクロール+FM音源)
BOY
NEKO の順に実施。(サイクリック)
1. ファイル構成、ロードアドレス(SAVE時)
DEMOS (BASIC) 内部的には demo1, L2DEMOを実行
demo1.m1 $2C00-$4D3C タイトル画面データ
demo1.m2 $1800-$1B9C 逆スクロール
demo1.m3 $2000-$6BFF 音楽演奏+データ
demo1.m4 $2C00-$3B57 富士通ロゴデータ
brun $1000-$2BFF 描画エンジン
demo2 (BASIC) BOY と NEKO を実行
sub.m $1800-$1857 裏RAMへの転送と実行
boy.d $5000-$6D88 BOY データ
boy.m $5000-$6054 BOY プログラム本体
neko.d $5000-$6C3C NEKO データ
neko.m $5000-$6C85 NEKO プログラム本体
rtcd $4D00-$4FFF Kコンパイラ・ランタイムルーチン &H300 Offset Load
fmobj02 $2000-$6215 音楽演奏+データ
boy.md $3000-$383B BOY 音楽データ &H1000 Offset Load
neko.md $202D-$3E25 NEKO 音楽データ
fmdobj $6300-$684F 音源データ(音色番号1〜40)
fmd.dat $69FC-$6B4F 上書き音源データ(音色番号31〜40) -&H300 Offset Load
# Kコンパイラ・ランタイムルーチンが使用されているのは意外でした。
# しかしよく考えてみればデモプログラムのような物には向いている
# のいかもしれませんね。
# バージョンは V3.6 で、IO-DOS9用に $CD00〜$CFFF にリロケート
# されたものが使われています。
2. メモリマップ
DEMOS(demo1)
タイトル描画 → 逆スクロール・音楽 → 富士通ロゴ
0 -+---------------------------------------------+
|F-BASICワークエリア |
-+---------------------------------------------+
|DEMOS (BASIC) |
-+---------------------------------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
1800 -+---------+- 1800-+---------+- 1800-+---------+
| | |demo1.m2 | | |
|brun | 1B9C-+---------+ |brun |
| | 2000-+---------+ | |
3400 -+---------+ | | 3400-+---------+
|demo1.m1 | |demo1.m3 | |demo1.m4 |
| | | | 4357-+---------+
553C -+---------+ | | | |
| | 7000-+---------+ | |
| | | | | |
| |
8000 -+---------------------------------------------+
| |
| F-BASIC ROM |
| |
FBFF -+---------------------------------------------+
demo2
ローディング中 → 実行中
0 -+-----------------------------------------------+
|F-BASICワークエリア |
-+-----------------------------------------------+
|demo2 (BASIC) |
-+-----------------------------------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
1800 -+-----------------------------------------------+
|sub.m |
1857 -+-----------------------------------------------+
| |
| 2000 -+----------------------+
| |音楽データ |
| 202D -+ +-----------+
| | |neko.md | neko.md で上書きされる
| 3E25 -+ +-----------+
| 4000 -+ +-----------+
| | |boy.md | boy.md で上書きされる
| 483B -+ +-----------+
5000 -+-------------+ |fmobj02 |
| | 6215 -+----------------------+
|転送バッファ | 6300 -+----------------------+
| neko.d | |音源データ |
| neko.m | 66FC -+ +-----------+
| boy.d | |fmdobj |fmd.dat | fmd.dat で上書きされる
| boy.m | 684F -+----------+-----------+
| | | |
6xxx -+-------------+ | |
| |
8000 -+----------------------+ +----------------------+
|neko.d(転送後) | | |
9C3C -+----------------------+ | |
9D00 -+----------------------+ | |
|neko.m(転送後) | | |
B985 -+----------------------+ | |
BA00 -+----------------------+ | |
|boy.m(転送後) | | |
CA54 -+----------------------+ | F-BASIC ROM |
CC00 -+----------------------+ | |
|ワークエリア | | |
CD00 -+----------------------+ | |
|rtcd(転送後) | | |
D000 -+----------------------+ | |
|boy.d(転送後) | | |
ED88 -+----------------------+ | |
| | | |
FBFF -+----------------------+-+----------------------+
裏RAM F-BASIC ROM
3. マシン語プログラム仕様
brun 描画エンジン? "Wonder Soft" の文字列あり
demo1.m1 画面データ
demo1.m2 逆スクロール
demo1.m3 音楽演奏+データ
demo1.m4 富士通ロゴデータ
sub.m 裏RAMへの転送と実行
$1806 ブロック転送。以下のパラメタを設定。
$1800 転送サイズ
$1802 転送先アドレス
$1804 転送元アドレス
$1808 裏RAM指定アドレス実行。以下のパラメタを設定。
$1800 実行アドレス
# NEKOの2〜4枚目の絵でヒゲの描き忘れはご愛嬌でしょうか。
# それにしても、このデモプロの画像キャプチャには骨が折れました。
- 機種:FM-77L2
- PROGRAM:GAME game.m
- ゲーム:FM-77L2付属ゲーム
- ジョイスティックが必要です。
- 機種:FM-77L2
- PROGRAM:GAME game.m
- ゲーム:FM-77L2付属ゲーム
- 機種:FM-77L2
- PROGRAM:GAME game.m
- ゲーム:FM-77L2付属ゲーム
1. ファイル構成、ロードアドレス
GAME (BASIC) ローダー
game.m $4D00-$70FF ゲーム本体(Kコンパイラランタイム含む)
2. メモリマップ
0 -+------------------------+
|F-BASICワークエリア |
-+------------------------+
|GAME (BASIC) |
-+------------------------+
|変数領域 |
|スタック領域 |
|文字領域 |
2000 -+------------------------+
| |
| |
4D00 -+---------------------+--+
|Kコンパイラランタイム| |
5000 -+---------------------+ |
|game.m |
| |
7100 -+------------------------+
| |
8000 -+------------------------+
| |
| F-BASIC ROM |
| |
FBFF -+------------------------+
2.3.6.2 FM-スーパーシンセ
- 機種:FM-77L2
- SOFT:FM-Super Synth
- 開発元:Musical Plan
- PROGRAM:SYNTH BOOT NC5
- ビクター音楽産業より発売されていた、FM-7シリーズ用音楽ソフトウェアの「スーパーシンセ1」
(PSG対応)のFM音源対応版です。機能、内容とも市販ソフトウェアレベルと思いますので、
デモ版というよりは製品版をバンドルした感じです。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:SYNTH BOOT NC5
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- Menu 画面です。左側の6つのアイコンで機能(動作モード)を選択します。
- MATRIX PLAY(マトリクス演奏モード) を選択した状態です。
- 左下の PRTインジケータ は、Portamento の ON/OFF 表示です。TABキーで切換えます。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:MATRIX PLAY(マトリクス演奏モード)
- こちらのモードでは、1声のみの発声になります。
- 右上の緑色の田の字形のアイコンとカーソルでAMP(音量)、TONE(音色)の各種パラメタを操作しつつ演奏します。
- 基本音色(楽器)はPFキーで選択します。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- Menu画面で FUNCTION PLAY(ファンクション演奏モード) を選択した状態です。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:FUNCTION PLAY(ファンクション演奏モード)
- こちらのモードでは、3声同時発声になります。
- 下半分の操作パネルで、各ボイスの、音量、デチューン、Trans、Octave、Delay、Scaleを指定します。
- 基本音色(楽器)はPFキーで選択します。
- Trans と Octave の組み合わせで和音を作成できます。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- Menu画面で RECORDING(録音再生モード) を選択した状態です。
- 録音だけでなく再生もできます。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:RECORDING(録音再生モード)
- リターンキーで録音モード、スペースキーで再生モードになります。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- Menu画面で SAVE, LOAD(セーブ・ロードモード) を選択した状態です。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:SAVE, LOAD(セーブ・ロードモード)
- Save/Loadの選択、メディアの選択、音源データ/音楽データの選択を行います。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:SAVE, LOAD(セーブ・ロードモード)
- ここでは Load の実行例だけにしておきます。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:SAVE, LOAD(セーブ・ロードモード)
- メディアとして D0 or D1 を指定した場合には、画面上部にファイル一覧を表示してくれます。
- 青色が音楽データファイル(拡張子は.S)、赤色が音源データ(拡張子は.T)です。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:SAVE, LOAD(セーブ・ロードモード)
- 何となくカーソルキーでファイルを選択したくなりますが、そんな気の利いた事はできません。
- 左側の青い四角にファイル名を入力します。次の3曲が準備されています。
- SONG/A バッハ インベンションとシンフォニア インベンション第1番ハ長調
- SONG/B モーツァルト セレナーデ第13番ト長調KV525「アイネ・クライネ・ナハトムジーク」第一楽章アレグロ
- SONG/C (調査中)
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:SAVE, LOAD(セーブ・ロードモード)
- 音楽データロード中です。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:SAVE, LOAD(セーブ・ロードモード)
- ロード完了です。左側のインジケータはメモリ残量を表しているのだと思います。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:RECORDING(録音再生モード)
- 先ほどの録音再生モードで再生しています。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- Menu画面で EXIT(終了モード) を選択した状態です。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:EXIT(終了モード)
- 本当に終了するかどうか確認を求められます。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- Menu画面で PRINT MUSIC(楽譜表示モード) を選択した状態です。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:PRINT MUSIC(楽譜表示モード)
- 表示先、最小音符、ボイス、開始小節を選択します。
- 機種:FM-77L2
- SOFT:FM-Super Synth
- PROGRAM:*1 BOOT NC5
- モード:PRINT MUSIC(楽譜表示モード)
- 画面に表示している例です。一番上の五線譜の領域に楽譜を表示します。
- 左右カーソルキーを押すと、楽譜が自動スクロールします。(スペースキーで停止)
FM-Super Synth メモリマップ
ローディング中 → 実行中
0 -+-----------------------------------------------+
|F-BASICワークエリア |
-+-----------------------------------------------+
|SYNTH (BASIC) | |*1 (BASIC) |
-+------------------+ +------------------+
|変数領域 | |変数領域 |
|スタック領域 | |スタック領域 |
|文字領域 | |文字領域 |
3F00 -+------------------+ 3F00 -+------------------+
| | 40A0 -+プリンタ初期化 |
| | 40F0 -+裏RAM $9000コール |
| | 4100 -+メインエントリ |
| | | |
4F00 -+------------------+ |NC5 |
|BOOT | | |
5000 -+----------------+ + | |
| | | | |
| | | 5E14 -+ +-----------+
| | | | |xxxx.T |音源データ上書き領域
| | | 5FA0 -+ +-----------+
| | | | |xxxx.S |音楽データ上書き領域
|この部分のみ転送| | 6000 -+------| |
| | | | | |
6800 -+----------------+ + | | |
| | | | |
7000 -+------------------+ 7000 -+ +-----------+
| | | |
| |
8000 -+----------------------+-+----------------------+
|BOOTの一部(転送後) | | |
9000 -+Entry | | |
| | | |
9800 -+----------------------+ | |
| | | F-BASIC ROM |
| | | |
FBFF -+----------------------+-+----------------------+
裏RAM F-BASIC ROM
NC5のエントリ
$3F00 USR2
$40A0 (EXEC) プリンタ初期化(FBIOS経由)
$40F0 USR1 裏RAM $9000コール
$4100 USR/USR0
2.3.6.3 FM音源ライブラリ
上記のFM-スーパーシンセが製品レベルであるのと比較し、次に紹介する2つのソフトは
開発途上というか、コンセプトデモ、あるいはエンジンデモと考えた方が良さそうな出来です。
GUIの開発が間に合わなかったのか、そもそもその計画がなかったのかは今となっては
不明ですが、今でいうCUIのみになっています。
その1
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- MUSIC PLAYER という名前が付いていますが、実際は音源データの編集がメイン
のようです。これが後の Sound Editor につながるんでしょうか。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- メニュー画面です。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- 1 を選択します。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- DATA:SAMPLE
- SAMPLE を指定します。
- データ読み込み(バイナリ変換&裏RAM転送)中。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- DATA:SAMPLE
- 音楽:バッハ インベンションとシンフォニア インベンション第13番イ短調
- 演奏中。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- 演奏終了。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- 2 を選択します。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- 音源データの編集画面になります。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- T(またはt)キーを押すと、編集するTone番号の入力を促されます。
- Tone番号は1〜40まで指定可能(すなわち編集可能)ですが、Load/Save可能なのは31〜40番
までとなっています。
- Load/Save のファイル名は FMD.DAT に固定されており、バックアップや複数種類のデータ
を用意するにはこのプログラムの外で、自分で管理する必要があります。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- 音源データの編集画面になります。
- L(またはl)キーを押すと、Are you sure? と確認を求められます。Y(またはy)キーでロード
が開始されます。(ファイル名はFMD.DATに固定。)
- ロードする際には、FMD.DAT全体が読み込まれ、Tone番号31〜40全部の音源データが上書き
されるようです。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- S(またはs)キーを押すと、セーブするTone番号の入力を促されます。
- ロードと異なり、セーブの際には指定したTone番号の音源データのみ、FMD.DATが更新される
ようです。(82HM-0120-10 FM-77/NEW7 FM音源カード取り扱い説明書 に折込みの補足説明書より)
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- PROGRAM:MUSIC FMOBJ02 FMOBJ01 FMDOBJ FMD.DAT
- 3 を選んで終了です。
- 機種:FM-77L2
- SOFT:FM MUSIC PLAYER V1.0
- DATA:SAMPLE (前半)
- SAMPLE はアスキーセーブされたF-BASICテキストファイルです。
演奏データはコメント文で入力するようになっています。
手打ちしろ、ということのようです。
その2
- 機種:FM-77L2
- SOFT:FM MUSIC EDITOR
- PROGRAM:TEXTED FMOBJ02 FMOBJ03 FMDOBJ FMD.DAT SAMPLE
- 音楽:バッハ インベンションとシンフォニア インベンション第13番イ短調
- これ1枚だけです。orz
- TEXTED はその名に反してテキスト編集機能など全く持っておらず、その実態は
各種オブジェクトコード&データをロードし、音楽データ演奏(及び編集)の準備をするだけです。
- SAMPLE は MUSIC PLAYER と同じものです。
- 機種:FM-77L2
- SOFT:FM MUSIC EDITOR
- PROGRAM:SAMPLE (後半)
- 最後の行の、EXEC &H6600 がキモです。このファイルは基本的には
コメント文に音楽演奏データを格納するのですが、最後の行だけ実行文になっており、この行を
実行すると音楽データ変換&演奏を行います。(この行は MUSIC PLAYER では無視されます。)
- TEXTED と一緒に使う限りはアスキーファイルである必要性は無さそうですが、MUSIC PLAYER
の方はアスキーファイルでないと読めません。
MUSIC PLAYER ファイル構成
FMUTY (BASIC) MUSICを呼出すだけ。Protectされている。メモリマップは省略。
MUSIC (BASIC) MUSIC PLAYER メインプログラム
SAMPLE (BASIC) ファイル名は任意、アスキーセーブされている事。
FMOBJ01 $6600-$6B0C 音楽演奏(メインRAM)
FMOBJ02 $4FE0-$60DF 音楽演奏(裏RAM)
FMDOBJ $6000-$63FB 音源データ1(音色番号1〜30)
FMD.DAT $63FC-$654F 音源データ2(音色番号31〜40) Load/Save対象
MUSIC PLAYER メモリマップ
ローディング中 → 実行中
0 -+-----------------------------------------------+
|F-BASICワークエリア |
-+-----------------------------------------------+
|MUSIC (BASIC) |
-+-----------------------------------------------+
|変数領域 |
|スタック領域 |
| - - - - - - - - - - - - - - - - - - - - - - - |
|文字領域 (1000文字分) |(SAMPLE はここの領域に1行ずつ読み込まれて処理される)
4FE0 -+------------------+---------+------------------+
|FMOBJ02 | | |
5000 -+----------------+ + | |
|この部分のみ転送| | 6000 -+------------------+
60E0 -+----------------+-+ |FMDOBJ |音源データ1(音色番号1〜30)
| | 63FC -+------------------+
| | |FMD.DAT |音源データ2(音色番号31〜40) Load/Save対象
| | 6550 -+------------------+
| | | |
| | 6600 -+------------------+
| | |FMOBJ01 |音楽演奏
| | 6B0D -+------------------+
| | | |
| |
8000 -+----------------------+-+----------------------+
|FMOBJ02の一部(転送後) | | |
90E0 -+----------------------+ | |
| | | F-BASIC ROM |
|音楽データバッファ | | |
| | | |
FBFF -+----------------------+-+----------------------+
裏RAM F-BASIC ROM
FMOBJ01 のエントリ
$6606 Initial Routine
$662E Play Routine (裏RAM内ルーチン呼び出し)
$665A USR0 Entry (1行バイナリ変換&裏RAM格納)
MUSIC EDITOR ファイル構成
TEXTED (BASIC) MUSIC EDITOR メインプログラム
SAMPLE (BASIC) ファイル名は任意、アスキーセーブされている事。
FMOBJ02 $4FE0-$60DF 音楽演奏(裏RAM)
FMOBJ03 $6600-$6CE3 音楽演奏(メインRAM)
FMDOBJ $6000-$63FB 音源データ1(音色番号1〜30)
FMD.DAT $63FC-$654F 音源データ2(音色番号31〜40)
MUSIC EDITOR メモリマップ
ローディング中 → 実行中
0 -+-----------------------------------------------+
|F-BASICワークエリア |
-+-----------------------------------------------+
|TEXTED (BASIC) | |SAMPLE (BASIC) |REM文中に音楽データを格納
-+------------------+ | |
|変数領域 | | |
|スタック領域 | | |
|文字領域 | +------------------+
4FE0 -+------------------+ |変数領域 |
|FMOBJ02 | |スタック領域 |
5000 -+----------------+ + |文字領域 |
|この部分のみ転送| | 6000 -+------------------+
60E0 -+----------------+-+ |FMDOBJ |音源データ1(音色番号1〜30)
| | 63FC -+------------------+
| | |FMD.DAT |音源データ2(音色番号31〜40)
| | 6550 -+------------------+
| | | |
| | 6600 -+------------------+
| | |FMOBJ03 |音楽演奏 (REM文中の音楽データをバイナリ変換して
| | 6CE3 -+------------------+ 裏RAMに格納後、演奏)
| | | |
| |
8000 -+----------------------+-+----------------------+
|FMOBJ02の一部(転送後) | | |
90E0 -+----------------------+ | |
| | | F-BASIC ROM |
|音楽データバッファ | | |
| | | |
FBFF -+----------------------+-+----------------------+
裏RAM F-BASIC ROM
FMOBJ03 のエントリ
$6600 REM文中の音楽データをバイナリ変換して裏RAMに格納後、演奏
2.3.7 FM音源カードデモ(付属テープ)
・音声合成カードデモ(F-BASIC V3.0 L2.0)
・マウスセットデモ(F-BASIC V3.0 L2.0)
- 機種:FM音源カード(MB22459)
- SOFT:FM音源ライブラリ (FM音源カード添付TAPE)
型格:SM07317-J190
- PROGRAM:DEMO
- どこかで見た画面と似ていますね。
実は、FM-77L2のデモプログラムのほとんどはFM音源カード添付ソフトだったのです。
- 機種:FM音源カード(MB22459)
- PROGRAM:DEMO
- この画面以降は、FM-77L2デモの項で紹介した BOY と NEKO を繰り返し実行します。
- ここではFM-77L2と違う画面だけ紹介します。
- 機種:FM音源カード(MB22459)
- PROGRAM:DEMO
- FM音源カードのセットの添付ソフトウェアはTAPEのみです。フロッピーディスクを
つないでいるFM-7/NEW7ユーザーやFM-77ユーザーは当然このソフトをフロッピーに
コピーしたくなります。それを補助してくれるのがメニューの3番です。
(自動的にやってくれる訳ではなく、コピーのための情報提供のみです。)
気前よくフロッピーを添付してくれればいいのですがね。
- デモとゲームのファイル群です。
- 機種:FM音源カード(MB22459)
- PROGRAM:DEMO
- スーパーシンセ関係のファイル群です。
- 音楽データ(xxxx.T)、音源データ(xxxx.S)はスーパーシンセを起動してコピーせよ、
と指示されてますが、実際にそれをするのは難しそうな気がします。
これらのファイルは実は通常のバイナリファイルなので、
LOADM と SAVEM で簡単にコピーできます。そのための情報を載せておきます。
xxxxの部分によらず、アドレスは共通になっています。
ファイル名 |
開始番地 |
終了番地 |
入口番地 |
xxxx.S |
$5FA0 |
$6FFF |
$0000 |
xxxx.T |
$5E14 |
$5F99 |
$0000 |
- 機種:FM音源カード(MB22459)
- PROGRAM:DEMO
- FM音源ユーティリティ関係のファイル群です。
- LOAD時間や手間の短縮のため、FMOBJ02、FMDOBJ、FMD.DAT、SAMPLE は同じものが2回セーブされています。
DISKにコピーする際には、どちらか一方をコピーすれば十分です。(その辺りの注意事項すらないとは...)
- 機種:FM音源カード(MB22459)
- SOFT:FM音源ライブラリ (FM音源カード添付TAPE)
型格:SM07317-J190
- 念のため FILES で TAPE に格納されているファイルを確認してみました。
- 機種:FM音源カード(MB22459)
- SOFT:FM音源ライブラリ (FM音源カード添付TAPE)
型格:SM07317-J190
- すると、最後の STICK(ジョイスティックドライバ) が上記のメニュー3番の説明から
モレている事が判明。ちょっといただけませんね。確かに、STICK はデモからもスーパーシンセから
もFM音源ユーティリティからも参照されてないので見落とし易いのかもしれません。
- せっかくなので、TAPE から DISK へコピーするための情報を載せておきます。
ファイル名 |
開始番地 |
終了番地 |
入口番地 |
STICK |
$5000 |
$512F |
$0000 |
- 機種:FM-77L2
- SOFT:3.5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505)
型格:SM07317-F131
- FM-77L2 添付の SYSTEM DISK の中味と比較してみました。
- 黄色の枠内がTAPE版のDEMO & GAME に対応します。
- TAPE版のDEMOSがDISK版ではファイル名変更され、demo2になっています。
- DISK版のDEMOSは、boy と neko の前にFM-77L2デモを実行します。
- 水色の枠内がTAPE版のスーパーシンセに対応します。(同一ファイルです。)
- 緑色の枠内がTAPE版のFM音源ユーティリティに対応します。(同一ファイルです。)
- DISK版には FMUTY というファイルが追加されていますが、MUSIC を呼出しているだけです。
- 当然ですが、FMOBJ02、FMDOBJ、FMD.DAT、SAMPLE は一つずつ格納されています。
- DISK版にもちゃんと STICK は含まれています。
2.3.8 音声合成カードデモ(F-BASIC V3.0 L2.0)
・マウスセットデモ(F-BASIC V3.0 L2.0)
- 機種:音声合成カード(MB22437、FM77-431)
- SOFT:5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (市販版=NEW7用)
型格:SM07317-F123
- SOFT:3.5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (市販版=NEW7用)
型格:SM07317-F128
- PROGRAM:ONSEI TALK DEMO-O ART-O
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O WOMAN-D
- テーマ:WOMAN (FM-NEW7版)
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O WOMAN-D
- テーマ:WOMAN (FM-NEW7版)
- 最後にお約束の「ウィンク」してくれます。
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O TOKEI-D
- テーマ:TOKEI (FM-NEW7版)
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O WAKA1-D
- テーマ:KOMACHI (FM-NEW7版)
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O WAKA2-D
- テーマ:AKAHITO (FM-NEW7版)
- 機種:音声合成カード(MB22437、FM77-431)
- SOFT:3.5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (FM-77添付)
型格:SM07317-F122
- PROGRAM:ONSEI TALK DEMO-O ART-O URADIM-O WOMAN
- テーマ:WOMAN (FM-77版)
- FM-NEW7版と微妙に配色が異なっています。
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O URADIM-O WOMAN
- テーマ:WOMAN (FM-77版)
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O URADIM-O TOKEI
- テーマ:TOKEI (FM-77版)
- FM-NEW7版と微妙に配色が異なっています。
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O URADIM-O AKAHITO
- テーマ:AKAHITO (FM-77版)
- FM-NEW7版と微妙に配色が異なっています。
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O URADIM-O KOMACHI
- テーマ:KOMACHI (FM-77版)
- FM-NEW7版とは絵が異なっています。
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O URADIM-O ISE
- テーマ:ISE (FM-77版)
- 機種:音声合成カード
- PROGRAM:ONSEI TALK DEMO-O ART-O URADIM-O TEIKA
- テーマ:TEIKA (FM-77版)
音声合成カードデモの解析結果です。
音声合成カードDEMO(FN-NEW7,FM-77システムディスク添付)
音声合成カード(MB22437、FM77-431)のためのデモ。
しかし、音声合成カードを実装していなくても起動できる。
1. ファイル構成、ロードアドレス(SAVE時)
FM-NEW7版
ONSEI (BASIC)
TALK $7000-$70C0
DEMO-O $6E00-$7059
ART-O $6D00-$6DE1
WOMAN-D $0000-$0CB8 WOMAN 描画データ
TOKEI-D $0000-$0760 TOKEI 描画データ
WAKA1-D $0000-$1010 KOMACHI 描画データ
WAKA2-D $0000-$0DE8 AKAHITO 描画データ
FM-77版
ONSEI (BASIC) FM-NEW7版とはメモリマップが異なる。
TALK $7000-$70C0
DEMO-O $6E00-$70FF
ART-O $6D00-$6DE1
URADIM-O $6780-$67FF
WOMAN (DATA) WOMAN 描画データ
TOKEI (DATA) TOKEI 描画データ
KOMACHI (DATA) KOMACHI 描画データ
AKAHITO (DATA) AKAHITO 描画データ
ISE (DATA) ISE 描画データ
TEIKA (DATA) TEIKA 描画データ
2. メモリマップ
FM-NEW7版
0 -+---------------------------------------------+
|F-BASICワークエリア |
0BF9 -+---------------------------------------------+
| ONSEI (BASIC) |
4F00 -+---------------------------------------------+
|変数領域 |
| +----------------------+
| |DIM B%(3,600) |
| |描画データ |
| +----------------------+
| |
-+---------------------------------------------+
|文字領域、スタック |
6D00 -+---------------------------------------------+
| ART-O |
6E00 -+---------------------------------------------+
| DEMO-O |
7100 -+---------------------------------------------+
| TALK |
71D5 -+---------------------------------------------+
| DISK BASIC |
8000 -+---------------------------------------------+
| |
| F-BASIC V3.0 ROM |
| |
FBFF -+---------------------------------------------+
DEFINT B:DIM B(3,600) ... 描画データ用配列(4.8KB)
AD%=VARPTR(B(0,0)):LOADM NA$,AD% ... 配列に直接読み込む
配列に値を設定する最速の方法。
FOR〜NEXT で READ DATA を回すよりも早い。
FM-77版
0 -+---------------------------------------------+
|F-BASICワークエリア |
0BF9 -+---------------------------------------------+
| ONSEI (BASIC) |
4F00 -+---------------------------------------------+
|変数領域 |
| |
-+---------------------------------------------+
|文字領域、スタック |
6C80 -+---------------------------------------------+
| URADIM-O |
6D00 -+---------------------------------------------+
| ART-O |
6E00 -+---------------------------------------------+
| DEMO-O |
7100 -+---------------------------------------------+
| TALK |
71D5 -+---------------------------------------------+
| DISK BASIC |
8000 -+--------------------+ +----------------------+
| | | |
| 描画データ | | F-BASIC V3.0 ROM |
| | | |
FBFF -+--------------------+-+----------------------+
裏RAM BASIC ROM
FM-77では描画データは通常のデータファイル形式。(実は、マウスデモ
データと共通。)
OPEN"I"でファイルを開いて4ワードずつ読み出しては裏RAMに格納する。
3. マシン語プログラム仕様
TALK
$7100 音声合成
DEF USR=&H7100:A=USR("文字列") で呼び出す。
DEMO-O
$6E00 TILE カラーチェンジ
DEF USR=&H6E00:A=USR(TILE$) で呼び出す。
ART-O
$6D00 描画ルーチン
サブシステムを直接たたいて高速描画を行う。
裏RAMに切り替えてから描画しているので、描画データは
どちらのRAMにあってもよい。
URADIM-O
$6C80 描画データを4ワードずつ裏RAMへ転送する。
(詳細は下のマウスセットデモの解析を参照してください。)
2.3.9 マウスセットデモ(F-BASIC V3.0 L2.0)
- 機種:マウスセット(MB22436)
- SOFT:5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (市販版=NEW7用)
型格:SM07317-F123
- SOFT:3.5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (市販版=NEW7用)
型格:SM07317-F128
- PROGRAM:MICKEY
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O TEST
- テーマ:TEST (FM-NEW7版)
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O
- テーマ:WOMAN (FM-NEW7版)
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O WOMAN
- テーマ:WOMAN (FM-NEW7版)
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O
- テーマ:KOMACHI (FM-NEW7版)
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O KOMACHI
- テーマ:KOMACHI (FM-NEW7版)
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O KOMACHI
- 機種:マウスセット
- PROGRAM:OEKAKI7 MOUSE URADIM-O KOMACHI
- 機種:マウスセット
- PROGRAM:OEKAKI7
- 機種:マウスセット
- SOFT:3.5インチDISK版 F-BASIC Ver 3.0 L2.0 (840505) (FM-77添付)
型格:SM07317-F122
- PROGRAM:OEKAKI7N MOUSE ART7-O URADIM-O
- FM-NEW7版とは異なり、音声合成デモの描画データと共通になっています。
- 機種:マウスセット
- PROGRAM:OEKAKI7N MOUSE ART7-O URADIM-O WOMAN
- テーマ:WOMAN (FM-77版)
- 機種:マウスセット
- PROGRAM:OEKAKI7N MOUSE ART7-O URADIM-O TOKEI
- テーマ:TOKEI (FM-77版)
- 機種:マウスセット
- PROGRAM:OEKAKI7N MOUSE ART7-O URADIM-O AKAHITO
- テーマ:AKAHITO (FM-77版)
- 機種:マウスセット
- PROGRAM:OEKAKI7N MOUSE ART7-O URADIM-O KOMACHI
- テーマ:KOMACHI (FM-77版)
- 機種:マウスセット
- PROGRAM:OEKAKI7N MOUSE ART7-O URADIM-O ISE
- テーマ:ISE (FM-77版)
- 機種:マウスセット
- PROGRAM:OEKAKI7N MOUSE ART7-O URADIM-O TEIKA
- テーマ:TEIKA (FM-77版)
マウスセットデモの解析結果です。
マウスセットDEMO(FN-NEW7,FM-77システムディスク添付)
マウスセット(MB22436)のためのデモ。
1. ファイル構成、ロードアドレス(SAVE時)
FM-NEW7版
MICKEY (BASIC)
OEKAKI7 (BASIC) Ver 1.0 ... 描画はF-BASICのLINE/CIRCLE/PAINT
MOUSE $6000-$67FE マウスドライバ
URADIM-O $6780-$67CF
TEST (DATA) TEST 描画データ
WOMAN (DATA) WOMAN 描画データ
KOMACHI (DATA) KOMACHI 描画データ
FM-77版
MICKEY (BASIC)
OEKAKI7N (BASIC) Ver 2.0
MOUSE $6000-$67FE マウスドライバ
ART7-O $6660-$6741 高速描画ルーチン ... このおかげで約3倍高速
URADIM-O $6780-$67FF ... 音声合成カードデモと共用
WOMAN (DATA) WOMAN 描画データ ... 音声合成カードデモと共通
TOKEI (DATA) TOKEI 描画データ ... 音声合成カードデモと共通
KOMACHI (DATA) KOMACHI 描画データ ... 音声合成カードデモと共通
AKAHITO (DATA) AKAHITO 描画データ ... 音声合成カードデモと共通
ISE (DATA) ISE 描画データ ... 音声合成カードデモと共通
TEIKA (DATA) TEIKA 描画データ ... 音声合成カードデモと共通
2. メモリマップ
FM-NEW7版
0 -+---------------------------------------------+
|F-BASICワークエリア |
0BF9 -+---------------------------------------------+
| MICKEY (BASIC) → OEKAKI7 (BASIC) |
4F00 -+---------------------------------------------+
|変数領域 |
| |
-+---------------------------------------------+
|文字領域、スタック |
6780 -+---------------------------------------------+
| URADIM-O |
6800 -+---------------------------------------------+
| MOUSE |
71D5 -+---------------------------------------------+
| DISK BASIC |
8000 -+--------------------+ +----------------------+
| | | |
| 描画データ | | F-BASIC V3.0 ROM |
| | | |
FBFF -+--------------------+-+----------------------+
裏RAM BASIC ROM
FM-77版
0 -+---------------------------------------------+
|F-BASICワークエリア |
0BF9 -+---------------------------------------------+
| MICKEY (BASIC) → OEKAKI7N (BASIC) | <= NEW7版と異なる点
4F00 -+---------------------------------------------+
|変数領域 |
| |
-+---------------------------------------------+
|文字領域、スタック |
6660 -+---------------------------------------------+
| ART7-O | <= NEW7版と異なる点
6780 -+---------------------------------------------+
| URADIM-O |
6800 -+---------------------------------------------+
| MOUSE |
71D5 -+---------------------------------------------+
| DISK BASIC |
8000 -+--------------------+ +----------------------+
| | | |
| 描画データ | | F-BASIC V3.0 ROM |
| | | |
FBFF -+--------------------+-+----------------------+
裏RAM BASIC ROM
描画データは通常のデータファイル形式。FM-77版では音声合成デモ
データとファイルそのものを共用している。)
3. マシン語プログラム仕様
MOUSE
$6800 マウスドライバ
DEFINT A:DIM A(8)
A(6)=&H12BD '12 BD NOP; JSR
A(7)=&H6800
A(8)=&H3900 '39 RTS
A(0)〜A(5)にパラメタを設定
EXEC VARPTR(A(6)) で呼び出す。
という実に回りくどいやりかたをしています。
設定値:
A(0)=0:A(1)=2 初期化
A(0)=1 マウスカーソル表示
A(0)=2 マウスカーソル消去
A(0)=3 マウスボタン・座標ゲット
→ ボタン=A(1):X=A(2):Y=A(3)
A(0)=21 終了
戻り値:
A(0) ステータス
A(1) マウスボタン
A(2) X座標
A(3) Y座標
URADIM-O
$6780 描画データの裏RAMへの格納と取り出し。
DEFINT B:DIM B(8)
B(6)=&H12BD:'12 BD
B(7)=&H6780
B(8)=&H3900:'39
B(0)〜B(5)にパラメタを設定
EXEC VARPTR(B(6)) で呼び出す。
パラメタ:
B(0) 0=裏RAMから取り出し。1=裏RAMへ格納
B(1) DATAポインタ
B(2) 上位4bit=Function, 下位12bit=X座標1
B(3) 上位4bit=Color, 下位12bit=Y座標1
B(4) X座標2
B(5) Y座標2
Function:
1 = LINE
2 = BOX
3 = CIRCLE
4 = PAINT
ART7-O
$6660 描画ルーチン(FM-77版のみ)
サブシステムを直接たたいて高速描画を行う。
裏RAMに切り替えてから描画しているので、描画データは
どちらのRAMにあってもよい。
尚、このデモはマウスセットをサポートしていない L70 よりも前のバージョンの XM7
では動作しませんが、BASICコードを一行書き換えることにより、マウス操作を GCURSOR
命令に置き換えて動作させることができます。
51010 GCURSOR(X,Y),(X,Y):HT=1:RETURN
L70 以降のバージョンの XM7 ではそのままで動作します。
オマケコーナー
- 上の方で富士通の旧ロゴについて触れましたが、はたして、FM-7/8シリーズで新ロゴを表示したらどうなるのか、
試しにやってみました。BASIC(LINE文)で書いたため超遅いです。FM77AVの新SUBを使っても速くならないです。(泣)
座標データとしては価値があるかもしれません。
オマケコーナーその2
- タモリが宣伝していた頃の広告で、FM-7+モニタに表示されていた迷路を再現してみました。
見よう見まねで作っていますので、細部は異なっています。あくまでイメージ図ということで。
- これの本物(の画面)を持っている方、あるいはプログラムが掲載された資料をご存知の方は
ぜひご連絡ください。
謝辞:Laver様、インベンションとシンフォニアに関するご指摘ありがとうございました。
謝辞:りう様、FM-7 DEMOにおける音楽再生ルーチンに関する情報ありがとうございました。
謝辞:福井利夫様、FM-8 DEMO における問題点について情報ありがとうございました。
F-BASIC起動画面集
F-BASIC詳細編
F-BASIC詳細編(その2:デモ画面集)
FM77AVシリーズ システムディスク編
FM77AVシリーズ デモ・入門ディスク編
CP/M-80編
CP/M-80 アプリケーション編
OS-9編
FLEX編
FLEX アプリケーション編
F-BASIC ファイルシステム(およびその上位互換)上に構築されたOS、開発システム
FM-7/8シリーズ用プログラミング言語とその処理系
番外編(その2:勝手に誤記修正編)
番外編(その3:6809用MMU考察)
番外編(その5:FM-7,8シリーズのROM一覧)
番外編(その6:FM-77用拡張メモリ他について)
番外編(その7:FM-8/7/77/77AVシリーズの微妙な非互換性)
番外編(その8:FM-7/8シリーズ用アドオンCPUカード)
番外編(その11:FM-11,16シリーズのROM一覧)
緊急特集:MB22603の秘密
FM-8改造 備忘録
--------
レベル3BASICとF-BASIC を覗いてみる
テクノポリス誌ナウシカベンチマークとミンキーモモベンチマーク
ASCIIART(マンデルブロ集合)ベンチマーク
漢字ROM博物館(情報募集中)
--------
各種電子デバイス関連
--------
入り口ページに戻る
ご意見、ご要望はこちらまで(笑)