<
<        P R O G R A M M E    ' E S T H E T E '  .  ..
<
<
<        EN-TETE DE L'ITEM 2
<
         TABLE
ZERO:    EQU         $
         DZS         '528            < POSITIONNEMENT SUR L'ITEM2.
ITEM2:   EQU         $
         DZS         '52             < CLEAR DE L'EN-TETE DE L'ITEM.
         $EQU        ITEM2
         ASCI        "EST3"          < NOM COMPACTE DE L'ITEM.
         BYTE        '40;"0"
         BYTE        '04;'C9
LITEM:   VAL         35*74/2+'52*2   < LONGUEUR TOTALE DE L'ITEM.
         WORD        -'52*2+LITEM
         BYTE        "P";0           < TYPE 'P' DE L'ITEM
         $EQU        ITEM2+'3D
         BYTE        "E";"S";"T";'04 < NOM DE L'ITEM.
         $EQU        ITEM2+'50
         WORD        ITEM2,X
         WORD        ITEM2+'3D,X
         WORD        RUN             < POINT D'ENTREE DANS L'ITEM.
         PAGE
<
<        MESSAGES DIVERS (ET AUTRES...!...)
<
         LOCAL
LOC:     EQU         $+'80
VALT:    BYTE        18;'6D
         ASCI        "VALEURS TRAITEES:"
MIN:     BYTE        8;'6D
         ASCI        "MINIMUM"
MAX:     BYTE        8;'6D
         ASCI        "MAXIMUM"
PAS:     BYTE        4;'6D
         ASCI        "PAS"
EG:      BYTE        3;" ";"=";" "
COMP:    BYTE        31;'6D
         ASCI        "NOMBRE DE COMPOSANTES ACTIVES:"
REG:     BYTE        28;'6D
         ASCI        "NOMBRE DE REGISTRES ACTIFS:"
ROUGE:   BYTE        6;" "
         ASCI        "ROUGE"
VERT:    BYTE        5;" "
         ASCI        "VERT"
BLEU:    BYTE        5;" "
         ASCI        "BLEU"
TIRET:   BYTE        1;"-"
PINT:    BYTE        1;"?"
INIT:    BYTE        18;'6D
         ASCI        "INITIALISATION ? "
VAL:     BYTE        8;'6D
         ASCI        "VALEURS"
MTMPO:   BYTE        15;'6D
         ASCI        "TEMPORISATION="
SUP:     BYTE        3;'6D;">";'07
         PAGE
<
<        C O M M O N
<
         COMMON
COM:     EQU         $+'80
CCI:     WORD        1               < RETOUR AU CCI.
MCU3:    DZS         1               < MOT DE COMMANDE AU CU3.
DCU3:    WORD        '8B02           < DEMANDE AU CU3.
         WORD        MCU3-ZERO*2
         WORD        2
DMTMPO:  WORD        '0005           < TEMPORISATION
         WORD        0
         WORD        0               < NOMBRE DE SECONDES.
CRD:     DZS         1               < CARACTERE LU.
READ:    WORD        '0101           < LECTURE DE UN CARACTERE.
         WORD        CRD-ZERO*2
         WORD        1
WRITE:   WORD        '0202           < ECRTITURE D'UN MESSAGE.
         DZS         2
MINR:    DZS         1               < MINIMUM ET MAXIMUM DE REGISTRES
                                     < ACTIFS PAR COMPOSANTE (R/V/B)
