標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第268回]

●LXI PUSH POP STA LDA XCHG SPHL DAD INX DCXのテストプログラムです

図面作業は、まだ最後のシルク図の作業が終わりません。
でも、もう少しです。
完了したら、図面をお見せします。

それまでの間、つなぎっていうわけでもありませんが、残っているテストプログラムを片付けてしまいましょう。

10本目のテストプログラムです。


2009/6/18  11:10  TEST10.TXT
END=4187
              ;;; MYCPU80 TEST10
              ;;; LXI PUSH POP STA LDA XCHG SPHL DAD INX DCX
              ;;; RST,IN,OUT,XTHL are omitted
              ;;; 09/6/16 6/18
              ;
                ORG $4100
              ;
                STCK=$5000
                WK=$5001
                ERBF=$6000
              ;
4100 210050     LXI H,STCK;      LXI H
4103 F9         SPHL;            SPHL
4104 0100EF     LXI B,$EF00;     LXI B
4107 C5         PUSH B;          PUSH B
4108 F1         POP PSW;CLEAR FLAG REGISTER;   POP PSW
              ; 
4109 117856     LXI D,$5678;     LXI D
410C 21BC9A     LXI H,$9ABC
410F 09         DAD B;           DAD B
4110 F5         PUSH PSW;        PUSH PSW
4111 E5         PUSH H;          PUSH H
4112 19         DAD D;           DAD D
4113 F5         PUSH PSW
4114 E5         PUSH H
4115 29         DAD H;           DAD H
4116 F5         PUSH PSW
4117 E5         PUSH H
4118 210000     LXI H,$0000
411B 3B         DCX SP;          DCX SP
411C 39         DAD SP;          DAD SP
411D F5         PUSH PSW
411E C1         POP B;SAVE PSW   POP B
411F EB         XCHG;            XCHG
4120 33         INX SP;          INX SP
4121 C5         PUSH B
4122 D5         PUSH D;          PUSH D
4123 F5         PUSH PSW
4124 E5         PUSH H
              ;INX DCX
4125 03         INX B
4126 13         INX D
4127 23         INX H
4128 C5         PUSH B
4129 D5         PUSH D
412A E5         PUSH H
412B 0B         DCX B
412C 1B         DCX D
412D 2B         DCX H
412E C5         PUSH B
412F D5         PUSH D
4130 E5         PUSH H
              ;
4131 C5         PUSH B
4132 D5         PUSH D
4133 E1         POP H;     POP H
4134 D1         POP D;     POP D
4135 D5         PUSH D
4136 E5         PUSH H
              ;
4137 3E55       MVI A,55
4139 320150     STA WK
413C AF         XRA A
413D F5         PUSH PSW
413E 3A0150     LDA WK
4141 F5         PUSH PSW
              ;
              ;;;
              ; CHECK
4142 310060     LXI SP,ERBF
4145 210050     LXI H,STCK
4148 2B         DCX H
4149 118741     LXI D,TBL1END
414C 0628       MVI B,28
414E 1A       LOOP0:LDAX D
414F BE         CMP M
4150 CA5441     JZ LOOP0_2
4153 E5         PUSH H;ERR
4154 2B       LOOP0_2:DCX H
4155 1B         DCX D
4156 05         DCR B
4157 C24E41     JNZ LOOP0
415A E5         PUSH H
415B 210000     LXI H,$0000
415E E5         PUSH H
415F 76         HLT
              ;
              ;COMPARE DATA TABLE
              ;
4160 44         DB 44
4161 55         DB 55
4162 44         DB 44
4163 00         DB 00
4164 F3         DB F3
4165 4F         DB 4F
4166 00         DB 00
4167 EF         DB EF
4168 78         DB 78
4169 56         DB 56
416A F3         DB F3
416B 4F         DB 4F
416C 00         DB 00
416D EF         DB EF
416E 79         DB 79
416F 56         DB 56
4170 F4         DB F4
4171 4F         DB 4F
4172 01         DB 01
4173 EF         DB EF
4174 78         DB 78
4175 56         DB 56
4176 00         DB 00
4177 EF         DB EF
4178 F3         DB F3
4179 4F         DB 4F
417A 00         DB 00
417B EF         DB EF
417C 68         DB 68
417D C0         DB C0
417E 01         DB 01
417F EF         DB EF
4180 34         DB 34
4181 E0         DB E0
4182 10         DB 10
4183 EF         DB EF
4184 BC         DB BC
4185 89         DB 89
4186 11         DB 11
4187 EF       TBL1END:DB EF
              ;
