3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UCSD Pascal を触るためだけの UCSD p-System 操作ガイド

Last updated at Posted at 2019-10-04

はじめに

UCSD p-System の使い方をよく忘れるので備忘録を兼ねて。

UCSD p-System とは

ざっくり言うと Pascal で書かれた OS で、Pascal を実行するための OS です。

See also:

UCSD p-System のダウンロード

MS-DOS で動作する UCSD p-System が pascal.hansotten.com から DL 可能です。

UCSD p-System の動作環境

UCSD p-System IV 2.2 は DOSBox(-X) で動作させる事ができます。

起動

DOSBox(-X) から、

C:\>CD PSYS22
C:\PSYS22>PSYSTEM PSYSTEM.VOL PUTIL.VOL

p-System の操作

起動時にこのようなエラーが出ますので、〔SPACE〕キーを押して無視します。
image.png

[コマンドメニュー (Command:)]

コマンドメニューです。このメニューに限りませんが、メニューの最後に ? が表示されている場合には〔?〕キーを押すことで表示されていないコマンドを表示する事ができます。

image.png
image.png

キー 説明
E(dit [編集メニュー] へ移動
R(un [実行]
F(ile [ファイルメニュー] へ移動
C(omp [コンパイル]
H(alt MS-DOS へ戻る
? 他のコマンドを表示

〔E〕キーを押して [編集メニュー] へ移動します。

[編集メニュー (Edit:)]

初期状態です。

image.png

キー 説明
〔Enter〕 新規ファイル作成
〔?〕〔Enter〕 ファイル選択画面へ

〔Enter〕キーを押してファイルを新規作成します。

ファイル編集 (コマンドモード)

エディタのコマンドモード画面です。

image.png

キー 説明
I(nsert 挿入モードへ
Q(uit [コンパイルメニュー] へ移動
? 他のコマンドを表示

〔I〕キーを押して挿入モードにします。

ファイル編集 (挿入モード)

エディタの挿入モード画面です。自由に入力する事ができます。

image.png

キー 説明
〔Esc〕 編集を適用せずにコマンドモードへ
〔Ctrl〕+〔C〕 編集を適用してコマンドモードへ

とりあえず FizzBuzz を入力してみましょう。

image.png

〔Ctrl〕+〔C〕でセーブし、コマンドモードに戻ります。上部のプロンプトが >Edit になっていますね。

image.png

編集終了

初期状態だとファイルはテンポラリの名前 CREATED.0.TEXT になっています。

image.png

キー 説明
C ファイル名の変更
E ファイルを保存せずに終了
R 編集に戻る
U ファイルを保存して終了

ファイルの名前を FIZZBUZZ.TEXT にしてみます。〔C〕キーを押し、FIZZBUZZ とタイプします (拡張子不要)。

image.png

ファイル名が変更されたので、今度は〔U〕キーを押し更新して [コマンドメニュー] に戻ります。

image.png

[コマンドメニュー] に戻りました。

image.png

[編集メニュー] で〔?〕〔Enter〕を押すとアルファベットでファイルを選択する事ができます。

image.png

[編集メニュー] で直接 FIZZBUZZ と入力してファイルを指定する事も可能です。

[コンパイル]

コンパイルするファイルを指定します。

image.png

to what codefile?Output file for compiled listing? は〔Enter〕キーで飛ばします。

image.png

正常にコンパイルが終わり、[コマンドメニュー] に戻りました。

[実行 (Run)]

現在のファイルが FIZZBUZZ なので、[コマンドメニュー] で〔R〕キーを押すと FIZZBUZZ が実行されます。

image.png

コンパイルせずに実行しようとすると 「FIZZBUZZ.CODE がみつからない」と怒られます。FIZZBUZZ.CODE はコンパイルすると作成されます。

image.png

[実行 (Execute)]

既にコンパイルされているプログラムをファイル名を指定して実行するには〔X〕キーを押してファイル名を指定します。

image.png

[ファイラーメニュー (Filer)]

ファイラーの初期画面です。

image.png

キー 説明
L(dir ファイル一覧
R(em ファイル削除
V(olume ボリューム一覧
Q(uit [コマンドメニュー] へ移動
? 他のコマンドを表示

ファイル一覧

ファイル一覧を取得するボリュームを尋ねられますので PSYS: とタイプします。
image.png

ファイル一覧が表示され、[コマンドメニュー] へ戻りました。

image.png

ファイル削除

削除するファイルを尋ねられますので拡張子付きでファイル名をタイプします。

image.png

ボリューム一覧

ボリューム一覧を表示します。

image.png

終了

[コマンドメニュー] で〔H〕キーを押すと MS-DOS に戻る事ができます。

image.png

ファイルの再編集

一旦書いたファイルを編集するのはちょっとコツが要ります。

削除モード

コマンドモードで編集位置へ移動し〔D〕キーを押して削除モードに入ります。カーソルキーで移動すると範囲選択になりますので削除範囲を指定したら〔Ctrl〕+〔C〕で反映させます。削除範囲の破棄は〔ESC〕キーです。

image.png

画像は矩形の部分を範囲選択している状態です。実際には矩形は表示されず、文字だけが消えます。

挿入

コマンドモードで編集位置へ移動し〔I〕キーを押して挿入モードに入ります。入力が完了したら〔Ctrl〕+〔C〕で反映させます。入力の破棄は〔ESC〕キーです。

image.png

画像はカーソル位置で〔I〕キーを押したところです。既存の行が右に移動していますが、実際に移動している訳ではありません。この位置に abc とタイプして確定させると

image.png

ちゃんと abcif となります。

image.png

LOADFILES.TEXT のエラーを消す

冒頭の LOADFILES.TEXT のエラーはダミーの LOADFILES.TEXT を作ってやる事で消すことができます。

手順

  1. p-System を起動し、〔SPACE〕キーを押してエラーをスキップします。
    image.png
  2. 上部に [コマンドメニュー] が表示されますので、〔E〕キーを押しエディタを開きます。
    image.png
  3. 〔ENTER〕キーを押しファイルを新規作成します。
    image.png
  4. そのまま〔Q〕キーを押してエディタを抜けます。
    image.png
  5. 〔C〕キーを押し、ファイル名を変更します。
    image.png
  6. LOADFILES とタイプし、〔ENTER〕キーを押します。
    image.png
  7. 〔U〕キーを押しファイルを更新して [コマンドメニュー] に戻ります。
    image.png
  8. [コマンドメニュー] で〔H〕キーを押し、
    image.png
  9. 〔Y〕キーを押して MS-DOS に戻ります。
    image.png
  10. 再度 p-System を起動するとエラーは出なくなっています。
    image.png

UCSD Pascal と標準 Pascal の違い

UCSD Pascal と標準 Pascal には幾つかの相違点があります。

image.png

  • 標準 Pascal では case 文の評価式に一致するセレクタ (選択肢定数) がない場合にはエラーになりますが、UCSD Pascal では何も起こりません
  • 標準 Pascal に存在する Dispose() は存在しません。代わりに Mark()Release() を使います
  • UCSD Pascal には {$ で始まるコンパイラ指令が存在しますが、標準 Pascal にはコンパイラ指令がないため {$ はコメントの始まりとみなされます
  • INTERACTIVE 型により〔Enter〕キーを伴わない一文字入出力が可能です
  • ランダムアクセスファイルのために Seek() が用意されています
  • goto は手続き内 goto (intraprocedural gotos) です
  • ルーチンを Exit で抜ける事ができます
  • Pack() 及び Unpack() をサポートしていません
  • 手続きパラメータ及び関数パラメータをサポートしていません
  • プログラムヘッダのパラメータに意味はないため省略する事が可能です
  • segment による外部ルーチンの使用が可能です (他処理系の external に相当)
  • ユニットによる分割コンパイルが可能です
  • 集合型の要素数は 4080 です
  • 文字列型 String があります。いわゆる Pascal 文字列 は UCSD Pascal 由来です
  • UCSD Pascal の Integer は倍長整数です

おわりに

p-System そのものではなく、UCSD Pascal を触りたいだけならばこの程度の知識で充分かと。

image.png

Apple ][ の Pascal も UCSD Pascal ver II ベースですね。

See also:

参考資料: UCSDpシステム入門

UCSD Pascal を対象とした書籍です。

image.png

タイトル 著者 出版社 出版年 Amazon
UCSDpシステム入門
―Pascalで書かれた汎用OSのすべて
チャールズ・W.グラン (著)
ジョン・バター (著)
小池 慎一 (訳)
CQ 出版社 1983/12/25 B000J78J5W

p-System の使い方が日本語で読める書籍です。タイトルのせいでググラビリティが低いです...素直に『UCSD p-System 入門』でよかったのに。

原書は『INTRODUCTION TO THE UCSD p-SYSTEM』...なのだけれど、普通に Amazon で検索すると引っかからない。

タイトル 著者 出版社 出版年 Amazon
INTRODUCTION TO THE UCSD p-SYSTEM Charles W. Grant (著)
Jon Butah (著)
SYBEX Inc. 1982/9 089588061X

『UCSD p システム入門 ― Pascal で書かれた汎用 OS のすべて 』は国立国会図書館デジタルコレクションで読む事ができます。書籍の閲覧には国立国会図書館の利用者登録 (本登録) が必要です。

参考資料: UCSD Pascal システム入門 / UCSD Pascal ユーザーズマニュアル

一般には入手できない書籍もあります。

タイトル 著者 出版社 出版年
UCSD Pascal システム入門 Kenneth L.Bowles (著),
越智 洋之, 小島 惇 (訳)
日本ビジネスオートメーション 1980/5
UCSD Pascal ユーザーズマニュアル :
バージョンⅣ.0,Ⅱ.0 上下
SofTech Microsystems (編) 日本ビジネスオートメーション 1981/10

原書の情報です。

タイトル 著者 出版社 出版年 Amazon
Beginner's Guide for the Ucsd Pascal System Kenneth L.Bowles (著) Byte Books 1980 0070067457
UCSD Pascal user's manual,version Ⅳ.0 SofTech Microsystems (編) SofTech Microsystems 1981/01

『UCSD Pascal システム入門』及び『UCSD Pascalユーザーズマニュアル : バージョンⅣ.0,Ⅱ.0 上』『UCSD Pascalユーザーズマニュアル : バージョンⅣ.0,Ⅱ.0 下』は国立国会図書館デジタルコレクションで読む事ができます。書籍の閲覧には国立国会図書館の利用者登録 (本登録) が必要です。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?