MINV:    DZS         1
MINB:    DZS         1
MAXR:    DZS         1
MAXV:    DZS         1
MAXB:    DZS         1
MINRV:   DZS         1
MINRB:   DZS         1
MINVB:   DZS         1
MAXRV:   DZS         1
MAXRB:   DZS         1
MAXVB:   DZS         1
MINRVB:  DZS         1
MAXRVB:  DZS         1
MINCOM:  DZS         1               < MINIMUM DE COMPOSANTES ACTIVES.
MINVAL:  DZS         1               < MINIMUM, MAXIMUM ET PAS
MAXVAL:  DZS         1               < DES VALEURS PERMISES.
PASVAL:  DZS         1
VALR:    DZS         8               < REGISTRES 'ROUGE'.
VALV:    DZS         8               < REGISTRES 'VERT'.
VALB:    DZS         8               < REGISTRES 'BLEU'.
AVALR:   WORD        VALR-1,X        < RELAIS VERS CES TABLES.
AVALV:   WORD        VALV-1,X
AVALB:   WORD        VALB-1,X
NBVR:    DZS         1               < NOMBRE DE VALEURS ACTIVES
NBVV:    DZS         1               < PAR COMPOSANTE.
NBVB:    DZS         1
ANBV:    WORD        NBVR-1,X        < RELAI VERS CES NOMBRES.
HUIT:    WORD        8
NREG:    WORD        '0001           < NUMERO DU JEU DE REGISTRES COURANT.
PSAPS:   WORD        0               < INDICATEUR DE PAS A PAS (1=PAS A PAS).
PASC:    DZS         1               < PAS COURANT.
NIN:     WORD        -1              < NOMBRE D'ENTREES DANS LE PROGRAMME.
PILE:    DZS         25              < PILE DE 'K'
SAVK:    DZS         1               < SAVE 'K' DE 3D.
ARUN:    WORD        RUNX            < RETOUR DE ALT-MODE AU DEPART.
ARALT:   WORD        RALT            < ADRESSE DE RETOUR DE ALT-MODE.
APAR:    WORD        PARA            < RELAI DEMANDE PARAMETRES.
ACU3:    WORD        CU3             < S/P D'ENVOI DES VALEURS SUR CU3.
AENV:    WORD        ENV             < S/P D'ENVOI D'UN MOT SUR CU3.
AEGV:    WORD        EGV             < S/P D'IMPRESSION MESSAGE, SIGNE "=" ET
                                     < LECTUR/VALIDATION D'UNE VALEUR.
AVMX:    WORD        VMX             < S/P IDEM PRECEDENT AVEC
                                     < VALIDATION PAR RAPPORT AUX MIN ET MAX.
ATIR:    WORD        TIR             < S/P D'IMPRESSION MESSAGE ET SIGNE "-".
AECR:    WORD        ECR             < S/P D'ENVOI D'UN MESSAGE.
ARVL:    WORD        RVL             < S/P DE LECTURE D'UNE VALEUR (DE 0 A 'F).
ARVLI:   WORD        RVLI            < S/P DE LECTURE D'UNE VALEUR (DE 0 A 'F OU
                                     < "I" POUR INEXISTANTE).
AICV:    WORD        ICV             < S/P D'INCREMENTATION D'UNE VALEUR.
ASEL:    WORD        SEL             < S/P DE TEST (SELECTION) DE CONFIGURATION.
         PAGE
<
<        P R O G R A M M E   P R O P R E M E N T   D I T.
<
         PROG
<
<        INITIALISATION DES BASES.
<
RUN:     EQU         $               < ENTRY.
         PSR         C,L,W           < PROTECTION DES REGISTRES DE 3D.
         LR          K,B             < C'EST LE 'K' DE 3D.
RUNX:    EQU         $
         LRM         C,L,K
         WORD        COM             < COMMON.
         WORD        LOC             < LOCAL.
         WORD        PILE-1          < PILE.
         LA          ARUN
         WORD        '1EB5           < ADRESSE DEROUTEMENT SUR ALT-MODE.
         IC          NIN             < DECOMPTE DES ENTRY'S.
         JG          AUTIN           < PAS LA PREMIERE FOIS...
         STB         SAVK            < SAVE 'K' DE 3D.
AUTIN:   EQU         $
         PAGE
<
<        ENTREE DES PARAMETRES ESTHETIQUES...
<
PARA:    EQU         $
         LAD         VALT            < ENTREE DES VALEURS TRAITEES.
         BSR         AECR
         LAD         MAX             < MAXIMUM.
         BSR         AEGV
         STA         MAXVAL
         LAD         MIN             < MINIMUM.
         LB          MAXVAL
         BSR         AVMX
         STA         MINVAL
REPAS:   EQU         $               < REVOIR LE PAS...
         LAD         PAS             < PAS!
         BSR         AEGV
         JAE         REPAS
         NGR         A               < INVERSION PAS.
         STA         PASVAL
         LAD         COMP            < NOMBRE MINIMUM DE COMPOSANTES ACTIVES.
         BSR         AECR
