<***********************************************************************
<*                                                                     *
<*                                                                     *
<*       L I N K - E D I T   T R A N S L A T E U R                     *
<*       A U T O T R A N S L A T A B L E   L I N K                     *
<*                                                                     *
<*       CE CHARGEUR CHARGE UN PROGRAMME DANS UNE PARTITION            *
<*       MINIMUM DE LONGUEUR 'LGINI' (MOINS SA LONGUEUR 'LGCHGM').     *
<*       SI LE PROGRAMME EST TROP GROS, IL SE DEPLACE DE 'LGDEPL'.     *
<*       LE MAXIMUM ACTUEL IMPOSE PAR LE SYSTEME EST DE 8K.            *
<*       LA VERSION LINK DEMANDE LE NOM DE L'ITEM A GENERER            *
<*       SI ON NE VEUT PAS DE CETTE OPTION, ENTRER UN NOM VIDE         *
<*       LA VERSION LKDK CHARGE EN ABSOLU SUR DISQUE                   *
<*       ELLE DEMANDE LE NUMERO DE DISQUE(2 OU 3),                     *
<*       L'ADRESSE DE DEBUT DE CHARGEMENT, L'ADRESSE DE FIN            *
<*       POUR VERIFICATION, ET UNE ADRESSE DE TRANSLATION              *
<*       PERMETTANT UN CHARGEMENT DECALE.                              *
<*       LES DEUX VERSIONS DEMANDENT LES NOMS DE FICHIERS A CHARGER    *
<*                                                                     *
<*       MESSAGES D'ERREURS :                                          *
<*           - 0X : ERREUR SYSTEME OU ASSEMBLEUR                       *
<*               - '01 : ERREUR LORS DE LA LECTURE DU BINAIRE          *
<*           - 1X : ERREURS DUES A L'ASSEMBLEUR                        *
<*               - '11 : NUMERO DE COMMANDE ERRONNEE                   *
<*               - '12 : COMMANDE ABSOLUE EN TRANSLATABLE              *
<*               - '13 : ERREUR DE CHECKSUM                            *
<*           - 2X : ERREUR DE PROGRAMMATION                            *
<*               -'21 : ADRESSE GENEREE DANS UNE INSTRUCTION > 32K     *
<*               - '22 : ADRESSE DE CHARGEMENT > 32K                   *
<*               - '23 : PROGRAMME DEPASSANT LA PARTITION MEMOIRE MAXI *
<*               - '24 : ENTRY DEJA DEFINI                             *
<*               - '25 : EXTERN NON DEFINI(S)                          *
<*               - '26 : DEBORDEMENT DE LA TABLE DE REFERENCES         *
<*           - 3X : ERREUR CHARGEMENT DISQUE                           *
<*               -'31 : DEPASSEMENT @ FIN CHARGEMENT                   *
<*                                                                     *
<*                                                                     *
<***********************************************************************
         PAGE
         IDP         "LINK - RELEASE 07/11/78"
         IF          ORDI-"S",XWOR%,,XWOR%
QUANTA:  VAL         3               < QUANTA INDIQUE LE NOMBRE
                                     < DE SECTEURS PHYSIQUES DANS UN
                                     < SECTEUR LOGIQUE
         IDP         "VERSION SOLAR"
XWOR%:   VAL         0
         IF          ORDI-"T",XWOR%,,XWOR%
QUANTA:  VAL         1               < QUANTA INDIQUE LE NOMBRE DE
                                     < SECTEURS PHYSIQUES DANS UN
                                     < SECTEUR LOGIQUE
         IDP         "VERSION T1600"
XWOR%:   VAL         0
         IDP         "SERGE SOUZEAU"
         PAGE
<***********************************************************************
<*                                                                     *
<*       RESERVATION DE PLACE POUR LE PROGRAMME A CHARGER.             *
<*                                                                     *
<***********************************************************************
         TABLE
<***********************************************************************
<*                                                                     *
<*       VALEURS IMPORTANTES.                                          *
<*                                                                     *
<***********************************************************************
LGINI:   VAL         '800            <  LONGUEUR INITIALE PARTITION
LGDEPL:  VAL         '800            <  LONGUEUR DU DEPLACEMENT
LGCHSB:  VAL         '3D7            < LONGUEUR DU CHARGEUR SANS LE
                                     < BUFFER BINAIRE
LGCHGM:  VAL         128*QUANTA+LGCHSB < LONGUEUR REELLE DU CHARGEUR
SPROG:   VAL         LGINI-LGCHGM-'15 < PLACE INITIALEMENT LIBRE
<***********************************************************************
<*                                                                     *
<*       INTERFACE AVEC CMS4.                                          *
<*                                                                     *
<***********************************************************************
ZERO:    EQU         $               <  ZERO TRANSLATABLE DU PROGRAMME
         DZS         'C
DITEM:   EQU         $
         ASCI        "LINK"
         BYTE        '04;'D0
DBCHIT:  EQU         $
         WORD        SIZE
         WORD        PLOAD
<***********************************************************************
<*                                                                     *
<*       ENTREE DANS LE PROCESSEUR.                                    *
<*                                                                     *
<***********************************************************************
         WORD        LOAD
         PROG
PLOAD:   EQU         $
         LRP         L
         BR          -1,L
<***********************************************************************
<*                                                                     *
<*       ZONE RESERVEE POUR CHARGER LE PROGRAMME.                      *
<*                                                                     *
<***********************************************************************
         DZS         SPROG
TOUDEB:  EQU         $
BUFBIN:  DZS         128*QUANTA      < BUFFER D'ENTREE DU BINAIRE
BUFREF:  DZS         128             < BUFFER POUR LES REFERENCES
         PAGE
<***********************************************************************
<*                                                                     *
<*       COMMON.                                                       *
<*                                                                     *
<***********************************************************************
         COMMON
COM:     EQU         $
BUFFER:  DZS         40              <  BUFFER D'ECRITURE DES MESSAGES
INDEX:   WORD        128*QUANTA-1/3*3*2 < INDEX DU BUFFER BINAIRE.
NBREF:   WORD        0               < NB DE REFERENCES
XBUFRF:  WORD        -128            < PT SUR LE BUFFER DES REFERENCES
NORFCP:  DZS         1               < COMPTAGE DES REFERENCES EXISTANTES
ECRREF:  WORD        '0C02           < ECRITURE REFERENCES EN SCRATCH
         WORD        BUFREF-ZERO*2
         WORD        256
         WORD        0
LECREF:  WORD        '0C00           < LECTURE
         WORD        BUFREF-ZERO*2
         WORD        256
         WORD        0
