FM-7の裏コマンド「YAMAUCHI」とは?使い方と技術的背景を解説
2026/1/29 RetroPC NEWS編集部
富士通 FM-7 とは
富士通のFM-7は、1980年代初頭にかけて登場した国産8ビットパソコンです。元となるFM-8は富士通初の本格的パーソナルコンピュータで、メインCPUとサブCPUによるデュアルCPU構成を採用し、グラフィック処理とユーザープログラムを分担する先進的な設計が特徴でした。後継のFM-7はこの構成を継承しつつ、ROM BASICの搭載や拡張性の向上により扱いやすさを強化。商業的に大ヒットとなり、教育・業務・ホビー分野まで幅広く活用され、日本のパソコン黎明期を支えました。本稿では「FM-7」と表記しますが、内容にはFM-8、FM-11、FM-NEW7、FM-77を含みます。
富士通初のパーソナルコンピュータ FM-8
FM-7のアーキテクチャ:隔離されたVRAM
FM-7が当時の他社製PCと決定的に異なっていたのは、VRAMへのアクセス方法です。 NEC PC-8801が「バンク切り替え方式」、SHARP X1が「I/O空間配置」を採用し、メインCPUから直接VRAMを操作できたのに対し、FMシリーズではVRAMへのアクセス権を専用のサブCPUが独占していました。
メインCPUにはVRAMに直接触れる手段が存在せず、描画を行うにはメイン・サブ間に用意されたわずか128バイト(メイン:$FC80〜$FCFF、サブ:$D380〜$D3FF)の「共有RAM」を介してサブCPUに指示を送るしかありませんでした。標準仕様では「線を引け」「円を描け」といったコマンドを介する必要があり、これがゲーム開発における高速描画の大きな障害となっていたのです。
救世主となった「TESTコマンド」
この制約を打ち破るために活用されたのが「TESTコマンド」と呼ばれる隠し命令です。これは本来、開発やメンテナンス用に用意された“裏側のインターフェース”でしたが、これを利用することでサブシステムのメモリ操作や内部ルーチンの呼び出しといった、非常に強力な制御が可能になります。
このコマンドを起動するためのキーワードが「YAMAUCHI」です。
- 起動キーワード: FM-8ではメモリ上に「YAMAUCHI」という特定の文字列を書き込む必要がありました(FM-7では制約が緩和され、任意の8バイト文字列で起動可能)。
- コマンドコード: サブシステム側で実行されるこのコマンドのコードは $3F(ASCIIの’?’)に割り振られています。
YAMAUCHIコマンドが発見され雑誌に掲載された当時のもの (画像引用:工学社I/O 1982/5、編集部加工)
TESTコマンドによる4つの制御
1つのTESTコマンドの下には、以下の4種類のサブコマンドを自由に組み合わせて記述し、一括実行させることができます。
- MOVE(メモリブロック転送): 一般に「サブシステム転送」と呼ばれる処理の正体です。共有RAM上のユーザープログラムをサブシステムRAMへ送る、あるいはサブシステムの状態を共有RAMへ戻すために使用します。
- JSR (JMSR)(サブルーチンコール): サブシステム側のマシン語ルーチンを直接実行します。サブシステムROM内の既存ルーチンや、MOVEで送り込んだ独自の高速描画ルーチンを呼び出すことができます。
- JMP(ジャンプ): 指定したアドレスへ処理を移します。
- END(終了): TESTコマンドの実行を終了します。
サンプル・アセンブラコード (一部)
10660 4046 00 SMDATA FCB 0,0,$3F * ← &3Fh でテストコマンド
10670 4049 59 FCC 'YAMAUCHI' * ← YAMAUCHIコマンド
10680 4051 91 FCB $91 * ← MOVEサブコマンド
10690 4052 0002 SMSOUC RMB 2 * ← 転送元アドレス
10700 4054 D3C0 FDB $D3CO * ← 転送先アドレス
10710 4056 0040 FDB 64 * ← 転送バイト数
10720 4058 90 FCB $90 * ← ENDサブコマンド
10730 4059 .SMD EQU
画面の左半分を右半分にコピーするプログラム
YAMAUCHIコマンドを利用し、画面の左半分を右半分にコピーするプログラムを、Motorolaerさんに作っていただきました。
アセンブラ・ソースコード (クリックすると展開します)
1 *
2 * VRAM copy for FM-7
3 * 2026/01/23
4 * Motorolaer
5 0000
6 4000 ORG $4000
7 4000
8 4000 30 8D 0005 LEAX RCB,PCR
9 4004 AD 9F FBFA JSR [$FBFA] ; F-BIOS call
10 4008 39 RTS
11 4009
12 4009 RCB
13 4009 10 FCB $10 ; SUBOUT
14 400A 00 FCB $00 ; Error code
15 400B 400F FDB SUB_CALL ; Top address of Sub program
16 400D 004E FDB END_SUB-SUB_CALL ; Length
17 400F
18 400F SUB_CALL
19 400F 00 FCB $00 ; NOP
20 4010 00 FCB $00 ; NOP
21 4011 3F FCB $3f ; Test command
22 4012 59 41 4D 41 FCC /YAMAUCHI/ ; Keyword
4016 55 43 48 49
23 401A
24 401A 93 FCB $93 ; Sub_command JMSR
25 401B D38F FDB SUB_PG-SUB_CALL+$D380
26 401D 90 FCB $90 ; Sub_command END
27 401E
28 * VRAM copy routine runs on the sub system
29 401E
30 401E 34 36 Sub_PG PSHS D,X,Y
31 4020 7D D409 TST $D409 ; Enable VRAM access flag
32 4023
33 4023 C6 C8 LDB #200 ; Copy Red VRAM, 200 lines
34 4025 8E 0000 LDX #$0000
35 4028 8D 26 CP_R BSR LRCP
36 402A 30 88 28 LEAX 40,X
37 402D 5A DECB
38 402E 26 F8 BNE CP_R
39 4030
40 4030 C6 C8 LDB #200 ; Copy Green VRAM, 200 lines
41 4032 8E 4000 LDX #$4000
42 4035 8D 19 CP_G BSR LRCP
43 4037 30 88 28 LEAX 40,X
44 403A 5A DECB
45 403B 26 F8 BNE CP_G
46 403D
47 403D C6 C8 LDB #200 ; Copy Blue VRAM, 200 lines
48 403F 8E 8000 LDX #$8000
49 4042 8D 0C CP_B BSR LRCP
50 4044 30 88 28 LEAX 40,X
51 4047 5A DECB
52 4048 26 F8 BNE CP_B
53 404A
54 404A B7 D409 STA $D409 ; Disable VRAM access flag
55 404D 35 36 PULS D,X,Y
56 404F 39 RTS
57 4050
58 4050
59 4050 86 14 LRCP LDA #20 ; copy 1 line
60 4052 10AE 81 CPLP LDY ,X++
61 4055 10AF 88 26 STY 38,X
62 4059 4A DECA
63 405A 26 F6 BNE CPLP
64 405C 39 RTS
65 405D
66 405D
67 405D END_SUB
CPLP 60 4052 CP_B 49 4042 CP_G 42 4035
CP_R 35 4028 END_SUB 67 405d LRCP 59 4050
RCB 12 4009 SUB_CALL 18 400f SUB_PG 30 401e
Total Errors 0


左画面:実行前 右画面:実行後
裏コマンドが切り拓いた高速描画
当時のプログラマーたちは、この「MOVE」と「JSR (JMSR)」を組み合わせることで、サブシステムを「ほぼ自由に使える実行環境」へと変貌させました。メインCPUから共有RAMへ独自の描画プログラムを送り込み、サブCPU側でそれを直接実行させる。この「YAMAUCHI」コマンドを経由したハックこそが、FM-7で高速なアクションゲームを実現するための必須テクニックとなったのです。
開発者の名前がサブシステムを呼び出す秘密のキーワードだったなんて、おおらかな時代だったのかもしれませんね!
YAMAUCHIさん
雑誌に掲載されたYAMAUCHIさんの写真


(画像出典: Oh!FM 1985/1号、ご協力: Motorolaerさん)
- 参考資料:Oh!FM 1985/1、FM-NEW7ユーザーズマニュアルシステム仕様、FM-7シリーズ F-BASIC 解析マニュアルフェーズIII、富士通のパソコン40年間ストーリー第一号マシンFM-8の舞台裏、わが青春の8ビットパソコン、I/O各号
- ご協力:Motorolaerさん、おンおンさん





