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
Copyright © Jean-François COLONNA, 2022-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2022-2024.