KSTORE:  DZS         20              <  PILE POUR K
CHKSUM:  DZS         1               <  CHECKSUM
ABSMOD:  WORD        -1              <  INDICATEUR TRANSLATABLE-ABSOLU
ADSTOC:  DZS         2               <  QUADRUPLET 'AU FRAIS'
PAFINI:  DZS         1               <  RELAI POUR SUITE DE COMMANDE
FINMOD:  DZS         1               <  INDICATEUR DE FIN DE MODULE
CPTLOD:  DZS         1               <  COMPTEUR DE REPEAT LOAD
OPNBO:   WORD        '0305           <  OPEN-OLD ENREGISTREMENT
         WORD        1               <  CLE=1.0
         WORD        0
CCI:     WORD        1               <  RETOUR AU CCI SI  ERREUR
IOCBIN:  WORD        '0308           <  LECTURE MODE SAVE
         WORD        BUFBIN-ZERO*2
         WORD        QUANTA*128*2
IOCBL:   WORD        '0202           <  SORTIE LISTING
         WORD        BUFFER-ZERO*2
         WORD        0
<***********************************************************************
<*                                                                     *
<*       ZONE COMPRENANT DES ADRESSES RELATIVES A INCREMENTER          *
<*       LORS DE LA TRANSLATION DU CHARGEUR.                           *
<*       ACCMOD DOIT TOUJOURS ETRE LE DERNIER.                         *
<*                                                                     *
<***********************************************************************
ADEBCM:  EQU         $               <  DEBUT ZONE A TRANSLATER
MAXMEM:  WORD        TOUDEB          <  LIMITE DU PROGRAMME
ADLANC:  WORD        DEBPG           <  DEBUT DU PROGRAMME CHARGE
RELBUF:  WORD        BUFBIN+1,X      <  RELAI BUFFER BINAIRE BIT INDEX
ABUFB:   WORD        BUFBIN
ABUFRF:  WORD        BUFREF+128,X
SORMES:  WORD        ENTMOT          <  SP DE SORTIE QUESTIONS
MERCLF:  WORD        MSGRC           <  SP DE SORTIE DE CR-LF
MESER:   WORD        MSGERR          <  SP DE SORTIE D'ERREURS
BANDEF:  WORD        FINBAN
LITQ:    WORD        SPLITQ          <  SP DE LECTURE 1 QUADRUPLET
AUFRAI:  WORD        ADSTOC+2,X      <  QUADRUPLET 'AU FRAIS'
TABCDE:  WORD        TABAIG,X        <  AIGUILLAGE SUIVANT COMMANDE
TABAIG:  WORD        DEBUT           <  CHARGER EN
         WORD        SUITE           <  CHARGER A LA SUITE SANS TRANSL.
         WORD        LANCT           <  ADRESSE DE LANCEMENT
         WORD        REPEAT          <  REPEAT LOAD
         WORD        CHECK           <  FIN BANDE ET CHECKSUM
         WORD        COMENT          <  COMMENTAIRE
         WORD        PACDE           <  SUITE DE COMMANDE
         WORD        TRANSL          <  CHARGER A LA SUITE EN TRANS.
         WORD        REMADR          <  REMONTER CHAINE ADRESSES
         WORD        DEPADR          <  DEPLACEMENT SUR ADRESSE
         WORD        LECTUR          <  DEBUT DE PST
         WORD        NSECT           <  NOM DE SECTION
         WORD        ENT             <  ENTRY
         WORD        REMJMP          <  DEF. DE REF. AVANT RELATIVE
TRANSB:  WORD        BTRANS          <  SP DE TRANSLATION DE B
RANGB:   WORD        VERIFW          <  SP RANGE B EN VERIFIANT ADRESSE
NEWCHG:  WORD        AUTMOD          <  RELANCE DU MODULE
AREMA2:  WORD        REMAD2          <  SUITE DE COMMANDE CHAINE
ADEPA2:  WORD        DEPAD2          <  SUITE DE COMMANDE DEPLACEMENT
ADRFAT:  WORD        RFATAL          <  TRAITEMENT ERREUR FATALE
ADLECT:  WORD        LECTUR          <  LECTURE DE QUADRUPLETS
AREXT1:  WORD        REXT1           < SUITE DE COMMANDE EXT
AREXT2:  WORD        REXT2
AREXT3:  WORD        REXT3
ASECT1:  WORD        SECT1           < SUITE DE COMMANDE SECTION
ASECT2:  WORD        SECT2
ARENT1:  WORD        RENT1
ARENT2:  WORD        RENT2
ARENT3:  WORD        RENT3
ARJMP2:  WORD        REMJM2          <  SUITE DE COM. REF. AVANT REL.
CHAINE:  WORD        SPCHAI          < SP DE REMONTEE D'UNE CHAINE D'@
CHREF:   WORD        SPCHRF          < SP DE RECHERCHE DE REFERENCE
PLNOM:   WORD        SPLNOM          < SP DE PLACEMENT NOM REFERENCE
SORCAR:  WORD        PRECAR          <  SORTIE DE 3 CARACTERES
SORC6:   WORD        SORTI6          < SORTIE DE 6 CARACTERES
SORADR:  WORD        ECRADR          <  SORTIE ADRESSE
SORHEX:  WORD        BUFFER+3,X      <  POUR ADRESSE RELATIVE
AZERCH:  WORD        ZEROCH          <  ADRESSE DE MISE A ZERO CHARGEUR
ADDEBX:  WORD        TOUDEB,X        <  DEBUT DE MISE A ZERO
AFINZ:   WORD        FINZER          <  FIN DE MISE A ZERO DU CHARGEUR
ACCMOD:  WORD        AFINCM,X        <  FIN DE MODIFICATION
                                     <  LORS DU DEPLACEMENT DU CHARGEUR
AFINCM:  EQU         $               <  FIN DE ZONE A TRANSLATER
<***********************************************************************
<*                                                                     *
<*       FIN DE ZONE D'ADRESSES A TRANSLATER.                          *
<*                                                                     *
<***********************************************************************
ADDEB:   WORD        TOUDEB          <  DEBUT DU CHARGEUR
NBCMOD:  VAL         AFINCM-ADEBCM   <  NB D'ADRESSES A MODIFIER
DEUXK:   WORD        LGDEPL          <  LONGUEUR DU DEPLACEMENT
QUATK:   WORD        LGDEPL*2        < DOUBLE DEPLACEMENT
DEBCHG:  VAL         TOUDEB-ZERO
LGLOAD:  WORD        LGINI-DEBCHG-16 <  LONGUEUR DU CHARGEUR
LGZERO:  DZS         1               <  LONGUEUR A METTRE A ZERO
ADINIT:  DZS         1               <  DEBUT CHARGEMENT D'UN MODULE
LGPART:  WORD        LGINI           <  LONGUEUR DE LA PARTITION
ALLOC:   WORD        '0004           <  RESERVATION INITIALE
         WORD        0
         WORD        LGINI*2