RECOM:   EQU         $               < REVOIR LE MINIMUM DE COMPOSANTES.
         LAD         MIN
         BSR         AEGV
         CPI         3
         JG          RECOM
         STA         MINCOM
         LAD         REG             < NOMBRE DE REGISTRES ACTIFS.
         BSR         AECR
         LAD         MIN             < ENTREE DES MINIMUMS.
         BSR         AECR
         LAD         ROUGE           < ROUGE.
         BSR         AEGV
         STA         MINR
         LAD         VERT            < VERT.
         BSR         AEGV
         STA         MINV
         LAD         BLEU            < BLEU.
         BSR         AEGV
         STA         MINB
         LAD         ROUGE           < ROUGE-VERT.
         BSR         ATIR
         LAD         VERT
         BSR         AEGV
         STA         MINRV
         LAD         ROUGE           < ROUGE-BLEU.
         BSR         ATIR
         LAD         BLEU
         BSR         AEGV
         STA         MINRB
         LAD         VERT            < VERT-BLEU.
         BSR         ATIR
         LAD         BLEU
         BSR         AEGV
         STA         MINVB
         LAD         ROUGE           < ROUGE-VERT-BLEU
         BSR         ATIR
         LAD         VERT
         BSR         ATIR
         LAD         BLEU
         BSR         AEGV
         STA         MINRVB
<
         LAD         MAX             < ENTREE DES MAXIMUM'S.
         BSR         AECR
         LAD         ROUGE           < ROUGE.
         LB          MINR
         BSR         AVMX
         STA         MAXR
         LAD         VERT            < VERT.
         LB          MINV
         BSR         AVMX
         STA         MAXV
         LAD         BLEU            < BLEU.
         LB          MINB
         BSR         AVMX
         STA         MAXB
         LAD         ROUGE           < ROUGE-VERT.
         BSR         ATIR
         LAD         VERT
         LB          MINRV
         BSR         AVMX
         STA         MAXRV
         LAD         ROUGE           < ROUGE-BLEU.
         BSR         ATIR
         LAD         BLEU
         LB          MINRB
         BSR         AVMX
         STA         MAXRB
         LAD         VERT            < VERT-BLEU.
         BSR         ATIR
         LAD         BLEU
         LB          MINVB
         BSR         AVMX
         STA         MAXVB
         LAD         ROUGE           < ROUGE-VERT-BLEU
         BSR         ATIR
         LAD         VERT
         BSR         ATIR
         LAD         BLEU
         LB          MINRVB
         BSR         AVMX
         STA         MAXRVB
         PAGE
<
<        INITIALISATION DES VALEURS DES REGISTRES.
<
RINIT:   EQU         $
         LAD         INIT
         BSR         AECR
         LAD         READ            < POUR REPONSE (OUI/NON).
         SVC         0
         LBY         CRD
         CPI         "N"
         JE          PINIT           < PAS D'INIT !
         CPI         "O"
         JNE         RINIT           < REPONSE NON RECONNUE...
<
         LAD         VAL             < ENTREE DES VALEURS.
         BSR         AECR
         LAD         ROUGE           < ROUGE.
         BSR         AECR
         LAD         EG
         BSR         AECR
         LXI         8
INIR:    EQU         $
         PSR         X
         BSR         ARVLI
         PLR         X
         CPI         -1
         JE          INIR1           < SI " ", NE PAS TOUCHER A LA TABLE.
         STA         &AVALR
INIR1:   EQU         $
         JDX         INIR
<
         LAD         VERT            < VERT.
         BSR         AECR
         LAD         EG
         BSR         AECR
         LXI         8
INIV:    EQU         $
         PSR         X
         BSR         ARVLI
         PLR         X
         CPI         -1
         JE          INIV1           < SI " ", NE PAS TOUCHER A LA TABLE.
         STA         &AVALV
INIV1:   EQU         $
         JDX         INIV
<
         LAD         BLEU            < BLEU.
         BSR         AECR
         LAD         EG
         BSR         AECR
         LXI         8
INIB:    EQU         $
         PSR         X
         BSR         ARVLI
         PLR         X
         CPI         -1
         JE          INIB1           < SI " ", NE PAS TOUCHER A LA TABLE.
         STA         &AVALB
INIB1:   EQU         $
         JDX         INIB
         BSR         ACU3            < ET ENVOI DES VALEURS.
         BSR         ACU3            < SUR LES DEUX JEUX DE REGISTRES.
<
PINIT:   EQU         $
         LA          ARALT
         WORD        '1EB5           < ADRESSE DEROUTEMENT ALT-MODE.
