プログラミング
M/PC – 連結型OS
M/PC – A Concatenative OS (wiki.xxiivv.com)
要約
M/PCは、Varvaraプラットフォーム向けの連結型オペレーティングシステムです。ファイルブラウザなしでシステム上のファイルを管理することを目指しており、オペランドの後に演算子を置く後置記法を採用しています。キーボード操作なしでもフォルダ移動やROM起動が可能なインターフェースを備えています。
全文翻訳
M/PC – 連結型OS
•/PC M/PCは、Varvara向けの連結型オペレーティングシステムで、Openfirmwareに触発されており、ファイルブラウザなしでシステム上のファイルを管理するように設計されています。後置記法を使用しており、演算子がオペランドの後に続きます。
(フォルダ/ファイル名のバイト数を取得)
folder/ file_name cat len dec
ファイルは再利用可能なコマンドシーケンスを格納できます。チルダプレフィックスはファイルの内容を含みます。
(./show-slide の内容)
slide_ swp cat 3cx22.icn cat 1 icn 1 ~show-slide
インターフェースは、画面上部にある単一のプロンプトを使用してコマンドを入力します。
コントロール
オペレーティングシステムは、キーボードをほとんど使用せずにフォルダをナビゲートし、ROMを起動できます。
左/右:フォルダ移動
スタック上/下:スタックスクロール
A:選択されたシンボルを評価
B:ディレクトリ/バック
Kiosk
M/PCをBIOS ROMとして起動するには、ユーザーがF4を押したときに、Varvaraが再起動をトリガーする代わりにBIOSに戻るように、引数付きで起動します。
uxnemu m_pc.rom orca.rom run
壁紙
起動時に、M/PCは wallpaperWWxHH.icn という名前のICNファイルを描画しようとします。ここで、WWは画面の幅を8で割った値の16進数、HHはその高さを表します。
リファレンス
ここにすべてのプリミティブのリストがあります。
dir ( -- [f] ) 現在の場所のファイル名をスタックに置きます。
mov ( path -- [f] ) 現在の場所を current/path に移動し、dir を実行します。
now ( -- date time ) 日付 Tue, 23 Jun 2026 および時刻 11:48:45 をスタックに置きます。
run ( f.rom -- ok ) ROMファイルを実行し、F4で戻ります。
icn ( f.icn blend -- ok ) ブレンドでICNファイルを描画します。
txt ( f.txt line -- ok ) 指定された行からテキストファイルを読み取ります。
len ( f -- hex ) ファイルの長さを16進数で置きます。
put ( body f -- ok ) bodyの内容でファイルを作成します。
get ( f -- body ) ファイルの内容をスタックに置きます。
cpy ( fsrc fdst -- ok ) fsrcの内容をfdstにコピーします。
era ( f -- ok ) ファイルを削除します。
ren ( fsrc fdst -- ok ) ファイルfsrcをfdstにリネームします。
pop ( a -- ) スタックのトップのシンボルをポップします。
dup ( a -- a a ) スタックのトップのシンボルを複製します。
ovr ( a b -- a b a ) 2番目のシンボルをスタックのトップにコピーします。
swp ( a b -- b a ) 2番目のシンボルをトップに移動します。
rot ( a b c -- b c a ) 3番目のシンボルをトップに移動します。
add ( a b -- a+b ) 2つのシンボルの合計をプッシュします。
sub ( a b -- a-b ) 2つのシンボルの差をプッシュします。
dec ( hex -- dec ) 16進数を10進数に変換します。
hex ( dec -- hex ) 10進数を16進数に変換します。
cat ( a b -- ab ) 2つのシンボルを連結します。
cmp ( a b -- bool ) 2つのシンボルの名前を比較します。
and ( a b -- bool ) 両方のシンボルがtrueの場合、trueをプッシュします。
ora ( a b -- bool ) いずれかのシンボルがtrueの場合、trueをプッシュします。
rsz ( width height -- ) 画面サイズを変更し、リサイズがScreenでサポートされている場合はtrueをプッシュします。
out ( a -- ) シンボルをコンソールに出力/書き込みします。
bye ( -- ) 終了します。
ソース、最新リポジトリ
サポート:マニフェストテーマ
受信:2026