RCLF:    WORD        '0D0A           <  CR-LF
ERREUR:  ASCI        "ERU "          <  MESSAGE D'ERREUR
START:   ASCI        "RUN "          <  MESSAGE RUN
TRENTE:  WORD        '3030
NB7FFF:  WORD        '7FFF
BLQ:     ASCI        " '"
DNMF:    BYTE        '6D;"F"         < DEMANDE DU NOM DE FICHIER
         ASCI        "ICH="
DEMNMF:  WORD        '0202
         WORD        DNMF-ZERO*2
         WORD        6
ASSO:    ASCI        "!ASSIGN 3=O,"
NMFC:    DZS         20              < NOM DU FICHIER
DEMASS:  WORD        '0002
         WORD        ASSO-ZERO*2
         WORD        80
LECNMF:  WORD        '0101           < LECTURE DU NOM
         WORD        NMFC-ZERO*2
         WORD        40
MCLOS:   ASCI        "!ASSIGN 3="    < !ASSIGN 3=S
         BYTE        "S";'04
DEMCLO:  WORD        '0002           < DEMANDE DE "!CLOSE"
         WORD        MCLOS-ZERO*2
         WORD        80
DNOM:    BYTE        '6D;"N"         < DEMANDE DU NOM DE L'ITEM
         ASCI        "OM ="
DEMNOM:  WORD        '0202
         WORD        DNOM-ZERO*2
         WORD        6
LECNOM:  WORD        '0101           < LECTURE DU NOM DE L'ITEM
         WORD        ZERO
         WORD        28
DEBITE:  DZS         1               < DEBUT DE L'ITEM
ADZER:   WORD        ZERO,X          < @ ZERO INDEXEE
DEMGEN:  WORD        '0002           < DEMANDE AU SGN
         DZS         3
         PAGE
<***********************************************************************
<*                                                                     *
<*       C H A R G E U R .                                             *
<*                                                                     *
<*       INITIALISATION DU CHARGEUR.                                   *
<*                                                                     *
<***********************************************************************
         PROG
         WORD        COM+'80
LOAD:    EQU         $
         LRP         C               < INITIALISATION DE LA BASE C
         LA          -1,C
         LR          A,C
         LAI         -1              < RENDRE ALT-MODE INEFFECTIF
         WORD        '1EB5
         LAD         KSTORE-1        <  INITIALISATION DE K
         LR          A,K
         EORR        W               < @ DEBUT CHARGEMENT
         LA          AFINZ           <  INIT. LGZERO
         SB          MAXMEM
         STA         LGZERO
         BSR         MERCLF          <  ENVOI DE CRT CHARGEMENT
         LAD         DEMCLO          < !CLOSE
         SVC         0
         BR          BANDEF
<***********************************************************************
<*                                                                     *
<*       OUVERTURE DU FICHIER CONTENANT LE MODULE A CHARGER.           *
<*                                                                     *
<***********************************************************************
AUTMOD:  EQU         $
         LAD         DEMASS          < ASSIGN
         SVC         0
         LAD         OPNBO           <  OUVERTURE DU FICHIER BINAIRE
         SVC         0               <  DANS LE MODE OPEN-OLD-ENREGIS-
                                     <  TREMENT
         JE          RELANS          <  GO ON SI OPEN OK
<***********************************************************************
<*                                                                     *
<*       SORTIE EN ERREUR DU LOAD.                                     *
<*                                                                     *
<***********************************************************************
HORTEN:  EQU         $
         LAD         CCI             <  RETOUR AU CCI
         SVC         0
         JMP         $-1
<***********************************************************************
<*                                                                     *
<*       ERREUR FATALE.                                                *
<*                                                                     *
<***********************************************************************
RFATAL:  EQU         $
         XR          A,K             <  REINITIALISATION DE K
         LAD         KSTORE-1
         XR          A,K
         BSR         MESER           <  SORTIE DU MESSAGE D'ERREUR
         JMP         HORTEN
         PAGE
<***********************************************************************
<*                                                                     *
<*       DEBUT DU CHARGEMENT.                                          *
<*       COMMANDE 'A3 POUR TRANSLATABLE,                               *
<*       SINON, C'EST EN ABSOLU.                                       *
<*                                                                     *
<***********************************************************************
RELANS:  EQU         $
         BSR         LITQ            <  LECTURE 1ER QUADRUPLET
         CPI         'A3             <  MODULE TRANSLATABLE ?
         JNE         ANALIZ          <  SI ABSOLU, ABSMOD=-1
         IC          ABSMOD          <  SI TRANSLATABLE, ABSMOD=0
<***********************************************************************
<*                                                                     *
<*       LECTURE DES QUADRUPLETS ET ANALYSE D'UNE COMMANDE.            *
<*                                                                     *
<***********************************************************************
LECTUR:  EQU         $
         BSR         LITQ            <  LECTURE D'UN QUADRUPLET
ANALIZ:  EQU         $
         ANDI        3               <  COMMANDE ABSOLU OU TRANSLATABLE
         JAE         ABSOL
         CPI         2               <  COMMANDE TRANSLATABLE
         JNE         VOIEXT
         CPZ         ABSMOD
         JL          PATRAN
         LBY         ADSTOC          <  NUMERO DE LA COMMANDE
         ANDI        '1C
         ADRI        '18,A
NUMCDE:  EQU         $               <  AIGUILLAGE SUIVANT COMMANDE
         SLRS        2
         LR          A,X
         BR          &TABCDE
ABSOL:   EQU         $               <  COMMANDE ABSOLUE
         LBY         ADSTOC
         ANDI        '1C
         CPI         '14
         JLE         NUMCDE
ERCMDE:  EQU         $               <  NUMERO COMMANDE ERRONNE
         LAI         '11
         BR          ADRFAT
PATRAN:  EQU         $               <  COMMANDE ABSOLUE EN TRANSLATAB.
         LAI         '12
         BR          ADRFAT
VOIEXT:  EQU         $
         LBY         ADSTOC
         CPI         'A5             < EXT
         JNE         ERCMDE
         PAGE
<***********************************************************************
<*                                                                     *
<*       'A5 - EXT                                                     *
<*                                                                     *
<***********************************************************************
         STB         BUFFER          < PLACER 2 PREMIER CARAC. DU NOM
         LA          AREXT1          < ATTENDRE LA SUITE
         STA         PAFINI
         JMP         LECTUR
