NMPROC: VAL "TA" < NOM DU PROCESSEUR.
ZDC: VAL 0 < ASSEMBLAGE SGN : X469,,X469
ZDC: VAL 1 < ASSEMBLAGE ZDC : ,,X469,
IDP "INTERPOLATEUR D'IMAGES - RELEASE 22/02/1980"
IDP "JOHN F. COLONNA"
EOT #SIP DEFINITION CMS5#
EOT #SIP DEF PROCESSEUR#
PROG
WORD IMAGE < ENTRY POINT DU PROCESSEUR.
WORD 0
PIMAGE: EQU $
LRP L < A NOTER : P='12 !!!
BR -2,L < ENTRE DANS LE PROCESSEUR 'TN'.
PAGE
EOT #SIP DEFINITION ITEM#
ITEM1: EQU ZERO+PILE-LTNI < ADRESSE ITEM1
ITEM2: EQU ZERO+PILE-LTNI-LTNI < ADRESSE ITEM2
PAGE
EOT #SIP IMAGE 256#
NOM: EQU ZERO+PILE+5-LNOM-2 < NOM DE L'IMAGE VIDEO
IMAG: EQU NOM+LNOM+2 < IMAGE VIDEO PROPREMENT DITE
IF ORDI-"S",XWOR%,,XWOR%
ENTIM: EQU IMAG-LENTIM < EN-TETE IMAGE (TRACE VIDEO SOLAR).
XWOR%: VAL 0
<
< VALIDATION DU FORMAT DE L'IMAGE (CARREE) :
<
X20: VAL 1024/DY < NBRE DE LIGNES/IMAGE.
X21: VAL CNMPL*16 < NBRE DE POINTS/LIGNE.
IF X20-X21,,X100,
IF ATTENTION : L'IMAGE N'EST PAS CARREE !!!
X100: VAL 0
<
< D E F I N I T I O N D E S C O U P L E S :
<
DSEC XY
XD: WORD 0 < X POINT DE DEPART.
YD: WORD 0 < Y POINT DE DEPART.
XA: WORD 0 < X POINT D'ARRIVEE.
YA: WORD 0 < Y POINT D'ARRIVEE.
X100: VAL 0
PAGE
<
<
< L O C A L :
<
<
<
< BUFFERS DE GRANDE TAILLE :
<
TABLE
BUF: DZS 128 < BUFFER SGF.
SECTOR: EQU BUF
MND: BYTE 16;'6D
ASCI "#POINTS DEPART= "
MNA: BYTE 17;'6D
ASCI "#POINTS ARRIVEE="
MTRAJ: BYTE 8;'6D
ASCI "TRAJET? "
MAR: BYTE 9;'6D
ASCI "ARRIVEE>"
MDE: BYTE 8;'6D
ASCI "DEPART> "
MCON: BYTE 13;'6D
ASCI "NBRE DE PAS="
MPAS: BYTE 11;'6D
ASCI "PAS A PAS?"
MCONV: BYTE 18;'6D
ASCI "CONVERSION VIDEO? "
MSCRA: BYTE 16;'6D
ASCI "DEPART SCRATCH? "
MRES: BYTE 19;'6D
ASCI "ARRIVEE RESIDENTE?"
MNT: BYTE 27;'6D
ASCI "NBRE COPIES/TEMPORISATION="
MPAUS: BYTE 7;'6D
BYTE '07;'07;'07;'07;'07;'07
MTR: BYTE 16;'6D
ASCI "TRANSFORMATION? "
MERA: BYTE 12;'6D
ASCI "EFFACEMENT? "
X100: VAL 0
LOCAL
LOC: EQU $
<
< RELAIS A METTRE IMPERATIVEMENT EN TETE DU LOCAL :
< (AFIN D'ETRE AISEMENT APPELABLE PAR LES ROUTINES
< DE TRANSFORMATIONS CONTENUES DANS L'ITEM2)
<
< RESET '80 (00)
ARESET: WORD RESET < MISE D'UN POINT A 0.
< SET '81 (01)
ASET: WORD SET < MISE D'UN POINT A 1.
< INVER '82 (10)
AINVER: WORD INVER < INVERSION D'UN POINT.
< TEST '83 (11)
ATEST: WORD TEST < TEST D'UN POINT.
<
< MESSAGES ET BUFFERS :
<
REP: WORD 0
MINT: BYTE 2;'6D
ASCI "> "
BDISP: BYTE 4;0
ASCI "1234"
MERR: BYTE 3;'6D
ASCI "??"
MVID: BYTE 7;'6D
ASCI "VIDEO?"
MDEL: BYTE 8;'6D
ASCI "DELETE? "
MCOP: BYTE 6;'6D
ASCI "COPY? "
MSAVE: BYTE 6;'6D
ASCI "SAVE? "
MNOM: BYTE 5;'6D
ASCI "NOM>"
MAN: ASCI "!ASSIGN A=N,"
FA: ASCI "FA"
IDAN: BYTE 0;'04 < IDESC DANS L'OCTET0.
MBN: ASCI "!ASSIGN B=N,"
FB: ASCI "FB"
IDBN: BYTE 0;'04 < IDESC DANS L'OCTET0.
MAO: ASCI "!ASSIGN A=O,FA"
IDAO: BYTE 0;'04 < IDESC DANS L'OCTET0.
MBO: ASCI "!ASSIGN B=O,FB"
IDBO: BYTE 0;'04 < IDESC DANS L'OCTET0.
MAC: ASCI "!ASSIGN A="
BYTE "R";'04
MBC: ASCI "!ASSIGN B="
BYTE "R";'04
<
< INTERFACE SEGMENT GRAPHIQUE :
<
Y: VAL 0 < COORDONNEE Y.
X: VAL 1 < COORDONNEE X.
IF ZDC,X469,,X469
NSEG: ASCI ":G"
BYTE "S";'04
X469: VAL 0
IF ZDC,,X469,
NSEG: WORD 0 < SEGMENT INVALIDE INITIALEMENT.
X469: VAL 0
SEG: DZS 4 < SEGMENT GRAPHIQUE.
LSEG: VAL $-NSEG*2
SEGORG: EQU SEG < POINT ORIGINE.
SEGEXT: EQU SEG+2 < POINT EXTREMITE.
TRAJ: DZS 4 < POUR EDITER LES TRAJECTOIRES
< DES POINTS EN GRAPHIQUE.
<
< DEMANDES A CMS4 :
<
DEMMEM: WORD '0004 < DEMANDE D'ALOCATION 8K MOTS.
RELMEM: WORD '0004 < DEMANDE DE RETOUR A 4K MOTS.
WORD '4000 < ALLOCATION 8K MOTS.
WORD '2000
DEMCCI: WORD '0001 < APPEL DU CCI.
DEMSGN: WORD '0402 < DEMANDE D'ACCES AU SGN OVERLAY.
WORD BRANCH-ZERO*2 < @OCTET DE LA BRANCHE.
WORD ZERO-BRANCH+PILE-LTNI-LTNI*2
WORD -1
DEMOUT: WORD '0202 < SORTIE D'UN MESSAGE.
WORD MINT-ZERO*2
WORD 2
DEMIN: WORD '0101 < ENTREE SUR LE TERMINAL.
WORD REP-ZERO*2
WORD 1
DEMCON: WORD '0101 < ENTREE DU NBRE DE PAS.
WORD REP-ZERO*2
WORD 2 < 2 CHIFFRES HEXAS.
RDK: WORD '0C00 < LECTURE SECTEUR SCRATCH.
WORD SECTOR-ZERO*2
WORD 256
WORD 0 < NUMERO SECTEUR SCRATCH.
SGFW: WORD '0B02 < ECRITURE SGF UN ENREGISTREMENT.
WORD BUF-ZERO*2
WORD 256
WORD 0
SGFR: WORD '0B09 < LECTURE DELETE SGF SUR '0B.
WORD BUF-ZERO*2
WORD 256
WORD 0
SGFO1: WORD '0B04 < OUVERTURE CLEF '1.0' NEW (4) ,
< (5 POUR OLD).
WORD 1
WORD 0
SGFC: WORD '0B07 < FERMETURE CLEF '1.0' SAVE (7) ,
< (6 SI RELEASE).
DEMDA: WORD '0302 < DELETE NOM DU FICHIER FA.
WORD FA-ZERO*2
WORD 4
WORD -1
DEMDB: WORD '0302 < DELETE LE NOM DU FICHIER FB.
WORD FB-ZERO*2
WORD 4
WORD -1
CCII: WORD '0002 < ACCES CCI INTERPRETATIF.
WORD 0 < @OCTET DE LA CARTE CONTROLE.
WORD 80 < LONGUEUR MAX.
DEMNOM: WORD '0101 < ENTREE D'UN NOM D'IMAGE.
WORD NOM-ZERO*2
WORD LNOM*2
SGN: WORD '0502 < LECTURE PUIS ECRITURE D'UNE
< IMAGE VIDEO.
WORD NOM-ZERO*2
WORD LIMAG+LNOM+2*2
WORD 2*LNOM
SLEEP: WORD '0005 < DEMANDE DE TEMPORISATION.
WORD 0
WORD 15 < 15 SECONDES DE TEMPO.
ERASE: WORD '0205 < EFFACEMENT DE L'ECRAN.
CG: WORD '0204 < CLOSE GRAPHIQUE.
OG: WORD '0203 < OPEN GRAPHIQUE.
WG: WORD '020A < ECRITURE D'1N SEGMENT.
WORD SEG-ZERO*2
WORD 8
COPY: WORD '0207 < DEMANDE DE HARD-COPY.
BYTE '1B;'17;'8D;'1D
POINTI: WORD '0207 < MISE EN MODE POINTILLE SUR 4014.
BYTE '1B;'61;'04;0
CONTI: WORD '0207 < MISE EN MODE CONTINU SI 4014.
BYTE '1B;'60;'04;0
DTRAJ: WORD '020A < AFFICHAGE DE LA TRAJECTOIRE.
WORD TRAJ-ZERO*2
WORD 8
IF ZDC,X469,,X469
DEMSEG: WORD '0502 < GET SEGMENT GRAPHIQUE.
WORD NSEG-ZERO*2
WORD LSEG
WORD -1
DELSEG: WORD '0302 < DELETE SEGMENT GRAPHIQUE.
WORD NSEG-ZERO*2
WORD LSEG
WORD -1
X469: VAL 0
IF ZDC,,X469,
DEMSEG: WORD '0008 < LECTURE DE LA ZDC DU SYSTEME.
WORD NSEG-ZERO*2
WORD LSEG
WORD 'FFC0 < VALIDATION DES OCTETS.
DELSEG: WORD '000A < ECRITURE EN ZDC DU SYSTEME.
WORD NSEG-ZERO*2
WORD SEG-NSEG*2
WORD 'C000 < VALIDATION DES OCTETS.
X469: VAL 0
IF ORDI-"S",XWOR%,,XWOR%
STABIL: WORD '8A01 < DEMANDE DE STABILISATION VIDEO.
WORD IMAG-ZERO*2
WORD LIMAG*2
WORD TVPV < SUR LE PROCESSEUR VERT.
XWOR%: VAL 0
<
< CONSTANTES :
<
IF ORDI-"T",XWOR%,,XWOR%
ACNSYS: ASCI ":SYS"
XWOR%: VAL 0
NGE: WORD "GE" < NOM DU PROCESSEUR 'GE'.
KIN: WORD -1 < COMPTAGE DES ENTRIES.
VIDEO: WORD 0 < 0=VIDEO ; 1=GRAPHIQUE.
< -1=GRAPHIQUE AVEC CONVERSION
< VIDEO.
FOIS: WORD -1 < COMPTE LE NBRE D'EXPLORATION
< DE L'IMAGE DE DEPART MOINS 1.
EFFAC: WORD 1 < 0=ERASE SYSTEMATIQUE ECRAN,
< 1=NON (IMPLICITE EN VIDEO).
ITRAJ: WORD 0 < =0 : TRACE DES TRAJECTOIRES DES
< POINTS EN MODE GRAPHIQUE.
ICOP: WORD 1 < 0=HARD-COPY, 1=NON.
NCOPY: WORD 1 < NBRE DE COPIES IMPLICITE.
DELTA: WORD 0 < INDEX ZONE DE RANGEMENT D'UN
< SEGMENT GRAPHIQUE A TRACER.
IBUF: WORD 0 < INDEX BUFFER SGF.
NAR: WORD 0 < NBRE DE POINTS IMAGE ARRIVEE.
NDE: WORD 0 < NBRE DE POINTS IMAGE DEPART.
SNDE: WORD 0 < NBRE DE POINTS REEL DE DEPART.
< (AU CAS OU ELLE SERAIT REEXPLOREE)
ND: WORD 0 < VALEUR TEMPORAIRE DE NDE POUR
< RATTRAPAGE EVENTUEL DE NAR.
NC: WORD 0 < DECOMPTEUR DES POINTS LORS D'UNE
< INTERPOLATION.
NMOTS: WORD LTNI < NBRE DE MOTS A RAZER DANS ITEM1.
IRAZ: WORD 1 < 1=INUTILE DE RAZER ITEM1 ,
< 0 : IL FAUT RAZER L'ITEM1 CAR IL
< A ETE ALTERE...
IMAG2: WORD IMAG-ZERO*2 < @OCTET IMAGE VIDEO.
ALIMAG: WORD LIMAG < LONGUEUR IMAGE VIDEO.
NMPL: WORD CNMPL < NBRE DE MOTS DE 16 BITS/LIGNE.
NLIG: WORD 1024/RDY-1 < NBRE DE LIGNES-1 D'UNE IMAGE.
DICOX: WORD 0 < X DU POINT VIDEO COURANT M.
DICOY: WORD 0 < Y DU POINT VIDEO COURANT M.
DICOX1: WORD 0 < X DE L'ORIGINE VIDEO COURANTE M1.
DICOY1: WORD 0 < Y DE L'ORIGINE VIDEO COURANTE M1.
DICOX2: WORD 0 < X EXTREMITE VIDEO COURANTE M2.
DICOY2: WORD 0 < Y EXTREMITE VIDEO COURANTE M2.
NVP1: WORD '0A < POUR LA GESTION DES NVP DU
< SGF EN BASCULE.
PAS: WORD 0 < 0 : INTERPOLATION EN PAS A PAS,
< 1 SINON (MODE CONTINU.
CONS: WORD 16 < PAS D'INTERPOLATION.
< (AUSSI DECOMPTEUR DES TOURS
< A EFFECTUER).
<
< RELAIS DIVERS :
<
IF ORDI-"T",XWOR%,,XWOR%
ASP3: WORD SP3 < STABILISATION IMAGE VIDEO.
XWOR%: VAL 0
AVIS: WORD VIS < STABILISATION IMAGE VIDEO.
AENTER: WORD ENTER < ENVOI MESSAGE, PUIS LECTURE
< REPONSE O/N, ET ITERATION...
AHEX: WORD HEX < CONVERSION HEXA-->BINAIRE.
ADISP: WORD DISP < CONVERSION BINAIRE-->ASCI.
APRINT: WORD PRINT < EMISSION D'UN MESSAGE.
AGOSGN: WORD GOSGN < ACCES AU SGN POUR LECTURE/
< ECRITURE D'UNE IMAGE VIDEO.
ACCI: WORD CCI < ACCES AU CCI INTERPRETATIF.
ADF: WORD DF < TENTATIVE DELETE FICHIERS FA & FB
AWR: WORD WR < ECRITURE/LECTURE SGF.
ASTBUF: WORD STBUF < RANGEMENT DOUBLET DANS LE
< BUFFER SGF ET ECRITURE
< EVENTUELLE.
AMAJL: WORD MAJL < INSERTION DE L'IMAGE DEPART DANS
< LA LISTE D'ARRIVEE.
AGET: WORD GET < RECUPERATION SEGMENT GRAPHIQUE.
AITEM2: WORD ITEM2+LTN < ENTRY POINT DU MODULE EVENTUEL
< DE TRANSFORMATION.
ATRANS: WORD TRANS < ROUTINE INTERFACE DE TRANSFO.
APAUS: WORD PAUS < ROUTINE DE PAUSE.
AOVL: WORD OVL < CHARGEMENT DES OVERLAYS.
AGOGE: WORD GOGE < RETOUR A 'GE'.
AE30: WORD E30 < BOUCLE D'INTERPOLATION.
ADRAW: WORD DRAW < TRACE D'UN SEGMENT GRAPHIQUE.
AMCOPY: WORD MCOPY < HARD-COPY + TEMPORISATION.
IF ORDI-"T",XWOR%,,XWOR%
ADICO: WORD DICO < PARCOURS DICHOTOMIQUE D'UN
< SEGMENT VIDEO.
XWOR%: VAL 0
AREP: WORD REP,X < RELAI VERS LE BUFFER REP.
ATYP: WORD ITEM2+IINDIC < ACCES AU TYPE DE L'ITEM2.
ABDISP: WORD BDISP,X < RELAI BUFFER DE CONVERSION HEXA.
ABUF: WORD BUF+1,X < REALI DU BUFFER SGF.
AI1: WORD ITEM1-1,X < RELAI DE RAZ DE L'ITEM1.
AIMAG: WORD IMAG-1,X < RELAI IMAGE VIDEO POUR JDX.
AEOT: WORD NOM+LNOM
ALONG: WORD NOM+LNOM+1 < POUR L'INDICATEUR TYPE 'VIDEO'.
AMND: WORD MND
AMNA: WORD MNA
AMSCRA: WORD MSCRA
AMAR: WORD MAR
AMDE: WORD MDE
AMPAS: WORD MPAS
AMCON: WORD MCON
AMTRAJ: WORD MTRAJ
AMRES: WORD MRES
AMCONV: WORD MCONV
AMNT: WORD MNT
AMTR: WORD MTR
AMPAUS: WORD MPAUS
AMERA: WORD MERA
<
< PILES DE TRAVAIL :
<
APILE: WORD PILE-1 < PILE DE SMC (RETOUR A 'GE').
STACK: DZS 10 < PILE TEMPORAIRE DE TRAVAIL.
DZS 20 < PILE PLUS GRANDE POUR 'TA'.
PROG
PAGE
IF ORDI-"T",XWOR%,,XWOR%
TIMAG: WORD IMAG < @RELATIVE DE L'IMAGE VIDEO.
EOT #SIP SP3#
XWOR%: VAL 0
VIS: EQU $ < ENTRY ESCLAVE.
CPZ VIDEO < QUEL LE MODE DE SORTIE ???
JG VIS1 < GRAPHIQUE PUR : RIEN A FAIRE ...
IF ORDI-"T",XWOR%,,XWOR%
LA ASP3 < ACCES A L'ADRESSE DE LA
< ROUTINE MAITRE.
JAE VIS1 < ON N'EST PAS SOUS :SYS.
WORD '1EC5 < OK , ON EST SOUS :SYS.
XWOR%: VAL 0
IF ORDI-"S",XWOR%,,XWOR%
PSR X
LAD STABIL < STABILISATION IMAGE VIDEO.
SVC 0
PLR X
XWOR%: VAL 0
VIS1: EQU $
RSR
PAGE
<
<
< C O N V E R S I O N H E X A ---> B I N A I R E :
<
<
< ARGUMENT :
< Y=NBRE DE CARACTERES A DECODER ,
< REP=CHAINE DE CARACTERES.
<
<
< RESULTATS :
< B=0 : OK ET (A)=VALEUR BINAIRE DECODEE ,
< B=1#0 : LA CHAINE D'ENTREE EST ERRONNEE.
< LES INDICATEURS SONT POSITIONNES SUR (B).
<
<
HEX: EQU $
LXI 0 < INDEX DU BUFFER DE REPONSE.
LBI 0 < INITIALISATION DE B.
E55: EQU $
LBY &AREP < A=CARACTERE COURANT DU BUFFER.
CPI '0D < FIN DE MESSAGE ???
JE HEX1 < OUI , OK.
CPI '04 < FIN DE MESSAGE ???
JE HEX1 < OUI , OK.
ADRI -'30,A
JAL E472 < ERREUR CARACTERE NON RECONNU.
CPI 9 < EST-CE UN CHIFFRE ???
JLE E51 < OUI , C'EST UN CHIFFRE.
ADRI -'41+'39+1,A < NON.
CPI 'A < VALIDATION.
JL E472 < ERREUR : CARACTERE NON RECONNU.
CPI 'F < VALIDATION.
JG E472 < ERREUR : CARACTERE NON RECONNU.
E51: EQU $
SCRS 4 < MISE DES 4 BITS EN TETE DE A.
SCLD 4 < ET CONCATENATION A B.
ADRI 1,X < PROGRESSION DE L'INDEX.
CPR X,Y < EST-CE FINI ???
JNE E55 < NON , ON CONTINUE.
HEX1: EQU $
LR B,A < A=VALEUR BINAIRE DE (REP).
LBI 0 < B=0 : RETOUR OK.
E473: EQU $
CPZR B < POSITIONNEMENT DES INDICATEURS.
RSR
<
< RETOURS EN ERREUR :
<
E472: EQU $
LBI 1 < B#0.
JMP E473 < PAR ICI LA SORTIE ...
PAGE
<
<
< C O N V E R S I O N B I N A I R E ----> A S C I H E X A :
<
<
< ARGUMENT :
< B=VALEUR A CONVERTIR DANS BDISP.
<
<
DISP: EQU $
LXI 1 < INDEX DE RANGEMENT DANS BISP.
LYI 1+4 < BORNE SUPERIEURE DE (X).
DISP1: EQU $
LAI 0 < CLEAR A.
SLLD 4 < DECONCATENATION D'UN CHIFFRE.
CPI 9 < EST-CE UN CHIFFRE ???
JLE DISP2 < OUI, CHIFFRE DECIMAL.
ADRI '41-'39-1,A < CAS DES LETTRES A,B,C,D,E,F.
DISP2: EQU $
ADRI '30,A < CONVERSION ASCI.
STBY &ABDISP < ET MISE DANS LE BUFFER BDISP.
ADRI 1,X < AU SUIVANT.
CPR X,Y < EST-CE FINI ???
JNE DISP1 < ET NON ....
RSR < ET OUI ...
PAGE
<
<
< E M I S S I O N D ' U N M E S S A G E :
<
<
< ARGUMENT :
< A=@MESSAGE EN MOT.
<
<
PRINT: EQU $
PSR C,X
LR A,C < C=@MOT DU MESSAGE.
ADR A,A < CONVERSION OCTET.
ADRI 1,A < ADRESSE OCTET DU MESSAGE.
STA DEMOUT+1 < MAJ AMDEM.
LBY 0,C < RECUPERATION LONGUER MESSAGE.
STA DEMOUT+2 < MAJ CODEM.
LAD DEMOUT
SVC 0 < EMISSION DU MESSAGE.
PLR C,X
RSR
PAGE
<
<
< H A R D - C O P Y E T T E M P O R I S A T I O N :
<
<
MCOPY: EQU $
CPZ ICOP < FAUT-IL HARD-COPIER ???
JNE MCOPY2 < NON.
LX NCOPY < OUI , (X)=NBRE DE COPIES.
MCOPY1: EQU $
PSR X < SAVE LE DECOMPTE DES COPIES.
LAD COPY
SVC 0 < HARD-COPY.
LAD SLEEP
SVC 0 < TEMPORISATION.
PLR X < RESTAURE LE DECOMPTE DES COPIES.
JDX MCOPY1 < A LA SUIVANTE.
MCOPY2: EQU $
RSR
PAGE
<
<
< P A U S E :
<
<
< FONCTION :
< BLOQUER LE PROGRAMME JUSQU'A LA
< RECEPTION D'UN 'N'.
<
<
PAUS: EQU $
LAD CG
SVC 0 < REMISE EVENTUELLE EN ALPHA.
PAUS1: EQU $
LA AMPAUS
BSR AENTER < ENVOI MESSAGE ET LECTURE DE
< LA REPONSE.
JE PAUS1 < ON BOUCLE SI OUI 'O'.
RSR < SINON 'N' ON ARRETE...
PAGE
<
<
< L E C T U R E / E C R I T U R E I M A G E :
<
<
< ARGUMENT :
< A=@MESSAGE A EMETTRE.
<
<
GOSGN2: EQU $
LR Y,A < RESTAURE A=@MESSAGE.
GOSGN: EQU $
STZ IRAZ < IRAZ=0 : IL FAUDRA RAZER ITEM1.
LR A,Y < SAVE Y=@MESSAGE.
BSR APRINT < EMISSION DU MESSAGE ARGUMENT.
LAD DEMNOM
SVC 0 < ENTREE DU NOM DEMANDE.
LAI '04
STBY &AEOT < INSERTION D'UN EOT A PRIORI.
LAD SGN
SVC 0 < LECTURE/ECRITURE DE L'IMAGE
< DEMANDEE.
JNE GOSGN2 < ERREUR SGN.
LBY SGN < ACCES AU NVP D'ACCES SGN.
CPI '05 < EST-CE UN LOAD ???
JNE GOSGN1 < NON.
LA &ALONG < OUI , ACCES AU TYPE.
JAGE GOSGN2 < ERREUR : CE N'EST PAS UNE
< IMAGE VIDEO.
CPI -3 < SUITE DE LA VALIDATION.
JL GOSGN2 < CE N'EST PAS UNE IMAGE VIDEO ...
GOSGN1: EQU $
LR Y,A < RESTAURE A=@MESSAGE.
RSR
PAGE
<
<
< A C C E S A U C C I I N T E R P R E T A T I F :
<
<
< ARGUMENT :
< A=@MOT DE LA CARTE CONTROLE.
<
<
CCI: EQU $
SLLS 1 < CONVERSION EN UNE ADRESSE OCTET.
STA CCII+1 < MAJ DE L'AMDEM.
LAD CCII
SVC 0 < ENVOI DE LA CARTE CONTROLE.
RSR
<
<
< T E N T A T I V E D E D E L E T E
< D E S F I C H I E R S F A & F B :
<
<
DF: EQU $
LAD MAO
BSR ACCI < !ASSIGN A=O,FA.
LAD MAC
BSR ACCI < !ASSIGN A=R.
LAD DEMDA
SVC 0 < DESTRUCTION DU NOM FA.
LAD MBO
BSR ACCI < !ASSIGN B=O,FB.
LAD MBC
BSR ACCI < !ASSIGN B=R.
LAD DEMDB
SVC 0 < DESTRUCTION DU NOM FB.
RSR
PAGE
<
<
< I N T E R F A C E D E T R A N S F O R M A T I O N :
<
<
< FONCTION :
< IL EST POSSIBLE DE PROGRAMMER A L'AIDE
< DE 'GC' UN MODULE DE TRANSFORMATION
< EN ASSEMBLEUR (ITEM1) ; LE BINAIRE
< RESULTANT EST DANS L'ITEM2 : L'ADRESSE
< DE SON POINT D'ENTREE EST DANS SON
< MOT0.
<
<
< ARGUMENT :
< B=1 : IMAGE D'ARRIVEE,
< =2 : IMAGE DE DEPART,
< B=-1 : AVANT IMAGE D'ARRIVEE SI VIDEO,
< =-2 : AVANT IMAGE DE DEPART SI VIDEO,
< X,Y=CORRDONNEES D'UN POINT BLANC SI VIDEO,
< A=@DEMSEG SI VIDEO ET SI B<0.
< A=@SEGMENT COURANT SI GRAPHIQUE.
<
<
TRANS: EQU $
CPZ AITEM2 < Y-A-T'IL UNE TRANSFORMATION
< A OPERER ???
JE NTRANS < NON.
PSR C,L < PRUDENCE ...!!!
BSR &AITEM2 < ET OUI, A LA GRACE DE DIEU !!!
PLR C,L
NTRANS: EQU $
RSR
PAGE
<
<
< R E C U P E R A T I O N D ' U N S E G M E N T
< G R A P H I Q U E :
<
<
< FONCTION :
< MET DANS 'SEG' LES COORDONEES D'1N
< SEGMENT GRAPHIQUE, ET DE PLUS INDIQUE
< PAR (A)=0 , SI LE SEGMENT DONNE EST
< EN FAIT REDUIT A UN POINT DOUBLE A
< L'ORIGINE (FIN DE TRACE).
<
<
< ARGUMENT :
< B=1 : IMAGE D'ARRIVEE,
< =2 : IMAGE DE DEPART.
<
<
GET: EQU $
LAD DEMSEG
SVC 0 < ACCES AU SEGMENT COURANT.
IF ZDC,X469,,X469
JNE GET < IL N'EXISTE PAS , ON ATTEND.
X469: VAL 0
IF ZDC,,X469,
CPZ NSEG < TEST DE VALIDATION DU SEGMENT.
JE GET < INVALIDE : ON REBOUCLE LE TEST.
STZ NSEG < OK, ON INDIQUE QU'ON L'A PRIS
< EN COMPTE.
X469: VAL 0
LAD DELSEG
SVC 0 < LORSQU'ON L' , ON LE DELETE ...
LA SEGORG+X
OR SEGORG+Y
OR SEGEXT+X
OR SEGEXT+Y < (A)=0 SI ORG=EXT=O.
PSR A < SAVE LE RESULTAT DU TEST DE
< FIN DE DESSIN ('OAB').
LAD SEG < A=@SEGMENT COURANT.
BSR ATRANS < TRANSFORMATION EVENTUELLE.
PLR A < RESTAURE (A)=TEST DE FIN DE DESSIN
RSR
PAGE
<
<
< T R A C E D ' U N S E G M E N T :
<
<
DRAW: EQU $
LAD OG < LORSQU'ON VIENT DE TRAITER
SVC 0 < UNE EXTREMITE, ON TRACE LE
LAD WG < SEGMENT CORRESPONDANT.
SVC 0
RSR
PAGE
IF ORDI-"T",XWOR%,,XWOR%
<
<
< T R A C E D I C H O T O M I Q U E D ' U N S E G M E N T :
<
<
DICO: EQU $
LA DICOX1 < A=X1.
AD DICOX2 < A=X1+X2.
SLRS 1 < A=(X1+X2)/2.
STA DICOX < X DU MILIEU DE M1M2.
LA DICOY1 < A=Y1.
AD DICOY2 < A=Y1+Y2.
SLRS 1 < A=(Y1+Y2)/2.
STA DICOY < Y DU MILIEU DE M1M2.
<
< POSITION DE M PAR RAPPORT A M1 :
<
SB DICOY1 < A=Y-Y1.
JANE DICO31 < M#M1.
LA DICOX < A=X.
SB DICOX1 < A=X-X1.
JAE DICO32 < M=M1.
<
< POSITION DE M PAR RAPPORT A M2 :
<
DICO31: EQU $
LA DICOY < A=Y.
SB DICOY2 < A=Y-Y2.
JANE DICO30 < M#M2 ET M#M1.
LA DICOX < A=X.
SB DICOX2 < A=X-X2.
JANE DICO30 < M#M2 ET M#M1.
<
< CAS OU M=M1 OU M=M2 :
<
DICO32: EQU $
LX DICOX
LY DICOY
BSR ASET < AFFICHAGE DU POINT M=(M1+M2)/2.
RSR < ARRET PROVISOIRE DE LA DICHOTOMIE
< DESCENDANTE.
<
< CAS OU M#M1 ET M#M2 :
<
DICO30: EQU $
LA DICOX2 < A=X2.
LB DICOY2 < B=Y2.
PSR A,B < SAVE LE POINT M2 COURANT.
LA DICOX < A=X.
STA DICOX2 < X2<--X.
LA DICOY < A=Y.
STA DICOY2 < Y2<--Y.
BSR ADICO < DICHOTOMIE SUR LE SEGMENT M1M.
LX DICOX2 < X=X2.
LY DICOY2 < Y=Y2.
BSR ASET < AFFICHAGE DU POINT M2
STX DICOX1 < X1<--X2.
STY DICOY1 < Y1<--Y2.
PLR A,B < RESTAURATION DU POINT M2 APRES
< LE CHANGEMENT DU POINT M1.
STA DICOX2 < RESTAURE X2.
STB DICOY2 < RESTUARE Y2.
JMP DICO < VERS LA POURSUITE DE LA DICHOTOMIE.
XWOR%: VAL 0
PAGE
<
<
< M I S E D ' U N P O I N T A 1 :
<
<
< ARGUMENTS :
< X ET Y CONTIENNENT L'X ET L'Y DU POINT.
< C=@IMAG.
<
<
SET: EQU $
PSR B,X,C
LR Y,A
MP NMPL < CONVERSION DE L'Y DU POINT EN
< NUMERO DE MOT.
ADR B,C
LR X,A
SLRS 4
ADR A,C < C=@MOT CONTENANT LE POINT (X,Y).
LAI 'F
ANDR A,X < CALCUL DE X MODULO 16.
< X=NUMERO DU BIT DANS LE MOT.
LA 0,C < A=MOT CONTENANT LE POINT (X,Y).
SBT 0,X < MISE DU POINT A 1.
STA 0,C < MISE A JOUR DE CE MOT.
PLR B,X,C
RSR
<
<
< E F F A C E M E N T D ' U N P O I N T :
<
<
< ARGUMENTS : VOIR 'SET'.
<
<
RESET: EQU $
PSR B,X,C
LR Y,A
MP NMPL
ADR B,C
LR X,A
SLRS 4
ADR A,C < C=@MOT CONTENANT LE POINT (X,Y).
LAI 'F
ANDR A,X < X=NUMERO DU BIT REPRESENTANT
< LE POINT DANS LE MOT ((C)).
LA 0,C
RBT 0,X < EFFACEMENT DU POINT (X,Y).
STA 0,C < MISE A JOUR DE L'IMAGE.
PLR B,X,C
RSR
<
<
< I N V E R S I O N V I D E O D ' U N P O I N T :
<
<
< ARGUMENTS : VOIR 'SET'.
<
<
INVER: EQU $
PSR B,X,C
LR Y,A
MP NMPL
ADR B,C
LR X,A
SLRS 4
ADR A,C
LAI 'F
ANDR A,X
LA 0,C
IBT 0,X < INVERSION VIDEO DU POINT (X,Y).
STA 0,C
PLR B,X,C
RSR
<
<
< T E S T D ' U N P O I N T :
<
<
< ARGUMENTS : VOIR 'SET'.
<
<
< RESULTAT :
< CARRY POSITIONNE PAR LE POINT (0/1).
<
<
TEST: EQU $
PSR B,X,C
LR Y,A
MP NMPL
ADR B,C
LR X,A
SLRS 4
ADR A,C
LAI 'F
ANDR A,X
LA 0,C
TBT 0,X < TEST DU POINT (X,Y).
PLR B,X,C
RSR
PAGE
<
<
< I N S E R T I O N D ' U N P O I N T D E D E P A R T
< D A N S L A L I S T E D ' A R R I V E E :
<
<
< ARGUMENT :
< X ET Y CONTIENNENT LE POINT DE DEPART A INSERER.
<
<
MAJL: EQU $
LR X,B < B=X DU POINT BLANC.
LX IBUF < X=INDEX COURANT BUFFER SGF.
STB &ABUF < SAVE LA COORDONNEE X DU POINT.
ADRI 1,X < PROGRESSION INDEX BUFFER.
STY &ABUF < SAVE LA COORDONNEE Y DU POINT.
ADRI 3,X < PROGRESSION INDEX BUFFER.
IC NDE < COMPTAGE DES POINTS BLANCS.
LA NDE
CP NAR
JLE E17 < L'IMAGE DE DEPART A POUR LE
< MOMENT, MOINS DE POINTS QUE
< L'IMAGE D'ARRIVEE.
<
< CAS OU L'IMAGE DE DEPART A PLUS DE POINTS QUE L'IMAGE D'ARRIVEE :
<
ADRI -2,X < RETOUR SUR LE COUPLE (X,Y)
< DE L'IMAGE D'ARRIVEE.
STZ &ABUF < ON LE PLACE A L'ORIGINE.
ADRI 1,X < PROGRESSION INDEX BUFFER.
STZ &ABUF < MISE DE L'Y A L'ORIGINE.
ADRI 1,X < PROGRESSION INDEX BUFFER.
E17: EQU $
BSR AWR < LECTURE/ECRITURE SGF.
LR B,X < PUIS RESTAURE COORDONNEE X.
RSR
PAGE
<
<
< R A N G E M E N T D A N S L E B U F F E R S G F :
<
<
< FONCTION :
< CETTE ROUTINE RANGE LE COUPLE (X,Y) DANS
< LE BUFFER SGF SUIVANT L'INDEX 'IBUF' ;
< LORSQUE LE BUFFER EST PLEIN, UNE ECRITURE
< DE L'ENREGISTREMENT SGF EST FAITE.
<
<
STBUF: EQU $
PSR A,X < SAVE.
LR X,A < MISE DE LA COORDONEE X DANS A.
LX IBUF < X=INDEX COURANT DE BUFSGF.
STA &ABUF < RANGEMENT DE LA COORDONNEE X.
ADRI 1,X
STY &ABUF < RANGEMENT DE LA COORDONNEE Y.
ADRI 1,X
LR X,A < ACCES A L'INDEX COURANT.
CPI 4*31 < EST-ON AU BOUT DU BUFFER ???
JL STBUF1 < NON , RIEN A FAIRE ....
<
< ECRITURE DE L'ENREGISTREMENT COURANT :
<
LAD SGFW
SVC 0
LAI 0 < AFIN DE REINITIALISER L'INDEX
< COURANT DU BUFFER SGF.
STBUF1: EQU $
STA IBUF < MISE A JOUR DE 'IBUF'.
PLR A,X < RESTAURE.
RSR < RETOUR ....
PAGE
<
<
< L E C T U R E / E C R I T U R E S G F :
<
<
WR: EQU $
LR X,A
CPI 4*31 < VALIDATION INDEX BUFFER.
JL E18 < OK , IL TIENT ENCORE.
LAD SGFW
SVC 0 < ECRITURE DE L'ENREGISTREMENT
< COURANT DE '0A.
LAD SGFR
SVC 0 < PUIS LECTURE-DELETE DE L'ENREGIS-
< TREMENT COURANT DE '0B.
LAI 0 < REINITIALISATION DE L'INDEX.
E18: EQU $
STA IBUF < MISE A JOUR DE L'INDEX BUFFER.
RSR
PAGE
<
<
< E N T R E E D ' U N E R E P O N S E :
<
<
< REPONSES RECONNUES :
< O : B=0,
< N : B=1,
< W : RETOUR TEMPORAIRE AU CCI,
< F : ABORTE DE TA.
<
<
< ARGUMENT :
< A=@MOT DU MESSAGE A EMETTRE AU PREALABLE.
<
<
< RESULTAT :
< B=0 : OUI ,
< =1 : NON.
< INDICATEURS POSITIONNES SUR (B).
<
<
ENTER: EQU $
LR A,Y < Y=SAVE @MESSAGE.
BSR APRINT < EMISSION DU MESSAGE PREALABLE.
LAD DEMIN
SVC 0 < ENTREE D'UN CARACTERE REPONSE.
LBY REP < ACCES A LA REPONSE.
CPI "W" < DEMANDE DE PASSAGE AU CCI ???
JNE ENTER2 < NON.
<
< RETOUR TEMPORIARE AU CCI :
<
LAD DEMCCI
SVC 0 < APPEL DU CCI.
LR Y,A < AU RETOUR PAR !GO, ON RESTAURE
< A=@MESSAGE A EMETTRE.
JMP ENTER < ET ON RECOMMENCE.
<
< AUTRES COMMANDES :
<
ENTER2: EQU $
CPI "F" < EST-CE UNE DEMANDE D'ABORT ???
JE ALTMOD < ET OUI, COMME UN ALT-MODE ....
LBI 0 < 0=OUI A PRIORI.
CPI "O" < EST-CE OUI ???
JE ENTER1 < OK , FIN...
LBI 1 < 1=(ON A PRIORI.
CPI "N" < EST-CE NON ???
LR Y,A < RESTAURE A=@MESSAGE.
JNE ENTER < RIEN COMPRIS, ON RECOMMENCE.
ENTER1: EQU $
CPZR B < POSITIONNEMENT DES INDICATEURS.
RSR
PAGE
<
< ERREURS LORS DU CCI INTERPRETATIF :
<
CCIER: EQU $
LAD MERR
BSR APRINT < ENVOI MESSAGE D'ERREUR.
<
<
< R E T O U R A ' G E ' :
<
<
GOGE: EQU $
CPZ PAS
JE ALTMOD < DANS LE CAS DU MODE PAS-A-PAS,
< SI LE HARD-COPY EST DEMANDE,
< IL A DEJA ETE FAIT LORS DE
< LA DERNIERE ITERATION...
BSR AMCOPY < HARD-COPY EVENTUELLE+TEMPO.
ALTMOD: EQU $
LAD CG
SVC 0 < REMISE EN ALPHA-NUMERIQUE, AU
< CAS OU L'ON AURAIT FAIT DU
< GRAPHIQUE ...
LAI BRANCH-ZERO
LR A,W < REINITIALISE W=@BRANCH.
<
< PREPARATION DE L'3VERLAY :
<
LAI '06
STBY DEMSGN < DEMSGN EST MISE EN MODE 'LOAD
< SOUS :SYS '.
LA NGE
STA 0,W < LE NOM DE 'GE' EST MIS EN TETE DE
< LA BRANCHE D'OVERLAY.
LA APILE
LR A,K < REINITIALISATION DE K SUR LA
< PILE DE SMC.
LAD RELMEM
SVC 0 < RETOUR A 4K MOTS.
BSR ADF < DELETE FICHIERS FA ET FB.
LAD DELSEG
SVC 0 < TENTATIVE SYSTEMATIQUE DE
< DELETE DU SEGMENT ':GS'.
<
< RAZ EVENTUEL DE L'ITEM1 :
<
CPZ IRAZ < L'ITEM1 A-T'IL ETE ALTERE ???
JNE NRAZ < NON, RIEN A FAIRE...
LX NMOTS < OUI, X=NBRE DE MOTS A RAZER.
RAZ: EQU $
STZ &AI1 < RAZ MOT A MOT.
JDX RAZ
NRAZ: EQU $
<
< TENTATIVE(S) DE CHARGEMENT DE 'GE' :
<
GOGE2: EQU $
LAD DEMSGN < A=@DEMSGN , W=@BRANCH.
BSR AOVL < TENTATIVE DE LOAD 'GE'.
LAD DEMCCI
SVC 0 < RETOUR AU CCI SI ERREUR ,
JMP GOGE2 < ET NOUVELLE TENTATIVE SI !GO.
<
<
< P R O C E S S E U R D ' I N T E R P O L A T I O N
< D ' I M A G E S V I D E O S :
<
<
< 1- INTERPOLATION VIDEO : ON PEUT DESIGNER 2
< IMAGES PAR LEUR NOM OU/ET
< L'IMAGE D'ARRIVEE EST L'IMAGE RESIDENTE EN MEMOIRE ,
< ALORS QUE L'IMAGE DE DEPART EST EN ZONE SCRATCH.
< * NOMBRE DE POINTS :
< DEPART>ARRIVEE : ON RAJOUTE A L'IMAGE D'ARRIVEE
< AUTANT DE POINTS (0,0) QU'IL LE FAUT POUR ARRIVER
< AU MEME NOMBRE,
< DEPART<ARRIVEE : ON REEXPLORE L'IMAGE DE DEPART
< AUTANT DE FOIS QU'IL LE FAUT POUR OBTENIR LE
< MEME NOMRE DE POINTS.
<
< 2 - INTERPOLATION GRAPHIQUE : LES DESSINS D'ARRIVEE
< ET DE DEPART SONT TRANSMIS PAR UN PROCESSUS
< DU TYPE PRODUCTEUR/CONSOMMATEUR A L'AIDE
< D'UN SEGMENT COURANT SGN ':GS' . LA FIN
< D'UN DESSIN EST INDIQUEE A L'AIDE D'UN SEGMENT
< LOCALISE A L'ORIGINE (SOIT 'OAB'.
<
<
< DANS LES 2 CAS UNE TRANSFORMATION PORTANT
< SOIT SUR LES COORDONNEES D'1N POINT BLANC (VIDEO),
< SOIT SUR L'ORIGINE ET L'EXTREMITE D'UN
< SEGMENT (GRAPHIUE) PEUT ETRE STOCKEE EN BINAIRE PAR
< 'GC' DANS L'ITEM2.
<
<
WORD IMAG
WORD LOC+'80
WORD BRANCH
IMAGE: EQU $
LRP K
ADRI -1,K
PLR C,L,W < INITIALISATIONS DES 3 BASES.
LAD STACK-1
LR A,K < INITIALISATION DE K SUR LA PILE
< DE TRAVAIL DE 'TN'.
IC KIN < DECOMPTE DES ENTRIES.
JG ALTMOD < RETOUR A GE SI ALT-MODE ...
IF ORDI-"T",XWOR%,,XWOR%
<
< TEST DU NUMERO DE COMPTE D'APPEL :
<
WORD '1E25 < (A,B)=<ACN>.
CP ACNSYS < EST-CE :SYS ???
JNE E4000 < NON.
LR B,A < PEUT-ETRE ...
CP ACNSYS+1 < EST-CE :SYS ???
JE E4001 < ET OUI , ON POURRA STABILISER ...
E4000: EQU $
STZ ASP3 < NON , PSA DE STABILISATION...
E4001: EQU $
XWOR%: VAL 0
<
< ACCES A L'IDESC UTILISATEUR :
<
WORD '1E45 < A=IDESC.
ADRI '30,A < CONVERSION EN UN CHIFFRE ASCI.
STBY IDAN < MAJ NOM FA.
STBY IDBN < MAJ NOM FB.
STBY IDAO < MAJ NOM FA.
STBY IDBO < MAJ DU NOM FB.
<
< TENTATIVE DE DELETE DES FICHIERS FA & FB :
<
BSR ADF
<
< OUVERTURE DE NOUVEAUX FICHIERS FA & FB :
<
LAD MAN
BSR ACCI < !ASSIGN A=N,FA.
JNE CCIER < ON ABORTE ICI SI ERREUR.
LAD MBN
BSR ACCI < !ASSIGN B=N,FB.
JNE CCIER < ON ABORTE ICI SI ERREUR.
<
< INTERPOLATION GRAPHIQUE OU VIDEO ???
<
LAD MVID
BSR AENTER < ENVOI MESSAGE ET LECTURE REPONSE.
STB VIDEO < 0=VIDEO , 1=GRAPHIQUE.
JE E200 < INTERPOLATION VIDEO.
<
< CAS DE L'INTERPOLATION GRAPHIQUE :
<
LAD MDEL
BSR AENTER < FAUT-IL DELETER ':GS' AU
< PREALABLE ???
JNE E202 < NON.
LAD DELSEG
SVC 0 < OUI.
E202: EQU $
LA AMTRAJ
BSR AENTER < FAUT-IL TRACER LES TRAJECTOIRES
< DES POINTS ???
STB ITRAJ < B=0 SI OUI, B=1 SI NON.
LA AMERA
BSR AENTER < FAUT-IL EFFACER L'ECRAN AVAANT
< CHAQUE INTERPOLATION ???
STB EFFAC < SAVE LA REPONSE OUI/NON.
LAD MCOP
BSR AENTER < FAUT-IL FAIRE UN HARD-COPY
< APRES CHAQUE INTERPOLATION ???
STB ICOP < SAVE LA REPONSE OUI/NON.
CPZR B < Y-AURA-T'IL HARD-COPY ???
JNE E602 < NON , RIEN DE PLUS.
E601: EQU $
LA AMNT < SI OUI, ON PEUT CHANGER LE
BSR APRINT < NBRE DE COPIES AINSI QUE LA
< TEMPORISATION (S'ADAPTANT AINSI
< AU HARD-COPY ET A LA CAMERA 16).
LAD DEMCON
SVC 0 < ENTREE DU NBRE DE COPIES ET
< DE LA TEMPORISATION EN SECONDES
< SOUS FORME DE 2 CHIFFRES HEXAS.
LYI 2 < 2 CHIFFRES A CONVERTIR.
BSR AHEX < TENTATIVE DE CONVERSION BINAIRE.
JNE E601 < ERREUR DE CARACTERES.
JAL E601 < ERREUR DE VALEUR.
JAE E602 < SI LA VALEUR ENTREE EST NULLE,
< OU SI LE MESSAGE EST VIDE, ON
< CONSERVE LES VALEURS IMPLICITES.
SCLD 12 < EXTRACTION DANS B DU NBRE DE
< COPIES (A NOTER : (B)=0).
SCLS 4 < MISE DE LA TEMPORISATION DANS A.
JAE E603 < TEMPO NULLE, ON GARDE LA VALEUR
< IMPLICITE.
STA SLEEP+2 < SINON, ON CHANGE LA TEMPO.
E603: EQU $
CPZR B
JE E602 < LE NBRE DE COPIES EST NUL, ON
< CONSERVE LE NBRE IMPLICITE.
STB NCOPY < SINON, ON CHANGE LE NBRE.
E602: EQU $
LA AMCONV
BSR AENTER < FAUT-IL CONVERTIR CHAQUE
< GRAPHISME EN IMAGE VIDEO ???
JG E201 < NON , GRAPHIQUE PUR.
LB VIDEO < OUI , CONVERSION DEMANDEE.
NGR B,B < ON FAIT : VIDEO=-1.
STB VIDEO
E200: EQU $
LAD DEMMEM
SVC 0 < ALLOCATION 8K MOTS.
E201: EQU $
<
< CHOIX DU MODE D'INTERPOLATION :
<
E170: EQU $
LA AMPAS
BSR AENTER < ENVOI MESSAGE ET REPONSE.
STB PAS < SAVE L'INDICATEUR : 0=PAS A PAS.
E310: EQU $
<
< ENTREE DU NBRE D'ITERATIONS :
<
E50: EQU $
LA AMCON
BSR APRINT < ENVOI D'1N MESSAGE.
LAD DEMCON
SVC 0 < ENTREE D'1N NBRE HEXA SOUS FORME
< DE 2 CARACTERES.
LYI 2 < 2 CARACTERES A DECODER.
BSR AHEX < DECODAGE DE (REP).
JNE E50 < ERREUR , CE N'EST PAS DE
< L'HEXADECIMAL ...
JALE E50 < ERREUR : NBRE NEGATIF OU NUL.
STA CONS < SAVE LA VALEUR DE CONS.
<
< FAUT-IL TRANSFORMER PAR (ITEM2) :
<
LA AMTR
BSR AENTER < ENVOI MESSAGE ET LECTURE REPONSE.
JE TRANS1 < OUI.
STZ AITEM2 < NON , ET ON FAIT AITEM2=0.
JMP TRANS2
TRANS1: EQU $
LBY &ATYP < OUI : IL FAUT VALIDER L
< TYPE DE L'ITEM2.
CPI "P" < EST-CE UN PROGRAMME BINAIRE ???
JNE CCIER < NON, ON ABORTE...
TRANS2: EQU $
<
<
< A C C E S I M A G E D ' A R R I V E E :
<
<
CPZ VIDEO < QUEL EST LE MODE ???
JE E101 < CAS DU MODE VIDEO.
<
< CAS DE L'INTERPOLATION GRAPHIQUE : ON VA RENTRER LES
< SEGMENTS UN A UN , JUSQU'A TROUVER UN SEGMENT REDUIT
< A UN POINT DOUBLE ORIGINE.
<
LAD ERASE
SVC 0 < EFFACEMENT DE L'ECRAN PREALABLE.
LAD SGFO1
SVC 0 < OUVERTURE DE LA CLEF '1.0'.
E102: EQU $
LBI 1 < B=1 : IMAGE D'ARRIVEE.
BSR AGET < RECUPERATION D'UN SEGMENT.
JAE E103 < C'EST FINI : ORG=EXT=O.
LXI 0
LYI 0
BSR ASTBUF < INSERTION D'UN POINT DE DEPART
< PROVISOIRE A L'ORIGINE.
LX SEGORG+X < ORIGINE DU SEGMENT.
LY SEGORG+Y < ORIGINE DU SEGMENT.
BSR ASTBUF < INSERTION DE L'ORIGINE.
IC NAR < COMPTAGE DE L'ORIGINE SEGMENT.
LXI 0
LYI 0
BSR ASTBUF < INSERTION D'UN COUPLE PROVISOIRE
< A L'ORIGINE (DEPART).
LX SEGEXT+X < EXTREMITE DU SEGMENT.
LY SEGEXT+Y < EXTREMITE DU SEGMENT.
BSR ASTBUF < INSERTION DE L'EXTREMITE DU
< SEGMENT.
IC NAR < COMPTAGE DE L'EXTREMITE.
BSR ADRAW < TRACE DE L'IMAGE D'ARRIVEE.
JMP E102 < SEGMENT SUIVANT.
<
< CAS DE L'INTERPOLATION VIDEO :
<
E101: EQU $
LA AMRES
BSR AENTER < GARDE-T'ON L'IMAGE RESIDENTE ???
JE E48 < OUI , RIEN A ENTRER ...
LA AMAR
BSR AGOSGN < NON , ON ENTRE UNE IMAGE.
E48: EQU $
BSR AVIS < DIFFUSION IMAGE ARRIVEE.
<
< A N A L Y S E D E L ' I M A G E D ' A R R I V E E :
<
LAD SGFO1
SVC 0 < OUVERTURE DE LA CLEF '1.0'.
<
< ICI, PAR TRANSFORMATION, ON PEUT PAR EXEMPLE ORDONNER
< LE TEST DES POINTS DE L'IMAGE VIDEO A L'AIDE PAR EXEMPLE
< D'UN DESSIN RECUPERE PAR :GS :
<
LAD DEMSEG < AFIN DE RECUPERER ENTRE AUTRE
< L'ADRESSE DU SEGMENT.
LBI -1
BSR ATRANS < TRANSFORMATION EVENTUELLE.
<
< PARCOURS DE L'IMAGE D'ARRIVEE :
<
LYI 0 < INITIALISATION DE LA COORDONNEE Y.
E2: EQU $
LXI 0 < INITIALISATION DE LA COORDONNEE X.
E1: EQU $
PSR X,Y < PRUDENCE (CF. TRANSFORMATION).
LBI 1 < B=1 : IMAGE D'ARRIVEE.
BSR ATRANS < TRANSFORMATION EVENTUELLE.
BSR ATEST < TEST DU POINT (X,Y).
JNC E3 < POINT NOIR SANS INTERET ...
<
< ENREGISTREMENT D'UN POINT BLANC :
<
PSR X,Y < SAVE (X,Y).
LXI 0 < PREPARATION DU COUPLE DE
LYI 0 < DEPART (0,0).
BSR ASTBUF < SAVE LE COUPLE (0,0).
PLR X,Y < RESTAURE LE COUPLE (X,Y) ,
BSR ASTBUF < ET SAVE IT ...
IC NAR < COMPTAGE DES POINTS DE L'IMAGE
< D'ARRIVEE.
<
< PASSAGE AU POINT SUIVANT :
<
E3: EQU $
PLR X,Y
ADRI 1,X < SINON PASSAGE A LA COORDONNEE X.
LR X,A
CPI X21-1 < VALIDATION DE X.
JLE E1 < OK, ELLE EXISTE ...
ADRI 1,Y < PROGRESSION DE L'Y.
LR Y,A
CPI X20-1 < VALIDATION COORDONNEE Y.
JLE E2 < OK, ELLE EXISTE ...
<
< FIN DE L'IMAGE D'ARRIVEE :
<
E103: EQU $
LXI 0
LYI 0
BSR ASTBUF < RANGEMENT D'UN VOUPLE (0,0).
LXI -1
LYI -1
BSR ASTBUF < MARQUE DE FIN D'IMAGE (-1,-1).
CPZ IBUF < Y-A-T'IL UN BUFFER SGF A MOITIE
< PLEIN ???
JE E4 < NON,IL EST VIDE.
LAD SGFW
SVC 0 < OUI, ON L'ECRIT.
E4: EQU $
LAD SGFC
SVC 0 < PUIS ON FERME LA CLEF '1.0'.
BSR APAUS < UNE PETITE PAUSE NE FERA PAS
< DE MAL ...
<
<
< C H A R G E M E N T I M A G E D E D E P A R T :
<
<
CPZ VIDEO < TEST DU MODE ???
JG E110 < CAS DU GRAPHIQUE PUR.
JL E47 < CAS DU GRAPHIQUE AVEC CONVERSION.
<
< CAS DE L'INTERPOLATION VIDEO :
<
LA AMSCRA
BSR AENTER < GARDE-T'ON L'IMAGE SCRATCH ???
JE E44 < OUI , IL FAUT LA RELIRE.
LA AMDE
BSR AGOSGN < NON , IL FAUT EN LIRE UNE
< PAR LE SGN ...
BSR AVIS < DIFFUSION IMAGE DEPART.
JMP E47
E44: EQU $
LY RDK+2 < INCREMENT DE L'@OCTET BUFFER.
LB IMAG2 < @OCTET BUFFER COURANT.
STZ RDK+3 < PAR PRUDENCE ...
LXI LIMAG/128 < X=NBRE DE SECTEURS A LIRE.
LAD RDK < A=@DEMANDE LECTURE SCRATCH.
E5: EQU $
STB RDK+1 < MAJ @OCTET BUFFER.
PSR X < SAVE DECOMPTE SECTEURS.
SVC 0 < LECTURE SECTEUR COURANT.
PLR X < RESTAURE DECOMPTE SECTEURS.
IC RDK+3 < PROGRESSION NUMERO DE SECTEUR.
ADR Y,B < PROGRESSION @OCTET BUFFER.
JDX E5 < AU SUIVANT ...
<
< MISE DE LA DEMANDE SGN EN SAVE :
<
E47: EQU $
LAI '04
STBY SGN < NVP DE STORE.
<
< PREPARATIFS SGF :
<
E110: EQU $
IC SGFO1 < FONCTION=5 : OPEN OLD.
LAD SGFO1
SVC 0 < OPEN OLD '1.0' SUR '0B.
LAI '0A
STBY SGFO1 < POUR OPEN SUR '0A.
STBY SGFW < POUR ECRITURE SUR '0A.
LAD SGFR < LECTURE DU 1ER SECTEUR DE LA
< LISTE DESCRIPTIVE DE L'IMAGE
< D'ARRIVEE.
SVC 0
DC SGFO1 < FONCTION=4 : OPEN NEW.
LAD SGFO1
SVC 0 < OPEN NEW CLEF '1.0' SUR '0A.
STZ IBUF < REINITI IBUF.
<
< E X P L O R A T I O N D E L ' I M A G E D E D E P A R T
<
CPZ VIDEO < QUEL EST LE MODE D'INTERPOLATION ???
JE E1200 < CAS DE L'INTERPOLATION VIDEO.
<
< CAS DE L'INTERPOLATION GRAPHIQUE :
<
LAD ERASE
SVC 0 < EFFACEMENT PREALABLE.
E121: EQU $
LBI 2 < B=2 : IMAGE DE DEPART.
BSR AGET < RECUPERATION DU SEGMENT COURANT.
JAE E122 < FIN DE LISTE : ORG=EXT=O.
LX SEGORG+X
LY SEGORG+Y
BSR AMAJL < INSERTION DE L'ORIGINE DANS LA
< LISTE D'ARRIVEE.
LX SEGEXT+X
LY SEGEXT+Y
BSR AMAJL < INSERTION DE L'EXTREMITE DANS
< LA LISTE D'ARRIVEE.
BSR ADRAW < TRACE DE L'IMAGE DE DEPART.
JMP E121 < AU SEGMENT SUIVANT.
<
< CAS DE L'INTERPOLATION VIDEO :
<
E1200: EQU $
<
< ICI, PAR TRANSFORMATION, ON PEUT PAR EXEMPLE ORDONNER
< LE TEST DES POINTS DE L'IMAGE VIDEO A L'AIDE PAR EXEMPLE
< D'UN DESSIN RECUPERE PAR :GS :
<
LAD DEMSEG
LBI -2
BSR ATRANS < TRANSFORMATION EVENTUELLE.
<
< PARCOURS DE L'IMAGE DE DEPART :
<
E120: EQU $
IC FOIS < ET UN TOUR DE PLUS SUR L'IMAGE
< DE DEPART.
LYI 0
E12: EQU $
LXI 0
E11: EQU $
PSR X,Y < PRUDENCE (CF. TRANSFORMATION).
LBI 2 < B=2 : IMAGE DE DEPART.
BSR ATRANS < TRANSFORMATION EVENTUELLE.
BSR ATEST < TEST DU POINT (X,Y).
JC E1201 < CAS D'UN POINT BLANC.
PLR X,Y < CAS D'UN POINT NOIR,
JMP E13 < SANS INTERET...
<
< CAS D'UN POINT BLANC DE L'IMAGE DE DEPART :
<
E1201: EQU $
BSR AMAJL < INSERTION DU POINT DE DEPART (X,Y)
PLR X,Y
CPZ FOIS
JE E750 < CAS DE LA 1ERE EXPLORATION
< DE L'IMAGE DE DEPART, IL
< FAUT LA FAIRE EN ENTIER.
IC ND < AFIN DE COMPTABILISER CORRECTE-
< MENT LE NBRE DE POINTS A
< INTERPOLER.
LA NDE < CAS DES EXPLORATIONS SUIVANTES,
CP NAR < ON S'ARRETE LORSQUE LES 'N'
< EXPLORATIONS DE L'IMAGE DE DEPART
< ONT DONNE AUTANT DE POINTS QU'EN
JE E19 < CONTIENT L'IMAGE D'ARRIVEE.
< A T T E N T I O N : LORSQUE
< L'IMAGE DE DEPART A PLUS DE
< POINTS QUE L'IMAGE D'ARRIVEE,
< CETTE DERNIERE N'EST PAS
< REEXPLOREE...
E750: EQU $
E13: EQU $
ADRI 1,X < SI N'EXISTE PAS, PASSAGE AU
< X SUIVANT.
LR X,A
CPI X21-1 < VALIDATION COORDONNE X.
JLE E11 < OK, EXISTE.
ADRI 1,Y < PROGRESSION COORDONNEE Y.
LR Y,A
CPI X20-1 < VALIDATION DE Y.
JLE E12 < OK, EXISTE ...
<
< ON A ATTEINT LA FIN DE L'IMAGE DE DEPART :
<
E122: EQU $
LA NDE
STA ND < NBRE DE POINTS BLANCS TROUVES.
CPZ FOIS < EST-CE LA 1ERE FOIS ???
JG E21 < NON.
STA SNDE < CAS DE LA 1ERE FOIS EN VIDEO
< (FOIS=0) OU GRAPHIQUE (FOIS=-1) .,
< ON SAVE LE NBRE DE POINTS REEL
< DE L'IMAGE DE DEPART.
E21: EQU $
CP NAR
JGE E19 < L'IMAGE DE DEPART A AU MOINS
< AUTANT DE POINTS QUE L'IMAGE
< D'ARRIVEE.
CPZ VIDEO < TEST DU MODE ???
JNE E751 < CAS DU GRAPHIQUE.
CPZ NDE < L'IMAGE DE DEPART EST-ELLE VIDE???
JNE E120 < NON, ALORS ON VA LA REEXPLORER...
<
< CAS OU L'IMAGE DE DEPART A MOINS DE POINTS QUE L'IMAGE D'ARRIVEE :
<
E751: EQU $
LX IBUF < X=INDEX COURANT BUFFER SGF.
STZ &ABUF < CREATION D'UN COUPLE DE
< DEPART A L'ORIGINE.
ADRI 1,X < PROGRESSION INDEX BUFFER.
STZ &ABUF < COORDONNEE Y.
ADRI 3,X < PROGRESSION INDEX BUFFER.
IC ND < COMPTAGE DES POINTS DE L'IMAGE
< DE DEPART, PLUS CEUX QUE L'ON
< RAJOUTE A L'ORIGINE.
BSR AWR < LECTURE/ECRITURE SGF.
LA ND < A=NBRE DE POINTS COURANT DEPART.
JMP E21 < ET ON RECOMMENCE.
<
< FIN DE L'IMAGE DE DEPART :
<
E19: EQU $
CPZ IBUF < UN BUFFER INCOMPLET EST-IL
< EN COURS DE REMPLISSAGE ???
JE E22 < NON, C'EST FINI.
LAD SGFW
SVC 0 < OUI, ECRITURE ENREGISTREMENT
< COURNAT SUR '0A.
<
< OPERATIONS SGF :
<
E22: EQU $
DC SGFC < MISE DU CLOSE EN RELEASE '06.
LAD SGFC
SVC 0 < CLOSE-RELEASE SUR '0B.
LAI '0A
STBY SGFC
IC SGFC < REMISE DU CLOSE EN SAVE '07.
LAD SGFC
SVC 0 < CLOSE-SAVE SUR '0A.
<
< ETAT DES DEMANDES SGF :
< SGFC : CLOSE-SAVE SUR '0A (7=SAVE , 6=RELEASE).
< SGFW : ECRITURE SUR '0A.
< SGFR : LECTURE-DELETE SUR '0B.
< SGFO1 : OPEN-NEW SUR '0A (4=NEW , 5=OLD).
<
CPZ VIDEO < TEST DU MODE ...
JE E700 < CAS DE LA VIDEO : EDITION ND & NA.
LAD CG
SVC 0 < RETOUR EN ALPHA EVENTUEL.
CPZ EFFAC < DOIT-ON EFFACER ???
JNE E410 < NON, ALORS PAS D'EDITION...
<
< EDITION DU NBRE DE POINTS DE DEPART :
<
E700: EQU $
LA AMND
BSR APRINT
LB SNDE
BSR ADISP < CONVERSION HEXA.
LAD BDISP
BSR APRINT
<
< EDITION DU NBRE DE POINTS D'ARRIVEE :
<
LA AMNA
BSR APRINT
LB NAR
BSR ADISP < CONVERSION HEXA.
LAD BDISP
BSR APRINT
<
< LAISSONS LE TEMPS DE LIRE (A CAUSE DE L'ERASE A SUIVRE) :
<
BSR APAUS < ET ENCORE UNE TITE PAUSE...
<
<
< I N T E R P O L A T I O N :
<
<
E410: EQU $
IC CONS < AFIN DE NE PAS FAIRE TROP DE DC.
E30: EQU $
DC CONS < DECOMPTE DES ITERATIONS A FAIRE.
JLE E250 < C'EST FINI : RETOUR A 'GE'.
LA ND
JANE E70 < OK , NBRE DE POINTS#0 ...
E250: EQU $
BR AGOGE < ON ARRETE LA SI ND=0.
E70: EQU $
STA NC < INITIALISATION DU DECOMPTEUR DE
< POINTS A INTERPOLER.
IC SGFO1 < OPEN-OLD.
LA NVP1
STBY SGFO1 < MISE EN PLACE NVP OPEN-OLD.
LAD SGFO1
SVC 0 < OPEN OLD SUR '0A PAR EXEMPLE.
DC SGFO1 < OPEN-NEW.
LA NVP1
STBY SGFR < POUR LECTURE SUR '0A PAR EXEMPLE.
IBT 15 < CHANGEMENT DE NVP.
STBY SGFO1 < POUR OPEN NEW SUR '0B PAR EXEMPLE
STBY SGFW < POUR ECRITURE SUR '0B PAR EXEMPLE
LAD SGFO1
SVC 0 < OPEN NEW SUR '0B PAR EXEMPLE.
STZ IBUF < REINIT INDEX BUFFER.
LAD SGFR
SVC 0 < LECTURE DU 1ER ENREGISTREMENT
< SUR '0A PAR EXEMPLE.
CPZ EFFAC < FAUT-IL EFFACER LA VISU ???
JNE E210 < NON.
<
< EFFACEMENT DE L'ECRAN.
<
LAD ERASE
SVC 0
E210: EQU $
CPZ VIDEO < TEST DU MODE D'INTERPOLATION.
JG E31 < RIEN D'AUTRE SI GRAPHIQUE PUR.
<
< RAZ DE L'IMAGE VIDEO COURANTE :
<
E160: EQU $
LX ALIMAG < X=NRE DE MOTS A RAZER.
E38: EQU $
STZ &AIMAG < RAZ MOT PAR MOT.
JDX E38 < AU PRECEDENT.
<
< INTERPOLATION DE L'2MAGE DE DEPART COURANTE :
<
USE W,XD
E31: EQU $
LX IBUF < X=INDEX COURANT BUFFER SGF.
LAD &ABUF
LR A,W < W=@DU QUADRUPLET COURANT.
LX XD < X POINT DE DEPART.
LY YD < Y POINT DE DEPART.
STX TRAJ+0+X < AU CAS OU IL FAUDRAIT EDITER
STY TRAJ+0+Y < LA TRAJECTOIRE DES POINTS.
LA XA < X POINT D'ARRIVEE.
SBR X,A < A=XA-XD.
SARD 16 < EXTENSION 32 BITS.
DV CONS
ADR A,X < X=XD+(XA-XD)/CONS.
LA YA < Y POINT D'ARRIVEE.
SBR Y,A < A=YA-YD.
SARD 16 < EXTENSION 32 BITS.
DV CONS
ADR A,Y < Y=YD+(YA-YD)/CONS.
STX XD < CHANGEMENT DE POINT DE DEPART.
STY YD < CHANGEMENT DE POINT DE DEPART.
CPZ VIDEO < TEST DU MODE D'INTERPOLATION ???
JE E130 < CAS DE LA VIDEO.
<
< CAS DE L'INTERPOLATION GRAPHIQUE :
<
CPZ ITRAJ < FAUT-IL TRACER LA TRAJECTOIRE ???
JNE E6000 < NON.
<
< TRACE DE LA TRAJECTOIRE DES POINTS :
<
STX TRAJ+2+X
STY TRAJ+2+Y
LAD OG
SVC 0 < OPEN GRAPHIQUE.
LAD POINTI
SVC 0 < MISE DU TRACE EN MODE POINTILLE
< SI L'ON EST SUR 4014.
LAD DTRAJ
SVC 0 < AFFICHAGE D'UNE TRAJECTOIRE.
LAD CONTI
SVC 0 < RETOUR AU MODE CONTINU SUR 4014.
LX TRAJ+2+X < RESTAURE X (A CAUSE DES SVC).
E6000: EQU $
LAD SEG < A=@SEG COURANT.
AD DELTA < TRANSLATION ORIGINE/EXTREMITE.
LR A,W < W=@POINT COURANT (ORG/EXT).
STX X,W < X DU POINT COURANT.
STY Y,W < Y DU POINT COURANT.
LA DELTA
IBT 14 < DELTA VAUT EN BASCULE 0/2.
STA DELTA < MAJ DE DELTA.
JANE E131 < ON VIENT DE TRAITER L'ORIGINE
< D'UN SEGMENT.
BSR ADRAW < TRACE DU SEGMENT COURANT.
CPZ VIDEO
JG E131 < CAS DU GRAPHIQUE PUR.
<
< CONVERSION GRAPHIQUE--> VIDEO :
<
IF ORDI-"S",XWOR%,,XWOR%
<
< T R A C E V I D E O D U S E G M E N T E N S O L A R.
<
< (C'EST LE SYSTEME CMS5 QUI SE CHARGERA DE L'INTERPOLATION !).
<
<
< PROLOGUE: SAUVEGARDE DES REGISTRES UTILISES ET SAUVEGARDE DANS LA PILE
< (QUI EST GRANDE !) DE LA ZONE QU'ON VA UTILISER POUR CONSTRUIRE L'EN-TETE
< DE L'IMAGE.
<
PSR A,B,X,W
<
LR K,B
ADRI 1,B < ZONE RECEPTRICE.
LRM A,X,W
WORD ENTIM < ZONE EMETTRICE (A SAUVER DANS LA PILE).
WORD LENTIM < LONGUEUR EN-TETE IMAGE.
WORD ENTIM < POUR BASER L'EN-TETE.
MOVE
ADRI LENTIM,K < MISE A JOUR DE 'K'.
<
< ICI, ON A SAUVEGARDE LA ZONE DE CONSTRUCTION DE L'EN-TETE DANS LA PILE,
< ON VA CONSTRUIRE L'EN-TETE ET FAIRE LA DEMANDE D'INTERPOLATION VIDEO.
<
LRM A,B,X
WORD SEGORG+Y < ZONE EMETTRICE: COORDONNEES (Y1,X1),
< (Y2,X2) SEGMENT COURANT. CE SONT DES
< COORDONNEES GRAPHIQUES.
WORD ENTIM+DEPY1 < ZONE RECEPTRICE.
WORD 4 < LONGUEUR.
MOVE
STZ DEPMOD,W
IC DEPMOD,W < MODE TRACE 'SBT'.
LRM A,X
WORD ENTIM-ZERO*2 < ADRESSE OCTET EN-TETE IMAGE.
WORD LENTIM+LIMAG*2 < LONGUEUR OCTETS EN-TETE + IMAGE.
STA STABIL+1
STX STABIL+2
LAD STABIL < DEMANDE INTERPOLATION ET AFFICHAGE.
SVC 0
LRM A,X
WORD IMAG-ZERO*2 < RESTAURATION ADRESSE ET
WORD LIMAG*2 < LONGUEUR IMAGE DANS LA DEMANDE.
STA STABIL+1
STX STABIL+2
<
< EPILOGUE (FAIRE COMME SI ON N'AVAIT RIEN TOUCHE...).
<
ADRI -LENTIM,K < RESTAURATION DE 'K'.
LR K,A
ADRI 1,A < ZONE EMETTRICE.
LRM B,X
WORD ENTIM < ZONE RECEPTRICE (A RESTAURER).
WORD LENTIM < LONGUEUR.
MOVE
<
PLR A,B,X,W
XWOR%: VAL 0
IF ORDI-"T",XWOR%,,XWOR%
PSR X,Y
<
< CALCUL DES EXTREMITES M1 ET M2 DU SEGMENT VIDEO :
<
LA SEGORG+X < A=X(ORIGINE GRAPHIQUE).
SLRS DEDX < REDUCTION VIDEO.
STA DICOX1 < RANGEMENT DE X1.
LA SEGORG+Y < A=Y(ORIGINE GRAPHIQUE).
SLRS DEDY < REDUCTION VIDEO.
NGR A,A
AD NLIG < INVERSION DUE AU FAIT QUE LES
< AXES Y VIDEO ET GRAPHIQUE SONT
< INVERSES.
STA DICOY1 < RANGEMENT Y1.
LA SEGEXT+X < A=X(EXTREMITE GRAPHIQUE).
SLRS DEDX < REDUCTION VIDEO.
STA DICOX2 < RANGEMENT DE X2.
LA SEGEXT+Y < A=Y(EXTREMITE GRAPHIQUE).
SLRS DEDY < REDUCTION VIDEO.
NGR A,A
AD NLIG < INVERSION DES AXES Y.
STA DICOY2 < RANGEMENT DE Y2.
<
< TRACE DICHOTOMIQUE DU SEGMENT :
<
LX DICOX1 < X=X1.
LY DICOY1 < Y=Y1.
BSR ASET < AFFICHAGE DU POINT M1.
BSR ADICO < TRACE DU SEGMENT M1M2.
LX DICOX2 < X=X2.
LY DICOY2 < Y=Y2.
BSR ASET < AFFICHAGE DU POINT M2.
PLR X,Y
XWOR%: VAL 0
E240: EQU $
JMP E131
<
< CAS DE L'INTERPOLATION VIDEO :
<
E130: EQU $
BSR ASET < AFFICHAGE DU POINT COURANT.
E131: EQU $
LA IBUF
ADRI 4,A < PROGRESSION INDEX BUFFER.
CPI 4*31 < ET VALIDATION DE CE DERNIER ...
JL E33 < OK.
LAD SGFW < ECRITURE DE L'ENREGISTREMENT
< COURANT SUR '0B PAR EXEMPLE.
SVC 0
LAD SGFR
SVC 0 < LECTURE DE L'ENREGISTREMENT
< SUIVANT SUR '0A PAR EXEMPLE.
LAI 0 < REINIT INDEX BUFFER.
E33: EQU $
STA IBUF < MAJ IBUF.
DC NC < DECOMPTAGE DES POINTS A
< INTERPOLER.
JG E31 < IL Y EN A ENCORE ...
<
< CAS OU LA FIN DE LISTE EST RENCONTREE :
<
E32: EQU $
CPZ IBUF < Y-A-T'IL UN BUFFER EN COURS
< DE REMPLISSAGE ???
JE E34 < NON , RIEN A FAIRE ...
LAD SGFW < OUI ,
SVC 0 < ECRITURE DU DERNIER ENREGIS-
< TREMENT SUR '0B PAR EXEMPLE.
E34: EQU $
LA NVP1
STBY SGFC
DC SGFC < CLOSE RELEASE.
LAD SGFC
SVC 0 < CLOSE RELEASE '0A PAR EXEMPLE.
IC SGFC < CLOSE SAVE.
LA NVP1
IBT 15
STA NVP1 < PERMUTATION DES NVP SGF.
STBY SGFC
LAD SGFC
SVC 0 < CLOSE SAVE '0B PAR EXEMPLE.
E80: EQU $
BSR AVIS < DIFFUSION EVENTUELLE IMAGE INTER.
CPZ PAS < TEST DU MODE D'INTERPOLATION.
JNE EE30 < MODE CONTINU : ON REBOUCLE....
BSR AMCOPY < HARD-COPY EVENTUELLE+TEMPO.
E220: EQU $
CPZ VIDEO
JG EE30 < CAS DU GRAPHIQUE PUR : VERS
< L'INTERPOLATION SUIVANTE.
<
< CAS DE L'INTERPOLATION VIDEO :
<
E140: EQU $
LAD CG
SVC 0 < RETOUR EVENTUEL EN ALPHA-NUMERIK.
LAD MSAVE
BSR AENTER < CAS DU MODE PAS A PAS , FAUT-
< IL SAUVER L'IMAGE COURANTE ???
JNE EE30 < NON , ALORS ON CONTINUE.
LAI -3
STA &ALONG < L'IMAGE RECOIT LE TYPE 'VIDEO'.
LAD MNOM
BSR AGOSGN < OUI , ALORS ON LUI DONNE UN
< NOM , ET ON LA STORE.
EE30: BR AE30 < BOUCLE D'INTERPOLATION.
PAGE
<
<
< 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 MAUVAISE
< IMPLANTATION !!!
DZS X10+1 < HYGIENE ...
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.