NMPROC: VAL "VA" < NOM DU PROCESSEUR. IDP "VA - RELEASE 01/06/1979" IDP "JOHN F. COLONNA" PROG PAGE EOT #SIP DEFINITION CMS5# EOT #SIP DEF PROCESSEUR# PROG WORD IMAGE < ENTRY POINT DU GENERATEUR. WORD 0 PIMAGE: EQU $ < P='12 !!! LRP L BR -2,L < ENTRY DANS LE PROCESSEUR. EOT #SIP DEFINITION ITEM# ITEM1: EQU ZERO+PILE-LTNI < @ITEM1. PAGE EOT #SIP IMAGE 256# IMAG: EQU ZERO+PILE+5 < IMAGE VIDEO. NOM: EQU ITEM1 < LE NOM DE L'IMAGE VIDEO RECOUVRE < L'EN-TETE DE L'ITEM1. EOT: EQU IMAG-2 LONG: EQU IMAG-1 < DOIT CONTENIR -1,-2,-3 SI < L'IMAGE EST BIEN VIDEO. PAGE < < < L O C A L : < < LOCAL LOC: EQU $ < < LISTE DES CARACTERES DE REPRESENTATION DE COMPTAGE : < MCAR2: BYTE 35;'6D ASCI "#VOISINS" BYTE "=";'6D ASCI "0123456789" BYTE " ";'6D LCAR2: EQU $ ASCI " ." < 0 1 VOISINS, ASCI ":-" < 2 3 VOISINS, ASCI "+=" < 4 5 VOISINS, ASCI "H*" < 6 7 VOISINS, BYTE "$";'40 < 8 9 VOISINS. LLCAR2: VAL $-LCAR2*2 BYTE " ";'6D IF LLCAR2-10,,X100, IF ERREUR D'ASSEMBLAGE VOLONTAIRE !!! X100: VAL 0 < < BUFFER ET MESSAGES : < CURSOR: BYTE "N";0 < CURSEUR GRAPHIQUE DE LA VISU : < OCTET0=CARACTERE DE DEBLOCAGE , < (NON A PRIORI...) WORD 0 < MOT1=Y(CURSEUR GRAPHIQUE) , WORD 0 < MOT2=X(CURSEUR GRAPHIQUE). SEG: WORD 0;0 < POUR (TY,TX) DE POSITIONNEMENT. Y: VAL 0 X: VAL 1 MNOM: BYTE 5;'6D ASCI "NOM>" MINT: BYTE 2;'6D;">";0 REP: WORD 0 < REPONSE DE REDUCTION. WORD 0 < POUR LES ENTREES DE SEUILS. AMRED: WORD MRED AMPAS: WORD MPAS AMEFFA: WORD MEFFAC AMCOPY: WORD MCOPY AMTR: WORD MTR AMMAT: WORD MMAT-1,X MDEL: BYTE 7;'6D ASCI "DX/DY=" AMPERX: WORD MPERX AMPERY: WORD MPERY AP: WORD MF < MESSAGES DE PERMUTATION BITS X/Y. MERR: BYTE 3;'6D;"?";"?" MCAR: WORD 0 < CARACTERE DE MATERIALISATION < D'UN POINT VIDEO. < < DEMANDES A CMS4 : < DEMIN: WORD '0101 < LECTURE DU NOM DE L'IMAGE. WORD NOM-ZERO*2 WORD LNOM*2 DEMREP: WORD '0101 < LECTURE DU FACTEUR DE REDUCTION. WORD REP-ZERO*2 WORD 1 < 1 CARACTERE. DEMSE: WORD '0101 < ENTREE DES SEUILS. WORD REP-ZERO*2 WORD 3 < SOUS FORME DE 3 CARACTERES < HEXADECIMAUX. DEMOUT: WORD '0202 < EDITION MESSAGE. WORD 0 < @OCTET DU MESSAGE. WORD 0 < LONGUEUR DU MESSAGE. DEMCAR: WORD '0B02 < EMISSION DU CARACTERE WORD MCAR-ZERO*2 < REPRESENTATIF D'UN POINT WORD 1 < VIDEO. CAR2I: WORD '0101 < ENTREE DE LCAR2. WORD LCAR2-ZERO*2 WORD LLCAR2 ERASE: WORD '0B05 < EFFACEMENT ECRAN VISU. OG: WORD '0B03 < OPEN GRAPHIQUE VISU EMISSION. CG: WORD '0B04 < CLOSE GRAPHIQUE VISU EMISSION. WG: WORD '0B0A < AFFICHAGE SEGMENT COURANT. WORD SEG-ZERO*2 WORD 4 COPY: WORD '0B07 < ECRITURE DIRECTE HARD-COPY. BYTE '1B;'17;'8D;'04 < ESC,CTRL-W,R/C. DEMMEM: WORD '0004 < DEMANDE D'ALLOCATION 8K MOTS. WORD 0 WORD '4000 RELMEM: WORD '0004 < DEMANDE DE RETOUR A 4K MOTS. WORD 0 WORD '2000 DEMCCI: WORD '0001 < DEMANDE DE RETOUR AU CCI. SLEEP: WORD '0005 < DEMANDE MISE EN SOMMEIL. WORD 0 WORD 15 < POUR 15 SECONDES. SGN: WORD '0002 < ACCES A L'IMAGE VIDEO. WORD NOM-ZERO*2 WORD IMAG-NOM+LIMAG*2 WORD EOT-NOM*2 < DEPLACEMENT D'ACCES A LA VALEUR. DEMSGN: WORD '0402 < DEMANDE SGN OVERLAY. WORD BRANCH-ZERO*2 WORD ZERO-BRANCH+PILE-LTNI-LTNI*2 WORD -1 IF ORDI-"S",XWOR%,,XWOR% STABIL: WORD '8A01 < STABILISATION IMAGE VIDEO. WORD IMAG-ZERO*2 WORD LIMAG*2 WORD TVPV < SUR LE PROCESSEUR VERT. XWOR%: VAL 0 < < RELAIS DIVERS : < IF ORDI-"T",XWOR%,,XWOR% ASP3: WORD SP3 < ROUTINE MAITRE DE STABILISATION < DE L'IMAGE VIDEO. XWOR%: VAL 0 AGOGE: WORD GOGE < RETOUR A 'GE'. AOVL: WORD OVL < CHARGEMENT DES OVERLAYS. APRINT: WORD PRINT < EDITION D'UN MESSAGE. ARCOPY: WORD RCOPY < ROUTINE DE HARD-COPY EVENTUEL < ET TEMPORISATION ASSOCIEE. AGETS: WORD GETS < RECUPERATION DES SEUILS. ACARD: WORD CARD < ROUTINE DIRECTIONS CARDINALES. ATEST: WORD TEST < TEST DU POINT COURANT (X,Y). AEXIST: WORD EXIST < EXISTENCE ET VALEUR D'UN POINT. AINCX: WORD INCX < INCREMENTATION DE X. AINCY: WORD INCY < INCREMENTATION DE Y. ADECX: WORD DECX < DECREMENTATION DE X. ADECY: WORD DECY < DECREMENTATION DE Y. ATRF: WORD TRF < ROUTINE D'OPERATION MATRICIELLE < SUR LES COORDONNEES X,Y. ASEG: WORD SEG < RELAI VERS LA LISTE DES < COORDONNEES Y,X DU POINT < COURANT. ALCAR1: WORD LCAR1,X ALCAR2: WORD LCAR2,X LOCAR1: WORD LLCAR1 < LONGUEUR DE LCAR1. < CARACTERES DE REPRESENTA- < TION DES POINTS VIDEO. I1: WORD ITEM1 < @EN-TETE DE L'ITEM1. ASI1: WORD SI1 < @ZONE DE SAVE DE L'EN-TETE ITEM1. SI1: DZS LNOM+2 < ZONE DE SAVE EN-TETE ITEM1. AIMAG: WORD IMAG-1,X < POUR ACCES A L'IMAGE PAR JDX. ALONG: WORD LONG < POUR VALIDER L'IMAGE VIDEO. AREP: WORD REP,X < POUR CONVERSION DES SEUILS. AE1003: WORD E1003 < CAS DES POINTS NOIRS (0). AE1001: WORD E1001 < SUITE BALAYAGE VERTICAL. AE1002: WORD E1002 < POURSUITE DU BALYAGE. < (HORIZONTAL) AMESS: WORD 0 < SAVE L'ADRESSE DU MESSAGE A < L'ENTREE DE GETS EN VUE DES < ERREURS DE SYNTAXE ... < < CONSTANTE D'UN ITEM 'TEXTE' : < AITEM1: WORD ITEM1+LTN,X < ACCES AU CONTENU DE ITEM1. XITEM1: WORD 0 < INDEX COURANT DE ITEM1. KITEM1: WORD 0 < CARACTERE D'ARRET D'EXPLORATION < DE L'ITEM (OCTET0 DE ITEM1). TITEM1: WORD SI1+IINDIC < ACCES AU TYPE DE L'ITEM1 < DANS LA ZONE DE SAUVE- < GARDE DE SON EN-TETE. NCP: WORD NBCAR*NBLIG < NBRE DE CARACTERES/PAGE. < < CONSTANTES : < KIN: WORD -1 < COMPTEUR DES ENTREES DANS 'VG'. IS: WORD 0 < IS=0 : L'EN-TETE DE L'ITEM1 N'A < PAS ETE SAUVEGARDEE. IF ORDI-"T",XWOR%,,XWOR% ACNSYS: ASCI ":SYS" XWOR%: VAL 0 IMOD: WORD 0 < MODE DE REPRODUCTION : < -1 : A L'AIDE DE ITEM1, < 0 : PAR CONFIGURATION, < 1 : PAR COMPTAGE. REDUC: WORD 0 < FACTEUR DE REDUCTION=0/-1/-2. KPOINT: WORD 0 < COMPTEUR DES POINTS VOISINS DU < POINT COURANT RENCONTRES DANS < LES DIRECTIONS CARDINALES. NGE: WORD "GE" < NOM DE L'OVERLAY 'GE'. ALIMAG: WORD LIMAG < NBRE DE MOTS OCCUPES PAR L'IMAGE. NMPL: WORD CNMPL < NBRE DE MOTS DE 16 BITS/LIGNE. NLIG: WORD 1024/DY-1 < NBRE DE LIGNES/IMAGE -1. NPOINT: WORD CNMPL*16-1 < NBRE DE POINTS/LIGNE-1. M101: WORD '0101 < POUR FAIRE A=B='01. DELTAX: WORD 0 < DELTAX=ABS(X-X(1ER POINT)). DELTAY: WORD 0 < DELTAY=ABS(Y-Y(1ER POINT)). SEUIL: WORD 0 < SEUIL DE TEST DE DELTAX+DELTAY. SEUILX: WORD 0 < SEUIL DE TEST DE DELATX. SEUILY: WORD 0 < SEUIL DE TEST DE DELTAY. PLIG: WORD 1 < PAS DE PASSAGE D'UNE LIGNE < A L'AUTRE. PCOL: WORD 1 < PAS DE PASSAGE D'UN POINT A < A L'AUTRE SUR UNE LIGNE. DELX: WORD 1 < PAS IMPLICITE DE VARIATION DE X. DELY: WORD 1 < PAS IMPLICITE DE VARIATION DE Y. PATER: WORD 0 < MOT CONTENANT LA CONFIGU- < RATION DES VOISINS D'UN < POINT COURANT. < < ACCES EVENTUEL AU CURSEUR GRAPHIQUE : < OGT: WORD '0B03 < NE PAS UTILISER OG , CAR SINON < RISQUE D'ERREUR SUR LE NVP < SI ON NE RENTRE PAS DE < TRANSFORMATION !!! CU: WORD '0B06 < MISE EN FONCTION DU CURSEUR WORD 0 < GRAPHIQUE : IL FAUT AMDEM=0 !!! LG: WORD '0B09 < LECTURE DU CURSEUR GRAPHIQUE. WORD CURSOR-ZERO*2 WORD 6 < < PERMUTATION DES BITS D'UN MOT X/Y : < INDPEX: WORD 1 < 1 : NE PAS PERMUTER LES BITS(X) , < 0 : LES PERMUTER SUIVANT 'PERX'. INDPEY: WORD 1 < DE MEME POUR LES BITS(Y). APERX: WORD PERX-1,X < MATRICE DE PERMUTATION DES < BITS D'UNE COORDONNEE X. APERY: WORD PERY-1,X < DE MEME POUR LES COORDONNEES Y. < < MATRICE DE TRANSFORMATION : < MAT: EQU $ DM22: WORD 0 M22: WORD 0 DM21: WORD 0 M21: WORD 0 DM12: WORD 0 M12: WORD 0 DM11: WORD 0 M11: WORD 0 TY: WORD 0 < VECTEUR TRANSLATION SUR LES Y. TX: WORD 0 < VECTEUR TRANSLATION SUR LES X. AMAT: WORD MAT-1,X < POUR INITIALISER LA MATRICE. INDTR: WORD 0 < 0 : APPLIQUER LA MATRICE DE < TRANSFORMATION SUR L'IMAGE < GRAPHIQUE ; 1 : NON. SAVEX: WORD 0 < SAVE X A L'INITIALISATION DE < LA MATRICE DE TRANSFORMATION. C1023: WORD 1024-1 < X/Y MAX DE L'ECRAN. < < PILES DE TRAVAIL : < APILE: WORD PILE-1 < PILE DE SODOME. STACK: DZS 10 < PILE DE TRAVAIL. < < SUITE DES MESSAGES (ICI A CAUSE DE SEG-ZERO UTILISEE DANS UN CPI) : < MMOD: BYTE 45;'6D ASCI "MODE (0=TEXTE, 1=CONFIGURATION, 2=COMPTAGE)=" MCHG: BYTE 6;'6D ASCI "CHGT? " MEFFAC: BYTE 7;'6D ASCI "ERASE?" MCOPY: BYTE 6;'6D ASCI "COPY? " MTRAX: BYTE 4;'6D ASCI "TX= " MTRAY: BYTE 4;'6D ASCI "TY= " MTR: BYTE 7;'6D ASCI "TRANS?" MSLA: BYTE 1;"/" MM11: BYTE 5;'6D ASCI "M11=" MM12: BYTE 5;'6D ASCI "M12=" MM21: BYTE 5;'6D ASCI "M21=" MM22: BYTE 5;'6D ASCI "M22=" MMAT: EQU $ WORD MSLA;MM22 WORD MSLA;MM21 WORD MSLA;MM12 WORD MSLA;MM11 WORD MTRAY;MTRAX MPAS: BYTE 9;'6D ASCI "PAS L/C=" MRED: BYTE 7;'6D ASCI "REDUC=" MPERX: BYTE 4;'6D ASCI "PX? " MPERY: BYTE 4;'6D ASCI "PY? " M0: BYTE 3;'6D ASCI "0=" M1: BYTE 3;'6D ASCI "1=" M2: BYTE 3;'6D ASCI "2=" M3: BYTE 3;'6D ASCI "3=" M4: BYTE 3;'6D ASCI "4=" M5: BYTE 3;'6D ASCI "5=" M6: BYTE 3;'6D ASCI "6=" M7: BYTE 3;'6D ASCI "7=" M8: BYTE 3;'6D ASCI "8=" M9: BYTE 3;'6D ASCI "9=" MA: BYTE 3;'6D ASCI "A=" MB: BYTE 3;'6D ASCI "B=" MC: BYTE 3;'6D ASCI "C=" MD: BYTE 3;'6D ASCI "D=" ME: BYTE 3;'6D ASCI "E=" MF: BYTE 3;'6D ASCI "F=" LMESS: VAL MF-ME < LONGUEUR DE TOUS LES MESSAGES < RELATIFS AU PERMUTATIONS X/Y. < LISTE DES CARACTERES DE REPRESENTATION : < LCAR1: EQU $ ASCI " ." < 000 000 000 000 000 001 ASCI ".-" < 000 000 010 000 000 011 ASCI ".-" < 000 000 100 000 000 101 ASCI "--" < 000 000 110 000 000 111 ASCI ".:" < 000 001 000 000 001 001 ASCI ",;" < 000 001 010 000 001 011 ASCI ";;" < 000 001 100 000 001 101 ASCI "--" < 000 001 110 000 001 111 ASCI ".:" < 000 010 000 000 010 001 ASCI ":;" < 000 010 010 000 010 011 ASCI ";+" < 000 010 100 000 010 101 ASCI ";+" < 000 010 110 000 010 111 ASCI "-+" < 000 011 000 000 011 001 ASCI "++" < 000 011 010 000 011 011 ASCI "++" < 000 011 100 000 011 101 ASCI "++" < 000 011 110 000 011 111 ASCI ".:" < 000 100 000 000 100 001 ASCI ":;" < 000 100 010 000 100 011 ASCI ":;" < 000 100 100 000 100 101 ASCI "++" < 000 100 110 000 100 111 ASCI ".-" < 000 101 000 000 101 001 ASCI "++" < 000 101 010 000 101 011 ASCI "+=" < 000 101 100 000 101 101 ASCI "==" < 000 101 110 000 101 111 ASCI "-;" < 000 110 000 000 110 001 ASCI ";=" < 000 110 010 000 110 011 ASCI "==" < 000 110 100 000 110 101 ASCI "==" < 000 110 110 000 110 111 ASCI "-=" < 000 111 000 000 111 001 ASCI "+=" < 000 111 010 000 111 011 ASCI "+=" < 000 111 100 000 111 101 ASCI "==" < 000 111 110 000 111 111 ASCI ".:" < 001 000 000 001 000 001 ASCI ":;" < 001 000 010 001 000 011 ASCI ";+" < 001 000 100 001 000 101 ASCI "++" < 001 000 110 001 000 111 ASCI ":)" < 001 001 000 001 001 001 ASCI "))" < 001 001 010 001 001 011 ASCI "/)" < 001 001 100 001 001 101 ASCI "//" < 001 001 110 001 001 111 ASCI ":/" < 001 010 000 001 010 001 ASCI "//" < 001 010 010 001 010 011 ASCI "//" < 001 010 100 001 010 101 ASCI "//" < 001 010 110 001 010 111 ASCI "++" < 001 011 000 001 011 001 ASCI "!!" < 001 011 010 001 011 011 ASCI "//" < 001 011 100 001 011 101 ASCI "/<" < 001 011 110 001 011 111 ASCI ";<" < 001 100 000 001 100 001 ASCI "<<" < 001 100 010 001 100 011 ASCI "/<" < 001 100 100 001 100 101 ASCI "/<" < 001 100 110 001 100 111 ASCI "++" < 001 101 000 001 101 001 ASCI "++" < 001 101 010 001 101 011 ASCI "++" < 001 101 100 001 101 101 ASCI "//" < 001 101 110 001 101 111 ASCI "=+" < 001 110 000 001 110 001 ASCI "++" < 001 110 010 001 110 011 ASCI "+<" < 001 110 100 001 110 101 ASCI "<<" < 001 110 110 001 110 111 ASCI "+<" < 001 111 000 001 111 001 ASCI "+<" < 001 111 010 001 111 011 ASCI "/<" < 001 111 100 001 111 101 ASCI "<<" < 001 111 110 001 111 111 ASCI ".:" < 010 000 000 010 000 001 ASCI ":;" < 010 000 010 010 000 011 ASCI ":;" < 010 000 100 010 000 101 ASCI ";+" < 010 000 110 010 000 111 ASCI ":;" < 010 001 000 010 001 001 ASCI ";;" < 010 001 010 010 001 011 ASCI ">>" < 010 001 100 010 001 101 ASCI ">>" < 010 001 110 010 001 111 ASCI ":;" < 010 010 000 010 010 001 ASCI "!!" < 010 010 010 010 010 011 ASCI "!!" < 010 010 100 010 010 101 ASCI "))" < 010 010 110 010 010 111 ASCI "++" < 010 011 000 010 011 001 ASCI "++" < 010 011 010 010 011 011 ASCI "))" < 010 011 100 010 011 101 ASCI ">>" < 010 011 110 010 011 111 ASCI ":;" < 010 100 000 010 100 001 ASCI "<<" < 010 100 010 010 100 011 ASCI "((" < 010 100 100 010 100 101 ASCI "(<" < 010 100 110 010 100 111 ASCI "++" < 010 101 000 010 101 001 ASCI "++" < 010 101 010 010 101 011 ASCI "++" < 010 101 100 010 101 101 ASCI "++" < 010 101 110 010 101 111 ASCI "++" < 010 110 000 010 110 001 ASCI "++" < 010 110 010 010 110 011 ASCI "(<" < 010 110 100 010 110 101 ASCI "<<" < 010 110 110 010 110 111 ASCI "+<" < 010 111 000 010 111 001 ASCI "++" < 010 111 010 010 111 011 ASCI "<<" < 010 111 100 010 111 101 ASCI "<<" < 010 111 110 010 111 111 ASCI "-+" < 011 000 000 011 000 001 ASCI ";;" < 011 000 010 011 000 011 ASCI ";+" < 011 000 100 011 000 101 ASCI "//" < 011 000 110 011 000 111 ASCI "==" < 011 001 000 011 001 001 ASCI "++" < 011 001 010 011 001 011 ASCI "++" < 011 001 100 011 001 101 ASCI ">>" < 011 001 110 011 001 111 ASCI "+?" < 011 010 000 011 010 001 ASCI "??" < 011 010 010 011 010 011 ASCI ">?" < 011 010 100 011 010 101 ASCI ">>" < 011 010 110 011 010 111 ASCI "=<" < 011 011 000 011 011 001 ASCI "))" < 011 011 010 011 011 011 ASCI ">>" < 011 011 100 011 011 101 ASCI "//" < 011 011 110 011 011 111 ASCI "/<" < 011 100 000 011 100 001 ASCI "+<" < 011 100 010 011 100 011 ASCI "<<" < 011 100 100 011 100 101 ASCI "<<" < 011 100 110 011 100 111 ASCI "=?" < 011 101 000 011 101 001 ASCI "++" < 011 101 010 011 101 011 ASCI "<<" < 011 101 100 011 101 101 ASCI "ZZ" < 011 101 110 011 101 111 ASCI "=?" < 011 110 000 011 110 001 ASCI "<<" < 011 110 010 011 110 011 ASCI "<<" < 011 110 100 011 110 101 ASCI "&&" < 011 110 110 011 110 111 ASCI "=?" < 011 111 000 011 111 001 ASCI "??" < 011 111 010 011 111 011 ASCI "??" < 011 111 100 011 111 101 ASCI "ZZ" < 011 111 110 011 111 111 ASCI ".:" < 100 000 000 100 000 001 ASCI ":;" < 100 000 010 100 000 011 ASCI ":;" < 100 000 100 100 000 101 ASCI "\\" < 100 000 110 100 000 111 ASCI "-\" < 100 001 000 100 001 001 ASCI ">>" < 100 001 010 100 001 011 ASCI ">>" < 100 001 100 100 001 101 ASCI ">>" < 100 001 110 100 001 111 ASCI "=\" < 100 010 000 100 010 001 ASCI "\\" < 100 010 010 100 010 011 ASCI ">>" < 100 010 100 100 010 101 ASCI "LL" < 100 010 110 100 010 111 ASCI "=\" < 100 011 000 100 011 001 ASCI "\\" < 100 011 010 100 011 011 ASCI "!L" < 100 011 100 100 011 101 ASCI "LL" < 100 011 110 100 011 111 ASCI ":\" < 100 100 000 100 100 001 ASCI "\\" < 100 100 010 100 100 011 ASCI "!L" < 100 100 100 100 100 101 ASCI "LL" < 100 100 110 100 100 111 ASCI "=\" < 100 101 000 100 101 001 ASCI "\\" < 100 101 010 100 101 011 ASCI ">>" < 100 101 100 100 101 101 ASCI "44" < 100 101 110 100 101 111 ASCI "=\" < 100 110 000 100 110 001 ASCI "\\" < 100 110 010 100 110 011 ASCI "!L" < 100 110 100 100 110 101 ASCI "LL" < 100 110 110 100 110 111 ASCI "=\" < 100 111 000 100 111 001 ASCI "**" < 100 111 010 100 111 011 ASCI ">>" < 100 111 100 100 111 101 ASCI ">L" < 100 111 110 100 111 111 ASCI "-\" < 101 000 000 101 000 001 ASCI "++" < 101 000 010 101 000 011 ASCI "??" < 101 000 100 101 000 101 ASCI "22" < 101 000 110 101 000 111 ASCI "=?" < 101 001 000 101 001 001 ASCI "77" < 101 001 010 101 001 011 ASCI "72" < 101 001 100 101 001 101 ASCI "22" < 101 001 110 101 001 111 ASCI "+?" < 101 010 000 101 010 001 ASCI "??" < 101 010 010 101 010 011 ASCI ">>" < 101 010 100 101 010 101 ASCI "FE" < 101 010 110 101 010 111 ASCI "??" < 101 011 000 101 011 001 ASCI "22" < 101 011 010 101 011 011 ASCI "FE" < 101 011 100 101 011 101 ASCI "EE" < 101 011 110 101 011 111 ASCI "=?" < 101 100 000 101 100 001 ASCI "??" < 101 100 010 101 100 011 ASCI "FE" < 101 100 100 101 100 101 ASCI "EE" < 101 100 110 101 100 111 ASCI "=?" < 101 101 000 101 101 001 ASCI "YY" < 101 101 010 101 101 011 ASCI "YH" < 101 101 100 101 101 101 ASCI "YU" < 101 101 110 101 101 111 ASCI "=\" < 101 110 000 101 110 001 ASCI "TT" < 101 110 010 101 110 011 ASCI "FE" < 101 110 100 101 110 101 ASCI "EE" < 101 110 110 101 110 111 ASCI "=?" < 101 111 000 101 111 001 ASCI "YY" < 101 111 010 101 111 011 ASCI "FE" < 101 111 100 101 111 101 ASCI "EE" < 101 111 110 101 111 111 ASCI "-\" < 110 000 000 110 000 001 ASCI "=\" < 110 000 010 110 000 011 ASCI "!\" < 110 000 100 110 000 101 ASCI "==" < 110 000 110 110 000 111 ASCI "=\" < 110 001 000 110 001 001 ASCI "??" < 110 001 010 110 001 011 ASCI "FE" < 110 001 100 110 001 101 ASCI "EE" < 110 001 110 110 001 111 ASCI "=\" < 110 010 000 110 010 001 ASCI "TT" < 110 010 010 110 010 011 ASCI "FE" < 110 010 100 110 010 101 ASCI "FE" < 110 010 110 110 010 111 ASCI "=\" < 110 011 000 110 011 001 ASCI "TZ" < 110 011 010 110 011 011 ASCI "FE" < 110 011 100 110 011 101 ASCI "EE" < 110 011 110 110 011 111 ASCI "=\" < 110 100 000 110 100 001 ASCI "TZ" < 110 100 010 110 100 011 ASCI "!L" < 110 100 100 110 100 101 ASCI "LL" < 110 100 110 110 100 111 ASCI "=?" < 110 101 000 110 101 001 ASCI "YY" < 110 101 010 110 101 011 ASCI "FE" < 110 101 100 110 101 101 ASCI "EE" < 110 101 110 110 101 111 ASCI "=\" < 110 110 000 110 110 001 ASCI "KK" < 110 110 010 110 110 011 ASCI "FE" < 110 110 100 110 110 101 ASCI "$$" < 110 110 110 110 110 111 ASCI "=H" < 110 111 000 110 111 001 ASCI "YH" < 110 111 010 110 111 011 ASCI "FE" < 110 111 100 110 111 101 ASCI "EE" < 110 111 110 110 111 111 ASCI "-?" < 111 000 000 111 000 001 ASCI "=?" < 111 000 010 111 000 011 ASCI "TC" < 111 000 100 111 000 101 ASCI "TC" < 111 000 110 111 000 111 ASCI "=\" < 111 001 000 111 001 001 ASCI "22" < 111 001 010 111 001 011 ASCI "22" < 111 001 100 111 001 101 ASCI "22" < 111 001 110 111 001 111 ASCI "TT" < 111 010 000 111 010 001 ASCI "TT" < 111 010 010 111 010 011 ASCI "TE" < 111 010 100 111 010 101 ASCI "TE" < 111 010 110 111 010 111 ASCI "TT" < 111 011 000 111 011 001 ASCI "PP" < 111 011 010 111 011 011 ASCI "TE" < 111 011 100 111 011 101 ASCI "MM" < 111 011 110 111 011 111 ASCI "=?" < 111 100 000 111 100 001 ASCI "TT" < 111 100 010 111 100 011 ASCI "FE" < 111 100 100 111 100 101 ASCI "EE" < 111 100 110 111 100 111 BYTE "=";'25 < 111 101 000 111 101 001 ASCI "MM" < 111 101 010 111 101 011 ASCI "MM" < 111 101 100 111 101 101 ASCI "MM" < 111 101 110 111 101 111 BYTE '25;'25 < 111 110 000 111 110 001 ASCI "PP" < 111 110 010 111 110 011 ASCI "FE" < 111 110 100 111 110 101 ASCI "EE" < 111 110 110 111 110 111 ASCI "##" < 111 111 000 111 111 001 BYTE "#";'40 < 111 111 010 111 111 011 ASCI "#$" < 111 111 100 111 111 101 BYTE '40;'40 < 111 111 110 111 111 111 XLCAR1: VAL $-LCAR1*2 LLCAR1: EQU ZERO+XLCAR1 PROG PAGE IF ORDI-"T",XWOR%,,XWOR% TIMAG: WORD IMAG < @RELATIVE IMAGE VIDEO. EOT #SIP SP3# XWOR%: VAL 0 PAGE < < < I N C R E M E N T A T I O N / D E C R E M E N T A T I O N < D E X E T D E Y : < < INCX: EQU $ XR A,X AD DELX < X<--(X)+(DELX). XR A,X JMP TRAXY DECX: EQU $ XR A,X SB DELX < X<--(X)-(DELX). XR A,X JMP TRAXY INCY: EQU $ XR A,Y AD DELY < Y<--(Y)+(DELY). XR A,Y JMP TRAXY DECY: EQU $ XR A,Y SB DELY < Y<--(Y)-(DELY). XR A,Y TRAXY: EQU $ RSR PAGE < < < D E P L A C E M E N T S C A R D I N A U X : < < < ARGUMENT : < A=@MESSAGE A EMETTRE. < < < RESULTAT : < B=0 : ALLER DANS LA DIRECTION DEMANDEE PAR < LE MESSAGE , < =1 : NE PAS Y ALLER. < INDICATEURS POSITIONNES PAR 'CPZR B'. < < CARD1: EQU $ < CAS DES ERREURS DE REPONSES. LA AMESS < RESTAURE : A=@MESSAGE. CARD: EQU $ < ENTREE NORMALE. STA AMESS < SAVE L'@MESSAGE EN CAS D'ERREUR. BSR APRINT < ENVOI DU MESSAGE ARGUMENT. LAD DEMREP SVC 0 < ENTREE DE LA REPONSE. LBY REP < A=REPONSE UTILISATEUR. < < REPONSES RECONNUES : < N : NE PAS Y ALLER (B=1) , < O : ALLER DANS LA DIRECTION DU MESSAGE (B=0). < LBI 0 < OUI A PRIORI ... CPI "O" JE CARD2 < OK , ON Y VA ... LBI 1 < NON A PRIORI. CPI "N" JNE CARD1 < ERREUR : REINITERROGATION ... CARD2: EQU $ CPZR B < POUR TEST EN RETOUR DE (B). RSR < RENVOIE B. PAGE < < < R E C U P E R A T I O N D E S S E U I L S : < < < FONCTION : < CETTE ROUTINE PERMET D'ENTRER < DES NOMBRE HEADECIMAUX AVEC < EMISSION PREALABLE D'UN MESSAGE , < ET ITERATION SUR FAUTE DE SYNTAXE. < LES SEUILS SONT EXPRIMES EN NOMBRE DE < POINTS ET DE LIGNE TELEVISION !!!! < < < ARGUMENT : < A=@MESSAGE DE DEMANDE DU SEUIL. < < < RESULTAT : < A=SEUIL DEMANDE. < < GETS3: EQU $ < ENTRY POUR ERREUR DE SYNTAXE. LA AMESS < RESTAURE : A=@MESSAGE. GETS: EQU $ < ENTRY NORMALE. STA AMESS < SAVE L'@MESSAGE AU CAS OU < UNE ERREUR DE SYNTAXE DANS LES < SEUILS AURAIT LIEU. BSR APRINT < EMISSION DU MESSAGE. LAD DEMSE SVC 0 < ENTRREE DES 3 CARACTERES. LXI 0 < X=INDEX DE PARCOURS DU BUFFER. LY DEMSE+2 < POUR TEST D'ARRET SUR (X). LBI 0 < CLEAR LE REGISTRE B. < < BOUCLE DE CONVERSION : < GETS1: EQU $ LBY &AREP < A=CARACTERE COURANT. CPI '04 JE GETS4 < ON ARRETE SUR 'EOT'. CPI '0D JE GETS4 < ON ARRETE SUR 'R/C'. ADRI -'30,A JAL GETS3 < ERREUR DE SYNTAXE. CPI 9 < EST-CE UN CHIFFRE ??? JLE GETS2 < OUI , OK. ADRI -'41+'39+1,A CPI 'A < EST-CE UNE LETTRE ??? JL GETS3 < NON , ERREUR. CPI 'F < VALIDATION SUPERIEURE ??? JG GETS3 < ERREUR. GETS2: EQU $ < OK , CHIFFRE HEXADECIMAL. SCRS 4 < MISE EN TETE DE A. SCLD 4 < CONCATENATION DANS B. ADRI 1,X < PROGRESSION DANS LE BUFFER. CPR X,Y < EST-CE FINI ??? JNE GETS1 < NON , ON CONTINUE .... GETS4: EQU $ < ARRET SUR 'EOM'. LR B,A < RENVOIE : A=SEUIL DEMANDE ... RSR PAGE < < < O P E R A T I O N S M A T R I C I E L L E S : < < < FONCTION : < CETTE ROUTINE APPLIQUE SI CELA A < ETE DEMANDE LES TRANSFORMATIONS < MATRICIELLES ET PERMUTATIONNELLES < SUR LES COORDONNEES X ET Y. < < < ARGUMENT : < X=NBRE DE COORDONNEES A TRANSFORMER. < < TRF: EQU $ CPZ INDTR < FAUT IL TRANSFORMER L'IMAGE < GRAPHIQUE ??? JNE E6010 < NON , ALLONS L'AFFICHER ... LAI SEG-ZERO STA ASEG < REINITIALISATION DU POINTEUR < DE LISTE GRAPHIQUE. < < APPLICATION DE LA TRANSFORMATION A 1 POINT : < TR: EQU $ LA &ASEG < Y. MP M12 DV DM12 PSR A < SAVE A=M12*Y. IC ASEG LA &ASEG < X. MP M11 DV DM11 < A=M11*X. PLR B < B=M12*Y. ADR B,A < A=M11*X+M12*Y. AD TX PSR A < SAVE A=M11*X+M12*Y+TX. LA &ASEG < X. MP M21 DV DM21 PSR A < SAVE A=M21*X. DC ASEG LA &ASEG < Y. MP M22 DV DM22 < A=M22*Y. PLR B < B=M21*X. ADR B,A < A=M21*X+M22*Y. AD TY < A=M21*X+M22*Y+TY. < < PERMUTATION DES BITS DE Y TRANSFORMEE : < CPZ INDPEY < FAUT-IL PERMUTER ??? JNE PRY1 < NON ... PSR X < ET OUI , ALORS SAVE X. LR A,Y < Y=COORDONNEE Y DONT ON PERMUTE < LES BITS. LBI 0 < INITIALISATION DE LA COORDONNEE < Y PERMUTEE. LXI 16 < 16 BITS DANS UN MOT .... PRY2: EQU $ LA &APERY < A=COEFFICIENT COURANT DE LA < MATRICE DE PERMUTATION DES Y. ANDR Y,A JAE PRY3 < INTERSECTION VIDE. SBT 15,X < INTERSECTION NON VIDE. PRY3: EQU $ JDX PRY2 < AU BIT PRECEDENT. LR B,A < A=COORDONNEE Y TRANSFORMEE < ET PERMUTEE ... PLR X < RESTAURE X. PRY1: EQU $ CP C1023 < VALIDATION Y. JLE TR1 < OK POUR LE MAX. LA C1023 < SI TROP GRAND, ON PREND LE MAX. TR1: EQU $ JAGE TR3 < OK , POUR LE MIN. LAI 0 < SI TROP PETIT , ON PREND LE MIN. TR3: EQU $ STA &ASEG < SAVE L'Y TRANSFORME. IC ASEG < PASSAGE A L'ENTREE SUIVANTE. PLR A < RESTAURE A=M11*X+M12*Y+TX. < < FAUT-IL PERMUTER LES BITS DE LA COORDONNEE X TRANSFORMEE ??? < CPZ INDPEX < ALORS ON PERMUTE ??? JNE PRX1 < NON. PSR X < OUI , ALORS SAVE X. LR A,Y < Y=COORDONNEE X TRANSFORMEE , < DONT ON PERMUTE LES BITS < SUIVANT LA MATRICE PERX. LBI 0 < INITIALISATION DE LA COORDONNEE < X PERMUTEE. LXI 16 < 16 BITS DANS UN MOT. PRX2: EQU $ LA &APERX < A=COEFFICIENT COURANT DE LA < MATRICE DE PERMUTATION. ANDR Y,A JAE PRX3 < INTERSECTION VIDE. SBT 15,X < INTERSECTION NON VIDE. PRX3: EQU $ JDX PRX2 < AU BIT PRECEDENT. LR B,A < A=COORDONNEE X TRANSFORMEE < PUIS PERMUTEE ... PLR X < ET ENFIN , RESTAURE X. PRX1: EQU $ CP C1023 < VALIDATION X. JLE TR2 < OK POUR LE MAX. LA C1023 < SI TROP GRAND, ON PREND LE MAX. TR2: EQU $ JAGE TR4 < OK POUR LE MIN. LAI 0 < SI TROP PETIT , ON PREND LE MIN. TR4: EQU $ STA &ASEG < SAVE L'X TRANSFORME. IC ASEG < PASSAGE A 6HENTREE SUIVANTE. JDX TR < PASSAGE AU POINT SUIVANT. E6010: EQU $ RSR PAGE < < < T E S T U N P O I N T : < < < ARGUMENT : < C=@IMAG , < X ET Y CONTIENNENT L'X ET L'Y DU POINT. < < < RESULTAT : < LE CARY EST POSITIONNE PAR UN 'TBT'. < < TEST: EQU $ PSR B,X,C LR Y,A < A=Y DU POINT A TESTER. MP NMPL ADR B,C LR X,A < A= X DU POINT A TESTER. SLRS 4 < DIVISION PAR 16. ADR A,C < C=@MOT CONTENANT LE POINT. LAI 'F ANDR A,X < X=NUMERO DU BIT REPRESENTANT < LE POINT X,Y DANS LE MOT (C). LA 0,C TBT 0,X < TEST DU POINT ARGUMENT. PLR B,X,C RSR PAGE < < < E X I S T E N C E E T V A L E U R < D U P O I N T C O U R A N T : < < < ARGUMENT : < X ET Y=COORDONNEES X ET Y DU POINT COURANT. < B=NUMERO DU VOISIN TESTE (11 ETANT < LE POINT COURANT) : < 07 08 09 < 10 11 12 < 13 14 15 < < < RESULTAT : < A=0 : (X,Y) EXISTE ET EST A 1 , < A#0 : (X,Y) N'EXISTE PAS , OU < (X,Y) EXISTE ET EST A 0. < < EXIST: EQU $ LAI 1 < LE POINT (X,Y) N'EXISTE PAS < A PRIORI ... CPZR X < VALIDATION COORDONNEE X. JL NEXIST < (X,Y) N'EXISTE PAS. CPZR Y < VALIDATION COORDONNEE Y. JL NEXIST < (X,Y) N'EXISTE PAS. LR X,A CP NPOINT < VALIDATION COORDONNEE X. JG NEXIST < (X,Y) N'EXISTE PAS. LR Y,A CP NLIG < VALIDATION COORDONNEE Y. JG NEXIST < NX,Y) N'EXISTE PAS. < < CAS OU LE POINT (X,Y) EXISTE : < 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 (X,Y) DANS LE MOT ((C)). LA 0,C < ACCES AU MOT. TBT 0,X < TEST DU POINT. PLR B,X,C JNC NXIST < LE POINT EST A 0... XR B,X < X=NUMERO DU VOISIN TESTE. LA PATER < ACCES A LA CONFIGURATION < COURANTE. SBT 0,X < MARQUAGE DU VOISIN A 1. STA PATER < MAJ CONFIGURATION COURANTE. XR B,X < RESTAURE B ET X. NXIST: EQU $ LAI 1 SBCR A < A=0 : LE POINT (X,Y) EST A 1. JANE NEXIST < LE POINT N'EXISTE PAS. IC KPOINT < SI LE POINT EXISTE ON LE COMPTE. NEXIST: EQU $ RSR PAGE < < < E M I S S I O N D ' U N M E S S A G E : < < < FONCTION : < EDITER UN MESSAGE ; DE PLUS SI < LE DEMANDEUR EST SOUS :SYS , < CETTE ROUTINE STABILISE L'IMAGE < VIDEO COURANTE. < < < ARGUMENT : < A=@MOT DU MESSAGE. < < PRINT: EQU $ PSR C < SAVE L'@ IMAG. LR A,C < C=@MOT DU MESSAGE. ADR A,A ADRI 1,A < A=@OCTET DU MESSAGE. STA DEMOUT+1 < MAJ DE DEMOUT. LBY 0,C < A=LONGUEUR DU MESSAGE. STA DEMOUT+2 < MAJ DE DEMOUT. LAD DEMOUT SVC 0 < EMISSION MESSAGE. PLR C < RESTAURE C=@IMAGE VIDEO. IF ORDI-"T",XWOR%,,XWOR% LA ASP3 < A=@ROUTINE DE STABILISATION. JAE PRINT1 < ON N'EST PAS SOUS :SYS !!! WORD '1EC5 < SOUS :SYS : STABILISATION DE < L'IMAGE VIDEO. PRINT1: EQU $ XWOR%: VAL 0 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 ??? < < < FONCTION : < CETTE ROUTINE PERMET D'INTERROGER < L'UTILISATEUR SUR UN HARD-COPY < EVENTUEL , ET PERMET EN TOUT CAS < D'INTERROMPRE L'EMISSION ET PAR LA < DEMANDE DE COPY D'EMETTRE UN R/C < FORT UTILE DANS LE CAS OU LES CARACTERES < GRAPHIQUES SONT RECUPERES PAR UNE < LIGNE BOUCLEE !!! < < RCOPY: EQU $ < < FAUT-IL FAIRE UN HARD-COPY DE L'IMAGE : < LAD CG SVC 0 < MISE EN ALPHA DE LA VISU. < (UTILE DANS LE CAS NVP='02). HCOPY: EQU $ LA AMCOPY BSR ACARD < ENVOI D'1N MESSAGE , ET RENVOIIE < LA REPONSE : B=0 SI OUI. JNE NCOPY < NON , RETOUR A 'GE'. LAD COPY SVC 0 LAD SLEEP SVC 0 < ET ATTENTE DE 15 SECONDES DE < FIN DE HARD-COPY. JMP HCOPY < FAUT-IL EN FAIRE ENCORE UNE ??? NCOPY: EQU $ RSR PAGE < < < R E P R O D U C T I O N D ' U N E I M A G E V I D E O < A L ' A I D E D E C A R A C T E R E S < A L P H A N U M E R I Q U E S : < < < FONCTION : < LE PROCESSEUR 'VA' PERMET DE REPRODUIRE < UNE IMAGE VIDEO A L'AIDE DE CARACTERES < ALPHA-NUMERIQUES SUIVANT 3 MODES : < 0 : L'ITEM1 DOIT ALORS CONTENIR UN TEXTE < TERMINE PAR UN CARACTERE DE FIN < PRECISE DANS LE 1ER CARACTERE; < LA REPRODUCTION SE FAIT ALORS < SEQUENTIELLEMENT A L'AIDE DU TEXTE. < 1 : CHAQUE POINT EST MATERIALISE < PAR UN CARACTERE FONCTION DE LA < CONFIGUARTION DES 9 VOISINS < <Y COMPRIS LE POINT COURANT). < 2 : IDEM A 1, MAIS FONCTION DU < NOMBRE DE VOISINS (IDEM). < < 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 STACK. < < DECOMPTAGE DES ENTREES : < IC KIN JG GOGE < KIN>0 , IL NE S'AGIT PAS DE < LA 1ERE ENTREE ; ON EST A LA < SUITE D'UN ALT-MODE. < < CAS DE LA 1ERE ENTREE : < < SAVE L'EN-TETE DE L'ITEM1 : < LB ASI1 < B=@ZONE DE SAVE. LA I1 < A=@EN-TETE DE L'ITEM1. LXI LNOM+1 MOVE < SAVE L'EN-TETE DE L'ITEM1. IC IS < IS=1 : EN-TETE SAUVEGARDEE. < < ALLOCATION DE 8K MOTS : < LAD DEMMEM SVC 0 IF ORDI-"T",XWOR%,,XWOR% < < ACCES A L'ACN DU DEMANDEUR : < WORD '1E25 < (A,B)=ACN DU DEMANDEUR. CP ACNSYS < EST-CE :SYS ??? JNE E3200 < NON. LR B,A < PEUT-ETRE ... CP ACNSYS+1 < EST-CE :SYS ??? JE E3201 < OUI. E3200: EQU $ < CAS OU L'ON N'EST PAS SOUS :SYS. STZ ASP3 < PAS DE STABILISATION DE L'IMAGE. E3201: EQU $ < CAS OU L'ON EST SOUS :SYS. XWOR%: VAL 0 < < ACCES ET VALIDATION DE L'IAMGE VIDEO : < LAD MNOM BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMIN SVC 0 < ENTREE DU NOM DE L'IMAGE VIDEO. LAI '05 STBY SGN < NVP DE LOAD SOUS <ACN>. LAD SGN SVC 0 < TENTATIVE DE LOAD IMAGE. JE E1000 < OK , ON A TROUVE L'2MAGE. LAI '06 STBY SGN < SINON , ON ESSAYE UN NVP DE < LOAD SOUS :SYS. LAD SGN SVC 0 < TENTATIVE DE LOAD SOUS :SYS ... JE E1000 < OK , ON A TROUVE L'IMAGE. < < T R A I T E M E N T D E S E R R E U R S : < E1100: EQU $ LAD MERR BSR APRINT < ENVOI D'UN MESSAGE D'ERREUR. < < R E T O U R A ' G E ' : < GOGE: EQU $ LAD CG SVC 0 < REMISE EVENTUELLE DE LA VISU < D'EMISSION EN APLHA-NUMERIQUE. < < RESTAURATION DE L'EN-TETE DE L'ITEM1 : < CPZ IS < L'EN-TETE A-T'ELLE ETE < SAUVEGARDEE ??? JE NIS < NON , RIEN A FAIRE ... LA ASI1 < A=@ZONE DE SAVE. LB I1 < B=@EN-TETE DE L'ITEM1. LXI LNOM+1 MOVE < RESTAURATION DE L'EN-TETE ITEM1. NIS: EQU $ < < RESTAURATION DE L'ESPACE MEMOIRE : < LA APILE LR A,K < REINITIALISATION DE K SUR < LA PILE DE SODOME. LAD RELMEM SVC 0 < RETOUR A 4K MOTS. < < CHARGEMENT DE L'OVERLAY 'GE' : < LA NGE STA 0,W < MISE EN PLACE DU NOM DE 'GE' < EN TETE DE LA BRANCHE. LAI '06 STBY DEMSGN < NVP DE LOAD SOUS :SYS. E101: EQU $ LAD DEMSGN < A=@DEMSGN ; W=@BRANCH. BSR AOVL < TENTATIVE D'OVERLAY. LAD DEMCCI SVC 0 < SI OVERLAY IMPOSSIBLE , ON < FAIT UN RETOUR AU CCI. JMP E101 < PUIS NOUVELLE TENTATIVE SI !GO. < < I N I T I A L I S A T I O N : < E1000: EQU $ < < VALIDATION DE L'IMAGE VIDEO : < LA &ALONG CPI -3 JL E1100 < ERREUR : PAS VIDEO !!! JAGE E1100 < ERREUR : FLOPPY .... IF ORDI-"S",XWOR%,,XWOR% LAD STABIL < VISUALISATION IMAGE VIDEO. SVC 0 XWOR%: VAL 0 < < < C O N V E R S I O N G R A P H I Q U E : < < GRAPH: EQU $ < < CHOIX DU FACTEUR DE REDUCTION : < LA AMRED BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMREP SVC 0 < LECTURE DU FACTEUR DE REDUCTION. < < FACTEURS DE REDUCTION RECONNUS : < 0 : GRANDEUR REELLE , < 1 : IMAGE/2 , < 2 : IMAGE/4. < LBY REP < A=CARACTERE LU. ADRI -'30,A < TRANSLATION NUMERIQUE. JAL GRAPH < ERREUR : CARACTERE NON RECONNU. CPI DEDX+DEDY/2 < VALIDATION SUPERIEURE. JG GRAPH < ERREUR : CARACTERE NON RECONNU. NGR A,A < OK (0,1,2) : ON L'INVERSE. STA REDUC < MISE EN PLACE DU FACTEUR DE < REDUCTION. < < FAUT-IL TRANSFORMER L'IMAGE ??? < LA AMTR BSR ACARD < ENVOI D'UN MESSAGE ET LECTURE < DE LA REPONSE (OUI=0). STB INDTR < SAVE L'INDICATEUR DE TRANSFO. JNE E6001 < ET NON , ... E6100: EQU $ < < ACCES AU CURSEUR GRAPHIQUE DE LA VISU : < LAD OGT SVC 0 < OPEN GRAPHIQUE DE LA VISU '0B/'02 JE E6101 < OK. LAI '02 < SI NON , CHANGEMENT DE NVP. STBY OGT STBY CU STBY LG LAD OGT < TRY AGAIN , MAIS SANS REBOUCLAGE, SVC 0 < AU CAS OU ON SERAIT EN BATCH !!! E6101: EQU $ LAD CU SVC 0 < MISE EN FONCTION DU CURSEUR < GRAPHIQUE. LAD LG SVC 0 < ET LECTURE DE CELUI-CI. LBY CURSOR < A=CARACTERE DE DEBLOCAGE. LXI 10 < NE PAS L'UTILISER A PRIORI ('N'), < DONC 10 NBRES A ENTRER. < REPONSES RECONNUES : < O : TX ET TY SONT DONNEES PAR LE CURSEUR GRAPHIQUE, < N : TX ET TY SONT RENTRES AU CLAVIER. CPI "N" < FAUT-IL UTILISER LE CURSEUR ??? JE E6102 < NON , 10 NBRES A ENTRER. CPI "O" < EST-CE OUI ??? JNE E6100 < RIEN COMPRIS , REINTERROGATION. LA CURSOR+1 < OUI : A=Y(CURSEUR) , STA TY < CE QUI DONNE TRANSLATION SUR Y. LA CURSOR+2 < A=X(CURSEUR) , STA TX < CE QUI DONNE TRANSLATION SUR X. LXI 8 < IL N'Y A PLUS QUE LES 8 < COEFFICIENTS DE LA MATRICE < A ENTRER. E6102: EQU $ < < ENTREE DE LA MATRICE DE TRANSFORMATION : < IC DEMSE+2 < POUR ENTRER 4 CARACTERES. E6002: EQU $ STX SAVEX < SAVE X (PAS DE PLACE DANS < LA PILE !!!) LA &AMMAT < RECUPERATION DU MESSAGE (X). BSR AGETS < ENVOI DU MESSAGE ET CONVERSION < DU COEFFICIENT CORRESPONDANT. LX SAVEX < RESTAURE X. STA &AMAT < ET SAVE LE COEFFICIENT. JDX E6002 < AU SUIVANT. < < FAUT-IL PERMUTER LES COORDONNEES TRANSFORMEES X : < LA AMPERX BSR ACARD < ENVOI INTERROGATION ET LECTURE < DE LA REPONSE DANS B. STB INDPEX < SAVE LA REPONSE POUR X. JNE E6300 < NON ... < < ENTREE DE LA MATRICE DE PERMUTATION DES BITS DE X TRANSFORMEE : < LXI 16 < 1L COEFFICIENTS A ENTRER. LA AP < A=@1ER MESSAGE A EMETTRE. E6301: EQU $ STX SAVEX < SAVE LE DECOMPTEUR X. PSR A < SAVE L'@MESSAGE. BSR AGETS < ENVOI MESSAGE (A) ET ENTREE < D'UN COEFFICIENT. LX SAVEX < RESTAURE X. STA &APERX < SAVE LE COEFFICIENT. PLR A < RESTAURE L'@MESSAGE. ADRI -LMESS,A < PASSAGE AU MESSAGE PRECEDENT. JDX E6301 < AU PRECEDENT .... < < FAUT-IL PERTMUTER LES BITS DES COORDONNEES Y TRANSFORMEES : < E6300: EQU $ LA AMPERY < ENVOI INTERROGATION ET ENTREE < REPONSE DANS B. BSR ACARD STB INDPEY < SAVE LA REPONSE. JNE E6302 < NON ... < < ENTREE DE LA MATRICE DE PERMUTATION DES BITS DE Y TRANSFORMEE : < LXI 16 < 1L COEFFICIENTS A ENTRER. LA AP < A=@1ER MESSAGE A EMETTRE. E6303: EQU $ STX SAVEX < SAVE X. PSR A < SAVE L'@MESSAGE. BSR AGETS < EDITION MESSAGE ET ENTREE < D'UN COEFFICIENT. LX SAVEX < RESTAURE X. STA &APERY < SAVE LE COEFFICIENT. PLR A < RESTAURE L'@MESSAGE. ADRI -LMESS,A < PASSAGE AU MESSAGE PRECDENT. JDX E6303 < AU PRECEDENT ... E6302: EQU $ DC DEMSE+2 < RETOUR A 3 CARACTERES. LA AMTR BSR ACARD < FAUT-IL RERENTRER LES PARAMETRES? JE E6100 < ET OUI , ON RECOMMENCE ... E6001: EQU $ < < DEMANDE DU PAS DE PARCOURS DES LIGNES ET DES COLONNES : < IC DEMSE+2 < AFIN DE DEMANDER 4 CARACTERES. PAS2: EQU $ < CAS DES ERREURS DE PAS. LA AMPAS BSR AGETS < ENVOI DU MESSAGE ET RENVOI < DANS A DES 2 PAS CONCATENES. LB M101 < 2 PAS EGAUX A 1 A PRIPORI. JAE PAS1 < SI LE RESULTAT EST NUL ON < PREND DES PAS UNITAIRES A PRIORI. SLRD 16 < SINON : B<--(A) , ET A=0. PAS1: EQU $ SCRD 8 < DECONCATENATION. SCLS 8 < CADRAGE CORRECT DE A. JAE PAS2 < PAS DE COLONNE=0 : ERREUR. CPZR B JE PAS2 < PAS DE LIGNE=0 : ERREUR. STA PCOL < PAS DE PASSAGE D'UN POINT A < L'AUTRE D'UNE LIGNE. STB PLIG < PAS DE PASSAGE D'UNE LIGNE < A L'+UTRE. < < ENTREE DES PAS D'INCREMENTATION/DECREMENTATION DE X ET Y : < PAS4: EQU $ LAD MDEL BSR AGETS < ENVOI D'UN MESSAGE ET LECTURE DES < 2 CARACTERES REPONSES. LB M101 < 2 PAS EGAUX A 1 A PRIORI. JAE PAS3 < ET OUI =1 ... SLRD 16 < CADRAGE DANS B. PAS3: EQU $ SCRD 8 < ENTREE DE DELY DANS A. SCLS 8 < CADRAGE CORRECT DE DELY. JAE PAS4 < ERREUR , DELY=0. CPZR B < VALIDATION DE DELX. JE PAS4 < ERREUR , DELX=0. STA DELY < OK , MAJ DE DELY. STB DELX < OK , MAJ DE DELX. DC DEMSE+2 < RESTAURATION DE CODEM=3. < < CHOIX DU MODE DE REPRODUCTION : < MOD1: EQU $ LAD MMOD BSR APRINT < ENVOI D'UNE INVITATION. LAD DEMREP SVC 0 < ENTREE DU MODE DEMANDE (0, 1, 2). LBY REP < A=MODE. ADRI -'30,A < CONVERSION BINAIRE. JAL MOD1 < ERREUR. CPI 2 JG MOD1 < ERREUR. ADRI -1,A < A=-1/0/+1. STA IMOD < SAVE LE MODE DEMANDE. < < INITIALISATIONS SPECIFIQUES : < JAE MOD2 < CAS CONFIGURATION. JAGE MOD3 < CAS COMPTAGE. < < -1 : CAS DES TEXTES : < LBY &TITEM1 < ACCES AU TYPE DE ITEM1. CPI "T" < EST-CE TYPE 'TEXTE' ??? JNE MOD1 < NON, TEXTE REFUSE... LXI 0 < INDEX DU 1ER CARACTERE. LBY &AITEM1 < ACCES AU 1ER CARACTERE, QUI STA KITEM1 < EST LE CARACTERE D'ARRET. JMP MOD4 < ET C'EST TOUT. < < +1 : CAS DU COMPTAGE : < MOD3: EQU $ LAD MCHG BSR ACARD < FAUT-IL CHANGER LES CODES ??? JNE MOD4 < NON, C'EST TOUT... LAD MCAR2 < OUI, ON ENVOIE AU PREALABLE BSR APRINT < LES CODES INITIAUX. LAD CAR2I SVC 0 < PUI, ON ENTRE LES NOUVEAUX. JMP MOD4 < ET C'EST TOUT... < < 0 : CAS DES CONFIGURATIONS : < MOD2: EQU $ < < FAUT-IL EFFACER L'ECRAN DE LA VISU DE RECEPPTION : < MOD4: EQU $ LA AMEFFA BSR ACARD < B=0 S'IL FAUT EFFACER L'ECRAN. < < CHOIX VISU D'EMISSION : < E1200: EQU $ LAD OG SVC 0 < TENTATIVE D'OPEN GRAPHIQUE. JE E110 < OK. < < CHANGEMENT DE VISU D'EMISSION : < LAI '02 < ON REMPLACE NVP='0B PAR NVP='02. STBY ERASE < MAJ DE ERASE. STBY OG < MAJ DE OG. STBY CG < MAJ DE CG. STBY WG < MAJ DE WG. STBY COPY < MAJ DE COPY. STBY DEMCAR < MAJ DE DEMCAR. JMP E1200 < PUIS NOUVELLE TENTATIVE D'OG. E110: EQU $ CPZR B < FAUT-IL EFFACER L'ECRAN ??? JNE NEFFAC < NON ... LAD ERASE SVC 0 < OUI , EFFACEMENT DE L'ECRAN < DE LA VISU DE RECEPTION. NEFFAC: EQU $ LAD OG SVC 0 < RE-OPEN GRAPHIQUE EVENTUEL , < AU CAS OU UN ERASE AURAIT < ETE FAIT SUR LA VISU ... < < C O N V E R S I O N V I D E O- < G R A P H I Q U E : < LXI 0 < INDEX DE BALAYAGE VERTICAL (Y). < < BOUCLE DE BALYAGE VERTICAL (Y) : < E1001: EQU $ LR X,Y < Y=COORDONNEE Y DE BALYAGE. PSR X < SAVE LA COORDONEE Y (X !!!). LXI 0 < INDEX DE BALAYAGE HORIZONTAL (X). < < BOUCLE DE BALYAGE HORIZONTAL (X) : < E1002: EQU $ PSR X,Y < SAVE LES COORDONNES X ET Y < DU POINT COURANT. STZ KPOINT < RAZ DU NBRE DE VOISIN DE (X,Y). STZ PATER < RAZ DE LA CONFIGURATION. CPZ IMOD < TEST DU MODE CHOISI : JGE MOD20 < CAS COMPTAGE/CONFIGURATION. < < INSERTION D'UN TEXTE : < LBI 11 < X,Y (POINT COURANT). BSR AEXIST JANE FIN2 < LE POINT COURANT N'EXISTE PAS, < DONC RIEN A FAIRE.... PSR X < S'IL EXISTE ON SAVE SON X; < (SON Y EST BON). JMP MOD8 < VERS L'EDITION... < < CAS DES COMPTAGES/CONFIGURATIONS : < MOD20: EQU $ BSR ADECX BSR ADECY LBI 7 < X-DX,Y-DY. BSR AEXIST BSR AINCX LBI 8 < X,Y-DY. BSR AEXIST BSR AINCX LBI 9 < X+DX,Y-DY. BSR AEXIST BSR AINCY LBI 12 < X+DX,Y. BSR AEXIST BSR ADECX LBI 11 < X,Y (POINT COURANT). PSR X < SAVE LE POINT PSR Y < COURANT. BSR AEXIST BSR ADECX LBI 10 < X-DX,Y. BSR AEXIST BSR AINCY LBI 13 < X-DX,Y+DY. BSR AEXIST BSR AINCX LBI 14 < X,Y+DY. BSR AEXIST BSR AINCX LBI 15 < X+DX,Y+DY. BSR AEXIST PLR Y < RESTAURE Y(POINT COURANT). < < CHOIX DU CARACTERE DE REPRESENTATION : < MOD5: EQU $ CPZ IMOD < DISCRIMINATION... JG MOD6 < CAS DU COMPTAGE. JE MOD7 < CAS DES CONFIGURATIONS. WORD '1E16 < E R R E U R P R O G !!! < < CAS DES TEXTES : < MOD8: EQU $ IC XITEM1 < PROGRESSION INDEX ITEM1. LA XITEM1 CP NCP < VALIDATION DE XITEM1. JL MOD9 < OK... MOD10: EQU $ STZ XITEM1 < REINITIALISATION DE XITEM1. JMP MOD8 < ET ON RECOMMENCE... MOD9: EQU $ LR A,X < X=INDEX COURANT ITEM1. LBY &AITEM1 < A=CARACTERE COURANT. CP KITEM1 < EST-CE LE CARACTERE DE FIN ??? JNE MOD11 < NON, VERS L'EDITION. ADRI -1,X < OUI, A-T'ON DEJA EDITE ??? CPZR X JNE MOD10 < OUI, ON REINITIALISE XITEM1. DC XITEM1 < NON, C'EST DONC KITEM1 < QUE L'ON VA EDITER... JMP MOD11 < VERS L'EDITION. < < CAS DES CONFIGURATIONS : < MOD7: EQU $ LA PATER < A=CONNFIGUARTION DES VOISINS. CP LOCAR1 < VALIDATION... JL MOD12 < OK.. WORD '1E16 < E R R E U R P R O G !!!! MOD12: EQU $ LR A,X LBY &ALCAR1 < A=CARACTERE CHOISI. JMP MOD11 < VERS L'EDITION. < < CAS DU COMPTAGE : < MOD6: EQU $ LA KPOINT < A=NBRE DE VOISINS. CPI LLCAR2 < VALIDATION... JL MOD13 < OK... WORD '1E16 < E R R E U R P R O G !!! MOD13: EQU $ LR A,X LBY &ALCAR2 < A=CARACTERE CHOISI. < < EDITION : < MOD11: EQU $ CPI " " JLE FIN1 < LES CARACTERES 'SPACE' ET < CTRL-XXX N'ONT PAS BESOIN < D'ETRE EDITES... STBY MCAR < RANGEMENT DU CARACTERE. < < MISE DES COORDONNEES AU FORMAT GRAPHIQUE : < LX REDUC < X=FACTEUR DE REDUCTION. LR Y,A < A=COORDONNEE Y. SB NLIG NGR A,A SLLS DEDY,X STA SEG+Y PLR A < A=COORDONNEE X. SLLS DEDX,X STA SEG+X LXI 1 < 1 COUPLE (X,Y) A TRANSFORMER. BSR ATRF LAD OG SVC 0 < OPEN GRAPHIQUE. LAD WG SVC 0 < POSITIONNEMENT EN X,Y. LAD CG SVC 0 < CLOSE GRAPHIQUE. LAD DEMCAR SVC 0 < EDITION DU CARACTERE CHOISI. FIN2: EQU $ < < CHANGEMENT DE POINT COURANT SUR LA LIGNE : < E1003: EQU $ PLR X,Y < RESTAURE LE POINT (X,Y). LA PCOL < PAS DE PASSAGE D'UN POINT < A L'AUTRE. ADR X,A < BALAYGE HORIZONTAL. CP NPOINT < EST-CE FINI ??? JG E6000 < OUI, CHANGEMENT DE LIGNE. LR A,X BR AE1002 < NON , ON CONTINUE A BALAYER. E6000: EQU $ < < CHANGEMENT DE LIGNE : < PLR X < RESTAURE LE NUMERO DE LIGNE. LA PLIG < PAS DE PASSAGE D'UNE LIGNE < A L'AUTRE. ADR X,A < BALAYAGE VERTICAL. CP NLIG < EST-CE FINI ??? JG FIN < ET OUI... LR A,X BR AE1001 < ET NON , ON CONTINUE A BALAYER. FIN: EQU $ BSR ARCOPY < HARD-COPIES ET TEMPORISATION ??? BR AGOGE < ET C'EST FINI ... FIN1: EQU $ ADRI -1,K < IL RESTE EN EFFET UN JMP FIN2 < REGISTRE X EMPILE. < < < M A T R I C E S D E P E R M U T A T I O N S < D E S B I T S D E X E T Y : < < PERX: EQU $ PERY: EQU $+16 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'ASSEMBLEGE SI < MAUVAISE IMPLANTATION. DZS X10+1 EOT #SIP GEN PROCESSEUR#