ERBF         =6000  LOOP0        =414E  LOOP0_2      =4154  
STCK         =5000  TBL1END      =4187  WK           =5001  

プログラムに特別の意味はありません。
テストする命令を順に並べて実行し、その結果をいままでのテストプログラムと同じようにスタックに保存しているだけです。

いつものように、結果をUSB経由で送りました。


●STAX LDAX CMA STC CMC SHLD LHLD NOPのテストプログラムです

11本目のテストプログラムです。


2009/6/18  11:25  TEST11.TXT
END=4163
              ;;; MYCPU80 TEST11
              ;;; STAX LDAX CMA STC CMC SHLD LHLD NOP
              ;;; 09/6/17 6/18
              ;
                ORG $4100
              ;
                STCK=$5000
                WK1=$5000
                WK2=$5002
                WK3=$5004
                ERBF=$6000
                REENT=$1033;for ZBK
              ;
4100 210050     LXI H,STCK;      LXI H
4103 F9         SPHL;            SPHL
4104 010000     LXI B,$0000;     LXI B
4107 C5         PUSH B;          PUSH B
4108 F1         POP PSW;CLEAR FLAG REGISTER;   POP PSW
              ;STAX LDAX CMA    
4109 010050     LXI B,WK1
410C 110250     LXI D,WK2
410F 3E12       MVI A,12
4111 02         STAX B
4112 2F         CMA
4113 F5         PUSH PSW
4114 3E34       MVI A,34
4116 12         STAX D
4117 2F         CMA
4118 F5         PUSH PSW
4119 0A         LDAX B
411A F5         PUSH PSW
411B 1A         LDAX D
411C F5         PUSH PSW
              ;STC CMC
411D 37         STC
411E F5         PUSH PSW
411F 3F         CMC
4120 F5         PUSH PSW
4121 3F         CMC
4122 F5         PUSH PSW
              ;NOP
4123 00         NOP
4124 00         NOP
4125 00         NOP
              ;SHLD LHLD
4126 217856     LXI H,$5678
4129 220450     SHLD WK3
412C 213412     LXI H,$1234
412F E5         PUSH H
4130 2A0450     LHLD WK3
4133 E5         PUSH H
                ;;;
              ; CHECK
4134 310060     LXI SP,ERBF
4137 210050     LXI H,STCK
413A 2B         DCX H
413B 116341     LXI D,TBL1END
413E 0612       MVI B,12
4140 1A       LOOP0:LDAX D
4141 BE         CMP M
4142 CA4641     JZ LOOP0_2
4145 E5         PUSH H;ERR
4146 2B       LOOP0_2:DCX H
4147 1B         DCX D
4148 05         DCR B
4149 C24041     JNZ LOOP0
414C E5         PUSH H
414D 210000     LXI H,$0000
4150 E5         PUSH H
4151 76         HLT
              ;
              ;COMPARE DATA TABLE
              ;
4152 78         DB 78
4153 56         DB 56
4154 34         DB 34
4155 12         DB 12
4156 01         DB 01
4157 34         DB 34
4158 00         DB 00
4159 34         DB 34
415A 01         DB 01
415B 34         DB 34
415C 00         DB 00
415D 34         DB 34
415E 00         DB 00
415F 12         DB 12
4160 00         DB 00
4161 CB         DB CB
4162 00         DB 00
4163 ED       TBL1END:DB ED
              ;
ERBF         =6000  LOOP0        =4140  LOOP0_2      =4146  
REENT        =1033  STCK         =5000  TBL1END      =4163  
WK1          =5000  WK2          =5002  WK3          =5004  
このテストプログラムも命令の使い方に特に意味はありません。
それぞれの命令を順に実行して、その結果をスタックに保存しているだけです。

USB経由で結果をパソコンに送りました。

これでほとんどの命令のテストが完了したことになります。
2009.7.4upload

前へ

次へ


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