
2026/07/07 5:08
M/PC – 連結型オペレーティングシステム
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
M/PC は、Openfirmware を模した Varvara プラットフォーム向けの結合型オペレーティングシステムであり、従来のグラフィカルなファイルブラウザの代わりにスタックベースの相互作用モデルを採用しています。単一のプロンプトインターフェースを使用し、
add、sub、pop、mov などのプリミティブを通じて、ポストフィックス表記を用いてデータを論理的に操作します。ファイルは再利用可能なコマンドシーケンスを格納でき、チルドプレフィックス(例:1 ~show-slide)を使用してアクセスします。システムは画面サイズに基づいて wallpaperWWxHH.icn という名の ICN ファイルを描画することでディスプレイの管理を行い、ナビゲーションには特定のコマンド入力(評価には'A'、ディレクトリ移動には'B')を使用します。主な特徴としては、uxnemu 経由で起動された場合でも完全な再起動なしに F4 キーを介して Varvara システムに直接戻れるようにできる点です。本文
M/PC: Varvara OS 向け連結型オペレーティングシステム
M/PC は、Varvara オペレーティングシステム向けに設計された連結型 OS です。Openfirmware を概念の源泉としており、ファイルブラウザを一切使用せず、コマンド列だけでシステム上のファイルを管理することを目的としています。
本システムは**演算子後の記法(ポストアフィックス表記)**を採用しており、関数はスタックにあるオペランドに対して動作します。
コマンドの実行例
指定されたフォルダまたはファイル内のバイト数を取得する例:
folder/file_name cat len dec
ファイルは再利用可能なコマンド列として格納できます。ティルド(
~)接頭辞を使用することで、そのファイルの内容を参照できます。
ファイルの内容:./show-slide
slide_swp cat 3cx22.icn cat 1 icn
上記の内容を含むコマンドの実行:
1 ~show-slide
インタフェースと操作コントロール
インタフェースは画面最上部に単一のプロンプトを表示し、ここでコマンドを入力します。キーボード入力を最小限に抑え、制御キーで以下の動作が可能になります。
操作コントロール
- 左/右: スタックの移動(シフト)
- 上/下: スタックのスクロール
- A: 選択されたシンボルを評価・実行
- B: ディレクトリ移動/戻る(バック)
起動方法:キオスクモードと壁紙設定
キオスクモードで起動
ユーザーが F4 キーを押した場合に再ブートせず、BIOS ROM に戻るように動作させるため、以下の引数で起動します。
uxnemu m_pc.rom orca.rom run
壁紙の設定
起動時に描画される ICN ファイルは
wallpaperWWxHH.icn です。
- WW: 画面幅 ÷ 8(16 進数表記)
- HH: 画面高さ
プリミティブ関数の一覧
基本的なファイル操作
: 現在のディレクトリ内のファイル名をスタックに積む。dir ( -- [f] )
: 現在位置をmov ( path -- [f] )
に移動し、その後path
を実行する。dir
: 日付と時刻をスタックに積む。now ( -- 日時 )- 例:
Tue, 23 Jun 2026, 11:48:45
- 例:
: ROM ファイルを実行し、F4 キーで復帰可能にする。run ( f.rom -- ok )
: ICN ファイルをブレンドモードで描画する。icn ( f.icn blend -- ok )
: 指定のラインからテキストファイルを読み込む。txt ( f.txt line -- ok )
: ファイルのサイズ(バイト数)を 16 進数としてスタックに積む。len ( f -- hex )
:put ( 内容 ファイル -- ok )
のデータを指定したファイルへ作成・保存する。内容
: ファイルの内容をスタックに積む。get ( f -- 内容 )
: 源ファイルの内容を先ファイルにコピーする。cpy ( 源ファイル 先ファイル -- ok )
: ファイルを削除(消去)する。era ( ファイル -- ok )
: ファイルの名称を変更する。ren ( 旧名 新名 -- ok )
スタック操作
: スタック頂上のシンボルを除去する。pop ( ストップシンボル -- )
: スタック頂上のシンボルを複製し、スタックに積む。dup ( ストップシンボル -- ストップシンボル ストップシンボル )
:ovr ( 第 2 要素 第 1 要素 -- 第 1 要素 第 2 要素 第 2 要素 )- 第 2 要素をコピーしてスタックの最上位に追加します。
: スタック上の 2 つのシンボルを入れ替える(2 番目を最上位へ)。swp ( a b -- b a )
: スタック上の 3 つのシンボルを回転させる(3 番目を最上位へ)。rot ( a b c -- b c a )
数値計算と文字列処理
: 2 つの数の和を計算し、スタックに積む。add ( a b -- a+b )
: 2 つの数の差を計算し、スタックに積む。sub ( a b -- a-b )
: 16 進数を 10 進数に変換する。dec ( hex -- dec )
: 10 進数を 16 進数に変換する。hex ( dec -- hex )
: 2 つのデータを連結してスタックに積む。cat ( a b -- ab )
: 2 つの名前を比較し、一致すればcmp ( a b -- bool )
を返す。True
: シンボルをコンソールへ出力(表示)する。out ( a -- )
論理演算とシステム制御
: 2 つとも真であれば真を返す。and ( a b -- bool )
: 少なくとも 1 つが真であれば真を返す(論理 OR)。ora ( a b -- bool )
: 画面の解像度を変更し、対応可能なら真を返す。rsz ( 幅 高さ -- bool )
: アプリケーションを終了する。bye ( -- )
外部リソースと提供情報
リンク先
- ソースコード
- 最新レポジトリ
サポート情報
- マニフェスト
- テーマ
- Snarf(システム管理用ユーティリティ)
提供時期: 2026 年