復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第30回]
●Bdos Errの解明
前回からの続きです。
そこしか通らないはずのアドレスにブレークポイントを設定したにもかかわらず、そのアドレスをすり抜けてエラーメッセージが表示されてしまいました。
プログラム的には有り得ないことが、現実に起きています。
ということは、本来の設計を離れたルートを通ってエラー表示ルーチンが実行された、ということになります。
そういうことならば。
事実は事実として認めた上で、それではどういうルートでエラー表示ルーチンが実行されたのか、ということを追及していくことにいたします。
前回は、D035にブレークポイントを設定してトラップを張ったのですが、見事にすり抜けられてしまいました。
D035 CC47C7 CALL Z,SLCTERR
は、通らなかったということです。
それならば、理由は置くとして、その先のSLCTERRが実行されてしまった可能性はあるのでしょうか?
SLCTERRは前回お見せした、こちらのリストにあります。
SLCTERRのアドレスはC747ですが、その次のC74Aも必ず実行されるはずですから、C74Aにブレークポイントを設定して、前回と同じように、CP/Mを起動して、DIRコマンドを実行したあと、t1520 t1520−2.txt を実行してみました。
その結果は、下のログファイルにありますように、やはりC74Aに設定したブレークポイントを通らずにエラーメッセージが表示されてしまいました。
>/ld cpm_1o4.bin,bc00 loading CPM_1O4.BIN ...16e8(5864)bytes loaded,from BC00 to D2E7 >bp c74a >jp bc00 a>dir A: FILLE5 COM : ABC COM : CPMTST9 COM : TST012 COM A: TST6 COM : TEST1520 TXT : T1520 COM : T1520-2 TXT a>t1520 t1520-2.txt Bdos Err On A: Select |
>/ld cpm_1o4.bin,bc00 loading CPM_1O4.BIN ...16e8(5864)bytes loaded,from BC00 to D2E7 >bp c4b4 >jp bc00 a>dir A: FILLE5 COM : ABC COM : CPMTST9 COM : TST012 COM A: TST6 COM : TEST1520 TXT : T1520 COM : T1520-2 TXT a>t1520 t1520-2.txt A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC F1B3 000F 805C C4D5 0044 8000 0000 800D C4B4 C3A5 0044 F1A1 FF 10110011 |
>bp c4a5 >jp bc00 a>dir A: FILLE5 COM : ABC COM : CPMTST9 COM : TST012 COM A: TST6 COM : TEST1520 TXT : T1520 COM : T1520-2 TXT a>t1520 t1520-2.txt A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC F1B3 000F 805C C3EF F1B3 000F 805C C4D5 C4A5 C3A5 0044 F1A1 FF 10110011 |
A F B C D E H L A'F' B'C' D'E' H'L' PC SP IX IY I SZ H PNC F1B3 000F 805C C3EF F1B3 000F 805C C4D5 C4A5 C3A5 0044 F1A1 FF 10110011 |
>d.,c390,c3af C390 20 21 F0 C3 B6 C2 09 BE-C3 82 BF 00 00 00 00 96 !.テカツ.セテ.ソ..... C3A0 BC 73 BE EF C3 0D C4 08-81 5F C3 00 00 24 24 24 シsセ.テ.ト.._テ..$$$ |
2012/1/16 17:49 T1520.TXT END=814A ; cp/m t1520 オウヨウcp/m p.82 ;12/1/16 ; ORG $8100 FCB=$805C FCBCR=$807C DMABF=$8080 DIRPOINT=$8790 BDOS=$C409 ; 8100 0E0F START:LD C,0F;=15 8102 115C80 LD DE,FCB 8105 CD09C4 CALL BDOS 8108 FEFF CP FF 810A CA3181 JP Z,OPNERR |