REXT1:   EQU         $               < SUITE
         STB         BUFFER+1        < 2 CARAC. SUIVANTS
         LA          AREXT2          < ATTENDRE LA SUITE
         STA         PAFINI
         JMP         LECTUR
REXT2:   EQU         $               < SUITE
         STB         BUFFER+2        < 2 DERNIER CARAC.
         LA          AREXT3          < ATTENDRE LA SUITE
         STA         PAFINI
         JMP         LECTUR
REXT3:   EQU         $               < FIN
         BSR         TRANSB          < @ RELATIVE DEBUT PARTITION
         BSR         CHREF           < CHERCHER LE REFERENCE
         JANE        EXTABS
         PSR         W               < ELLE EXISTE
         LR          B,W             < SAUVER VALEUR EXT
         LA          &ABUFRF         < VALEUR REF.
         JAL         DEJEXT
         LR          A,B             < DEFINI ENT
         BSR         CHAINE          < PLACER VALEUR DANS CHAINE
RETEXT:  EQU         $
         PLR         W
         JMP         LECTUR
DEJEXT:  EQU         $
         LA          0,W
         RBT         0               < REMONTER LA CHAINE ACTUELLE
         CP          NB7FFF          < POUR LA CHAINER AVEC LA PRECEDENTE
         JE          EXT10
         LR          A,W
         JMP         DEJEXT
EXT10:   EQU         $
         LA          &ABUFRF
         RBT         0
         SBT         16
         STB         &ABUFRF
         LR          A,B
         LA          0,W
         JAGE        $+2             < INDEXATION
         SBT         16
         STB         0,W
         LAD         ECRREF
         SVC         0
         JMP         RETEXT
EXTABS:  EQU         $
         BSR         PLNOM           < ABSENT - LA PLACER
         SBT         16
         STB         &ABUFRF
         ADRI        1,X
         STX         XBUFRF
         LAD         ECRREF
         SVC         0
         IC          NBREF
         JMP         LECTUR
         PAGE
<***********************************************************************
<*                                                                     *
<*       'A0 - CHARGER EN.                                             *
<*       POSITIONNER W.                                                *
<*                                                                     *
<***********************************************************************
DEBUT:   EQU         $
         BSR         TRANSB          <  ADRESSE RELATIVE DEBUT PARTITIO
         LR          B,W
         JMP         LECTUR
         PAGE
<***********************************************************************
<*                                                                     *
<*       '24 - CHARGER A LA SUITE SANS TRANSLATER.                     *
<*       RANGER A LA SUITE EN TENANT COMPTE DU REPEAT LOAD.            *
<*                                                                     *
<***********************************************************************
SUITE:   EQU         $
         BSR         RANGB           <  RANGEMENT DE L'INFORMATION
         ADRI        1,W
         DC          CPTLOD          <  REPEAT LOAD?
         JG          SUITE
         STZ         CPTLOD          <  REMISE A ZERO DU REPEAT LOAD
         JMP         LECTUR
         PAGE
<***********************************************************************
<*                                                                     *
<*       '28 - ADRESSE DE LANCEMENT.                                   *
<*       RELEVER L'ADRESSE.                                            *
<*                                                                     *
<***********************************************************************
LANCT:   EQU         $
         BSR         TRANSB          <  ADRESSE RELATIVE DEBUT PARTITIO
         STB         &ADLANC
         IC          FINMOD          <  FIN DE MODULE=1
         JMP         LECTUR
         PAGE
<***********************************************************************
<*                                                                     *
<*       'AC - REPEAT LOAD.                                            *
<*       POSITIONNER LE COMPTEUR.                                      *
<*                                                                     *
<***********************************************************************
REPEAT:  EQU         $
         STB         CPTLOD
         BR          ADLECT
         PAGE
<***********************************************************************
<*                                                                     *
<*       '30 - CHECKSUM ET FIN DE BANDE.                               *
<*       VERIFICATION DU CHECKSUM ET FIN DE CHARGEMENT.                *
<*                                                                     *
<***********************************************************************
CHECK:   EQU         $
         LA          CHKSUM          <  VERIFICATION
         CPR         B,A
         JE          BONSUM
         LAI         '13             < ERREUR DANS LE CHECKSUM
         BR          ADRFAT
BONSUM:  EQU         $
         LA          OPNBO           <  MISE EN MODE CLOSE-SAVE DE LE
         LR          A,Y             <  SAUVER L'ETAT ACTUEL
         ORI         2               <  DEMANDE 'OPNBO'
         STA         OPNBO
         LAD         OPNBO           <  FERMETURE EN SAVE DE
         SVC         0               <  L'ENREGISTREMENT
         STY         OPNBO           <  RESTAURER L'ETAT INITIAL
         LAD         DEMCLO          < !CLOSE
         SVC         0
         CPZ         FINMOD          <  FIN DE MODULE?
         JE          FINBAN          <  FIN DE BANDE UNIQUEMENT
         LA          &ADLANC
         JAL         FINBAN          <  FIN DE MODULE SANS LANCEMENT
FINTOU:  EQU         $
<
< DEMANDE DU NOM DE L'ITEM
<
         LAI         -1              < ABSENT A PRIORI
         STA         DEBITE
         LAD         DEMNOM
         SVC         0
         LAD         LECNOM
         SVC         0
         WORD        '1E35           < LONGUEUR
         LR          B,Y
         ADRI        -1,B            < NOM ABSENT?
         CPZR        B
         JLE         PANOM
         LR          Y,A             < PRESENT - LE PLACER
         SLRS        1
         LR          A,X
         NGR         A
         ADRI        'E,A
         STA         DEBITE          < @ NOM
         LR          A,B
         ADR         A,Y             < @ FIN
         ADR         A,Y
         LAI         0
         MOVE
         LAI         '04             < PLACER UN EOT
         LR          Y,X
         ADRI        -1,X
         STBY        &ADZER
         LR          B,X             < REMISE A ZERO DEBUT
REZER:   EQU         $
         ADRI        -1,X
         CPZR        X
         JL          PLUZER
         STZ         &ADZER
         JMP         REZER
PLUZER:  EQU         $
         CPZ         &ADLANC         < @ LANCEMENT PRESENTE?
         JGE         ADPRES
         LXI         '10             < NON - LA GENERER
         LA          &ADZER
         STA         &ADLANC
ADPRES:  EQU         $
         LR          W,A             < CALCUL TAILLE
         ADRI        -'F,A
         SLLS        1
         LXI         'F
         STA         &ADZER
         LA          DEBITE          < @ DEBUT NOM
         SLLS        1
         STA         DEMGEN+1
         LR          W,A             < LG TOTALE
         SB          DEBITE
         SLLS        1
         STA         DEMGEN+2
         LAI         'F              < DEPLACEMENT
         SB          DEBITE
         SLLS        1
         STA         DEMGEN+3
         LAI         '83             < SUPPRESSION DE L'ITEM
         STBY        DEMGEN
         LAD         DEMGEN
         SVC         0
         LAI         '84             < CREATION
         STBY        DEMGEN
         LAD         DEMGEN
         SVC         0
