
TK-Z80についての質問

 
  
  
  
7セグメントLED表示で使用しているDMAのタイミングについて教えてください。
どうすれば7セグメントLEDに任意のデータを表示できますか。
モニタープログラムのキー入力はどうなっていますか。
モニタープログラムのワークエリア(RAM)の割り付けはどうなっていますか。
アセンブルからプログラムの実行までの手順を教えてください。
Z-Vison Windowsを接続する場合はどのように設定しますか。
Z-VisionやRM-80でトレース中に割り込み信号を入れても
割り込みプログラムに処理が移りません。なぜですか。
キットを購入したのですが,部品表と違う型番の部品が入っています。

7セグメントLED表示で使用している
DMAのタイミングについて教えてください。
    DMAのタイミングチャートと回路図を見ながら以下の説明をお読みください。
                                       
                 
  - U11(74HC08)からCPUシステムクロックと同じクロックがU4(74HC4040)とU14(74HC393)で13段分周され,U14のQAから600Hzのクロックが出力されています。
- U14のQA(11番ピン)のクロックの立ち上がりに同期してU13(74HC74)のQ(6番ピン)からCPUへBUSREQ信号が出力されます。
- CPUはBUSREQ信号を検知すると,BUSACK信号をLowにし,データバスとアドレスバスをハイインピーダンス状態にします。
- BUSACK信号はU21(74HC00)で反転され,それを受けたU3(74HC74)はQ(9番ピン)からDMA信号,Q(8番ピン)からDMA信号を出力します。
- DMA信号はDMAアドレス生成部で使用されます。まずU14(74HC393)のクロックに入力されますが,仮に前の状態がQCQBQA=111とすると,このクロックの立ち下がりでQCQBQA=000となります。この値は次のU13(74HC367)によって,A15A2A1A0=1000となり,その他のアドレスは(3)によりハイインピーダンス状態なので10Kオームのプルアップ抵抗が効いてHiの状態になっており,生成されるアドレスはFFF8hとなります。このアドレスとMREQ,RDにより,データバス上にはFFF8h番地の内容が乗っています。
- DMA信号はU6(74HC107)とU21(74HC00)で構成される同期式カウンタの入力として使用され,データラッチ,アドレスラッチ(CLRと兼用)信号を出力します。同期式カウンタ部分を見ていくと,DMA信号はまず1段目の74HC107のJK端子に入りクロックに同期してQ(3番ピン)がHigh,Q(2番ピン)がLowになります(6−1)。Q(3番ピン)=High信号は,2段目の74HC107のJK端子に入り,次のクロックに同期してQ(5番ピン)がHighになります(6−2)。このとき,1段目のHC107の出力はQ,Qとも反転します。Q(2番ピン)とQ(5番ピン)を受けてU21(74HC00)からデータラッチ信号Lowが出力され(6−3),U20(74HC574)からデータバス上のFFF8h番地のデータがLEDへ出力されます。そして次のクロックで,Q(3番ピン)とQ(5番ピン)は共にHighとなり,CLR信号が出力されます(6−4)。CLR信号はタイミングチャートを見るとわかるように,いくつかの信号をクリアしますが,同時にU16(74HC137)の入力でアドレスラッチとしても使用しています。U16(74HC137)のデコーダ入力(ABC端子)は,U14(74HC393)で出力された下位3ビットアドレスと同じもので,出力はU17(TD62384)を介してLED2,3の桁選択に用いられます。いま,U14(74HC393)はQAQBQC=000なので,U16(74HC137)の15番ピンがLowになり,LED2の最左端の桁がアクティブになります。
    以上 (1)〜(6)の一連の操作で7セグメントLED1桁を表示し,(1)〜(6)を8回繰り返すことにより全桁を表示することができます。
[先頭に戻る]

