標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第262回]
●ANA、XRA、ORA、CMPのテストプログラムです
6本目のテストプログラムです。
今回は論理演算AND、OR、XORと比較命令CMPのテストプログラムです。
プログラムの考え方は今までのものと同じです。
Z80ボードの上でも同じプログラム(一部をアレンジしていますが)を実行して、計算結果やフラグを確認するようにしましたから、作業のペースも上がりましたし、テストプログラムの実行結果に間違いがないことの確認もしっかりとれるようになりました。
しかし、フラグについては、Z80と8080ではかなり振舞いが異なっていますから、Z80と8080とで異なった結果になった個所については、それでよいのかどうかのチェックは必要でした。
まあ、そのていどのことは、仕方がありません。
TEST6のプログラムリストです。
2009/6/13 10:6 TEST6.TXT
END=4121
;;; MYCPU80 TEST6
;;; ANA XRA ORA CMP
;;; 09/6/12
;
ORG $4000
;
STCK=$5000
MWK=$5001
ERBF=$6000
;
4000 310050 LXI SP,STCK
4003 0E00 MVI C,00
4005 C5 PUSH B
4006 F1 POP PSW;CLEAR FLAG REGISTER
;
; ANA
4007 CDC340 CALL MVI
400A 3EFF MVI A,FF
400C A0 ANA B;12 P
400D F5 PUSH PSW
400E 3EFF MVI A,FF
4010 A1 ANA C;34
4011 F5 PUSH PSW
4012 3EFF MVI A,FF
4014 A2 ANA D;56 P
4015 F5 PUSH PSW
4016 3EFF MVI A,FF
4018 A3 ANA E;78 P
4019 F5 PUSH PSW
401A 3EFF MVI A,FF
401C A4 ANA H;9A S,P
401D F5 PUSH PSW
401E 3EFF MVI A,FF
4020 A5 ANA L;BC S
4021 F5 PUSH PSW
4022 A7 ANA A;BC S
4023 F5 PUSH PSW
4024 E5 PUSH H
4025 210150 LXI H,MWK
4028 3643 MVI M,43
402A A6 ANA M;00 Z,P
402B E1 POP H
402C F5 PUSH PSW
;XRA
402D 3EFF MVI A,FF
402F A8 XRA B;12 =ED S,P
4030 F5 PUSH PSW
4031 3EFF MVI A,FF
4033 A9 XRA C;34 =CB S
4034 F5 PUSH PSW
4035 3EFF MVI A,FF
4037 AA XRA D;56 =A9 S,P
4038 F5 PUSH PSW
4039 3EFF MVI A,FF
403B AB XRA E;78 =87 S,P
403C F5 PUSH PSW
403D 3EFF MVI A,FF
403F AC XRA H;9A =65 P
4040 F5 PUSH PSW
4041 3EFF MVI A,FF
4043 AD XRA L;BC =43
4044 F5 PUSH PSW
4045 AF XRA A;=00 Z,P
4046 F5 PUSH PSW
4047 E5 PUSH H
4048 210150 LXI H,MWK
404B 3643 MVI M,43
404D AE XRA M;=43
404E E1 POP H
404F F5 PUSH PSW
;ORA
4050 3E00 MVI A,00
4052 B0 ORA B;12 P
4053 F5 PUSH PSW
4054 3E00 MVI A,00
4056 B1 ORA C;34
4057 F5 PUSH PSW
4058 3E00 MVI A,00
405A B2 ORA D;56 P
405B F5 PUSH PSW
405C 3E00 MVI A,00
405E B3 ORA E;78 P
405F F5 PUSH PSW
4060 3E00 MVI A,00
4062 B4 ORA H;9A S,P
4063 F5 PUSH PSW
4064 3E00 MVI A,00
4066 B5 ORA L;BC S
4067 F5 PUSH PSW
4068 B7 ORA A;BC S
4069 F5 PUSH PSW
406A E5 PUSH H
406B 210150 LXI H,MWK
406E 3643 MVI M,43
4070 B6 ORA M;FF S,P
4071 E1 POP H
4072 F5 PUSH PSW
;CMP A=00
4073 3E00 MVI A,00
4075 B8 CMP B;00-12=EE S,H,P,C
4076 F5 PUSH PSW
4077 B9 CMP C;00-34=CC S,H,P,C
4078 F5 PUSH PSW
4079 BA CMP D;00-56=AA S,H,P,C
407A F5 PUSH PSW
407B BB CMP E;00-78=88 S,H,P,C
407C F5 PUSH PSW
407D BC CMP H;00-9A=66 H,P,C
407E F5 PUSH PSW
407F BD CMP L;00-BC=44 H,P,C
4080 F5 PUSH PSW
4081 BF CMP A;00-00=00 Z,P
4082 F5 PUSH PSW
4083 E5 PUSH H
4084 210150 LXI H,MWK
4087 3677 MVI M,77
4089 BE CMP M;00-77=89 S,H,C
408A E1 POP H
408B F5 PUSH PSW
;CMP A=FF
408C 3EFF MVI A,FF
408E B8 CMP B;FF-12=ED S,P
408F F5 PUSH PSW
4090 B9 CMP C;FF-34=CB S
4091 F5 PUSH PSW
4092 BA CMP D;FF-56=A9 S,P
4093 F5 PUSH PSW
4094 BB CMP E;FF-78=87 S,P
4095 F5 PUSH PSW
4096 BC CMP H;FF-9A=65 P
4097 F5 PUSH PSW
4098 BD CMP L;FF-BC=43
4099 F5 PUSH PSW
409A BF CMP A;FF-FF=00 Z,P
409B F5 PUSH PSW
409C E5 PUSH H
409D 210150 LXI H,MWK
40A0 3679 MVI M,79
40A2 BE CMP M;FF-79=86 S
40A3 E1 POP H
40A4 F5 PUSH PSW
;;;
; CHECK
40A5 310060 LXI SP,ERBF
40A8 210050 LXI H,STCK
40AB 2B DCX H
40AC 112141 LXI D,TBL1END
40AF 0650 MVI B,50
40B1 1A LOOP0:LDAX D
40B2 BE CMP M
40B3 CAB740 JZ LOOP0_2
40B6 E5 PUSH H;ERR
40B7 2B LOOP0_2:DCX H
40B8 1B DCX D
40B9 05 DCR B
40BA C2B140 JNZ LOOP0
40BD E5 PUSH H
40BE 210000 LXI H,$0000
40C1 E5 PUSH H
40C2 76 HLT
;
;SUBROUTINE
40C3 0612 MVI:MVI B,12
40C5 0E34 MVI C,34
40C7 1656 MVI D,56
40C9 1E78 MVI E,78
40CB 269A MVI H,9A
40CD 2EBC MVI L,BC
40CF 3EDE MVI A,DE
40D1 C9 RET
;
;COMPARE DATA TABLE
;CMP A=FF
40D2 80 DB 80
40D3 FF DB FF;M FF-79=86
40D4 44 DB 44;
40D5 FF DB FF;A FF-FF=00
40D6 00 DB 00
40D7 FF DB FF;L FF-BC=43
40D8 04 DB 04
40D9 FF DB FF;H FF-9A=65
40DA 84 DB 84
40DB FF DB FF;E FF-78=87
40DC 84 DB 84
40DD FF DB FF;D FF-56=A9
40DE 80 DB 80
40DF FF DB FF;C FF-34=CB
40E0 84 DB 84
40E1 FF DB FF;B FF-12=ED
;CMP A=00
40E2 91 DB 91
40E3 00 DB 00;M 00-77=89
40E4 44 DB 44;
40E5 00 DB 00;A 00-00=00
40E6 15 DB 15
40E7 00 DB 00;L 00-BC=44
40E8 15 DB 15
40E9 00 DB 00;H 00-9A=66
40EA 95 DB 95
40EB 00 DB 00;E 00-78=88
40EC 95 DB 95
40ED 00 DB 00;D 00-56=AA
40EE 95 DB 95
40EF 00 DB 00;C 00-34=CC
40F0 95 DB 95
40F1 00 DB 00;B 00-12=EE
;ORA
40F2 84 DB 84
40F3 FF DB FF;M
40F4 80 DB 80;
40F5 BC DB BC;A
40F6 80 DB 80
40F7 BC DB BC;L
40F8 84 DB 84
40F9 9A DB 9A;H
40FA 04 DB 04
40FB 78 DB 78;E
40FC 04 DB 04
40FD 56 DB 56;D
40FE 00 DB 00
40FF 34 DB 34;C
4100 04 DB 04
4101 12 DB 12;B
;XRA
4102 00 DB 00
4103 43 DB 43;M
4104 44 DB 44;
4105 00 DB 00;A
4106 00 DB 00
4107 43 DB 43;L
4108 04 DB 04
4109 65 DB 65;H
410A 84 DB 84
410B 87 DB 87;E
410C 84 DB 84
410D A9 DB A9;D
410E 80 DB 80
410F CB DB CB;C
4110 84 DB 84
4111 ED DB ED;B
;ANA
4112 44 DB 44
4113 00 DB 00;M
4114 80 DB 80;
4115 BC DB BC;A
4116 80 DB 80
4117 BC DB BC;L
4118 84 DB 84
4119 9A DB 9A;H
411A 04 DB 04
411B 78 DB 78;E
411C 04 DB 04
411D 56 DB 56;D
411E 00 DB 00
411F 34 DB 34;C
4120 04 DB 04
4121 12 TBL1END:DB 12;B
;
ERBF =6000 LOOP0 =40B1 LOOP0_2 =40B7
MVI =40C3 MWK =5001 STCK =5000
TBL1END =4121
実行結果をパソコンに送りました。
●ANI、XRI、ORI、CPIのテストプログラムです
7本目のテストプログラムです。
上のTEST6と基本的には同じものです。
B〜Aの各レジスタおよびMとAレジスタとの間で論理演算をする代わりに、定数とAレジスタとの間で論理演算を行います。
比較データはTEST6と同じものを使いますから、結果も同じです。
もうこのあたりになると、根性というか、気力と体力の勝負という感じです。
プログラムの作成作業は、意外にも、肉体労働なのです。
それに加えて精神力ですねぇ。
ほんと、消耗します。
疲れるぅ…。
2009/6/13 10:5 TEST7.TXT
END=4126
;;; MYCPU80 TEST7
;;; ANI XRI ORI CPI
;;; 09/6/12 6/13
;
ORG $4000
;
STCK=$5000
MWK=$5001
ERBF=$6000
;
4000 310050 LXI SP,STCK
4003 0E00 MVI C,00
4005 C5 PUSH B
4006 F1 POP PSW;CLEAR FLAG REGISTER
;
; ANI
4007 CDC840 CALL MVI
400A 3EFF MVI A,FF
400C E612 ANI 12; P
400E F5 PUSH PSW
400F 3EFF MVI A,FF
4011 E634 ANI 34
4013 F5 PUSH PSW
4014 3EFF MVI A,FF
4016 E656 ANI 56; P
4018 F5 PUSH PSW
4019 3EFF MVI A,FF
401B E678 ANI 78; P
401D F5 PUSH PSW
401E 3EFF MVI A,FF
4020 E69A ANI 9A; S,P
4022 F5 PUSH PSW
4023 3EFF MVI A,FF
4025 E6BC ANI BC; S
4027 F5 PUSH PSW
4028 E6BC ANI BC;DUMMY
402A F5 PUSH PSW
402B E643 ANI 43;00 Z,P
402D F5 PUSH PSW
;XRI
402E 3EFF MVI A,FF
4030 EE12 XRI 12; =ED S,P
4032 F5 PUSH PSW
4033 3EFF MVI A,FF
4035 EE34 XRI 34; =CB S
4037 F5 PUSH PSW
4038 3EFF MVI A,FF
403A EE56 XRI 56; =A9 S,P
403C F5 PUSH PSW
403D 3EFF MVI A,FF
403F EE78 XRI 78; =87 S,P
4041 F5 PUSH PSW
4042 3EFF MVI A,FF
4044 EE9A XRI 9A; =65 P
4046 F5 PUSH PSW
4047 3EFF MVI A,FF
4049 EEBC XRI BC; =43
404B F5 PUSH PSW
404C EE43 XRI 43;=00 Z,P
404E F5 PUSH PSW
404F EE43 XRI 43;=43
4051 F5 PUSH PSW
;ORI
4052 3E00 MVI A,00
4054 F612 ORI 12; P
4056 F5 PUSH PSW
4057 3E00 MVI A,00
4059 F634 ORI 34
405B F5 PUSH PSW
405C 3E00 MVI A,00
405E F656 ORI 56; P
4060 F5 PUSH PSW
4061 3E00 MVI A,00
4063 F678 ORI 78; P
4065 F5 PUSH PSW
4066 3E00 MVI A,00
4068 F69A ORI 9A; S,P
406A F5 PUSH PSW
406B 3E00 MVI A,00
406D F6BC ORI BC; S
406F F5 PUSH PSW
4070 F6BC ORI BC;DUMMY S
4072 F5 PUSH PSW
4073 F643 ORI 43;FF S,P
4075 F5 PUSH PSW
;CPI A=00
4076 3E00 MVI A,00
4078 FE12 CPI 12;00-12=EE S,H,P,C
407A F5 PUSH PSW
407B FE34 CPI 34;00-34=CC S,H,P,C
407D F5 PUSH PSW
407E FE56 CPI 56;00-56=AA S,H,P,C
4080 F5 PUSH PSW
4081 FE78 CPI 78;00-78=88 S,H,P,C
4083 F5 PUSH PSW
4084 FE9A CPI 9A;00-9A=66 H,P,C
4086 F5 PUSH PSW
4087 FEBC CPI BC;00-BC=44 H,P,C
4089 F5 PUSH PSW
408A FE00 CPI 00;00-00=00 Z,P
408C F5 PUSH PSW
408D FE77 CPI 77;00-77=89 S,H,C
408F F5 PUSH PSW
;CPI A=FF
4090 3EFF MVI A,FF
4092 FE12 CPI 12;FF-12=ED S,P
4094 F5 PUSH PSW
4095 FE34 CPI 34;FF-34=CB S
4097 F5 PUSH PSW
4098 FE56 CPI 56;FF-56=A9 S,P
409A F5 PUSH PSW
409B FE78 CPI 78;FF-78=87 S,P
409D F5 PUSH PSW
409E FE9A CPI 9A;FF-9A=65 P
40A0 F5 PUSH PSW
40A1 FEBC CPI BC;FF-BC=43
40A3 F5 PUSH PSW
40A4 FEFF CPI FF;FF-FF=00 Z,P
40A6 F5 PUSH PSW
40A7 FE79 CPI 79;FF-79=86 S
40A9 F5 PUSH PSW
;;;
; CHECK
40AA 310060 LXI SP,ERBF
40AD 210050 LXI H,STCK
40B0 2B DCX H
40B1 112641 LXI D,TBL1END
40B4 0650 MVI B,50
40B6 1A LOOP0:LDAX D
40B7 BE CMP M
40B8 CABC40 JZ LOOP0_2
40BB E5 PUSH H;ERR
40BC 2B LOOP0_2:DCX H
40BD 1B DCX D
40BE 05 DCR B
40BF C2B640 JNZ LOOP0
40C2 E5 PUSH H
40C3 210000 LXI H,$0000
40C6 E5 PUSH H
40C7 76 HLT
;
;SUBROUTINE
40C8 0612 MVI:MVI B,12
40CA 0E34 MVI C,34
40CC 1656 MVI D,56
40CE 1E78 MVI E,78
40D0 269A MVI H,9A
40D2 2EBC MVI L,BC
40D4 3EDE MVI A,DE
40D6 C9 RET
;
;COMPARE DATA TABLE
;CPI A=FF
40D7 80 DB 80
40D8 FF DB FF;M FF-79=86
40D9 44 DB 44;
40DA FF DB FF;A FF-FF=00
40DB 00 DB 00
40DC FF DB FF;L FF-BC=43
40DD 04 DB 04
40DE FF DB FF;H FF-9A=65
40DF 84 DB 84
40E0 FF DB FF;E FF-78=87
40E1 84 DB 84
40E2 FF DB FF;D FF-56=A9
40E3 80 DB 80
40E4 FF DB FF;C FF-34=CB
40E5 84 DB 84
40E6 FF DB FF;B FF-12=ED
;CPI A=00
40E7 91 DB 91
40E8 00 DB 00;M 00-77=89
40E9 44 DB 44;
40EA 00 DB 00;A 00-00=00
40EB 15 DB 15
40EC 00 DB 00;L 00-BC=44
40ED 15 DB 15
40EE 00 DB 00;H 00-9A=66
40EF 95 DB 95
40F0 00 DB 00;E 00-78=88
40F1 95 DB 95
40F2 00 DB 00;D 00-56=AA
40F3 95 DB 95
40F4 00 DB 00;C 00-34=CC
40F5 95 DB 95
40F6 00 DB 00;B 00-12=EE
;ORI
40F7 84 DB 84
40F8 FF DB FF;M
40F9 80 DB 80;
40FA BC DB BC;A
40FB 80 DB 80
40FC BC DB BC;L
40FD 84 DB 84
40FE 9A DB 9A;H
40FF 04 DB 04
4100 78 DB 78;E
4101 04 DB 04
4102 56 DB 56;D
4103 00 DB 00
4104 34 DB 34;C
4105 04 DB 04
4106 12 DB 12;B
;XRI
4107 00 DB 00
4108 43 DB 43;M
4109 44 DB 44;
410A 00 DB 00;A
410B 00 DB 00
410C 43 DB 43;L
410D 04 DB 04
410E 65 DB 65;H
410F 84 DB 84
4110 87 DB 87;E
4111 84 DB 84
4112 A9 DB A9;D
4113 80 DB 80
4114 CB DB CB;C
4115 84 DB 84
4116 ED DB ED;B
;ANI
4117 44 DB 44
4118 00 DB 00;M
4119 80 DB 80;
411A BC DB BC;A
411B 80 DB 80
411C BC DB BC;L
411D 84 DB 84
411E 9A DB 9A;H
411F 04 DB 04
4120 78 DB 78;E
4121 04 DB 04
4122 56 DB 56;D
4123 00 DB 00
4124 34 DB 34;C
4125 04 DB 04
4126 12 TBL1END:DB 12;B
;
ERBF =6000 LOOP0 =40B6 LOOP0_2 =40BC
MVI =40C8 MWK =5001 STCK =5000
TBL1END =4126
結果をパソコンに送りました。
●基板の作成作業の進捗状況は?
ええ、どうなっているのかと言いますと、なにしろ、次から次へと変更作業が出てくるものですから、なかなか、はかどらなかったのですけれど、やっと一応は終わりました。
これから最後の最後のチェックです。
実質的には図面作業はほぼ完了です。
長かったあ…。
今、図面の整理中です。
2〜3日中には完成図面をお見せすることができると思いますので、今しばらくお待ちください。
2009.6.28upload
前へ
次へ
ホームページトップへ戻る