復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第359回]
●CP/M互換DOSの起動
ずっとCP/M互換ソフトを作るというテーマでやってきましたのでCP/M互換DOSという名前をつけましたが、その実態は現行のZB3BASICシステムにCP/M互換DOSを追加した形になっています。
今までND80ZV(ND80Z3.5)で使っていただいておりますZB3BASICシステムはそのまま今まで通りに使うことができて、その上さらにCP/M互換DOSを起動して使うことができます。
現行のZB3BASICはZB3.EXEですが、CP/M互換DOSはZB3DOS.EXEというファイル名での供給になります。
CDROMで供給をしますので、CDROMからZB3DOS.EXEを現行のND80Z3フォルダにコピーしていただくか、または新しいフォルダを作ってそこにコピーして使ってください。
現行では
ZB3[Enter]
でZB3BASICを起動していますが、CP/M互換DOSは
ZB3DOS[Enter]
で起動します。
今まで ZB3[Enter] と入力して起動していたところを ZB3DOS[Enter] と入力して起動するところが違うだけで、そのほかは今までのZB3BASICの起動、操作方法と全く同じです。
ND80ZV(ND80Z3.5)をパソコンにUSB接続して、先にND80ZV(ND80Z3.5)の電源を入れておきます。
DOSプロンプト(コマンドプロンプト)を開いて(必要ならばCDコマンドでZB3DOS.EXEのあるディレクトリに移動して)、
ZB3DOS[Enter]
と入力すると、
ND80ZVに接続しました
と表示されますから、ND80ZV(ND80Z3.5)から
[*(I/O)][8]
と入力します。
DOSプロンプト(コマンドプロンプト)画面に
0001 0000 −
と表示されますから、そこで
z
と入力すると、ZB3BASICが起動します。
起動後は今まで通りZB3BASICの全ての機能が使えます。
●CP/Mモード
ZB3BASICのコマンド入力画面(>が表示されています)で、
/CPM[Enter]
と入力すると、CP/M互換DOSが起動し、それ以後はCP/Mモードになります。
CP/Mモードでの操作中に、
ZB3[Enter]
と入力すると、ZB3BASICに戻ります。
以上の操作を実際の画面で見ていただくことにいたします。
CP/M互換DOSを起動します。

本当は ZB3DOS[Enter] なのですが、今はまだデバッグ作業中なので、後ろにバージョンナンバーがついています。
ND80ZVに接続しました
と表示されますから、ND80ZV(ND80Z3.5)で
[*(I/O)][8]
と入力します。
0001 0000 −
と表示されます。

ここでパソコンのキーボードから
z
と入力します。
ZB3BASICが起動しました。

試しにZB3BASICを実行してみます。

ZB3BASICでは省略形が使えます。
f.→ for
p.→ print
n.→ next
.→ list
です。
実行してみました。

r.→ run
です。
ここまでは現行のZB3BASICと全く同じですが…。
ここからが違ってきます。
/cpm[Enter]と入力しました。

A>
と表示され、CP/M互換モードになりました。
MBASICを起動しました。

[注記]
MBASICはMicrosoftが版権を所有していますので勝手に配布はできません。
皆様がご自身の判断で入手してください。
MBASICにつきましては[第157回]でご案内をしております。
こちらも実行してみました。
が。
まさかの手違いで画像をキャッチするのを忘れてしまいました。
むむ。
残念です。
本日はちょっと時間がありません。
MBASICの実行画面につきましてはまた次回にあらためてお見せすることにいたします。
ああ。
そうでした。
ログファイルがありました。
今回の終わりのところでログファイルをお見せしますので、それでご確認ください。
MBASICからCP/M互換モードに戻るには
SYSTEM[Enter]
と入力します。

CP/M互換モードからZB3BASICに戻るには
ZB3[Enter]
と入力します。

ここではさきほど入力したZB3BASICのプログラムをそのまま実行していますが、いつもこのようにできるというわけではありません。
CP/M互換モードやその上で動作するMBASICなどのアプリケーションによってZB3BASICの作業エリアが破壊されてしまうこともありますから、その場合にはBASICプログラムも破壊されてしまいます。
[Ctrl]+[E]
でZB3BASICを終了しました。

