PROG TRN < < < D E F I N I T I O N S G E N E R A L E S : < < CALL #SIP DEFINITION CTTE# PAGE < < < O P T I O N S D ' A S S E M B L A G E : < < XMULTI: @ XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1 XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2 XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT... XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4 XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'XMULTI'... XWOR%6: VAL XWOR%5=FCSIGN XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN IF XWOR%6*XWOR%7,XEIF%,,XEIF% XMULTI:: VAL W < DEFINITION DU FACTEUR MULTIPLICATIF DU < FACTEUR DE REPETITION 'R'... XEIF%: VAL ENDIF XDIVIS: @ XWOR%1: VAL KOLF=FMASK+KOLTES=FVAL XWOR%1: VAL KOLC=FMASK+KDP=FVAL?XWOR%1 XWOR%2: VAL KOLTED=FMASK+KOL0=FVAL XWOR%2: VAL KOLTEF=FMASK+KOL0+KOLON=FVAL?XWOR%2 XWOR%3: VAL XWOR%2=XWOR%1-KOL0 < LONGUEUR DU SYMBOLE COURANT... XWOR%4: VAL MSYMBI=FMASK+KOL0=FVAL XWOR%4: VAL MSYMBL=FMASK+XWOR%3=FVAL?XWOR%4 XWOR%5: VAL XWOR%4=FCSYMT < ETAT DU SYMBOLE 'XDIVIS'... XWOR%6: VAL XWOR%5=FCSIGN XWOR%7: VAL XWOR%5(MSYMBN)MSYMBN=FCSIGN IF XWOR%6*XWOR%7,XEIF%,,XEIF% XDIVIS:: VAL W < DEFINITION DU FACTEUR DIVISEUR DU < FACTEUR DE REPETITION 'R'... XEIF%: VAL ENDIF PAGE < < < B A S D E L A M E M O I R E : < < ZERO: EQU $ DZS PEPROG-D+Z < < 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 : < < LBUFDK:: VAL LCCINT/NOCMO < LONGUEUR MAX DES REPONSES DU DISQUE < VIDEO. MBDKV: BYTE K6D;"*" LMBDKV:: VAL $-MBDKV*NOCMO BUFDK: EQU $ DZS LBUFDK < < < L O C A L : < < LOCAL LOC: EQU $ < < OPTIONS D'EXECUTION : < OPTMES: WORD NEXIST < ='EXIST' : EDITER LES REPONSES DU DIS- < QUE VIDEO, < ='NEXIST' : NE PAS LES EDITER. OPTREP: WORD EXIST < 'EXIST' : NE PAS ENVOYER 2 "RXYZ;" IDEN- < TIQUES DE SUITE, < 'NEXIST' : LES ENVOYER (ON N'OPTIMISE < PAS). < < DEFINITION DE L'ECHELLE < DES TEMPS (PAR "R") : < R0:: VAL W < POUR NE PAS ATTENDRE... R02:: VAL R0+R0 < POUR ATTENDRE UN SOUPCON... R03:: VAL R02+R0 < ET UN PETIT PEU PLUS... R04:: VAL R03+R0 < ET ENCORE PLUS... R05:: VAL R04+R0 R06:: VAL R05+R0 R07:: VAL R06+R0 R08:: VAL R07+R0 R09:: VAL R08+R0 XWOR%1: VAL K < INITIALISATION DE 'R1'. XWOR%2: VAL 25 < UN SECONDE=25 TRAMES. DO XWOR%2 XWOR%1: VAL XWOR%1+R0 R1:: VAL XWOR%1 < POUR ATTENDRE 1 SECONDE, NTRN RS2:: VAL R1/XXXMOY < POUR ATTENDRE 1/2 SECONDE, TRN R2:: VAL R1+R1 < POUR ATTENDRE 2 SECONDES, R3:: VAL R2+R1 < POUR ATTENDRE 3 SECONDES, R4:: VAL R3+R1 < POUR ATTENDRE 4 SECONDES, R5:: VAL R4+R1 < POUR ATTENDRE 5 SECONDES, R10:: VAL R5+R5 < ET ENFIN 10 SECONDES... AMULTI: WORD XMULTI < MULTIPLICATEUR ADIVIS: WORD XDIVIS < ET DIVISEUR DE "R"... < < MESSAGES DE COMMANDE < DU DISQUE VIDEO : < FINDKV:: VAL KCR < FIN DES MESSAGES AU DISQUE VIDEO. LMDKV:: VAL W < LONGUEUR DES COMMANDES AU DISQUE < VIDEO ("L", "R",...). ML: ASCI "LXYZ XYZ;" < (";" REPRESENTE 'FINDKV') LML:: VAL $-ML*NOCMO < LONGUEUR MAJOREE DU MESSAGE 'ML'. MRC: BYTE FINDKV MR: ASCI "RXYZ;" < (";" REPRESENTE 'FINDKV') LMR:: VAL $-MR*NOCMO < LONGUEUR MAJOREE DU MESSAGE 'MR'. < < RELAIS D'ACCES AUX MESSAGES < DE COMMANDE DU DISQUE VIDEO : < AML: WORD ML,X < ACCES A "LXYZ XYZ;". AMR: WORD MR,X < ACCES A "RXYZ;". < < DEMANDES D'ACCES AU < DISQUE VIDEO : < NVPDK:: VAL COSBT?XASSIM=FMASK(K?NVPVDK=FCINST < 'NVP' IMPLICITE D'ACCES AU DISQUE < VIDEO... DEML: BYTE NVPDK;FAVW < DEMANDE D'ENVOI DE "LXYZ XYZ;". WORD ML=FCTA*NOCMO WORD NILK DEMRC: BYTE NVPDK;FAVW < DEMANDE D'ENVOI DE 'R/C'. WORD MRC=FCTA*NOCMO WORD W DEMR: BYTE NVPDK;FAVW < DEMANDE D'ENVOI DE "RXYZ;". WORD MR=FCTA*NOCMO WORD NILK DEMRER: BYTE NVPDK;FAVR < LECTURE DE LA REPONSE DU DISQUE VIDEO. WORD BUFDK=FCTA*NOCMO WORD LBUFDK*NOCMO DEMREW: BYTE NVPOUT;FAVW < ECRITURE DE LA REPONSE DU DISQUE VIDEO. WORD MBDKV=FCTA*NOCMO WORD NILK DEMCL: BYTE NVPDK;FAVWD < DEMANDE DE CLEAR INITIAL DU BUFFER D'AN- < TICIPATION DE LA VISU D'ACCES AU < DISQUE VIDEO; BYTE KEOT < THAT'S ALL... < < DONNEES DE CONVERSION < BINAIRE --> DECIMAL : < C10: WORD BASE10 < POUR DIVISER PAR 10... C100: WORD BASE10*BASE10 < POUR DIVISER PAR 100... ASPNOM: WORD SPNOM < SOUS-PROGRAMME DE CONVERSION D'UN NOM- < BRE EN UNE CHAINE DECIMALE. ASPCHI: WORD SPCHI < SOUS-PROGRAMME D'INSERTION D'UN CHIFFRE < QUELCONQUE DANS UN BUFFER. ASPCH0: WORD SPCH0 < SOUS-PROGRAMME D'INSERTION D'UN CHIFFRE < NON NUL DANS UN BUFFER. ASPCAR: WORD SPCAR < SOUS-PROGRAMME D'INSERTION D'UN CARAC- < TERE QUELCONQUE DANS UN BUFFER. ABUF: WORD NILK < RELAI VARIABLE VERS UN BUFFER. < < DONNEES DE GENERATION DES < COMMANDES AU DISQUE VIDEO < ET DE LEUR ENVOI : < REPETC: WORD K < MEMORISATION DE LA COMMANDE "RXYZ;" < PRECEDENTE (LA VALEUR NULLE EST LA < VALEUR INITIALE...). ADEBUC: WORD NILK < ADRESSE DE DEBUT COURANTE, AFINC: WORD NILK < ADRESSE DE FIN COURANTE. ASPREP: WORD SPREP < SOUS-PROGRAMME DE GENERATION DE LA < COMMANDE "RXYZ;". ASPSEQ: WORD SPSEQ < SOUS-PROGRAMME DE GENERATION DE LA < COMMANDE DE DIFFUSION, SOIT "LXYZ XYZ;", < SOIT 'R/C' LORSQU'IL N'Y A QU'UNE < SEULE IMAGE... ASPSYN: WORD SPSYN < SOUS-PROGRAMME D'ATTENTE DES REPONSES DU < DISQUE VIDEO, ET D'EDITION EVENTUELLE < DE SES REPONSES. < < PILE DE TRAVAIL : < STACK: EQU $ DZS 64 < ARBITRAIRE... PAGE < < < D E F I N I T I O N D E L A T A B L E < D E S E Q U E N C E M E N T : < < DSEC SEQUEN: EQU $ REPET: WORD NILK < COMPTEUR DES REPETITIONS : IL CORRESPOND < A LA COMMANDE "RXYZ;" DU DISQUE VIDEO. < NOTA : LA VALEUR 'NEXIST' (NULLE) INDI- < QUE UNE FIN DE LISTE DE SEQUENCEMENT... < DE PLUS, UNE VALEUR NEGATIVE (PAR MISE < A 1 DU BIT DE SIGNE PAR EXEMPLE...) < PROVOQUE UN POINT D'ARRET SOUS 'CCI' ; < LORS DU "!GO", LE POINTEUR 'W' DES < DESCRIPTEURS RESTE INCHANGE. IF NEXIST-K,,XEIF%, IF ATTENTION : CE QUI EST DIT EST FAUX !!! XEIF%: VAL ENDIF ADEBUT: WORD NILK < DONNE L'ADRESSE DE DEBUT D'UNE SEQUENCE, AFIN: WORD NILK < DONNE L'ADRESSE DE FIN D'UNE SEQUENCE ; < CELLE-CI PEUT ETRE EGALE A L'ADRESSE DE < DEBUT, AUQUEL CAS LA COMMANDE "LXYZ XYZ;" < < EST REMPLACEE PAR LA COMMANDE 'R/C'. < < FIN DU DESCRIPTEUR : < LSEQ:: VAL $-SEQUEN < LONGUEUR DU DESCRIPTEUR. PROG USE W,SEQUEN PAGE < < < I N S E R T I O N D A N S U N B U F F E R : < < < FONCTION : < CE SOUS-PROGRAMME INSERE < UN CARACTERE DANS LE BUFFER < VARIABLE 'ABUF' ET FAIT PRO- < GRESSER L'INDEX D'ACCES. < < < ARGUMENTS : < (A)=CARACTERE A INSERER, < (X)=INDEX D'INSERTION AVANT. < < < RESULTAT : < (X)=INDEX D'INSERTION APRES. < < SPCAR: EQU $ STBY &ABUF < INSERTION DU CARACTERE COURANT, ADRI I,X < ET PROGRESSION DE L'INDEX... RSR < ET RETOUR... PAGE < < < I N S E R T I O N D ' U N C H I F F R E < D E C I M A L Q U E L C O N Q U E : < < < FONCTION : < CE SOUS-PROGRAMME INSERE < DANS LE BUFFER VARIABLE 'ABUF' < LE CHIFFRE DECIMAL COURANT < APRES CONVERSION, PUIS FAIT < PROGRESSER L'INDEX COURANT DU < BUFFER. < < < ARGUMENTS : < (A)=VALEUR BINAIRE A CODER, < (X)=INDEX COURANT AVANT INSERTION. < < < RESULTAT : < (X)=INDEX COURANT APRES INSERTION. < < SPCHI: EQU $ JAL SPCHI1 < ERREUR... CPI BASE10 < VALIDATION... JL SPCHI2 < OK... SPCHI1: EQU $ QUIT XXQUIT < E R R E U R P R O G R A M M E ... JMP SPCHI3 < ET ON SORT... SPCHI2: EQU $ PSR A ADRI HZERO,A < CONVERSION : BINAIRE --> DECIMAL. BSR ASPCAR < ET INSERTION DANS LE BUFFER... PLR A SPCHI3: EQU $ RSR < ET RETOUR... PAGE < < < I N S E R T I O N D ' U N C H I F F R E < D E C I M A L N O N N U L : < < < FONCTION : < CE SOUS-PROGRAMME INSERE < DANS LE BUFFER VARIABLE 'ABUF' < LE CHIFFRE DECIMAL COURANT < APRES CONVERSION, A CONDI- < TION QUE CELUI-CI NE SOIT PAS < NUL, PUIS FAIT PROGRESSER < L'INDEX COURANT DU BUFFER. < < < ARGUMENTS : < (A)=VALEUR BINAIRE A CODER, < (X)=INDEX COURANT AVANT INSERTION. < < < RESULTAT : < (X)=INDEX COURANT APRES INSERTION SI ELLE A EU LIEU. < < SPCH0: EQU $ JAE SPCH03 < ON IGNORE LES VALEURS NULLES... JAL SPCH01 < ERREUR... CPI BASE10 < VALIDATION... JL SPCH02 < OK... SPCH01: EQU $ QUIT XXQUIT < E R R E U R P R O G R A M M E ... JMP SPCH03 < ET ON SORT... SPCH02: EQU $ PSR A ADRI HZERO,A < CONVERSION : BINAIRE --> DECIMAL. BSR ASPCAR < ET INSERTION DANS LE BUFFER... PLR A SPCH03: EQU $ RSR < ET RETOUR... PAGE < < < C O N V E R S I O N D ' U N N O M B R E < E N U N E C H A I N E D E C I M A L E : < < < FONCTION : < CE SOUS-PROGRAMME CONVERTIT < UN NOMBRE ARGUMENT (NON SIGNE) < EN UNE CHAINE DECIMALE NE CON- < TENAT PAS DE ZEROS ("0") EN < TETE. < < < ARGUMENTS : < (A)=NOMBRE ARGUMENT, < (X)=INDEX COURANT DU BUFFER AVANT CONVERSION. < < < RESULTAT : < (X)=INDEX COURANT APRES CONVERSION. < < SPNOM: EQU $ < < INITIALISATIONS : < JAGE SPNOM1 < OK, LE NOMBRE EST POSITIF... QUIT XXQUIT < E R R E U R P R O G R A M M E ... JMP SPNOM2 < ET ON ABANDONNE... SPNOM1: EQU $ PSR A,B < SAUVEGARDES... < < CHIFFRE DES CENTAINES : < CP C10 < UN SEUL CHIFFRE ??? JL SPNOM3 < OUI... CP C100 < DEUX CHIFFRES ??? JL SPNOM4 < OUI... SARD NBITMO < NON, TROIS, CADRAGE, DV C100 < (A)=CHIFFRE DES CENTAINES, < (B)=RESTE (DIZAINES ET UNITES). BSR ASPCHI < CONVERSION ET INSERTION DANS LE BUFFER < SI LE CHIFFRE DES CENTAINES N'EST PAS < NUL. LR B,A < RECUPERATION DU RESTE, SPNOM4: EQU $ SARD NBITMO < CADRAGE, DV C10 < (A)=CHIFFRE DES DIZAINES, < (B)=RESTE (UNITES). BSR ASPCHI < CONVERSION ET INSERTION DANS LE BUFFER < SI LE CHIFFRE DES DIZAINES N'EST PAS < NUL. LR B,A < (A)=CHIFFRE DES UNITES, SPNOM3: EQU $ BSR ASPCHI < QUE L'ON INSERE SYSTEMATIQUEMENT DANS < LE BUFFER... < < ET RETOUR : < PLR A,B SPNOM2: EQU $ RSR PAGE < < < G E S T I O N D E L A R E P E T I T I O N : < < < FONCTION : < CE SOUS-PROGRAMME GENERE < LA COMMANDE "RXYZ;", ET L' < ENVOIE AU DISQUE VIDEO. < < < ARGUMENT : < (W)=ADRESSE DU BLOC DE SEQUENCE COURANT. < < SPREP: EQU $ < < INITIALISATIONS : < PSR A,B,X LA AMR STA ABUF < INITIALISATION DU RELAI VERS LE BUFFER < VARIABLE DE FACON A ACCEDER A "RXYZ;", LXI LMDKV-Z+I < ET INITIALISATION DE L'INDEX D'INSER- < TION. < < GENERATION DE LA < COMMANDE "RXYZ;" : < LA REPET < (A)=FACTEUR DE REPETITION COURANT, CPZ OPTREP < OPTIMISE-T'ON ??? IF NEXIST-K,,XEIF%, IF ATTENTION : CE TEST EST IDIOT !!! XEIF%: VAL ENDIF JE SPREP3 < NON... CP REPETC < OUI, EST-CE LE PRECEDENT ??? JE SPREP2 < OUI, ON OPTIMISE... SPREP3: EQU $ STA REPETC < MEMORISATION DU 'REPET' COURANT... MP AMULTI < FACTEUR MULTIPLICATEUR, DV ADIVIS < ET DIVISEUR : JAG SPREP4 < OK... LAI R0 < LORSQUE LA VALEUR TROUVEE EST NEGATIVE < OU NULLE, ON PREND LE MINIMUM... SPREP4: EQU $ BSR ASPNOM < ET CONVERSION DECIMALE... LAI FINDKV BSR ASPCAR < ET MISE EN PLACE DU LIMITEUR... LR X,A CPI LMR-Z+I < ET VALIDATION DE L'INDEX FINAL... JLE SPREP1 < OK... QUIT XXQUIT < E R R E U R P R O G R A M M E ... SPREP1: EQU $ < < ENVOI DE LA COMMANDE : < STA DEMR+COESC < ET MISE EN PLACE DE LA LONGUEUR DE LA < COMMANDE "RXYZ;", LAD DEMR SVC < QUE L'ON ENVOIE... BSR ASPSYN < ET SYNCHRONISATION... < < ET RETOUR : < SPREP2: EQU $ PLR A,B,X RSR PAGE < < < G E S T I O N D E L A D I F F U S I O N : < < < FONCTION : < CE SOUS-PROGRAMME GENERE < LA COMMANDE "LXYZ XYZ;", OU LA < COMMANDE 'R/C' SI LES ADRESSES < DE DEBUT ET DE FIN SONT EGALES, < ET L'ENVOIE AU DISQUE VIDEO. < < < ARGUMENT : < (W)=ADRESSE DU BLOC DE SEQUENCE COURANT. < < SPSEQ: EQU $ < < INITIALISATIONS : < PSR A,B,X LA AML STA ABUF < INITIALISATION DU RELAI VERS LE BUFFER < VARIABLE DE FACON A ACCEDER A "RXYZ;", LXI LMDKV-Z+I < ET INITIALISATION DE L'INDEX D'INSER- < TION. < < GENERATION DE LA < COMMANDE "LXYZ XYZ;" : < LA ADEBUT < (A)=ADRESSE DE DEBUT, ADRI -I,A CP AFINC < SUIT-ON LA SEQUENCE PRECEDENTE ??? JNE SPSEQ3 < NON, DONC "L..." EST OBLIGATOIRE... ADRI I,A < OUI, ALORS : CP AFIN < N'Y-A-T'IL QU'UNE SEULE IMAGE ??? LAD DEMRC < (OUI A PRIORI...) JE SPSEQ2 < OUI, DONC "L..." EST INUTILE... SPSEQ3: EQU $ LA ADEBUT < NON, (A)=ADRESSE DE DEBUT, BSR ASPNOM < ET CONVERSION DECIMALE, CP AFIN < ADRESSES DE DEBUT ET DE FIN SONT-ELLES < EGALES ??? JE SPSEQ4 < OUI, IL SUFFIT D'ENVOYER "LXYZ;"... LAI KSP < NON : BSR ASPCAR < INSERTION D'UN ESPACEMENT... LA AFIN < (A)=ADRESSE DE FIN, BSR ASPNOM < CONVERSION DE L'ADRESSE DE FIN. SPSEQ4: EQU $ LAI FINDKV BSR ASPCAR < ET MISE EN PLACE DU LIMITEUR... LR X,A CPI LML-Z+I < ET VALIDATION DE L'INDEX FINAL... JLE SPSEQ1 < OK... QUIT XXQUIT < E R R E U R P R O G R A M M E ... SPSEQ1: EQU $ < < ENVOI DE LA COMMANDE : < STA DEML+COESC < ET MISE EN PLACE DE LA LONGUEUR DE LA < COMMANDE "LXYZ XYZ;". LAD DEML SPSEQ2: EQU $ SVC < ET ENVOI DE LA COMMANDE DE DIFFUSION DE < SEQUENECE "LXYZ XYZ;" OU 'R/C'... BSR ASPSYN < ET SYNCHRONISATION... < < ET RETOUR : < LA ADEBUT STA ADEBUC < MEMORISATION DE LA LA AFIN STA AFINC < SEQUENCE COURANTE... PLR A,B,X RSR PAGE < < < S O U S - P R O G R A M M E D E S Y N C H R O N I S A T I O N : < < < FONCTION : < CE SOUS-PROGRAMME ATTEND < LES REPONSES DU DISQUE VIDEO, < ET EVENTUELLEMENT EDITE SES < REPONSES. < < SPSYN: EQU $ < < INITIALISATIONS : < PSR A,B,X < < LECTURE DE LA REPONSE, < ET EDITION EVENTUELLE : < LAD DEMRER SVC < LECTURE DE LA REPONSE, IF NEXIST-K,,XEIF%, IF ATTENTION : LE TEST SUIVANT EST IDIOT !!! XEIF%: VAL ENDIF CPZ OPTMES < FAUT-IL EDITER LES REPONSES ??? JE SPSYN1 < NON... ACTD XXXSIZ < OUI : < (B)=NOMBRE DE CARACTERES RENVOYES... ADRI LMBDKV-LMDKV,B < QUE L'ON MODIFIE POUR INSERER UN MESSAGE < INITIAL ('LMBDKV'), ET SUPPRIMER LA FIN < DE MESSAGE... STB DEMREW+COESC < QUE L'ON INSERE DANS LA DEMANDE... LAD DEMREW SVC < ET QUE L'ON ENVOIE... SPSYN1: EQU $ < < ET RETOUR : < PLR A,B,X RSR PAGE < < < P R O G R A M M E D E D I F F U S I O N : < < DEBUT: EQU $ < < INITIALISATION DES REGISTRES : < LRM L,W,K WORD LOC+DEPBAS < INITIALISATION DE LA BASE LOCALE, WORD LISTE < ET DE 'W' SUR LA SEQUENCE A DIFFUSER... WORD STACK-DEPILE < ET ENFIN DE 'K'... STZ REPETC < CLEAR DE NOMBRE DE REPETITION COURANTE, < AFIN D'OPTIMISER LES ENVOIS... STZ ADEBUC < INITIALISATION DE LA DC ADEBUC STZ AFINC < SEQUENCE COURANTE ; DC AFINC < N'OUBLIONS PAS QUE L'IMAGE '0 N'EXISTE < PAS... < < CLEAR DU BUFFER D'ANTICIPATION : < LAD DEMCL SVC < < BOUCLE DE DIFFUSION : < LOOP1: EQU $ FINSEQ:: VAL NEXIST < INDICATEUR DE FIN DE SEQUENCE DANS LE < CHAMP 'REPET'. CPZ REPET < EST-CE LA FIN ??? IF FINSEQ-K,,XEIF%, IF ATTENTION : CE TEST EST IDIOT !!! XEIF%: VAL ENDIF JE LOOP2 < OUI, ON ARRETE... JG LOOP3 < OK, ON CONTINUE EN SEQUENCE... < < CAS DES POINTS D'ARRET : < QUIT XXQUIT < P O U R L E S P A T C H E S ... JMP LOOP1 < ET ON NE MODIFIE PAS 'W' AFIN DE RESTER < SUR LE MEME DESCRIPTEUR QU'ON A PU < MODIFIER SOUS 'DEBUG', AFIN DE SUPPRI- < MER LE POINT D'ARRET... < < CAS DES DESCRIPTEURS NORMAUX : < LOOP3: EQU $ BSR ASPREP < NON, ON GERE LES REPETITIONS, BSR ASPSEQ < PUIS LA DIFFUSION PROPREMENT DITE... ADRI LSEQ,W < PUIS ON PASSE A L'ENTREE SUIVANTE... JMP LOOP1 < SI CE N'EST PAS FINI... < < FIN D'EDITION : < LOOP2: EQU $ QUIT XXQUIT < ON ATTEND... JMP DEBUT < ET ON RECOMMENCE... PAGE < < < S E Q U E N C E P R O P R E M E N T D I T E : < < LISTE: EQU $ < < QUELQUES INITIALISATIONS : < A:: VAL K < 'A' DESIGNERA L'ADRESSE COURANTE ; ON < L'INITIALISE SUR L'IMAGE '0 QUI N'EXIS- < TE PAS...