CP/Mが動くハードが何種類も出来たが、それだけでは面白くない。
有り難いことに、インターネット上に様々なソフトがある。
そこでいくつかダウンロードして動かしてみた。
CPMUG011
BASIC-5
コマンド
RUN、LLIST、SCR、NEW、SAVE、OLD、SYSTEM
NAME、ERA、UNSAVE、LIST
関数
ABS、INT、ARG、CALL、RND、SGN、SIN、SQR
TAN、COS、POP、PEEK、INP、UNTRAP
文
LET、NEXT、IF、GOTO、GOSUB、RETURN
READ、DATA、FOR、LPRINT、:
INPUT、DIM、STOP、END
RESTORE、REM、CLEAR、PUSH、POKE
OUT、TRAP、BEAM、DRAW、PRINT
変数は英字(A〜Z)+数字(0〜9)
BASIC-5.ASMは問題なくアセンブル出来る
-----
F>ASM BASIC-5
CP/M ASSEMBLER - VER 2.0
1FD9
01DH USE FACTOR
END OF ASSEMBLY
RunCPM Version 5.3 (CP/M 2.2 60K)
F>LOAD BASIC-5
FIRST ADDRESS 0100
LAST ADDRESS 1E05
BYTES READ 1C35
RECORDS WRITTEN 3B
使用例
-------
F>BASIC-5
BASIC/5 INTERACTIVE INTERPRETER V Z1.0 10/16/77
NEW OR OLD? NEW
NEW PROGRAM NAME: TESTPG
READY
10 FOR X=0 TO 10
20 PRINT X
30 NEXT X
LIST
10 FOR X=0 TO 10
20 PRINT X
30 NEXT X
RUN
0
1
2
3
4
5
6
7
8
9
10
READY
SAVE
READY
SYSTEM
プログラムはディスクに、文字数(1バイト)+行番号(2バイト)+中間コード+0DHで保存される。
---------
RunCPM Version 5.3 (CP/M 2.2 60K)
F>dir
F: BASIC-5 ASM : BASIC-5 COM : BASIC-5 DOC : BASIC-5 HEX
F: BASIC-5 PRN : DEFAULT BSC : TESTPG BSC
F>
$ hexdump -C TESTPG.BSC
00000000 0e 0a 00 88 20 58 f5 30 20 9e 20 31 30 0d 07 14 |.... X.0 . 10...|
00000010 00 97 20 58 0d 07 1e 00 81 20 58 0d 01 00 00 00 |.. X..... X.....|
中身を詳しく見ると
-----------
0e 文字数
0a 00 行番号10
88 FOR
20 スペース
58 X
f5 =
30 0
20 スペース
9e TO
20 スペース
31 1
30 0
0d 行末
07 文字数
14 00 行番号20
97 PRINT
20 スペース
58 X
0d 行末
07 文字数
1e 00 行番号30
81 NEXT
20 スペース
58 X
0d 行末
01 文字数=1 -> プログラム末
感想
----------
プログラム名を最初に入れるところが面白い
・起動時にプログラム名を入力しその後はその名前で保存する。
(NEWすると初期化するとともに、プログラム名を要求される。名前を変えず初期化は SCR)
・起動時にOLDを選びプログラム名を入れると、ディスクから「プログラム名.BSC」がロードされる。
(OLDというコマンドでも、名前を指定してロード出来る)
・名前はNAMEで確認出来る。
・TRAPという仕組みがある。スタック構造でエラー発生時に移行する行番号をPUSHしていく。
TRAPの例
--------
LIST
10 TRAP 200
20 TRAP 100
30 PRINT 1/0
40 STOP
100 PRINT "TRAP1"
110 PR "ERROR"
120 STOP
200 PRINT "TRAP2"
210 STOP
RUN
TRAP1
TRAP2
STOP IN LINE 210
READY
※コメント投稿者のブログIDはブログ作成者のみに通知されます