IDP "ANIMATION CUBE" IDP "RELEASE 08/02/80" IDP "P. FRANCONNET" PROG NPATIN: VAL 1 < NOMBRE DE "PATINAGE" (IMAGE FIXE). ZERO: EQU $ DZS '10 WORD RUN WORD ENTRY RUN: EQU $ LRP L BR -1,L PILE: DZS 20 < < MESSAGES STANDARD (POUR LE S/P 'ENVOI'). < M: EQU $+256 MVI: BYTE '6D;"S" ASCI "ORTIR SUR VI" WORD 0 MNBE: BYTE '6D;"N" ASCI "OMBRE D'ETAPES=" WORD 0 MNBP: BYTE '6D;"N" ASCI "OMBRE DE PAS=" WORD 0 MRAZ: BYTE '6D;"R" ASCI "AZ?" WORD 0 MVIDEO: BYTE '6D;"V" ASCI "IDEO?" WORD 0 MPOINT: BYTE '6D;"P" ASCI "OINTILLES?" WORD 0 MCAM: BYTE '6D;"C" ASCI "AMERA?" WORD 0 MTMPO: BYTE '6D;"T" ASCI "EMPORISATION=" WORD 0 PAGE COMMON COM: EQU $ DZS 1 < POUR LE BLOC FLOTTANT. < < CONSTANTES. < C0659: FLOAT 0.659 C07525: FLOAT 0.7525 C09: FLOAT 0.9 C0328: FLOAT 0.328 C0287: FLOAT 0.287 C06: FLOAT 0.6 CT2: FLOAT 2.0 CT1: FLOAT 1.0 C512: FLOAT 512.0 CTX: FLOAT 256.0 CTY: FLOAT 480.0 C05: FLOAT 0.5 < < RELAIS D'ACCES AUX SOUS-PROGRAMMES. < AINI: WORD INI < INITIALISATIONS. AGCUB: WORD GCUB < GENERATION D'UN CUBE. AGEN: WORD GEN < GENERATION D'UNE ARETE. ACXYZ: WORD CXYZ < CALCUL "GRANDS" X,Y,Z ET "PETITS" X,Y < ET TRACE GRAPHIQUE. ATRANS: WORD TRANS < TRANSFORMATION "PETITS" X,Y EN < COORDONNEES GRAPHIQUES. AFIX: WORD FIX < ARRONDI ET PASSAGE FLT --> FIX. AENVOI: WORD ENVOI < ENVOI D'UN MESSAGE STANDARD. ACONVH: WORD CONVH < CONVERSION ASCI --> HEXA. ARAZIM: WORD RAZIM < RAZ IMAGE VIDEO. AVIDEO: WORD VIDEO < VISUALISATION IMAGE VIDEO. AQREP: WORD QREP < ENVOI QUESTION DEMANDE REPONSE. ACAMT: WORD CAMT < COMMANDE CAMERA ET/OU TEMPORISATION. < < DEMANDES. < COORD: EQU $ < COORDONNEES SEGMENT A TRACER. Y1: DZS 1 X1: DZS 1 Y2: DZS 1 X2: DZS 1 DMRAZ: WORD '0B05 < DEMANDE DE RAZ ECRAN. DMOG: WORD '0B03 < DEMANDE D'OPEN GRAPHIQUE. DMTRGR: WORD '0B0A < DEMANDE TRACE GRAPHIQUE. WORD COORD-ZERO*2 WORD 4*2 DMVID: WORD '8A01 < DEMANDE DE VISUALISATION VIDEO. WORD XWORK1 < ADRESSE OCTET ARGUMENTS. WORD '2014 WORD '0002 < SUR LE VERT. ASVI: ASCI "!ASSIGN B=VI" ASVI1: BYTE 0;'04 ASVIF: EQU $ ASO: ASCI "!ASSIGN B=" BYTE "O";'04 ASOF: EQU $ CLOSE: ASCI "!CLOSE" BYTE '04 CLOSEF: EQU $ DMASVI: WORD '0002 < ASSIGNATION B=VIX. WORD ASVI-ZERO*2 WORD ASVIF-ASVI*2 DMASO: WORD '0002 < ASSIGNATION B=O. WORD ASO-ZERO*2 WORD ASOF-ASO*2 DMCLOS: WORD '0002 < !CLOSE. WORD CLOSE-ZERO*2 WORD CLOSEF-CLOSE*2 DMTMPO: WORD '0005 < TEMPORISATION N SECONDES WORD 0 < INUTILISE. DZS 1 < N SECONDES. DMCAM: WORD '0B07 < COMMANDE CAMERA. WORD '1B17 WORD '0400 DMOUT: WORD '0202 < DEMANDE SORTIE MESSAGE. DZS 1 DZS 1 AM: WORD M < POUR LE S/P 'ENVOI'. AXTRAV: WORD '8000 < RELAI DE TRAVAIL. REP: DZS 1 < ZONE REPONSE. DMREP: WORD '0101 < DEMANDE REPONSE. WORD REP-ZERO*2 WORD 1 < < VARIABLES ETC... < < T INITIAL, FINAL, COURANT ET PAS DE VARIATION DE T. TINIT: FLOAT 0.0 TFINAL: FLOAT 0.3 TC: DZS 2 TPAS: DZS 2 < PAS DE VARIATION DE T. < PARAMETRE A,B,C : VALEUR INITIALE, VALEUR FINALE, VALEUR COURANTE. A1: FLOAT -0.4 A2: FLOAT +0.4 AC: DZS 2 < B1: FLOAT -0.3 B2: FLOAT +0.3 BC: DZS 2 < C1: FLOAT 0.0 C2: FLOAT 1.0 CC: DZS 2 < P1: VAL A1-A1 P2: VAL A2-A1 PC: VAL AC-A1 < < NOMBRE DE PAS: FIXE, FLOTTANT. NBP: DZS 1 < NOMBRE DE PAS. NBPF: DZS 2 < NOMBRE DE PAS EN FLOTTANT. DMNBP: WORD '0101 < DEMANDE NOMBRE DE PAS. WORD NBPF-ZERO*2 WORD 4 < NPC: DZS 1 < NUMERO DU PAS COURANT < (DE 0 A N). < DELTAP: DZS 2 < DELTA PARAMETRE COURANT (FINAL-INITIAL). < GX: DZS 2 < GRAND X. GY: DZS 2 < GRAND Y. GZ: DZS 2 < GRAND Z. X: DZS 2 < PETIT X. Y: DZS 2 < PETIT Y. < TRAV1: DZS 2 < ZONE DE TRAVAIL. IRAZ: DZS 1 < INDICATEUR DE "RAZ" : < = 0 : NON. < = 1 : OUI. IVIDEO: DZS 1 < INDICATEUR VISUALISATION VIDEO : < = 0 : NON, < = 1 : OUI. IPOINT: DZS 1 < INDICATEUR OPTION "POINTILLES": < = 0 : NON, < = 1 : NON. ITRP: DZS 1 < INDICATEUR "TRACE POINTILLES": < = 0 : OUI, < # 0 : NON. ICAM: DZS 1 < INDICATEUR "COMMANDE CANERA" : < = 0 : NON, < = 1 : OUI. IPATIN: DZS 1 < INDICATEUR "PATINAGE" : < = 0 : IL FAUT PATINER (IMAGE FIXE), < = 1 : NON. AXIM: WORD IMAG-1,X < RELAI POUR REMISE A ZERO,. < < ARGUMENTS DE LA DEMANDE DE TRACE / VISUALISATION VIDEO. < ARGV: EQU $ XWORK: VAL ARGV-ZERO*2 XWORK1: EQU ZERO+XWORK DZS 1 WORD 1 < MODE 'SBT'. DZS 4 YV1: DZS 4 < Y1,X1,Y2,X2. IMAG: DZS 256*16 < IMAGE. LIMAG: VAL $-IMAG < LONGUEUR MOTS IMAGE. PAGE PROG ENTRY: EQU $ < < A N I M A T I O N D ' U N C U B E < LRM C,K WORD COM+'80 < BASE DU COMMON. WORD PILE-1 < PILE. < BSR AINI < INITIALISATIONS < < G E N E R A T I O N D E S C U B E S. < FLD TINIT < T INITIAL. FST TC < T COURANT. STZ IPATIN < PATINAGE = OUI. GC1: EQU $ BSR AGCUB < GENERATION D'UN CUBE. BSR ACAMT < COMMANDE CAMERA ET/OU TEMPORISATION. FLD TC FAD TPAS < NOUVEAU T COURANT. FST TC FCAM TFINAL < TEST DE FIN. JCV GC1 < < G E N E R A T I O N E N " M A R C H E A R R I E R E " < FLD TFINAL FST TC < T COURANT = T FINAL. STZ IPATIN < PATINAGE = OUI. GC2: EQU $ BSR AGCUB < GENERATION D'UN CUBE. BSR ACAMT < COMMANDE CAMERA ET/OU TEMPORISATION. FLD TC FSB TPAS < NOUVEAU T COURANT. FST TC FCAM TINIT < TEST DE FIN. JNC GC2 < STZ IPATIN < PATINAGE = OUI. BSR ACAMT < COMMANDE CAMERA ET/OU TEMPORISATION. LAD DMCLOS < DESASSIGNATIONS. SVC 0 WORD '1E16 < FIN DU PROGRAMME. JMP ENTRY < VERS NOUVELLE EXECUTION. PAGE INI: EQU $ < < I N I T I A L I S A T I O N S. < INI2: EQU $ < < CHOIX ET ASSIGNATION DE LA VISU SUR LAQUELLE IL FAUT SORTIR. < LAD DMCLOS < !CLOSE D'ABORD. SVC 0 LAI MVI-M < PROPOSITION. BSR AQREP < QUESTION / REPONSE. CPI '0D JE INI1 < SI 'RETURN', ASSIGNER L'ORGANE DE < SORTIE. STBY ASVI1 < SINON, ASSIGNER LA VISU DEMANDEE. LAD DMASVI < DEMANDE D'ASSIGNATION. SVC 0 JNE INI2 JMP INI3 INI1: EQU $ LAD DMASO < DEMANDE D'ASSIGNATION DE L'ORGANE SVC 0 < DE SORTIE. JNE INI2 INI3: EQU $ < < DEMANDE ET INITIALISATION DU NOMBRE D'ETAPES. < LAI MNBE-M < PROPOSITION. BSR AENVOI LAD DMNBP < DEMANDE REPONSE. SVC 0 LA DMNBP+1 < ADRESSE REPONSE. BSR ACONVH < CONVERSION DANS 'A'. JNE INI3 < INCORRECT. JAE INI3 < INADMISSIBLE. FLT STA TPAS FLD TFINAL < T FINAL... FDV TPAS < / NOMBRE D'ETAPES ... FST TPAS < = LE PAS DE VARIATION DE T. INI5: EQU $ < < CHOIX ET INITIALISATION DU NOMBRE DE PAS. < LAI MNBP-M < PROPOSITION. BSR AENVOI LAD DMNBP < DEMANDE REPONSE. SVC 0 LA DMNBP+1 < ADRESSE REPONSE. BSR ACONVH < CONVERSION DANS 'A'. JNE INI5 < INCORRECT. JAE INI5 < INADMISSIBLE. STA NBP < NOMBRE DE PAS EN FIXE. FLT FST NBPF < NOMBRE DE PAS EN FLOTTANT. INI4: EQU $ < < CHOIX DE L'OPTION "RAZ" (INDICATEUR 'IRAZ'). < STZ IRAZ < NON A PRIORI. LAI MRAZ-M < PROPOSITION. BSR AQREP < QUESTION / REPONSE. CPI "N" JE INI6 < NON. CPI "O" JNE INI4 < REPONSE INCORRECTE. IC IRAZ < OUI. INI6: EQU $ < < CHOIX DE L'OPTION "VISUALISATION VIDEO" (INDICATEUR 'IVIDEO'). < STZ IVIDEO < NON A PRIORI. LAI MVIDEO-M < PROPOSITION. BSR AQREP < QUESTION / REPONSE. CPI "N" JE INI7 CPI "O" JNE INI6 < REPONSE INCORRECTE. IC IVIDEO < OUI. INI7: EQU $ < < CHOIX DE L'OPTION POINTILLES (INDICATEUR 'IPOINT'). < STZ IPOINT < NON A PRIORI. LAI MPOINT-M < PROPOSITION. BSR AQREP < QUESTION / REPONSE. CPI "N" JE INI8 CPI "O" JNE INI7 < REPONSE INCORRECTE. IC IPOINT < OUI. INI8: EQU $ < < CHOIX DE L'OPTION CAMERA (INDICATEUR 'ICAM'). < STZ ICAM < NON A PRIORI. LAI MCAM-M < PROPOSITION. BSR AQREP < QUESTION / REPONSE. CPI "N" JE INI9 < NON. CPI "O" JNE INI8 < REPONSE NON RECONNUE. IC ICAM < OUI. INI9: EQU $ < < CHOIX D'UNE DUREE DE TEMPORISATION. < LAI MTMPO-M < PROPOSITION. BSR AQREP < QUESTION / REPONSE. CPI "A" JL INIA CPI "F" JG INI9 < INCORRECT. ADRI -"A"+10,A JMP INIB INIA: EQU $ CPI "0" JL INI9 < INCORRECT. CPI "9" JG INI9 < INCORRECT. ADRI -"0",A INIB: EQU $ STA DMTMPO+2 < DUREE EN SECONDE DANS LA DEMANDE. < < RAZ ECRAN INITIAL. < LAD DMRAZ < DEMANDE DE RAZ ECRAN VISU. SVC 0 BSR ARAZIM < ET RAZ IMAGE. RSR PAGE GCUB: EQU $ < < G E N E R A T I O N D ' U N C U B E. < < CPZ IRAZ < TEST MODE "RAZ". JE GCUB1 LAD DMRAZ < RAZ ECRAN. SVC 0 BSR ARAZIM < RAZ IMAGE VIDEO. STZ ITRP < A PRIORI. GCUB1: EQU $ < < G E N E R A T I O N D E S A R E T E S < < H O R I Z O N T A L E S - L O N G I T U D I N A L E S. < LRM W WORD C1 < PARAMETRE A FAIRE VARIER. < FLD A1 FST AC < A COURANT. FLD B1 FST BC < B COURANT. IC ITRP < POINTILLES EVENTUELS. BSR AGEN < GENERATION AVEC A1, B1 ; C VARIANT. STZ ITRP < TRACE NORMAL. FLD B2 FST BC BSR AGEN < A1,B2; C. FLD A2 FST AC BSR AGEN < A2,B2; C. FLD B1 FST BC BSR AGEN < A2,B1; C. < < G E N E R A T I O N D E S A R E T E S < < H O R I Z O N T A L E S - T R A N S V E R S A L E S. < LRM W WORD B1 < PARAMETRE A FAIRE VARIER. < FLD A1 FST AC < A COURANT. FLD C1 FST CC < C COURANT. IC ITRP < POINTILLES EVENTUELS. BSR AGEN < GENERATION AVEC A1, C1 ; B VARIANT. STZ ITRP < TRACE NORMAL. FLD C2 FST CC BSR AGEN < A1,C2; B. FLD A2 FST AC BSR AGEN < A2,C2; B. FLD C1 FST CC BSR AGEN < A2,C1; B. < < G E N E R A T I O N D E S A R E T E S < < V E R T I C A L E S. < LRM W WORD A1 < PARAMETRE A FAIRE VARIER. < FLD B1 FST BC < B COURANT. FLD C1 FST CC < C COURANT. IC ITRP < POINTILLES EVENTUELS. BSR AGEN < GENERATION AVEC B1, C1 ; A VARIANT. STZ ITRP < TRACE NORMAL. FLD C2 FST CC BSR AGEN < B1,C2; A. FLD B2 FST BC BSR AGEN < B2,C2; A. FLD C1 FST CC BSR AGEN < B2,C1; B. RSR PAGE GEN: EQU $ < < G E N E R A T I O N D ' U N E A R E T E. < < ARGUMENTS: < < - 'AC' 'BC' 'CC' = A COURANT, B COURANT, C COURANT : < PARAMETRES DONT L'UN DOIT VARIER (CF 'W'). < - 'W' POINTE SUR LA VALEUR INITIALE DU PARAMETRE A < FAIRE VARIER. < - 'NBP' = NOMBRE DE PAS. < STZ NPC < NUMERO DU PAS COURANT = 0. FLD P2,W < VALEUR FINALE PARAMETRE A FAIRE VARIER. FSB P1,W < VALEUR INITIALE... FST DELTAP < DELTA (P1,P2). < GEN1: EQU $ LA NPC < NUMERO DU PAS COURANT (DE 0 A 'NBP') FLT FMP DELTAP FDV NBPF < (NUMERO PAS * DELTAP) / NB DE PAS. FAD P1,W < + VALEUR INITIALE... FST PC,W < --> VALEUR COURANTE DU PARAMETRE. BSR ACXYZ < CALCUL DES "GRANDS" X,Y,Z ET DES < "PETITS" X ET Y... ET TRACE GRAPHIQUE.. < IC NPC < NOUVEAU PAS COURANT. LA NPC CP NBP < TEST DE FIN. JLE GEN1 < AU PAS SUIVANT. < RSR PAGE CXYZ: EQU $ < < C A L C U L D E S " G R A N D S " X , Y , Z < < E T D E S " P E T I T S " X , Y E T T R A C E < < G R A P H I Q U E D U S E G M E N T C O U R A N T. < < ARGUMENTS: < - 'AC' 'BC' 'CC' : A,B,C COURANTS. < FLD BC FMP BC < B^2. FST TRAV1 FLD AC FMP AC < A^2. FSB TRAV1 FST TRAV1 < A^2 - B^2. FLD C06 FMP TRAV1 FST TRAV1 < 0.6 ( A^2 - B^2). FLD CC FMP CC < C^2. FAD TRAV1 < 0.6 ( A^2 - B^2 ) + C^2. FST TRAV1 FLD TC < T COURANT. FMP TRAV1 FAD AC FST GX < "GRAND" X. < FLD AC FMP TC FAD CT1 FMP BC < B (1 + AT). FST GY < "GRAND" Y. < FLD AC FMP TC FMP CT2 FNEG FAD CT1 FMP CC < C (1-2AT). FST GZ < "GRAND" Z. < < CALCUL DES "PETITS" X,Y. < FLD GY FMP C0659 FST TRAV1 FLD GZ FMP C07525 FSB TRAV1 < -0.659 GY + 0.7525 GZ. FST X < "PETIT" X. < FLD GX FMP C09 FST TRAV1 FLD GY FMP C0328 FNEG FAD TRAV1 FST TRAV1 FLD GZ FMP C0287 FNEG FAD TRAV1 < 0.9 GX - 0.328 GY - 0.287 GZ. FST Y < "PETIT" Y. < BSR ATRANS < TRANSFORMATION DE X ET Y EN COORDONNEES < GRAPHIQUES. 'TRANS' LES PLACE EN 'X2' < ET 'Y2' DE LA DEMANDE GRAPHIQUE. CPZ NPC < TEST PREMIER PAS. JE CXYZ1 < SI C'EST LE PREMIER PAS (DONC LE < PREMIER POINT, NE PAS TRACER ENCORE). CPZ IPOINT < TEST OPTION POINTILLES. JE CXYZ2 CPZ ITRP < TEST TRACE POINTILLE (ARETE CACHEE). JE CXYZ2 IC ITRP < INCREMENTATION 'ITRP'. LA ITRP TBT 15 < CAR CE BIT BASCULE... ET ON VEUT JC CXYZ1 < TRACER UN SEGMENT SUR DEUX! CXYZ2: EQU $ LAD DMOG < OPEN GRAPHIQUE. SVC 0 JE $+2 WORD '1E16 LAD DMTRGR < DEMANDE DE TRACE GRAPHIQUE. SVC 0 JE $+2 WORD '1E16 CPZ IVIDEO < TEST OPTION VIDEO. JE CXYZ1 BSR AVIDEO < TRACE / VISUALISATION VIDEO. CXYZ1: EQU $ LA X2 STA X1 < NOUVEL X1. LA Y2 STA Y1 < NOUVEL Y1. RSR PAGE TRANS: EQU $ < < T R A N S F O R M A T I O N D E X , Y E N < < C O O R D O N N E E S G R A P H I Q U E S. < < ARGUMENTS: 'X' ET 'Y' < < RESULTAT: 'X' ET 'Y' TRANSFORMEES SONT PLACEES EN < 'X2' ET 'Y2' DE LA DEMANDE GRAPHIQUE. < FLD X FMP C512 FAD CTX < TRANSLATION EN X. BSR AFIX STA X2 < FLD Y FMP C512 FAD CTY < TRANSLATION EN Y. BSR AFIX STA Y2 < RSR < < FIX: EQU $ < < ARRONDI ET "FIX" < FAD C05 FIX RSR PAGE RAZIM: EQU $ < < R A Z I M A G E V I D E O. < LRM X WORD LIMAG < LONGUEUR MOTS IMAGE. STZ &AXIM JDX $-1 RSR < VIDEO: EQU $ < < T R A C E / V I S U A L I S A T I O N V I D E O. < LRM A,B,X WORD Y1 WORD YV1 WORD 4 MOVE < COORDONNEES POUR LE TRACE. LAD DMVID < DEMANDE TRACE / VISUALISATION. SVC 0 RSR CAMT: EQU $ < < C O M M A N D E C A M E R A < < E T / O U < < T E M P O R I S A T I O N. < < (AVEC "PATINAGE" EVENTUEL). < LXI 1 < 1 IMAGE SEULEMENT A PRIORI. CPZ IPATIN < TEST INDICATEUR PATINAGE. JNE CAMT3 LXI NPATIN < 'NPATIN' IMAGES FIXES. IC IPATIN < BASCULEMENT INDICATEUR. CAMT3: EQU $ PSR X < SAUVEGARDE COUNT. CPZ ICAM < TEST OPTION CAMERA. JE CAMT1 LAD DMCAM < DECLENCHEMENT CAMERA. SVC 0 CAMT1: EQU $ CPZ DMTMPO+2 < TEST DUREE EN SECONDES. JE CAMT2 < SI DUREE NULLE, PAS DE DEMANDE. LAD DMTMPO < DEMANDE DE TEMPORISATION. SVC 0 CAMT2: EQU $ PLR X < RESTAURATION COUNT. JDX CAMT3 < ET ON RECOMMENCE. RSR PAGE < < CONVERSION EN BINAIRE D'UN NOMBRE HEXADECIMAL SAISI < EN ASCI (PAR EXEMPLE, NUMERO DE SECTEUR) < < ARGUMENTS: < 'A' = ADRESSE OCTET DES 4 CARACTERES ASCI < < RESULTAT: < 'A' = NOMBRE EN BINAIRE, A VALIDER EN FAISANT AU RETOUR: < JE OK OU < JNE ERREUR < CONVH: EQU $ PSR B,X,Y,W < SAUVEGARDES LR A,Y < Y = ADRESSE CARACTERE EN COURS LXI 4 < INIT COUNT CONVH1: EQU $ LR X,W < SAUVEGARDE COUNT LR Y,X < INDEX CARACTERE LBY &AXTRAV < CARACTERE CPI "0" JL CONVH3 < ERREUR CPI "9" JLE CONVH2 CPI "A" JL CONVH3 < ERREUR CPI "F" JG CONVH3 < ERREUR ADRI -7,A CONVH2: EQU $ ADRI -'30,A SLLS 12 SCLD 4 < CHIFFRE HEXA DANS 'B' ADRI 1,Y < CARACTERE SUIVANT LR W,X < RESTAURATION COUNT JDX CONVH1 < AU SUIVANT < SLLD 16 < CONVERSION OK JMP CONVH9 < CONVH3: EQU $ LBI 1 < ERREUR CONVH9: EQU $ CPZR B < POUR TEST AU RETOUR. PLR B,X,Y,W < RESTAURATIONS RSR PAGE QREP: EQU $ < < E N V O I Q U E S T I O N E T D E M A N D E R E P O N S E < < LA REPONSE EST DE 1 CARACTERE (PAR EXEMPLE < OUI/NON). < < ARGUMENT: < 'A' = ARGUMENT D'APPEL DU S/P ENVOI POUR < POSER UNE QUESTION. < < RESULTAT: < 'A' ( 8-15 ) = REPONSE. < < ATTENTION: < DETRUIT 'X'. < BSR AENVOI < ENVOI QUESTION LAD DMREP < DEMANDE REPONSE SVC 0 LBY REP < CHARGEMENT REPONSE DANS 'A'. RSR PAGE ENVOI: EQU $ < < ENVOI D'UN MESSAGE SUR UL '02 < < EN ENTREE < < A=DEPLACEMENT MOTS DU MESSAGE A ENVOYER PAR RAPPORT < A M. TOUT MESSAGE EST DELIMITE PAR '00 < < < NOTA: ON A < EN TABLE: M: EQU $+256 < MES1: ASCI "TEXTE..." < WORD 0 < EN COMMON: AM: WORD M < APPEL PAR: LAI MESI-M < BSR AENVOI < PSR A,X AD AM < @ MOT MESSAGE ADR A,A < @ OCT MESSAGE STA DMOUT+1 STZ DMOUT+2 LR A,X ENV1: EQU $ < BOUCLE JUSQU'A DELIM '00 LBY &AXTRAV JAE ENV2 IC DMOUT+2 < LONGUEUR='+1 ADRI 1,X JMP ENV1 ENV2: EQU $ LAD DMOUT SVC 0 PLR A,X RSR LST NDS END