2013.3.29
前へ
次へ
ホームページトップへ戻る

復活!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 −

と表示されますから、そこで

と入力すると、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 −
と表示されます。

ここでパソコンのキーボードから

と入力します。

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

前へ
次へ
ホームページトップへ戻る