PAGE
SOLAR:   VAL         0               < VERSION T1600 : SOLAR,X200,,X200
SOLAR:   VAL         1               < SOLAR 16.65 : SOLAR,,X200,
IGE:     VAL         1               < GENERATION D'UNE BRANCHE DE
                                     < L'OVERLAY DE 'GE'.
IGE:     VAL         0               < GENERATION D'UNE VERSION
                                     < 'PROCESSEUR DE BASE DE CMS4'.
         IF          IGE,,,X100
         IDP         "SYMBOL - RELEASE 16/03/1975"
X100:    VAL         0
         IF          IGE,X100,X100,
         IDP         " S - RELEASE 31/12/1974"
X100:    VAL         0
         IF          SOLAR,X200,,X200
         IDP         "VERSION T1600"
X200:    VAL         0
         IF          SOLAR,,X200,
         IDP         "VERSION SOLAR 16.65"
X200:    VAL         0
         IDP         "JOHN F. COLONNA"
<
<
<        A S S E M B L E U R   S Y M B O L  :
<
<
<        NOTA :
<                    L'ASSEBLEUR SYMBOL EST EN FAIT L'ASSEMBLEUR ASM
<                    (ASM=ASSEMBLEUR SQUELETTIQUE MINABLE) PRODUIT
<                    PAR UNE USINE QUI S'EST LANCEE DANS L'INFORMATIQUE
<                    JE VEUX PARLER DE LA TELEMECANIQUE . DONC , CET
<                    ASM A ETE ADAPTE AUX BESOINS PREMIERS DU
<                    CLIENT (MOI EN L'OCCURENCE) , EN RESPECTANT
<                    L'INTERFACE AVEC UCPRS-CMS4 , ET LES FABULEUX
<                    SERVICES QU'IL MET A LA DISPOSITION DES
<                    UTILISATEURS ....
<                      ON PEUT OBTENIR 2 VERSIONS DE
<                    L'ASSEMBLEUR :
<                    1- IGE<=0 : GENERATION D'1NE VERSION
<                    'PROCESSEUR DE BASE DE CMS4' ,
<                    2- IGE>0 : GENERATION D'UNE BRANCHE DE
<                    L'OVERLAY DE 'GE'.
<
<
         PAGE
         IF          IGE,X100,X100,
<
<
<        C O N S T A N T E S   D E   L ' I T E M  :
<
<
LTN:     VAL         '52             < LONGUEUR DE L'EN-TETE DE L'ITEM.
LTNI:    VAL         '561            < LONGUEUR TOTALE D'UN ITEM
                                     < (EN-TETE+CORPS).
PILE:    VAL         'FF0-6          < PILE UTILISEE PAR LE SYSTEME
                                     < 'GE' ET PAR LA BRANCHE ' S'
                                     < LORS DES CHARGEMENTS OVERLAY.
NBLIGV:  VAL         35              < NBRE DE LIGNES/PAGE.
NBCARV:  VAL         74              < NBRE DE CARACTERES/LIGNE.
X100:    VAL         0
         PAGE
<
<
<        B U F F E R S  :
<
<
         TABLE
ZERO:    EQU         $               < ZERO RELATIF DU PROGRAMME.
         IF          IGE,,,X100
         DZS         'C              < INTERFACE AVEC CALL
DITEM:   EQU         $
         IF          SOLAR,X200,,X200
         ASCI        "ASMT"
X200:    VAL         0
         IF          SOLAR,,X200,
         ASCI        "ASMS"
X200:    VAL         0
X100:    VAL         0
         IF          IGE,X100,X100,
<
<
<        C H A R G E M E N T   D E S   O V E R L A Y S  :
<
<
         PROG
         DZS         7               < ZONE DE TRANSMISSION DES
                                     < ARGUMENTS DE 'GE'.
<
< ENTRY DE CHARGEMENT :
<
OVL:     EQU         $
<        ON A ICI :
<                    A=@DEMSGN ,
<                    W=@BRANCH.
         SVC         0               < APPEL DU SGN.
         JNE         Z14             < CAS DES ERREURS DE CHARGEMENT.
         BR          5,W             < EN CAS DE CHARGEMENT OK , ON
                                     < PASSE LA MAIN A LA BRANCHE
                                     < CHARGEE.
<
< CAS DES ERREURS DE CHARGEMENT :
<
Z14:     EQU         $
         RSR                         < RETOUR EN ERREUR.
<
<
<        E N - T E T E   D U   P R O C E S S E U R  :
<
<
         TABLE
BRANCH:  EQU         $
         ASCI        " S    "
X100:    VAL         0
         BYTE        '04;'D0
         IF          IGE,X100,X100,
         WORD        '1FE0           < TAILLE EN OCTETS.
X100:    VAL         0
         IF          IGE,,,X100
DBCHIT:  EQU         $
         WORD        SIZE            < TAILLE EN OCTETS
X100:    VAL         0
         WORD        ASM             < ADRESSE DE RUN DE SYMBOL.
         PROG
         IF          IGE,,,X100
         WORD        0               < POUR FAIRE $=$+1.
X100:    VAL         0
         IF          IGE,X100,X100,
         WORD        NBCARV*NBLIGV   < POUR FAIRE $=$+1 , ET AUSSI
                                     < POUR VALIDER LES INDEX D'ACCES
                                     < A L'ITEM1 LORS DE LA SIMULATION
                                     < DE LA LECTURE DES CARTES.
X100:    VAL         0
PSYMB:   EQU         $
         LRP         L
         BR          -2,L            < ENTRY DANS SYMBOL.
<
< BUFFERS DE TRAVAIL DE SYMBOL :
<
         IF          IGE,X100,X100,
         WORD        FINASS          < PERMET D'ABORTER LES ASSEM-
                                     < BLAGES EN ERREUR PAR 'BR 9,W'.
X100:    VAL         0
         IF          IGE,,,X100
ABORT:   WORD        NDS             < LORS DE LA RENCONTRE D'UN
                                     < ERREUR '17' DANS LA VERSION
                                     < PROCESSEUR DE BASE DE CMS4 ,
                                     < ON EDITE LES SYMBOLES NON DEFINIS
                                     < PUIS ON ABORTE L'ASSEMBLEUR.
X100:    VAL         0
ZACQ1:   DZS         9               < BUFFER DE SORTIE DU LISTING.
ZACQ:    DZS         41              < BUFFER D'ENTREE UNE LIGNE
         IF          IGE,,,X100
BUFSGF:  DZS         128             < BUFFER POUR LES FICHIERS
X100:    VAL         0
BUFBIN:  DZS         41              < BUFFER DE SORTIE DU BINAIRE.
         PAGE
<
<
<        C O M M O N   D E   S Y M B O L  :
<
<
         COMMON
COMMUN:  EQU         $+128
         IF          SOLAR,,X200,
<
<
<        C O N S T A N T E S   F L O T T A N T E S  :
<
<
ZCDF:    WORD        0
ACDF:    WORD        CDF
ACOMFL:  WORD        COMFL
CEFLT:   WORD        TFLOAT+1
M3800:   WORD        '3800
ZFLOAT:  DZS         6
AZFL:    WORD        ZFLOAT+1,X
ARETD:   WORD        RETDIR
X200:    VAL         0
<
<
<        R E L A I S   S O U S - P R O G R A M M E S  :
<
<
SORSYM:  WORD        PSOSYM          < SORTIE D'UN SYMBOLE.
CALEX:   WORD        PCALEX          < CALCUL D'UNE EXPRESSION.
MACQ:    WORD        PMACQ           < MODULE D'ACQUISITION.
INSET:   WORD        PINSET          < INSERTION D'UN SYMBOLE DANS LA
                                     < TABLE DES SYMBOLES TSYMB.
RETIQ:   WORD        PRETIQ          < RECHERCHE D'UN SYMBOLE DANS
                                     < LA TABLE DES SYMBOLES TSYMB.
INSDEP:  WORD        PINSDP          < INSERTION DEPLACEMENT DANS TDEP.
RECSEC:  WORD        PRECSC          < RECHERCHE NOM SECTION DANS TSYMB.
TESAT:   WORD        PTESAT          < TEST SATURATION DES TABLES.
VERPA:   WORD        VERPAS          < TEST DEPASSEMENT 32K.
SPTAS:   WORD        PTAS            < TRANSFERT SYMBOLE DANS BUF.
PSORTQ:  WORD        SORTQ           < SORTIE QUADRUPLET IDP.
SPJUMP:  WORD        PJUMP           < VERIFICATION PORTEE DES JUMPS.
CONVER:  WORD        PCONV           < CONVERSION 4 CHIFFRES.
HEXA2:   WORD        PHEXA           < CONVERSION 2 CHIFFRES.
BSUPL:   WORD        SUPL            < TRAITEMENT BITS 9,8,10
SPSAV:   WORD        PSAV            < SAVE POUR LES CAS D'ERREUR.
ASPSO1:  WORD        SPSO1           < SORTIE 1 QUADRUPLET.
ASPSO2:  WORD        SPSO2           < SORTIE 2 QUADRUPLETS.
SORSEC:  WORD        PSORC           < EDITION SECTION COMPLETE.
SYMUL:   WORD        PSYMUL          < RECHERCHE PROCHAIN SYMBOLE
                                     < DE TSYMB.
SORMES:  WORD        PSORM           < SORTIE MESSAGE.
TRASYM:  WORD        PTRAS           < TRANSFERT DE TSYMB DANS SYMBOL.
SPLIST:  WORD        PLIST           < SORTIE LISTING.
SORCLF:  WORD        PSORCL          < SORTIE RC-LF.
SPLIS1:  WORD        PLIS1           < SORTIE LISTING (DZS,EQU).
CONV10:  WORD        PCOV10          < CONVERSION DECIMALE.
PAGE:    WORD        PPAGE           < SAUT DE PAGE.
PAGIN:   WORD        PPAGIN          < PAGINATION.
APAGEN:  WORD        PAGENE          < SORTIE LISTING (DIRECTIVES).
         IF          IGE,X100,X100,
AOVL:    WORD        OVL             < ROUTINE DE CHARGEMENT DES
                                     < OVERLAYS.
ASIMUL:  WORD        SIMUL           < SIMULATION LECTURE DE CARTES
                                     < A PARTIR DE L'ITEM1.
X100:    VAL         0
         PAGE
<
<
<        C O N S T A N T E S   A D R E S S E  :
<
<
AC44:    WORD        C44
ATABLG:  WORD        TABLG,X
ATABTY:  WORD        TABTY,X
ATDEP:   WORD        '8FEF
ATDEP1:  WORD        '8FEE
ATDEP2:  WORD        '8FED
ATABDR:  WORD        TABDIR,X
AZACQ:   WORD        ZACQ,X
AZACQX:  WORD        ZACQ+40,X
         IF          IGE,,,X100
ABFSG0:  WORD        BUFSGF
ABFSGF:  WORD        BUFSGF+1,X
X100:    VAL         0
ABRAN:   WORD        BRAN+2,X
ABASC:   WORD        BASC+1,X
ATABCO:  WORD        FINTAB,X
ATACAT:  WORD        TACAT,X
ATACLE:  WORD        TACLE,X
ATALON:  WORD        TALON,X
ATALIG:  WORD        TALIG,X
ATATYP:  WORD        TATYP,X
ATABRG:  WORD        TABRG,X
ADLAN:   WORD        DEBLAN,X
ATSYMB:  WORD        TOP,X
SYMBIN:  WORD        TABINI,X
INCALE:  WORD        DEBCAL,X
INMACQ:  WORD        DEBMAC,X
ATARUP:  WORD        TARUP,X
ASYMB:   WORD        SYMBOL-1,X
ASYMB1:  WORD        SYMBO1-1,X
ASYMB2:  WORD        SYMBO2-1,X
ATBINF:  WORD        TABINF,X
ATBSUP:  WORD        TABSUP,X
AIGET:   WORD        TABEXT,X
LIMINF:  WORD        ZONBAS,X
LIMSUP:  WORD        ZONBAS+3,X
SECBAS:  WORD        ZONSEC,X
VALBAS:  WORD        ZONBAS+6,X
LIMIN1:  WORD        ZONBA1,X
LIMSU1:  WORD        ZONBA1+2,X
SECBA1:  WORD        ZONSEC+3,X
VALBA1:  WORD        ZONBA1+4,X
ASAVE:   WORD        DEBSAV,X
ADINI:   WORD        DEBIN,X
AREST:   WORD        DEBRES,X
ABUF:    WORD        BUF+2,X
ABUFBN:  WORD        BUFBIN+1,X      < +1 A CAUSE DE L'INTERFACE SGF.
ACARSP:  WORD        CARSP+1,X
ACOT:    WORD        COTROU
AFINF:   WORD        FINFRA
ATESTF:  WORD        TESTF
ANOCON:  WORD        NOCONF
ADEP:    WORD        DEPART
BRAN:    WORD        PADIF
RETER:   WORD        DIESE
         WORD        PADET
ASORLI:  WORD        SORLIS
         WORD        DOLLAR
         IF          SOLAR,,X200,
RETEQ1:  WORD        RETEQ-1
X200:    VAL         0
ZACQ10:  WORD        ZACQ1+0
ZACQ11:  WORD        ZACQ1+1
ZACQ12:  WORD        ZACQ1+2
ZACQ13:  WORD        ZACQ1+3
ZACQ14:  WORD        ZACQ1+4
ZACQ15:  WORD        ZACQ1+5
ZACQ16:  WORD        ZACQ1+6
ZACQ17:  WORD        ZACQ1+7
ZACQ18:  WORD        ZACQ-1
         IF          IGE,X100,X100,
ZBO:     VAL         '1000           < ADRESSE D'IMPLANTATION DU
                                     < BINAIRE EN MEMOIRE (DANS LES
                                     < 4 DERNIERS K MEMOIRE).
AI1:     WORD        ZERO+PILE-LTNI+LTN+ZBO,X
                                     < ADRESSE DE L'ITEM1 TRANSLATE
                                     < AU BOUT DES 8K MOTS ; ON Y
                                     < TROUVE LE SYMBOLIQUE A ASSEMBLER.
ABO:     WORD        ZBO             < RELAI COURANT VERS LE BINAIRE
                                     < ON L'UTILISE EN SIMULATION
                                     < DE FICHIER SEQUENTIEL.
IAI1:    WORD        0               < INDEX COURANT VERS L'ITEM1
                                     < (TEXTE SOURCE A ASSEMBLER).
APILE:   WORD        PILE-1          < POUR LA REINITIALISATION DE
                                     < K LORS DU CHARGEMENT DES OVERLAY.
X100:    VAL         0
         PAGE
<
< DEFINITION DU NVP DE SORTIE IMPLICITE :
<
         IF          IGE,,,X100
NVPO:    VAL         '0402           < VALEUR IMPLICITE SI 'SYMBOL'.
KNVPO:   VAL         0
X100:    VAL         0
         IF          IGE,X100,X100,
NVPO:    VAL         '0202           < VALEUR IMPLICITE SI ' S'.
KNVPO:   VAL         'B-2*'100       < DE FACON A PASSER SUR NVP='B.
X100:    VAL         0
<
<
<        Z O N E   D E   T R A V A I L  :
<
<
IOCB4:   WORD        NVPO+KNVPO      < SORTIE DU LISTING.
         WORD        ZACQ1-ZERO*2
         WORD        0
DEBCAL:  EQU         $-1             < ZONE INITIALISEE PAR CALEX.
RANG:    WORD        0
RANG1:   WORD        0
SOM:     WORD        0
NSEC:    WORD        0
INDSEC:  WORD        0
SIGMA:   WORD        0
COMDE:   WORD        0
NIV:     WORD        0
FINCAL:  EQU         $-1
IOCB3:   WORD        NVPO            < SORTIE MESSAGE.
         WORD        0               < @OCTET DE 'SYMBOL'.
DEBMAC:  EQU         $-1             < ZONE INITIALISEE PAR MACQ.
SIGNE:   WORD        0
SIGN1:   WORD        0
ETAT:    WORD        0
LG:      WORD        0
INDICA:  WORD        0
COND:    DZS         2
SYMBOL:  DZS         3
VALEUR:  EQU         SYMBOL
INDHEX:  EQU         SYMBOL+1
CSTE:    EQU         SYMBOL+2
FINMAC:  EQU         $-1
NIVSYM:  WORD        0
CLE:     WORD        0
         IF          IGE,,,X100
IOCB:    WORD        '0101           < ENTREE CARTES SUR NVP=1
         WORD        ZACQ-ZERO*2
         WORD        80
X100:    VAL         0
MOTINF:  WORD        0
MOTSUP:  WORD        0
IOCB1:   WORD        NVPO            < SORTIE CARTE ERRONNEE.
                                     < NVP=4.
         WORD        ZACQ-ZERO*2
         WORD        80
BUF:     DZS         4
IOCB2:   WORD        NVPO            < MESSAGES D'ERREUR.
         WORD        0               < @OCTET DE 'SYMBO2'.
         WORD        22
NELT:    WORD        0
NLIG:    WORD        0
         IF          IGE,,,X100
IOCB5:   WORD        '0302           < SORTIE BINAIRE.
         WORD        BUFBIN-ZERO*2
         WORD        '52
X100:    VAL         0
DEBIN:   EQU         $-1             < DONNEES INITIALISEES AU LANCEMENT.
         DZS         2
DEBSAV:  EQU         $-1             < DONNEES SAUVEGARDEES EN
                                     < DEBUT DE PHRASE.
SECOUR:  WORD        0
PAS:     WORD        0
NSYMB:   WORD        0
NDEP:    WORD        0
ETATS:   WORD        0
         IF          SOLAR,,X200,
SECMAX:  WORD        0
X200:    VAL         0
FINSAV:  EQU         $-1
INDEND:  WORD        0
ZONSEC:  EQU         $-1
         DZS         5               < NUMEROS SECTIONS POINTEES
                                     < PAR BASES.
LIST2:   WORD        0
CHECK:   WORD        0
SYMBO1:  DZS         3
NACQ1:   WORD        0
INDO:    WORD        0
LIMSU2:  WORD        0
SAUVPA:  WORD        0
DEBSEC:  WORD        0
FINSEC:  WORD        0
INDZS:   WORD        0
BASCUL:  WORD        0
NBLIG:   WORD        0
SITUAT:  WORD        0
DEPLA2:  WORD        0
IBUFBN:  WORD        0
SYMBO2:  DZS         3
FININ:   EQU         $-1
         WORD        '2B
         WORD        0
RCLF:    WORD        '0D0A
         ASCI        "ERA "
         IF          SOLAR,X200,,X200
ZTR:     WORD        '28
X200:    VAL         0
         IF          SOLAR,,X200,
ZTR:     WORD        0
X200:    VAL         0
RC:      WORD        '0D00
LF:      WORD        '0A00
LIBSEC:  ASCI        "SEC "
MOTEST:  WORD        '09A0
OUVR:    WORD        '2028           < '('.
FERM:    WORD        '2920           < ')'.
CARSP:   WORD        'A0A5
         WORD        "  "
         WORD        'A0AA
M10:     WORD        10
         IF          SOLAR,X200,,X200
         WORD        0
X200:    VAL         0
SAUPAG:  WORD        '0D50
M3277:   WORD        3277
IOCB6:   WORD        0
         IF          IGE,,,X100
IOCB7:   WORD        0
X100:    VAL         0
         IF          IGE,X100,X100,
IOCB7:   WORD        '0205+KNVPO     < PAGE SERA EN FAIT UN EFFACEMENT
                                     < DE L'ECRAN DE LA VISU.
X100:    VAL         0
DEBLAN:  EQU         $-1             < DONNEES INITIALISEES EN
                                     < DEBUT DE CARTE.
INBRE:   WORD        0
SINGER:  WORD        0
VALDIR:  WORD        0
NR:      WORD        0
SIGNIF:  EQU         $
TRANS:   WORD        0
INDASC:  WORD        0
MOT1:    WORD        0
PVIR:    WORD        0
MOT2:    WORD        0
ETAPH:   WORD        0
BINARY:  WORD        0
NACQ:    WORD        0
CARLU:   WORD        0
INDREG:  WORD        0
NREG:    WORD        0
NETIQ:   WORD        0
INBYTE:  WORD        0
MOBYTE:  WORD        0
         IF          SOLAR,,X200,
INACTD:  WORD        0
INFL:    WORD        0
X200:    VAL         0
FINLAN:  EQU         $-1
         IF          SOLAR,X200,,X200
KSTORE:  EQU         $-1
         DZS         17              < PILE DE SYMBOL.
X200:    VAL         0
         IF          SOLAR,,X200,
KSTOR:   WORD        AKSTOR
KSTOR3:  WORD        AKSTOR+3
KSTOR4:  WORD        AKSTOR+4
X200:    VAL         0
         IF          SOLAR,X200,,X200
DEMMEM:  WORD        '0004           < CETTE DEMANDE D'ALLOCATION
                                     < 8K MEMOIRE N'EST UTILISEE QUE
                                     < PAR LA VERSION BATCH (CR+LP)
                                     < DE SYMBOL ; DANS TOUS LES CAS
                                     < ELLE EST RECOUVERTE PAR LA
                                     < PILE AU COURS DE L'ASSEMBLAGE.
         WORD        0
         WORD        '4000           < DEMANDE DE 8K MOTS.
X200:    VAL         0
DEBRES:  EQU         $-1
         DZS         FINSAV-DEBSAV   < ZONE DE SAUVEGARDE.
         IF          IGE,,,X100
OPNBO:   WORD        '0304           < OPEN-NEW ENREGISTREMENT.
         WORD        1               < CLEF=1.0.
         WORD        0
X100:    VAL         0
CCI:     WORD        '0001           < APPEL DU CCI.
         IF          IGE,X100,X100,
DEMSGN:  WORD        '0602           < DEMANDE 'LOAD SOUS :SYS' AU SGN.
         WORD        0               < ADRESSE DE LA 2EME BRANCHE
                                     < D'OVERLAY (' Z') , INITIALISEE
                                     < LORS DE LA GENERATION.
         WORD        ZERO-BRANCH+PILE-LTNI-LTNI*2
         WORD        -1
X100:    VAL         0
         PAGE
<
<
<        A D R E S S E S   D ' E R R E U R S  :
<
<
MERR:    WORD        ERR
< 0      ERREUR DE PARITE (SUPPRIMEE) . UTILISEE DANS LA VERSION ' S'
<          1- CARTE AYANT PLUS DE 80 CARACTERES
<          2- CARTE 'END' ABSENTE DE L'ITEM1
<          3- BINAIRE OVERFLOW.
< 1      ERREUR D'ECRITURE.
< 2      ERREUR DANS UNE EXPRESSION.
< 3      ETIQUETTE INTERDITE OU MANQUANTE.
< 4      SYMBOLE INCORRECT.
< 5      EXPRESSION INTERDITE.
< 6      EXPRESSION NON DEFINIE.
< 7      DEPLACEMENT HORS-LIMITES.
< 8      DOUBLE DEFINITION.
< 9      SATURATION DES TABLES.
< 10     CHAINAGE INCORRECT
< 11     ADRESSE INACCESSIBLE.
< 12     PASSAGE DU $ AU-DELA DE 32K.
< 13     CONTEXTE IMPROPRE.
< 14     ADRESSE <0 OU >32K.
< 15     LIMITE DE SECTION 'PROG' NON ATTEINTE.
< 16     ENCHAINEMENT DES SECTIONS INCORRECT.
< 17     SYMBOLE(S) NON DEFINI(S) LORS DE LA RENCONTRE DU 'END'.
<
< OPERATIONS SUR FICHIER D'ENTREE
<
         IF          IGE,,,X100
OPEN5O:  WORD        '0505           < OPEN 5 OLD
         WORD        2               < CLE 2.0
         WORD        0
CLOS5S:  WORD        '0507           < CLOSE 5 SAVE
         WORD        2
         WORD        0
AEOT:    WORD        EOT
AECHO:   WORD        ECHO
LCNF:    WORD        SPLCNF          < SP DE LECTURE SUR FICHIER
INDIN:   DZS         1               < INDEX DE LECTURE SUR FICHIER
X100:    VAL         0
         IF          SOLAR,,X200,
DEMMEM:  WORD        '0004
         WORD        0
         WORD        '2000
X200:    VAL         0
         IF          IGE,,,X100
PATCH:   VAL         COMMUN+128-$
         DZS         PATCH
X100:    VAL         0
         PAGE
<
<
<        T A B L E   D E   R E C O N N A I S S A N C E
<                    D E S   D I R E C T I V E S  :
<
<
<        FORMAT :
<                      TABCO CONTIENT SUR 1 OU 2 MOTS LES
<                    DIRECTIVES CODEE DE LA FACON SUIVANTE :
<                    BIT0-5(TABCO)=BIT1-7(CARACTERE1) ,
<                    BIT6-10(TABCO)=BIT2-7(CARACTERE2) ,
<                    ( BIT11-15(TABCO)=BIT2-7(CARACTERE3)
<                    ( BIT16-20(TABCO)=BIT2-7(CARACTERE4) ) ).
<
<
TABCO:   EQU         $
         WORD        '3059           < LBY.
         WORD        'CE82;'C800     < STBY.
         WORD        '8E02;'C800     < CPBY.
         IF          SOLAR,X200,,X200
         WORD        '092F           < BIO.
X200:    VAL         0
         IF          SOLAR,,X200,
         WORD        '61A0           < XM.
X200:    VAL         0
         WORD        '0E1A           < CPZ.
         WORD        '0A40           < BR.
         WORD        '0A72           < BSR.
         WORD        '4D2F           < SIO.
         WORD        '4C40           < SB.
         WORD        '0480           < AD.
         WORD        '4E99           < STY.
         WORD        '4E98           < STX.
         WORD        '4E82           < STB.
         WORD        '4E81           < STA.
         WORD        '3600           < MP.
         WORD        '12C0           < DV.
         WORD        '3020           < LA.
         WORD        '3300           < LX.
         WORD        '3E40           < OR.
         WORD        '05C4           < AND.
         WORD        '15F2           < EOR.
         WORD        '0E00           < CP.
         WORD        '3320           < LY.
         WORD        '3040           < LB.
         WORD        '2460           < IC.
         WORD        '1060           < DC.
         WORD        'CA33;'A000     < RQST.
         WORD        'C993;'2800     < RLSE.
         WORD        '0474           < ACT.
         WORD        '3024           < LAD.
         WORD        '4E9A           < STZ.
         WORD        'DC29;'A000     < WAIT.
         WORD        '29B0           < JMP.
         WORD        'A827;'2800     < JAGE.
         WORD        'A82E;'2800     < JANE.
         WORD        '2827           < JAG.
         WORD        '39F0           < NOP.
         WORD        '282C           < JAL.
         WORD        '2825           < JAE.
         WORD        'A82C;'2800     < JALE.
         WORD        '4854           < RBT.
         WORD        '4C54           < SBT.
         WORD        '2454           < IBT.
         WORD        '5054           < TBT.
         WORD        'CD92;'9800     < SLRS.
         WORD        'CD92;'2000     < SLRD.
         WORD        'CD8C;'9800     < SLLS.
         WORD        'CD8C;'2000     < SLLD.
         WORD        'CC72;'9800     < SCRS.
         WORD        'CC72;'2000     < SCRD.
         WORD        'CC6C;'9800     < SCLS.
         WORD        'CC6C;'2000     < SCLD.
         WORD        'CC32;'9800     < SARS.
         WORD        'CC32;'2000     < SARD.
         WORD        '6240           < XR.
         WORD        '3240           < LR.
         WORD        '0492           < ADR.
         WORD        '4C52           < SBR.
         WORD        '3E52           < ORR.
         WORD        '95F2;'9000     < EORR.
         WORD        '85C4;'9000     < ANDR.
         WORD        '8D93;'9000     < CLSR.
         WORD        '8483;'9000     < ADCR.
         WORD        'CC43;'9000     < SBCR.
         WORD        '38F2           < NGR.
         WORD        '8E1A;'9000     < CPZR.
         WORD        '0DB2           < CMR.
         WORD        '0E12           < CPR.
         WORD        'CEE2;'9000     < SWBR.
         WORD        'E12D;'9000     < XIMR.
         WORD        '8492;'8000     < ADRP.
         WORD        '3250           < LRP.
         WORD        '29C3           < JNC.
         WORD        '29D6           < JNV.
         WORD        'A9C3;'B000     < JNCV.
         WORD        0
         WORD        '2860           < JC.
         WORD        '2AC0           < JV.
         WORD        '2876           < JCV.
         WORD        '8492;'4800     < ADRI.
         WORD        '3029           < LAI.
         WORD        '3309           < LXI.
         WORD        '3E49           < ORI.
         WORD        '85C4;'4800     < ANDI.
         WORD        '95F2;'4800     < EORI.
         WORD        '0E09           < CPI.
         WORD        '3329           < LYI.
         WORD        '3049           < LBI.
         WORD        '2938           < JIX.
         WORD        '2898           < JDX.
         WORD        '4272           < PSR.
         WORD        '4192           < PLR.
         WORD        '4EC3           < SVC.
         IF          SOLAR,X200,,X200
         WORD        0
X200:    VAL         0
         IF          SOLAR,,X200,
         WORD        '324D           < LRM.
X200:    VAL         0
         WORD        0
         WORD        '064D           < ARM.
         WORD        '0471           < ACQ.
         WORD        'A02C;'A000     < HALT.
         WORD        '4A72           < RSR.
         WORD        '1054           < DBT.
         WORD        'CE85;'8000     < STEP.
         WORD        '8474;'2000     < ACTD.
         WORD        'C6A9;'A000     < QUIT.
         WORD        '4299           < PTY.
         WORD        '4C79           < SCY.
         WORD        'B5F6;'2800     < MOVE.
         WORD        '4C53           < SBS.
         WORD        'C2B3;'4000     < PUSH.
         WORD        'C2AC;'6000     < PULL.
         WORD        '046B           < ACK.
         WORD        '4A76           < RSV.
         WORD        'C9ED;'1000     < ROMB.
         IF          SOLAR,,X200,
         WORD        '1050           < DBP.
         WORD        '4C50           < SBP.
         WORD        '4850           < RBP.
         WORD        '1134           < DIT.
         WORD        '1534           < EIT.
         WORD        '4E74           < SST.
         WORD        '4A74           < RST.
         WORD        'C888;'B000     < RDHV.
         WORD        '2609           < IPI.
         WORD        'C893;'4800     < RDSI.
         WORD        '3032           < LAR.
         WORD        'C88F;'2800     < RDOE.
         WORD        'B6D4;'6800     < MVTM.
         WORD        'CE81;'9000     < STAR.
         WORD        '5DE5           < WOE.
         WORD        'B6D4;'9800     < MVTS.
X200:    VAL         0
         WORD        '28E5           < JGE.
         WORD        '29C5           < JNE.
         WORD        '28E0           < JG.
         WORD        0
         WORD        '2980           < JL.
         WORD        '28A0           < JE.
         WORD        '2985           < JLE.
         WORD        '8DED;'6BDC     < COMMON.
         WORD        'B1E3;'0B00     < LOCAL.
         WORD        'C24F;'3800     < PROG.
         WORD        'D022;'6140     < TABLE.
         WORD        '9265;'1800     < DSEC.
         WORD        '1714           < EXT.
         WORD        '15D4           < ENT.
         WORD        '5665           < USE.
         WORD        '1274           < DST.
         WORD        '1674           < EST.
         WORD        '3893           < NDS.
         WORD        '15F4           < EOT.
         WORD        '15C4           < END.
         WORD        'C274;'9800     < PSTS.
         WORD        'C274;'4000     < PSTH.
         WORD        '24C0           < IF.
         WORD        '1635           < EQU.
         WORD        '582C           < VAL.
         WORD        '1353           < DZS.
         WORD        '8B34;'2800     < BYTE.
         WORD        '11E0           < DO.
         WORD        'DDF2;'2000     < WORD.
         WORD        '2490           < IDP.
         WORD        '8663;'4800     < ASCI.
         WORD        'C027;'2800     < PAGE.
         IF          SOLAR,,X200,
         WORD        '1984           < FLD.
         WORD        '1824           < FAD.
         WORD        '19B0           < FMP.
         WORD        '1896           < FDV.
         WORD        '1A74           < FST.
         WORD        '1A62           < FSB.
         WORD        '986D;'D000     < FCMZ.
         WORD        '9861;'6800     < FCAM.
         WORD        '99C5;'3800     < FNEG.
         WORD        '9822;'9800     < FABS.
         WORD        '1938           < FIX.
         WORD        '1994           < FLT.
         WORD        'B9F2;'6800     < NORM.
         WORD        '9861;'D000     < FCAZ.
         WORD        '998F;'0D00     < FLOAT.
X200:    VAL         0
FINTAB:  EQU         $
BASC:    EQU         $
         WORD        '0101           < ENTREE CARTE SUR NVP=1
         WORD        '0101           < ENTREE CARTE SUR NVP=1
TACAT:   BYTE        32;4;1;3;14;8;2;1;1;3;3;7
         IF          SOLAR,X200,,X200
         BYTE        1;8;2;2;1;3;16;5
         BYTE        1;1;1;1;1;2;1;1;1;1
         BYTE        1;4;1;2
X200:    VAL         0
         IF          SOLAR,,X200,
         BYTE        1;8;2;2;1;1;2;5;1;26;5;1
         BYTE        1;1;1;1;2;1;1;1;1;1
         BYTE        4;1;2
X200:    VAL         0
TALON:   BYTE        0;'21;3;'21;'22;5;6;5;6;5
         IF          SOLAR,X200,,X200
         BYTE        6;'21;'C4;'87;'21;'31;'A7;'62;3;'2E
         BYTE        '90;'B0;'CB;'12;'E;3;'EC;'67;'E7;7
         BYTE        '61;'47;'48;3
X200:    VAL         0
         IF          SOLAR,,X200,
         BYTE        6;'21;'C4;'87;'21;'31;'A7;'31;'62;3;'22;3
         BYTE        '2E;'90;'B0;'CB;'12;'E;3;'EC;'67;'E7
         BYTE        7;'61;'47;'48;3
X200:    VAL         0
TALIG:   WORD        'A202;'1200;'8A01;'0200
         WORD        'C200;'4201;'4200;'8200
         WORD        '8202;'1201;'0A00;'2201
         WORD        '1202;'0200;'0602;'0200
         WORD        '1204;'4204;'0600
TABINI:  WORD        '8000;0
         WORD        6;0;"OF";'C600
TABINF:  WORD        -256;-128;0
TABSUP:  WORD        7;31;127;255
TACLE:   WORD        '3030;'0AC9;'0002;'0853
         WORD        '001C;'005D;'8036;'0047
TABRG:   WORD        '2041;'4258;'5943;'4C57
         WORD        '4B00
TATYP:   WORD        EXPA
         WORD        REGIS
         WORD        BASE
         WORD        EXPT
         WORD        INDEX
         WORD        NOMSEC
TABEXT:  WORD        REFMEM
         WORD        JUMP
         WORD        WORD
         WORD        EQU
         WORD        EXT
         WORD        ENT
         WORD        USE
         WORD        END
TABLG:   BYTE        0;64;61;59;58;48;47;46;45;44
         BYTE        42;35;34;33;32;27;1
TABTY:   BYTE        0;7;0;6;4;2;7;2;3;2
         BYTE        7;1;7;3;7;5;7
TARUP:   WORD        FINPH
         WORD        CHAIN
         WORD        CSIGNE
         WORD        NEWCAR
         WORD        DECIM
         WORD        SUILT
         WORD        EMACQ
         WORD        EMACQ
         WORD        FSUILT
         WORD        EMACQ
         WORD        FSUILT
         WORD        FSUIL1
         WORD        SUILT1
         WORD        SUILT
         WORD        ETIQ
         WORD        EMACQ
         WORD        FNBRE
         WORD        EMACQ
         WORD        FNBRE
         WORD        FNBR1
         WORD        CNBRE
         WORD        CNBR1
         WORD        EMACQ
         WORD        EMACQ
         WORD        EXCLAM
         WORD        FCHAIN
TABDIR:  EQU         $-1
         WORD        COMMON
         WORD        LOCAL
         WORD        PROG
         WORD        TABLE
         WORD        DSEC
         WORD        EXT1
         WORD        ENT1
         WORD        USE1
         WORD        DST
         WORD        EST
         WORD        NDS
         WORD        EOT
         WORD        END1
         WORD        PSTS
         WORD        PSTH
         WORD        0               < LIMITE DIRECTIVES ETIQUETABLES.
         WORD        EQU1
         WORD        VAL
         WORD        DZS
         WORD        BYTE
         WORD        DO
         WORD        WORD1
         WORD        IDP
         WORD        ASCI
ZONBAS:  EQU         $-1
         DZS         9
ZONBA1:  EQU         $-1
         DZS         6
         IF          SOLAR,,X200,
AKSTOR:  EQU         $-1
         DZS         100
X200:    VAL         0
         PAGE
<
<
<        S Y M B O L E S   A B S O L U S  :
<
<
LGLAN:   VAL         FINLAN-DEBLAN   < LONGUEUR ZONE A INITIALISER
                                     < PAR CARTE.
LGINI:   VAL         FININ-DEBIN     < LONGUEUR DE LA ZONE A INITIALISER
                                     < AU LANCEMENT DE SYMBOL.
LCALEX:  VAL         FINCAL-DEBCAL
LMACQ:   VAL         FINMAC-DEBMAC
LTABCO:  VAL         FINTAB-TABCO    < LONGUEUR TABLE DES CODES
                                     < OPERATION.
LTABTY:  VAL         16
LTSYMB:  VAL         6
LSAV:    VAL         FINSAV-DEBSAV   < LONGUEUR ZONE SAUVEGARDEE.
         PAGE
<
<
<        A S S E M B L E U R   S Y M B O L  :
<
<
<                    NVP=3 : SORTIE DU BINAIRE ,
<                    NVP=4 : SORTIE LISTING ET MESSAGES ,
<                    NVP=B : SORTIE LISTING SOUS ' S' ,
<                    NVP=1 : ENTREE CARTES.
<                    NVP=5 : ENTREE CARTES EN BASCULE AVEC 1 SUR EOT
<        NOTA :
<                      DANS LE CAS DE LA VERSION ' S' ,
<                    L'ENTREE DES CARTES EST SIMULEE A
<                    L'AIDE DE L'ITEM1 TRANSLATE EN FOND
<                    DES 8K MEMOIRE ; LES DELIMITEUR DE CARTE
<                    UTILISE EST '#' ; LE BINAIRE EST STOCKE EN
<                    SIMULATION DE FICHIER SEQUENTIEL ,
<                    EN DEBUT DES 4 DERNIERS K MEMOIRE.
<
<
         PROG        MAIN
         WORD        COMMUN
ASM:     EQU         $
         LRP         C
         LY          -1,C
         LR          Y,C
         IF          IGE,X100,X100,
<
< CHARGEMENT DE LA 2EME BRANCHE DE L'OVERLAY (' Z') :
<
         LAD         DEMSGN
         QUIT                        < APPEL DU SGN SANS UTILISER
                                     < LA PILE K (NON ENCORE INITIALI-
                                     < SEE).
         JE          Z24             < CHARGEMENT OK.
         LAD         CCI
         QUIT                        < EN CAS D'ERREUR AU CHARGEMENT ,
         JMP         $-1             < ON FAIT UN RETOUR DEFINITIF
                                     < AU CCI.
Z24:     EQU         $
X100:    VAL         0
         IF          SOLAR,,X200,
         LB          KSTOR
         LR          B,K             < INITIALISATION DE LA PILE K.
X200:    VAL         0
         LXI         LGINI           < INITIALISATION DE SYMBOL.
         STZ         &ADINI
         JDX         $-1
         IF          SOLAR,,X200,
         IC          NBLIG
X200:    VAL         0
         STZ         LIST2
         LYI         LTSYMB
         STY         NSYMB
         LXI         -1              < INITIALISATION DE TSYMB.
C1:      EQU         $
         ADRI        1,X
         LBY         &SYMBIN
         STBY        &ATSYMB
         CPI         'FF
         JNE         C1
SURCH:   EQU         $
         IF          SOLAR,X200,,X200
         LAD         KSTORE
         LR          A,K             < INITIALISATION DE K.
X200:    VAL         0
         BSR         PAGE            < SAUT DE PAGE !?!!!!?!?!
         IF          IGE,,,X100
<
< TEST D'ASSIGNATION DES NVP 4 & 5 :
<
         LYI         '81             < POUR TEST 'NVP NON ASSIGNE'.
         LBI         'F              < 'F EST UNE FONCTION INEXISTANTE.
         SBT         5+16            < NVP=4.
         STB         IOCB6
         LAD         IOCB6
         SVC         0               < TEST D'ASSIGNATION DU NVP=4.
         CPR         X,Y             < TEST DES CONDITIONS DE RETOUR.
         JNE         Z3              < OK , NVP=4 ASSIGNE.
<
< SI NVP=4 NON ASSIGNE , ON PREND NVP=2 POUR OUT :
<
         LAI         2               < NVP=2=OUT.
         STBY        IOCB1
         STBY        IOCB2
         STBY        IOCB3
         STBY        IOCB4
         LAD         IOCB6           < RESTAURE A=@IOCB6.
Z3:      EQU         $
         IF          IGE,,,X100
         SBT         7+16            < NVP=5.
         STB         IOCB6
         SVC         0               < TEST D'ASSIGNATION DU NVP=5.
         CPR         X,Y             < TEST DES CONDITIONS DE RETOUR.
         JE          Z2              < NVP=K NON ASSIGNE
<
< DANS LE CAS NVP=K, ON OUVRE LE FICHIER CORRESPONDANT EN OLD (CLE 2.0)
<
         STZ         INDIN           < OBLIGER LA LECTURE SUR FICHIER
         LXI         0
         LAI         'FF
         STBY        &ABFSGF
         LAD         OPEN5O          < OPEN 5 OLD
         SVC         0
         JE          Z2
         LAD         CCI             < ERREUR
         SVC         0
         JMP         $-1
Z2:      EQU         $
X100:    VAL         0
<
< OUVERTURE EN MODE NEW DU FICHIER BINAIRE :
<
         LAD         OPNBO
         SVC         0
         JE          Z1              < L'OUVERTURE S'EST FAITE EN
                                     < NEW AVEC LA CLEF 1.0.
         CPR         X,Y
         JE          Z1              < NVP=3=BO N'EST PAS ASSIGNE
                                     < MAIS ON ASSEMBLE MALGRE TOUT.
         LAD         CCI
         SVC         0               < ABORT DE L'ASSEMBLAGE DANS LE CAS
                                     < D'UNE OUVERTURE IMPOSSIBLE.
         JMP         $-1             < CAS D'UN !GO.
Z1:      EQU         $
<
< TEST DE FONCTIONNEMENT EN BATCH :
<
         LB          IOCB            < ACCES A LA DEMANDE D'ENTREE
                                     < DES LIGNES A ASSEMBLER.
         ADRI        9,B             < ON LA FAIT PASSER DE LA FONCTION
                                     < '01 A LA FONCTION '0A :
                                     < SUR CR : LA FONCTION '0A EST
                                     <          INEXISTANTE (ERREUR
                                     <          '11) ,
                                     < SUR VISU : LA FONCTION '0A
                                     <            (=ECRITURE GRAPHIQUE)
                                     <            EST INACCESSIBLE A
                                     <            A L'INSTANT (ERREUR
                                     <            '03).
         STB         IOCB
         LAD         IOCB
         SVC         0               < ENVOI DE LA FONCTION '0A SUR
                                     < LE NVP D'ENTREE DES LIGNES.
         LR          X,A             < A=CODE ERREUR.
         CPI         '03             < EST-CE FONCTION INACCESSIBLE ???
         JE          Z100            < OUI , C'EST DONC UN ASSEMBLAGE
                                     < DU TEMPS PARTAGE ...
         LAI         2-SOLAR*80      < SINON , C'EST UN ASSEMBLAGE
                                     < DU BATCH.
         STA         IOCB+2          < ON DOUBLE LE COMPTE OCTETS DE
                                     < LA DEMANDE D'ENTREE , AFIN DE
                                     < BLOQUER LE SWAPPING OUT PENDANT
                                     < LA LECTURE DES CARTES !!!!
         ADRI        -1,B            < AFIN DE METTRE LA FONCTION 0
                                     < DANS IOCB CE QUI EVITERA QUE
                                     < LE HANDLER LECTEUR DE CARTES
                                     < NE FASSE SON PROPRE ECHO DE
                                     < LA CARTE LUE.
         IF          IGE,,,X100
         LAI         1               < NOP SUR REMISE ECHO
         STA         AECHO
X100:    VAL         0
         IF          SOLAR,X200,,X200
<
< PASSAGE A 8K MOTS DE MEMOIRE :
<
         LA          ATDEP
         SBT         3               < TRANSLATION DU SOMMET DES
                                     < TABLES DE TRAVAIL . (+4K MOTS).
         STA         ATDEP
         ADRI        -1,A
         STA         ATDEP1
         ADRI        -1,A
         STA         ATDEP2
         LAD         DEMMEM
         SVC         0               < PASSAGE DE 4K A 8K MOTS.
X200:    VAL         0
Z100:    EQU         $
         ADRI        -9,B
         STB         IOCB            < RESTAURE LA DEMANDE IN SUR
                                     < LA FONCTION '01.
X100:    VAL         0
<
< MISE EN @OCTET DES @ DE SYMBOL ET SYMBO2 :
<
         LAD         SYMBOL
         SLLS        1
         STA         IOCB3+1         < POSITIONNEMENT @OCTET DU BUFFER.
         LAD         SYMBO2
         SLLS        1
         STA         IOCB2+1         < POSITIONNEMENT @OCTET DU BUFFER.
         STZ         IBUFBN
         LAI         'A3             < DECLARATION DE BINAIRE
                                     < TRANSLATABLE ASSEMBLEUR.
         LBI         0
         BSR         ASPSO1
         STZ         INDEND
         LXI         -1
         IF          SOLAR,X200,,X200
         JMP         C4              < VERS LA LECTURE D'UNE CARTE.
X200:    VAL         0
         IF          SOLAR,,X200,
         JMP         C5              < ET C'EST PARTI ...
X200:    VAL         0
DEPART:  EQU         $
         LXI         LGLAN
         STZ         &ADLAN
         JDX         $-1
         IF          IGE,,,X100
         LA          IOCB2
         STA         IOCB3
X100:    VAL         0
         IF          SOLAR,X200,,X200
         LAD         KSTORE
         LR          A,K
X200:    VAL         0
         IF          SOLAR,,X200,
         LA          KSTOR
         LR          A,K             < INITIALISATION DE LA PILE K.
X200:    VAL         0
         IC          DEPLA2
         IC          NLIG
SVCTAP:  EQU         $
         BSR         SPSAV
         CPZ         INDO
         JE          NEWASK
         DC          INDO            < TRAITEMENT 'DO' EN COURS.
         JMP         Z20
NEWASK:  EQU         $
         IF          IGE,,,X100
         BSR         LCNF
         JAE         Z20
         BR          AEOT
X100:    VAL         0
         IF          IGE,X100,X100,
         BSR         ASIMUL          < SIMULATION 'LECTURE CARTE'
                                     < DANS L'ITEM1.
X100:    VAL         0
Z20:     EQU         $
         LXI         79              < ELIMINER LES BLANCS
C1200:   EQU         $
         LBY         &AZACQ
         ORI         '20
         CPI         '20
         JNE         C1201
         JDX         C1200
C1201:   EQU         $
         ADRI        1,X
         LAI         '0D             < RETOUR-CHARIOT.
         STBY        &AZACQ          < QUE L'ON MET EN BOUT DE CARTE.
         ADRI        1,X
         LAI         '0A
         STBY        &AZACQ
         LXI         -18             < NETTOYAGE ZONE LISTING (ZACQ1).
         LAI         '20
         STBY        &AZACQ
         JIX         $-1
         LYI         0               < NETTOYAGE DU BUFFER.
         LXI         -1
C2:      EQU         $
         ADRI        1,X
CARAC:   EQU         $
         XR          X,Y
         LBY         &AZACQ
         XR          X,Y
         ADRI        1,Y
         CPI         '0A
         JE          CARAC           < LES LF SONT IGNORES.
         STBY        &AZACQ
         CPI         '0D
         JE          RETURN
         CPI         '04
         JNE         C2              < FIN DE CARTE ( R / C ) NON TROUVE.
RETURN:  EQU         $
         LAI         '0D
         STBY        &AZACQ
         ADRI        1,X
         LAI         '0A
         STBY        &AZACQ
         ADRI        1,Y
         STY         IOCB1+2         < LONGUEUR NOUVELLE LIGNE.
         IF          SOLAR,X200,,X200
         ADRI        19,X
         STX         IOCB4+2
X200:    VAL         0
         IF          SOLAR,,X200,
         ADRI        1,X
         STX         IOCB1+2
         ADRI        18,X
         STX         IOCB4+2
X200:    VAL         0
         BSR         MACQ
         CPI         2
         JG          BERA1           < 1ER ELEMENT INCORRECT.
         CPZ         SYMBO1
         JE          NELIM
         CPI         -1
         JNE         ETIQET          < TRAITEMENT 'IF' EN COURS.
         CPZ         BASCUL
         JE          ETIQET
NELIM:   EQU         $
         LR          A,X
         BR          &ABRAN
DOLLAR:  EQU         $               < COMPTEUR D'ASSEMBLAGE.
         IC          ETAPH
         JMP         C11
DIESE:   EQU         $               < BASCULEMENT DES NVP D'ENTREE.
         CPZ         BASCUL
         JL          C4
         BSR         SORCLF
         LAD         IOCB1           < EDITION DE LA CARTE CONTENUE D
                                     < DANS ZACQ.
         SVC         0
C4:      EQU         $
         LX          BASCUL
C5:      EQU         $
         CMR         X,X
         STX         BASCUL
         STZ         INDO
         JMP         DEPART
ETIQET:  EQU         $               < TRAITEMENT 'IF'.
         IF          SOLAR,,X200,
         PSR         A,X,Y
         LXI         -18             < METTRE DES "-"
         LAI         "-"
         STBY        &AZACQ
         JIX         $-1
         LY          IOCB4+2         < DECALER LA LIGNE
         LAI         18
         STA         IOCB4+2
         LAD         IOCB4
         SVC         0
         STY         IOCB4+2
         LXI         -18             < REMETTRE DES BLANCS
         LAI         '20
         STBY        &AZACQ
         JIX         $-1
         LAD         IOCB4
         SVC         0               < EDITION DES CARTES RENCONTREES
                                     < DANS UNE SEQUENCE 'IF' , MAIS
                                     < A T T E N T I O N : LA CARTE
                                     < CONTENANT L'ETIQUETTE CHERCHEE
                                     < SERA EDITEE 2 FOIS ....
         BSR         PAGIN
         PLR         A,X,Y
X200:    VAL         0
         JAE         PADET
         CPI         -2
         JNE         DEPART
         LXI         3               < ETIQUETTE A VERIFIER.
C6:      EQU         $
         LA          &ASYMB
         CP          &ASYMB1
         JNE         DEPART          < ETIQUETTE RECHERCHEE NON TROUVEE.
         JDX         C6
         STZ         SYMBO1
PADIF:   EQU         $
         LXI         3               < MEMORISATION DERNIER SYMBOLE.
C7:      EQU         $
         LA          &ASYMB
         STA         &ASYMB2
         JDX         C7
         STZ         DEPLA2
         CPZ         INDO
         JNE         BERA3           < ETIQUETTE INTERDITE APRE DO.
         BSR         RETIQ
         CPZ         LIST2
         JG          JUSTIN          < SECOND PASSAGE.
         JAE         C10             < N'APPARTIENT PAS A TSYMB.
         TBT         10
         JC          FALSE           < SYMBOLE DEJA DEFINI EXTERNE.
         TBT         8
         JC          JUSTIN          < PAS ENCORE DEFINI.
         TBT         9
         JC          C9
         LAI         8               < SYMBOLE NON ABSOLU.
         BR          MERR
C9:      EQU         $
         DC          ETAPH
         JMP         JUSTIN
C10:     EQU         $
         BSR         INSET
JUSTIN:  EQU         $
         LA          NIVSYM          < SAUVEGARDE NIVEAU SYMBOLE.
         STA         NETIQ
C11:     EQU         $
         BSR         MACQ
         JANE        BERA1           < PAS DE MOT CLE DANS LA CARTE.
PADET:   EQU         $
         CPZ         INDICA
         JNE         BERA1           < PAS DE MOT CLE DANS LA CARTE.
         LXI         -LTABCO         < RECHERCHE CLE DANS TABCO.
         EORR        W,W             < W=0.
AVANT1:  EQU         $
         LBI         0
         LA          &ATABCO
         EOR         COND
         SLRD        15
         JAE         C12
         ADRI        1,X
         LA          &ATABCO
C12:     EQU         $
         EOR         COND+1
         ORR         B,A
         JAE         COTROU          < MOT CLE TROUVE.
         ADRI        1,W
         JIX         AVANT1
BERA1:   EQU         $               < PAS DE MOT CLE DANS LA CARTE.
         LAI         1
         BR          MERR
DIRECT:  EQU         $               < DIRECTIVES.
         ADRI        -118,A
         IF          SOLAR,,X200,
         ADRI        -16,A           < LE REPERTOIRE SOLAR 16.65
                                     < EST PLUS ETENDU QUE CELUI
                                     < DU PAUVRE T1600.
X200:    VAL         0
         STA         VALDIR
         ADRI        -7,W
         CPZ         ETAPH
         JE          C14
         JG          C13
         ADRI        -1,A            < ETAPH=-1 : TEST SI A=18.
C13:     EQU         $
         ADRI        -17,A           < ETAPH=1 : TEST SI A=17.
         JANE        C20
C14:     EQU         $
         LA          VALDIR
         CPI         16
         JG          C15
         CPZ         NETIQ
         JE          C15
BERA3:   EQU         $               < ETIQUETTE INTERDITE SUR DIRECTIVE
         LAI         3
         BR          MERR
C15:     EQU         $
         ADRI        -23,A
         JAL         MOTCLE
         CPI         2
         JNE         C16
         BSR         PAGE            < DIRECTIVE 'PAGE'.
         BR          ADEP
C16:     EQU         $
         IC          INDASC          < DIRECTIVES 'ASCI' ET 'IDP'.
         BSR         MACQ
         CPI         4
         JE          MOTCLE
         JMP         BERA1           < CE N'EST PAS UNE CHAINE DE
                                     < CARACTERES.
COTROU:  EQU         $
         LR          W,A
         PSR         W               < SAUVEGARDE W(WORD+BYTE).
         CPZ         SYMBO1
         JE          C17
         IF          SOLAR,X200,,X200
         CPI         130             < TRAITEMENT 'IF' EN COURS ??
X200:    VAL         0
         IF          SOLAR,,X200,
         CPI         146             < TRAITEMENT IF EN COURS.
X200:    VAL         0
         JE          DIRECT          < DIRECTIVE 'EOT'.
         IF          SOLAR,X200,,X200
         CPI         131
X200:    VAL         0
         IF          SOLAR,,X200,
         CPI         147
X200:    VAL         0
         JE          DIRECT          < DIRECTIVE 'END'.
BRADEP:  EQU         $
         BR          ADEP
         IF          SOLAR,X200,,X200
C17:     EQU         $
         CPI         118
         JG          DIRECT
X200:    VAL         0
         IF          SOLAR,,X200,
C17:     EQU         $
         CPI         174
         JNE         C18
         DC          VALDIR
         BR          ARETD           < DIRECTIVE 'FLOAT'.
C18:     EQU         $
         CPI         134
         JLE         C19
         CPI         160
         JL          DIRECT
         IC          INFL
C19:     EQU         $
X200:    VAL         0
         CPZ         ETAPH           < INSTRUCTIONS T1600.
         JE          C21
C20:     EQU         $
         JG          BERA1           < $ DEVANT UN AUTRE MOT CLE
                                     < QUE 'EQU'.
FALSE:   EQU         $               < SYMBOLE INCORRECT.
         LAI         4
         BR          MERR
C21:     EQU         $
         IF          SOLAR,,X200,
         CPI         101
         JNE         C22
         IC          INACTD          < ACTD.
C22:     EQU         $
X200:    VAL         0
         CPZ         SITUAT
         JL          C23
         LAI         13              < INSTRUCTIONS RENCONTREES HORS
         BR          MERR            < D'UNE SECTION 'PROG'.
C23:     EQU         $
         IF          SOLAR,X200,,X200
         ADRI        -111,A
         JALE        C24
         ADRI        -40,W
         JMP         CLASS2
C24:     EQU         $
         ADRI        15,A
X200:    VAL         0
         IF          SOLAR,,X200,
         ADRI        -127,A
         CPI         33
         JL          CEPAF
         ADRI        -33,A           < CAS DES CODES FLOTTANTS.
         CPI         8
         JGE         C25
         SLLS        1               < CAS OU IL Y A OPERANDE.
         EORR        W,W             < W=0.
         JMP         CLASS2
C25:     EQU         $
         ADRI        -8,A            < CAS OU IL N'Y A PAS D'OPERANDE.
         SLLS        11
         LBI         96
         LR          B,W
         JMP         C27
CEPAF:   EQU         $
         JALE        C26
         ADRI        -56,W
         JMP         CLASS2
C26:     EQU         $
         ADRI        31,A
X200:    VAL         0
         JAGE        CLASS4
         ADRI        16,A
         JAGE        CLASS3
         ADRI        9,A
         JAG         CLASS2
         ADRI        31,A
         JAGE        CLASS1
         ADRI        40,A            < 'LBY' A 'JALE'.
         JMP         CLASS2
CLASS1:  EQU         $               < 'RBT' A 'LRP'.
         ORI         'A0
         SLLS        6
         JMP         C27
CLASS3:  EQU         $               < 'LAI' A 'ARM'.
         ORI         '10
         JMP         CLASS2
CLASS4:  EQU         $               < 'ACQ' A 'ROMB'.
         SLLS        8
         ORI         '1E
CLASS2:  EQU         $               < 'JNC' A 'ADRI' , 'JGE' A 'JLE'.
         SCLS        8
C27:     EQU         $
         STA         BINARY
MOTCLE:  EQU         $               < RECHERCHE TYPE DANS TACAT.
         LXI         0
C28:     EQU         $
         LBY         &ATACAT
         SBR         A,W
         CPZR        W
         JL          C29             < TROUVE.
         ADRI        1,X
         JMP         C28
C29:     EQU         $
         LBY         &ATALON
         ANDI        '1F
         STA         NLIG            < NUMERO DE LIGNE DANS NLIG.
         LBY         &ATALON
         SLRS        5
         LR          A,X
         LA          &ATACLE
         STA         CLE
C30:     EQU         $
         STZ         NELT
C31:     EQU         $
         LX          NLIG
         LA          &ATALIG
         STA         ZTR
NEWELT:  EQU         $
         DBT
         RBT         0,X
         STA         ZTR
         LB          NACQ            < SAUVEGARDES.
         LA          CARLU           < DANS KSTORE.
         LY          NSYMB
         PSR         A,B,Y
         LBI         6
         CPR         B,X
         JNE         C32
         BR          AFINF           < FIN DE CARTE.
C32:     EQU         $
         CPZ         NELT
         JE          C33
         CPI         '2C             < TEST ','.
         JNE         NOCONF
C33:     EQU         $
         LBI         -1
         BR          &ATATYP
REGIS:   EQU         $
         ADRI        1,B
BASE:    EQU         $
         ADRI        1,B
INDEX:   EQU         $
         STB         INDREG
         BSR         MACQ
         LXI         8
C34:     EQU         $
         LBY         &ATABRG
         SLLS        8
         CP          SYMBOL
         JE          C35
         JDX         C34
         JMP         NOCONF          < CE N'EST PAS UN NOM DE REGISTRE.
C35:     EQU         $
         LR          X,A
         CPZ         INDREG
         JG          REGIS1
         JE          BASE1
         CPI         3               < INDEX ???
         JNE         NOCONF
         LBY         CLE
         ANDI        'F
C36:     EQU         $
         LR          A,X
C37:     EQU         $
         LA          BINARY
         SBT         0,X
C38:     EQU         $
         STA         BINARY
TESTF:   EQU         $               < POINT DE RETOUR.
         IC          NELT
         ADRI        -3,K            < ELIMINATION SAUVEGARDES.
         LA          ZTR
         JMP         NEWELT
BASE1:   EQU         $               < BASE.
         ADRI        -4,A
         JALE        NOCONF
         CPI         4
         JE          NOCONF
         SCRS        2
C39:     EQU         $
         OR          BINARY
         JMP         C38
REGIS1:  EQU         $               < REGISTRE.
         LBY         BINARY
         CPI         '1A
         JE          INSPSR          < 'PSR'.
         CPI         '1B
         JE          INSPLR          < 'PLR'.
         IF          SOLAR,,X200,
         CPI         '1D
         JE          INSPSR          < LRM TRAITE COMME UN PSR.
X200:    VAL         0
         LBY         CLE
         SLRS        4
         ADRI        -1,X
         XR          A,X             < A=REGISTRE , B=NBRE DE DECALGES.
         CPZ         NREG
         JG          C40
         SLLS        0,X
C40:     EQU         $
         IC          NREG
         JMP         C39
INSPSR:  EQU         $               < INSTRUCTION 'PSR'.
         ADRI        7,X
         JMP         C37
INSPLR:  EQU         $               < INSTRUCTION 'PLR'.
         LAI         16
         SBR         X,A
         JMP         C36
NOCONF:  EQU         $               < NON CONFORMITE.
         PLR         A,B,Y
         STY         NSYMB
         STA         CARLU
         STB         NACQ
         LA          ZTR
         TBT         13
         JC          EVENT           < CAS 'PSR'-'PLR','EXT'-'ENT'.
         LX          NELT
         JDX         C42             < AUCUNE AUTRE POSSIBILITE.
         TBT         15,X
         JNC         C42             < AUCUNE AUTRE POSSIBILITE.
         IC          NLIG
         JMP         C31
EVENT:   EQU         $
         CPZ         LIST2
         JE          C41
         CPZ         VALDIR
         JE          C41
         BR          ASORLI          < 'EXT'-'ENT' AU SECOND PASSAGE.
C41:     EQU         $
         CPZ         NELT
         JNE         C30
C42:     EQU         $
         LAI         1               < ERREUR AU 1ER ELEMENT
         BR          MERR
EXPA:    EQU         $               < EXPRESSION ABSOLUE.
         BSR         CALEX
         JANE        NOCONF
         LBI         -1              < MASQUE.
         LA          VALDIR
         CPI         16
         JE          DIRIF           < DIRECITIVE 'IF'.
         LA          CLE
         CPI         2
         JE          RANGT           < AUCUNE LIMITATION.
         SLRD        5
         ANDI        3
         LR          A,X
         LA          SOM
         SB          &ATBINF
         JAGE        C43
EREXPA:  EQU         $               < VALEUR HORS-LIMITES.
         LAI         7
         BR          MERR
C43:     EQU         $
         SLLD        2
         ANDI        3
         LR          A,X
         LA          &ATBSUP
         SB          SOM
         JAL         EREXPA
         LBI         'FF
         LA          NLIG
         CPI         7
         JNE         RANGT
         SBT         18              < OPERANDE IMMEDIAT 9 BITS.
RANGT:   EQU         $
         LA          SOM
         ANDR        B,A
C44:     EQU         $
         IF          SOLAR,,X200,
         CPZ         INACTD          < EST-CE UN ACTD ???
         JE          C39             < NON.
         CPI         7               < ACTD ?
         JG          EREXPA
         SLLS        5
X200:    VAL         0
         JMP         C39
DIRIF:   EQU         $               < DIRECTIVE 'IF'.
         IF          SOLAR,,X200,
         LAD         IOCB4
         SVC         0               < EDITION DE LA CARTE 'IF'.
X200:    VAL         0
         CPZ         SOM
         JL          AVANTI
         JE          C45
         IC          SIGNIF
C45:     EQU         $
         IC          SIGNIF
AVANTI:  EQU         $               < SIGNIF=0(<0),1(=0),2(>0).
         LA          CARLU
         CPI         '2C             < TEST ','.
         JNE         C42             < ERREUR DE SYNTAXE.
         BSR         MACQ
         DC          SIGNIF
         JGE         AVANTI
         JANE        C47
         LXI         3               < SYMBO1=SYMBOLE A RECHERCHER.
C46:     EQU         $
         LB          &ASYMB
         STB         &ASYMB1
         JDX         C46
C47:     EQU         $
         BR          ADEP
EXPT:    EQU         $               < EXPRESSION TRANSLATBLE.
         BSR         CALEX
         LA          VALDIR
         ADRI        -22,A
         CPZ         SIGMA
         JAE         C48             < CAS 'WORD'.
         JL          NOCONF
C48:     EQU         $
         JE          NOCONF
         LA          CLE
         ANDI        7
         LR          A,X
         CPZ         NIV
         BR          &AIGET
END:     EQU         $               < DIRECTIVE 'END'.
         JNE         C50
         LA          COMDE
         TBT         12
         JC          TESTF           < SOM=ADRESSE DE LANCEMENT.
C49:     EQU         $
         LAI         6               < SYMBOLE N'APPARTIENT PAS A LA
         BR          MERR            < SECTION 'PROG'.
USE:     EQU         $
         JE          C51
C50:     EQU         $
         LAI         5               < EXPRESSION NON DEFINIE.
         BR          MERR
C51:     EQU         $
         LA          COMDE
         TBT         12
         JC          C49             < SYMBOLE D'UNE SECTION 'PROG'.
         CPZ         SITUAT
         JL          C52
         LAI         13              < ON N'EST PAS DANS UNE
         BR          MERR            < SECTION 'PROG'.
C52:     EQU         $
         LA          NSEC
         JAE         C57             < 'OFF'.
         IF          SOLAR,X200,,X200
         SLLS        1
         LR          A,W
         LXI         0
C53:     EQU         $
         BSR         RECSEC
         ADRI        -1,W
         CPZR        W
         JNE         C53
         LB          SOM             < EVALUATION DE LIMINF.
         ADRI        -128,B
         CPR         A,B
         JLE         C54
         LR          B,A
C54:     EQU         $
         STA         MOTINF
X200:    VAL         0
         IF          SOLAR,,X200,
         LR          A,W
         LXI         0
CEPACA:  EQU         $
         BSR         RECSEC
         XR          A,Y
         RBT         0
         SLRS        8
         CPR         A,W
         JNE         CEPACA
         LB          SOM             < EVALUATION DE LIMINF.
         ADRI        -128,B
         CPR         Y,B
         JLE         C55
         LR          B,Y
C55:     EQU         $
         STY         MOTINF
X200:    VAL         0
         BSR         RECSEC          < EVALUATION DE LIMSUP.
         LB          SOM
         LYI         128
         ADR         Y,B
         CPR         A,B
         JGE         C56
         LR          B,A
C56:     EQU         $
         STA         MOTSUP
C57:     EQU         $
         BR          ATESTF
REFMEM:  EQU         $               < REFERENCE MEMOIRE NON DEFINIE.
         JNE         C50
         LXI         3
C58:     EQU         $
         LA          NSEC
         CP          &SECBAS
         JNE         APREF
         LA          SOM
         CP          &LIMINF
         JL          APREF
         CP          &LIMSUP
         JL          C60
APREF:   EQU         $
         JDX         C58
C59:     EQU         $
         LAI         11              < ACCES IMPOSSIBLE.
         BR          MERR
C60:     EQU         $
         SB          &VALBAS
         ANDI        'FF
         SLLS        2               < GENERATION INDICATION DE BASE.
         LR          X,B
         SCRD        2
         JMP         C44
JUMP:    EQU         $               < SAUT CONDITIONNEL.
         JNE         PLUTAR
         LA          NSEC
         SB          SECOUR
         JANE        C59             < SYMBOLE N'APPARTIENT PAS
                                     < A SECOUR.
         LR          A,W             < W=/
         LA          SOM
         LY          PAS
         BSR         SPJUMP
         ANDI        'FF
         JMP         C44
PLUTAR:  EQU         $               < SYMBOLE DEFINI ULTERIEUREMENT.
         LA          SOM
         CPI         -128
         JL          EREXPA          < DEEPLACEMENT TROP IMPORTANT.
         CPI         127
         JG          EREXPA
         LA          &NIV
         ORI         '90
         STA         &NIV
         BSR         INSDEP          < INSERTION CODE OPERATION ET
                                     < DEPLACEMENT DANS TDEP.
         LAI         0
         JMP         C65
WORD:    EQU         $               < DIRECTIVE 'WORD'.
         LA          SITUAT
         JALE        C61
         IF          SOLAR,X200,,X200
         LY          KSTORE+4        < DIRECTIVE 'DSEC'.
X200:    VAL         0
         IF          SOLAR,,X200,
         LY          &KSTOR4         < DSEC.
X200:    VAL         0
         STY         NSYMB           < SUPPRESSION NOUVEAU SYMBOLE
                                     < EVENTUEL.
         BR          ATESTF
C61:     EQU         $
         JNE         CHAINA          < EXPRESSION NON DEFINIE.
         DC          SINGER          < INDICATEUR DE TRANSLATION.
         LA          SOM
         JAL         BERA14          < DEPASSEMENT 32K.
         LB          COMDE
         TBT         27
         JNC         C62
         LAI         10              < 'DSEC' INTERDIT.
         BR          MERR
C62:     EQU         $
         IC          TRANS           < A CHAGER EN TRANSLATANT.
         BR          AC44
CHAINA:  EQU         $               < CHAINAGE.
         CPZ         SIGMA
         JL          REFEXT          < SYMBOLE EXTERNE.
         CPZ         SOM
         JE          C63
         BSR         INSDEP          < INSERTYION DEPLACEMENT DANS TDEP.
C63:     EQU         $
         LA          &NIV
         TBT         12
         JC          DEJCHA
         ORI         '88             < DEBUT DE CHAINAGE.
         STA         &NIV
         LAI         -1
         RBT         0               < A='(FFF.
C64:     EQU         $
         IC          NIV
SOWORD:  EQU         $
         LB          PAS
         STB         &NIV
         DC          NIV
C65:     EQU         $
         IC          SINGER          < INDICATEUR DE CHAINGAE.
         BR          AC44
DEJCHA:  EQU         $               < CHAINAGE EN COURS.
         IC          NIV
         IC          TRANS
         LA          &NIV
         JMP         SOWORD
REFEXT:  EQU         $
         CPZ         SOM
         JNE         DEPFAU          < DEPLACEMENT ASSOCIE AU SYMBOLE.
         LAI         0
         CPZ         LIST2
         JG          C65             < SECOND PASSAGE.
         LA          &NIV
         TBT         12
         JC          DEJCHA
         ORI         '88
         DC          TRANS           < TRANS=-1.
         STA         &NIV
         LAI         0
         JMP         C64
EQU:     EQU         $               < DIRECTIVE 'EQU'.
         JE          C100
         LAI         5               < SYMBOLE NON DEFINI.
         BR          MERR
C100:    EQU         $
         CPZ         SOM
         JGE         C69
BERA14:  EQU         $               < DEPASSEMENT 32K.
         LAI         14
         BR          MERR
ENT:     EQU         $               < DIRECTIVE 'ENT'.
         LBI         '84
         JMP         C66
EXT:     EQU         $               < DIRECTIVE 'EXT'.
         LBI         'A0
C66:     EQU         $
         CPZ         LIST2
         JG          C69             < SECOND PASSAGE.
         CPZ         NIV
         JNE         C67
BERA6:   EQU         $               < SYMBOLE DEJA DEFINI.
         LAI         6
         BR          MERR
C67:     EQU         $
         LA          &NIV
         ANDI        'FC
         JANE        BERA6           < SYMBOLE DEJA CHAINE.
         CPZ         SOM
         JE          C68
DEPFAU:  EQU         $               < DEPLACEMENT ASSOCIE AU SYMBOLE.
         LAI         1
         BR          MERR
C68:     EQU         $
         LA          &NIV
         ORR         B,A
         STA         &NIV
C69:     EQU         $
         BR          ATESTF
NOMSEC:  EQU         $               < NOM DE SECTION.
         BSR         MACQ
         LB          CLE
         TBT         24
         JC          DIRSEC          < DIRECTIVE DE SECTIONNEMEMT.
         JANE        C74
         BSR         RETIQ           < AUTRES DIRECTIVES.
         JAGE        BERA6           < NOM N'APPARTIENT PAS A TSYMB.
         SLRS        8
         ANDI        '7F
         BR          AC44
DIRSEC:  EQU         $
         CPZ         LIST2
         IF          SOLAR,X200,,X200
         JE          C70
         IC          SECOUR          < SECOND PASSAGE.
X200:    VAL         0
         IF          SOLAR,,X200,
         JE          C70
         IC          SECMAX          < SECOND PASSAGE.
         LA          SECMAX
         STA         SECOUR
X200:    VAL         0
         JMP         C73
C70:     EQU         $
         JANE        C71
         BSR         RETIQ
         JAE         C71
         LAI         8               < APPARTIENT DEJA A TSYMB.
         BR          MERR
C71:     EQU         $
         CPZ         SECOUR
         JE          GENAD           < PREMIERE SECTION.
         LAI         0
         SBT         0               < ADRESSE FIN DE SECTION PRECEDENTE.
         LX          NSYMB
         STA         &ATSYMB         < DANS TSYMB.
         ADRI        1,X
         LA          PAS
         STA         &ATSYMB
         ADRI        1,X
         STX         NSYMB
GENAD:   EQU         $
         BSR         INSET
         IF          SOLAR,X200,,X200
         IC          SECOUR
         LA          SECOUR
X200:    VAL         0
         IF          SOLAR,,X200,
         IC          SECMAX
         LA          SECMAX
         STA         SECOUR
X200:    VAL         0
         CPI         128
         IF          IGE,,,X100
         JL          C72
X100:    VAL         0
         IF          IGE,X100,X100,
         JL          Z23
X100:    VAL         0
         LAI         9               < NOMBRE DE SECTIONS>127.
         BR          MERR
C72:     EQU         $
         IF          IGE,X100,X100,
<
<
<        2 E M E   B R A N C H E   D E   L ' O V E R L A Y   '   Z '  :
<
<
ZBR:     EQU         $
         ASCI        " Z    "
         BYTE        '04;'D0
Z23:     EQU         $
<
<        V A L I D A T I O N   I M P L A N T A T I O N  :
<
X12:     EQU         ZERO+PILE-LTNI-LTNI
X10:     VAL         X12-Z23
ZEROV:   EQU         ZERO+X10        < ERREUR D'ASSEMBLAGE SI
                                     < MAUVAISE IMPLANTATION ....
X100:    VAL         0
         ORI         '80
         SLLS        8
         OR          &NIVSYM
         STA         &NIVSYM
         LY          NSYMB           < ACTUALISATION KSTORE.
         IF          SOLAR,X200,,X200
         STY         KSTORE+4
X200:    VAL         0
         IF          SOLAR,,X200,
         STY         &KSTOR4
X200:    VAL         0
         BSR         SPTAS           < MEMORISATION NOM DANS BUF.
C73:     EQU         $
         CPZ         LG
         JE          C74             < PAS DE NOM DE SECTION.
         BR          ATESTF
FINFRA:  EQU         $
         CPI         '2C             < TEST ','.
         JNE         C75
C74:     EQU         $
         BR          ANOCON
C75:     EQU         $
         BSR         MACQ
         CPI         1
         JNE         C74
         CPZ         TRANS
         JGE         C76
         LA          BUF
         LB          BUF+1
         PSR         A,B             < SAUVEGARDE DE BUF,BUF+1.
C76:     EQU         $
         LA          VALDIR
NPVIRG:  EQU         $               < INSTRUCTIONS.
         JAE         TRAREG
         CPI         19
         JGE         C78
         LBI         0
         LYI         0
C77:     EQU         $
         LR          A,X             < DIRECTIVES DE SECTIONNEMENT.
         LA          BINARY
         BR          &ATABDR         < 'EQU' ET 'VAL'.
C78:     EQU         $
         JG          TRAREG
         LA          BINARY          < DIRECTIVE 'DZS'.
         JAGE        C79
         LAI         7               < DEPLACEMENT NEGATIF.
         BR          MERR
C79:     EQU         $
         AD          PAS
         JAG         TRAREG
         LAI         12              < DEPASSEMENT 32K.
         BR          MERR
TRAREG:  EQU         $
         LA          NREG
         CPI         1
         JNE         RETDIR
         LA          CLE             < EXCLUSION 'ADRI'.
         JAL         RETDIR
         LA          BINARY          < DUPLICATION RS DANS RD.
         SLRS        3
         ANDI        7
         OR          BINARY
         STA         BINARY
RETDIR:  EQU         $
         CPZ         NETIQ
         JE          TRAREF          < PAS D'ETIQUETTE.
         LA          SECOUR          < TRAITEMENT ETIQUETTE.
         JAG         C80
         LAI         3               < ETIQUETTE AVANT SECTION.
         BR          MERR
C80:     EQU         $
         SLLS        8
         CPZ         SITUAT
         JLE         C81
         SBT         11              < SECTION 'DSEC'.
C81:     EQU         $
         JGE         C82
         SBT         12              < SECTION 'PROG'.
C82:     EQU         $
         LY          PAS
         STY         SOM             < COMDE=MOT DE COMMANDE ,
                                     < SOM=VALEUR.
C93:     EQU         $
         STA         COMDE
RETEQ:   EQU         $
         CPZ         LIST2
         JG          TRAREF          < SECOND PASSAGE.
         LA          &NETIQ
         ANDI        'F8
         JAE         NEWSYM          < NOUVEAU SYMBOLE.
         CPZ         SITUAT
         JLE         C83
         LAI         10              < SYMBOLE UTILISE AILLEURS.
         BR          MERR
C83:     EQU         $
         LYI         -1
         LR          Y,W
RETW:    EQU         $
         LXI         0
         LY          NDEP
C84:     EQU         $
         CPR         X,Y
         JE          C86
         CPZ         &ATDEP          < MEMORISATION SIGNE.
         LA          &ATDEP
         RBT         0
         EOR         NETIQ
         JANE        FINDEP
         LA          &ATDEP1
         JG          DEPWOR          < BIT0=0.
         AD          SOM
         LY          &ATDEP2
         BSR         SPJUMP
         ANDI        'FF             < ELIMINATION OCTET GUACHE.
C85:     EQU         $
         CPZR        W
         JE          PERFO
FINDEP:  EQU         $
         ADRI        -3,X
         JMP         RETW+1
C86:     EQU         $
         CPZR        W               < X=NDEP.
         JE          NEWSYM
         ADRI        1,W             < AUCUNE ERREUR DETECTEE.
         LA          &NETIQ
         TBT         12
         JNC         RETW
         IC          NETIQ           < CHAINAGE SUR 'WORD'.
         LAI         'AA
         LB          &NETIQ
         BSR         ASPSO1
         LAI         '22
         LB          SOM
         BSR         ASPSO1
         DC          NETIQ
         JMP         RETW
DEPWOR:  EQU         $               < DEPLACEMENT SUR 'WORD'.
         AD          SOM
         JAGE        C87
         LAI         14
         BR          MERR
C87:     EQU         $
         LA          &ATDEP1
         JMP         C85
PERFO:   EQU         $               < SORTIE DEPLACEMENT.
         LR          A,Y
         LAI         '2E
         LB          &ATDEP2
         LR          X,L
         BSR         ASPSO1
         LAI         '22
         LR          Y,B
         BSR         ASPSO1
         LR          L,X
         LR          X,B
         ADRI        -3,X
TASDEP:  EQU         $               < TASSEMENT DE TDEP.
         LY          NDEP
         CPR         Y,X
         JNE         C88
         LR          B,X
         ADRI        3,Y
         STY         NDEP
         JMP         C84
C88:     EQU         $
         LA          &ATDEP
         ADRI        3,X
         STA         &ATDEP
         ADRI        -4,X
         JMP         TASDEP
NEWSYM:  EQU         $               < NOUVEAU SYMBOLE.
         LA          &NETIQ
         ANDI        7
         OR          COMDE
         STA         &NETIQ
         IC          NETIQ
         LA          SOM
         STA         &NETIQ
TRAREF:  EQU         $               < TRAITEMENT REFERENCE.
         LA          VALDIR
         JAE         INSTR
         IF          SOLAR,,X200,
         JAG         C89
         BR          CEFLT           < CAS DU FLOTTANT.
C89:     EQU         $
X200:    VAL         0
         CPI         18
         JG          C77
         LB          SOM             < SORTIE LISTING ('EQU' ET 'VAL').
         BSR         CONVER          < B=VALEUR CONVERSION.
         STY         &ZACQ13         < POIDS FORTS VALEUR.
         STA         &ZACQ14         < POIDS FAIBLES VALEUR.
         BR          ASORLI
WORD1:   EQU         $               < DIRECTIVE 'WORD'.
INSTR:   EQU         $               < INSTRUCTION.
         LBI         'A6
         LAI         1
         CPZ         TRANS
         JNE         INCPAS
C90:     EQU         $
         LBI         '24             < CHARGER SANS TRANSLATER.
INCPAS:  EQU         $
         AD          PAS
         STA         PAS
         CPZ         TRANS
         JL          TREXT           < DEBUT CHAINAGE SUR 'EXT'.
         LR          B,A
SREXT:   EQU         $
         LB          BINARY
         IF          SOLAR,X200,,X200
         BSR         SPLIST          < PERFO MOT+SORTIE LISTING.
         CPZ         PVIR
X200:    VAL         0
         IF          SOLAR,,X200,
         CPZ         INFL
         JE          COMFL
         PSR         B
         LB          M3800           < POSITIONNEMENT DU CODE FLOTTANT.
COMFL:   EQU         $
         BSR         SPLIST          < SORTIE DU BINAIRE DU 1ER MOT
                                     < ET EDITION LISTING ...
         CPZ         INFL
         JE          COND3
         IC          PAS
         IC          DEBRES+2
         LAI         '24
         PLR         B
         BSR         SPLIST
COND3:   EQU         $
         CPZ         PVIR
X200:    VAL         0
         JE          NBRAN
         STZ         TRANS           < 'WORD' + POINT VIRGULE.
         STZ         MOBYTE
         STZ         SINGER
RBYTE:   EQU         $
         BSR         SPSAV
         STZ         BINARY
         STZ         PVIR
         STZ         NETIQ
         IC          DEPLA2
         ADRI        -3,K
         PLR         W               < RESTITUTION RANG DU MOT CLE.
         BR          ACOT
ELIMIN:  EQU         $               < ELIMINATION LG SYMBOLE EQUIVALENT.
         CPZ         NETIQ
         JNE         C92
C91:     EQU         $
         LAI         3               < ETIQUETTE MANQUANTE.
         BR          MERR
C92:     EQU         $
         IF          SOLAR,,X200,
         CPZ         SECOUR
         JE          C91             < ERREUR : AUCUNE SECTION
                                     < N'EST ENCORE DEFINIE !!
X200:    VAL         0
         LA          COMDE
         SLRS        3               < AINSI QUE LE BIT13 ('ENT').
         SLLS        3
         IF          SOLAR,X200,,X200
         JMP         C93
X200:    VAL         0
         IF          SOLAR,,X200,
         BR          RETEQ1
X200:    VAL         0
TREXT:   EQU         $               < SORTIE SYMBOLE EXTERNE.
         PLR         A,B
         STA         BUF
         STB         BUF+1
         LAI         '21
         BSR         ASPSO2
         LAI         '22
         JMP         SREXT
EQU1:    EQU         $               < DIRECTIVE 'EQU'.
         CPZ         ETAPH
         JE          ELIMIN
         LBY         COMDE           < POSITIONNEMENT DE $.
         STA         SECOUR
         IF          SOLAR,,X200,
         LA          COMDE
X200:    VAL         0
         TBT         11
         IF          SOLAR,X200,,X200
         LA          COMDE
X200:    VAL         0
         JC          C94
         TBT         12
         JNC         C95
         ADRI        -2,B            < 'PROG'.
C94:     EQU         $
         ADRI        1,B             < 'DSEC'.
C95:     EQU         $
         STB         SITUAT
         LB          SOM
         STB         PAS
         STB         DEBRES+2
         CPZ         SITUAT
         JG          C96             < 'DSEC'.
         LAI         'A0
         BSR         ASPSO1
C96:     EQU         $
         BSR         SPLIS1          < SORTIE LISTING.
NBRAN:   EQU         $
         BR          ADEP
BYTE:    EQU         $               < DIRECTIVE 'BYTE'.
         ANDI        'FF
         CPZ         INBYTE
         JE          BYTE1           < BYTE DE GAUCHE.
         OR          MOBYTE          < BYTE DE DROITE.
         STZ         INBYTE
C97:     EQU         $
         STA         BINARY
         JMP         INSTR
BYTE1:   EQU         $
         SLLS        8
         STA         MOBYTE
         IC          INBYTE
         CPZ         PVIR
         JE          C97
         JMP         RBYTE           < 'BYTE' + POINT-VIRGULE.
DZS:     EQU         $               < DIRECTIVE 'DZS'.
         JAE         C96
         LAI         'AC
         LB          BINARY
         CPZ         SITUAT
         JG          C98             < ON EST DANS UN 'DSEC'.
         BSR         ASPSO1          < REPEAT LOAD.
C98:     EQU         $
         LA          BINARY
         STZ         BINARY
         JMP         C90
VAL:     EQU         $               < DIRECTIVE 'VAL'.
         CPZ         NETIQ
         JE          C91             < ETIQUETTE MANQUANTE.
         LA          &NETIQ
         ANDI        'BC
         JAE         C99
         LAI         4               < SYMBOLE DEJA UTILISE.
         BR          MERR
C99:     EQU         $
         LAI         '40
         STA         COMDE
         JMP         NEWSYM
COMMON:  EQU         $               < DIRECTIVE 'COMMON'.
         ADRI        -1,Y
LOCAL:   EQU         $               < DIRECTIVE 'LOCAL'.
         ADRI        2,Y
TABLE:   EQU         $               < DIRECTIVE 'TABLE'.
         LR          B,W
         CPI         3
         JG          NONVER          < 'TABLE' OU 'DSEC'.
         AD          ETATS           < VERIFICATION DE L'ENCHAINEMENT
                                     < DES SECTIONS.
         LR          A,X
         LA          MOTEST
         TBT         0,X
         JNC         C101
         LAI         16              < ENCHAINEMENT INCORRECT.
         BR          MERR
C101:    EQU         $
         LAI         3
         MP          VALDIR
         STB         ETATS
NONVER:  EQU         $
         LR          W,B
         LX          LIMSU2
         CPZR        X
         JE          NREGUL
         LA          PAS             < SORTIE 'COMMON' OU 'LOCAL'.
         CP          &LIMSUP
         JGE         C102
         STA         &LIMSUP
         STA         &LIMSU1
C102:    EQU         $
         STZ         LIMSU2
NREGUL:  EQU         $
         CPZ         SITUAT
         JL          FINPRO
         JE          C103
         LA          SAUVPA          < SORTIE 'DSEC'.
         STA         PAS
REPRO:   EQU         $
         STZ         SITUAT
C103:    EQU         $
         CPZR        Y
         JE          YNUL
         LR          Y,X             < 'COMMON' OU 'LOCAL'.
         LYI         128
         LA          PAS             < POSITIONNEMT IMPLICITE C ET L.
         STA         &LIMINF
         STA         &LIMIN1
         ADR         Y,A
         STA         &VALBAS
         STA         &VALBA1
         ADR         Y,A
         STA         &LIMSUP
         STA         &LIMSU1
         LA          SECOUR
         STA         &SECBAS
         STA         &SECBA1
         STX         LIMSU2
YNUL:    EQU         $
         CPZR        B
         LY          PAS
         JE          TRACOM
         STB         SITUAT          < 'PROG' OU 'DSEC'.
         JL          TRACOM
         STZ         PAS
         STY         SAUVPA          < 'DSEC'.
         LYI         0
         JMP         C104
TRACOM:  EQU         $               < SORTIE NOM DE SECTION.
         LAI         '36
         BSR         ASPSO2
C104:    EQU         $
         STY         DEBSEC
         STY         FINSEC
         IC          INDZS
         CPZ         LIST2
         JG          C105            < SECOND PASSAGE.
         IC          NIVSYM          < ADRESSE DEBUT DE SECTION
                                     < DANS TSYMB.
         STY         &NIVSYM
C105:    EQU         $
         BR          ASORLI          < SORTIE LISTING.
PROG:    EQU         $               < DIRECTIVE 'PROG'.
         ADRI        -2,B
DSEC:    EQU         $               < DIRECTIVE 'DSEC'.
         ADRI        1,B
         JMP         TABLE
FINPRO:  EQU         $               < FIN DE SECTION 'PROG'.
         LXI         0
         LR          X,W             < W=0
C106:    EQU         $
         LA          &ATSYMB         < RECHERCHE DES JUMPS NON
                                     < SATISFAITS.
         ANDI        '90
         CPI         '90
         JNE         MORE
         BSR         SORCLF
         LAD         &ATSYMB         < 'JUMP' NON SATISFAIT.
         BSR         SORSYM          < EDITION SYMBOLE.
         ADRI        1,W
MORE:    EQU         $               < APPEL SYMBOLE SUIVANT.
         BSR         SYMUL
         JNE         C106
         CPZR        W
         JNE         C107
         LA          FINSEC
         CP          PAS
         JLE         REPRO
C107:    EQU         $
         LAI         15              < LIMITE SECTION NON ATTEINTE.
         BR          MERR
USE1:    EQU         $               < DIRECTIVE 'USE'.
         SLRS        14
         LR          A,X
         CPZ         INBRE
         JNE         NIMPL           < POSITIONNEMENT EXPLICITE.
         CPI         3               < RETOUR POSITIONNEMENT IMPLICITE.
         JNE         C108
         LAI         1               < BASE W.
         BR          MERR
C108:    EQU         $
         LY          &SECBA1
         STY         &SECBAS
         LA          &LIMIN1
         LB          &LIMSU1
         LY          &VALBA1
RUSE:    EQU         $
         STA         &LIMINF
         STB         &LIMSUP
         STY         &VALBAS
         BR          ASORLI          < SORTIE LISTING.
EXT1:    EQU         $-1
ENT1:    EQU         $-1
NIMPL:   EQU         $
         LY          NSEC
         STY         &SECBAS
         LA          MOTINF
         LB          MOTSUP
         LY          SOM
         JMP         RUSE
         IF          IGE,,,X100
PSTH:    EQU         $               < DIRECTIVE 'PSTH'.
         SBT         8
PSTS:    EQU         $               < DIRECTIVE 'PSTS'.
         CPZ         SITUAT
         JLE         C109
NR13:    EQU         $
         LAI         13              < INTERDITES DANS 'DSEC'.
         BR          MERR
C109:    EQU         $
         CPZ         INBRE
         JNE         C110
         SBT         0               < NUMERO PAS ENCORE CONNU.
C110:    EQU         $
         LR          A,B
         LAI         'B2
         BSR         ASPSO1
         BR          ASORLI          < SORTIE LISTIONG.
X100:    VAL         0
         IF          IGE,X100,X100,
<        NOTA :
<                      SOUS ' S' , LES DIRECTIVES PSTH
<                    ET PSTS NE SONT PAS RECONNUES !!!
X100:    VAL         0
DO:      EQU         $               < DIRECTIVE 'DO'.
         STA         INDO
         IF          SOLAR,,X200,
         LAD         IOCB4
         SVC         0               < EDITION DE LA CARTE 'DO'.
         BSR         PAGIN
X200:    VAL         0
         IF          IGE,,,X100
         BSR         LCNF
         JAE         C1300
         BR          AEOT
C1300:   EQU         $
X100:    VAL         0
         IF          IGE,X100,X100,
         BSR         ASIMUL          < SIMULATION 'LECTURE CARTE'
                                     < DANS L'ITEM1.
X100:    VAL         0
         BR          ADEP
ASCI:    EQU         $               < DIRECTIVE 'ASCI'.
         LBI         '24
C111:    EQU         $
         IC          NACQ1
         LX          NACQ1
         LBY         &AZACQ
         CPI         '22
         JE          FASCI           < FIN DE CHAINE.
         SLLS        8
         SCLD        8
         JAE         C111
SASCI:   EQU         $
         IC          PAS
         BSR         SPLIST          < PERFO MOT + SORTIE LISTING.
         IC          DEBRES+2        < INCREMENTATION ADRESSE.
         CPZ         INDASC
         JNE         ASCI
         BR          ADEP
FASCI:   EQU         $
         STZ         INDASC
         LAI         0
         SCLD        8
         JANE        SASCI           < ENCORE UN CARACTERE.
         BR          ADEP
IDP:     EQU         $               < DIRECTIVE 'IDP'.
         LAI         'B4
         LB          RCLF
         SLLD        8
         STA         BUF
         STB         BUF+1
         BSR         PSORTQ          < SORTIE RC-LF DANS QUADRUPLET.
IDP1:    EQU         $
         LXI         -3
         STZ         BUF             < NETTOYAGE DE BUF.
         STZ         BUF+1
C112:    EQU         $
         LR          X,Y
         IC          NACQ1
         LX          NACQ1
         LBY         &AZACQ
         CPI         '22
         JE          FIDP            < FIN DE CHAINE.
         LR          Y,X
         STBY        &ABUF
         JIX         C112
SIDP:    EQU         $
         LAI         'B4
         STBY        BUF
         BSR         PSORTQ          < SORTIE QUADRUPLET.
         CPZ         INDASC
         JNE         IDP1
         BR          ASORLI          < SORTIE LISTING.
FIDP:    EQU         $
         STZ         INDASC
         LAI         -3
         CPR         A,X
         JNE         SIDP
SORLIS:  EQU         $               < SORTIE LISTING (ZACQ)
         BSR         APAGEN
         BR          ADEP
END1:    EQU         $               < DIRECTIVE 'END'.
         EORR        L,L
         LAI         4
         STA         LG              < LONGUEUR BIDON.
         STZ         SYMBO1          < ANNULATION TRAITEMENT 'IF'.
         BSR         RETIQ
         CPZR        L
         JE          C113
         LAI         17              < ASSEMBLAGE INCORRECT.
         BR          MERR
C113:    EQU         $
         CPZ         SITUAT
         JGE         C114            < LA SECTION EN COURS N'EST PAS
                                     < UNE SECTION 'PROG'.
         LA          FINSEC
         CP          PAS
         JG          C107            < LIMITE DE SECTION NON ATTEINTE.
C114:    EQU         $
         DC          IOCB4+2
         LAD         IOCB4           < SORTIE LISTING.
         SVC         0
         CPZ         LIST2
         JG          FINASS          < SECOND PASSAGE.
         LXI         0               < OK , RECHERCHE 'EXT' ET 'ENT'.
CEND:    EQU         $
         LA          &ATSYMB
         TBT         13
         JC          SYMENT          < 'ENT'.
         ANDI        '28
         CPI         '28
         JE          SYMEXT          < 'EXT'.
CEND1:   EQU         $
         BSR         SYMUL
         JNE         CEND
         LB          SOM
         CPZR        B
         JNE         C115
         SBT         16              < B='8000
C115:    EQU         $
         LAI         '28
         BSR         ASPSO1          < SORTIE DE L'ADRESSE DE LANCEMENT.
         LAI         '30
         LB          CHECK
         BSR         ASPSO1          < SORTIE CHECKSUM.
         IC          INDEND
         STZ         LIST2
         STZ         CHECK
         PAGE
<
<
<        F I N   D ' A S S E M B L A G E  :
<
<
FINASS:  EQU         $
         BSR         SORCLF
         LAD         IOCB1           < EDITION CARTE CONTENUE DANS ZACQ.
         SVC         0
         IF          IGE,,,X100
         BSR         PAGE
         LAI         '6D             < LIBERER L'IMPRIMANTE
         SWBR        A
         ORI         '0D
         STA         SYMBOL
         LAD         IOCB3
         SVC         0
         LAD         CLOS5S          < CLOSE 5 SAVE
         SVC         0
         LA          OPNBO
         ORI         3               < MISE EN MODE 'CLOSE-SAVE'.
         STA         OPNBO
         LAD         OPNBO
         SVC         0               < FERMETURE DE L'ENREGISTREMENT
                                     < BINAIRE.
         LAD         CCI
         SVC         0               < RETOUR AU CCI.
         JMP         $-1             < CAS D'UN !GO.
X100:    VAL         0
         IF          IGE,X100,X100,
<
< PREPARATION DU CHARGEMENT DE L'OVERLAY :
<
         LAI         BRANCH-ZERO*2
         STA         DEMSGN+1        < DEMSGN EST POSITIONNE SUR
                                     < BRANCH , EN VUE DU CHARGE-
                                     < MENT DE ' L'.
         LAI         BRANCH-ZERO
         LR          A,W             < W=@BRANCH.
         LAI         "L"
         SBT         2               < A=' L'.
         STA         0,W             < ON MET EN TETE DE BRANCHE LE
                                     < NOM DE CELLE QUE L'ON DOIT
                                     < CHARGER (C'EST-A-DIRE LE LOADER).
         LA          APILE
         LR          A,K             < ON RE-INITIALISE K AVEC UNE
                                     < PILE DONT L'EMPLACEMENT
                                     < N'EST PAS PERTURBE PAR LE
                                     < CHARGEMENT DES OVERLAYS.
                                     < (CELLE DU SYSTEM E 'GE').
<
< TENTATIVE DE CHARGEMENT DU LOADER :
<
         LAD         DEMSGN
         BSR         AOVL            < TENTATIVE DE CHARGEMENT , AVEC :
                                     < A=@DEMSGN & W=@BRANCH.
         LAD         CCI
         SVC         0               < EN CAS D'ERREUR DE CHARGEMENT ,
                                     < ON FAIT UN RETOUR DEFINITIF
                                     < AU CCI.
         JMP         $-1
X100:    VAL         0
EOT:     EQU         $               < DIRECTIVE 'EOT'.
         IF          IGE,X100,X100,
         LAI         13              < INTERDIT EN OVERLAY
         BR          MERR
X100:    VAL         0
         IF          IGE,,,X100
         LA          IOCB            < CHANGER LE NUMERO DE NVP
         IBT         5               < ET DE COMMANDE
         IBT         12
ECHO:    EQU         $
         IBT         15
         STA         IOCB
         LXI         -1
         STA         &ABASC
         LXI         0
         STA         &ABASC
         SLRS        10              < CHANGER LE DEBUT DES BUFFERS
         LB          AZACQ           < ET LE NOMBRE DE CARACTERES
         LYI         80
         JAE         C3000
         LB          ABFSG0
         LYI         255
         ADRI        1,Y
C3000:   EQU         $
         SLLD        1
         STB         IOCB+1
         STY         IOCB+2
         BR          ADEP
X100:    VAL         0
SYMEXT:  EQU         $               < SYMBOLE EXT.
         LAI         'A5
         JMP         C116
SYMENT:  EQU         $               < SYMBOLE ENT.
         CPI         6
         JE          CEND1           < 'OFF'.
         LAI         '3A
C116:    EQU         $
         STX         ZTR
         LR          A,L             < SAUVEGARDE DE A.
         LAD         &ATSYMB         < A=ADRESSE DU SYMBOLE.
         BSR         TRASYM          < TRANSFERT DANS SYMBOL.
         BSR         SPTAS           < PUIS DANS BUF.
         LR          L,A             < RESTAURATION DE A.
         BSR         ASPSO2
         LX          ZTR
         ADRI        1,X
         LB          &ATSYMB         < MOT VALEUR.
         LAI         '22
         BSR         ASPSO1
         LX          ZTR             < RESTAURATION DE X.
         JMP         CEND1
NDS:     EQU         $               < DIRECTIVE 'NDS'.
         BSR         SORCLF
         LXI         0
C117:    EQU         $
         LA          &ATSYMB
         ANDI        'A0
         CPI         '80
         JNE         C118            < ELIMINATION EXT.
         LAD         &ATSYMB         < A=ADRESSE SYMBOLE.
         BSR         SORSYM
         BSR         SORCLF
C118:    EQU         $
         BSR         SYMUL
         JNE         C117
         IF          IGE,,,X100
         CPZ         NR              < EST-CE UNE VRAIE CARETE NDS ,
                                     < OU UNE CARTE NDS SIMULEE SUITE
                                     < A UNE ERREUR '17' ???
         JNE         FINASS          < NON , ERREUR '17' : ABORT ....
X100:    VAL         0
         BR          ADEP
EST:     EQU         $               < DIRECTIVE 'EST'.
         LB          IOCB4
         STB         IOCB3
         JAE         TCOMP           < TABLE AU COMPLET.
         BSR         SORSEC
C119:    EQU         $
         BR          ADEP
TCOMP:   EQU         $               < BINARY=NUMERO DE SECTION.
         STA         BINARY
         BSR         SORSEC
         LA          BINARY
         CP          SECOUR
         JE          C119            < TERMINE.
         ADRI        1,A
         JMP         TCOMP
DST:     EQU         $               < DIRECTIVE 'DST'.
         LXI         0
C120:    EQU         $
         LA          NSYMB
         CPR         A,X
         JE          C119            < TERMINE.
         LR          A,L             < L=NSYMB.
         LA          &ATSYMB
         LBI         3
         ANDR        A,B
         ADRI        2,B             < B=LONGUEUR DU SYMBOLE.
         JAL         PLUSUN          < NOM DE SECTION.
         ANDI        'C4
         JANE        PLUSUN          < SYMBOLE ABSOLU , NON DEFINI OU ENT.
         LA          &ATSYMB
         SLRS        8               < A=NUMERO DE SECTION.
         CP          BINARY
         JE          TASSER          < SYMBOLE A ELIMINER.
PLUSUN:  EQU         $
         ADR         B,X
         JMP         C120
TASSER:  EQU         $
         LR          X,Y             < SAUVEGARDE DE X.
C121:    EQU         $
         ADR         B,X
         CPR         X,L
         JE          ACTUAL          < ACTUALISATIONS.
         LA          &ATSYMB
         SBR         B,X
         STA         &ATSYMB
         ADRI        1,X
         JMP         C121
ACTUAL:  EQU         $               < ACTUALISATION DE NSYMB.
         SBR         B,L
         LR          L,A
         STA         NSYMB
         LR          Y,X             < ACTUALISATION DE TDEP.
         LAD         &ATSYMB
         LR          A,L             < L=ADRESSE DU SYMBOLE ELIMINE.
         LR          B,W             < W=LONGUEUR DU SYMBOLE ELIMINE.
         LXI         0
DEPUL:   EQU         $
         LA          NDEP
         CPR         X,A
         JNE         C122
         LR          Y,X
         JMP         C120            < ACTUALISATIONS TERMINEES.
C122:    EQU         $
         LA          &ATDEP
         SCLD        1
         SLRS        1               < MEMORISATION DE A0 DANS B.
         CPR         A,L
         JG          DEPUL1
         SBR         W,A
         SLLS        1
         SCRD        1               < RESTITUTION DE A0.
         STA         &ATDEP
DEPUL1:  EQU         $
         ADRI        -3,X
         JMP         DEPUL
         PAGE
         IF          IGE,X100,X100,
<
<
<        S I M U L A T I O N   L E C T U R E   C A R T E S  :
<
<
<        FONCTION :
<                      CETTE ROUTINE RECUPERE A PARTIR
<                    DE L'ITEM1 TRANSLATE DE 4K ,
<                    LES IMAGES DES CARTES A ASSEMBLER ;
<                    LE SEPARATEUR DE CARTES UTILISE EST
<                    LE CARACTERE '#'.
<
<
SIMUL:   EQU         $
         LAI         BRANCH-ZERO
         LR          A,W             < W=@BRANCH !!!!!!
<
< NETTOYAGE DU BUFFER D'ENTREE DES CARTES :
<
         LAI         '20             < A='SPACE'.
         LXI         71              < POUR REMETTRE A 'SPACE' 72
                                     < CARACTERES.
Z10:     EQU         $
         STBY        &AZACQ          < REMISE A 'SPACE' DU BUFFER.
         JDX         Z10             < CARACTERE SUIVANT.
         STBY        &AZACQ          < REMISE A 'SPACE' DU CARACTERE 0.
<
< SIMULATION DE LA LECTURE D'1NE CARTE
< SOURCE A PARTIR DE L'ITEM1 TRANSLATE :
<
         LX          IAI1            < X=INDEX COURANT DE L'ITEM1.
         LYI         0               < COMPTEUR DES CARACTERES
                                     < D'UNE IMAGE DE CARTE SOURCE.
Z11:     EQU         $
         LR          X,A             < VALIDATION DE L'INDEX ITEM1.
         CP          6,W             < LE MOT6 DE LA BRANCHE CONTIENT
                                     < LE NBRE DE CARACTERES D'1NE
                                     < PAGE DE VISU.
         JGE         Z21             < ERREUR , ON EST HORS-ITEM1 !!!
                                     < DE L'ITEM1.
         LR          Y,A             < POUR VALIDATION DU COMPTE.
         CPI         80              < ON NE DOIT PAS DEPASSER
                                     < CARACTERES .....
         JGE         Z21             < ERREUR : CARTE TROP LONGUE !!!!
         LBY         &AI1            < SINON RECUPERATION D'UN
                                     < CARACTERE DE L'ITEM1.
         ADRI        1,X             < PROGRESSION INDEX ITEM1.
         CPI         "#"             < EST-CE UN FIN DE LIGNE (#) ????
         JE          Z12             < OUI , LE CARACTERE '#' INDIQUE
                                     < LA FIN DE L'IMAGE D'UNE CARTE ....
         XR          X,Y             < X=INDEX DU BUFFER CARTE.
         STBY        &AZACQ          < SINON , LE CARACTERE RECUPERE
                                     < EST MIS DANS LE BUFFER D'ENTREE.
         XR          X,Y
         ADRI        1,Y             < COMPTAGE DES CARACTERES.
         JMP         Z11             < AU SUIVANT ...
Z12:     EQU         $
         STX         IAI1            < SAVE LE NOUVEL INDEX COURANT
                                     < DE L'ITEM1.
         RSR
<
< TRAITEMENT DES ERREURS :
<
Z21:     EQU         $
         ADRI        -1,K            < ANNULATION DES EFFETS DU BSR
                                     < D'APPEL DE ASIMUL.
         LAI         0               < ERREUR 0 D'ASSEMBLAGE.
         BR          MERR
X100:    VAL         0
         PAGE
<
<
<        S O U S - P R O G R A M M E S  :
<
<
<
<
<        C A L C U L   D ' U N E   E X P R E S S I O N  :
<
<
PCALEX:  EQU         $               < CALCUL D'EXPRESSION.
         LXI         LCALEX
         STZ         &INCALE
         JDX         $-1
C123:    EQU         $
         BSR         MACQ
         JAL         ECALEX
         STZ         INDICA
         JAE         TYPLET
         CPI         1
         JE          TYPFIN
         CPI         2
         JE          TYPCOM
         LY          VALEUR          < TERME ABSOLU.
C124:    EQU         $
         IC          INBRE
TYPABS:  EQU         $
         LA          SOM
         CPZ         SIGNE
         JE          MULTIP          < MULTIPLICATION OU DIVISION.
         JG          C125
         NGR         Y,Y
C125:    EQU         $
         ADR         Y,A
C126:    EQU         $
         STA         SOM
         JV          ECALEX          < OVERFLOW OU DIVISION IMPOSSIBLE.
SUIMUL:  EQU         $
         LA          CARLU
         CPI         '20
         JE          C134            < 'ESPACE'.
         CPI         '2C
         JE          C134            < 'VIRGULE'.
         IF          SOLAR,X200,,X200
         IC          RANG            < MISE A JOUR RANG DE L'ELEMENT.
X200:    VAL         0
         JMP         C123
MULTIP:  EQU         $
         CPZ         SIGMA
         JNE         ECALEX          < MULTIPLICANDE OU DIVIDENDE
                                     < NON ABSOLU.
         CPZ         INDICA
         JNE         ECALEX          < MULTIPLICATEUR OU DIVISEUR
                                     < NON ABSOLU.
         STY         VALEUR
         CPZ         SIGN1
         JG          DIVIS           < DIVISION.
         MP          VALEUR
         JAE         C127
         CPI         -1
         JNE         ECALEX          < RESULTAT NON SUR 16 BITS.
C127:    EQU         $
         STB         SOM
         JMP         SUIMUL
DIVIS:   EQU         $
         SARD        16              < B=POIDS FAIBLES.
         DV          VALEUR
         JMP         C126
TYPLET:  EQU         $               < SUITE DE LETTRES.
         BSR         RETIQ
         JAL         ECALEX          < NOM DE SECTION.
         JAE         C132            < LE SYMBOLE N'APPARTIENT PAS
                                     < A TSYMB.
         LY          &ATSYMB         < MOT VALEUR.
         ANDI        'FFFC
         JAE         C138            < ETIQUETTE DE LA PHRASE EN COURS
         TBT         8
         JC          NONDEF          < NON DEFINI.
         TBT         9
         JC          C124            < SYMBOLE ABSOLU.
         CPI         4
         JNE         C128
         LX          VALDIR          < 'OFF'.
         ADRI        -8,X
         CPZR        X
         JNE         ECALEX          < NON UTILISE AVEC 'USE'.
C128:    EQU         $
         SLRD        8
         XR          A,B             < B=NUMERO DE SECTION.
COMAS:   EQU         $
         CPZ         RANG
         JNE         PAPREM
         TBT         3               < 1ER ELEMENT.
         JNC         C129
         DC          INDSEC          < SYMBOLE APPARTIENT A 'DSEC'.
C129:    EQU         $
         STB         NSEC            < NSEC=NUMERO DE SECTION.
PRESER:  EQU         $
         SCRD        8
         STA         COMDE           < COMDE=MOT DE COMMANDE.
         LA          RANG            < SAUVEGARDE RANG DE L'ELEMENT.
         STA         RANG1
         CPZ         SIGNE
REPAS:   EQU         $
         JL          ECALEX
C130:    EQU         $
         LA          SIGNE
         AD          SIGMA
         STA         SIGMA
         IC          INDICA
         IF          SOLAR,,X200,
         IC          RANG
X200:    VAL         0
         JMP         C124
PAPREM:  EQU         $               < AUTRES ELEMENTS.
         TBT         3
         JC          C131            < APPARTIENT A 'DSEC'.
         CPZ         INDSEC          < MELANGES INTERDIT SI NEGATIF.
         JMP         REPAS
C131:    EQU         $
         LA          NSEC
         CPR         A,B
         JNE         ECALEX          < MELANGES INTERDIT SI NEGATIF.
         JMP         C130
C132:    EQU         $
         BSR         INSET
NONDEF:  EQU         $               < NON DEFINI.
         LA          NIVSYM
         LB          &NIVSYM
         CP          NETIQ
         JE          TYPCOM          < ETIQUETTE DE LA PHRASE EN COURS.
         STA         NIV             < SAUVEGARDES.
         STB         MOT1
         STY         MOT2
         CPZ         RANG
         JNE         ECALEX          < CE N'EST PAS LE 1ER ELEMENT.
         TBT         26
         JNC         C133
         IC          INDSEC          < REFERENCE EXTERNE.
         BSR         SPTAS           < MEMORISATION SYMBOLE DANS BUF.
C133:    EQU         $
         XR          A,B
         LYI         0
         JMP         C129
TYPFIN:  EQU         $               < FIN DE PHRASE.
         DC          NACQ
C134:    EQU         $
         LA          SIGMA
         SLRS        1
         JANE        ECALEX          < SIGMA DIFFERENT DE 0 ET 1.
         JC          C137
         CPZ         NIV             < SIGMA=0
         JNE         ECALEX
C135:    EQU         $
         LA          SIGMA
C136:    EQU         $
         RSR
ECALEX:  EQU         $               < EXPRESSION INCORRECTE.
         LAI         2
         BR          MERR
C137:    EQU         $
         CPZ         RANG1
         JNE         ECALEX          < ELEMENT TRANSLATABLE NON EN
                                     < TETE DE L'EXPRESSION.
         CPZ         INDSEC          < SIGMA=1.
         JLE         C135
         LAI         -1
         STA         SIGMA
         JMP         C136
TYPCOM:  LAI         0               < COMPTEZUR D'ASSEMBLAGE.
C138:    EQU         $
         CPZ         SITUAT
         JLE         C139
         SBT         3               < SECTION 'DSEC' EN COURS.
C139:    EQU         $
         JGE         C140
         SBT         4               < SECTION 'PROG' EN COURS.
C140:    EQU         $
         LB          SECOUR
         LY          PAS
         JMP         COMAS
         PAGE
<
<
<        M O D U L E   D ' A C Q U I S I T I O N  :
<
<
PMACQ:   EQU         $
         LXI         LMACQ
         STZ         &INMACQ
         JDX         $-1
         LYI         -2
PMACQ1:  EQU         $
         LX          NACQ
         LR          X,A
         CPI         73              < FIN DE CARTE?
         JL          C2200
         LAI         '0D
         JMP         C2201
C2200:   EQU         $
         LBY         &AZACQ
C2201:   EQU         $
         STA         CARLU
         CPZ         ETAT
         JNE         APRES
         CPI         '3B             < TEST ';'.
         JE          POIVRE          < POINT-VIRGULE RECONNU.
         CPI         '26             < TEST '&'.
         JE          INDIR           < CARACTERE D'INDIRECTION RECONNU.
         CPI         '24             < TEST '$'.
         JE          COMPAS          < COMPTEUR D'ASSEMBLAGE RECONNU.
         CPI         '27             < TEST '''
         JE          HEXA            < INDICATIF NBRE HEXA RECONNU.
         CPI         '23             < TEST '#'.
         JE          COMUT
         CPI         '2C             < TEST ','.
         JE          FNBR1           < OMISSION DU CHIFFRE 0.
         CPI         '2F             < TEST DU '/'.
         JE          SLASH           < DIVISION RECONNUE.
APRES:   EQU         $
         SBT         8
         CPI         '8D             < TEST R/C.
         JE          C141            < R / C RECONNU.
         ANDI        '3F
C141:    EQU         $
         LR          A,B
         LXI         LTABTY
C142:    EQU         $
         LBY         &ATABLG
         SBR         B,A
         JAG         C143
         JDX         C142
C143:    EQU         $
         LBY         &ATABTY
         AD          ETAT
         CPI         25
         LR          A,X
         LA          CARLU
         JG          CCHAIN
         BR          &ATARUP
POIVRE:  EQU         $               < POINT-VIRGULE.
         LA          VALDIR
         CPI         22
         JE          C144            < SUR 'WORD'.
         CPI         20
         JNE         EMACQ
C144:    EQU         $
         IC          PVIR            < OU SUR 'BYTE'.
         LA          CARLU
         JMP         APRES
INDIR:   EQU         $               < INDIRECTION RECONNU.
         CPZ         NLIG
         JNE         EMACQ
         ADRI        1,X
         IF          SOLAR,X200,,X200
         STX         KSTORE+3
X200:    VAL         0
         IF          SOLAR,,X200,
         STX         &KSTOR3
X200:    VAL         0
         LA          BINARY
         SBT         2
         STA         BINARY
         JMP         NEWCAR
DECIM:   EQU         $               < DEBUT NBRE DECIMAL.
         ANDI        'F
         STA         VALEUR
         LAI         10
C145:    EQU         $
         LBI         16
C146:    EQU         $
         STA         CSTE
C147:    EQU         $
         STB         ETAT
NEWCAR:  EQU         $
         IC          NACQ
         JMP         PMACQ1
HEXA:    EQU         $               < DEBUT NBRE HEXADECIMAL.
         IC          INDHEX
         LAI         16
         JMP         C145
CNBRE:   EQU         $               < CONTINUATION D'UN NBRE.
         ANDI        'F
C148:    EQU         $
         LR          A,X
         LA          CSTE
         CPI         10
         LA          VALEUR
         JNE         C149
         CP          M3277
         JGE         EMACQ
C149:    EQU         $
         MP          CSTE
         JANE        EMACQ
         ADR         X,B
         STB         VALEUR
         JNV         NEWCAR
LIMDEC:  EQU         $               < TEST LIMITE SI DECIMAL.
         SLLD        19
         JANE        EMACQ           < LIMITE (32.768) DEPASSEE.
         CPZ         SIGNE
         JGE         EMACQ           < SIGNE PLUS.
         JMP         NEWCAR
CNBR1:   EQU         $               < CONTINUATION NBRE HEXA.
         CPZ         INDHEX
         JE          EMACQ
         ANDI        '1F
         CPI         6
         JG          EMACQ
         ADRI        9,A
         JMP         C148
SUILT1:  EQU         $               < CHIFFRE DANS SUITE DE LETTRES.
         IC          INDICA
SUILT:   EQU         $               < SUITE DE LETTRES.
         LX          LG
         ADRI        2,X
         LBI         8
         CPR         X,B
         JE          EMACQ
         STBY        &ASYMB
         ANDI        '1F
         LR          A,B
         SLLD        26
         ADRI        -2,X
         CPZR        X
         JE          C150
         SLRD        5
         JDX         $-1
C150:    EQU         $
         OR          COND
         STA         COND
         LA          COND+1
         ORR         A,B
         STB         COND+1
         IC          LG
         LBI         8
         JMP         C147
SLASH:   EQU         $
         IC          SIGN1
         LAI         2
CSIGNE:  EQU         $               < SIGNE.
         CPZ         SIGNE
         JNE         EMACQ
         ANDI        3
         ADRI        -4,A
         STA         SIGNE
         JMP         NEWCAR
EXCLAM:  CPI         '8D
         JE          EMACQ
CCHAIN:  EQU         $
         CPZ         INDASC
         JNE         NEWCAR          < DIRECTIVES 'ASCI' ET 'IDP'.
         JMP         C148            < ELEMENT ABSOLU.
FNBRE:   EQU         $               < FIN D'UN NBRE.
         DC          NACQ
         JMP         FNBR1
FSUILT:  EQU         $               < FIN D'UNE SUITE DE LETTRES.
         DC          NACQ
         JMP         FSUIL1
CHAIN:   EQU         $               < DEBUT CAHINE DE CARACTERES.
         LA          NACQ
         STA         NACQ1
         LAI         0
         SBT         7               < A=256
         LBI         24
         JMP         C146
FCHAIN:  EQU         $
         LA          INDASC          < Y=4 : CHAINE DE CARACTERES.
         ADR         A,Y
FNBR1:   EQU         $
         ADRI        1,Y             < Y=3 : ELEMENT ABSOLU.
COMPAS:  EQU         $
         ADRI        1,Y             < Y=2 : $.
FINPH:   EQU         $
         ADRI        1,Y             < Y=1 : FIN DE PHRASE.
FSUIL1:  EQU         $
         ADRI        1,Y             < Y=0 : SUITE DE LETTRES.
COMUT:   EQU         $
         ADRI        1,Y             < Y=-1 : #.
ETIQ:    EQU         $
         LA          LG              < Y=-2 : ETIQUETTE.
         ADRI        1,A
         SLRS        1
         STA         LG
         IC          NACQ
         CPZ         SIGNE
         JE          C151
         IC          SIGNE
C151:    EQU         $
         IC          SIGNE           < SIGNE=1(+),0,-1(-).
         LR          Y,A
         RSR
EMACQ:   EQU         $               < ERREUR DE SYNTAXE.
         LAI         1
         BR          MERR
         PAGE
<
<
<        I N S E R T I O N   S Y M BO L E   D A N S   T S Y M B  :
<
<
PINSET:  EQU         $
         BSR         TESAT
         LX          NSYMB
         LAD         &ATSYMB         < SAUVEGARDE ADRESSE MOT DE
                                     < COMMANDE.
         STA         NIVSYM
         LAD         SYMBOL
         LR          A,W
         LA          LG              < LONGUEUR DANS A.
         STA         &ATSYMB         < ET DANS LE MOT DE COMMANDE.
         ADRI        2,X
         LR          X,Y
         JAE         C153            < DIRECTIVE DE SECTIONNEMENT AVEC
                                     < LG=0.
C152:    EQU         $
         LB          0,W
         STB         &ATSYMB
         ADRI        1,X
         ADRI        1,W
         ADRI        -1,A
         JAG         C152
C153:    EQU         $
         STX         NSYMB
         ADRI        -1,Y
         LR          Y,X
         LA          &NIVSYM         < A=MOT DE COMMANDE.
         RSR
         PAGE
<
<
<        I N S E R T I O N   D ' U N   D E P L A C E M E N T
<                    D A N S   T DE P  :
<
<
PINSDP:  EQU         $
         BSR         TESAT
         LX          NDEP
         CPZ         BINARY          < BINARY=0 SI 'WORD'.
         LA          NIV
         JE          C154
         SBT         0               < 'JMP'.
C154:    EQU         $
         STA         &ATDEP
         LA          SOM
         STA         &ATDEP1
         LA          PAS
         STA         &ATDEP2
         ADRI        -3,X
         STX         NDEP
SORINS:  EQU         $
         RSR
         PAGE
<
<
<        T E S T   D E   S A T U R A T I O N   D E S   T A B L E S  :
<
<
PTESAT:  EQU         $
         LX          NSYMB
         LAD         &ATSYMB
         LR          A,B             < B=ADRESSE 1ERE MEMOIRE LIBRE
                                     < DE TSYMB.
         LX          NDEP
         LAD         &ATDEP          < A=ADRESSE 1ERE MEMOIRE LIBRE
                                     < DE TDEP.
         SBR         B,A
         CPI         4
         JL          C155
         RSR
C155:    EQU         $
         IF          SOLAR,,X200,
         PSR         B,Y
         LAI         1               < 2K SUPPLEMENTAIRES
         SLLS        11
         LR          A,Y
         SLLS        1
         AD          DEMMEM+2
         STA         DEMMEM+2
         LAD         DEMMEM
         SVC         0
         JNE         PLUMEM
         LX          NDEP            < DEPLACER TDEP
         LAD         &ATDEP
         ADRI        1,A
         LR          A,B
         ADR         Y,B
         NGR         X
         MOVE
         LA          ATDEP           < DEPLACEMENT DEBUT TABLE
         ADR         Y,A
         STA         ATDEP
         ADRI        -1,A
         STA         ATDEP1
         ADRI        -1,A
         STA         ATDEP2
         PLR         B,Y
         RSR
PLUMEM:  EQU         $
X200:    VAL         0
         LAI         9               < TABLES SATUREES.
         BR          MERR
         PAGE
<
<
<        R E C H E R C H E   S Y M B O L E   D A N S   T S Y M B  :
<
<
PRETIQ:  EQU         $
         LXI         0
C156:    EQU         $
         LR          X,A
         SB          NSYMB
         JAE         SRETIQ          < SYMBOLE NON TROUVE : A=0.
         LAD         &ATSYMB         < SAUVEGARDE ADRESSE DU MOT
                                     < DE COMMANDE.
         STA         NIVSYM
         LA          &ATSYMB
         TBT         10
         JC          C157            < ELIMINATION SYMBOLE EXT.
         TBT         8
         ADCR        L               < ELIMINATION SYMBOLE NON
                                     < DEFINI.
C157:    EQU         $
         ADRI        2,X
         ANDI        3
         CP          LG
         JE          C158
         ADR         A,X
         JMP         C156
C158:    EQU         $
         LR          A,B             < LONGUER DANS B.
         LAD         SYMBOL
         LR          A,W
         LYI         0
NEWORD:  EQU         $
         LA          &ATSYMB
         EOR         0,W
         ORR         A,Y
         ADRI        1,X
         ADRI        1,W
         ADRI        -1,B
         CPZR        B
         JNE         NEWORD
         CPZR        Y
         JNE         C156
         LA          LG
         ADRI        1,A
         SBR         A,X
         LA          &NIVSYM
SRETIQ:  EQU         $
         RSR                         < SYMBOLE TROUVE : A=MOT
                                     < DE COMMANDE.
         PAGE
<
<        R E C H E R C H E   P R O C H A I N
<        N O M   D E   S E C T I O N  :
<
<
PRECSC:  EQU         $
         LA          NSYMB
         CPR         A,X
         JE          SOREC           < I1=1.
         LY          &ATSYMB
         LBI         3
         ANDR        Y,B             < B=LONGUEUR SYMBOLE.
         ADRI        1,B
         ADRI        1,X
         LA          &ATSYMB         < A=ADRESSE DEBUT DE SECTION.
         ADR         B,X
         CPZR        Y
         JGE         PRECSC          < I1=0.
SOREC:   EQU         $
         RSR
         PAGE
<
<
<        R E C H E R C H E   S Y M B O L E
<        S U I V A N T   D A N S   T S Y M B  :
<
<
PSYMUL:  EQU         $
         LA          &ATSYMB
         ANDI        3
         ADRI        2,X
         ADR         A,X
         LA          NSYMB
         CPR         X,A             < TEST SI LIMITE ATTEINTE.
         RSR
         PAGE
<
<
<        E D I T I O N   D U   B I N A I R E  :
<
<
<        NOTA :
<                      EN MODE ' S' , LE BINAIRE
<                    EST ENREGISTRE DANS LA ZONE 'ABO'
<                    ET NON PAS SUR FICHIER SEQUENTIEL.
<
<
SPSO1:   EQU         $               < SORTIE UN QUADRUPLET.
         STBY        BUF
         SLLD        2
         SBT         30
         LXI         -3
SUIVAN:  EQU         $
         SCRD        6
         SLRS        10
         SBT         9
         PTY
         JNC         C159
         SBT         8
C159:    EQU         $
         STBY        &ABUF
         JIX         SUIVAN
SORTQ:   EQU         $
         CPZ         IBUFBN
         JNE         C160
         LXI         39              < RAZ DE BUFBIN.
         STZ         &ABUFBN
         JDX         $-1
C160:    EQU         $
         LXI         -4
C161:    EQU         $
         LBY         &ABUF           < ELIMINATION DES NULLS.
         JAG         C162
         LAI         'A0
         STBY        &ABUF
C162:    EQU         $
         JIX         C161
         LX          IBUFBN          < RANGEMENT DANS BUFBIN.
         LA          BUF
         STA         &ABUFBN
         ADRI        1,X
         LA          BUF+1
         STA         &ABUFBN
         ADRI        1,X
         STX         IBUFBN
         LBY         BUF
         CPI         '30
         JE          PERBIN          < COMMANDE 'EOF'.
         LA          CHECK           < CALCUL DU CHECKSUM.
         AD          BUF
         ADCR        A
         AD          BUF+1
         ADCR        A
         STA         CHECK
         LAI         40              < TEST SU BUFFER COMPLET.
         CPR         A,X
         JNE         SPERFO          < NON.
PERBIN:  EQU         $
         CPZ         LIST2
         JG          C163            < SECOND PASSAGE.
         IF          IGE,,,X100
         LAD         IOCB5
         SVC         0               < SORTIE BINAIRE SUR SGF.
X100:    VAL         0
         IF          IGE,X100,X100,
<
< SIMULATION D'UNE ECRITURE SUR
< FICHIER SEQUENTIEL :
<
         LB          ABO             < B=RECEPTEUR=ZONE IMPLANTEE
                                     < EN TETE DES 4 DERNIERS K.
         LA          ABUFBN
         RBT         0               < RAZ DU BIT INDEX.
         LXI         '50/2           < X=NBRE DE MOTS CONSTITUANT UN
                                     < ARTICLE DU FICHIER BINAIRE.
         MOVE                        < SIMULATION DE L'ECRITURE SGF.
         ADRI        '50/2,B         < MISE A JOUR DU POINTEUR
                                     < COURANT DE SIMULATION SGF.
         STB         ABO             < AND SAVE.
         LA          AI1
         RBT         0               < A=@CORPS(ITEM1).
         ADRI        -LTN,A          < POUR TENIR COMPTE DE LA ZONE
                                     < DE SAUVEGARDE DE L'EN-TETE
                                     < DE L'ITEM2.
         ADRI        -'50/2-LTN,A    < A=LIMITE SUPERIEURE DE LA
                                     < ZONE ABO.
         SBR         B,A             < A=ESPACE RESTANT LIBRE POUR
                                     < LA ZONE ABO.
         JALE        Z22             < ERREUR : BINAIRE OVERFLOW.
X100:    VAL         0
C163:    EQU         $
         STZ         IBUFBN
SPERFO:  EQU         $
         RSR
         IF          IGE,X100,X100,
<
< TRAITEMENT DES ERREURS :
<
Z22:     EQU         $
         ADRI        -1,K            < RECUPERATION DU BSR D'APPEL.
         BR          ERA0            < ERREUR 0 D'ASSEMBLAGE.
X100:    VAL         0
<
<
<
SPSO2:   EQU         $               < SORTIE 2 QUADRUPLETS.
         STBY        BUF
         BSR         PSORTQ          < SORTIE 1ER QUADRUPLET.
         LA          BUF+2
         STA         BUF
         LA          BUF+3
         STA         BUF+1
         JMP         SORTQ           < SORTIE 2EME QUADRUPLET.
<
<
<
PSOSYM:  EQU         $               < SORTIE SYMBOLE DONT A=ADRESSE.
         BSR         TRASYM
         LAI         6
         BSR         SORMES
         RSR
<
<
<
PSORM:   EQU         $               < SORTIE MESSAGES NON ERREUR.
         STA         IOCB3+2
         PSR         X
         LAD         IOCB3
         SVC         0
         PLR         X
         RSR
<
<
<
PSORCL:  EQU         $               < SORTIE RC-LF.
         LA          RCLF
         STA         SYMBOL
         LAI         2
         BSR         SORMES
         RSR
         PAGE
<
<
<        C O N V E R S I O N S   N U M E R I Q U E S  :
<
<
PCONV:   EQU         $               < CONVERSION HEXADECIMALE 4
                                     < CHIFFRES.
         BSR         HEXA2
         LR          A,Y             < Y=POIDS FORTS.
         BSR         HEXA2
         RSR                         < A=POIDS FAIBLES.
<
<
<
PHEXA:   EQU         $               < CONVERSION HEXADECIMALE 2
                                     < CHIFFRES.
         LAI         0
         STZ         ZTR
         SLLD        4
         BSR         BSUPL
         STBY        ZTR
         LAI         0
         SLLS        4
         SLLD        4
         BSR         BSUPL
         OR          ZTR
         RSR
<
<
<
PCOV10:  EQU         $               < CONVERSION DECIMALE 2 CHIFFRES.
         ANDI        '3F
         SLRD        16
         DV          M10
         BSR         BSUPL           < CHIFFRE DES DIZAINES.
         XR          A,B
         BSR         BSUPL           < CHIFFRE DES UNITES.
         SLLS        8
         SCRD        8
         RSR
<
<
<
SUPL:    EQU         $               < TRAITEMENT DES BITS 8,9,10.
         CPI         9
         JLE         C164            < CHIFFRE.
         ADRI        -9,A            < LETTRE.
         ORI         '40
         JMP         C165
C164:    EQU         $
         ORI         '30
C165:    EQU         $
         RSR                         < LE CALCUL DE PARITE A ETE SUPPRME.
         PAGE
PTRAS:   EQU         $               < TRANSFERT DANS SYMBOL.
         PSR         X
         LXI         3               < NETTOYAGE SYMBOL.
         STZ         &ASYMB
         JDX         $-1
         STA         NIVSYM          < A=ADRESSE DU SYMBOLE.
         LA          &NIVSYM
         ANDI        3               < A=LONGUEUR.
         JAE         LONUL           < LONGUEUR NULLE.
         LXI         1
         IC          NIVSYM
C166:    EQU         $
         IC          NIVSYM
         LB          &NIVSYM
         STB         &ASYMB
         ADRI        1,X
         ADRI        -1,A
         JAG         C166
LONUL:   EQU         $               < RESTAURATION DE X.
         PLR         X
         RSR                         < SAVE X DANS ZTR.
<
<
<
PTAS:    EQU         $               < TRANSFERT SYMBOLE DANS BUF.
         LA          SYMBOL
         LB          SYMBOL+1
         SLRD        8
         STA         BUF
         STB         BUF+1
         LA          SYMBOL+1
         STA         BUF+2
         LA          SYMBOL+2
         STA         BUF+3
         LAI         '22
         STBY        BUF+2
         RSR
         PAGE
PSORC:   EQU         $               < EDITION SECTION.
         BSR         SORCLF
         BSR         PAGIN
         LYI         -1
         LR          Y,W
C167:    EQU         $
         LXI         0
         ADRI        1,W             < LETTRE SUIVANTE (1ERE LETTRE
                                     < EST 'A'.
PSORC1:  EQU         $
         LA          &ATSYMB
         SLRD        8
         CPI         '80             < ELIMINATION ADRESSE DE FIN
                                     < DE SECTION.
         JE          NEDIT
         ANDI        '7F
         CP          BINARY
         JNE         NEDIT           < APPARTIENT A AUTRE SECTUON.
         TBT         16
         JC          NEDIT           < ELIMINATION SYMBOLE NON DEFINI.
         LAD         &ATSYMB
         BSR         TRASYM
         CPZ         &ATSYMB
         JG          EDITER
         CPZR        W
         JNE         NEDIT           < NOM DEJA EDITE.
         LA          LIBSEC
         STA         SYMBOL
         LA          LIBSEC+1
         STA         SYMBOL+1
         LAI         4
         JMP         EDNOM
EDITER:  EQU         $
         LBY         SYMBOL
         ANDI        '1F
         CPR         A,W
         JNE         NEDIT           < LETTRE NON CONFORME.
         ADRI        1,X
         LB          &ATSYMB         < MOT VALEUR.
         LA          CARSP+1
         STA         SYMBOL+2
         BSR         CONVER          < CONVERSION HEXADECIMALE.
         STA         SYMBOL+1
         STY         SYMBOL
         ADRI        -1,X
         LAI         6
EDNOM:   EQU         $
         BSR         SORMES
         LAD         &ATSYMB         < A=ADRESSE SYMBOLE.
         BSR         TRASYM
         LAI         6
         BSR         SORMES
         BSR         SORCLF          < RC-LF.
         BSR         PAGIN
NEDIT:   EQU         $
         BSR         SYMUL
         JNE         PSORC1
         LAI         26
         CPR         A,W
         JNE         C167            < LETTRE 'Z' NON ATTEINTE.
         BSR         SORCLF
         BSR         PAGIN
         RSR
         PAGE
<
<
<        E D I T I O N   L I S T I N G  :
<
<
PLIST:   EQU         $               < SORTIE LISTING (ZACQ1).
         STB         BINARY
         CPZ         SITUAT
         JG          C168            < ON EST DANS UNE DSEC.
         BSR         ASPSO1          < SORTIE MOT BINAIRE.
C168:    EQU         $
         BSR         VERPA           < VERIFICATION DEPASSEMENT 32K.
         LBY         BUF
         CPI         'AC
         JE          PLIS1           < 'DZS'.
         LX          SINGER          < CARACTERE SPECIAL.
         LA          &ACARSP
         STA         &ZACQ12
         LB          BINARY          < B=MOT.
         BSR         CONVER          < CONVERSION.
         STY         &ZACQ13         < POIDS FORTS DU MOT.
         STA         &ZACQ14         < POIDS FAIBLES DU MOT.
PLIS1:   EQU         $               < SORTIE LISTING ('DZS' + 'EQU').
         LB          DEBRES+2
         BSR         CONVER
         LR          A,L
         LA          VALDIR
         CPI         17
         JE          ADCOMP          < '$EQU'.
         LR          L,A
         CPZ         INDZS
         STZ         INDZS
         JG          ADCOMP          < LA PHRASE PRECEDENTE ETAIT 'DZS'.
         ANDI        7
         JAE         ADCOMP          < SORTIE ADRESSE COMPLETE.
         LR          L,A
         SLLS        8
         ORI         'A0
         SCLS        8
         LY          CARSP+1
         JMP         C169
ADCOMP:  EQU         $
         LR          L,A             < POIDS FORT DE L'ADRESSE.
C169:    EQU         $
         STY         &ZACQ10
         STA         &ZACQ11         < POIDS FAIBLES DE L'ADRESSE.
         CPZ         LIMSU2
         JE          PAGENE          < PAS DE GENERATION DE DEPLACEMENT.
         CPZ         ETAPH
         JG          PAGENE          < PAS DE GENERATION DE DEPLACEMENT
                                     < ('$EQU').
         LA          DEBRES+2        < A=PAS SAUVEGARDE.
         SB          DEBSEC
         ADRI        -128,A
         CPI         127
         JG          PAGENE          < DEPLACEMENT SUPERUEUR A 127.
         LR          A,B
         BSR         CONVER
         STA         &ZACQ16         < POIDS FAIBLES DU DEPLACEMENT.
         LA          OUVR
         STA         &ZACQ15
         LA          FERM
         STA         &ZACQ17
PAGENE:  EQU         $               < SORTIE DU LISTING.
         LAD         IOCB4
         SVC         0
         BSR         PAGIN
         LAI         18              < PLUS DE SORTIE DU SYMBOLIQUE.
         STA         IOCB4+2
         LA          RCLF
         STA         &ZACQ18
         LA          VALDIR
         CPI         19
         JNE         C170
         IC          INDZS           < PHRASE EST 'DZS'.
C170:    EQU         $
         RSR
<
<
PPAGE:   EQU         $               < SAUT DE PAGE.
         PSR         X
         IF          IGE,,,X100
         LAI         2
         STA         IOCB3+2
         LAI         '0D
         SWBR        A
         ORI         "@"
         STA         SYMBOL
X100:    VAL         0
         LAD         IOCB3
         SVC         0
         PLR         X
         STZ         NBLIG
         RSR
<
<
<
PPAGIN:  EQU         $               < MISE EN PAGE.
         IC          NBLIG
         LA          NBLIG
         IF          IGE,,,X100
         CPI         55
X100:    VAL         0
         IF          IGE,X100,X100,
         CPI         NBLIGV          < TEST PAR RAPPORT AU NBRE DE
                                     < LIGNES SUR UN ECRAN DE VISU.
X100:    VAL         0
         JE          PPAGE           < SAUT DE PAGE EN BAS.
         RSR
         PAGE
<
<
<        T R A I T E M E N T   D U   J U M P  :
<
<
PJUMP:   EQU         $
         CP          DEBSEC
         JL          C172
         CPZR        W
         JNE         C171
         CP          FINSEC
         JLE         C171
         STA         FINSEC          < ADRESSE LIMITE DE SECTION.
C171:    EQU         $
         SBR         Y,A
         CPI         -128
         JL          C172            < HORS D'ATTEINTE.
         CPI         127
         JG          C172            < HORS D'ATTEINTE.
         RSR
C172:    EQU         $
         LAI         11              < HORS-LIMITE DE SECTION.
         BR          MERR
<
<
<
VERPAS:  EQU         $               < VERIFICATION DU PAS.
         CPZ         PAS
         JL          C173
         RSR
C173:    EQU         $
         LAI         12              < PASSAGE AU-DELA DE 32K.
         BR          MERR
<
<
<
PSAV:    EQU         $               < SAVE POUR LES CAS D'ERREURS.
         LXI         LSAV
C174:    EQU         $
         LA          &ASAVE
         STA         &AREST
         JDX         C174
         RSR
         PAGE
<
<
<        T R A I T E M E N T   D E S   E R E U R S  :
<
<
         IF          IGE,X100,X100,
PSTH:    EQU         NR13            < ERREUR 13.
PSTS:    EQU         NR13            < ERREUR 13.
X100:    VAL         0
ERR:     EQU         $
         STA         NR
NR0:     LXI         LSAV            < RESTORE VALEURS SAUVEGARDEES.
C175:    EQU         $
         LA          &AREST
         STA         &ASAVE
         JDX         C175
         LA          MOT1
         JAE         C176
         STA         &NIV
         IC          NIV
         LA          MOT2
         STA         &NIV
C176:    EQU         $
         LA          DEPLA2          < PREPARTION MESSAGE D'ERREUR.
         BSR         CONV10
         STA         SYMBO2+4        < DEPLACEMENT.
         LA          NR
         BSR         CONV10
         STA         ZTR             < NUMERO D'ERREUR.
         BSR         SORCLF
         LAD         IOCB2
         SVC         0
         STZ         BASCUL          < CHANGEMENT DU NVP D'ENTREE.
         IF          IGE,,,X100
         LA          NR              < TEST DE L'ERREUR PRODUITE ???
         CPI         17              < EST-CE LA FATALE ERREUR '17' ???
         JNE         E1947           < NON , L'ASSEMBLAGE PEUT SE
                                     < POURSUIVRE ....
<
< CAS DE LA FATALE ERREUR '17' :
<
         EORR        W,W             < RAZ DE LA BASE W.
         BR          ABORT-ZERO,W    < VERS L'EDITION DES SYMBOLES
                                     < NON DEFINIS , PUIS L'ABORT....
<
< CAS DES AUTRES ERREURS :
<
E1947:   EQU         $
         BR          RETER
X100:    VAL         0
         IF          IGE,X100,X100,
         LAI         BRANCH-ZERO
         LR          A,W             < W=@BRANCH.
         BR          9,W             < LES ASSEMBLAGES EN ERREUR
                                     < SONT ABORTES (VERS 'EOT').
X100:    VAL         0
         PAGE
         IF          SOLAR,,X200,
<
<
<        T R A I T E M E N T   D E S   C O N S T A N T E S
<                    F L O T T A N T E S  :
<
<
TFLOAT:  EQU         $
         IC          NACQ
<
< ENTRY DU MODULE :
<
         LAI         -1
         LR          A,W
         LYI         0
         LBI         "+"             < SIGNE DE LA MANITISSE PAR DEFAUT.
         LX          NACQ
         LBY         &AZACQ
         CPI         '20
         JE          TFLOAT          < ELIMINATION DES 'SPACE'.
         CPI         "+"
         JE          C177
         CPI         "-"
         JNE         C178
C177:    EQU         $
         LR          A,B             < SAUVEGARDE DU SIGNE DE LA
                                     < MANTISSE DANS B.
MANTIS:  EQU         $
         IC          NACQ
C178:    EQU         $
         LX          NACQ
         LBY         &AZACQ
         CPI         "."
         JNE         C179
         LR          Y,W             < ON A TROUVE UN 'POINT'.
         JMP         MANTIS
C179:    EQU         $
         CPI         "E"
         JE          EXPOS           < ON A TROUVE LE DEBUT DE
                                     < L'EXPOSANT.
         CPI         '0D
         JE          C180            < FIN DE CARTE SANS EXPOSANT.
         RBT         8
         CPI         '30             < TEST PAR RAPPORT A '0'.
         JL          NFLOAT          < ERREUR.
         CPI         '39             < TEST PAR RAPPORT A '9'.
         JG          NFLOAT          < ERREUR.
         LBY         &AZACQ
         LR          Y,X
         STBY        &AZFL
         LR          X,A
         CPI         8               < LA MANTISSE COMPORTE-T'ELLE
                                     < PLUS DE 8 CHIFFRES ???
         JE          NFLOAT          < OUI , ERREUR.
         ADRI        1,Y
         JMP         MANTIS          < AU CHIFFRE SUIVANT.
<
< CAS OU ON A TROUVE LA FIN DE LA MANTISSE :
<
EXPOS:   EQU         $
         IC          NACQ            < PASSAGE AU CARACTERE SUIVANT.
C180:    EQU         $
         PSR         Y
         SLLD        8
         ORR         Y,B
         STB         ZFLOAT
         CPZR        W
         JGE         C181            < CORRECTION DE L'EXPOSANT.
         LR          Y,W             < PAS DE '.' : LA DIFFERENCE=0.
C181:    EQU         $
         SBR         Y,W
         BSR         CALEX           < CALCUL DE L'EXPOSANT.
         JAE         C182            < OK.
<
< ERREURS FLOTTANTES :
<
CDF:     EQU         $               < A T T E N T I O N  : PROVISOIRE !
NFLOAT:  EQU         $
         LAI         1
         BR          MERR
<
< CAS DES BONS NBRES FLOTTANTS :
<
C182:    EQU         $
         LA          SOM
         ADR         W,A             < CORRECTION DE L'EXPOSANT.
         PLR         X
         STBY        &AZFL
         LAD         ZFLOAT
         LR          A,Y
         LXI         0
         STZ         ZCDF
         BSR         ACDF            < CONVERSION ...
         CPZ         ZCDF            < COMMENT CELA S'EST-IL PASSE ???
         JNE         NFLOAT          < MAL , ERREUR.
         PSR         B               < BIEN OK.
         IC          PAS
         LR          A,B
         LAI         '24
         IC          INFL
         BR          ACOMFL          < C'EST TOUT ...
X200:    VAL         0
         PAGE
         IF          IGE,,,X100
<
<
< LECTURE D'UNE CARTE SUR LECTEUR OU SUR FICHIER.
<
<
SPLCNF:  EQU         $
         LA          IOCB            < LECTURE FICHIER?
         SLRS        8
         CPI         1
         JNE         C1100
         LAD         IOCB
         SVC         0
         LAI         0
         RSR
C1100:   EQU         $
         LX          INDIN           < LECTURE SUR FICHIER
         LBY         &ABFSGF         < FIN DE SECTEUR?
         CPI         'FF
         JNE         C1101
         LAD         IOCB            < OUI - RELORE
         SVC         0
         JNE         C1108
         CPZ         &ABFSG0
         JL          C1108
         STZ         INDIN           < INDEX A ZERO
C1101:   EQU         $
         LXI         -40             < METTRE LA CARTE A BLANC
         LAI         '20
         SLLS        8
         ORI         '20
         STA         &AZACQX
         JIX         $-1
         LBI         -80             < INDEX OUT
         LX          INDIN           < INDEX IN
C1102:   EQU         $
         LBY         &ABFSGF         < RELEVER UN CARACTERE
         ADRI        1,X
         CPI         'FE             < FIN DE CARTE
         JE          C1107
         TBT         8               < EST-CE REPETITION /TABULATION?
         JC          C1103
         XR          X,B             < NORMAL - LE PLACER
         STBY        &AZACQX
         ADRI        1,X
         XR          X,B
         JMP         C1102
C1103:   EQU         $
         RBT         8
         CPI         80              < REPETITION OU TABULATION?
         JGE         C1104
         ADRI        -80,A
         LR          A,B
         JMP         C1102
C1104:   EQU         $
         ADRI        -80,A           < REPETITION
         LR          A,Y
         LBY         &ABFSGF         < CARACTERE A REPETER
         ADRI        1,X
         XR          X,B             < LE PLACER
C1105:   EQU         $
         STBY        &AZACQX
         ADRI        1,X
         CPZR        Y               < FINI?
         JE          C1106
         ADRI        -1,Y            < NON - CONTINUER
         JMP         C1105
C1106:   EQU         $
         XR          X,B
         JMP         C1102
C1107:   EQU         $
         STX         INDIN
         LAI         0               < CODE DE RETOUR
         RSR
C1108:   EQU         $
         LAD         CLOS5S          < FIN DE FICHIER - LE FERMER
         SVC         0
         STZ         INDIN           < OBLIGER LA LECTURE SUR LE SUIVANT
         LXI         0
         LAI         'FF
         STBY        &ABFSGF
C1109:   EQU         $
         LAD         CCI             < RETOYR MONITEUR
         SVC         0               < POUR REASSIGNATION DE 5
         LAD         OPEN5O          < OUVRIR 5
         SVC         0
         JNE         C1109
         LAI         1
         RSR
X100:    VAL         0
         PAGE
<
<
<        T O P   U T I L E   D E   S Y M B O L  :
<
<
TOP:     EQU         $
         IF          IGE,X100,X100,
<
<
<        V A L I D A T I O N   I M P L A N T A T I O N  :
<
<
X13:     VAL         TOP-ZBR*2       < TAILLE DE LA BRANCHE ' Z'.
X10:     VAL         ZERO-BRANCH+PILE-LTNI-LTNI*2-X13
ZEROV2:  EQU         ZERO+X10        < ERREUR D'ASSEMBLAGE SI
                                     < MAUVAISE IMPLANTATION.
         DZS         X10/2+1         < CLEAR PAR PRUDENCE.
X100:    VAL         0
         PAGE
         IF          IGE,X100,X100,
<
<
<        G E N E R A T I O N   D E   L A   B R A N C H E   '   S '  :
<
<
         LOCAL
LOC:     EQU         $
SGN1:    WORD        '0402           < DEMANDE DE GENERATION DE LA 1ERE
                                     < BRANCHE D'OVERLAY (' S').
         WORD        BRANCH-ZERO*2
         WORD        ZERO-BRANCH+PILE-LTNI-LTNI*2
         WORD        -1
SGN2:    WORD        '0402           < DEMANDE DE GENERATION DE LA 2EME
                                     < BRANCHE (' Z') DE L'OVERLAY.
AZBR:    WORD        ZBR-ZERO*2      < ADRESSE D'OCTET DE LA 2EME
                                     < BRANCHE D'OVERLAY (' Z').
         WORD        ZERO-BRANCH+PILE-LTNI-LTNI*2
         WORD        -1
MOK:     BYTE        '6D;"O"
         ASCI        "K!"            < MESSAGE DE FIN DE GENERATION.
DEMOUT:  WORD        '0202           < DEMANDE DE SORTIE DU MESSAGE OK.
         WORD        MOK-ZERO*2
         WORD        4
<
< INITIALISATION DE LA GENERATION :
<
         PROG
         WORD        COMMUN          < VALEUR INITIALE DE LA BASE L.
         WORD        LOC+128         < VALEUR INITIALE DE LA BASE L.
GENERE:  EQU         $
         LRP         K
         ADRI        -1,K
         PLR         C,L             < INITIALISATION DES BASES C & L.
         LAD         KSTORE
         LR          A,K             < INITIALISATION DU REGISTRE K.
<
< MISE A JOUR DE DEMSGN :
<
         LA          AZBR
         STA         DEMSGN+1        < DEMSGN EST INITIALISEE AVEC
                                     < LA 2EME BRANCHE D'OVERLAY (' Z')
<
< TENTATIVE DE GENERATION DE ' Z' :
<
GEN1:    EQU         $
         LAD         SGN2
         SVC         0               < ENVOI DE LA DEMANDE AU SGN.
         JNE         GEN2            < ERREUR DE GENERATION.
<
< TENTATIVE DE GENERATION DE ' S' :
<
GEN4:    EQU         $
         LAD         SGN1
         SVC         0               < TENTATIVE DE GENERATION DE LA
                                     < 1ERE BRANCHE (' S').
         JNE         GEN5            < ERREUR DE CHARGEMENT.
<
< CAS D'UNE GENERATION OK :
<
         LAD         DEMOUT
         SVC         0               < ENVOI DU MESSAGE OK.
GEN3:    EQU         $
         LAD         CCI
         SVC         0               < LORS D'1NE BONNE GENERATION ,
         JMP         GEN3            < ON FAIT UN RETOUR DEFINITIF AU
                                     < CCI.
<
< ERREUR DE GENERATION DE ' Z' :
<
GEN2:    EQU         $
         LAD         CCI
         SVC         0               < ON FAIT UN RETOUR TEMPORAIRE
                                     < AU CCI , POUR COMPLETER LES
                                     < ASSIGNATIONS MANQUANTES.
         JMP         GEN1            < VERS UNE NOUVELLE TENTATIVE.
<
< ERREUR DE GENERATION DE ' S' :
<
GEN5:    EQU         $
         LAD         CCI
         SVC         0               < RETOUR AU CCI.
         JMP         GEN4            < TRY AGAIN ....
X100:    VAL         0
         PAGE
         IF          IGE,,,X100
<
<
<        GENERATION EN TANT QU'ITEM.
<
<
FITEM:   EQU         $
LGIT:    VAL         FITEM-DBCHIT*2
SIZE:    EQU         ZERO+LGIT
         LOCAL
LONGR:   VAL         FITEM-DITEM
DEMITE:  WORD        '0402           < DEMANDE DE GENERATION
         WORD        DITEM-ZERO*2
         WORD        LONGR*2
         WORD        6
         PROG
         WORD        DEMITE+128
         WORD        COMMUN
GENERE:  EQU         $
         LRP         L
         LR          L,C
         LA          -2,L
         LR          A,L
         LA          -1,C
         LR          A,C
         IF          SOLAR,,X200,
         LA          KSTOR
X200:    VAL         0
         IF          SOLAR,X200,,X200
         LAD         KSTORE
X200:    VAL         0
         LR          A,K
ITEDEM:  EQU         $
         LAD         DEMITE
         SVC         0
         JE          FINGEN
         LAD         CCI
         SVC         0
         JMP         ITEDEM
FINGEN:  EQU         $
         LAD         CCI
         SVC         0
         JMP         FINGEN
         END         GENERE



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.