PANOM:   EQU         $
         LAD         START           <  IMPRESSION ADRESSE LANCEMENT
         BSR         SORMES
         LA          &ADLANC
         BSR         SORADR
<
< IMPRESSION TABLE LIENS ET EXTERNES NON DEFINIS
<
         LXI         0               < PT SUR BUFFER
         STZ         LECREF+3        < PREMIER SECTEUR
         DC          LECREF+3
         EORR        L               < CPTE D'ERREURS
REREXT:  EQU         $
         CPZ         NBREF           < Y-EN-A-T'IL ENCORE?
         JLE         FEREXT
         CPZR        X               < DOIT-ON RELIRE?
         JL          ENCEXT
         IC          LECREF+3
         LAD         LECREF
         SVC         0
         LXI         -128
ENCEXT:  EQU         $
         LR          X,Y             < IMPRESSION NOM
         BSR         MERCLF
         LR          Y,X
         LAD         BUFFER
         LR          A,B
         LAD         &ABUFRF
         LXI         3
         MOVE
         BSR         SORC6
         LR          Y,X
         ADRI        3,X             < ERREUR SI EXT NON DEFINI
         LA          &ABUFRF
         JAGE        PAERXT
         ADRI        1,L
         LAI         -1
PAERXT:  EQU         $
         BSR         SORADR          < IMPRESSION @
         LR          Y,X
         ADRI        4,X             < AUTRE REFERENCE
         DC          NBREF
         JMP         REREXT
FEREXT:  EQU         $
         CPZR        L               < ERREURS?
         JE          PASRXT
         LAI         '25
         BR          ADRFAT
PASRXT:  EQU         $
         BR          AZERCH          <  REMETTRE LE CHARGEUR A ZERO
<***********************************************************************
<*                                                                     *
<*       FIN DE BANDE - RETOUR AU MONITEUR.                            *
<*                                                                     *
<***********************************************************************
FINBAN:  EQU         $
         LR          W,A             <  DEBUT MODULE SUIVANT
         STA         ADINIT
RENMFC:  EQU         $
         LAD         DEMNMF          < NOM DU FICHIER
         SVC         0
         LAD         LECNMF
         SVC         0
         WORD        '1E35           < NOM VIDE?
         ADRI        -1,B
         CPZR        B
         JLE         FINTOU          < OUI - FIN DE CHARGEMENT
         STZ         CHKSUM          <  REINITIALISER LES VALEURS DE
         IF          ORDI-"S",XWOR%,,XWOR%
         LRM         A
         WORD        128*QUANTA-1/3*3*2
XWOR%:   VAL         0
         IF          ORDI-"T",XWOR%,,XWOR%
         LAI         126
         ADR         A,A
XWOR%:   VAL         0
         STA         INDEX
         LAI         -1
         STA         ABSMOD
         STZ         FINMOD
         STZ         CPTLOD
         BR          NEWCHG          <  TRAITER LE MODULE SUIVANT
         PAGE
<***********************************************************************
<*                                                                     *
<*       'B4 - COMMENTAIRE.                                            *
<*       L'ECRIRE.                                                     *
<*                                                                     *
<***********************************************************************
COMENT:  EQU         $
         BSR         SORCAR
         BR          ADLECT
         PAGE
<***********************************************************************
<*                                                                     *
<*       '22 - SUITE DE COMMANDE.                                      *
<*       SE REBRANCHER A LA COMMANDE CONCERNEE.                        *
<*                                                                     *
<***********************************************************************
PACDE:   EQU         $
         BR          PAFINI
         PAGE
<***********************************************************************
<*                                                                     *
<*       'A6 - CHARGER A LA SUITE EN TRANSLATANT.                      *
<*       TRANSLATER ET ALLER CHARGER.                                  *
<*                                                                     *
<***********************************************************************
TRANSL:  EQU         $
         BSR         TRANSB          <  ADRESSE RELATIVE DEBUT PARTITIO
         BR          TABAIG+1
         PAGE
<***********************************************************************
<*                                                                     *
<*       'AA - REMONTER UNE CHAINE D'ADRESSES.                         *
<*       MEMORISATION DE L'ADRESSE DE DEBUT DE CHAINE.                 *
<*                                                                     *
<***********************************************************************
REMADR:  EQU         $
         PSR         W               <  PROTEGER W
         BSR         TRANSB          <  ADRESSE RELATIVE DEBUT PARTITIO
         LR          B,W             <  MEMORISER L'ADRESSE
         LA          AREMA2          <  PREPARER LA SUITE DE COMMANDE
STAPAF:  EQU         $
         STA         PAFINI
         BR          ADLECT
<***********************************************************************
<*                                                                     *
<*       SUITE DE COMMANDE CHAINE.                                     *
<*       REMONTER LA CHAINE POUR Y PLACER LA VALEUR.                   *
<*                                                                     *
<***********************************************************************
REMAD2:  EQU         $
         BSR         TRANSB
         BSR         CHAINE
         JMP         PLRW
         PAGE
<***********************************************************************
<*                                                                     *
<*       '2E - DEPLACEMENT SUR ADRESSE.                                *
<*       MEMORISATION DE L'ADRESSE.                                    *
<*                                                                     *
<***********************************************************************
DEPADR:  EQU         $
         PSR         W               <  PROTEGER W
         BSR         TRANSB          <  ADRESSE RELATIVE DEBUT PARTITIO
         LR          B,W             <  PRELEVER L'ADRESSE A MODIFIER
         LA          ADEPA2          <  PREPARER LA SUITE DE COMMANDE
         JMP         STAPAF
<***********************************************************************
<*                                                                     *
<*       SUITE DE COMMANDE DEPLACEMENT.                                *
<*       MODIFICATION DE LA VALEUR.                                    *
<*                                                                     *
<***********************************************************************
DEPAD2:  EQU         $
         LA          0,W             <  PRELEVER L'ADRESSE A MODIFIER
         LR          A,Y             <  LA PRESERVER POUR BIT D'INDEX
         RBT         0
         ADR         A,B             <  MODIFICATION
         JNV         ADNORM
         LAI         '21             <  ADRESSE GENEREE > 32K
         BR          ADRFAT
ADNORM:  EQU         $
         CPR         Y,A             <  RESTAURER LE BIT D'INDEX
         JE          $+2
         SBT         16
         STB         0,W             <  RANGER LA VALEUR MODIFIEE
