|
|
1.1 root 1: <!--
2: nono
3: Copyright (C) 2024 nono project
4: Licensed under nono-license.txt
5: -->
6: <html>
7: <head>
8: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
9: <style type="text/css">
10: /* https://jfly.uni-koeln.de/colorset/ */
11:
12: :root {
13: --blue: rgb( 0, 90, 255);
14: --brown: rgb(128, 64, 0);
15: --green: rgb( 3, 175, 122);
16: --grey: rgb(132, 145, 158);
17: --cream: rgb(255, 255, 128);
18: --yellow-green: rgb(216, 242, 85);
19: --light-pink: rgb(255, 202, 191);
20: --light-green: rgb(119, 217, 168);
21: --light-grey: rgb(200, 200, 203);
22:
23: --bg-grey: rgb(220, 220, 223);
24: }
25: body {
26: background-color: var(--bg-grey);
27: }
28: q {
29: color: var(--brown);
30: }
31: q:before {
32: content: "[";
33: }
34: q:after {
35: content: "]";
36: }
37: dt.dt-indent {
38: padding-left: 1ex;
39: }
40: .h4 {
41: font-weight: bold;
42: font-size: 110%;
43: }
44: .h5 {
45: font-weight: bold;
46: padding-left: 1ex;
47: }
48: .main {
49: margin-left: 2em;
50: }
51: .main1 {
52: margin-left: 1em;
53: }
54: .cons {
55: background-color: black;
56: color: white;
57: }
58: .file {
59: background-color: white;
60: color: black;
61: }
62: .strike {
63: color: var(--grey);
64: }
65: .strike > q {
66: color: var(--grey);
67: }
68: .new {
69: background-color: var(--light-green);
70: }
71: .new > q {
72: background-color: var(--light-green);
73: }
74: </style>
75: <title>nono: Human68k mode</title>
76: </head>
77: <body>
78: <h3>nono の Human68k モード</h3>
1.1.1.3 ! root 79: <div style="text-align: right">nono 1.2.0 (2025/01/26)</div>
1.1 root 80: <a href="index.html">[Back]</a><hr>
81: nono には通常の特定ハードウェア (X68030 など) の完全仮想化機能の他に、
82: コマンドラインから Human68k の実行ファイルを直接実行する機能があります。
83: ここでは雑に Human68k モードと呼んだりしています。
84:
85: <h4>使い方</h4>
86: 起動方法は以下の通りです。
87: <blockquote>
88: <tt>nono-cli -H [<i>other options</i>...] -X <i>executable</i> [<i>argument</i>...]</tt><br>
89: </blockquote>
90: <tt>-H</tt> オプションで Human68k モードであることを指定します。
91: nono の他のオプションもだいたいそのまま使えますが
92: <tt>-c</tt> と <tt>-X</tt> オプションは通常モードとは挙動が変わります。
93:
94: <dl>
95: <dt><tt>-c <i>vmpath</i></tt>
96: <dd><tt>-c</tt> オプションは VM ディレクトリか設定ファイルを指定します。
97: <tt>-c</tt> オプションが省略された場合、通常モードでは
98: <i>vmpath</i> をカレントディレクトリとしてそこから設定ファイルを読みましたが、
99: Human68k モードでは匿名モードとなります。
100: 匿名モードは VM ディレクトリがなく、そのためホストの SRAM.DAT
101: を読み書きしません。
102: SRAM は初期状態のものをオンメモリで用意し、
103: アプリケーション終了時にそのまま破棄します。
104: これによりカレントディレクトリに SRAM.DAT を用意する手間と
105: カレントディレクトリに SRAM.DAT が書き出される問題がなくなります。
106: 実行するアプリケーションから
107: SRAM.DAT にアクセスしたい場合は <tt>-c</tt> オプションで
108: VM ディレクトリパスを明示します。
109: <p>
110: <dt><tt>-X <i>executable</i> [<i>arguments</i>...]</tt>
111: <dd>通常モードでは <tt>-X</tt> オプションは
112: ホストファイルシステムにある実行ファイルのパスを指定していました。
113: Human68k でもここまでは同じですが、
114: 実行ファイルに続いてコマンドライン引数を指定することが出来ます。
115: またこれにより <tt>-X</tt> オプションよりも後ろに
116: nono の他のコマンドラインオプションを書くことは出来ませんので
117: 順序に注意してください。
118:
119: </dl>
120: <p>
121: CLI 版(<tt>nono-cli</tt>) だけでなく
122: GUI 版(<tt>nono</tt>) でも Human68k モードは動作しますが、
123: メイン画面ウィンドウには何も映りません。
124: デバッグ用のモニタウィンドウが使えるだけです。
125:
126: <h4>サポート状況</h4>
127: 拡張子 .X と .R の形式の実行ファイルをサポートしています
128: (.Z 形式も一応サポートしていますが現物を見たことないので詳細不明)。
129: また、Human68k の実行ファイルではありませんが
130: ELF の m68k オブジェクトファイル (.o) も外部ラベルがないなどの条件を満たせば、
131: テキストセクションを .R 形式のように先頭から実行可能です
132: (<tt>DOS _EXIT</tt> で終了します)。
133: <p>
134: Human68k 実行ファイルのうち、
135: ハードウェアの I/O を直接叩いているようなものは動作しません。
136: 現状、標準入出力など簡単な DOS コール、IOCS コールのみサポートしています。
137:
138:
139: <h4>使用例</h4>
140: 以下を実行すると、nono の 68030 CPU の整数命令が
141: 正しく実装されているかを確認することが出来ます。
142: <blockquote><tt>nono-cli -HX XEiJ/misc/instructiontest.x all</tt>
143: </blockquote>
144:
145: <hr>
146: nono project
147: </body>
148: </html>
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.