RALT:    EQU         $
         STZ         PSAPS           < RAZ DU PAS A PAS.
         LA          PASVAL          < INITIALISATION DU PAS COURANT.
         STA         PASC
         LAD         SUP             < LECTURE DE LA COMMANDE.
         BSR         AECR
         LAD         READ
         SVC         0
         LBY         CRD             < ANALYSE DE LA COMMANDE.
         CPI         "N"
         JE          AVAN
         CPI         "R"
         JE          ARRI
         CPI         "G"
         JE          GO
         CPI         "B"
         JE          BACK
         CPI         "I"
         JE          RINIT
         CPI         "P"
         JE          DEBUT
         CPI         "T"
         JE          TEMPO
         CPI         "W"
         JE          RCCI
         CPI         "F"
         JNE         RALT
FIN:     EQU         $
         EORR        W               < FIN - INDIQUER RETOUR OK.
                                     < (POUR 3D)
         STZ         2,W
         LAI         '12             < RESTAURER ADRESSE ALT-MODE.
         WORD        '1EB5
         LB          SAVK            < RESTAURER LE 'K' DE 3D.
         LR          B,K
         PLR         C,L,W
         BSR         'FF80,C         < ET RETOUR A 3D
         WORD        $+1;"F "
TEMPO:   EQU         $               < DEMANDE DE TEMPORISATION.
         LAD         MTMPO
         BSR         AECR
         BSR         ARVL
         STA         DMTMPO+2        < STORE NB SECONDES.
         JMP         RALT
DEBUT:   EQU         $
         BR          APAR            < VERS ENTREE DES PARAMETRES.
RCCI:    EQU         $
         LAD         CCI
         SVC         0               < RETOUR AU CCI.
         JMP         RALT            < VERS NOUVELLE COMMANDE.
ARRI:    EQU         $
         IC          PSAPS           < INDIQUER "PAS A PAS".
         JMP         BACK
AVAN:    EQU         $
         IC          PSAPS           < INDIQUER "PAS A PAS".
         JMP         GO
BACK:    EQU         $
         LA          PASVAL          < INVERSION DU SENS DU PAS.
         NGR         A
         STA         PASC
GO:      EQU         $
         LXI         8               < ON VA PASSER TOUS LES REGISTRES.
RVRG:    EQU         $
         LR          X,B
         LXI         3               < ON VA PASSER TOUTES LES COMPOSANTES.
RVCP:    EQU         $
         BSR         AICV            < FAIRE UN PAS SUR LA VALEUR COURANTE.
         JAE         ICOK            < LE PAS EST BON...!
         JDX         RVCP            < LE PAS N'EST PAS BON, ON PASSE A LA
                                     < COMPOSANTE SUIVANTE.
         LR          B,X
         JDX         RVRG            < PLUS DE COMPOSANTE, REGISTRE SUIVANT.
         JMP         FIN
ICOK:    EQU         $
         BSR         ASEL            < LA CONFIGURATION REPOND-ELLE AUX
                                     < NORMES ESTHETIQUES??
         JANE        GO
         BSR         ACU3            < OUI, ON LA DIFFUSE DONC.
         CPZ         PSAPS           < EST-ON EN PAS A PAS?
         JNE         RALT            < OUI, VERS NOUVELLE COMMANDE.
         JMP         GO              < NON, CONTINUER.
         PAGE
<
<        S/P D'ENVOI DES REGISTRES SUR CU3.
<
CU3:     EQU         $
         PSR         A,X
         LXI         24              < ON VA PASSER TOUS LES REGISTRES.
CU32:    EQU         $
         CPZ         &AVALR          < SI LA VALEUR EST INACTIVE, LA SAUTER.
         JL          CU31
         LA          &AVALR          < EST-ELLE DANS LES LIMITES ?
         CP          MAXVAL
         JGE         CU33
         LA          MAXVAL
         JMP         CU34            < ON PREND LE MAX.
CU33:    EQU         $
         CP          MINVAL
         JLE         CU34
         LA          MINVAL          < ON PREND LE MIN.
CU34:    EQU         $
         BSR         AENV            < ENVOI DE LA VALEUR.