<***********************************************************************
<*                                                                     *
<*       RESTAURER W.                                                  *
<*                                                                     *
<***********************************************************************
PLRW:    EQU         $
         PLR         W
         BR          ADLECT
         PAGE
<***********************************************************************
<*                                                                     *
<*       '36 - NOM DE SECTION.                                         *
<*       IMPRESSION DU DEBUT DU NOM.                                   *
<*                                                                     *
<***********************************************************************
NSECT:   EQU         $
         BSR         MERCLF          <  IMPRESSION DE CR-LF
         BSR         SORCAR          <  IMPRESSION DES TROIS PREMIERS
                                     <  CARACTERES DU NOM
         LA          ASECT1          < 1ERE SUITE DE NOM
         JMP         STAPAF
SECT1:   EQU         $
         BSR         SORCAR
         LA          ASECT2          <  PREPARER LA SUITE DE NOM
         JMP         STAPAF
<***********************************************************************
<*                                                                     *
<*       SUITE DE COMMANDE NOM.                                        *
<*       IMPRESSION DE LA FIN DE NOM ET DE L'ADRESSE DE DEBUT.         *
<*                                                                     *
<***********************************************************************
SECT2:   EQU         $
         BSR         SORCAR          <  IMPRESSION DE FIN DE NOM
         LR          W,A             <  IMPRESSION DE ADRESSE IMPLANTA.
         BSR         SORADR
         BR          ADLECT
         PAGE
<***********************************************************************
<*                                                                     *
<*       '3A - COMMANDE ENT.                                           *
<*                                                                     *
<***********************************************************************
ENT:     EQU         $
         STB         BUFFER          < PLACER 2 CARAC.
         LA          ARENT1          < SUITE
         STA         PAFINI
         BR          ADLECT
RENT1:   EQU         $
         STB         BUFFER+1        < PLACER 2 CARAC. A SUIVRE
         LA          ARENT2
         STA         PAFINI
         BR          ADLECT
RENT2:   EQU         $
         STB         BUFFER+2        < PLACER FIN NOM
         LA          ARENT3          < ATTENDRE ADRESSE
         STA         PAFINI
         BR          ADLECT
RENT3:   EQU         $
         BSR         TRANSB          < @ RELATIVE PARTITION
         BSR         CHREF           < RECHERCHE DANS TABLE
         JANE        ENTABS
         LA          &ABUFRF         < ELLE EXISTE
         JAL         VUEXT
         LY          BUFFER          < ERREUR - DOUBLE DEFINITION
         BSR         MERCLF
         STY         BUFFER
         BSR         SORC6
         LAI         '24
         BSR         MESER
         BR          ADLECT
VUEXT:   EQU         $
         PSR         W               < ELLE EXISTE EN EXT
         RBT         0               < @ DANS CHAINE
         LR          A,W
         BSR         CHAINE
         PLR         W
         STB         &ABUFRF         < MISE A JOUR TABLE
         LAD         ECRREF
         SVC         0
         BR          ADLECT
ENTABS:  EQU         $
         BSR         PLNOM           < ABSENTE- LA PLACER
         STB         &ABUFRF
         ADRI        1,X
         STX         XBUFRF
         LAD         ECRREF
         SVC         0
         IC          NBREF
         BR          ADLECT
         PAGE
<***********************************************************************
<*                                                                     *
<*       'BE - REFERENCE EN AVANT RELATIVE.                            *
<*       PRELEVER LE PREMIER MAILLON.                                  *
<*                                                                     *
<***********************************************************************
REMJMP:  EQU         $
         PSR         W               <  PROTEGER W
         BSR         TRANSB          <  ADRESSE RELATIVE DEBUT PARTITIO
         LR          B,W             <  RELEVER LE 1ER MAILLON
         LA          ARJMP2          <  PREPARER LA SUITE DE COMMANDE
         JMP         STAPAF
<***********************************************************************
<*                                                                     *
<*       SUITE DE REFERENCE AVANT RELATIVE.                            *
<*       MODIFICATION SUR LA CHAINE.                                   *
<*                                                                     *
<***********************************************************************
REMJM2:  EQU         $
         BSR         TRANSB          <  ADRESSE RELATIVE DEBUT PARTITIO
         LR          B,A             <  A=REF. EN AVANT
         SBR         W,A             <  DIFFERENCE D'ADRESSE
         LB          0,W             <  PRELEVER MAILLON SUIVANT
         SCRD        8               <  FABRICATION DU MOT DEFINITIF
         SWBR        B
         STB         0,W             <  RANGEMENT DE LA VALEUR
         SWBR        A               <  AD. RELATIVE MAILLON SUIVANT
         SBR         A,W             <  AD. ABSOLUE DU MAILLON SUIVANT
         JANE        REMJM2          <  CHAINE FINIE PAR 0
         JMP         PLRW
         PAGE
<***********************************************************************
<*                                                                     *
<*       LECTURE D'UN QUADRUPLET.                                      *
<*                                                                     *
<***********************************************************************
SPLITQ:  EQU         $
         LYI         0               <  POUR SIGNALER 1ER CARACTERE
         LXI         -4              <  NB CARACTERE
         PSR         B,X,Y           <  PROTEGER LES REGISTRES DE TRAV.
         IF          ORDI-"S",XWOR%,,XWOR%
         LRM         A               < DOIT-ON RELIRE ?
         WORD        128*QUANTA-1/3*3*2 < INDEX DU BUFFER BINAIRE.
XWOR%:   VAL         0
         IF          ORDI-"T",XWOR%,,XWOR%
         LAI         126             < DOIT-ON RELIRE ?
         ADR         A,A
XWOR%:   VAL         0
         CP          INDEX
         JNE         PAVID
         LAD         IOCBIN          <  LECTURE
         SVC         0
         JNE         NOPAIR          <  ERREUR DANS LE SGF
         STZ         INDEX
PAVID:   EQU         $
         LX          INDEX           <  PRELEVER LE BYTE SUIVANT
         LBY         &RELBUF
         IC          INDEX
         PLR         B,X,Y           <  RESTAURER LES REGISTRES
         STBY        &AUFRAI
         CPZR        Y               <  1ER CARACTERE(COMMANDE)?
         JNE         STOCK
         ANDI        '60             <  SI BLANC, RELIRE
         CPI         '20
         JNE         SPLITQ+2
         ADRI        1,Y             <  1ER CARACTERE TROUVE
         ADRI        1,X
STOCK:   EQU         $
         JIX         SPLITQ+2        <  PRELEVER LES 3 AUTRES CARAC.
         LBY         ADSTOC
         CPI         '30             <  DOIT-ON LE RENTRER DANS CHECKSU
         JE          PACHEK
         LBY         ADSTOC          < CALCUL CHECKSUM
         AD          CHKSUM
         ADCR        A
         AD          ADSTOC+1
         ADCR        A
         STA         CHKSUM
