;
;  _===_ _           _                  ______ _     _             _ _ _
; |  ___| |         | |                 | ___ (_)   | |           (_) | |
; | |__ | | ___  ___| |_ _ __ ___ ______| |_/ /_  __| | ___  _   _ _| | | ___ _   _ _ __
; |  __|| |/ _ \/ __| __| '__/ _ \______| ___ \ |/ _` |/ _ \| | | | | | |/ _ \ | | | '__|
; | |___| |  __/ (__| |_| | | (_) |     | |_/ / | (_| | (_) | |_| | | | |  __/ |_| | |
; \____/|_|\___|\___|\__|_|  \___/      \____/|_|\__,_|\___/ \__,_|_|_|_|\___|\__,_|_|
;
; Essai de chenillard sur la plateforme Z80 PRO-83, utilisant le "Moniteur"
; Code source développé et assemblé sur le site ASM80.com
; Électro-Bidouilleur, V1, Juillet 2022. https://www.youtube.com/Électro-Bidouilleur
; Licence de droits: Attribution 4.0 International (CC BY 4.0)  Lisez https://creativecommons.org/licenses/by/4.0/deed.fr  

; DÉFINITION DE MACROS
CHIFFR_SEL  equ 0x48    ; 0100|0000
SEGM_SEL    equ 0x4C    ; 0100|0000

; Le code source doit être placé au début de la mémoire RAM à l'adessse 0x1000
ORG 0x1000

DEBUT:
            LD      A,0xDC          ; Contenu de A = DC
            OUT     (SEGM_SEL),A    ; Activer les segments c, d, e, g.
            LD      A,0xFE          ; Sélectionner le chiffre de droite
BOUCLE3:             
            OUT     (CHIFFR_SEL),A  ; Activer le ler digit.
            LD      C,0x40          ; Initialiser le premier registre de delai.
BOUCLE2:             
            LD      B,0xFF          ; Initialiser is deuxième registre de delai.
BOUCLE1:             
            DJNZ    BOUCLE1         ; Décrémenter B jusqu'à 0. B = 0? Si oui, passer à l'instruction suivante
            DEC     C               ; Décrémenter C de 1.
            JR      NZ,BOUCLE2      ; Sauter à la boucle 2 lorsque C a atteint 0.
            RLCA                    ; Passer au digit suivant (glissement de la valeur dans A vers la gauche).
            JR      BOUCLE3         ; Sauter à la boucle 3.