ところで、上記の操作のすべて、つまりZB3BASIC→CP/M互換DOS→MBASICの全てがログファイルとして記録されています。
ちょいと自慢したい機能です。
logfile nd80zlog\03292013.txt open
ND80ZVに接続しました
0001 0000 - z
1000 00C3 -
*** nd80z3 basic ****
>auto
> 10 10'*** nd80z3 basic test
> 20 20f.a=0 to 10
> 30 30p."a=";a,"sqrt(";a;")=";sqr(a)
> 40 40n.a
> 50 50
>.
10 '*** nd80z3 basic test
20 FOR A=0 TO 10
30 PRINT "a=";A,"sqrt(";A;")=";SQR(A)
40 NEXT A
>r.
a=0 sqrt(0)=0
a=1 sqrt(1)=1
a=2 sqrt(2)=1.41421
a=3 sqrt(3)=1.73205
a=4 sqrt(4)=2
a=5 sqrt(5)=2.23607
a=6 sqrt(6)=2.44949
a=7 sqrt(7)=2.64575
a=8 sqrt(8)=2.82843
a=9 sqrt(9)=3
a=10 sqrt(10)=3.16228
>/cpm
can't open D.vfd
loading ZBDOS,wait a while...
A>b:
B>dir
B: VFTST23 COM : TEST SAF : VFTST24 COM : VFTST25 COM
B: MBASIC COM
B>mbasic
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
25400 Bytes free
Ok
auto
10 '*** mbasic test ***
20 for b=0 to 10
30 print "b=";b,"sqrt(";b;")=";sqr(b)
40 next b
50 ^C
Ok
list
10 '*** mbasic test ***
20 FOR B=0 TO 10
30 PRINT "b=";B,"sqrt(";B;")=";SQR(B)
40 NEXT B
Ok
run
b= 0 sqrt( 0 )= 0
b= 1 sqrt( 1 )= 1
b= 2 sqrt( 2 )= 1.41421
b= 3 sqrt( 3 )= 1.73205
b= 4 sqrt( 4 )= 2
b= 5 sqrt( 5 )= 2.23607
b= 6 sqrt( 6 )= 2.44949
b= 7 sqrt( 7 )= 2.64575
b= 8 sqrt( 8 )= 2.82843
b= 9 sqrt( 9 )= 3
b= 10 sqrt( 10 )= 3.16228
Ok
system
B>a:
A>dir
A: F80 COM : HELL1 FOR : HELL1 REL : HELLO FOR
A: HELLO REL : HELL2 FOR : HELL2 REL : HELL3 FOR
A: HELL3 REL : M80 COM : MVFTST1 MAC : MVFTST1 REL
A: MVFTST1B MAC : MVFTST1B PRN : MVFTST1B REL : MVFTST1C MAC
A: MVFTST1C PRN : MVFTST1C REL : L80 COM : MVFTST1C COM
A: VFTST1 COM : FORLIB REL : HELLO COM : MVFTST1D MAC
A: MVFTST1D PRN : MVFTST1D REL : MVFTST1D COM : MVFTST1E MAC
A: MVFTST1E PRN : MVFTST1E REL : MVFTST1E COM : MVFTST1F MAC
A: MVFTST1F PRN : MVFTST1F REL : MVFTST1F COM : MVFTST1G MAC
A: MVFTST1G PRN : MVFTST1G REL : MVFTST1G COM : VFTST9 COM
A: VFTST2 COM : VFTST4 COM : VFTST5 COM : VFTST4-1 TXT
A: VFTST16 COM : TESTDATA TXT : VFTST14 COM : VFTST6 COM
A: VFTST7 COM : VFTST8 COM : VFTST10 COM : FNC0BT-2 COM
A: FNC06T-2 COM : FNC03T-2 COM : VFTST102 COM : VFTST105 COM
A: VFTST11 COM : VFTST12 COM : VFTST13 COM : VFTST18 COM
A: VFTST19 COM : VFTST15 COM : VFTST17 COM : VFTST107 COM
A: VFTST202 COM : TEST RAF : FNC05T2 COM : VFTST21 COM
A: VFTST22 COM
A>zb3
end of ZBDOS
>list
10 '*** nd80z3 basic test
20 FOR A=0 TO 10
30 PRINT "a=";A,"sqrt(";A;")=";SQR(A)
40 NEXT A
>run
a=0 sqrt(0)=0
a=1 sqrt(1)=1
a=2 sqrt(2)=1.41421
a=3 sqrt(3)=1.73205
a=4 sqrt(4)=2
a=5 sqrt(5)=2.23607
a=6 sqrt(6)=2.44949
a=7 sqrt(7)=2.64575
a=8 sqrt(8)=2.82843
a=9 sqrt(9)=3
a=10 sqrt(10)=3.16228
>0000 00C3 -
リモート接続を終了しました
logfile closed at Fri Mar 29 20:23:02 2013
|
ワンボードマイコンでCP/Mを![第359回]
2013.3.29upload
前へ
次へ
ホームページトップへ戻る