Z8S180の回路図をまとめてみました。

汎用ロジックを使用したSPI接続でのSDCARD読み書き、PCA9554を使用したI2C回路、および、ROMとして今回はAT28C64B、RAMはHM678127を使用しました。

回路が作成できましたら、確認用ソフトで動作確認を行っていきます。

まずは、ROMから行います。
HALTに接続したLEDが点灯します。

; Z8S180 rom check

; Z8S180 cpu
; rom 0000h -- 7fffh

; External clock 16MHz


; assemblers  ASxxxx and ASlink V5.10
; file name rom_test.asm
; $ asz80 -l -s -o rom_test.asm
; $ aslink -i ron_test
; win10 ROM writer TL866(2)PLUS rom_test.ihx
;
;
        .z180

        .area TEST(ABS)

        .org    0x0000

start:
        jp      main
        
        .org    0x0100

main:
        halt

        .end

RS232C関連の通信確認をします。
A-CHを使用します。
通信速度は、38400bps、8ビット ノンパリティ 1ストップビット
押されたキーをエコーバックします。

;       Z8S180 serial communication test (A-CH)
;       
; Z8S180 cpu
; rom 0000h -- 7fffh

; External clock 16MHz


; assemblers  ASxxxx and ASlink V5.10
; file name com_test.asm
; $ asz80 -l -s -o com_test.asm
; $ aslink -i com_test
; win10 ROM writer TL866(2)PLUS com_test.ihx
;
;
        .z180

        .area TEST(ABS)

TDR0    .equ    0x06
RDR0    .equ    0x08
STAT0   .equ    0x04
CNTLA0  .equ    0x00
CNTLB0  .equ    0x02

        .org    0x0000
        jp      start

        .org    0x100
start:
        ld      a,0x64          ;Receiver Enable,Transmitter Enable
        out0    (CNTLA0),a      ;8N1(8bit non-parity 1stop bit)
        ld      a,0x07          ;external clock
        out0    (CNTLB0),a      ;38400bps * 16 (614.4KHz CKAo in)

com_in: in0     a,(STAT0)
        rlca
        jr      nc,com_in
        in0     d,(RDR0)
com_out:in0     a,(STAT0)
        bit     1,a
        jr      z,com_out
        out0    (TDR0),d
        jr      com_in

RAMの確認をします。

キーinされたデータを、いったん0x8000番地のメモリエリアに保存し、0x8000番地の内容をRS232C経由で書きだします。つまり、0x8000番地経由のエコーバックです。

;       Z8S180 ram test (A-CH)
;       
; Z8S180 cpu
; rom 00000h -- 7ffffh
; ram 20000h -- 3ffffh

; External clock 16MHz


; assemblers  ASxxxx and ASlink V5.10
; file name ram_test.asm
; $ asz80 -l -s -o ram_test.asm
; $ aslink -i ram_test
; win10 ROM writer TL866(2)PLUS ram_test.ihx
;
        .z180

        .area TEST(ABS)

TDR0    .equ    0x06
RDR0    .equ    0x08
STAT0   .equ    0x04
CNTLA0  .equ    0x00
CNTLB0  .equ    0x02

CBR     .equ    0x38    ;setting reg        
BBR     .equ    0x39
CBAR    .equ    0x3a

ram             .equ    0x20    ;ram address 0x20000
cbar_set        .equ    0x88    ;CBAR setting address 0x8000

temp_addr       .equ    0x8000  ;temprary address

        .org    0x0000
     
        jp      start

        .org    0x100
start:
        ld      a,cbar_set      ;ram    0x8000 to 0xffff
        out0    (CBAR),a
        ld      a,ram
        out0    (BBR),a
        out0    (CBR),a

        ld      hl,temp_addr    ;temprary address 0x8000 setting

        ld      a,0x64          ;Receiver Enable,Transmitter Enable
        out0    (CNTLA0),a      ;8N1(8bit non-parity 1stop bit)
        ld      a,0x07          ;external clock
        out0    (CNTLB0),a      ;38400bps * 16 (614.4KHz CKAo in)

com_in: in0     a,(STAT0)
        rlca
        jr      nc,com_in
        in0     a,(RDR0)
        ld      (hl),a          ;temprary address write
com_out:in0     a,(STAT0)
        bit     1,a
        jr      z,com_out
        ld      a,(hl)          ;temprary address read
        out0    (TDR0),a
        jr      com_in

ここまでくれば、ROM、RAMは正常なので、過去に上げているモニタ等を書き込みしてみましょう。

おすすめの記事