MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!
[第39回]
●ブレークポイントを設定して追跡してみました
前回の続きです。
テストプログラムのアドレス820Bと8221の間でおかしなことがおきている、というところまではわかりました。
正常ならばアドレス8221ではBレジスタとDレジスタが00になって、浮動小数点レジスタのRBレジスタの仮数部が6ビット右にシフトされるはずでした。
ところが結果はBレジスタは00になりましたが、DレジスタはFFで、RBレジスタの仮数部はゼロクリアされてしまいました。
しかしプログラムを見る限りではDレジスタがFFになるわけはありません。
どう考えても変です。
下は前回もお見せしたテストプログラムのその部分です。
;shift right RB & RBE++;till A=0 8206 47 RBFA4:MOV B,A 8207 3A10F1 LDA RB7 820A 57 MOV D,A 820B CD1D83 CALL FADSP 820E 210FF1 RBFA42:LXI H,RB6 8211 0E04 MVI C,04 8213 AF XRA A;reset cf 8214 7E RBFA43:MOV A,M 8215 1F RAR 8216 77 MOV M,A 8217 2B DCX H 8218 0D DCR C 8219 C21482 JNZ RBFA43 821C 14 INR D 821D 05 DCR B 821E C20E82 JNZ RBFA42 8221 CD1D83 CALL FADSP 8224 7A MOV A,D 8225 3210F1 STA RB7 8228 3AFFF1 RBFA5:LDA FA8 |
>bp 821c >rt 820B 800052AEF000017801CC 00FA481075D1 FA95 0684 FA12 F200 A F B C D E H L PC SP SZ H P C E845 0600 FA12 F10B 821C F7F0 01000101 >bp 821e >rt A F B C D E H L PC SP SZ H P C E805 0500 FB12 F10B 821E F7F0 00000101 >bp 821c >rt A F B C D E H L PC SP SZ H P C 7444 0500 FB12 F10B 821C F7F0 01000100 >bp 821e >rt A F B C D E H L PC SP SZ H P C 7400 0400 FC12 F10B 821E F7F0 00000000 >bp 821c >rt A F B C D E H L PC SP SZ H P C BA44 0400 FC12 F10B 821C F7F0 01000100 >bp 821e >rt A F B C D E H L PC SP SZ H P C BA04 0300 FD12 F10B 821E F7F0 00000100 >bp 821c >rt A F B C D E H L PC SP SZ H P C 5D44 0300 FD12 F10B 821C F7F0 01000100 >bp 821e >rt A F B C D E H L PC SP SZ H P C 5D00 0200 FE12 F10B 821E F7F0 00000000 >bp 821c >rt A F B C D E H L PC SP SZ H P C AE45 0200 FE12 F10B 821C F7F0 01000101 >bp 821e >rt A F B C D E H L PC SP SZ H P C AE01 0100 FF12 F10B 821E F7F0 00000001 >bp 8211 >rt A F B C D E H L PC SP SZ H P C AE01 0100 FF12 F10F 8211 F7F0 00000001 >bp 821c >rt A F B C D E H L PC SP SZ H P C D744 0100 FF12 F10B 821C F7F0 01000100 >bp 821e >rt A F B C D E H L PC SP SZ H P C D794 FF00 0012 F10B 821E F7F0 10010100 >/exit リモート接続を終了しました logfile closed at Mon Sep 01 21:51:28 2014 |

logfile nd80zlog\09012231.txt open
zb3dos3m 2014.3.31 by Chunichidenko
MYCPU80に接続しました
*** nd80z3 basic ****
>p.sid(30)
0.5
>/load sqrtest.txt
10 FOR A=0 TO 10
20 PRINT "a=";A,"sqr(a)=";SQR(A)
30 NEXT A
40 PRINT "end"
data end
>r.
a= 0 sqr(a)= 0
a= 1 sqr(a)= 1
a= 2 sqr(a)= 1.41421
a= 3 sqr(a)= 1.73205
a= 4 sqr(a)= 2
a= 5 sqr(a)= 2.23607
a= 6 sqr(a)= 2.44949
a= 7 sqr(a)= 2.64575
a= 8 sqr(a)= 2.82843
a= 9 sqr(a)= 3
a= 10 sqr(a)= 3.16228
end
>.
10 FOR A=0 TO 10
20 PRINT "a=";A,"sqr(a)=";SQR(A)
30 NEXT A
40 PRINT "end"
> 10 FOR A=0 TO 90 step 5
> 20 PRINT "a=";A,"sid(a)=";sid(A)
>.
10 FOR A=0 TO 90 STEP 5
20 PRINT "a=";A,"sid(a)=";SID(A)
30 NEXT A
40 PRINT "end"
>/save sidtest.txt
10 FOR A=0 TO 90 STEP 5
20 PRINT "a=";A,"sid(a)=";SID(A)
30 NEXT A
40 PRINT "end"
>r.
a= 0 sid(a)= 0
a= 5 sid(a)= 0.871557E-1
a= 10 sid(a)= 0.173648
a= 15 sid(a)= 0.258819
a= 20 sid(a)= 0.34202
a= 25 sid(a)= 0.422618
a= 30 sid(a)= 0.5
a= 35 sid(a)= 0.573576
a= 40 sid(a)= 0.642787
a= 45 sid(a)= 0.707107
a= 50 sid(a)= 0.766044
a= 55 sid(a)= 0.819152
a= 60 sid(a)= 0.866025
a= 65 sid(a)= 0.906308
a= 70 sid(a)= 0.939692
a= 75 sid(a)= 0.965926
a= 80 sid(a)= 0.984808
a= 85 sid(a)= 0.996194
a= 90 sid(a)= 1
end
>.
10 FOR A=0 TO 90 STEP 5
20 PRINT "a=";A,"sid(a)=";SID(A)
30 NEXT A
40 PRINT "end"
> 20 PRINT "a=";A,"cod(a)=";cod(A)
>.
10 FOR A=0 TO 90 STEP 5
20 PRINT "a=";A,"cod(a)=";COD(A)
30 NEXT A
40 PRINT "end"
>r.
a= 0 cod(a)= 1
a= 5 cod(a)= 0.996195
a= 10 cod(a)= 0.984808
a= 15 cod(a)= 0.965926
a= 20 cod(a)= 0.939693
a= 25 cod(a)= 0.906308
a= 30 cod(a)= 0.866025
a= 35 cod(a)= 0.819152
a= 40 cod(a)= 0.766044
a= 45 cod(a)= 0.707107
a= 50 cod(a)= 0.642788
a= 55 cod(a)= 0.573577
a= 60 cod(a)= 0.5
a= 65 cod(a)= 0.422618
a= 70 cod(a)= 0.34202
a= 75 cod(a)= 0.258819
a= 80 cod(a)= 0.173648
a= 85 cod(a)= 0.871559E-1
a= 90 cod(a)= 0
end
>/exit
リモート接続を終了しました
logfile closed at Mon Sep 01 22:34:11 2014
|