MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!
[第98回]
●/BATのテスト
/BATコマンドは「ワンボードマイコンでCP/Mを!」[第390回]で説明をしました。
/BATはZB3BASICのコマンドですが、ND80Z3.5(ND80ZV)に付属しているZB3BASICにはありません。
ZB3DOS(CP/M互換DOS)システムのZB3BASICに追加された機能です。
バッチファイルを実行します。
/BAT バッチファイル名 パラメータ
という使い方をします。
バッチファイルはテキストファイルですが、拡張子は任意です。
動作のベースはZB3BASICですがバッチファイル中で/CPMコマンドを使ってCP/Mを起動することもできますから、CP/Mを含むバッチ動作が可能です。
「ワンボードマイコンでCP/Mを!」[第390回]でいくつかのサンプルを使って説明をしていますので、MYCPU80でも同じサンプルプログラムを使ってテストを行ないました。
●バッチファイルサンプル1
'**** batch test *****
' ***remark
REM *** remark
'
PRINT SQR(10):'basic direct
'
'BASIC make program
10 '*** ND80Z3 test program ***
20 FOR A=0 TO 10
30 PRINT "a=";A,"sqrt(a)=";SQR(A)
40 NEXT A
'
LIST
RUN
/SAVE ZB3TEST1.TXT
'
DM 8000,807F
CM 8030
>>>>><<123456>>ABCDEF<<<<<<<<</
'
'CP/M entry
'
/CPM
z:
dir
'
'mbasi entry
'
mbasic
print sqr(10):'basic direct
10 '*** mbasic test ***
20 for b=0 to 10
30 print "b=";b,"sqrt(";b;")=";sqr(b)
40 NEXT b
list
run
save "MBSTEST1",A
'return to CP/M
system
dir
'return to ZB3BASIC
zb3
'
/LOAD ZB3TEST1.TXT
LIST
RUN
/EXIT
'end
|
logfile mycpu80log\01092056.txt open
mzbdos3L 2014.12.29 by Chunichidenko
MYCPU80に接続しました(19200bps)
0001 001E - z
1000 00C3 -
*** mycpu80 zb3basic ****
>/bat battest1.txt
>PRINT SQR(10):'basic direct
3.16228
>10 '*** ND80Z3 test program ***
>20 FOR A=0 TO 10
>30 PRINT "a=";A,"sqrt(a)=";SQR(A)
>40 NEXT A
>LIST
10 '*** ND80Z3 test program ***
20 FOR A=0 TO 10
30 PRINT "a=";A,"sqrt(a)=";SQR(A)
40 NEXT A
>/SAVE ZB3TEST1.TXT
....
save 4 lines
>DM 8000,807F
8000 20 46 41 49 4C 55 52 45-20 48 41 4D 50 45 52 53 FAILURE HAMPERS
8010 FC DF 41 00 00 FF CD C6-14 00 04 00 0A 00 1D A2 .゚A...ヘニ.......「
8020 2A 2A 2A 20 4E 44 38 30-5A 33 20 74 65 73 74 20 *** ND80Z3 test
8030 70 72 6F 67 72 61 6D 20-2A 2A 2A 0D 20 14 00 0D program ***. ...
8040 84 F0 0C 00 9A FA 00 00-98 FA 0A 00 0D 10 1E 00 ................
8050 1C 81 22 61 3D 22 3B F0-0C 00 2C 22 73 71 72 74 .."a=";...,"sqrt
8060 28 61 29 3D 22 3B DE 28-F0 0C 00 29 0D 1F 28 00 (a)=";゙(...)..(.
8070 05 85 F0 0C 00 0D 08 54-53 20 54 4F 20 46 49 52 .......TS TO FIR
>CM 8030
8030 70->
8031 72->
8032 6F->
8033 67->
8034 72->
8035 61-<
8034 72-<
8033 67-12
8034 72-34
8035 61-56
8036 6D->
8037 20->
8038 2A-AB
8039 2A-CD
803A 2A-EF
803B 0D-<
803A EF-<
8039 CD-<
8038 AB-<
8037 20-<
8036 6D-<
8035 56-<
8034 34-<
8033 12-<
8032 6F-/
>/CPM
drive D ................................
drive C ................................
drive B ................................
drive A ................................
A>z:
Z>dir
Z: FNC03T-2 BIN : FNC05T2 BIN : FNC06T-2 COM : FNC06T COM
Z: FNC0BT-3 COM : RAFTDOUT COM : STARTREK BAS : VFTST0-2 COM
Z: VFTST1 COM : VFTST10 COM : VFTST102 COM : VFTST105 COM
Z: VFTST107 COM : VFTST11 COM : VFTST12 COM : VFTST13 COM
Z: VFTST14 COM : VFTST15 COM : VFTST16 COM : VFTST17 COM
Z: VFTST18 COM : VFTST19 COM : VFTST2 COM : VFTST20B COM
Z: VFTST20C COM : VFTST21 COM : VFTST22 COM : VFTST25 COM
Z: VFTST4 COM : VFTST5 COM : VFTST6-2 COM : VFTST6-2 TXT
Z: VFTST6 COM : VFTST6 TXT : VFTST7 COM : VFTST8 COM
Z: VFTST9 COM : VFTST92 COM : MBASIC COM : PIP COM
Z: ESC4 MAC : VFDUMP1 COM : VFDUMP COM : VFD05 COM
Z: VFDUMP2 COM : STARTRK2 BAS : TREKINST BAS : STARTRK1 BAS
Z: MBSTST2 BAS
Z>mbasic
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
28728 Bytes free
Ok
print sqr(10):'basic direct
3.16228
Ok
10 '*** mbasic test ***
20 for b=0 to 10
30 print "b=";b,"sqrt(";b;")=";sqr(b)
40 NEXT b
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
save "MBSTEST1",A
Ok
system
Z>dir
Z: FNC03T-2 BIN : FNC05T2 BIN : FNC06T-2 COM : FNC06T COM
Z: FNC0BT-3 COM : RAFTDOUT COM : STARTREK BAS : VFTST0-2 COM
Z: VFTST1 COM : VFTST10 COM : VFTST102 COM : VFTST105 COM
Z: VFTST107 COM : VFTST11 COM : VFTST12 COM : VFTST13 COM
Z: VFTST14 COM : VFTST15 COM : VFTST16 COM : VFTST17 COM
Z: VFTST18 COM : VFTST19 COM : VFTST2 COM : VFTST20B COM
Z: VFTST20C COM : VFTST21 COM : VFTST22 COM : VFTST25 COM
Z: VFTST4 COM : VFTST5 COM : VFTST6-2 COM : VFTST6-2 TXT
Z: VFTST6 COM : VFTST6 TXT : VFTST7 COM : VFTST8 COM
Z: VFTST9 COM : VFTST92 COM : MBASIC COM : PIP COM
Z: ESC4 MAC : VFDUMP1 COM : VFDUMP COM : VFD05 COM
Z: VFDUMP2 COM : STARTRK2 BAS : TREKINST BAS : STARTRK1 BAS
Z: MBSTEST1 BAS : MBSTST2 BAS
Z>zb3
end of ZBDOS
>/LOAD ZB3TEST1.TXT
....data end
load 4 lines
>LIST
10 '*** ND80Z3 test program ***
20 FOR A=0 TO 10
30 PRINT "a=";A,"sqrt(a)=";SQR(A)
40 NEXT A
>/EXIT
0000 00C3 -
リモート接続を終了しました
logfile closed at Fri Jan 09 20:58:44 2015
|
' ***bat test 2 10 FOR A=$$1 TO $$2 20 PRINT A, 30 NEXT A 40 B$=$$3 50 PRINT B$,SQR($$4) LIST RUN /SAVE $$5 ' *** end |
logfile mycpu80log\01062205.txt open
mzbdos3L 2014.12.29 by Chunichidenko
MYCPU80に接続しました(19200bps)
0001 001E - z
1000 00C3 -
*** mycpu80 zb3basic ****
>/bat battest2.txt 10,20,"abcXYZ",5,ZB3TEST2.TXT
>10 FOR A=10 TO 20
>20 PRINT A,
>30 NEXT A
>40 B$="abcXYZ"
>50 PRINT B$,SQR(5)
>LIST
10 FOR A=10 TO 20
20 PRINT A,
30 NEXT A
40 B$="abcXYZ"
50 PRINT B$,SQR(5)
>/SAVE ZB3TEST2.TXT
.....
save 5 lines
/BAT end
|
' ***bat test 3 ' p *** BAT TEST 3 **** ' /CPM z: ren $$1 $$2 mbasic load "$$2" list run system $$3 $$4 $$3 zb3 ' *** end ' |
>/bat battest3.txt MBSTEST1.BAS MBSTST2.BAS dir a:
*** BAT TEST 3 ****
>/CPM
drive D ................................
drive C ................................
drive B ................................
drive A ................................
A>z:
Z>ren MBSTEST1.BAS MBSTST2.BAS
rename z\MBSTEST1.BAS MBSTST2.BAS done
Z>mbasic
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
28728 Bytes free
Ok
load "MBSTST2.BAS"
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
Z>DIR
Z: FNC03T-2 BIN : FNC05T2 BIN : FNC06T-2 COM : FNC06T COM
Z: FNC0BT-3 COM : RAFTDOUT COM : STARTREK BAS : VFTST0-2 COM
Z: VFTST1 COM : VFTST10 COM : VFTST102 COM : VFTST105 COM
Z: VFTST107 COM : VFTST11 COM : VFTST12 COM : VFTST13 COM
Z: VFTST14 COM : VFTST15 COM : VFTST16 COM : VFTST17 COM
Z: VFTST18 COM : VFTST19 COM : VFTST2 COM : VFTST20B COM
Z: VFTST20C COM : VFTST21 COM : VFTST22 COM : VFTST25 COM
Z: VFTST4 COM : VFTST5 COM : VFTST6-2 COM : VFTST6-2 TXT
Z: VFTST6 COM : VFTST6 TXT : VFTST7 COM : VFTST8 COM
Z: VFTST9 COM : VFTST92 COM : MBASIC COM : PIP COM
Z: ESC4 MAC : VFDUMP1 COM : VFDUMP COM : VFD05 COM
Z: VFDUMP2 COM : STARTRK2 BAS : TREKINST BAS : STARTRK1 BAS
Z: MBSTST2 BAS
Z>A:
A>DIR
A: MBASIC COM : STARTREK BAS : PIP COM : ESC4 MAC
A: VFTST6 TXT : VFDUMP1 COM : VFDUMP2 COM : VFDUMP COM
A: VFD05 COM : STARTRK2 BAS : TREKINST BAS
A>zb3
/BAT end
end of ZBDOS
>/exit
0000 00C3 -
リモート接続を終了しました
logfile closed at Tue Jan 06 22:18:18 2015
|