Circuit processeur Z80

De MicElectroLinGenMet.

Sommaire

Description

(Voir le Z80 sur Wikipedia)

Processeur 8 bits Zilog Z80.

Processeur fabriqué en 1976 est devenu trés utilisé dans les années 80 avec le boum des ordinateur domestique comme les Sinclair ZX80, ZX81, ZX Spectrum, le standard MSX, les Amstrad CPC dont le CPC 6128 et même la première GameBoy.


Brochage


Image:Z80_DIP40_Brochage.gif Image:Z80_DIP40_Brochage2.gif


Programmation

Liste des instructions assembleur

Z80 Opcodes


Exemple de source Z80

Ce programme a tourné sur un ZX81 pour transférer du code par une carte série vers un PC. La carte série est une carte réalisé pour le CPC 6128 et connectée au ZX81 par l'intermédiaire d'un adapteur.

Voir Transfert programme Zx81 sur PC pour une photo du câblage.

; Transfert de codes du ZX81 vers le PC par l'intermédiaire de l'UART Amstrad.
; Voir zx_uart.sch, shéma du circuit adaptateur.
 
 
        .org h'2000
 
        .equ uart,h'7F          ;Registre de données de l'UART.
        .equ status,h'3F        ;Registre de status de l'UART.
 
 
;       Envoi les 256 codes vers l'uart.
test:
        ld a,h'55
        call txd                ;Envoi octet 'prét à emettre'.
 
        ld b,h'FF
test1:  ld a,b
        call txd
        djnz test1
        ret
 
 
;       Envoi les codes du programme en mémoire comme lors d'un SAVE.
 
trans:  ld bc,h'4009            ;Adresse de début d'un SAVE.
        ld hl,(h'4014)          ;Contient l'adresse de fin d'un SAVE.
        and a                   ;c à 0.
        sbc hl,bc
        inc hl                  ;(HL-BC)+1.
        ld b,h
        ld c,l                  ;BC = nbre d'octets du programme.
 
        ld a,h'55
        call txd                ;Envoi octet 'prét à emettre'.
 
        ld hl,h'4009
trans1: ld a,(hl)
        call txd                ;Envoi le code.
        inc hl
        dec bc
        ld a,b
        or c
        jr nz,trans1            ;Boucle si BC<>0.
        ret
 
 
;       Envoi un caractère A par l'uart.
 
txd:    PUSH af
txd1:   IN a,(status)
        RRA
        RRA                     ;Positionne TBE dans c.
        JR nc,txd1              ;Boucle si non prét à émettre (TBE=0).
        POP af
        OUT (uart),a            ;Si prèt, envoi A.
        RET
 
 
;       Attend et lit le caractère reçu dans A.
 
rxd:    IN a,(status)
        RRA                     ;Décale DAV dans c.
        JR nc,rxd               ;Saute si pas d'octet reçu (DAV=0).
        IN a,(uart)             ;Lit l'octet reçu dans A.
        RET


Carte Z80zx

Carte Z80 basée sur une carte de ZX81 HS.
La ROM Sinclair est remplacée par une EPROM 8Ko et le chip ULA remplacé par un circuit horloge et décodeur d'adresse.

Cela donne une carte de dévelloppement Z80 1Ko RAM / 8Ko EPROM pas chère avec un connecteur Zx fournissant le bus complet du processeur.

Carte Z80 sur base ZX81


Circuit décodeur d'adresse et horloge (sur support ULA):

Circuit Horloge / Décodeur Z80 vers ZX81