復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第440回]
●正しくコピーされません?
この数日は更新ができませんでした。
このところの猛暑でぶったおれていたわけではありません。
暑さ以上に悩ましい問題が重なっておきてしまったおかげで、とてもHPの更新をしている余裕がなかったのです。
それもなんとかクリアできてきたようで、やっとすこしは余裕が取り戻せましたので、久方ぶりの更新です。
ZB3DOS(CP/M互換DOS)のバグもどうやら大体はつぶしたように思って、ぼちぼち皆様方に再修正版をお送りしようと思っておりましたら、H様からメールが届きました。
またしても誤動作の報告でした。
Cドライブで正常動作することを確認したプログラムをDドライブにコピーして、そこで同じことを実行したところエラーになってしまいました、とのことです。
以下はH様からいただいたメールからの引用です。
同時に添付していただいたログの内容についての説明です。
@CドライブでMTPLUSによりHELLO.PASをコンパイルしました。 A次にLINKMTでHELLOの実行ファイルHELLO.COMを作成しました。 BHELLOを実行し、「Hello World!」と表示、正常に終了しました。 CDドライブのファイルを全件消去しました。 DCドライブからDドライブにすべてのファイルをコピーしました。 EDドライブでMTPLUSによりHELLO.PASをコンパイルしました。 FLINKMTでHELLOの実行ファイルを作成しようとしましたが、 「Incompatible relocatable file」と表示されて終了しました。 GHELLOを実行しようとしましたが、「HELLO?」と怒られました。 HDドライブのファイルを全件消去しました。 IDドライブに「TURBO Pascalと「HELLO」のソースをコピーしました。 J「TURBO Pascalで「HELLO」をコンパイル実行しました。正常に終了しました。 念のため、zドライブからDドライブに転送して実行してみましたが結果は同様でし た。 03.TXTがzドライブからのコピー実行のログです。 おかしいのは今のところ「LINKMT」だけで、コピーしたら正常に動作しない。 他のプログラムは、正常に動作する。 どうして?? というのが今回の報告ですが、 今のところ手がかりがありません。 どうして、特定のプログラムだけが影響を受けるというのが、よく解りません。 |
こちらがそのログです。
logfile nd80zlog\07111128.txt open
ND80ZVに接続しました
0001 0000 - z
1000 00C3 - *** nd80z3 basic ****
>/bat mtp.bat
>/CPM
loading zbds4k.bin ...19c1(6593)bytes loaded,from CC00 to E5C0
drive D ................................
drive C ................................
drive B ................................
drive A ................................
A>DIR C:
C: HELLO PAS : LINKMT COM : MOD1 SRC : MOD2 SRC
C: MTPLUS 000 : MTPLUS 001 : MTPLUS 002 : MTPLUS 003
C: MTPLUS 004 : MTPLUS 005 : MTPLUS 006 : MTPLUS COM
C: PASLIB ERL : PROG SRC : READ ME : ROVLMGR ERL
C: HELLO ERL : AMD9511X CMD : AMDIO SRC : APUSUB MAC
C: ATWNB SRC : BCDREALS ERL : CALC SRC : CHN MAC
C: CPMRD SRC : CWT MAC : DBUGHELP TXT : DEBUGGER ERL
C: DIS8080 COM : DIV MAC : FIBDEF LIB : FPREALS ERL
C: FPRTNS ERL : FULLHEAP ERL : GET SRC : HLT MAC
C: INDEXER DOC : INDEXER PAS : IOCHK BLD : IOERR SRC
C: LIBMT COM : MTERRS TXT : OVLMGR MAC : PINI SRC
C: PUT SRC : RANDOMIO ERL : RNB SRC : RNC SRC
C: RST MAC : SPPFIX COM : STRIP CMD : STRIP SRC
C: TRAN9511 ERL : TRAN9511 SRC : TRANCEND ERL : UTILMOD ERL
C: UTILMOD SRC : WNC SRC : XBDOS SRC : XREF COM
C: XREF DOC : XREF SRC : HELLO COM
A>C:
C>ERA HELLO.ERL
C>ERA HELLO.COM
C>DIR
C: HELLO PAS : LINKMT COM : MOD1 SRC : MOD2 SRC
C: MTPLUS 000 : MTPLUS 001 : MTPLUS 002 : MTPLUS 003
C: MTPLUS 004 : MTPLUS 005 : MTPLUS 006 : MTPLUS COM
C: PASLIB ERL : PROG SRC : READ ME : ROVLMGR ERL
C: AMD9511X CMD : AMDIO SRC : APUSUB MAC : ATWNB SRC
C: BCDREALS ERL : CALC SRC : CHN MAC : CPMRD SRC
C: CWT MAC : DBUGHELP TXT : DEBUGGER ERL : DIS8080 COM
C: DIV MAC : FIBDEF LIB : FPREALS ERL : FPRTNS ERL
C: FULLHEAP ERL : GET SRC : HLT MAC : INDEXER DOC
C: INDEXER PAS : IOCHK BLD : IOERR SRC : LIBMT COM
C: MTERRS TXT : OVLMGR MAC : PINI SRC : PUT SRC
C: RANDOMIO ERL : RNB SRC : RNC SRC : RST MAC
C: SPPFIX COM : STRIP CMD : STRIP SRC : TRAN9511 ERL
C: TRAN9511 SRC : TRANCEND ERL : UTILMOD ERL : UTILMOD SRC
C: WNC SRC : XBDOS SRC : XREF COM : XREF DOC
C: XREF SRC
C>MTPLUS HELLO ************************************************* @
--------------------------------------------------
PASCAL/MT+ (80) Version 5.6.1
Serial No. 3024-0000-003657 All Rights Reserved
Copyright (c) 1982,1983 Digital Research, Inc.
--------------------------------------------------
Source lines: 4
Available memory: 15321
User table space: 11325
(Phase 1)
Remaining memory: 11363
(Phase 2)
HELLO
Lines : 4
Errors: 0
Code : 61
Data : 0
Compilation complete
C>LINKMT HELLO,TRANCEND,BCDREALS,PASLIB/S ******************** A
--------------------------------------------------
LINK/MT+ (80) Version 5.6.1
Serial No. 3024-0000-003657 All Rights Reserved
Copyright (c) 1982 Digital Research, Inc.
--------------------------------------------------
Reading HELLO .ERL
Reading TRANCEND.ERL
Reading BCDREALS.ERL
Reading PASLIB .ERL
0070 (decimal) records written to .COM file
Total data: 0361H bytes
Total code: 2282H bytes
Remaining : 7AE5H bytes
C>HELLO ****************************************************** B
Hello World!
C>A:
A>ERA D:*.* ************************************************** C
A>COPY C:*.* D: ********************************************** D
HELLO PAS to HELLO PAS.. done
LINKMT COM to LINKMT COM............................................................................................... done
MOD1 SRC to MOD1 SRC... done
MOD2 SRC to MOD2 SRC... done
MTPLUS 000 to MTPLUS 000....................................................................................................... done
MTPLUS 001 to MTPLUS 001........................................................................................ done
MTPLUS 002 to MTPLUS 002......................................................... done
MTPLUS 003 to MTPLUS 003........................................................... done
MTPLUS 004 to MTPLUS 004...................................................................................................................................... done
MTPLUS 005 to MTPLUS 005..................................................................... done
MTPLUS 006 to MTPLUS 006.................................................. done
MTPLUS COM to MTPLUS COM............................................................................................................................................................................................................................................................................................ done
PASLIB ERL to PASLIB ERL.................................................................................................................................................................................................... done
PROG SRC to PROG SRC........ done
READ ME to READ ME ............................................................................................................................................................................................... done
ROVLMGR ERL to ROVLMGR ERL........ done
HELLO ERL to HELLO ERL.. done
AMD9511XCMD to AMD9511XCMD.. done
AMDIO SRC to AMDIO SRC........... done
APUSUB MAC to APUSUB MAC.............. done
ATWNB SRC to ATWNB SRC................ done
BCDREALSERL to BCDREALSERL........................... done
CALC SRC to CALC SRC.................... done
CHN MAC to CHN MAC............. done
CPMRD SRC to CPMRD SRC.... done
CWT MAC to CWT MAC......... done
DBUGHELPTXT to DBUGHELPTXT........ done
DEBUGGERERL to DEBUGGERERL.......................................................................................... done
DIS8080 COM to DIS8080 COM................................................................................................................................................................................... done
DIV MAC to DIV MAC.......................................... done
FIBDEF LIB to FIBDEF LIB........ done
FPREALS ERL to FPREALS ERL............................................................. done
FPRTNS ERL to FPRTNS ERL............ done
FULLHEAPERL to FULLHEAPERL.................... done
GET SRC to GET SRC......... done
HLT MAC to HLT MAC.... done
INDEXER DOC to INDEXER DOC..... done
INDEXER PAS to INDEXER PAS..................................................... done
IOCHK BLD to IOCHK BLD.. done
IOERR SRC to IOERR SRC..... done
LIBMT COM to LIBMT COM........................................................................................................................................................................................... done
MTERRS TXT to MTERRS TXT....................................... done
OVLMGR MAC to OVLMGR MAC.................................................................................................................... done
PINI SRC to PINI SRC.............. done
PUT SRC to PUT SRC.... done
RANDOMIOERL to RANDOMIOERL...................... done
RNB SRC to RNB SRC................... done
RNC SRC to RNC SRC...... done
RST MAC to RST MAC.......................... done
SPPFIX COM to SPPFIX COM............................................................................................................................................................ done
STRIP CMD to STRIP CMD.. done
STRIP SRC to STRIP SRC................................. done
TRAN9511ERL to TRAN9511ERL..... done
TRAN9511SRC to TRAN9511SRC............ done
TRANCENDERL to TRANCENDERL........................... done
UTILMOD ERL to UTILMOD ERL.... done
UTILMOD SRC to UTILMOD SRC......... done
WNC SRC to WNC SRC.... done
XBDOS SRC to XBDOS SRC......... done
XREF COM to XREF COM............................................................................................................................................................................................................... done
XREF DOC to XREF DOC....... done
XREF SRC to XREF SRC...................................................................................................... done
HELLO COM to HELLO COM...................................................................... done
A>DIR D:
D: HELLO PAS : LINKMT COM : MOD1 SRC : MOD2 SRC
D: MTPLUS 000 : MTPLUS 001 : MTPLUS 002 : MTPLUS 003
D: MTPLUS 004 : MTPLUS 005 : MTPLUS 006 : MTPLUS COM
D: PASLIB ERL : PROG SRC : READ ME : ROVLMGR ERL
D: HELLO ERL : AMD9511X CMD : AMDIO SRC : APUSUB MAC
D: ATWNB SRC : BCDREALS ERL : CALC SRC : CHN MAC
D: CPMRD SRC : CWT MAC : DBUGHELP TXT : DEBUGGER ERL
D: DIS8080 COM : DIV MAC : FIBDEF LIB : FPREALS ERL
D: FPRTNS ERL : FULLHEAP ERL : GET SRC : HLT MAC
D: INDEXER DOC : INDEXER PAS : IOCHK BLD : IOERR SRC
D: LIBMT COM : MTERRS TXT : OVLMGR MAC : PINI SRC
D: PUT SRC : RANDOMIO ERL : RNB SRC : RNC SRC
D: RST MAC : SPPFIX COM : STRIP CMD : STRIP SRC
D: TRAN9511 ERL : TRAN9511 SRC : TRANCEND ERL : UTILMOD ERL
D: UTILMOD SRC : WNC SRC : XBDOS SRC : XREF COM
D: XREF DOC : XREF SRC : HELLO COM
A>D:
D>ERA HELLO.ERL
D>ERA HELLO.COM
D>DIR
D: HELLO PAS : LINKMT COM : MOD1 SRC : MOD2 SRC
D: MTPLUS 000 : MTPLUS 001 : MTPLUS 002 : MTPLUS 003
D: MTPLUS 004 : MTPLUS 005 : MTPLUS 006 : MTPLUS COM
D: PASLIB ERL : PROG SRC : READ ME : ROVLMGR ERL
D: AMD9511X CMD : AMDIO SRC : APUSUB MAC : ATWNB SRC
D: BCDREALS ERL : CALC SRC : CHN MAC : CPMRD SRC
D: CWT MAC : DBUGHELP TXT : DEBUGGER ERL : DIS8080 COM
D: DIV MAC : FIBDEF LIB : FPREALS ERL : FPRTNS ERL
D: FULLHEAP ERL : GET SRC : HLT MAC : INDEXER DOC
D: INDEXER PAS : IOCHK BLD : IOERR SRC : LIBMT COM
D: MTERRS TXT : OVLMGR MAC : PINI SRC : PUT SRC
D: RANDOMIO ERL : RNB SRC : RNC SRC : RST MAC
D: SPPFIX COM : STRIP CMD : STRIP SRC : TRAN9511 ERL
D: TRAN9511 SRC : TRANCEND ERL : UTILMOD ERL : UTILMOD SRC
D: WNC SRC : XBDOS SRC : XREF COM : XREF DOC
D: XREF SRC
D>MTPLUS HELLO *********************************************** E
--------------------------------------------------
PASCAL/MT+ (80) Version 5.6.1
Serial No. 3024-0000-003657 All Rights Reserved
Copyright (c) 1982,1983 Digital Research, Inc.
--------------------------------------------------
Source lines: 4
Available memory: 15321
User table space: 11325
(Phase 1)
Remaining memory: 11363
(Phase 2)
HELLO
Lines : 4
Errors: 0
Code : 61
Data : 0
Compilation complete
D>LINKMT HELLO,TRANCEND,BCDREALS,PASLIB/S ********************* F
--------------------------------------------------
LINK/MT+ (80) Version 5.6.1
Serial No. 3024-0000-003657 All Rights Reserved
Copyright (c) 1982 Digital Research, Inc.
--------------------------------------------------
Reading HELLO .ERL
Reading TRANCEND.ERL
Reading BCDREALS.ERL
Reading PASLIB .ERL
Incompatible relocatable file
D>HELLO ****************************************************** G
HELLO?
D>ZB3
/BAT end
end of ZBDOS
>/bat tp.bat
>/CPM
loading zbds4k.bin ...19c1(6593)bytes loaded,from CC00 to E5C0
drive D ................................
drive C ................................
drive B ................................
drive A ................................
A>ERA D:*.* ************************************************** H
A>DIR D:
no file
A>PIP D:=A:TURBO.* ******************************************* I
COPYING -
TURBO.COM
TURBO.MSG
TURBO.OVR
A>PIP D:=A:HELLO.PAS
A>D:
D>DIR
D: TURBO COM : TURBO MSG : TURBO OVR : HELLO PAS
D>TURBO ****************************************************** J
---------------------------------------
TURBO Pascal system Version 3.01A
CP/M-80, Z80
Copyright (C) 1983,84,85 BORLAND Inc.
---------------------------------------
Terminal: Teleray series 10
Include error messages (Y/N)? Y
Loading D:TURBO.MSGLogged drive: D
Work file:
Main file:
Edit Compile Run Save
eXecute Dir Quit compiler Options
Text: 0 bytes (8118-8118)
Free: 20205 bytes (8119-D006)
>
Work file name: HELLO
Loading D:HELLO.PAS
>
Compiling
0 4 lines
Code: 53 bytes (8154-8189)
Free: 21108 bytes (818A-D3FE)
Data: 7 bytes (D3FF-D406)
>
Running
Hello World!
>
D>
D>DIR H*.*
D: HELLO PAS
D>TYPE HELLO.PAS
program hello;
begin
writeln('Hello World!')
end.
D>ZB3
/BAT end
end of ZBDOS
>/exit
0000 00C3 -
リモート接続を終了しました
logfile closed at Thu Jul 11 11:51:36 2013
|
このログのボリュームにはたまげてしまいます。
すごい、です。
あ、しかし、これだけのことができるということを実証していただいているわけで、本当に有難いことです。
今回の問題はH様のメールにありますようにCドライブで正しく実行できたLINKMT(A)が、Dドライブではエラーになってしまったことです(F)。
ログからはCドライブの中身がそっくりそのままDドライブにコピーされていることがわかります。
確かにこういう現象にでくわすとどこから手をつけていこうかと途方にくれてしまうのですけれど。
しかしおそらくは何らかの問題があって、おそらくCドライブからDドライブに正しくコピーがされていないことが推測されます。
LINKMTでエラーが発生していることから、まずはLINKMTが正しくコピーされているかどうかを調べてみることにしました。
本日も時間がありません。
続きは次回にいたします。
ワンボードマイコンでCP/Mを![第440回]
2013.7.18upload
前へ
次へ
ホームページトップへ戻る