どうすれば7セグメントLEDに任意のデータを表示できますか。
    TK-Z80はDMAによりFFF8h〜FFFFh番地のメモリーの内容を自動的に表示します。それで,任意のデータを表示するにはこのアドレスにデータをセットすればよいことになります。各桁とアドレスの関係は次のようになっています。
                                        
                  
                
                   
                   
    | 左 |  |  |  |  |  |  | 右 | 
                 
                   
    | FFF8h | FFF9h | FFFAh | FFFBh | FFFCh | FFFDh | FFFEh | FFFFh | 
                 
                
                 
                                            
各アドレスにはセグメントデータをセットすることになります。セグメントとデータビットの関係は次のとおりで,光らせたいセグメントに相当するデータビットに1をセットします。
                  
                  
                
                   
                   
    | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 | 
                 
                   
    | d.p. | g | f | e | d | c | b | a | 
                 
                
                 
                                            
なお,参考としてプログラム設計時に作成したモニターの表示プログラムのフローチャートをダウンロードすることができます。
                  
                  
[先頭に戻る]
                  
                  

モニタープログラムのキー入力はどうなっていますか。
                                            
プログラム設計時のフローチャートをダウンロードしてください。詳細はこのフローチャートに記されています。(全3ページ。1ページ,2ページ,3ページ)
                  
                  
[先頭に戻る]
                  
                  

モニタープログラムのワークエリア(RAM)の
割り付けはどうなっていますか。
                                            
メモリーマップをダウンロードしてください。(全2ページ。1ページ,2ページ)
                  
                  
[先頭に戻る]
                  
                  

アセンブルからプログラムの実行までの手順を教えてください。
                                         
アセンブラにXA80(システムロード社)を利用した場合の手順についての資料を下記からダウンロードしてください(Xa80.pdf)。他のアセンブラの場合でも参考になると思います。
                 
                 
[先頭に戻る]
                 
                 

   
Z-Vison Windowsを接続する場合はどのように設定しますか
  
  
                                        
Z-Vision WindowsをTK-Z80で使用するときの設定方法については,次の資料をダウンロードしてください(zvr.pdf)。
  
  
[先頭に戻る]
  
  

Z-VisionやRM-80でトレース中に割り込み信号を入れても
割り込みプログラムに処理が移りません。なぜですか。
                                      
Z-VisionやRM-80のトレースは,次に実行する命令の,さらに次に実行する命令を‘INT30H’に置き換えることで,1命令実行したあとでデバッガに処理を移しています。例として次のプログラムをトレースする場合を考えます。
            
            
              
              
                
      | LD | A,30h | ;(1)ここまでトレースしてきた | 
            
                
      | LD | B,16h | ;(2)次にこの命令を実行する | 
            
                
      | ADD | A,B | ;(3) | 
            
  
            
              
             
                                      
(1)で止まっているときに割り込み信号を入れると,リモートデバッガ内はDIになっているので割り込みは一時保留になります。リモートデバッガからトレースでアプリケーションに処理が移るときに,これまでアプリケーションでEIであればEIに戻すので,それ以降,割り込みを受け付けることになります。つまり,(2)の命令を実行する前に割り込みを受け付けます。
            
                                      
さて,(1)で止まっているときに割り込み信号を入れ,そしてトレースを行うと,(3)を‘INT30H’に置き換えてからアプリケーションに処理を移すので,割り込み処理と(2)の命令を実行してからデバッガに処理が移ります。というわけで,トレースでは割り込みプログラムに処理を移すことができません。
            
    対応策は,割り込みプログラムのデバッグは,割り込みプログラムの先頭にブレークをはって一度ブレークをかけてからトレースすることで行います。
                               
           
[先頭に戻る]
           
           

キットを購入したのですが,
部品表と違う型番の部品が入っています。
                                   
特にICのパッケージに記されている型番と部品表の型番が違うことがあります。しかしこれは相当品を使用しているためですので,動作的には何ら問題ありません。安心してお使いください。
         
[先頭に戻る]
         

  
   
  
  
 