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

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

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