DATE
         PROG
         TRN
<
<
<        D E F I N I T I O N S   G E N E R A L E S  :
<
<
XUNDEF:: VAL         -1              < POUR NE DEFINIR QUE LES 'XX...' DANS LES
                                     < FICHIERS DE DEFINITION...
         CALL        #SIP DEFINITION CTTE#
<
< PREPARATION DE L'APPEL DE #SIP UTILITAIRES# :
<
XXXDEF:  VAL         XUNDEF
XXXLOC:  VAL         XUNDEF
XXXTAB:  VAL         XUNDEF
XXXPRO:  VAL         XUNDEF
         CALL        #SIP UTILITAIRES#
         PAGE
<
<
<        B A S   D E   L A   M E M O I R E  :
<
<
ZERO:    EQU         $
         DZS         PEPROG-D+Z
         $EQU        $-2
         WORD        ENTRY;NILK
<
< POINT D'ENTREE :
<
ENTRY:   EQU         $
         LRM         A,K
         WORD        DEBUT           < POINT D'ENTREE DU PROGRAMME,
         WORD        STACK-DEPILE    < INITIALISATION DE LA PILE.
         PSR         A
         RSR                         < ON EFFECTUE AINSI UN 'GOTO' 'DEBUT'...
         PAGE
<
<
<        M E S S A G E S  :
<
<
         TABLE
NVPMT::  VAL         '0B             < 'NVP' D'ACCES A "MT1".
MCLOSE:  ASCI        "!CLOSE"
         BYTE        KEOT;NILK
MASIGN:  ASCI        "!ASSIGN "
         BYTE        NVPMT=FCBA(MOCD;"=";"M";"T";"1";KEOT
<
<
<        C O M M O N  :
<
<
         COMMON
COM:     EQU         $
XXXLOC:  VAL         YYYCCI
         CALL        #SIP UTILITAIRES#
<
< GESTION DU DEROULEUR :
<
DEMMT1:  BYTE        NVPMT;XFMINI    < DEMANDE DE "NON-REWIND" A L'ASSIGN...
DEMMT2:  BYTE        NVPMT;XFMTTM    < DEMANDE D'ECRITURE D'UN "TAPE-MARK"...
         PAGE
<
<
<        P I L E   D E   T R A V A I L  :
<
<
STACK:   EQU         $
         DZS         64
         PROG
         PAGE
XXXPRO:  VAL         YYYCCI
         CALL        #SIP UTILITAIRES#
<
<
<        P O I N T   D ' E N T R E E  :
<
<
DEBUT:   EQU         $
<
< INITIALISATION DES REGISTRES :
<
         LRM         C,K
         WORD        COM+DEPBAS      < POSITIONNEMENT DE 'C',
         WORD        STACK-DEPILE    < ET DE 'K'.
<
<
<        E N T R Y   D E   R E B O U C L A G E  :
<
<
DEBUT4:  EQU         $
DEBUT9:  EQU         $
<
< MODIFICATION A PRIORI DU 'PRESC' :
<
         LRM         A
         WORD        DEBUT5          < POUR 'XXXPRE'...
         ACTD        XXXPRE          < ON CHANGE ALORS SYSTEMATIQUEMENT APRES
                                     < PASSAGE ICI LE 'PRESC' DU PROGRAMME, AFIN
                                     < DE REVENIR SUR LA VISUALISATION APRES
                                     < CHAQUE ALT-MODE (VIA 'DEBUT5'...).
<
<
<        E C R I T U R E   D ' U N   " T A P E - M A R K "  :
<
<
         LRM         A
         WORD        MASIGN
         BSR         ASPCCI          < CONNEXION A "MT1" SI CE N'EST DEJA FAIT..
         LAD         DEMMT1
         SVC                         < DEMANDE DE "NON-REWIND"...
         LAD         DEMMT2
         SVC                         < DEMANDE D'ECRITURE D'UN "TAPE-MARK"...
         LRM         A
         WORD        MCLOSE
         BSR         ASPCCI          < ET FERMETURE...
         QUIT        XXQUIT          < E T   A T T E N T E ...
         JMP         DEBUT9          < VERS LE "TAPE-MARK" SUIVANT...
<
<
<        E N T R Y   A L T - M O D E  :
<
<
DEBUT5:  EQU         $
         QUIT        XXQUIT          < A T T E N T E ...
         LRM         C,K             < ON REINITIALISE 'C' ET 'K' AU CAS
                                     < D'UNE RE-ENTREE PAR UN 'ALT-MODE'...
         WORD        COM+DEPBAS      < 'C',
         WORD        STACK-DEPILE    < 'K'.
         JMP         DEBUT4          < ITERATION SUR ALT-MODE...
         PAGE
<
<
<        T A B L E   D E S   S Y M B O L E S  :
<
<
         IF          '00000000000@,XEIF%,,XEIF%
         EST
XEIF%:   VAL         ENDIF
         DATE
         END         DEBUT



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.