DF'SIP DEFINITION CMS5'
ED'SIP DEFINITION CMS5'
IN0
IDP "SIP DEFINITION CMS5"
<
<
< C O N S T A N T E S L I E E S A C M S 5 :
<
<
LCCI: VAL 80 < LONGUEUR MAX DES MESSAGES 'CCI'.
NBITMO: VAL 16
IDESC: MOT '0C < IDESC DANS DCTESC
DEMSWP: MOT '17 < NSPTYP DE DEMSWP DANS DCTESC
ATASGN: MOT '38 < RELAI VERS TASSGN
TASSGN: MOT '38+1 < DEPLACEMENT DE TASGN DANS DCTESC
ACADCT: VAL 'FF80 < ACCES A LA ROUTINE CADCT DE CMS4
TETE: MOT '18 < DEPLACEMENT DE TETE DANS DCT
SIT: MOT '20 < DEPLACEMENT DE SIT DANS DCT
ETAT: MOT '2E < DEPLACEMENT DE ETAT DANS DCT
FRETRY: VAL '32 < ROUTINE D'ITERATION DES TENTATIVES.
OPDEM: MOT 1 < ACCES OPDEM DANS DEMANDE DE SERVICE
CODEM: MOT 3 < ACCES CODEM DANS DEMANDE DE SERVICE
NVP: VAL '0B < NVP DE LA VISU ASSIGNEE
NVPMAX: VAL '0C-1 < DERNIER NVP ACCESSIBLE
NESCLA: VAL 8+1 < NOMBRE D'ESCLAVES +1
SECTSY: VAL '800 < ADRESSE SECTEUR DU SYSTEME
LBUFES: VAL '38 < LONGUEUR EN MOTS DE BUFESC
NSPTV: VAL '04 < NSP DU SYSTEME VIDEO
NSPNXS: VAL '18 < NSP DU HANDLER NEXT-SERIE
NSPDK1: VAL '23 < NSP DU 1ER DISQUE
NSPHOR: VAL '29 < NSP DE HDLHOR
NSPESC: VAL '57 < NSP D'ACCES A LA LISTE DES DCTESC
NSPUSE: VAL '61 < NSP D'ACCES A NUSERA
NSPDAT: VAL '6A < NSP D'ACCES A LA DATE/HEURE
NSPSAV: VAL '6B < NSP D'INTERFACE DU SYSTEME
< DE SAVE/RECOVERY
XWOR%1: VAL "@"
IF XWOR%1-"S",XWOR%,,XWOR%
ORDI: VAL "S" < ASSEMBLAGE SOLAR-CMS5.
DADR: VAL -4 < CONVERSION ADRESSE 16-MOTS.
TZSWAP: VAL 'A8 < NOMBRE DE SECTEURS D'UNE ZONE
< DE SWAPPING ESCLAVE
NBCUS: VAL "3" < NUMERO DU CU DE SORTIE SON.
WCUS: VAL '0818+'0005 < ARGUMENT DE SIO ECRITURE SUR CU SON.
NSPVI1: VAL '06 < NSP DE LA PREMIERE VISU
NSPVIN: VAL '0D < NSP DE LA DERNIERE VISU
BOERA: MOT 6 < DEPLACEMENT TEMPO ERASE DANS DCT.
ATABUL: MOT '0C < ACCES TABLE DE TABULATION VISU.
NSPUPD: VAL '50 < NSP D'ACCES AU NUMERO DE RELEASE CMS5.
TVCTRL: MOT '1B < ADRESSE EN MEMOIRE DEBANALISEE DU MOT
< DE CONTROLE DU SYSTEME DE TELEVISION
< NUMERIQUE.
TVIN: VAL '0040 < BIT DISCRIMINANT IN (1) ET OUT (0).
TVSIMU: VAL '0003 < MASQUE DES INDICATEURS DE
< SELECTION DES COMPOSANTES.
TVMEM: VAL '1B < ADRESSE-1 DES ADRESSES DES 3
< COMPOSANTES R-V-B.
TVMEME: MOT '1F < ADRESSE EN MEMOIRE DEBANALISEE DU MOT
< DONNANT L'ADRESSE DE LA ZONE MEMOIRE
< DONT ON SIMULE LA VISUALISATION
< DYNAMIQUE.
TVNITE: MOT '0C < MOT CONTENANT LE NBRE D'ITERATIONS.
TVPR: VAL 1 < NUMERO DU PROCESSEUR ROUGE,
TVPV: VAL 2 < NUMERO DU PROCESSEUR VERT,
TVPB: VAL 3 < NUMERO DU PROCESSEUR BLEU.
NSPCOL: VAL '51 < NSP D'ACCES A LA MEMOIRE DES COULEURS.
XWOR%: VAL 0
IF XWOR%1-"S",,XWOR%,
ORDI: VAL "T" < ASSEMBLAGE T1600-CMS4.
TZSWAP: VAL '80 < NOMBRE DE SECTEURS D'UNE ZONE
< DE SWAPPING ESCLAVE
NBCUS: VAL "1" < NUMERO DU CU DE SORTIE SON.
WCUS: VAL '0236 < ARGUMENT SIO ECRITURE SUR CU SON.
NSPVI1: VAL '07 < NSP DE LA PREMIERE VISU
NSPVIN: VAL '0E < NSP DE LA DERNIERE VISU
BOERA: MOT 5 < DEPLACEMENT TEMPO ERASE DANS DCT.
ATABUL: MOT '0B < ACCES TABLE DE TABULATION VISU.
XWOR%: VAL 0
IF ORDI-"T",XWOR%,,XWOR%
VAR: MOT '33 < ZONE VARIABLE DES 'DCT'.
XWOR%: VAL 0
IF ORDI-"S",XWOR%,,XWOR%
ASYSER: VAL 'FFDF < DEPLACEMENT D'ACCES AU S/P 'SYSER'.
VAR: MOT '37 < ZONE VARIABLE DES 'DCT'.
XWOR%: VAL 0
ADM: MOT VAR+1 < ADRESSE MEMOIRE DE LA ZONE
< VISUALISEE PAR LE SYSTEME VIDEO
COM: MOT VAR+2 < SENS DE L'OPERATION VIDEO
NSPUP: MOT VAR+0 < ACCES AU MOT DE DCTHOR PERMETTANT
< DE REACTIVER UN HANDLER
:F
:F
< <<'SIP DEFINITION CMS5'
DF'SIP DEFINITION CMS5'
DF'SIP DEFINITION ITEM'
ED'SIP DEFINITION ITEM'
IN0
IDP "SIP DEFINITION ITEM"
NLS
XXXXXX: VAL 1 < ABSENCE DE PROCESSEUR CONCERNE.
XXXXXX: VAL "GE"-NMPROC='FF00(XXXXXX < EST-CE "GE" ???
XXXXXX: VAL "GI"-NMPROC='FF00(XXXXXX < OU "GI" ???
XXXXXX: VAL "GO"-NMPROC='FF00(XXXXXX < OU "GO" ???
XXXXXX: VAL "EI"-NMPROC='FF00(XXXXXX < OU "EI" ???
IF XXXXXX,XWOR%X,,XWOR%X
LST
PAGE
<
<
< F O R M A T D ' U N N O E U D :
<
<
DSEC FNOEUD
LNOEUD: VAL 80 < NBRE DE MOTS OCCUPES PAR UN
< NOEUD : ON SE LIMITE A 80 MOTS ,
< AFIN QUE LE !SGN N'ALLOUE QU'UN
< SECTEUR DISQUE A LA <VALEUR>.
NOEUD: EQU $
XXNOMC: VAL 6 < NOMBRE DE CARACTERES DE <NOMC>.
XXNOCM: VAL 2 < NOMBRE D'OCTETS PAR MOT.
NOMC: DZS XXNOMC/XXNOCM < NOM CODE SUR 6 CARACTERES.
XXEOT: VAL '04 < CODE DE <EOT>.
XX80: VAL '80 < BIT DE PARITE.
BYTE XXEOT;"N"+XX80 < <EON> DE FIN DE <NOMC> ET
< INDICAATEUR DE 'TYPE-NOEUD' ,
< SOUS FORME 'N'+'80.
CONCOR: DZS XXNOMC/XXNOCM < PERMET LA GESTION D'UNE CHAINE
< DE CONCORDANCE RELIANT ENTRE
< EUX TOUS LES NOEUDS REFERANCANT
< LE MEME ITEM ; ON TROUVE ICI LE
< <NOMC> DU NOEUD SUIVANT.
INDIC: BYTE XXEOT;0 < <EON> & INDICATEURS.
BITEM: VAL 8 < BITEM=1 : UN ITEM EST ATTACHE
< A CE NOEUD.
ITEM: DZS XXNOMC/XXNOCM < <NOMC> DE L'ITEM ATTACHE A
< CE NOEUD.
BYTE XXEOT;0 < <EON>.
FAMILY: BYTE 0;0 < OCTET0=OCCUPATION DES 8 PERES
< POSSIBLES DE CE NOEUD ,
< OCTET1=OCCUPATION DES 8 FILS
< POSSIBLES DE CE NOEUD.
XXPF: VAL 8 < NOMBRE DE PERES/FILS POSSIBLES.
XWOR%1: VAL XXNOMC/XXNOCM*XXPF
PERES: DZS XWOR%1 < LISTE DES 8 <NOMC> DES PERES
< POSSIBLES DE CE NOEUD ;
< ATTENTION : POUR CHAQUE <NOMC> ,
< IL MANQUE L'<EON>.
FILS: DZS XWOR%1 < LISTE DES 8 <NOMC> DES FILS
< POSSIBLES DE CE NOEUD ;
< ATTENTION : POUR CHAQUE <NOMC> ,
< IL MANQUE L'<EON>.
LNOM: VAL NOEUD-$+LNOEUD*XXNOCM
< NOMBRE MAX DE CARACTERES DE <NOM>.
NOM: DZS LNOM/XXNOCM < <NOM> REEL DU NOEUD.
TOPN: EQU $-1 < SOMMET DU NOEUD.
<
<
< R E L A I S D ' A C C E S A U N O E U D :
<
<
XNOMC: VAL NOMC-NOEUD < DEPLACEMENT DE <NOMC> DANS NOEUD
XNOM: VAL NOM-NOEUD < DEPLACEMENT DE <NOM> DANS NOEUD.
ANOMC: WORD NOMC,X < RELAI D'ACCES A <NOMC>.
ANOM: WORD NOM,X < RELAI D'ACCES A <NOM>.
LTN: VAL $-NOEUD < LONGUEUR DE LA DSEC.
PAGE
<
<
< F O R M A T D ' U N I T E M :
<
<
DSEC FITEM
<
<
< E N - T E T E D E L ' I T E M :
<
<
LHITEM: VAL LNOEUD < NBRE DE MOTS OCCUPES PAR
< L'EN-TETE D'UN ITEM.
HITEM: EQU $ < EN-TETE D'UN ITEM.
NOMCI: DZS XXNOMC/XXNOCM < NOM CODE SUR 6 CARACTERES.
BYTE XXEOT;"I"+XX80 < <EON> DE FIN DE NOM , ET
< INDICATEURS TYPE-ITEM : 'I'+'80.
LRITEM: WORD 0 < LONGUEUR REELLE DE L'ITEM EN
< OCTETS (0 INITIALEMENT).
IINDIC: WORD 0 < INDICATEURS DIVERS ET VARIES.
< OCTET0=NATURE DE L'ITEM (='00 ,
< SI L'ITEM EST VIDE) :
< OCTET0='T' POUR 'TYPE-TEXTE'.
XWOR%3: MOT FAMILY-NOEUD
FAMILI: EQU HITEM+XWOR%3 < OCCUPATION DES 16 PERES POSSIBLES
< D'UN ITEM.
XWOR%3: MOT PERES-NOEUD
PERIS: EQU HITEM+XWOR%3 < LISTE DES 16 PERES POSSIBLES
< D'UN ITEM.
NOMI: EQU HITEM+XNOM < NOM DE L'ITEM.
XWOR%3: MOT TOPN-NOEUD
TOPI: EQU HITEM+XWOR%3 < TOP DE L'EN-TETE DE L'ITEM.
DZS TOPI-IINDIC < $<--TOPI+1.
<
<
< R E L A I S D ' A C C E S :
<
<
ANOMCI: WORD NOMCI,X
ANOMI: WORD NOMI,X
<
<
< C O R P S D E L ' I T E M :
<
<
NBCAR: VAL 74 < NBRE DE CARACTERES/LIGNE.
NBLIG: VAL 35 < NBRE DE LIGNES/PAGE.
LITEM: VAL NBCAR*NBLIG < NBRE DE CARACTERES MAX OCCUPES
< PAR LE CORPS DE L'ITEM.
CITEM: DZS LITEM/XXNOCM < CORPS DE L'ITEM PROPREMENT DIT.
XWORK2: VAL CITEM-HITEM
LTNI: VAL $-HITEM < LONGUEUR TOTALE MAXIMALE EN
< MOTS DE L'ITEM (EN-TETE+CORPS).
PROG
PILE: MOT 'FF0-6 < ADRESSE DE LA PILE DE SMC
IF XXXXXX,,XWOR%,
IINDIC @ < ON REND 'IINDIC' ABSOLU ...
XWOR%9: VAL 6='F700 < ACCES A L'ETAT DE 'IINDIC'...
XWOR%9: VAL XWOR%9?'0043='F500+'0040='F600(0+6='F701
LRITEM @ < AINSI QUE 'LRITEM'...
XWOR%9: VAL 6='F700 < ACCES A L'ETAT DE 'LRITEM'...
XWOR%9: VAL XWOR%9?'0043='F500+'0040='F600(0+6='F701
XWOR%: VAL 0
NLS
XWOR%X: VAL 0
IF XXXXXX,,XWOR%X,
LST
<
<
< C O N S T A N T E S D E L ' I T E M :
<
<
NBLIG: VAL 35 < NOMBRE DE LIGNES/ECRAN
NBCAR: VAL 74 < NOMBRE DE CARACTERES/LIGNES
LTN: VAL '52 < LONGUEUR MOT DE L'EN-TETE
LTNI: VAL NBCAR*NBLIG/2+LTN < LONGUEUR TOTALE DE L'ITEM
PILE: VAL 'FF0-6 < ADRESSE DE LA PILE DE SMC
LRITEM: VAL 4 < EMPLACEMENT DE LA LONGUEUR DU
< CORPS DE L'ITEM
IINDIC: VAL 5 < INDICATEUR DU TYPE DE L'ITEM
< (LE TYPE ATTENDU EST 'T')
LNOM: VAL '26 < NOMBRE MAX DE CARACTERES D'UN NOM
< D'ITEM.
NLS
XWOR%X: VAL 0
LST
:F
:F
< <<'SIP DEFINITION ITEM'
DF'SIP CODAGE PUNCH'
ED'SIP CODAGE PUNCH'
IN0
IDP "SIP CODAGE PUNCH"
<
<
< T A B L E D E P U N C H A S C I :
<
<
WORD '2121 < EOT 4(TRANSPOSE EN '1F)
WORD '0000 < SPACE 20
WORD '4821 < ! 21
WORD '0061 < " 22
WORD '0421 < # 23
WORD '4421 < $ 24
WORD '2222 < POUR-CENT 25
WORD '8001 < & 26
WORD '0121 < ' 27
WORD '8121 < ( 28
WORD '4121 < ) 29
WORD '4222 < * 2A
WORD '80A1 < + 2B
WORD '2421 < , 2C
WORD '4002 < - 2D
WORD '8421 < . 2E
WORD '3002 < / 2F
WORD '2001 < 0 30
WORD '1001 < 1 31
WORD '0801 < 2 32
WORD '0401 < 3 33
WORD '0201 < 4 34
WORD '0101 < 5 35
WORD '0081 < 6 36
WORD '0041 < 7 37
WORD '0021 < 8 38
WORD '0011 < 9 39
WORD '0821 < : 3A
WORD '40A1 < ; 3B
WORD '8222 < < 3C
WORD '00A1 < = 3D
WORD '20A1 < > 3E
WORD '2061 < ? 3F
WORD '0222 < @ 40
WORD '9002 < A 41
WORD '8802 < B 42
WORD '8402 < C 43
WORD '8202 < D 44
WORD '8102 < E 45
WORD '8082 < F 46
WORD '8042 < G 47
WORD '8022 < H 48
WORD '8012 < I 49
WORD '5002 < J 4A
WORD '4802 < K 4B
WORD '4402 < L 4C
WORD '4202 < M 4D
WORD '4102 < N 4E
WORD '4082 < O 4F
WORD '4042 < P 50
WORD '4022 < Q 51
WORD '4012 < R 52
WORD '2802 < S 53
WORD '2402 < T 54
WORD '2202 < U 55
WORD '2102 < V 56
WORD '2082 < W 57
WORD '2042 < X 58
WORD '2022 < Y 59
WORD '2012 < Z 5A
WORD 'C002 < CROC G 5B
WORD '6002 < ANTI / 5C
WORD 'A002 < CROC D 5D
WORD '8062 < CHAPEAU 5E
WORD '4062 < SOULIGN 5F
:F
:F
< <<'SIP CODAGE PUNCH'
DF'SIP GEN PROCESSEUR'
ED'SIP GEN PROCESSEUR'
IN0
PAGE
IDP "SIP GEN PROCESSEUR"
<
<
< G E N E R A T I O N D U P R O C E S S E U R :
<
<
LOCAL
XXXLOC: EQU $
XXXCCI: WORD 1 < RETOUR AU CCI.
XXXMOK: BYTE '6D;"O"
ASCI "K!" < MESSAGE 'OK!'.
XXXDOK: WORD '0202 < ENVOI DU MESSAGE 'OK'.
WORD XXXMOK-ZERO*2
WORD 4
XXXSGN: WORD '8402 < DEMANDE DE GENERATION DU PROCESSEUR.
WORD BRANCH-ZERO*2 < @OCTET DE LA BRANCHE.
WORD ZERO-BRANCH+PILE-LTNI-LTNI*2
WORD -1
NLS
NOMOV1: @
IF '0006='F700,,XWOR%,
LST
XXXOV1: WORD DEBOV1 < ADRESSE DEBUT OVERLAY 1.
NLS
XWOR%: VAL 0
NOMOV2: @
IF '0006='F700,,XWOR%,
LST
XXXOV2: WORD DEBOV2 < ADRESSE DEBUT OVERLAY 2.
NLS
XWOR%: VAL 0
LST
XXXPIL: DZS 2 < PILE DE GENERATION.
PROG
USE L,XXXLOC+'80
WORD XXXLOC+'80 < VALEUR INITIALE DE LA BASE L.
XXXGEN: EQU $
LRP L < INITIALISATION DE LA BASE L.
LA -1,L
LR A,L
LAD XXXPIL-1 < INITIALISATION DE L'ADRESSE DE PILE.
LR A,K
NLS
NOMOV2: @
IF '0006='F700,,XWOR%,
LST
<
< TENTATIVE DE GENERATION DE L'OVERLAY 2.
<
XXXGN4: EQU $
LB XXXSGN+1
LA XXXOV2 < PLACER SON ADRESSE DE DEBUT.
SLLS 1
STA XXXSGN+1
LAD XXXSGN < GENERATION.
SVC 0
STB XXXSGN+1
JE XXXGN5 < OK ...
<
< ERREUR - L'OVERLAY EXISTE DEJA.
<
LAD XXXCCI < RETOUR CCI.
SVC 0
JMP XXXGN4 < ET REESSAI.
<
< BONNE GENERATION.
<
XXXGN5: EQU $
LAD XXXDOK < ENVOI MESSAGE OK.
SVC 0
LAD XXXCCI < ET RETOUR AU CCI.
SVC 0
NLS
XWOR%: VAL 0
NOMOV1: @
IF '0006='F700,,XWOR%,
LST
<
< TENTATIVE DE GENERATION DE L'OVERLAY 1.
<
XXXGN7: EQU $
LB XXXSGN+1
LA XXXOV1 < PLACER SON ADRESSE DE DEBUT.
SLLS 1
STA XXXSGN+1
LAD XXXSGN < GENERATION.
SVC 0
STB XXXSGN+1
JE XXXGN8 < OK ...
<
< ERREUR - L'OVERLAY EXISTE DEJA.
<
LAD XXXCCI < RETOUR CCI.
SVC 0
JMP XXXGN7 < ET REESSAI.
<
< BONNE GENERATION.
<
XXXGN8: EQU $
LAD XXXDOK < ENVOI MESSAGE OK.
SVC 0
LAD XXXCCI < ET RETOUR AU CCI.
SVC 0
NLS
XWOR%: VAL 0
LST
<
< TENTATIVE DE GENERATION :
<
XXXGN1: EQU $
LAD XXXSGN
SVC 0 < ENVOI DEMANDE DE GENERATION.
JNE XXXGN2 < ERREUR : IL EXISTE DEJA!!!
<
< OK , BONNE GENERATION :
<
LAD XXXDOK
SVC 0 < ENVOI DU MESSAGE OK.
<
< RETOUR DEFINITIF AU CCI :
<
XXXGN3: EQU $
LAD XXXCCI
SVC 0 < RETOUR AU CCI.
JMP XXXGN3 < CAS DES !GO.
<
< CAS DES ERREURS DE GENERATION :
< LE PROCESSEUR EXISTE DEJA:
<
XXXGN2: EQU $
LAD XXXCCI
SVC 0 < RETOUR PROVISOIRE AU CCI.
JMP XXXGN1 < TRY AGAIN LA GENERATION.
END XXXGEN
:F
:F
< <<'SIP GEN PROCESSEUR'
DF'SIP IMAGE 256'
ED'SIP IMAGE 256'
IN0
IDP "SIP IMAGE 256"
<
<
< I M A G E V I D E O
<
<
LNOM: VAL 10 < NBRE MAX DE MOTS DU NOM IMAGE
CNMPL: VAL 16 < NBRE DE MOTS DE 16 BITS PAR LIGNE.
DY: VAL 4 < REDUCTION SUR L'AXE DES Y
RDY: VAL DY < REDUCTION SUR L'AXE DES Y
DEDY: VAL DY=0 < DECALAGE EQUIVALENT A DY
DX: VAL 1024/CNMPL/16 < REDUCTION SUR L'AXE DES X
RDX: VAL DX < REDUCTION SUR L'AXE DES X
DEDX: VAL DX=0 < DECALAGE EQUIVALENT A DX
LIMAG: VAL 1024/DY*CNMPL < LONGUEUR MOT DE L'IMAGE
IF ORDI-"S",XWOR%,,XWOR%
<
< EN-TETE DE L'IMAGE VIDEO. CET EN-TETE EST UN ARGUMENT D'APPEL LORS
< DE L'UTILISATION DE LA FONCTION INTERPOLATION VIDEO DU SYSTEME CMS5 SOLAR.
<
DEPSPA: VAL 0 < DEPLACEMENT "SPARE".
DEPMOD: VAL '0@@@@+1 < DEPLACEMENT MODE TRACE :
< = 1 : MODE TRACE "BLANC" ('SBT'),
< = 0 : MODE TRACE "NOIR" ('RBT'),
< =-1 : MODE TRACE INVERSION ('IBT').
DEPY1R: VAL '0@@@@+1 < DEPLACEMENT Y1 RESULTAT.
DEPX1R: VAL '0@@@@+1 < DEPLACEMENT X1 RESULTAT.
DEPY2R: VAL '0@@@@+1 < DEPLACEMENT Y2 RESULTAT.
DEPX2R: VAL '0@@@@+1 < DEPLACEMENT X2 RESULTAT.
DEPY1: VAL '0@@@@+1 < DEPLACEMENT Y1 ARGUMENT.
DEPX1: VAL '0@@@@+1 < DEPLACEMENT X1 ARGUMENT.
DEPY2: VAL '0@@@@+1 < DEPLACEMENT Y2 ARGUMENT.
DEPX2: VAL '0@@@@+1 < DEPLACEMENT X2 ARGUMENT.
DEPIMA: VAL '0@@@@+1 < DEPLACEMENT IMAGE.
LENTIM: VAL '0@@@@ < LONGUENR DE L'EN-TETE IMAGE.
XWOR%: VAL 0
:F
:F
< <<'SIP IMAGE 256'
DF'SIP SP1'
ED'SIP SP1'
IN0
IDP "SIP SP1"
<
<
< I N I T I A L I S A T I O N E N R E G I S T R E M E N T
< V I D E O E X T E R N E :
<
<
< FONCTION :
< 0- MASQUER LES IT DE NIVEAU 7 ,
< 1- INHIBER LA FONCTION DU ALT-MODE POUR
< CET UTILISATEUR ,
< 2- BLOQUER LE SWAPPING OUT , AFIN DE RENDRE
< SON ESPACE MEMOIRE RESIDENT ,
< 3- METTRE LE SYSTEME VIDEO EN LECTURE.
<
<
< ARGUMENT :
< W=@DCT-ESCLAVE ,
< C=@COMMON CMS4.
<
<
TIMAG: WORD IMAG < ADRESSE RELATIVE DE L'IMAGE
< PAR RAPPORT AU REGISTRE SLO.
SP1: EQU $
<
< MASCAGE DU NIVEAU 7 :
<
LAI 1
XIMR A < MASCAGE DES IT DE NIVEAU 7.
<
< INHIBITION DU ALT-MODE :
<
LA IDESC,W < ACCES A L'IDESC ESCLAVE.
SBT 2 < INHIBITION DU ALT-MODE.
STA IDESC,W < MAJ DE L'IDESC.
<
< BLOCAGE DU SWAPPING POUR L'ESCLAVE :
<
LA DEMSWP,W
SBT 0
STA DEMSWP,W < LE NSPTYP DE DEMSWP A SON BIT0
< A 1 ; LE SWAPPING EST DONC
< BLOQUE.
<
< MISE EN PLACE DE L'@ DE IMAG :
<
LRP L
LB TIMAG-$+1,L < B=@RELATIVE DE IMAG.
LA 10,W < A=SLO DE L'ESCLAVE.
ADR A,B < B=@ ABSOLUE DE IMAG.
LXI NSPTV
BSR ACADCT,C < L=@DCT-VIDEO.
STB ADM,L < DEMANDE DE TRAVAIL SUR IMAG.
<
< MISE DE LA VIDEO EN ENREGISTREMENT :
<
LAI '30 < CODE DE LECTURE 4K MOTS.
IF LIMAG-'1000,,X100,
IF L'IMAGE NE FAIT PAS 4K MOTS.
X100: VAL 0
STBY COM,L
RSR
:F
:F
< <<'SIP SP1'
DF'SIP SP1'
DF'SIP SP2'
ED'SIP SP2'
IN0
IDP "SIP SP2"
<
<
< F I N D ' E N R E G I S T R E M E N T
< D E V I D E O E X T E R N E :
<
<
< FONCTION :
< 1- REMETTRE LA VIDEO EN ECRITURE (TV) ,
< 2- DEBLOQUER LE SWAPPING ,
< 3- REAUTORISER LE ALT-MODE.
< 4- DEMASQUER LES IT DE NIVEAU 7.
<
<
< ARGUMENT :
< W=@DCT-ESCLAVE ,
< C=@COMMON CMS4.
<
<
SP2: EQU $
<
< RETOUR AU MODE ECRITURE (TV) :
<
LXI NSPTV
BSR ACADCT,C < L=@DCT-VIDEO.
LAI 'B0 < CODE ECRITURE ADM 4K MOTS.
STBY COM,L
<
< DEBLOQUAGE DU SWAPPING OUT :
<
LA DEMSWP,W
RBT 0 < RAZ DU BIT0(NSPTYP(DEMSWP)).
STA DEMSWP,W
<
< RE-AUTORISATION DU ALT-MODE :
<
LA IDESC,W
RBT 2
STA IDESC,W
<
< DEMASCAGE DU NIVEAU 7 :
<
LAI 0
XIMR A < DEMASCAGE DES IT DE NIVEAU 7.
RSR
:F
:F
< <<'SIP SP2'
DF'SIP SP2'
DF'SIP SP3'
ED'SIP SP3'
IN0
IDP "SIP SP3"
<
<
< V I S U A L I S A T I O N I M A G E :
<
<
SP3: EQU $
LRP L
LB TIMAG-$+1,L < B=@RELATIVE IMAGE.
LA 10,W < A=SLO(ESCLAVE).
ADR A,B < B=@ABSOLUE IMAGE.
LXI NSPTV
BSR ACADCT,C < L=@DCT-VIDEO.
STB ADM,L < DEMANDE DE VISUALISATION IMAGE.
RSR
:F
:F
< <<'SIP SP3'
DF'SIP SP3'
DF'SIP DEF PROCESSEUR'
ED'SIP DEF PROCESSEUR'
IN0
IDP "SIP DEF PROCESSEUR"
PAGE
<
<
< I N T E R F A C E D ' O V E R L A Y :
<
<
< FONCTION :
< CETTE ROUTINE EST CHARGEE DE CHARGER
< LA BRANCHE DE L'OVERLAY 'GE'/'EI' ;
< SI LE CHARGEMENT EST REUSSI , ELLE
< LUI DONNE LA MAIN ,
< SINON , ELLE REVIENT EN ERREUR.
<
<
< ARGUMENT :
< W=ADRESSE 'BRANCH',
< A=ADRESSE DE 'DEMSGN'.
<
<
< RESULTAT :
< LE RETOUR N'EST FAIT QU'EN CAS D'ERREUR.
<
<
PROG
ZERO: EQU $
<
<
< T R A N S M I S S I O N D E S A R G U M E N T S :
<
<
DZS 7 < ZONE DE TRANSMISSION ARGUMENTS :
CDRET: VAL 2 < MOT2=CONDITIONS DE RETOUR (0=OK).
NCEI: VAL 3 < <NOMC> DU NOEUD COURANT SUR
< 6 CARACTERES (MOT3,MOT4,MOT5).
MODCAL: VAL 6 < IDENTIFICATION DE L'APPELANT :
< 0 : APPEL PAR !GE ,
< 1 : APPEL PAR 'EI'.
<
<
< A P P E L O V E R L A Y :
<
<
OVL: EQU $ < ENTRY DE CHARGEMENT DE LA
< BRANCHE D'OVERLAY.
< ON A ICI :
< A=@DEMSGN ,
< W=@BRANCHE.
SVC 0 < ENVOI DE LA DEMANDE AU SGN.
JNE XXXRLD < RETOUR EN ERREUR DU SGN.
<
< CAS OU LE CHARGEMENT DE L'OVERLAY EST CORRECT :
<
BR 5,W < ON PASSE ALORS LA MAIN A LA
< BRANCHE QUE L'ON VIENT DE
< CHARGER.
<
< CAS DES RETOURS EN ERREUR :
<
XXXRLD: EQU $
RSR < RETOUR AU PROCESSEUR.
<
<
< E N - T E T E D U P R O C E S S E U R :
<
<
TABLE
BRANCH: EQU $
NCEI: VAL ZERO-BRANCH+NCEI
CDRET: VAL ZERO-BRANCH+CDRET
MODCAL: VAL ZERO-BRANCH+MODCAL
WORD NMPROC < NOM DU PROCESSEUR
ASCI " " < DESTINE A LA GENERATION.
BYTE '04;'D0 < <EON>-'P'+'80.
WORD '1F00 < TAILLE EN OCTETS AU CAS D'UN
< APPEL PAR !CALL.
:F
:F
< <<'SIP DEF PROCESSEUR'
DF'SIP PAGE'
ED'SIP PAGE'
IN0
NLS
<
XLIST: VAL 0 < A PRIORI.
SAVORD: VAL ORDI < A PRIORI.
IF ORDI-"S",XWOR%2,,XWOR%2
XLIST: VAL '00000000000@ < NIVEAU D'IMBRICATION DES NLS.
IF XLIST-1,XWOR%3,XWOR%3,
SAVORD: VAL ORDI < SAUVEGARDE DE 'ORDI'.
ORDI: VAL "T" < ON FAIT COMME SI ON ETAIT EN T1600,
< ET DONC ON NE FERA PAS DE SOMMAIRE...
XWOR%3: VAL 0
XWOR%2: VAL 0
<
IF ORDI-"T",XWOR%1,,XWOR%1
LST
PAGE
NLS
XWOR%2: VAL '0050='F350 < SAUVEGARDE DE CD1 EN CD2;
< C'EST TOUT CE QU'ON FAIT DANS
< CET IF, CAR IL NE FAUT PAS
< FAIRE DE A-RONDS MODIFIANT CD1,
< AU CAS OU ON SERAIT EN 'SOLAR'.
XWOR%1: VAL 0
IF ORDI-"S",XWOR%1,,XWOR%1
XYZ003: VAL 4 < NOMBRE DE CHIFFRES TRAITES
< LORS DE LA CONVERSION HEXADECIMAL-
< DECIMAL (EN PARTANT DE LA DROITE)
XYZ001: VAL '0959='F347 < DEPLACER LE COMMANTAIRE EN 2EME
< CARTE DYNAMIQUE
@<
XYZ001: VAL '0950='F309 < COMPLETER CETTE CARTE AVEC '< ...' DEVANT
@:F;:F;:F;
XYZ001: VAL '09A0='F309 < INITIALISATION DE LA 3EME CARTE
LST
PAGE
NLS
XYZ001: VAL '0@@@@ < RELEVER LE NUMERO DE PAGE COURANT
DO XYZ003 < CONVERSION HEXADECIMAL-DECIMAL
XYZ001: VAL XYZ001/10(0='FD00='FE00(0+XYZ001/10
XYZ001: VAL 0
DO XYZ003
XYZ001: VAL XYZ001*'10='FE01
< L'AFFICHER SUR LE LISTING
< @ @@@@ PAGE NUMERO :
XWOR%2: VAL '174C='F304 < ON PLACE LE NUMERO DE PAGE
XWOR%2: VAL '0117='F304 < EFFACER LE NUMERO MAL PLACE
LST
@@
NLS
@EQU $
XYZ004: VAL '5D00='F307 < ETIQUETTE DE L'ENTRY DU S/P
LST
@@
NLS
XYZ001: VAL XYZ001 < POUR RECUPERER LE NO DE PAGE DECIMAL
< QUE L'ON VA GENERER EN CARTE DYNAMIQUE
@PAGE NUMERO : @@@@
XYZ001: VAL '09A9='F312 < LE PROTEGER EN 3EME CARTE DYNAMIQUE
XYZ001: VAL XYZ002 < CONVERSION HEXADECIMAL-DECIMAL
DO XYZ003 < DU NUMERO DE LIGNE POUR 'ED'
XYZ001: VAL XYZ001/10(0='FD00='FE00(0+XYZ001/10
XYZ001: VAL 0
DO XYZ003
XYZ001: VAL XYZ001*'10='FE01
< LE PLACER DANS LA 1ERE CARTE
< DYNAMIQUE AVEC L'APPEL A 'ED'
;ED @'SI DOC' ;IN@@@@;<;<
XYZ002: VAL XYZ002+3 < ON L'INCREMENTE DE 3 CAR ON COMMENCE
< PAR UNE CARTE VIDE
XYZ001: VAL 'A927='F312 < RAMENER LE NUMERO DE PAGE DANS CETTE CART
XYZ001: VAL '004F='F23B < LA COMPLETER PAR UN ';'
EE
<
< CECI EXECUTE LA SEQUENCE SUIVANTE :
<ED'SI DOC'
<IN0012 PAR EXEMPLE
<
<PAGE NUMERO : 0004 < PAR EXEMPLE
<SPLIST : SOUS-PROGRAMME DE LISTE D'UN MESSAGE
<:F
<:F
<:F
XWOR%1: VAL 0
IF ORDI-"T",XWOR%1,,XWOR%1
< ON PEUT Y ALLER....
@EQU $
< POUR GENERER LE POINT D'ENTREE
XWOR%2: VAL '5D00='F307 < RECUPERATION DU NOM DU POINT
< D'ENTREE.
LST
@@
NLS
XWOR%1: VAL 0
IF XLIST-1,XWOR%2,XWOR%2,
ORDI: VAL SAVORD < RESTAURATION DE 'ORDI'.
XWOR%2: VAL 0
LST
:F
:F
< <<'SIP PAGE'
DF'SIP PAGE'
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.