PACHEK:  EQU         $
         LB          ADSTOC+1        < A=COMMANDE,B=VALEUR
         LBY         ADSTOC
         RSR
NOPAIR:  EQU         $               <  ERREUR DE PARITE
         LAI         '01
         BR          ADRFAT
         PAGE
<***********************************************************************
<*                                                                     *
<*       TRANSLATION DE L'ADRESSE CONTENUE DANS B.                     *
<*                                                                     *
<***********************************************************************
BTRANS:  EQU         $
         LR          B,A
         AD          ADINIT          <  TRANSLATION
         LR          A,B
         RSR
         PAGE
<***********************************************************************
<*                                                                     *
<*       RANGEMENT DE B AVEC DEPLACEMENT DU CHARGEUR SI NECESSAIRE.    *
<*                                                                     *
<***********************************************************************
VERIFW:  EQU         $
         LR          W,A             <  ADRESSE>32K?
         JAGE        WNORM
         LAI         '22
         BR          ADRFAT
WNORM:   EQU         $               <  ADRESSE DANS LE CHARGEUR?
         CP          MAXMEM
         JGE         DEPLAC
         STB         0,W             <  NORMAL. PLACER LA VALEUR
         RSR
<***********************************************************************
<*                                                                     *
<*       DEPLACEMENT DU CHARGEUR.                                      *
<*                                                                     *
<***********************************************************************
DEPLAC:  EQU         $
         PSR         B,X,Y           <  PROTEGER LES REGISTRES DE TRAV.
         LA          DEUXK           <  MODIF DE LA TAILLE DE LA DEMAND
         SLLS        1
         AD          ALLOC+2
         STA         ALLOC+2
         LAD         ALLOC           <  DEMANDER 2K
         SVC         0
         JE          PAGOBT
         LAI         '23             <  MEMOIRE NON OBTENUE
         BR          ADRFAT
PAGOBT:  EQU         $
         LXI         -NBCMOD         <  NB ADRESSES A MODIFIER
                                     <  DANS LE COMMON
MODCOM:  EQU         $
         LA          &ACCMOD         <  MODIFICATION
         AD          DEUXK
         STA         &ACCMOD
         JIX         MODCOM
         LA          QUATK           < MODIFIER LES @ DE BYTES
         AD          IOCBIN+1
         STA         IOCBIN+1
         LA          QUATK
         AD          IOCBL+1
         STA         IOCBL+1
         LA          QUATK
         AD          ECRREF+1
         STA         ECRREF+1
         LA          QUATK
         AD          LECREF+1
         STA         LECREF+1
         LA          QUATK
         AD          DEMCLO+1
         STA         DEMCLO+1
         LA          QUATK
         AD          DEMASS+1
         STA         DEMASS+1
         LA          QUATK
         AD          DEMNMF+1
         STA         DEMNMF+1
         LA          QUATK
         AD          LECNMF+1
         STA         LECNMF+1
         LA          QUATK
         AD          DEMNOM+1
         STA         DEMNOM+1
         LA          ADDEB           <  RECOPIE DU CHARGEUR
         AD          DEUXK
         LR          A,B
         LA          ADDEB
         LX          LGLOAD
         MOVE
         LA          DEUXK           <  MODIFIER LES REGISTRES DE BASE
         ADR         A,K
         ADR         A,L
         ADR         A,C
         ADRI        1,A
         ADRP        A               <  ALLER DANS LE NOUVEAU CHARGEUR
         LX          DEUXK           <  MISE A 0 DES 2K LIBERES
         NGR         X
MEMZER:  EQU         $
         STZ         &ADDEBX
         JIX         MEMZER
         LA          ADDEB           <  MODIF. DE ADRESSE DEBUT CHARG.
         AD          DEUXK
         STA         ADDEB
         PLR         B,X,Y           <  RESTAURER LES REGISTRES
         PLR         A               <  MODIFIER ADRESSE DE RETOUR
         AD          DEUXK
         PSR         A
         JMP         VERIFW
         PAGE
<***********************************************************************
<*                                                                     *
<*       SP DE REMONTEE D'UNE CHAINE D'@ POUR Y PLACER LA VALEUR       *
<*       CONTENUE DANS B EN PARTANT A L'ADRESSE CONTENUE DANS W        *
<*                                                                     *
<***********************************************************************
SPCHAI:  EQU         $
         LA          0,W             <  PRELEVER LE 1ER MAILLON
         PSR         B               < PROTEGER LA VALEUR A PLACER
         JAGE        BIT00           < PRELEVER SON BIT D'INDEX.
         CPZR        B               < S'IL Y A INDEXATION,LA VALEUR
         JGE         BIT01           < A PLACER DOIT ETRE INFERIEURE A 32K
         LAI         '21
         BR          ADRFAT
BIT01:   EQU         $
         SBT         16
         RBT         0
BIT00:   EQU         $
         STB         0,W             <  PLACER LA VALEUR D'ADRESSE
         PLR         B               < RESTAURER LA VALEUR
         CP          NB7FFF          <  FIN DE CHAINE?
         JE          RETCH
         LR          A,W             <  NON - POURSUIVRE
         JMP         SPCHAI
RETCH:   EQU         $
         RSR
         PAGE
<***********************************************************************
<*                                                                     *
<*       SP DE RECHERCHE D'UNE REFERENCE.                              *
<*                                                                     *
<***********************************************************************
SPCHRF:  EQU         $
         PSR         W
         LAI         -1              < N0 DE SECTEUR DE RECHERCHE
         STA         LECREF+3
         STZ         NORFCP          < N0 REFERENCE A COMPARER
         LXI         0               < PT DANS SECTEUR RECHERCHE
AUTREF:  EQU         $
         CPZR        X               < EN RESTE-T-IL DANS LE BUFFER?
         JL          RFNVID
         IC          LECREF+3        < NON - SECTEUR SUIVANT
         LA          LECREF+3
         CPI         32
         JL          OKSEC
         LAI         '26
         BR          ADRFAT
OKSEC:   EQU         $
         LAD         LECREF
         SVC         0
         LXI         -128
RFNVID:  EQU         $
         LA          NORFCP          < A-T-ON FINI?
         CP          NBREF
         JGE         ABSREF          < OUI - ABSENTE
         LA          BUFFER          < EST-CE LE BON?
         EOR         &ABUFRF
         LR          A,W
         ADRI        1,X
         LA          BUFFER+1
         EOR         &ABUFRF
         EORR        A,W
         ADRI        1,X
         LA          BUFFER+2
         EOR         &ABUFRF
         EORR        W,A
         ADRI        1,X
         JAE         REFVUE
         ADRI        1,X             < NON - SUIVANT
         IC          NORFCP
         JMP         AUTREF
