SVG形式で保存された線の情報からType 340の命令列を生成するシェルスクリプトです。
そして、Type 340命令列を生成するだけでなく、それを描画するPDP-7命令まで生成し、最終的にsimhスクリプトができあがるようになっています。
- LibreOffice Drawの「直線」あるいは「直線コネクター」で作った画像をエクスポートしたSVGを対象としています
- 未確認ですがおそらくImpressでも大丈夫だと思います
- 参考として、同人誌「SimHでPDP-7ベアメタルプログラミング」の表紙のType 340画面を生成する際に使用したLibreOffice Drawのファイル(
test.odg
)と、そこからエクスポートしたSVGファイル(test.svg
)をこのリポジトリに含めています
- 幅と高さが同じ長さにしてください
- 動作確認時は幅と高さを共に7.47cmにしていました
- このREADME.mdがあるディレクトリをカレントディレクトリにした状態で実行してください
使用するSVGファイルをSRC
変数に指定してmake
を実行してください。
$ make SRC=test.svg
実行が完了するとSRC
に指定したファイル名の拡張子を.simh
へ変更したファイル名(この例の場合test.simh
)でsimhスクリプトが生成されています。
- SVGから直線が定義されたCSVを生成
$ tools/svg2ld test.svg test.csv
- CSVからType 340命令列を生成
$ tools/ld2ml test.csv test.340ml
- Type 340命令列を指定されたアドレス(8進数)以降に配置するsimhスクリプトを生成
$ tools/ml2simh test.340ml test.340simh 1000
- Type 340命令列をロードして実行するプログラムをくっつけたsimhスクリプトを生成
$ cat test.340simh type340/load_infexec_set_param_and_run.simh > test.simh
生成されたtest.simhは以下のように実行できます。
$ pdp7 test.simh
すると、ベクタースキャンディスプレイをシミュレートしている黒背景のウィンドウが開き、以下のように描画されます。
- 実行を停止する際はCtrl+eで停止させてください