CU31:    EQU         $
         JDX         CU32            < VALEUR SUIVANTE.
         LA          NREG            < INVERSER LE JEU DE REGISTRES.
         IBT         11
         IBT         15
         STA         NREG
         SLLS        7
         ORI         '70
         STA         MCU3            < PASSER LA DIFFUSION SUR LE JEU
         LAD         DCU3            < QUE L'ON VIENT DE PROGRAMMER.
         SVC         0
         CPZ         DMTMPO+2        < Y A-T-IL UNE TEMPORISATION A FAIRE ?
         JE          CU35
         LAD         DMTMPO          < TEMPO
         SVC         0
CU35:    EQU         $
         PLR         A,X
         RSR
         PAGE
<
<        S/P D'ENVOI D'UNE VALEUR SUR CU3.
<
ENV:     EQU         $
         PSR         A,B,X
         SLRD        4               < METTRE LA VALEUR DANS 'B'.
         LR          X,A
         ADRI        -1,A            < METTRE LE NUMERO DE REGISTRE DANS B
         SLRD        3               < VOILA.
         NGR         A               < CALCUL DU NUMERO DE COMPOSANTE.
         ADRI        15,A
         LR          A,X
         LAI         0
         SBT         0,X
         SLLS        1
         OR          NREG            < INCORPORER LES JEUX DE REGISTRES.
         SLLD        7
         STA         MCU3            < ET ENVOI SUR CU3.
         LAD         DCU3
         SVC         0
         PLR         A,B,X
         RSR
         PAGE
<
<        S/P D'IMPRESSION D'UN MESSAGE.
<
ECR:     EQU         $
         PSR         A,X,W
         LR          A,W
         ADR         A,A
         ADRI        1,A
         STA         WRITE+1
         LBY         0,W
         STA         WRITE+2
         LAD         WRITE
         SVC         0
         PLR         A,X,W
         RSR
         PAGE
<
<        S/P D'IMPRESSION D'UN MESSAGE ET DU TIRET
<
TIR:     EQU         $
         PSR         A
         BSR         AECR
         LAD         TIRET
         BSR         AECR
         PLR         A
         RSR
         PAGE
<
<        S/P DE LECTURE D'UNE VALEUR DE 0 A 'F OU INEXISTANTE.
<
RVLI:    EQU         $
         PSR         X
RVLI1:   EQU         $
         LAD         READ
         SVC         0
         LBY         CRD
         CPI         " "
         JE          RVLI5
         CPI         "*"
         JE          RVLI2
         ADRI        -'30,A
         JAL         RVLI3
         CPI         9
         JLE         RVLI4
         CPI         '11
         JL          RVLI3
         ADRI        -7,A
         CPI         '18
         JG          RVLI3
RVLI4:   EQU         $
         PLR         X
         RSR
RVLI2:   EQU         $
         LAI         0
         SBT         0
         JMP         RVLI4
RVLI5:   EQU         $
         LAI         -1
         JMP         RVLI4
RVLI3:   EQU         $
         LAD         PINT
         BSR         AECR
         JMP         RVLI1
         PAGE
<
<        S/P DE LECTURE D'UNE VALEUR DE 0 A 'F.
<
RVL:     EQU         $
         BSR         ARVLI
         JAGE        RVL1
         LAD         PINT
         BSR         AECR
         JMP         RVL
RVL1:    EQU         $
         RSR
         PAGE
<
<        S/P D'IMPRESSION D'UN MESSAGE, DU SIGNE "=", ET
<        LECTURE/VALIDATION D'UNE VALEUR.
<
EGV:     EQU         $
         BSR         AECR
         LAD         EG
         BSR         AECR
         BSR         ARVL
         RSR
         PAGE
<
<        S/P IDENTIQUE AU PRECEDENT MAIS ACCEPTANT UNE VALEUR
<        REPRESENTANT UN MAXIMUM PAR RAPPORT A UN MINIMUM CONTENU DANS 'B'.
<
VMX:     EQU         $
         BSR         AEGV            < LIRE LA VALEUR.
VMX1:    EQU         $
         CPR         A,B
         JLE         VMX2            < TEST VALEUR.
         LAD         PINT
         BSR         AECR
         BSR         ARVL
         JMP         VMX1
VMX2:    EQU         $
         RSR
         PAGE
