石原 博の覚書

電子工作に関する日々の覚書を記載します

BASIC-5

2021-07-18 13:17:25 | 日記

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


 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

 



最新の画像もっと見る

コメントを投稿