PAGE
IDP "HELP - RELEASE 31/01/1975"
IDP "JOHN F. COLONNA"
<
<
< P R O C E S S E U R H E L P :
<
<
PROG
ZERO: EQU $
DZS 7 < ZONE DES ARGUMENTS CMS4 & SODOME.
OVL: EQU $
SVC 0 < A=@DEMSGN ; W=@BRANCH.
JNE E1 < ERREUR DE CHARGEMENT.
BR 5,W < GOTO LA BRANCHE CHARGEE.
E1: EQU $
RSR < RETOUR EN ERREUR.
<
< E N - T E T E D U P R O C E S S E U R :
<
TABLE
BRANCH: EQU $
ASCI "?? " < NOM DU PROCESSEUR.
BYTE '04;'D0
WORD '1F00
WORD HELP < ADRESSE DE LANCEMENT DE HELP.
<
< Z O N E D E R E S T A R T :
<
PROG
WORD 0
PHELP: EQU $ < A NOTER : P='12 !!!!!
LRP L
BR -2,L < RE-ENTRY DANS LE PROCESSEUR.
<
< C O N S T A N T E S D E S O D O M E :
<
LTN: VAL '52 < LONGUEUR MOT DE L'EN-TETE.
LTNI: VAL '561 < LONGUEUR TOTALE DE L'ITEM.
PILE: VAL 'FF0-6
PAGE
<
<
< L O C A L :
<
<
LOCAL
LOC: EQU $
<
< A D R E S S E S D E S R O U T I N E S :
<
AOVL: WORD OVL < CHARGEMENT DES OVERLAYS.
APRINT: WORD PRINT < EMISSION DES MESSAGES.
<
< R E L A I S D E T A B L E S :
<
APILE: WORD PILE < POUR INITIALISER K.
AMESS: WORD LMESS < RELAI MESSAGE COURANT A EDITER.
LMESS: EQU $ < LISTE DES MESSAGES.
AM1: WORD M1
AM2: WORD M2
AM3: WORD M3
AM4: WORD M4
AM5: WORD M5
AM6: WORD M6
AM7: WORD M7
AM8: WORD M8
AM9: WORD M9
AM10: WORD M10
AM11: WORD M11
AM17: WORD M17
AM12: WORD M12
AM13: WORD M13
AM14: WORD M14
AM15: WORD M15
AM16: WORD M16
WORD 0 < FIN DE LA LISTE DES MESSAGES.
<
< D E M A N D E S A C M S 4 :
<
DEMSGN: WORD '0402 < ACCES AU SGN INITIALISE EN
< STORE (GENERATION DE HELP).
WORD BRANCH-ZERO*2 < @OCTET DE LA BRANCHE.
WORD ZERO-BRANCH+PILE-LTNI-LTNI*2
WORD -1
DEMCCI: WORD '0001
DERASE: WORD '0205 < EFFACEMENT DE L'ECRAN.
DEMOUT: WORD '0202 < DEMANDE DE SORTIE SUR LA VISU.
WORD 0 < @OCTET DU MESSAGE.
WORD 0 < LONGUEUR DU MESSAGE.
<
< C O N S T A N T E S :
<
NGE: ASCI "GE" < NOM DE L'OVERLAY DE RETOUR.
<
< M E S S A G E S :
<
OM1: BYTE '6D;" "
ASCI " SMC EST LA !!!!"
BYTE '6D;'6D
M1: WORD $-OM1*2 < LONGUEUR OCTETS DU MESSAGE.
OM2: BYTE '6D;" "
ASCI " UN CERTAIN NOMBRE DE MODES D'EMPLOI "
ASCI "SONT A VOTRE DISPOSITION ; "
M2: WORD $-OM2*2
OM3: ASCI "VOICI LA LISTE DES COMMANDES "
ASCI "NECESSAIRES POUR LES ATTEINDRE : "
M3: WORD $-OM3*2
OM4: BYTE '6D;'6D
ASCI "!IU<NOM><EOT> APPEL DE <NOM> ,"
M4: WORD $-OM4*2
OM5: BYTE '6D;"!"
ASCI "ED APPEL DE L'EDITEUR , "
M5: WORD $-OM5*2
OM6: BYTE '6D;"<"
ASCI "CTRL-E> EDITION DU CONTENU DE <NOM> . "
M6: WORD $-OM6*2
OM7: BYTE '6D;'6D
ASCI "<EOT> REPRESENTE LE CARACTERE OBTENU PAR "
ASCI "L'ACTION CONJOINTE SUR 'CTRL' ET SUR 'D' . "
M7: WORD $-OM7*2
OM8: BYTE '6D;"<"
ASCI "NOM> DESIGNE LE NOM D'UN MODE "
ASCI "D'EMPLOI , DONT LA LISTE SUIT : "
BYTE '6D;0
M8: WORD $-OM8*2
OM9: BYTE '6D;"?"
ASCI "CMS4 INTRODUCTION AU MONITEUR CMS4 , "
M9: WORD $-OM9*2
OM10: BYTE '6D;"?"
ASCI "ED UTILISATION DE L'EDITEUR DE TEXTES , "
M10: WORD $-OM10*2
OM11: BYTE '6D;"?"
ASCI "G3 UTILISATION DU SYSTEME GRAPHIQUE G3 , "
M11: WORD $-OM11*2
OM17: BYTE '6D;"?"
ASCI "VIDEO UTILISATION DU SYSTEME VIDEO , "
M17: WORD $-OM17*2
OM12: BYTE '6D;"?"
ASCI "KA SAUVEGARDE ET RESTAURATION DES ITEMS , "
M12: WORD $-OM12*2
OM13: BYTE '6D;"?"
ASCI "SE CREATION DES ITEMS SPECIAUX , "
M13: WORD $-OM13*2
OM14: BYTE '6D;"?"
ASCI "GE GESTION DES ITEMS ET DES GRAPHES , "
M14: WORD $-OM14*2
OM15: BYTE '6D;"?"
ASCI "TYPE LISTE DES TYPES POSSIBLES D'ITEMS , "
M15: WORD $-OM15*2
OM16: BYTE '6D;"?"
ASCI "DEF DEFINITIONS DIVERSES ET VARIEES , "
M16: WORD $-OM16*2
PAGE
<
<
< E M I S S I O N D ' U N M E S S A G E :
<
<
< ARGUMENT :
< A=@MOT D'UN MOT CONTENANT LA LONGUEUR
< OCTETS DU MESSAGE ET SUIVANT CELUI-CI.
<
<
PROG
PRINT: EQU $
PSR C < SAVE LA BASE C.
LR A,C < C=@MOT DE LA LONGUEUR.
LA 0,C < A=LONGUEUR DU MESSAGE ,
STA DEMOUT+2 < QUE L'ON MET DANS DEMOUT.
XR A,C < C=LONGUEUR ; A=@LONGUEUR.
ADR A,A < A=@OCTET DE LA LONGUEUR.
SBR C,A < A=@OCTET DU MESSAGE ,
STA DEMOUT+1 < QUE L'ON MET DANS DEMOUT.
LAD DEMOUT
SVC 0 < EMISSION DU MESSAGE.
PLR C
RSR
PAGE
<
<
< P R O C E S S E U R H E L P :
<
<
WORD LOC+'80 < POUR INITIALISER L.
WORD BRANCH < POUR INITIALISER W.
HELP: EQU $
LRP K
ADRI -1,K
PLR L,W < INITIALISATION DE L & W.
LA APILE
LR A,K < INITIALISATION DE K.
LA NGE
STA 0,W < MISE EN PLACE DU NOM DE L'3VERLAY
< DE RETOUR.
LAI 6
STBY DEMSGN < DEMSGN EST MISE EN MODE 'LOAD
< SOUS :SYS'.
<
<
< H E L P D E L ' U T I L I S A T E U R :
<
<
LAD DERASE
SVC 0 < EFFACEMENT DE L'ECRAN.
E3: EQU $
LA &AMESS < RECUPERATION DE L'ADRESSE
< DU MESSAGE COURANT.
JAE E2 < FIN DE LISTE.
BSR APRINT < EDITION DU MESSAGE COURANT.
JNE E2 < ABORT SI CTRL-X-OFF ...
IC AMESS < SINON , PASSAGE MESSAGE SUIVANT.
JMP E3
<
<
< R E T O U R O V E R L A Y S U I V A N T :
<
<
E2: EQU $
LAD DEMSGN < A=@DEMSGN ; W=@BRANCH.
BSR AOVL < TENTATIVE DE CHARGEMENT.
LAD DEMCCI < CAS DES ERREURS : RETOUR
SVC 0 < AU CCI.
JMP E2 < CAS DES !GO.
PAGE
<
<
< V A L I D A T I O N I M P L A N T A T I O N :
<
<
X12: EQU ZERO+PILE-LTNI-LTNI
X10: VAL X12-$
ZEROV: EQU ZERO+X10 < ERREUR D'ASSEMBLAGE SI ...
DZS X10+1 < PROPRETE ...
PAGE
<
<
< G E N E R A T I O N D E H E L P :
<
<
COMMON
COM: EQU $
MOK: BYTE '6D;"O"
ASCI "K!"
DEMOK: WORD '0202
WORD MOK-ZERO*2
WORD 4
PROG
WORD COM+'80
WORD LOC+'80
GENERE: EQU $
LRP K
ADRI -1,K
PLR C,L < INITIALISATION DE C & L.
LA APILE
LR A,K < INITIALISATION DE K.
<
< TENTATIVE DE GENERATION :
<
HE1: EQU $
LAD DEMSGN
SVC 0
JNE HE2 < ERREUR DE GENERATION ...
<
< OK , BONNE GENERATION :
<
LAD DEMOK
SVC 0 < ENVOI DU MESSAGE OK.
HE3: EQU $
LAD DEMCCI
SVC 0 < ET RETOUR DEFINITIF AU CCI.
JMP HE3 < MEME SI !GO.
<
< ERREURS DE GENERATION :
<
HE2: EQU $
LAD DEMCCI
SVC 0 < RETOUR PROVISOIRE AU CCI.
JMP HE1 < NOUVELLE TENTATIVE SI !GO.
END GENERE
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.