<
<        S/P D'INCREMENTATION D'UNE VALEUR RENDANT DANS 'A'
<        0           VALEUR EXISTANTE ET DANS LES LIMITES.
<        1           SINON
<
ICV:     EQU         $
         PSR         X,W
         EORR        W
         LR          X,A             < ADRESSE VALEUR.
         ADRI        -1,A
         PSR         B
         MP          HUIT
         LR          B,A
         PLR         B
         ADR         B,A
         LR          A,X
         CPZ         &AVALR          < VALEUR EXISTE-T-ELLE ?
         JL          ICV1            < NON.
         LA          &AVALR          < OUI, APPLIQUER LE PAS.
         AD          PASC
         CPZ         PASC            < VA-T-ON EN AVANT OU EN ARRIERE ?
         JG          ICV2            < EN ARRIERE.
         JAGE        ICV3            < EN AVANT, COMPARER AU MAX ABSOLU.
         ADRI        '10,A           < SUPERIEUR MODULO 16.
         STA         &AVALR
         JMP         ICV1
ICV3:    EQU         $
         STA         &AVALR          < VALEUR OK.
         JMP         ICV4
ICV2:    EQU         $
         CPI         'F              < EN ARRIERE, COMPARER AU MIN ABSOLU.
         JLE         ICV3
         ADRI        -'10,A          < INFERIEUR MODULO 16.
         STA         &AVALR
ICV1:    EQU         $
         ADRI        1,W             < VALEUR NON SIGNIFICATIVE.
ICV4:    EQU         $
         LR          W,A             < CODE RETOUR
         PLR         X,W
         RSR
         PAGE
<
<        S/P DE TEST DE CONFIGURATION EN FONCTION DES PARAMETRES
<        RENDANT DANS 'A' :
<        0           CONFIGURATION VALABLE, DONC A DIFFUSER.
<        1           SINON.
<
SEL:     EQU         $
         PSR         B,X,Y
         LXI         3
SEL3:    EQU         $               < CALCUL DU NB DE VALEURS ACTIVES
                                     < PAR COMPOSANTE.
         LR          X,B
         LXI         8
         LYI         0
SEL2:    EQU         $
         LR          B,A
         ADRI        -1,A
         PSR         B
         MP          HUIT
         LR          B,A
         PLR         B
         ADR         X,A
         PSR         X
         LR          A,X
         LA          &AVALR
         PLR         X
         JAL         SEL1
         CP          MINVAL
         JG          SEL1
         CP          MAXVAL
         JL          SEL1
         ADRI        1,Y             < ELLE EST BONNE.
SEL1:    EQU         $
         JDX         SEL2
         LR          B,X
         STY         &ANBV
         JDX         SEL3            < COMPOSANTE SUIVANTE.
         LYI         0               < BON A PRIORI.
         LA          NBVR            < VERIFICATION DE LA CONFIGURATION.
         CP          MINR
         JL          SEL4
         CP          MAXR
         JG          SEL4
         LA          NBVV
         CP          MINV
         JL          SEL4
         CP          MAXV
         JG          SEL4
         LA          NBVB
         CP          MINB
         JL          SEL4
         CP          MAXB
         JG          SEL4
         LA          NBVR
         AD          NBVV
         CP          MINRV
         JL          SEL4
         CP          MAXRV
         JG          SEL4
         LA          NBVR
         AD          NBVB
         CP          MINRB
         JL          SEL4
         CP          MAXRB
         JG          SEL4
         LA          NBVV
         AD          NBVB
         CP          MINVB
         JL          SEL4
         CP          MAXVB
         JG          SEL4
         LA          NBVR
         AD          NBVV
         AD          NBVB
         CP          MINRVB
         JL          SEL4
         CP          MAXRVB
         JG          SEL4
SEL5:    EQU         $
         LR          Y,A             < CODE RETOUR.
         PLR         B,X,Y
         RSR
SEL4:    EQU         $
         LYI         1               < PAS BON.
         JMP         SEL5
         PAGE
<
<        GENERATION DU PROGRAMME EN TANT QU'ITEM DE TYPE 'P'
<        EXECUTABLE EN 'ITEM 2' PAR '3D'.
<
DEMSGN:  WORD        '8402
         WORD        ITEM2-ZERO*2
         WORD        LITEM
         WORD        -1
DEMCCI:  WORD        '0001
GENER:   EQU         $
         LRM         A
         WORD        DEMSGN
         SVC         0
         JNE         $
         LRM         A
         WORD        DEMCCI
         SVC         0
         JMP         $-1
         END         GENER



Copyright © Jean-François Colonna, 2022-2022.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2022-2022.