PAGE
IDP "RV - JOHN F. COLONNA 20/09/1979"
<
<
< P R O C E S S E U R D E P A R C O U R S
< D E S R E G I S T R E S C O U L E U R :
<
<
NMPROC:: VAL "RV"
EOT #SIP DEFINITION ITEM#
EOT #SIP DEFINITION CMS5#
EOT #SIP IMAGE 256#
EOT #SIP DEF PROCESSEUR#
WORD PRV < POINT D'ENTREE REEL.
WORD 0
PROG
PRUN: EQU $
LRP L
BR -2,L < ENTREE PAR "GE"...
ITEM2: EQU ZERO+PILE-LTNI-LTNI
PAGE
<
<
< P A R A M E T R E S G E N E R A U X :
<
<
NOCMO:: VAL 2 < NOMBRE D'OCTETS PAR MOT,
NBITOC:: VAL 8 < NOMBRE DE BITS PAR OCTET...
NBRHEX:: VAL 4 < NOMBRE DE CHIFFRES HEXA PAR MOT.
FGR:: VAL 0 < FONCTION DE LECTURE,
FGRE:: VAL 1 < FONCTION DE LECTURE AVEC ECHO,
FGW:: VAL 2 < FONCTION D'ECRITURE.
NVPV: VAL 2 < NVP DE LA VISU,
NVPC: VAL NVPV < NVP UTILISE POUR LE CURSEUR GRAPHIQUE.
NVPCU:: VAL '8B < POUR ACCEDER AU 'CU3'...
X:: MOT 1 < COORDONNEE X,
Y:: MOT 0 < COORDONNEE Y.
<
<
< F O R M A T D E S O R D R E S ' C U 3 ' :
< ( M O T 1 )
<
<
CUNIVO:: VAL '000F < NIVEAU DE GRIS,
LREG:: VAL CUNIVO+1=0
CUREG:: VAL '0070 < NUMERO DE REGISTRE,
CUBAN:: VAL '0080 < NUMERO DE BANK EN POSITIONNEMENT,
CUREB:: VAL CUBAN?CUREG < ADRESSE COMPLETE DES REGISTRES.
CUCOLO:: VAL '0700 < SELECTION DES COULEURS,
XXR:: VAL '10 < SELECTION ROUGE (DECALEE A DROITE),
XXV:: VAL '20 < SELECTION VERT (DECALEE A DROITE),
XXB:: VAL '40 < SELECTION BLEU (DECALEE A DROITE).
CUDIFF:: VAL '0800 < NUMERO DE BANK EN DIFFUSION.
CUINIT:: VAL '8000 < POUR INITIALISER LE CONTROLEUR.
<
<
< F O R M A T D E S O R D R E S ' C U 3 ' :
< ( M O T 2 )
<
<
MOT2:: VAL 1 < DEPLACEMENT D'ACCES AU MOT2...
CUCLIR:: VAL '0001 < CLEAR LA CARTE 'TV'.
CUIN:: VAL '0002 < MISE DE LA CARTE EN MODE IN/OUT.
CUINR:: VAL '0004 < OUVERTURE DU ROBINET ROUGE,
CUINV:: VAL '0008 < OUVERTURE DU ROBINET VERT,
CUINB:: VAL '0010 < OUVERTURE DU ROBINET BLEU.
CUMODI:: VAL '0060 < MODE D'ENTREE :
MODBI:: VAL '0000 < BINAIRE INVERSE,
MODB:: VAL '0060 < BINAIRE,
MODC2:: VAL '0020 < LIBRE...
MODCI:: VAL '0040 < SELECTION DU POIDS DES BITS ENTRES :
< =0 : 3 BITS DE POIDS FORTS,
< =1 : 3 BITS DE POIDS FAIBLES SUIVANTS.
CUPROM:: VAL '1F00 < NUMERO DE LA FONCTION DE TRANSFERT 'IN'.
<
<
< P A R A M E T R E S D E L A M A T R I C E :
<
<
UNITEX:: VAL 16 < UNITE SUR L'AXE DES X ::KGX1.
UNITEY:: VAL 10 < UNITE SUR L'AXE DES Y ::KAY1.
ORGKXY:: VAL 8*8 < UNITES ORIGINES ::K8X8Y8.
ORGX:: VAL ORGKXY*1 < ABSCISSE DE L'ORIGINE DE LA MATRICE,
ORGY:: VAL ORGKXY*1 < ORDONNEE DE LA MATRICE.
LONGMX:: VAL 8 < LONGUEUR D'UNE SOUS-MATRICE SUR L'AXE
< DES X EXPRIMEE EN 'UNITEX'.
LONGMY:: VAL 16 < LONGUEUR D'UNE SOUS-MATRICE SUR L'AXE
< DES Y EXPRIMEE EN 'UNITEY'.
NMX:: VAL 4 < NOMBRE DE SOUS-MATRICES LE LONG DE X,
NMY:: VAL 4 < NOMBRE DE SOUS-MATRICES LE LONG DE Y.
NBAN:: VAL 2 < NOMBRE DE BANKS.
PAGE
<
<
< M E S S A G E S :
<
<
MCDAI: ASCI "!CDA"
BYTE "I";'04
MERR: BYTE 1;'07 < ENVOI DE LA CLOCHE SUR ERREUR...
MZDC: BYTE 5;'6D
ASCI "ZDC?"
MRVB: BYTE 5;'0D
ASCI " RVB"
M1: BYTE 1;"1"
M2: BYTE 1;"2"
M3: BYTE 1;"3"
MMOINS: BYTE 1;"-"
MRC: BYTE 1;'6D
MREG: BYTE 3;'6D
ASCI "R="
MVAL: BYTE 3;'6D
ASCI "V="
MCAM: BYTE 4;'6D
ASCI "CAM:"
MAD: BYTE 7;'6D
ASCI "APROM="
MMOD: BYTE 5;'6D
ASCI "MOD="
MCONT: BYTE 5;'6D
ASCI "SEQ?"
MR: BYTE 3;'6D;"R";"?"
MV: BYTE 3;'6D;"V";"?"
MB: BYTE 3;'6D;"B";"?"
MI: BYTE 4;'6D
ASCI "IN?"
MTRANS: BYTE 3;'6D
ASCI "T="
MPRVB: BYTE 5;'6D
ASCI "RVB="
MOVFL: BYTE 5;'6D
ASCI "OVFL"
MOFF: BYTE 7;'6D
ASCI "IT OFF"
MON: BYTE 6;'6D
ASCI "IT ON"
MNIV1: BYTE 3;'6D
ASCI "D="
MNIV2: BYTE 3;'6D
ASCI "A="
<
<
< L O C A L :
<
<
LOCAL
LOC: EQU $
<
< BUFFERS ET DIVERS :
<
BUFCU: DZS MOT2+1 < POUR ENVOYER LES ORDRES 'CU3'.
LBUFCG:: VAL 3
BUFCG: DZS LBUFCG < BUFFER DU RETICULE DE LA VISU.
BUFX: EQU BUFCG+1+X
BUFY: EQU BUFCG+1+Y
LSEG: VAL LBUFCG-1*2
NOMSEG: WORD 0 < MOT DE VALIDATION DES SEGMENTS.
SEG: DZS LSEG < SEGMENT COURANT.
REP: DZS NBRHEX/NOCMO < BUFFER D'ENTREE HEXA-DECIMAL.
XWOR%1: VAL CUREB=0
XWOR%2: VAL -XWOR%1
LTCU: VAL CUREB>XWOR%2+1 < LONGUEUR DES TABLES DE COULEUR.
SMOT2: WORD 0 < SAUVEGARDE DES ORDRES CAMERA POUR
< PASSAGE DE LA COMMANDE "K" A "U".
<
< RELAIS DIVERS :
<
ABRANC: WORD BRANCH < ADRESSE DE LA BRANCHE D'OVERLAY.
AOVL: WORD OVL < SOUS-PROGRAMME D'OVERLAY.
APRINT: WORD PRINT < EDITION D'UN MESSAGE.
AHEX: WORD HEX < CONVERSION HEXA --> BINAIRE.
AENTER: WORD ENTER < ENTREE D'UNE REPONSE OUI/NON.
AVALXY: WORD VALXY < SOUS-PROGRAMME DE VALIDATION (X,Y).
ARETIC: WORD RETIC < SOUS-PROGRAMME DE GESTION DU RETICULE.
ALOOP: WORD LOOP < MODULE D'INTERROGATION...
ASTOZD: WORD STOZDC < ENVOI EN ZDC,
AGETZD: WORD GETZDC < ACCES A LA ZDC.
ASPCU: WORD SPCU < S/P DE REINITIALISATION REGISTRES.
ASTHEX: WORD STHEX < CONVERSION ASCI D'UN MOT SOUS FORME
< "U;XXXX" COMPATIBLE AVEC 'TV/TI'.
APTRAN: WORD PTRAN < ENTREE DE LA TRANSLATION COULEURS.
APERMU: WORD PERMUT < ENTREE DE LA PERMUTATION (R,V,B).
ASP1: WORD SP1 < TRANSLATION ET ENVOI COULEUR.
ASP2: WORD SP2 < RECUPERATION PERMUTATION DES COULEURS.
ASP3: WORD SP3 < ENVOI DES 3 COMPOSANTES.
ASP4: WORD SP4 < GENERATION REGISTRE ET ENVOI 'STHEX'.
AROND: WORD ROND < ARRONDI D'UN NIVEAU INTERPOLE...
AMEMCU: WORD MEMCU < MEMORISATION DES ORDRES AU 'CU'
< DANS LES TABLES DE COULEUR.
AIITEM: WORD IITEM < S/P D'INITIALISATION DE L'ITEM1.
ASTIT: WORD STIT < SOUS-PROGRAMME DE RANGEMENT D'UN
< CARACTERE DANS L'ITEM1.
ATEST: WORD TEST < TEST DU POINT VIDEO (X,Y).
ASP5: WORD SP5 < TEST POINT SUR UNE COMPOSANTE ET ENVOI
< D'UN MESSAGE.
ARET: WORD RETICX
ALINIT: WORD LINIT-1,X < LISTE D'INITIALISATION DU 'CRT'...
AREP: WORD REP,X < ACCES AU BUFFER D'ENTREE HEXA.
AKOM: WORD KOM,X < ACCES AUX MODULES SPECIFIQUES...
<
< ACCES A L'ITEM1 :
<
AITEM1: WORD ZERO+PILE-LTNI+LTN,X
XITEM1: WORD NBCAR < INDEX COURANT DE L'ITEM1 ; ON LAISSE
< LA PREMIERE LIGNE LIBRE...
LITEM1: WORD NBCAR*NBLIG < LONGUEUR DE L'ITEM1.
PITEM1: WORD -1 < INDICATEUR DE PREMIER ACCES A L'ITEM1...
MITEM1: WORD 1 < 1 : PAS DE MEMORISATION DES COULEURS
< DANS L'ITEM1,
< -1: MEMORISATION A CHAQUE COMMANDE
< "P"/"Q"/"C"/"D"/"B" ; D'AUTRE PART,
< LORS DE L'INTERPOLATION "J", DANS CES
< CONDITIONS, ON INTERPOLE EN NE CHAN-
< GEANT PAS LE NUMERO DE REGISTRE, IL
< RESTE DONC EGAL EN PERMANENCE AU RE-
< GISTRE DE DEPART ('NIV1'), ET PERMET
< DONC DES INTERPOLATIONS ENTRE 2 PA-
< LETTES : L'UNE DANS LE JEU 0, ET
< L'AUTRE DANS LE JEU 1 ; ON INTER-
< POLERA DONC EN 7 OU 8 FOIS AINSI :
< 1 --> 9, 2 -->A,..., 7 --> F...
<
< DEMANDES :
<
DEMBAC: WORD '0602 < DEMANDE DE RETOUR A "GE".
WORD BRANCH-ZERO*NOCMO
WORD ZERO-BRANCH+PILE-LTNI-LTNI*NOCMO
WORD -1
NGE: ASCI "GE" < NOM DE L'OVERLAY "GE".
DEMCDA: WORD '0002 < ENVOI DE "!CDAI"...
WORD MCDAI-ZERO*NOCMO
WORD 80
DEMCU: BYTE NVPCU;FGW < ACCES A 'CU3'...
WORD BUFCU-ZERO*NOCMO
WORD NOCMO
DEMCU2: BYTE NVPCU;FGW < ACCES AU MOT2 DE 'CU3'...
WORD BUFCU-ZERO*NOCMO
WORD MOT2+1*NOCMO
DEMMES: BYTE NVPV;FGW < ECRITURE DES MESSAGES.
WORD 0 < ADRESSE OCTET DU MESSAGE,
WORD 0 < LONGUEUR OCTET DU MESSAGE.
DEMHEX: BYTE NVPV;FGRE < ENTREE D'UN NOMBRE HEXA-DECIMAL.
WORD REP-ZERO*NOCMO
WORD NBRHEX
DEMRVB: BYTE NVPV;FGRE < ENTREE DE LA PERMUTATION DES COULEURS.
WORD REP-ZERO*NOCMO+TVPR
WORD TVPB
OG: BYTE NVPC;3 < MISE EN GRAPHIQUE,
CG: BYTE NVPC;4 < MISE EN ALPHA-NUMERIQUE,
CU: BYTE NVPC;6 < MISE EN FONCTION DU RETICULE,
WORD 0
LG: BYTE NVPC;9 < LECTURE DU RETICULE.
WORD BUFCG-ZERO*NOCMO
WORD LBUFCG*NOCMO
DEMIN: BYTE NVPV;FGRE < ENTREE D'UN CARACTERE...
WORD BUFCG-ZERO*NOCMO
WORD 1
DEMCCI: WORD '0001 < ACCES CCI.
DEMSEG: WORD '0008 < ACCES SEGMENT EN ZDC.
WORD NOMSEG-ZERO*NOCMO
WORD LSEG+1*NOCMO
XXXZDC:: VAL 'FFC0 < MOT DE VALIDATION DE LZ ZDC.
WORD XXXZDC
DELSEG: WORD '000A < ENVOI DE L'ACQUITTEMENT EN ZDC.
WORD NOMSEG-ZERO*NOCMO
WORD NOCMO
YYYZDC:: VAL 'C000 < MOT DE VALIDATION DE L'ACQUITTEMENT
WORD YYYZDC
STOGS: WORD '000A < ENVOI D'UN SEGMENT EN ZDC.
WORD NOMSEG-ZERO*NOCMO
WORD LSEG+1*NOCMO
WORD XXXZDC
GETGS: WORD '0008 < ATTENTE D'UN ACQUITTEMENT.
WORD NOMSEG-ZERO*NOCMO
WORD NOCMO
WORD YYYZDC
<
< CONSTANTES, ET VARIABLES :
<
INDZDC: WORD 0 < 0=NE PAS EMETTRE EN ZDC.
WORK1: WORD 0 < VARIABLES DE
WORK2: WORD 0 < TRAVAIL...
COORDX: WORD 0 < COORDONNEE X COURANTE,
COORDY: WORD 0 < COORDONNEE Y COURANTE.
MINX: WORD ORGX < POUR
MINY: WORD ORGY < VALIDER
MAXX: WORD UNITEX*LONGMX*NMX+ORGX < LES COORDONNEES
MAXY: WORD UNITEY*LONGMY*NMY+ORGY < (X,Y).
ANMX: WORD NMX < NOMBRE DE SOUS-MATRICES SUR X,
ANMY: WORD NMY < ET SUR Y.
ALMX: WORD UNITEX*LONGMX < LONGUEUR SUR X D'UNE SOUS-MATRICE,
ALMY: WORD UNITEY*LONGMY < ET SUR Y.
AUX: WORD UNITEX < LONGUEUR SUR X D'UNE CELLULE,
AUY: WORD UNITEY < ET SUR Y.
NUMBAN: WORD 0 < NUMERO DU BANK EN POSITIONNEMENT,
NUMDIF: WORD 0 < ET EN DIFFUSION.
NUMMAT: WORD 0 < NUMERO DE LA MATRICE DANS LE JEU,
NUMREG: WORD 0 < NUMERO COMPLET DE REGISTRE.
NIVEAU: WORD 0 < NIVEAU SELECTIONNE,
COLOUR: WORD 0 < COULEUR SELECTIONNEE.
CTRANS: WORD 0 < CONSTANTE DE TRANSLATION DES NIVEAUX
< DE GRIS AVEC LA COMMANDE "G".
AXXR: WORD XXR < PERMUTATION DU ROUGE,
AXXV: WORD XXV < PERMUTATION DU VERT,
AXXB: WORD XXB < PERMUTATION DU BLEU.
SAVEC: WORD 0 < SAVE LE CONTENU D'UN MOT DE LA MEMOIRE
< DES COULEURS.
SAVET: WORD 0 < TRANSLATION SUR 'SAVEC'.
ANBCAR: WORD NBCAR
<
< DONNEES D'INTERPOLATION :
<
NIV1: WORD 0 < NIVEAU DE DEPART,
NIV2: WORD 0 < NIVEAU D'ARRIVEE.
ROUGE1: FLOAT 0
VERT1: FLOAT 0
BLEU1: FLOAT 0
ROUGE2: FLOAT 0
VERT2: FLOAT 0
BLEU2: FLOAT 0
FPAS: FLOAT 0 < PAS D'INTERPOLATION.
F05: FLOAT 0.5 < POUR LES ARRONDIS...
<
< DONNEES POUR LA GESTION DE L'IMAGE DE TV :
<
NOM: EQU ZERO+PILE+5-LNOM-2
IMAG: EQU NOM+LNOM+2
DEMMEM: WORD '0004 < DEMANDE D'ALLOCATION 8K-MOTS.
RELMEM: WORD '0004 < DEMANDE DE RETOUR A 4K MOTS.
WORD '4000
WORD '2000 < 8K OCTETS.
STDKU: WORD '8A01 < STABILISATION IMAGE.
WORD IMAG-ZERO*NOCMO
WORD LIMAG*NOCMO
WORD 0 < SELECTION COULEUR.
NLIG: WORD LIMAG/CNMPL-1 < NOMBRE DE LIGNE D'UNE TRAME-1.
NMPL: WORD CNMPL < NOMBRE DE MOTS PAR LIGNE.
TEMPO:: VAL 4*2 < NOMBRE DE CLIGNOTEMENTS...
<
< PROGRAMMATION DES REGISTRES DU CONTROLEUR DE 'CRT' :
<
NREG:: VAL 16 < NOMBRE DE REGISTRES ACCESSIBLES EN
< LECTURE/ECRITURE...
XWOR%1: VAL -NBITOC
XWOR%2: VAL CUINIT>XWOR%1
REG1: BYTE XWOR%2?'00;0 < ADRESSE DE REGISTRE,
REG2: BYTE XWOR%2?'08;0 < ADRESSE DE REGISTRE.
REG3: BYTE XWOR%2?'02;0 < VALEUR DU REGISTRE,
REG4: BYTE XWOR%2?'0A;0 < VALEUR DU REGISTRE.
REG5: BYTE XWOR%2?'07;0 < POUR DESACTIVER...
DEMR1: BYTE NVPCU;FGW < PROGRAMMATION DU CONTROLEUR...
WORD REG1-ZERO*NOCMO
WORD NOCMO
DEMR2: BYTE NVPCU;FGW
WORD REG2-ZERO*NOCMO
WORD NOCMO
DEMR3: BYTE NVPCU;FGW
WORD REG3-ZERO*NOCMO
WORD NOCMO
DEMR4: BYTE NVPCU;FGW
WORD REG4-ZERO*NOCMO
WORD NOCMO
DEMR5: BYTE NVPCU;FGW
WORD REG5-ZERO*NOCMO
WORD NOCMO
<
< LIGNE D'IMAGE :
<
LIG0:: VAL 0
LIG1:: VAL 1
NCOOL:: VAL 3 < NOMBRE DE STACKS COULEURS,
KDECAL:: VAL 8 < AMPLITUDE DU DECALAGE VERTICAL...
ALIMAG: WORD LIMAG
LIGNE: DZS CNMPL+1 < (+1 POUR LE DECALAGE CIRCULAIRE)
<
< PILE DE TRAVAIL :
<
STACK: DZS 10
PAGE
<
<
< T A B L E D E S :C O M M A N D E S :
<
<
REP0: VAL "0" < PREMIERE COMMANDE.
KOM: EQU $-REP0 < ELLES COMMENCENT A "0"...
WORD RETIC0 < 0 : ACCES AU BANK0
WORD RETIC1 < 1 : ACCES AU BANK1
WORD ERROR < 2
WORD ERROR < 3
WORD ERROR < 4
WORD ERROR < 5
WORD ERROR < 6
WORD ERROR < 7
WORD ERROR < 8
AERROR: WORD ERROR < 9 (ET RELAI...)
WORD ERROR <
WORD ERROR < ;
WORD DECAL < < : DECALAGE DES IMAGES CAMERAS
WORD ERROR < =
WORD ERROR < >
WORD ERROR < ?
WORD ERROR < @
WORD PGETC < A : MEMORISATION D'UNE COULEUR
WORD PSTOC < B : ET SON TRANSFERT AILLEURS
WORD RETICC < C : COULEUR AVEC CUMUL
WORD RETICD < D : ACCES A LA 'ZDC' EN MODE 'C'
WORD ERROR < E
WORD RETICF < F : FIN, RETOUR A 'GE'
WORD GCOUL < G : RECUPERATION DE LA MEMOIRE COULEURS
WORD ERROR < H
WORD RETII1 < I : INITIALISATION DE LA CARTE
WORD GINT < J : INTERPOLATION ENTRE DEUX NIVEAUX
WORD RETIK1 < K : COMMANDE DE LA CAMERA
WORD ERROR < L
WORD SCOLOR < M : BASCULE MEMORISATION COULEURS
WORD RETICN < N : INVALIDATION DE L'EMISSION 'ZDC'
WORD ERROR < O
WORD RETICP < P : COULEUR AVEC REINITIALISATION
WORD RETICQ < Q : ACCES A LA 'ZDC' EN MODE 'P'
WORD IREG < R : PROGRAMMATION DES REGISTRES 'CRT'
WORD RETICS < S : VALIDATION DE L'EMISSION 'ZDC'
WORD RETICT < T : TEST DU POINT VIDEO COURANT
WORD RETICU < U : ENTREE D'UNE TRAME MODE "K" ANTERIEUR
WORD RETIKA < V : ENTREE D'UNE TRAME EN MODE NORMAL
WORD RETICW < W : RETOUR TEMPORAIRE AU CCI
REPZ: VAL $-KOM-1 < DERNIERE COMMANDE.
PAGE
<
<
< I N I T I A L I S A T I O N D U C O N T R O L E U R
< D U C R T :
<
<
< ATTENTION :
< AU MOMENT DE L'EMISSION, ON
< SUPERPOSE 'CUINIT' A CHAQUE
< COMMANDE...
<
<
LINIT: EQU $
WORD '0700
WORD '0A02;'0202;'080F;'000F;'0A01;'0201;'080E;'000E
WORD '0A00;'0200;'080D;'000D;'0A00;'0200;'080C;'000C
WORD '0A06;'0206;'080B;'000B;'0A05;'0205;'080A;'000A
WORD '0A07;'0207;'0809;'0009;'0A01;'0201;'0808;'0008
WORD '0A22;'0222;'0807;'0007;'0A20;'0220;'0806;'0006
WORD '0A00;'0200;'0805;'0005;'0A26;'0226;'0804;'0004
WORD '0A03;'0203;'0803;'0003;'0A24;'0224;'0802;'0002
WORD '0A20;'0220;'0801;'0001;'0A27;'0227;'0800;'0000
WORD '0700
LLINIT:: VAL $-LINIT < LONGUEUR DE LA LISTE...
PAGE
PROG
<
<
< V A L I D A T I O N D E ( X , Y ) ,
< E T G E N E R A T I O N D E S O R D R E S :
<
<
< FONCTION :
< CE SOUS-PROGRAMME RECOIT UN COUPLE
< (X,Y) QU'IL VALIDE, IL DETERMINE ENSUITE
< SI CELA EST POSSIBLE, LES DIFFERENTS
< PARAMETRES DE COULEUR...
<
<
< ARGUMENTS :
< (X,Y)=COORDONNEES DU POINT COURANT,
<
<
< RESULTAT :
< A=0 : (X,Y) ETAIT VALIDE,
< #0 : (X,Y) ETAIT HORS DE LA MATRICE...
<
<
VALXY: EQU $
PSR X,Y
STX COORDX < SAUVEGARDE DES COORDONNEES.
STY COORDY
LR X,A < VALIDATION DE X :
CP MINX
JL VALXY1 < ERREUR...
CP MAXX
JGE VALXY1 < ERREUR...
LR Y,A < VALIDATION DE Y :
CP MINY
JL VALXY1 < ERREUR...
CP MAXY
JGE VALXY1 < ERREUR...
<
< TRAITEMENT D'UN COUPLE VALIDE (X,Y) :
<
LR X,A
SB MINX < REDUCTION A L'ORIGINE,
SARD NBITMO
DV ALMX
STA NUMMAT < (PROVISOIRE) : NUMERO DE LA COLONNE.
LR B,A
SARD NBITMO
DV AUX
STA COLOUR < COULEUR DESIREE (ON NEGLIGE B...).
LR Y,A
SB MINY < REDUCTION A L'ORIGINE,
SARD NBITMO
DV ALMY
STA NUMBAN < (PROVISOIRE) : NUMERO DE LA LIGNE.
LR B,A
SARD NBITMO
DV AUY
STA NIVEAU < NIVEAU DESIRE (ON NEGLIGE B...).
LA NUMBAN
MP ANMX < NUMERO-LIGNE*NMX
LR B,A
AD NUMMAT < NUMERO DE LA SOUS-MATRICE :
STA NUMMAT < QUE L'ON RANGE A PRIORI...
STA NUMREG
STZ NUMBAN < ET BANK 0 A PRIORI...
CPI NMX*NMY/NBAN < 0 OU 1 ???
JL VALXY2 < 0...
IC NUMBAN < 1...
ADRI -NMX*NMY/NBAN,A
STA NUMMAT
VALXY2: EQU $
<
< PREPARATION DE L'ORDRE A 'CU3' :
<
LA NIVEAU
SLLS CUNIVO=0
STA BUFCU
LA NUMMAT < NUMERO DE REGISTRE.
SLLS CUREG=0
OR BUFCU
STA BUFCU
LA NUMBAN < NUMERO DE BANK EN ENREGISTREMENT.
SLLS CUBAN=0
OR BUFCU
STA BUFCU
LA COLOUR < COULEURS DESIREES.
SLLS CUCOLO=0
OR BUFCU
STA BUFCU
LA NUMDIF < NUMERO DE BANK EN DIFFUSION.
SLLS CUDIFF=0
OR BUFCU
STA BUFCU
<
< ET C'EST FINI...
<
LAI 0 < RETOUR OK...
VALXY3: EQU $
PLR X,Y
RSR
VALXY1: EQU $
LAI 1 < RETOUR EN ERREUR...
JMP VALXY3
PAGE
<
<
< I N I T I A L I S A T I O N R E G I S T R E S :
<
<
SPCU: EQU $
LB BUFCU < B=SAUVEGARDE DE L'ORDRE A 'CU3'.
LRM A
WORD CUCOLO?CUNIVO < A=SELECTION DES 3 COULEURS AU
< NIVEAU MINIMUM.
ORR B,A
STA BUFCU
BSR AMEMCU < MEMORISATION DES COULEURS...
SVC 0 < REINITIALISATION DES REGISTRES...
STB BUFCU < REINITIALISATION DE L'ORDRE...
RSR
PAGE
<
<
< E N V O I D ' U N S E G M E N T E N Z D C :
<
<
STOZDC: EQU $
PSR A,X
LA INDZDC
TBT NBITMO-1 < EST-CE VALIDE ???
JNC STO1 < NON...
LA BUFX
STA SEG+0+X
STA SEG+2+X
LA BUFY
STA SEG+0+Y
STA SEG+2+Y
LAD GETGS < OUI...
STO2: EQU $
SVC 0 < ACCES A L'ACQUITTEMENT PRECEDENT...
CPZ NOMSEG < A-T'IL ETE ACQUITTE ???
JNE STO2 < NON, ON ATTEND...
DC NOMSEG < OUI, NOMSEG=-1,
LAD STOGS
SVC 0 < ET ON ENVOIE LE SEGMENT COURANT.
STO1: EQU $
PLR A,X
RSR
PAGE
<
<
< A C C E S A U N S E G M E N T E N Z D C :
<
<
< RESULTAT :
< A=0 SUR FIN DE LISTE ('OAB').
<
<
GETZDC: EQU $
PSR X
LAD DEMSEG
GET1: EQU $
SVC 0 < ACCES AU SEGMENT COURANT...
CPZ NOMSEG < EST-IL VALIDE ???
JE GET1 < NON, ON ATTEND...
STZ NOMSEG < OUI, NOMSEG=0,
LAD DELSEG
SVC 0 < ET ON L'ACQUITTE...
LA SEG+0+X
OR SEG+0+Y
OR SEG+2+X
OR SEG+2+Y < A=0 SI 'OAB'...
PLR X
RSR
PAGE
<
<
< T E S T D ' U N P O I N T :
<
<
< ARGUMENTS :
< X ET Y CONTIENNENT L'X ET L'Y DU POINT ,
< C=@IMAG.
<
<
< RESULTAT :
< CARY POISITIONNE PAR LE POINT (0/1).
<
<
TEST: EQU $
LA STDKU+3
EORI TVIN < MISE EN MODE SORTIE SUR LA TRAME
STA STDKU+3 < COURANTE...
PSR B,X,C
LR Y,A < A=COORDONNEE Y DU POINT.
MP NMPL
ADR B,C
LR X,A < A=COORDONNEE X DU POINT.
SLRS NBITMO=0
ADR A,C < C#MOT CONTENANT LE POINT (X,Y).
LAI NBITMO-1
ANDR A,X < X=NUMERO DU POINT DANS LE MOT (C)
LBI TEMPO < NOMBRE DE CLIGNOTEMENTS.
INVER: EQU $
LA 0,C
IBT 0,X < INVERSION...
STA 0,C
PSR X
LAD STDKU
SVC 0 < CLIGNOTEMENT...
PLR X
ADRI -1,B
CPZR B
JG INVER < ON CONTINUE...
LA 0,C
TBT 0,X < TEST DU POINT.
PLR B,X,C
RSR
PAGE
<
<
< E D I T I O N D ' U N M E S S A G E :
<
<
< ARGUMENT :
< A=ADRESSE DU MESSAGE, DONT LE 1ER OCTET
< EST LA LONGUEUR.
<
<
PRINT: EQU $
PSR A,X,W
LR A,W < W=ADRESSE MOT DU MESSAGE.
ADR A,A
ADRI NOCMO-1,A
STA DEMMES+1 < ADRESSE DU MESSAGE,
LBY 0,W
STA DEMMES+2 < LONGUEUR DU MESSAGE.
LAD DEMMES
SVC 0 < EDITION DU MESSAGE.
PLR A,X,W
RSR
PAGE
<
<
< C O N V E R S I O N H E X A --> B I N A I R E :
<
<
< ARGUMENT :
< LE BUFFER 'REP'.
<
<
< RESULTAT :
< B=0 : (A)=VALEUR BINAIRE,
< B#0 : ERREUR DE SYNTAXE HEXA-DECIMALE.
< LES INDICATEURS POSITIONNES SUR (B).
<
<
HEX: EQU $
BASE10: VAL 10
BASE16: VAL 16
PSR X,Y
LYI NBRHEX
LXI 0 < INDEX DU BUFFER DE REPONSE.
LBI 0 < CLEAR LE REGISTRE B.
HEX1: EQU $
LBY &AREP < A=CARACTERE COURANT DU BUFFER.
ADRI -"0",A
JAL HEX4 < ERREUR : CARACTERE NON RECONNU.
CPI BASE10 < EST-CE UN CHIFFRE ???
JL HEX2 < OUI , C'EST UN CHIFFRE.
ADRI -"A"+"9"+1,A < NON.
CPI BASE10 < VALIDATION.
JL HEX4 < ERREUR : CARACTERE NON RECONNU.
CPI BASE16 < VALIDATION.
JGE HEX4 < ERREUR : CARACTERE NON RECONNU.
HEX2: EQU $
SCRS NBITMO/NBRHEX < MISE DES 4 BITS EN TETE DE A.
SCLD NBITMO/NBRHEX < ET CONCATENATION A B.
ADRI 1,X < PROGRESSION DE L'INDEX.
CPR X,Y < EST-CE FINI ???
JNE HEX1 < NON , ON CONTINUE.
LR B,A < A=VALEUR BINAIRE DE (REP).
LBI 0 < B=0 : RETOUR OK.
HEX3: EQU $
PLR X,Y
CPZR B < POSITIONNEMENT DES INDICATEURS.
RSR
<
< RETOURS EN ERREUR :
<
HEX4: EQU $
LR B,A < A=VALEUR COURANTE...
LBI 1 < B#0.
JMP HEX3 < VERS LA SORTIE ...
PAGE
<
<
< E N T R E E D ' U N E R E P O N S E O U I / N O N :
<
<
< ARGUMENT :
< A=ADRESSE D'UN MESSAGE A EDITER,
< X=NUMERO D'UN BIT A METTRE A 1 DANS 'A' SI 'OUI'.
<
<
< RESULTAT :
< A=0 SI 'NON',
< LE BIT A(X)=1 SI 'OUI'.
<
<
ENTER: EQU $
PSR B,Y
LR A,Y < Y=SAVE L'ADRESSE DU MESSAGE SI ERREUR.
LBI 0 < CLEAR LA REPONSE A PRIORI...
ENTER1: EQU $
LR Y,A
BSR APRINT < EDITION DU MESSAGE ARGUMENT,
PSR X
LAD DEMIN
SVC 0 < ENTREE DE LA REPONSE,
PLR X
LBY BUFCG < A=REPONSE,
CPI "N"
JE ENTER2 < "N" : B=0...
CPI "O"
JNE ENTER1 < ITERATION SUR ERREUR...
SBT NBITMO,X < "O" : B(X)=1...
ENTER2: EQU $
LR B,A < A=REPONSE...
PLR B,Y
RSR
PAGE
<
<
< M E M O R I S A T I O N C O U L E U R S :
<
<
< RESULTAT :
< A=ADRESSE DE 'DEMCU'.
<
<
MEMCU: EQU $
CPZ MITEM1 < MEMORISE-T'ON ???
JG MEMCU1 < 1 : NON...
LA BUFCU < OUI, A=CODE DE COULEURS,
BSR ASTHEX < QUE L'ON MET EN ITEM1...
MEMCU1: EQU $
LAD DEMCU < A=ADRESSE DE 'DEMCU'.
RSR
PAGE
<
<
< I N I T I A L I S A T I O N I T E M 1 :
<
<
IITEM: EQU $
LAI NBCAR
STA XITEM1 < REINITAILISATION DE L'INDEX ITEM1...
LXI IINDIC-LTN*NOCMO
LAI "T"
STBY &AITEM1 < MISE EN MODE "TEXTE",
LXI LRITEM-LTN
LA LITEM1
STA &AITEM1 < ET DE LA LONGUEUR D'UN TEXTE...
LR A,X < ET ON CLEAR...
LAI " "
SCOL5: EQU $
ADRI -1,X
STBY &AITEM1 < REMISE A " "...
ADRI 1,X
JDX SCOL5
RSR
PAGE
<
<
< R A N G E M E N T D A N S I T E M 1 :
<
<
< FONCTION :
< CE SOUS-PROGRAMME RANGE LE CARACTERE
< ARGUMENT DANS 'ITEM1' A L'INDEX 'XITEM1' ;
< EN CAS DE DEBORDEMENT, ON NE FAIT PAS
< PROGRESSER CELUI-CI...
<
<
< ARGUMENT :
< A=CARACTERE.
<
<
STIT: EQU $
PSR A,X
LX XITEM1 < X=INDEX DE L'ITEM1,
STBY &AITEM1 < ET ON Y RANGE (A)...
LR X,A
ADRI 1,A < PROGRESSION DE L'INDEX,
CP LITEM1 < ET VALIDATION PRELIMINAIRE...
JL STIT1 < OK...
LAI MRC-ZERO
BSR APRINT
LAI MOVFL-ZERO
BSR APRINT < SIGNALISATION DU DEBORDEMENT.
JMP STIT2 < ET C'EST TOUT...
STIT1: EQU $
STA XITEM1 < MISE A JOUR DE L'INDEX COURANT...
STIT2: EQU $
PLR A,X
RSR
PAGE
<
<
< C O N V E R S I O N A S C I :
<
<
< FONCTION :
< CE SOUS-PROGRAMME EFFECTUE LA
< CONVERSION DE L'ARGUMENT (A) EN
< ASCI, SOIT 'XXXX, PUIS RANGE EN
< ITEM1 LA CHAINE DE CARACTERES
< U;XXXX QUI EST COMPATIBLE AVEC
< LES PROCESSEURS 'TI' ET 'TV'...
<
<
< ARGUMENT :
< A=VALEUR HEXA-DECIMALE.
<
<
STHEX: EQU $
PSR B,X
<
< NOTA :
< ON N'OPTIMISE PLUS EN
< FONCTION DE LA NULLITE DE
< 'CTRANS' AVEC SAUT VERS
< 'STHEX5' DEPUIS QUE LA PERMU-
< TATION DES COULEURS EST INTRODUITE...
<
LBI 0
SCRS LREG
SCLD LREG
XR A,B < A=NIVEAU DE GRIS,
AD CTRANS < ET TRANSLATION...
CPI CUNIVO
JL STHEX3 < OK...
LAI CUNIVO < MAJORATION...
STHEX3: EQU $
JAGE STHEX4 < OK...
LAI 0 < MINORATION...
STHEX4: EQU $
ORR B,A < RECONCATENATION...
STA BUFCU < MISE DANS LE BUFFER DE 'CU3',
PSR A,X
LAD DEMCU
SVC 0 < ENVOI, ET TRANSLATION COULEUR...
PLR A,X
STHEX5: EQU $
SCLS NBITMO/NBRHEX
ORI 4
SCRS NBITMO/NBRHEX < MISE SOUS LA FORME '4XXX.
LR A,B
LAI " "
BSR ASTIT < MISE DE
BSR ASTIT < CARACTERES
BSR ASTIT < 'SPACE'...
LAI "U"
BSR ASTIT < "U"
LAI ";"
BSR ASTIT < "U;"
LXI NBRHEX
STHEX1: EQU $
LAI 0 < CLEAR 'A'...
SLLD NBITMO/NBRHEX
CPI BASE10 < CHIFFRE OU LETTRE ???
JL STHEX2 < CHIFFRE...
ADRI "A"-"9"-1,A < LETTRE...
STHEX2: EQU $
ADRI "0",A
BSR ASTIT < "U;XXXX"
JDX STHEX1
PLR B,X
RSR
PAGE
<
<
< E N T R E E D E L A P E R M U T A T I O N
< D E S C O U L E U R S :
<
<
< FONCTION :
< CE MODULE PERMET DE PERMUTER
< LES CANAUX DE SORTIE ENTRE EUX,
< ET AINSI PAR EXEMPLE D'ENVOYER
< LE ROUGE-LOGIQUE SUR LE BLEU
< PHYSIQUE, ET AINSI D'ENVOYER
< LE ROUGE SUR LE MONITEUR NOIR
< ET BLANC SI CELUI-CI NE RECOIT
< QUE LE BLEU...
<
<
< ARGUMENT :
< B=VALEUR PAR DEFAUT,
< X=INDEX DE LA COULEUR.
<
<
< RESULTAT :
< X=VALEUR DEMANDEE.
<
<
SP2: EQU $
LBY &AREP < (A)=CARACTERE COURANT,
XXABS:: VAL 0 < CANAL COULEUR ABSENT...
LXI XXABS < ABSENT A PRIORI,
CPI "X" < ABSENT ???
JE SP21 < OUI...
LXI XXR < ROUGE A PRIORI,
CPI "R" < ROUGE ???
JE SP21 < OUI...
LXI XXV < VERT A PRIORI,
CPI "V" < VERT ???
JE SP21 < OUI...
LXI XXB < BLEU A PRIORI...
CPI "B" < BLEU ???
JE SP21 < OUI...
LAI MERR-ZERO
BSR APRINT < ERREUR !!!
LR B,X < ON FORCE LA VALEUR PAR DEFAUT...
SP21: EQU $
RSR < ET C'EST TOUT...
PAGE
<
<
< G E S T I O N D U R E T I C U L E :
<
<
< FONCTION :
< CE SOUS-PROGRAMME PERMET D'ENTRER LE
< RETICULE DE LA VISU ET D'AGIR EN CONSEQUENCES...
< LES COMMANDES RECONNUES SONT :
< F : FIN,
< C : SELECTION COULEUR, EN LAISSANT INCHANGES
< LES 0, 1 OU 2 AUTRES REGISTRES NON SELECTIONNES,
< P : SELECTION COULEUR, EN REMETTANT AU PREALABLE LES
< 3 REGISTRES AU NOIR,
< 0 : DIFFUSION DU BANK0,
< 1 : DIFFUSION DU BANK1.
< W : RETOUR AU CCI,
< D : RECOIT DES SEGMENTS EN ZDC, ET POUR CHACUN
< D'ENTRE-EUX, IL EN PREND L'EXTREMITE (X,Y),
< ET FAIT COMME SI "C" AVAIT ETE RECU AU
< RETICULE ; CECI DURE JUSQU'A UN 'OAB'...
< Q : "Q" EST A "P", CE QUE "D" EST A "C"...
< S : VALIDE L'EMISSION EN ZDC POUR CHAQUE "C",
< N : INVALIDE "S",
< T : TESTE LE POINT VIDEO COURANT POINTE PAR LE
< RETICULE...
< K : COMMANDE DE LA CAMERA...
< < : POSITIONNEMENT CORRECT DES IMAGES ENTREES
< PAR LA CAMERA...
< V : ENTREE D'UNE TRAME EN MODE NORMAL...
< U : ENTREE D'UNE TRAME DANS LE MODE "K" ANTERIEUR...
< I : INITIALISATION DE LA CARTE.
< M : BASCULE DE LA MEMORISATION DES COULEURS ("OFF" A
< L'APPEL DE "RV").
< G : GENERATION DE L'ITEM1 A PARTIR DE LA MEMOIRE
< DES COULEURS DE CMS5.
< R : PROGRAMMATION INDIVIDUELLE DES REGISTRES DU
< CONTROLEUR DE 'CRT'.
< A : MEMORISATION ET TRANSLATION DE LA COULEUR D'UNE
< DES 16 SOUS-MATRICES DE LA PALETTE,
< B : ET TRANSFERT DE CELLE-CI VERS L'UNE QUELCONQUE
< DES 16 SOUS-MATRICES DE LA PALETTE (EMETTEUR
< PAR "A" ET RECEPTEUR PAR "B" POUVANT ETRE
< CONFONDUS).
<
<
<
< "R" : PROGRAMMATION DES REGISTRES DU CONTROLEUR DE 'CRT' :
<
IREG: EQU $
LAI MREG-ZERO
BSR APRINT
LAD DEMHEX
SVC 0
BSR AHEX < CONVERSION DE L'ADRESSE DE REGISTRE :
JNE IREG < ERREUR...
JAL IREG < ERREUR...
CPI NREG
JGE IREG < ERREUR...
LR A,B < B=ADRESSE DU REGISTRE SELECTIONNE...
LBY REG1
STB REG1
STBY REG1
LBY REG2
STB REG2
STBY REG2
IREG1: EQU $
LAI MVAL-ZERO
BSR APRINT
LAD DEMHEX
SVC 0
BSR AHEX < CONVERSION DE LA VALEUR DU REGISTRE :
JNE IREG1 < ERREUR...
JAL IREG1 < ERREUR...
CPI 1>NBITOC-1
JG IREG1 < ERREUR...
LR A,B < B=VALEUR DU REGISTRE SELECTIONNE...
LBY REG3
STB REG3
STBY REG3
LBY REG4
STB REG4
STBY REG4
LAD DEMR5
SVC 0 < OUVERTURE...
LAD DEMR1
SVC 0 < ENVOI DE 'REG1',
LAD DEMR2
SVC 0 < ENVOI DE 'REG2',
LAD DEMR3
SVC 0 < ENVOI DE 'REG3',
LAD DEMR4
SVC 0 < ENVOI DE 'REG4'.
LAD DEMR5
SVC 0 < FERMETURE...
BR ALOOP < A L'ORDRE SUIVANT...
<
< "M" : MEMORISATION EN ITEM1 DES TABLES DE COULEUR :
<
SCOLOR: EQU $
IC PITEM1 < PREMIERE FOIS ???
JG SCOL4 < NON...
BSR AIITEM < INITIALISATION DE L'ITEM1...
SCOL4: EQU $
LA MITEM1
NGR A,A < INVERSION DE LA BASCULE...
STA MITEM1
LAI MRC-ZERO
BSR APRINT
LAI MOFF-ZERO < OFF A PRIORI...
CPZ MITEM1 < ???
JG SCOL1 < OFF...
LAI MON-ZERO < ON...
SCOL1: EQU $
BSR APRINT
BR ALOOP < A L'ORDRE SUIVANT...
<
< "I" : INITIALISATION DE LA CARTE :
<
RETII1: EQU $
LAI CUCLIR
STA BUFCU+MOT2
LAD DEMCU2
SVC 0 < 'CLEAR' DE LA CARTE...
STZ BUFCU+MOT2
LXI LLINIT < X=NOMBRE D'INITIALISATION.
LAD DEMCU < A=ADRESSE DE LA DEMANDE D'INITIALISATION.
INIT1: EQU $
LB &ALINIT
XWOR%1: VAL CUINIT=0-NBITMO+1
SBT NBITMO+XWOR%1 < POUR DISCRIMINER D'AVEC LES ORDRES DE
< COULEUR...
STB BUFCU
PSR X
SVC 0 < INITIALISATION...
PLR X
JDX INIT1 < A LA SUIVANTE...
STZ BUFCU
JMP RETIK2 < VERS LA REMISE EN FONCTION...
<
< U : ENTREE D'UNE TRAME DANS LE MODE "K" ANTERIEUR :
<
RETICU: EQU $
LA SMOT2 < A=ORDRES CAMERA ANTERIEUR,
JMP RETICL < VERS L'ENVOI...
<
< V : ENTREE D'UNE TRAME CAMERA EN MODE NORMAL :
<
RETIKA: EQU $
PROMN:: VAL '0000 < ADRESSE DE PROM STANDARD,
MODEN:: VAL '0000 < MODE D'ENTREE STANDARD...
< (ON RENTRE 3 BITS DE POIDS FORTS)
XWOR%2: VAL CUIN?CUINR?CUINV?CUINB
XWOR%1: VAL CUMODI=0
XWOR%2: VAL MODEN>XWOR%1?XWOR%2
XWOR%1: VAL CUPROM=0
XWOR%2: VAL PROMN>XWOR%1?XWOR%2
LRM A
WORD XWOR%2 < ENTREE SUR TOUTES LES COULEURS,
RETICL: EQU $ < ENTRY POUR "U"...
STA BUFCU+MOT2 < EN MODE STANDARD...
LAD DEMCU2
SVC 0 < ENTREE,
RETICM: EQU $
STZ BUFCU+MOT2 < ET STOP IMMEDIAT AFIN DE
JMP RETIK2 < N'ENTRER QU'UNE TRAME...
<
< "K" : COMMANDE DE LA CAMERA :
<
RETIK1: EQU $
STZ BUFCU+MOT2 < INITIALISATION DU CUMUL DES ORDRES...
LAI MRC-ZERO
BSR APRINT < A CAUSE DU RETICULE DE LA VISU...
LAI MCAM-ZERO
BSR APRINT < EDITION DE "CAMERA:".
XWOR%1: VAL CUIN=0
LXI NBITMO-1-XWOR%1
LAI MI-ZERO
BSR AENTER < 'IN' OU 'OUT' ???
JAE RETIK2 < 'OUT'...
OR BUFCU+MOT2 < 'IN'...
STA BUFCU+MOT2
XWOR%1: VAL CUINR=0
LXI NBITMO-1-XWOR%1
LAI MR-ZERO
BSR AENTER < SELECTION ROBINET ROUGE...
OR BUFCU+MOT2
STA BUFCU+MOT2
XWOR%1: VAL CUINV=0
LXI NBITMO-1-XWOR%1
LAI MV-ZERO
BSR AENTER < SELECTION ROBINET VERT...
OR BUFCU+MOT2
STA BUFCU+MOT2
XWOR%1: VAL CUINB=0
LXI NBITMO-1-XWOR%1
LAI MB-ZERO
BSR AENTER < SELECTION ROBINET BLEU...
OR BUFCU+MOT2
STA BUFCU+MOT2
RETIK3: EQU $
LAI MMOD-ZERO
BSR APRINT < "MODE=".
LAD DEMHEX
SVC 0 < ENTREE DU MODE...
BSR AHEX < ET CONVERSION BINAIRE...
JNE RETIK3 < ERREUR...
XWOR%1: VAL CUMODI=0
XWOR%2: VAL -XWOR%1
JAL RETIK3 < MAUVAIS MODE...
CPI CUMODI>XWOR%2 < VALIDATION,
JG RETIK3 < ERREUR...
SLLS XWOR%1
OR BUFCU+MOT2
STA BUFCU+MOT2
RETIK4: EQU $
LAI MAD-ZERO
BSR APRINT < "ADR PROM=".
LAD DEMHEX
SVC 0 < ENTREE DE L'ADRESSE DE LA FONCTION
< DE TRANSFERT EN PROM...
BSR AHEX < ET CONVERSION BINAIRE,
JNE RETIK4 < ERREUR...
XWOR%1: VAL CUPROM=0
XWOR%2: VAL -XWOR%1
JAL RETIK4 < ERREUR...
CPI CUPROM>XWOR%2 < VALIDATION,
JG RETIK4 < ERREUR...
SLLS XWOR%1
OR BUFCU+MOT2
STA BUFCU+MOT2
STA SMOT2 < SAUVEGARDE POUR "U"...
LAI MCONT-ZERO
LXI NBITMO-1
BSR AENTER < "CONTINU?"...
PSR A < SAUVEGARDE DE LA REPONSE...
LAD DEMCU2
SVC 0 < ENVOI DE L'ORDRE CAMERA...
PLR A < RESTAURE LA REPONSE A "CONTINU?" :
JAE RETICM < "N" : ON NE RENTRE QU'UNE TRAME...
JMP RETICX < "O" : ON RENTRE EN CONTINU...
RETIK2: EQU $
LAD DEMCU2
SVC 0 < ENVOI DU MOT2 DE 'CU3' (ORDRES CAMERA)...
JMP RETICX < VERS L'ORDRE SUIVANT...
RETIC: EQU $
<
< ENTREE DU RETICULE :
<
RETICX: EQU $
LOOP: EQU RETICX < MODULE D'INTERROGATION...
LAD OG
SVC 0 < MISE EN GRAPHIQUE,
LAD CU
SVC 0 < MISE EN FONCTION DU RETICULE,
LAD LG
SVC 0 < LECTURE DU RETICULE.
<
< ANALYSE DE L'ORDRE :
<
LBY BUFCG < A=CARACTERE DE DEBLOCAGE DE LA VISU.
CPI REP0 < ET VALIDATION...
JL ERROR < ERREUR...
CPI REPZ < VALIDATION, SUITE...
JG ERROR < ERREUR...
LR A,X < X=COMMANDE DEMANDEE,
LA &AKOM < A=ADRESSE DU MODULE DE TRAITEMENT...
LX BUFX < X=COORDONNEE X,
LY BUFY < Y=COORDONNEE Y.
PSR A
RSR < BRANCHEMENT AU MODULE SPECIFIQUE...
<
< ERREUR :
<
RETICY: EQU $
ERROR: EQU RETICY < MODULE D'ERREUR...
LAD CG
SVC 0 < RETOUR EN ALPHANUMERIQUE...
LAI MERR-ZERO
BSR APRINT
JMP RETICX < ET ON RECOMMENCE...
<
< "F" : RETOUR A "GE" :
<
RETICF: EQU $
STZ BUFY
STZ BUFX
BSR ASTOZD < ENVOI D'UN 'OAB'...
LRM W,K
WORD BRANCH < (W)=ADRESSE DE LA BRANCHE D'OVERLAY,
WORD PILE-1 < (K)=ADRESSE DE LA PILE 'SMC'...
LA NGE
STA &ABRANC < MISE EN PLACE DU NOM DE "GE".
LAD RELMEM
SVC 0
LAD DEMBAC
BSR AOVL < ET ON REVIENT A "GE"...
JMP RETICY < IMPOSSIBLE...
<
< "W" : RETOUR AU CCI :
<
RETICW: EQU $
LAD DEMCCI
SVC 0
JMP RETICX
<
< "0" : SELECTION DU BANK0 EN DIFFUSION :
<
RETIC0: EQU $
STZ NUMDIF < ET C'EST TOUT...
JMP RETIC9 < VERS LA SELECTION.
<
< "1" : SELECTION DU BANK1 EN DIFFUSION :
<
RETIC1: EQU $
STZ NUMDIF
IC NUMDIF < FACILE...
RETIC9: EQU $
LA NUMDIF
SLLS CUDIFF=0
STA BUFCU < JUSTE UN ORDRE DE SELECTION...
JMP RETIC8
<
< "S" : VALIDATION EMISSION ZDC POUR "C" :
<
RETICS: EQU $
STZ INDZDC
IC INDZDC
JMP RETICX
<
< "N" : INVALIDATION EMISSION ZDC DE "C" :
<
RETICN: EQU $
STZ INDZDC
JMP RETICX
<
< "C" : SELECTION DE LA COULEUR...
<
RETICC: EQU $
BSR AVALXY < VALIDATION DE (X,Y)...
JANE RETICY < ERREUR DE POSITIONNEMNT...
BSR ASTOZD < ENVOI EVENTUEL EN ZDC...
RETIC8: EQU $
BSR AMEMCU
RETICZ: EQU $
SVC 0 < OK, ON ENVOIE L'ORDRE DE COULEUR...
JMP RETICX
<
< "P" : SELECTION COULEUR AVEC REINITIALISATION AU NOIR PREALABLE :
<
RETICP: EQU $
BSR AVALXY < VALIDATION (X,Y)....
JANE RETICY < ERREUR...
BSR ASPCU < REINITIALISATION DES REGISTRES.
JMP RETIC8 < VERS SON ENVOI...
<
< "D" : ACCES A LA ZDC EN MODE "C" :
<
RETICD: EQU $
BSR AGETZD < ACCES A LA ZDC :
JAE RETICX < 'OAB' : RETOUR AU RETICULE...
SEGX: EQU SEG+2+X < X(EXTREMITE).
SEGY: EQU SEG+2+Y < Y(EXTREMITE).
LX SEGX
LY SEGY
BSR AVALXY < VALIDATION DE (X,Y).
JANE RETICY < ON ARRETE --> RETICULE...
BSR AMEMCU
SVC 0 < OK, ON PROGRAMME LE 'CU3'...
JMP RETICD < ET ON REBOUCLE...
<
< "Q" : ACCES A LA ZDC EN MODE "P" :
<
RETICQ: EQU $
BSR AGETZD < ACCES A LA ZDC :
JAE RETICX < 'OAB' : RETOUR AU RETICULE...
LX SEGX
LY SEGY
BSR AVALXY < VALIDATION DE (X,Y)...
JANE RETICY < ERREUR : RETOUR AU RETICULE...
BSR ASPCU < REINITIALISATION DES REGISTRES...
BSR AMEMCU
SVC 0 < ET ON COMMANDE LE 'CU3'...
JMP RETICQ < ET ON REBOUCLE...
<
< "T" : TEST DU POINT VIDEO COURANT :
<
RETICT: EQU $
LAI MRC-ZERO
BSR APRINT
LR Y,A
SLRS DEDY
SB NLIG
NGR A,Y < Y=Y(POINT VIDEO COIRANT).
LR X,A
SLRS DEDX
LR A,B < B=X(POINT VIDEO COURANT).
LAI TVIN?TVPR
BSR ASP5 < TEST DU POINT (X,Y) SUR LA TRAME "1" :
JNC E1 < 0...
LAI M1-ZERO
E1: EQU $
BSR APRINT < 1 : ON LE DIT...
LAI TVIN?TVPV
BSR ASP5 < TEST DU POINT (X,Y) SUR LA TRAME "2" :
JNC E2 < 0...
LAI M2-ZERO
E2: EQU $
BSR APRINT < 1 : ON LE DIT...
LAI TVIN?TVPB
BSR ASP5 < TEST DU POINT (X,Y) SUR LA TRAME "3" :
JNC E3 < 0...
LAI M3-ZERO
E3: EQU $
BSR APRINT < 1 : ON LE DIT...
BR ARET < VERS L'INTERROGATION...
<
<
< T E S T P O I N T :
<
<
< ARGUMENT :
< (A)=NUMERO DE TRAME.
<
<
< RESULTAT :
< (A)=ADRESSE MESSAGE.
<
<
SP5: EQU $
STA STDKU+3
LAD STDKU
SVC 0 < LECTURE DE LA TRAME "1".
LR B,X
BSR ATEST < TEST DU POINT (X,Y) SUR "1".
LAI MMOINS-ZERO
RSR
PAGE
<
<
< M E M O R I S A T I O N D ' U N E C O U L E U R :
<
<
PGETC: EQU $
BSR AVALXY < RECUPERATION DU REGISTRE DEMANDE :
AERR: JANE ERROR < ERREUR...
BSR APTRAN < ENTREE DE LA TRANSLATION.
STA SAVET < SAUVEGARDE DE LA TRANSLATION DEMANDEE.
BSR APERMU < ENTREE DE LA PERMUTATION (R,V,B)...
LAI NSPCOL
SBT 0
ACTD 1
LR B,A < A=ADRESSE DE LA MEMOIRE DES COULEURS,
AD NUMREG < A=ADRESSE DU REGISTRE DEMANDE,
ACTD 1
STB SAVEC < ET SAUVEGARDE DE SON CONTENU...
BR ARET
<
<
< E N T R E E T R A N S L A T I O N :
<
<
PTRAN: EQU $
LAI MTRANS-ZERO
BSR APRINT
LAD DEMHEX
SVC 0
BSR AHEX
JNE PTRAN < ERREUR...
RSR
<
<
< E N T R E E P E R M U T A T I O N ( R , V , B ) :
<
<
PERMUT: EQU $
LAI MPRVB-ZERO
BSR APRINT < MESSAGE,
LAD DEMRVB
SVC 0 < ENTREE DE LA LISTE DE PERMUTATION :
LAI XXR < INITIALISATION A PRIORI...
STA AXXR
LAI XXV
STA AXXV
LAI XXB
STA AXXB
LXI TVPR < INDEX DU PREMIER :
LBY &AREP < (A)=PREMIER CARACTERE :
CPI '04 < EST-CE "EOT" ???
JE PERMU1 < OUI, ON ARRETE...
CPI '0D < EST-CE "R/C" ???
JE PERMU1 < OUI, ON ARRETE...
LBI XXR < NON,
BSR ASP2 < PERMUTATION DU ROUGE.
STX AXXR
LXI TVPV
LBI XXV
BSR ASP2 < PERMUTATION DU VERT.
STX AXXV
LXI TVPB
LBI XXB
BSR ASP2 < PERMUTATION DU BLEU.
STX AXXB
PERMU1: EQU $
RSR
PAGE
<
<
< T R A N S F E R T D ' U N E C O U L E U R :
<
<
PSTOC: EQU $
BSR AVALXY < RECUPERATION DU REGISTRE DEMANDE :
JANE AERR
LY NUMREG < Y=REGISTRE DEMANDE,
LB SAVEC
SLLD LREG < B=VALEUR A LUI DONNER...
BSR ASP3 < GENERATION DU (B,V,R)...
BR ARET < ET C'EST TOUT...
<
<
< G E N E R A T I O N D U ( B , V , R ) :
<
<
< ARGUMENT :
< (B)=CONTENU DU REGISTRE COURANT,
< (Y)=NUMERO DU REGISTRE COURANT.
<
<
SP3: EQU $
LA AXXB
BSR ASP1 < GENERATION DU BLEU,
LA AXXV
BSR ASP1 < GENERATION DU VERT,
LA AXXR
BSR ASP1 < GENERATION DU BLEU.
RSR
<
<
< T R A N S L A T I O N E T E N V O I C O U L E U R :
<
<
SP1: EQU $
IF XXABS-0,,XWOR%,
IF ATTENTION : LE 'JAE' ET CELUI DE 'SP4' EST IDIOT !!!
XWOR%: VAL 0
JAE SP14 < CAS D'UNE COMPOSANTE ABSENTE...
ORR Y,A < CONCATENATION NUMERO DE REGISTRE,
SLLD LREG < CONCATENATION DU NIVEAU DE GRIS,
PSR B
LBI 0
SCRS LREG
SCLD LREG
XR A,B < A=NIVEAU DE GRIS SEUL,
AD SAVET < QUE L'ON TRANSLATE,
CPI CUNIVO < ET QUE L'ON VALIDE :
JL SP11 < OK...
LAI CUNIVO < MINORATION...
SP11: EQU $
JAGE SP12 < OK...
LAI 0 < MAJORATION...
SP12: EQU $
ORR B,A < RECONCATENATION...
PLR B
STA BUFCU
LA NUMDIF < NUMERO DU BANK DE DIFFUSION.
SLLS CUDIFF=0
OR BUFCU
STA BUFCU
BSR AMEMCU < AFIN DE PERMETTRE DES INTERPOLATIONS
< ENTRE 2 PALETTES REGISTRE PAR REGISTRE
< LORSQUE MITEM1=-1.
SVC 0 < ET ENVOI DE LA COULEUR...
SP13: EQU $
RSR
<
< MISE A JOUR DE 'B' POUR UN
< CANAL COULEUR ABSENT :
<
SP14: EQU $
SLLD LREG
JMP SP13 < ET ON SORT...
PAGE
<
<
< M E M O I R E D E S C O U L E U R S :
<
<
GCOUL: EQU $
<
< ENTREE DE LA TRANSLATION :
<
BSR APTRAN < ENTREE DE LA TRANSLATION...
STA CTRANS < CONSTANTE DE TRANSLATION DES NIVEAUX
< DE GRIS...
<
< ENTREE DE LA PERMUTATION DES COULEURS :
<
BSR APERMU
<
< GENERATION :
<
BSR AIITEM < INITIALISATION DE L'ITEM1...
STZ XITEM1 < RETOUR EN DEBUT D'ITEM,
LAI "&" < ET GENERATION DU DEBUT DU PROGRAMME...
BSR ASTIT
LAI "R"
BSR ASTIT
LAI "V"
BSR ASTIT
LAI "B"
BSR ASTIT
LAI ";"
BSR ASTIT
LAI " "
BSR ASTIT
BSR ASTIT
BSR ASTIT
BSR ASTIT
BSR ASTIT
BSR ASTIT
BSR ASTIT
LAI ">"
BSR ASTIT
LAI "R"
BSR ASTIT
LAI "V"
BSR ASTIT
LAI "B"
BSR ASTIT
LAI "("
BSR ASTIT
LAI "*"
BSR ASTIT
LAI ";"
BSR ASTIT
LAI "G"
BSR ASTIT
LAI NBCAR
STA XITEM1 < POSITIONNEMENT SUR LA 2EME LIGNE...
LAI NSPCOL
SBT 0
ACTD 1
LR B,Y < Y=ADRESSE DE LA MEMOIRE DES COULEURS,
LXI 0 < X=NUMERO DES REGISTRES DANS LA MEMOIRE.
GCOUL1: EQU $
LR Y,A
ACTD 1 < B=CONTENU DU REGISTRE COURANT (X).
SLLD LREG < ET ELIMINATION DES PREMIERS BITS...
<
< CANAL BLEU :
<
LA AXXB < CANAL BLEU,
BSR ASP4 < POUR MISE DANS L'ITEM1.
<
< CANAL VERT :
<
LA AXXV < CANAL VERT,
BSR ASP4 < POUR MISE DANS L'ITEM1.
<
< CANAL ROUGE :
<
LA AXXR < CANAL ROUGE,
BSR ASP4 < POUR MISE DANS L'ITEM1.
<
< REGISTRE SUIVANT :
<
ADRI 1,Y
ADRI 1,X
LR X,A
XWOR%1: VAL CUREG=0
XWOR%1: VAL -XWOR%1
CPI CUREG>XWOR%1+1 < CHANGE-T'ON DE JEU ???
JNE GCOUL2 < NON...
LA XITEM1 < OUI, ON CHANGE DE LIGNE :
SLRD NBITMO
DV ANBCAR
ADRI 1,A
MP ANBCAR
STB XITEM1
GCOUL2: EQU $
XWOR%1: VAL CUREB=0
XWOR%1: VAL -XWOR%1
CPI CUREB>XWOR%1
JLE GCOUL1 < AU SUIVANT...
LA XITEM1
SLRD NBITMO
DV ANBCAR
ADRI 1,A
MP ANBCAR
ADRI -2,B
STB XITEM1 < POSITIONNEMENT AU BOUT DE LE DERNIERE
< LIGNE...
LAI "F"
BSR ASTIT
LAI ")"
BSR ASTIT
STZ CTRANS < REINITIALISATION DE CTRANS...
BR ARET < FINI...
<
<
< P R E P A R A T I O N R E G I S T R E
< E T E N V O I A L ' I T E M 1 :
<
<
SP4: EQU $
JAE SP14 < CANAL ABSENT, VERS LA MISE A JOUR DE 'B'.
ORR X,A < ADRESSE DU REGISTRE,
SLLD LREG < NIVEAU DE GRIS,
BSR ASTHEX < ET MISE EN ITEM1...
SP41: EQU $
RSR
PAGE
<
<
< R E C A L A G E D E S I M A G E S C A M E R A S :
<
<
DECAL: EQU $
XWOR%1: VAL CUREG=0
XWOR%1: VAL -XWOR%1
XWOR%1: VAL CUREG>XWOR%1
IF 1>NCOOL-1-XWOR%1,,XWOR%,
IF ATTENTION : INCOMPATIBILITE 'CUREG' ET 'NCOOL' !!!
XWOR%: VAL 0
LRM A,B,X
WORD 0 < A=ADRESSE RELATIVE EN 'CDAI',
WORD LIGNE < B=ADRESSE RECEPTRICE.
WORD LIMAG/CNMPL*NCOOL
PSR A,B,X
DECAL1: EQU $
PSR A,B,X
LXI CNMPL
RCDA
< LECTURE D'UNE LIGNE MONOCHROME,
XM LIGNE+LIG0 < RECUPERATION DU PREMIER MOT ET SAVE (A),
STA LIGNE+CNMPL < QUE L'ON MET EN QUEUE,
LA LIGNE+LIG0 < RESTAURE L'ADRESSE EN "CDAI",
ADRI 1,B < AFIN DE DECALER CIRCULAIREMENT A GAUCHE,
LXI CNMPL
WCDA
< REECRITURE DE LA LIGNE MONOCHROME DECALEE
< CIRCULAIREMENT A GAUCHE...
PLR A,B,X
ADRI CNMPL,A < PASSAGE A LA LIGNE SUIVANTE,
JDX DECAL1 < SI ELLE EXISTE...
PLR A,B,X
ADRI CNMPL-1,A < AFIN D'ATTEINDRE LA DERNIERE COLONNE...
LXI NCOOL < NOMBRE DE STACKS,
DECAL4: EQU $
PSR X
LXI KDECAL < (X)=NOMBRE DE LIGNES DE DECALAGE...
DECAL5: EQU $
PSR A,B,X
LR A,Y < Y=SAVE L'ADRESSE DE DEPART DE LA TRAME...
LRM X
WORD LIMAG/CNMPL+1 < AFIN DE SE MORDRE LA QUEUE... (+1 POUR
< FAIRE UN DECALAGE CIRCULAIRE)
STZ LIGNE+LIG1 < PAR PROPRETE PURE...
DECAL2: EQU $
PSR X
XM LIGNE+LIG1 < (ET SAVE (A))
STA LIGNE+LIG0 < DECALAGE...
LA LIGNE+LIG1 < ET RESTAURE (A)...
ADRI -CNMPL,A < PASSAGE A UN MOT PLUS HAUT...
CPR Y,A < SORT-ON DU STACK COURANT ???
JGE DECAL3 < NON, (A)>=(Y)...
AD ALIMAG < ENFIN MODULO 'LIMAG'...
DECAL3: EQU $
ADRI 1,B < PASSAGE SUR LIGNE+1,
LXI 1
RCDA
< ACCES AU MOT(A-KDECAL),
ADRI -1,B
LXI 1
WCDA
< QUE L'ON A SAUVEGARDE DANS LIGNE+1,
< ET QUE L'ON ECRASE PAR LIGNE+0...
PLR X
JDX DECAL2 < PASSAGE AU MOT PRECEDENT...
PLR A,B,X
JDX DECAL5 < ET ITERONS 'KDECAL' FOIS 1 LIGNE...
PLR X
AD ALIMAG < PASSAGE AU STACK SUIVANT...
JDX DECAL4 < S'IL EXISTE...
BR ARET < ET C'EST TOUT...
PAGE
<
<
< I N T E R P O L A T I O N :
<
<
GINT: EQU $
<
< ENTREE DE LA TRANSLATION :
<
BSR APTRAN < ENTREE DE LA TRANSLATION...
STA SAVET < TRANSLATION SYSTEMATIQUE.
<
< ENTREE DE LA PERMUTATION :
<
BSR APERMU
<
< ENTREE DU NIVEAU DE DEPART :
<
GINT1: EQU $
LAI MNIV1-ZERO
BSR APRINT
LAD DEMHEX
SVC 0
BSR AHEX
JNE GINT1 < ERREUR...
JAL GINT1 < ERREUR...
CPI LTCU-1
JG GINT1 < ERREUR...
STA NIV1 < NIVEAU DE DEPART.
<
< ENTREE DU NIVEAU D'ARRIVEE :
<
GINT2: EQU $
LAI MNIV2-ZERO
BSR APRINT
LAD DEMHEX
SVC 0
BSR AHEX
JNE GINT2 < ERREUR...
JAL GINT2 < ERREUR...
CPI LTCU-1
JG GINT2 < ERREUR...
CP NIV1
JLE GINT1 < ERREUR, IL FAUT NIV1<NIV2...
STA NIV2 < NIVEAU D'ARRIVEE.
<
< ACCES AUX REGISTRES DE COULEUR :
<
LAI NSPCOL
SBT 0
ACTD 1
LR B,A < (A)=ADRESSE DE LA MEMOIRE DES COULEURS.
LR B,Y < ET SAVE DANS 'Y'...
<
< ACCES AUX COULEURS DE 'NIV2' :
<
AD NIV2 < (A)=ADRESSE DU REGISTRE (NIV2),
ACTD 1
LAI 0
SLLD LREG+LREG
STA BLEU2 < BLEU2,
LAI 0
SLLD LREG
STA VERT2 < VERT2,
LAI 0
SLLD LREG
FLT
FST ROUGE2 < ROUGE2,
<
< ACCES AUX COULEURS DE 'NIV1' :
<
LR Y,A
AD NIV1 < (A)=ADRESSE DU REGISTRE (NIV1),
ACTD 1
LAI 0
SLLD LREG
PSR B < SAVE LE CONTENU DU REGISTRE (NIV1)...
SLLD LREG
STA BLEU1 < BLEU1,
LAI 0
SLLD LREG
STA VERT1 < VERT1,
LAI 0
SLLD LREG
FLT
FST ROUGE1 < ROUGE1,
LA VERT1
FLT
FST VERT1 < VERT1,
LA BLEU1
FLT
FST BLEU1 < BLEU1.
<
< REGENERATION A PRIORI
< DU REGISTRE (NIV1) :
<
LY NIV1 < (Y)=REGISTRE DE DEPART,
PLR B < (B)=SON CONTENU INITIAL,
BSR ASP3 < QUE L'ON RENVOIE AU CAS OU IL Y AURAIT
< PERMUTATION ET/OU TRANSLATION...
<
< NOMBRE D'ITERATIONS, ET 'PAS' :
<
LA NIV2
SB NIV1
LR A,X < (X)=NOMBRE DE PAS,
FLT
FST FPAS
<
< CALCUL DU PAS (ROUGE2,VERT2,BLEU2)
< SUR LES COULEURS (ROUGE1,VERT1,BLEU1) :
<
FLD ROUGE2
FSB ROUGE1
FDV FPAS
FST ROUGE2 < PAS ROUGE,
LA VERT2
FLT
FSB VERT1
FDV FPAS
FST VERT2 < PAS VERT,
LA BLEU2
FLT
FSB BLEU1
FDV FPAS
FST BLEU2 < PAS BLEU.
<
< ITERATION SUR CHAQUE REGISTRE INTERMEDIAIRE :
<
GINT3: EQU $
CPZ MITEM1 < MEMORISE-T'ON DANS L'ITEM1 ???
JLE GINT4 < OUI, ON NE CHANGE PAS LE REGISTRE COU-
< RANT (Y), AFIN DE PERMETTRE DES INTER-
< POLATIONS ENTRE PALETTES (JEUX 0 ET 1),
< ET CECI, REGISTRE PAR REGISTRE (AUTANT
< D'INTERPOLATIONS A FAIRE QU'IL Y A DE
< REGISTRES SIGNIFICATIFS : 7 OU 8).
ADRI 1,Y < NON, ON PASSE DONC AU REGISTRE SUIVANT..
GINT4: EQU $
PSR X < SAVE LE DECOMPTE...
LXI 0 < CLEAR LE CUMUL DES NIVEAUX...
FLD ROUGE1
FAD ROUGE2
FST ROUGE1 < PROGRESSION DU ROUGE,
BSR AROND < ET CUMUL...
FLD VERT1
FAD VERT2
FST VERT1 < PROGRESSION DU VERT,
BSR AROND < ET CUMUL...
FLD BLEU1
FAD BLEU2
FST BLEU1 < PROGRESSION DU BLEU,
BSR AROND < ET CUMUL...
BSR ASP3 < ENVOI DU (B,V,R).
PLR X
JDX GINT3 < AU REGISTRE SUIVANT...
BR ARET < ET RETOUR...
<
<
< A R R O N D I E T C U M U L D E S N I V E A U X :
<
<
< ARGUMENTS :
< (A,B)=NIVEAU,
< (X)=CUMUL COURANT.
<
<
< RESULTATS :
< (X)=(B)=NOUVEAU CUMUL COURANT.
<
<
ROND: EQU $
FAD F05
FIX < ARRONDI (EXCES OU DEFAUT...).
LR X,B
SLRD LREG < CONCATENATION CUMULATIVE,
LR B,X < ET SAVE DANS 'X'...
RSR
PAGE
<
<
< P O I N T D ' E N T R E E :
<
<
PRV: EQU $
LRM C,L,K
WORD IMAG < INITIALISATION DE C,
WORD LOC+'80 < INTIALISATION DE L,
WORD STACK-1 < INITIALISATION DE K.
LAD DEMMEM
SVC 0 < POUR LA VIDEO...
LAD DEMCDA
SVC 0 < "!CDAI"...
STZ CTRANS < AU CAS DES ALT-MODES...
LAI MRVB-ZERO
BSR APRINT < POUR AVOIR 'RVB'...
LAI MOFF-ZERO < ITEM1 OFF A PRIORI...
CPZ MITEM1 < ???
JG PRV1 < OFF...
LAI MON-ZERO < ON...
PRV1: EQU $
BSR APRINT < EDITION...
BSR ARETIC
PAGE
<
<
< I M P L A N T A T I O N :
<
<
IF $-ITEM2,XWOR%,XWOR%,
IF ATTENTION : PROCESSEUR TROP LONG !!!
XWOR%: VAL 0
X12: EQU ZERO+PILE-LTNI-LTNI
X10: VAL X12-$
ZEROV: EQU ZERO+X10 < ERREUR D'ASSEMBLAGE VOLONTAIRE
< SI MAUVAISE IMPLANTATION...
DZS X10+1 < PAR PROPRETE !!!!
EOT #SIP GEN PROCESSEUR#
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.