REFVUE:  EQU         $
         LAI         0               < TROUVEE
         JMP         RETREF
ABSREF:  EQU         $
         LAI         1               < ABSENTE
RETREF:  EQU         $
         PLR         W
         LY          LECREF+3
         STY         ECRREF+3
         RSR
         PAGE
<***********************************************************************
<*                                                                     *
<*       SP DE PLACEMENT DU NOM D'UNE REFERENCE                        *
<*                                                                     *
<***********************************************************************
SPLNOM:  EQU         $
         LX          XBUFRF          < A-T-ON DE LA PLACE?
         CPZR        X
         JL          PLREF
         LXI         -128
PLREF:   EQU         $
         LA          BUFFER
         STA         &ABUFRF
         ADRI        1,X
         LA          BUFFER+1
         STA         &ABUFRF
         ADRI        1,X
         LA          BUFFER+2
         STA         &ABUFRF
         ADRI        1,X
         RSR
         PAGE
<***********************************************************************
<*                                                                     *
<*       IMPRESSION DU CONTENU DE A.                                   *
<*                                                                     *
<***********************************************************************
ECRADR:  EQU         $
         SLRD        16              <  PREPARER LE DECOUPAGE PAR 4 BIT
         LXI         -4
CARSUI:  EQU         $
         SLLD        4               <  ISOLER 4 BITS
         ADRI        '30,A           <  CARACTERE IMPRIMABLE
         CPI         '39
         JLE         $+2
         ADRI        7,A
         STBY        &SORHEX         <  MISE DANS LE BUFFER
         LAI         0
         JIX         CARSUI
         STZ         &SORHEX
         LA          BLQ             <  METTRE '
         STA         BUFFER
         JMP         SORTI6
<***********************************************************************
<*                                                                     *
<*       SORTIE DE TROIS CARACTERES.                                   *
<*                                                                     *
<***********************************************************************
PRECAR:  EQU         $
         LA          ADSTOC+1        < PLACER 2 CARAC. DANS BUFFER
         STA         BUFFER
         JMP         SORTI2
<***********************************************************************
<*                                                                     *
<*       SORTIE D'UN MESSAGE SUIVANT LE NOMBRE DE CARACTERES.          *
<*                                                                     *
<***********************************************************************
SORTI6:  EQU         $
         LXI         6               <  6 CARACTERES
         JMP         $+2
SORTI2:  EQU         $
         LXI         2               < 2 CARAC.
         STX         IOCBL+2
         LXI         0               <  X=0  LOG LISTING
         JMP         APIOCS
MSGRC:   EQU         $               <  SORTIE DE RC-LF
         LXI         2
         STX         IOCBL+2
         LXI         0
         JMP         RETLF
MSGERR:  EQU         $               <  SORTIE D'UN MESSAGE
         LXI         8
         STX         IOCBL+2
         LXI         1               <  X=1  ERROR LISTING
         SLRD        4               <  NUMERO ERREUR
         SLLS        4
         SLLD        4
         AD          TRENTE
         STA         BUFFER+3
         LAD         ERREUR
         JMP         INBUF4
ENTMOT:  EQU         $               <  PREPARATION DU MESSAGE
         LXI         6
         STX         IOCBL+2
         LXI         0
INBUF4:  EQU         $
         XR          A,W
         LB          0,W
         STB         BUFFER+1
         LB          1,W
         STB         BUFFER+2
         XR          A,W
RETLF:   EQU         $               <  CR-LF
         LA          RCLF
         STA         BUFFER
APIOCS:  EQU         $               <  IMPRESSION
         LAD         IOCBL
         SVC         0
         RSR
         PAGE
<***********************************************************************
<*                                                                     *
<*       MISE A ZERO DU CHARGEUR EN FIN DE TRAITEMENT.                 *
<*                                                                     *
<***********************************************************************
ZEROCH:  EQU         $
         LA          ADLANC          <EMPILER L'ADRESSE DE LANCEMENT
         LR          A,K
         LA          ADDEB           <  MISE A ZERO
         LR          A,B
         ADRI        1,A
         LX          LGZERO
FINZER:  EQU         $
         STZ         &AFINZ
         MOVE
         LAI         '12             < RESTAURER LE ALT-MODE
         WORD        '1EB5
         IF          ORDI-"T",XWOR%,,XWOR%
         ADRI        1,K             <  RETOUR AU CCI POUR
         LR          K,A             <  DEBUG EVENTUEL
         SVC         0
         ADRI        -1,K
XWOR%:   VAL         0
         IF          ORDI-"S",XWOR%,,XWOR%
         WORD        '1E16           < RETOUR CCI POUR DEBUG EVENTUEL
XWOR%:   VAL         0
         RSR                         <  LANCEMENT DU PROGRAMME
DEBPG:   WORD        0
         IF          ORDI-"T",XWOR%,,XWOR%
         WORD        1               <  RETOUR AU CCI
XWOR%:   VAL         0
FITEM:   EQU         $
LGIT:    VAL         FITEM-DBCHIT*2
SIZE:    EQU         ZERO+LGIT
XWOR%1:  VAL         $-TOUDEB+'10    < LONGUEUR REELLE DU CHARGEUR...
         IF          LGCHGM-XWOR%1,,XWOR%,XWOR%
         IF          A T T E N T I O N  : LA LONGUEUR ESTIMEE DU
         IF          DU CHARGEUR EST INSUFFISANTE !!!
XWOR%:   VAL         0
         PAGE
<***********************************************************************
<*                                                                     *
<*       GENERATION DU CHARGEUR EN TANT QUE ITEM.                      *
<*                                                                     *
<***********************************************************************
         LOCAL
LONGR:   VAL         FITEM-DITEM
DEMSGN:  WORD        '8402           < DEMANDE GENERATION
         WORD        DITEM-ZERO*2
         WORD        LONGR*2
         WORD        6
         PROG
         WORD        DEMSGN+128
         WORD        COM+128
GENERE:  EQU         $
         LRP         L               < INITIALISATIONS DES BASES
         LR          L,C
         LA          -2,L
         LR          A,L
         LA          -1,C
         LR          A,C
         LAD         KSTORE-1
         LR          A,K
DEM:     EQU         $
         LAD         DEMSGN
         SVC         0
         JE          FIN
         LAD         CCI
         SVC         0
         JMP         DEM
FIN:     EQU         $
         LAD         CCI
         SVC         0
         JMP         FIN
         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.