2017.2.27
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[総合第18回]


●画面表示テストプログラム(3)

前々回、前回と続いてAM188マイコンボードで実行するVGA画面表示テストプログラムの説明をしてきました。
16ビット8086アセブラプログラムの簡単な参考例になるのでは思います。
今回はこちらもプログラムの参考としていただけるよう、ND8080でのテストプログラムとND80Z3.5でのテストプログラムを見ていただきます。

まずはND8080でのテストプログラムです。

2017/2/23  15:12  vgatest.txt
END=801B
              ;;; vgatest for nd8080
              ;17/2/23
              ;
                ORG $8000
              ;
                START=$0000
              ;
8000 3EFF       MVI A,FF
8002 D3D0       OUT D0
8004 2100F8     LXI H,$F800
8007 75       LOOP:MOV M,L
8008 23         INX H
8009 7C         MOV A,H
800A FEFF       CPI FF
800C C20780     JNZ LOOP
800F 7D         MOV A,L
8010 FED0       CPI D0
8012 C20780     JNZ LOOP
8015 3E00       MVI A,00
8017 D3D0       OUT D0
8019 C30000     JMP START
              ;
LOOP         =8007  START        =0000  

ND8080のCPUは8080ですから、8080アセンブラ(インテルニーモニック)で書きました。
当社オリジナルの8080アセンブラです。
8080アセンブラはND8080組立キットに標準で付属しています。
MYCPU80も8080互換ですから上のプログラムはそのまま実行できます。
8080アセンブラはMYCPU80組立キットにも標準で付属しています。

前回見ていただいた8086プログラムでは16ビットの比較命令が使えるため、
CMP BX,FFD0
JNZ LOOP
と簡単に済ませることができましたが、8080には16ビットの比較命令がありませんから、上のリストのように
MOV A,H
CPI FF
JNZ LOOP
MOV A,L
CPI D0
JNZ LOOP
という具合に長々と書かなければなりません。

16ビットのアセンブラというと難しくてとても歯が立たないだろうと思われるかも知れませんが、このようにかえって簡単に記述できる場合も意外と多くあります。
皆様も8080アセンブラ、Z80アセンブラに慣れていただいたら、その次はぜひ8086アセンブラに挑戦してみてください。

さてそしてこちらがND80Z3.5(ND80ZVも同じ)でのテストプログラムです。

2017/2/23  15:7  vgatest.txt
END=801B
              ;;; vgatest for nd80z3
              ;17/2/23
              ;
                ORG $8000
              ;
                START=$0000
              ;
8000 3EFF       LD A,FF
8002 D3D0       OUT (D0),A
8004 2100F8     LD HL,$F800
8007 75       LOOP:LD (HL),L
8008 23         INC HL
8009 7C         LD A,H
800A FEFF       CP FF
800C C20780     JP NZ,LOOP
800F 7D         LD A,L
8010 FED0       CP D0
8012 C20780     JP NZ,LOOP
8015 3E00       LD A,00
8017 D3D0       OUT (D0),A
8019 C30000     JP START
              ;
LOOP         =8007  START        =0000  

ND80Z3.5(ND80ZV)のCPUはZ80ですからZ80アセンブラ(ザイログニーモニック)で書きましたが、Z80は機械語レベルでは8080の上位互換CPUですから8080の命令はそのまま同じように実行できます。
ソースプログラムのニーモニックは8080とZ80では互換性はありませんが、上の2つのリストを見ていただければわかるように、機械語命令は全く同じになっています。
Z80は8080にない命令を多くもっていますからそれらを使うときはZ80アセンブラが便利ですが、8080の命令だけでプログラムを書く場合にはZ80用に8080アセンブラを使って書いても全く支障はありません。
ND80Z3.5組立キットには8080アセンブラとZ80アセンブラが標準で付属しています。
Z80アセンブラも当社オリジナルのアセンブラです。

●ND80ZVとの接続テスト

何回か前に書きましたが、うっかりしていてND80ZVとの接続テストの写真はお見せしていませんでした。
ND80ZVとの接続については、ずっと前に、「CRTインターフェースボードの製作」[第30回]で、接続のためにこういう基板をつくる予定です、という説明をしてそれっきりになってしまっていました。
なにしろ守備範囲がめちゃめちゃ広くなってしまったものですから、全体をカバーしようとするともう大変なのです。

こちらが遅ればせながらND80ZVとCRT/VGAインターフェースボードを接続して、上でお見せしたテストプログラムを実行しているところの写真です。


ND80ZVにはCP/M互換DOS用の増設RAMボードが載せてあって、さらにその上に拡張用のCPU基板を取り付けてあります。
なんだか軍艦の司令塔のような感じになってきました。

下は上のように接続した状態でスクリーンエディタの動作テストをしている画面です。



ND80ZVに増設RAMボードを載せてその上に拡張用CPUボードを載せているところを拡大しました。

親亀の上に子亀、子亀の上に孫亀、です。

こちらが拡張用CPU基板です。


上の写真ではCP/M互換DOS用の増設RAMボードを取り付けた上に拡張用CPUボードを載せていますが、ND80ZVとCRT/VGAインターフェースボードを接続するためには、増設RAMボードは必須ではありません。
増設RAMボードを使わなくても拡張用CPUボードだけを使ってCRT/VGAインターフェースボードを接続しても全く支障はありません。

下はND80ZVに拡張用CPUボードだけを取り付けてVGA表示テストを行なっているところの写真です。


ND80ZVからZ80CPUを外して、空いた40pinICソケットに拡張用CPUボードを差し込んで、その上の40pinICソケットにZ80CPUを取り付けて使います。

拡張CPUボードの裏側に取り付けた40pinICソケットをND80ZVの40pinICソケットに差し込んでいるだけなので、10pinケーブルを引っ張るとICソケットが外れてしまいます。
10pinケーブルを不用意に引っ張ったりしないように注意して扱ってください。

CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第18回]
2017.2.27upload

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