IDP "IDLE - RELEASE 25/10/1979" IDP "JOHN F. COLONNA" EOT #SIP DEFINITION CMS5# NVISU:: VAL 8 < NOMBRE DE VISUS DU SYSTEME. HNAME:: VAL 12 < EMPLACEMENT DU NOM D'UNE 'DCT'. ACNESC:: VAL '45 < ACCES A <ACNESC> DANS 'DCTESC'. NSPTBU:: VAL '4F < ACCES A LA LISTE DES UTILISATEURS. NTRIES:: VAL '31 < 'NTRIES' DES DCT. SAVEX:: VAL 'FF84 < DEPLACEMENT PAR RAPPORT A LA < BASE C DE CMS4 D'ACCES A < L'INDICATEUR D'ETAT DE LA TRACE. NSPDK2:: VAL '24 < NSP DU DISQUE DK2. NSPDK3:: VAL '25 < NSP DU DISQUE DK3. NSPSWS:: VAL '62 < NSP D'ACCES A L'ORGANE DE SWAPPING. NSPVLU:: VAL '63 < NSP D'ACCES AU DESCRIPTEUR DE VOLUME < EVENTUELLEMENT MONTE ET DONT LE FORAMT < EST LE SUIVANT : VOLNUM:: VAL 0 < NUMERO DU VOLUME (=0 SI PAS MONTE), VOLNSP:: VAL VOLNUM+1 < NSP DU DISQUE SUPPORT, VOLACN:: VAL VOLNSP+1 < 'ACN' DU DEMANDEUR. VOLCLE:: VAL VOLACN+2 < CLEF1 DE VALIDATION, VOL23:: VAL VOLCLE+1 < CLEF2 DE VALIDATION, VOLNIM:: VAL VOL23+1 < NOMBRE DE BLOCS LIBRES, VOLPAT:: VAL VOLNIM+1 < ZONE DE PATCH, VOLTAB:: VAL VOLPAT+2 < TABLE D'ALLOCATION. NSPPR1:: VAL '03 < NSP DU PROCESSEUR ESCLAVE. NSPDKU:: VAL '23 < NSP DU DISQUE AMOVIBLE UTILISATEUR. NSPDKM:: VAL '24 < NSP DU DISQUE AMOVIBLE SYSTEME. NSPDKF:: VAL '25 < NSP DU DISQUE SYSTEME. NSPAST:: VAL '60 < ACCES AU NOMBRE DE NOEUDS LIBRES. NSPHES:: VAL '7C < NSP DES HORLOGES DE SWAPPING. NSPETA:: VAL '74 < NSP D'ACCES A L'ETAT DU SYSTEME. BRCDKF:: VAL 4 < 1 : LE DKF PEUT GARDER LE JEU DE < REGISTRES 'HDC' QU'ON LUI A ALLOUE. BTRYDK:: VAL 7 < 0 : SYSER SUR ERREURS DKF & DKM, < 1 : PAS DE SYSER... OTODLN:: VAL 8 < 1 : IL EST POSSIBLE DE DETRUIRE < UN NOM DE FICHIER EXISTANT. OTOCOP:: VAL 9 < 1 : COPY MEMOIRE --> DKF OFF. OTOCFM:: VAL 10 < 1 : COPY DKF --> DKM OFF. MKCOP:: VAL '1C < INCREMENT DES PERIODES DE COPY. NSPMV:: VAL '75 < NSP D'ACCES AU MOT DE CONTROLE DE < LA MEMOIRE VIRTUELLE. MEMVN:: VAL 14 < 1 : LE SGN ACCEDE A DKB. MEMVF:: VAL 15 < 1 : LE SGF ACCEDE A DKB. MEMXXX:: VAL 11 < 0 : TOUTES LES OPERATIONS DANGEREUSES < SONT INTERDITES... MEMVO:: VAL 8 < 1 : OPTIMISATION DES LECTURES SGF. NSPEDF:: VAL '65 < NSP D'ACCES A 'TEDF'. FILELI:: VAL '0B < POUR DETECTER LES FICHIERS LIBRES, ET < ET DONC D'ETAT '0 ET '4. FIMASK:: VAL '0F < MASQUE ETAT FICHIER... FIOPEN:: VAL '0F < ETAT "FICHIER OUVERT", FIDELE:: VAL '0C < ETAT "FICHIER EN ATTENTE DE DELETE". LTEDF:: VAL 128 < NOMBRE DE MOTS DE 'TEDF', NBITEF:: VAL 4 < NOMBRE DE BITS D'UN ETAT FICHIER. NSPNSL:: VAL '66 < NSP D'ACCES A NSL. NSPTT:: VAL '68 < NSP D'ACCES AU NOEUD DU MAIL < DU CCI DE CMS4. LMAIL:: VAL 80 < LONGUEUR MAX D'UN MAIL. NSPASS:: VAL '69 < NSP D'ACCES AU 1ER CARACTERE < DU MOT DE PASSE DE :SYS. < < < E N - T E T E D U P R O C E S S E U R : < < PROG ZERO: EQU $ LOCAL LOC: EQU $ IF ZERO-LOC,,X100, IF ERREUR VOLONTAIRE SI LOC#ZERO !!!!! X100: VAL 0 DZS 'B ASCI "ID " < NOM DU PROCESSEUR 'ID '. BYTE '04;'D0 < <EOT>-'P'+'80. WORD '100 < NBRE D'OCTETS NECESSAIRE A < IDLE (DESTINE A !CALL). WORD IDLE < P INITIAL (UTILISE PAR !CALL , < ET LORS DES APPELS PAR !IDLE). WORD LOC1+'80 < @LOCAL DU PROCESSEUR. < < < I N I T I A L I S A T I O N : < < PROG IDLE: EQU $ < P DE LANCEMENT DE IDLE='12. LRP L LA -1,L LR A,L BR -'80,L < VERS L'ENTRY DU PROCESSEUR. PAGE < < < C O M M O N D E M E S S A G E S : < < COMMON COMON: EQU $ MMV1: BYTE 21;'6D ASCI "PAS DE VOLUME MONTE!" MMV2: BYTE 15;'6D ASCI "VOLUME NUMERO=" MMV3: BYTE 11;" ";"/";" " ASCI "ACN=" MMVACN: ASCI ":XYZ" MMV4: BYTE 15;" ";"/";" " ASCI "FREE BLOCKS=" < < < L O C A L : < < MM1: BYTE 38;'6D ASCI "DKF PEUT-IL GARDER SES REGISTRES HDC? " MM2: BYTE 34;'6D ASCI "DELETE NOM DE FICHIER AUTORISE? " MM3: BYTE 6;'6D ASCI "COPY? " MM4: BYTE 11;'6D ASCI "DKF-->DKM?" MM5: BYTE 21;'6D ASCI "SYSER SUR DKF & DKM?" MM6: BYTE '6D;"S" ASCI "YSER DK OFF !!" LMM6: VAL $-MM6*2 IF LMM6-LMAIL,XWOR%,XWOR%, IF ATTENTION : MM6 EST TROP LONG !!! XWOR%: VAL 0 LOCAL LOC1: EQU $ WORD IDLE1 < @ENTRY DU PROCESSEUR. < (1ER MOT DU LOCAL !!!). < < MESSAGES ET BUFFERS : < META: BYTE 6;'6D ASCI "ETAT= " MMV: BYTE 19;'6D ASCI "MEMOIRE VIRTUELLE=" MAST: BYTE 16;'6D ASCI "#NOEUDS LIBRES= " MFIC: BYTE 18;'6D ASCI "#FICHIERS LIBRES= " MFICO: BYTE 19;'6D ASCI "#FICHIERS OUVERTS=" ADEBUG: WORD 0 < ADRESSE COURANTE DE 'D'. IDEBUG: WORD 0 < 0 OU +1, SUIVANT QU'ON CONSERVE < 'ADEBUG', OU QU'ON L'INCREMENTE... MESP: BYTE 1;" " MDEBUG: BYTE 2;")";"=";0 MEGAL: BYTE 1;"=" MRC: BYTE 2;'6D;"(";0 CMLP1: ASCI "!CM LP1/" BYTE '04;0 CMCR1: ASCI "!CM CR1/" BYTE '04;0 REPON: DZS 2 < BUFFER DES REPONSES. BUFADR: EQU REPON < BUFFER DES ADRESSES. BUFFER: EQU REPON MESACN: BYTE '6D;"A" ASCI "CN= " ACN: DZS 2 < ZONE OU METTRE L'ACNESC. MESSID: BYTE '6D;"S" ASCI "YSID= " SYSID: WORD "X " < 'X'=IDESC DE L'UTILISATEUR. ASCI "ON V" NVI: WORD "IN" < 'N'=NUMERO DE LA VISU. MINT: BYTE '6D;">" < INVITATION A COMMANDER ... MERR: BYTE '6D;"?" < MESSAGE D'ERREUR. MTON: ASCI " ON " MTOFF: ASCI " OFF" MNUSER: BYTE 9;'6D ASCI "#ACTIFS=" MACN: BYTE 7;"(" MACNE: ASCI ":ACN) " MNSL: BYTE 9;'6D ASCI "FREE DK=" MDKF: BYTE 5;'6D ASCI "DKF?" MDKP: BYTE 5;'6D ASCI "PR1?" MPS: BYTE 9;'6D ASCI "SWAP ON " AMM1: WORD MM1 AMM2: WORD MM2 AMM3: WORD MM3 AMM4: WORD MM4 AMM5: WORD MM5 AMM6: WORD MM6 MPTT: BYTE 4;"A" ASCI "IL= " LMESS: WORD 0 < LONGUEUR REELLE DU MESSAGE. MESS: BYTE '6D;0 < RC-LF DE DEBUT DE MAIL IMPLICITE. DZS LMAIL/2-1 < DESTINE A RECEVOIR LE MAIL < EN TRANSIT VERS LE CCI. < < CONSTANTES DIVERSES : < APRESC: WORD PRESC < VALEUR A DONNER AU PRESC. ACNSYS: ASCI ":SYS" < NUMERO DE COMPTE DU SYSTEME. ADCT: WORD 0 < ADRESSE DE 'DCTESC'. NFICO: WORD 0 < NOMBRE DE FICHIERS OUVERTS. < < RELAIS DIVERS : < ATCOM: WORD TCOM,X < RELAI TABLE DES DIRECTIVES. AERR: WORD E40 < ADRESSE SI ERREUR. AE11: WORD E11 < INTERROGATION USER :SYS. APRINT: WORD PRINT < ROUTINE EMISSION MESSAGE. AMAILX: WORD MAILX < ENTRY 'MAIL' POUR UPDATES 'ETASYS'... ALECR: WORD LECR < EDITION MESSAGE + LECTURE REPONSE. ADISP: WORD DISP < EDITION ETAT DU SYSTEME. ADSPDK: WORD DSPDK < EDITION DE L'ETAT DE L'ESPACE DISQUE. AINVTV: WORD INVTV < ROUTINE D'ARRET/MARCHE VIDEO. AMODTV: WORD MODTV < MODIFICATION DE L'ADRESSE DE < LA ZONE VISUALISEE. ACYCTV: WORD CYCTV < MODIFICATION CYCLIQUE DE L' < ADRESSE DE LA ZONE VISUALISEE. AINVT: WORD INVT < ROUTINE D'INVERSION DU MODE < DE LA TRACE DE CMS4. ASTM: WORD STM < MISE EN PLACE MAITRE DU MAIL. ASPASS: WORD SPASS < MODIFICATION MAITRE DU 1ER < CARACTERE DU MOT DE PASSE < DU COMPTE DU SYSTEME. AREP: WORD REPON,X ABADR: WORD BUFADR,X < RELAI D'ACCES A L'ADRESSE ASCI. AADRES: WORD ADRES < RELAI D'ACCES A L'ADRESSE < MEMOIRE DE LA ZONE VISUALISEE. AMODT: WORD MODT < RELAI D'ACCES A UN MOT < CONTENANT L'ETAT DE LA TRACE DE < CMS4 APRES INVERSION. AMODV: WORD MODV < RELAI D'ACCES A UN MOT < CONTENANT L'ETAT DU SYSTEME < VIDEO APRES L'INVERSION. CMVI: ASCI "!CM VI" CMVIN: BYTE 0;"/";'04;0 < LE PREMIER OCTET CONTIENDRA UN < NUMERO VARIABLE DE VISU. WORD CMVI-ZERO*2 < ATTEINT PAR &ACM AVEC (X)=0. CM: EQU $ < LISTE DES @OCTETS DES CARTES !CM. WORD CMLP1-ZERO*2 WORD CMCR1-ZERO*2 NCM: VAL $-CM < NBRE DE CARTES !CM. ACM: WORD CM-1,X < RELAI D'ACCES AUX CARTES !CM. < < DEMANDES A CMS4 : < CCI: WORD 1 < DEMANDE DE RETOUR A CMS4. INTC: WORD '0002 < DEMANDE DU CCI NON INTERACTIF. WORD 0 < @OCTET DE LA CARTE. WORD 80 SLEEP: WORD '0005 < DEMANDE DE MISE EN SOMMEIL. WORD 0 WORD 4 < POUR 4 SECONDES. DEM1: BYTE 2;2 < DEMANDE D'ENVOI DE L'IDESC. WORD MESSID-LOC*2 WORD 9 DEM2: BYTE 2;2 < DEMANDE D'ENVOI DE L'ACNESC. WORD MESACN-LOC*2 WORD 10 DEMINT: WORD '0202 WORD MINT-LOC*2 < EMISSION DE '>'. WORD 2 DEMIN: WORD '0101 < ENTREE DE LA COMMANDE. WORD REPON-LOC*2 WORD 1 DEMERR: WORD '0202 < EMISSION DU MESSAGE D'ERREUR. WORD MERR-LOC*2 WORD 2 DEMADR: WORD '0101 < ENTREE DE L'ADRESSE MEMOIRE. WORD BUFADR-ZERO*2 WORD 4 < 4 CARACTERES OBLIGATOIRES. DEMT: WORD '0202 < DEMANDE D'EMISSION D'UN MESSAGE < DONNANT L'ETAT DE LA TRACE < APRES INVERSION. WORD 0 < @OCTET DU MESSAGE ON/OFF. WORD 4 DEMOUT: WORD '0202 < EMISSION D'UN MESSAGE. WORD 0 < @OCTET DU MESSAGE. WORD 0 < LONGUEUR OCTETS DU MESSAGE. DEMH: WORD '0202 < EDITION D'UN NBRE HEXA. WORD REPON-ZERO*2 < CONTENU DANS REPON , WORD 4 < SOUS FORME DE 4 CARACTERES. DEMAIL: WORD '0101 < ENTREE DU MAIL. WORD MESS-ZERO*2+1 WORD LMAIL-1 < < TABLE DES COMMANDES : < TCOM: EQU $ WORD E40 < A WORD BLEU < B : VIDEO BLEU. WORD MEMX < C : INTERDICTION DES FONCTIONS DANGER. WORD DEBUG < D : DISPLAY LE CONTENU D'UN MOT MEMOIRE. WORD E40 < E WORD E10 < F : RETOUR AU CCI. WORD E40 < G WORD HALT < H : HALT VIDEO. WORD MIND < I : MODIFICATION INDICATEURS CMS5. WORD E40 < J WORD E40 < K WORD E40 < L WORD MAIL < M : CHGT DU MAIL DU CCI. WORD NPASS < N : INHIBITION DE :SYS. WORD E40 < O WORD PASS < P : AUTORISATION :SYS. WORD E40 < Q WORD ROUGE < R : VIDEO ROUGE. WORD E400 < S : ETAT DU SYSTEME. WORD E28 < T : INVERSION DE LA TRACE CMS4. WORD E40 < U WORD VERT < V : VIDEO VERT. WORD E40 < W WORD CDKS < X : CHGT DES DK DE SWAPPING. WORD E40 < Y WORD E300 < Z : RAZ TOUTES CONNEXIONS MATRICIELLES. < < PILE DE TRAVAIL : < PILE: DZS 10 < PILE DE TRAVAIL. PROG PAGE < < < A R R E T / M A R C H E D E L A V I D E O : < < MODV: WORD 0 < INDICATEUR DE L'ETAT DU SYSTEME < VIDEO APRES LA COMMANDE 'V' : < =0 : VIDEO OFF (ARRET) , < #0 : ON (MISE EN MARCHE). INVTV: EQU $ EORR W,W < W BASE LA MEMOIRE BASSE. LRP L LA MODV-$+1,L < A=0, 1, 2 OU 3. SLLS TVSIMU=0 < CADRAGE... STA TVCTRL,W < CONTROLE DU SYSTEME TV. LB TVMEME,W < B=ADRESSE VISUALISEE COURAMMENT. LRP L LAI REPON-$+1 ADR L,A SBT 0 LRP L STA MODV-$+1,L < RELAI VERS L'ADRESSE CONVERTIE. LAD MODV-$+2,L LXI 0 K:: VAL 0 O:: VAL 0 NBITCX:: VAL 4 HA:: VAL "A" HNEUF:: VAL "9" HZERO:: VAL "0" I:: VAL 1 BASE10:: VAL 10 Z:: VAL 1 PSR A,B,Y,W LR A,W < W=@RELAI VERS LE TEXTE. LYI NBITMO/NBITCX < 4 CONVERSIONS A FAIRE. < < BOUCLE DE DECODAGE : < Z324: EQU $ LAI K < INITIALISATION DE A. SLLD NBITCX < RECUPERATION D'UN NBRE DE < 4 BITS DANS B. CPI BASE10-Z < LA CONVERSION EST-ELLE EN CHIFFRE ? JLE Z325 < OUI , C'EST UN CHIFFRE. ADRI HA-HNEUF-Z,A < CAS D'UNE LETTRE. Z325: EQU $ ADRI HZERO,A < CONVERSION EN ASCI. STBY &O,W < ET RANGEMENT DANS LE TEXTE. ADRI I,X < PROGRESSION DE L'INDEX < DU TEXTE. ADRI -I,Y < DECOMPTE DES CONVERSIONS. CPZR Y JG Z324 < C'EST PAS FINI .... PLR A,B,Y,W RSR < ET C'EST TOUT... < < < C H A N G E M E N T D ' A D R E S S E : < < ADRES: WORD 0 < VALEUR A DONNER A L'ADRESSE DE < LA ZONE VISUALISEE. MODTV: EQU $ LRP L LB ADRES-$+1,L < B=VALEUR A DONNER A L'ADRESSE < DE LA ZONE VISUALISEE. EORR W,W < W BASE LA MEMOIRE BASSE. STB TVMEME,W < MODIFICATION DE L'ADRESSE. RSR < ET C'EST TOUT. < < < C H A N G E M E N T C Y C L I Q U E : < < CYCTV: EQU $ EORR W,W < W BASE LA MEMOIRE BASSE. LRM A WORD 4*1024 < A=4K MOTS. AD TVMEME,W STA TVMEME,W < MODIFICATION DE L'ADRESSE < MODULO 64K... RSR < ET C'EST TOUT ... < < < I N V E R S I O N D E L A T R A C E D E C M S 4 : < < MODT: WORD 0 < INDICATEUR DE L'ETAT DE LA TRACE < APRES INVERSION : < MODT=0 : TRACE ON , < MODT=1 : TRACE OFF. INVT: EQU $ LBI 0 < TRACE ON A PRIORI. LA SAVEX,C < ACCES A L'INDICATEUR DE TRACE. IBT 0 < INVERSION DE L'ETAT (BIT0). TBT 0 < TEST DE L'ETAT APRES INVERSION. ADCR B < ET MEMORISATION DE L'ETAT APRES < INVERSION : B=0 : ON ; B=1 : OFF. STA SAVEX,C < ET DEMANDE D'INVERSION DE < LA TRACE AU MODULE STRACE. LRP C STB MODT-$+1,C < TRANSIMISSION DE L'ETAT DE < TRACE APRES INVERSION A IDLE. RSR < ET C'EST TOUT ... PAGE PAGE < < < E M I S S I O N M E S S A G E : < < < ARGUMENT : < A=@MOT DU MESSAGE DONT LE 1ER CARACTERE < CONTIENT LA LONGUEUR DE CELUI-CI. < < PRINT: EQU $ PSR X,C < SAVE X , C'EST PLUS PRUDENT !!! 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 < ENVOI DU MESSAGE ... PLR X,C RSR PAGE < < < M E S S A G E + R E P O N S E : < < < ARGUMENT : < A=ADRESSE DU MESSAGE A EMETTRE. < < < RESULTAT : < B=0 : "OUI", < =1 : "NON", DE PLUS 'CPZR' POSITIONNE 'V' ET 'C'. < < LECR: EQU $ PSR A,X,Y LR A,Y < Y=SAVE L'ADRESSE DU MESSAGE. LECR2: EQU $ LR Y,A < A=ADRESSE DU MESSAGE. BSR APRINT < EDITION DU MESSAGE. LAD DEMIN SVC 0 < ENTREE DE LA REPONSE. LBI 0 < OUI A PRIORI... LBY REPON < A=CARACTERE REPONDU, CPI "O" < EST-CE OUI ??? JE LECR1 < OUI... CPI "N" < EST-CE NON ??? JNE LECR2 < NON... LBI 1 < OUI, C'EST NON... LECR1: EQU $ CPZR B < TEST DE RETOUR. PLR A,X,Y RSR PAGE < < < D I S P L A Y L E C O N T E N U D ' U N N V P : < < < ARGUMENT : < X=NVP DEMANDE , < SI (X)<0, ALORS Y=VALEUR A EDITER... < A=@MOT DU MESSAGE ASSOCIE. < < DISP: EQU $ BSR APRINT < EMISSION DU MESSAGE ASSOCIE. LR Y,B < B=VALEUR A EDITER A PRIORI... CPZR X < VRAI 'NSP' ??? JL DISP3 < NON... LR X,A < A=NVP DESIRE. SBT 0 < POSITIONNEMENT DU BIT 'NVP'. ACTD 1 < (B)=RELAI D'ACCES A LA VALEUR < ASSOCIEE AU NVP. LR B,A < A=@DONT ON VEUT LE CONTENU. ACTD 1 < (B)=VALEUR ASSOCIEE AU NVP. < < CONVERSION ASCI : < DISP3: EQU $ LXI 0 < X=INDEX DE RANGEMENT DE 'REP'. LYI 4 < Y=BORNE SUPERIEURE DE (X). DISP1: EQU $ LAI 0 < CLEAR A. SLLD 4 < DECONCATENATION D'UN CHIFFRE. CPI 9 < EST-CE UN CHIFFRE ??? JLE DISP2 < C'EST UN CHIFFRE DECIMAL. ADRI '41-'39-1,A < CAS DES LETTRES A,B,C,D,E,F. DISP2: EQU $ ADRI '30,A < CONVERSION ASCI. STBY &AREP < ET MISE DANS LE BUFFER 'REP'. ADRI 1,X < AU CARACTERE SUIVANT. CPR X,Y < EST-CE FINI ??? JNE DISP1 < NON. LAD DEMH SVC 0 < SI OUI , ON EDITE LA VALEUR ... RSR < ET C'EST TOUT .... PAGE < < < D I S P L A Y D E L ' E T A T D E L ' E S P A C E < D I S Q U E : < < DSPDK: EQU $ < < NBRE DE SECTEURS LIBRES SUR LES DISQUES : < LXI NSPNSL LAD MNSL BSR ADISP < < NOMBRE DE NOEUDS LIBRES DANS L'ARBRE : < LXI NSPAST LAD MAST BSR ADISP < < NOMBRE DE FICHIERS LIBRES : < PSR W LAI NSPEDF SBT 0 ACTD 1 LR B,W < W=ADRESSE DE LA TABLE 'TEDF'. LYI 0 < Y=COMPTEUR DES FICHIERS LIBRES. STZ NFICO < COMPTEUR DES FICHIERS OUVERTS OU EN < ATTENTE DE DELETE... LXI LTEDF < X="INDEX" DE 'TEDF'... EF1: EQU $ LR W,A ACTD 1 LR B,A < A=MOT COURANT DE 'TEDF'. ADRI 1,W < PREPARATION ACCES AU MOT SUIVANT. PSR X LXI NBITMO/NBITEF < X=NOMBRE D'ETAT PAR MOT. EF2: EQU $ PSR A < SAUVEGARDE DU MOT COURANT... ANDI FIMASK CPI FIOPEN < EST-IL OUVERT ??? JE EF4 < OUI... CPI FIDELE < EST-IL EN ATTENTE DE DELETE ??? JNE EF5 < NON... EF4: EQU $ IC NFICO < COMPTAGE DES FICHIERS OUVERTS OU EN < ATTENTE DE DELETE... JMP EF3 EF5: EQU $ ANDI FILELI JANE EF3 < FICHIERS OPEN, OU EXISTANT... ADRI 1,Y < COMPTAGE D'UN FICHIER LIBRE... EF3: EQU $ PLR A < RESTAURE LE MOT COURANT... SLRS NBITEF < PASSAGE A L'ETAT SUIVANT, JDX EF2 < S'IL EXISTE... PLR X JDX EF1 < PASSAGE AU MOT SUIVANT... ADRI -1,Y < CAR LE FICHIER 0 N'EST PLUS ACCESSIBLE. LXI -1 < "FAUX NSP"... LAD MFIC BSR ADISP < EDITION DU NOMBRE DE FICHIERS LIBRES. LY NFICO LXI -1 < FAUX 'NSP'... LAD MFICO BSR ADISP < EDITION DU NOMBRE DE FICHIERS OUVERTS < OU EN ATTENTE DE DELETE... PLR W < < DISPLAY DU VOLUME COURANT : < LAI NSPVLU SBT 0 ACTD 1 LR B,W < (W)=ADRESSE DU DESCRIPTEUR DE VOLUME : LR W,A ADRI VOLNIM,A ACTD 1 PSR B < NOMBRE DE BLOCS EVENTUELLEMENT LIBRES... LR W,A ADRI VOLACN,A ACTD 1 STB MMVACN+0 < RECUPERATION DE <ACN> DE ADRI 1,A ACTD 1 STB MMVACN+1 < L'EVENTUEL PROPRIETAIRE... LR W,A ADRI VOLNUM,A ACTD 1 CPZR B < MAIS FINALEMENT, Y-A-T'IL UN VOLUME < MONTE ??? JNE ETI1 < OUI... PLR B < NON, LAD MMV1 < ON LE DIT, BSR APRINT JMP ETI2 < ET C'EST TOUT... ETI1: EQU $ < CAS OU IL Y A UN VOLUME DE MONTE : A < NOTER, QUE LES INFORMATIONS QUE L'ON < VA DISPLAYER PEUVENT AVOIR ETE MODIFIEES < ENTRE TEMPS PAR UN AUTRE UTILISATEUR... LR B,Y < (Y)=NUMERO DE VOLUME, LXI -1 LAD MMV2 BSR ADISP < QUE L'ON EDITE... LAD MMV3 BSR APRINT < EDITION DE L'<ACN>... PLR Y LXI -1 LAD MMV4 BSR ADISP < ET ENFIN DU NOMBRE DE BLOCS LIBRES... ETI2: EQU $ RSR PAGE < < < M O D I F I C A T I O N D U 1 E R < C A R A C T E R E D U M O T D E < P A S S E D U S Y S T E M E : < < SPASS: EQU $ LXI NSPASS < X=NSP D'ACCES AU 1ER CARACTERE. BSR ACADCT,C < RENVOIE : L=@1ER CARACTERE < DU MOT DE PASSE. LA 1,W < MISE DANS A DU REGISTRE < B(ESCLAVE) QUI CONTIENT LE < CARACTERE A METTRE EN 1ER. STBY 0,L < MAJ 1ER CARACTERE DU PASSE. RSR < ET C'EST TOUT ... PAGE < < < R A N G E M E N T M A I T R E D U M A I L : < < ALMESS: WORD LMESS < @RELATIVE DE LA LONGUEUR MAIL. STM: EQU $ LRP L PSR W < SAVE W=@DCT(ESCLAVE). LA 10,W < A=SLO(ESCLAVE). AD -1,L < @ABSOLUE DE LA LONGUEUR MAIL. LR A,W < W=@ABSOLUE DE LA LONGUEUR < DU NOUVEAU MAIL. LA 0,W < A=LONGUEUR DU NOUVEAU MAIL. CPI 2 < DOIT-ON SUPPRIMER LE MAIL ??? < (LE MESSAGE EST ALORS VIDE : < EOT OU R/C PLUS RC-LF DE TETE) JG STM1 < NON. LAI 0 < SI OUI , ON LUI DONNE UNE < LONGUEUR NULLE. STM1: EQU $ LR A,B < SAVE : B=LONGUEUR REELLE. LXI NSPTT < X=NSP DU NOEUD DU MAIL. BSR ACADCT,C < RENVOIE : L=@NOEUD DU MAIL. LR B,A < RESTAURE A=LONGUEUR MAIL. JAE STM2 < EN FAIT SUPPRESSION DU MAIL. < < MISE EN PLACE DU MESSAGE MAIL : < ADRI 1,A SLRS 1 LR A,X < X=NBRE DE MOTS COMPOSANTS < LE NOUVEAU MAIL. LAD MESS-LMESS,W < A=@EMETTEUR DU MESSAGE. LB 1,L < B=@RECEPTEUR DU MESSAGE (CCI). MOVE < DEPLACEMENT DU MESSAGE. LA 0,W < RESTAURE : A=LONGUEUR DU MESSAGE. < < MISE EN PLACE DE LA LONGUEUR DU MAIL COURANT : < STM2: EQU $ STBY 0,L < RANGEMENT DANS L'OCTET0 DU < NOEUD D'EMISSION DU MAIL. PLR W < RESTAURE W=@DCT(ESCLAVE). RSR < < < E N T R E E D U N O U V E A U M A I L : < < MAIL: EQU $ LAD MPTT BSR APRINT < ENVOI D'UNE INVITATIONB. LAD DEMAIL SVC 0 < ENTREE DU NOUVEAU MAIL. WORD '1E35 < RECUPERATION DANS B DU NBRE < REEL DE CARACTERES ENTRES. MAILX: EQU $ < ENTRY POUR UPDATES DE 'ETASYS'... ADRI 1,B < ON COMPTE LE RC-LF IMPLICITE < EN TETE DU MAIL. STB LMESS < QUE L'ON SAVE DANS LMESS. LA ASTM WORD '1EC5 < EXECUTION MAITRE DU SOUS- < PROGRAMME DE MISE A JOUR < DU NOUVEAU MAIL. JMP E11 < PUIS , INTERROGATION ESCALE. PAGE < < < A U T O R I S A T I O N / I N H I B I T I O N < D E : S Y S : < < < FONCTION : < PAR MODIFICATIONN ('03/'00) DU 1ER < CARACTERE DU MOT DE PASSE DU < SYSTEME , ON PEUT AUTORISER ('03=CTRL-C) OU < INHIBER ('00=NULL) LE NUMERO DE < COMPTE DU SYSTEME. < < PASS: EQU $ < AUTORISATION DE :SYS. LBI '03 < B=CTRL-C. JMP PASS1 < VERS L'2NSERTION DU CTRL-C. NPASS: EQU $ < INHIBITION DE :SYS. LBI '00 < B=NULL (INACCESSIBLE !!!). PASS1: EQU $ LA ASPASS WORD '1EC5 < EXECUTION MAITRE DE 'SPASS' , < C'EST-A-DIRE INSERTION DE (B) < COMME 1ER CARACTERE DU MOT < DE PASSE DE :SYS. JMP E11 < PUIS , INTERRO DE L'ESCLAVE. PAGE < < < P E R M U T A T I O N D K F E T P R 1 : < < CDKS: EQU $ LYI NSPDKF < 'DKF' DEMANDE A PRIORI... LAD MDKF BSR ALECR < MESSAGE, ET LECTURE REPONSE... JE CDKS1 < OUI, 'DKF'... LYI NSPPR1 < NON, 'PR1' A PRIORI... LAD MDKP BSR ALECR < MESSAGE ET LECTURE REPONSE... JNE CDKS < RIEN ??? CDKS1: EQU $ LAI NSPSWS SBT 0 < 'MODE NSP', ACTD 1 < RENVOIE DANS 'B' L'ADRESSE DU MOT OU < RANGER NSPDKF/NSPPR1. LR B,A < A=ADRESSE DE RANGEMENT, LR Y,B < B=VALEUR A RANGER, LYI 0 < EN MODE ABSOLU... STAR < CHANGEMENT DU 'NSP' DU PERIPHERIQUE < DE SWAPPING. JMP E11 < ET C'EST TOUT... PAGE < < < < P R O C E S S E U R I D L E : < < < FONCTION : < CE PROCESSEUR GADGET EST DESTINE < LORSQU'ON L'APPELLE , A MINIMISER < L'ESPACE MEMOIRE DE L'UTILISATEUR < (1K) . PAR LA MEME OCCASION L' < UTILISATEUR RECOIT LA DATE , SON < ACN , ET SON SYS-ID .... < < < FONCTION SOUS :SYS : < PERMET DE PLUS DE GERER LE SYSTEME < DE VISUALISATION VIDEO EN L'ARMANT , < L'ARRETANT , CHANGEANT L'ADRESSE < DE LA ZONE MEMOIRE VISUALISEE , < SOIT EN BRUTALEMENT (...) , SOOIT < PERIODIQUEMENT (4 SECONDES). < < IDLE1: EQU $ LRM C,K WORD COMON+'80 < INITIALISATION DE 'C', WORD PILE-1 < ET DE 'K'... E1: EQU $ WORD '1E25 < ACCES EN RETOUR A L'ACNESC < DANS LES REGISTRES A & B. STA ACN STB ACN+1 LAD DEM2 SVC 0 < ENVOI DE SON ACN A L'UTILISATEUR. WORD '1E45 < ACCES EN RETOUR AU SYSID < DANS LE REGISTRE A. CPI 9 JLE E2 < CAS : 0<=SYSID<=9. ADRI '41-'3A,A < CAS OU LE SYSID EST UNE LETTRE. E2: EQU $ ADRI '30,A < CONVERSION ASCI DU SYSID. STBY SYSID < ET MISE DANS LE MESSAGE. LXI 9 < X=9 OCTETS A PRIORI. WORD '1E95 < RENVOIE DANS A : < OCTET0(A)=NSPOUT , < OCTET1(A)=NSPVI1. LBI 0 < CLEAR B. SLRD 8 < A=NSPOUT DE L'ESCLAVE. SWBR B,B < B=NSPVI1. SBR B,A < A=NSPOUT-NSPVI1. JAL E3 < LE DEMANDEUR N'EST PAS SUR < UNE VISU ... CPI NVISU-1 JG E3 < ET NON , LE DEMANDEUR N'EST < PAS SUR UNE VISU. LXI 16 < X=16 OCTETS DANS LE CAS D'UNE < VISU DU SYSTEME ... ADRI '31,A < CONVERSION ASCI DU NUMERO DE < LA VISU PAR RAPPORT A 1. STA NVI < ET MISE DANS LE MESSAGE. LAI "I" STBY NVI < MISE EN PLACE DU 'I' DE 'VI'. E3: EQU $ STX DEM1+2 < MISE EN PLACE DE LA LONGUEUR < REELLE DU MESSAGE 'MESSID'. LAD DEM1 SVC 0 < ENVOI DE SON SYSID A L'UTILISATEUR. < < T E S T D U N U M E R O D E C O M P T E : < LA ACN CP ACNSYS < EST-CE :SYS ??? JNE ETI3 < NON. LA ACN+1 < PEUT-ETRE ... CP ACNSYS+1 < EST-CE :SYS ??? JE ETI4 < OUI... < < CAS DES AUTRES <ACN>S : < ETI3: EQU $ BSR ADSPDK < EDITION DE L'ETAT DE L'ESPACE DISQUE... JMP E10 < VERS LE RETOUR AU CCI... < < P R E S C : < PRESC: EQU $ LRM C,K < ON REINITIALISE... WORD COMON+'80 WORD PILE-1 < < C A S D ' U N E D E M A N D E : S Y S : < ETI4: EQU $ LA APRESC WORD '1EB5 < CHANGEMENT DU PRESC DU PROGRAMME. < < INTERROGATION DE L'UTILISATEUR SYSTEME : < E11: EQU $ LAD DEMINT SVC 0 < ENVOI D'UNE INTERROGATION. LAD DEMIN SVC 0 < LECTURE DE LA REPONSE. < < REPONSES POSSIBLES : < < F : RETOUR AU CCI , < T : INVERSION DE LA TRACE DE CMS4 , < Z : RAZ TOUTES LES CONNEXIONS MATRICIELLES , < S : ETAT DU SYSTEME , < P : AUTORISATION DE :SYS (1ER CARACTERE=CTRL-C) , < N : INHIBITION DE :SYS (1ER CARACTERE=NULL) , < X : CHANGEMENT DES NSP DES DKS (2=DK2 , 3=DK3) , < M : CHANGEMENT DU MAIL DU CCI , < H : MISE HALT DU SYSTEME VIDEO, < R : SELECTION ROUGE, < V : SELECTION VERT, < B : SELECTION BLEU, < @ : CHANGEMENT DE L'ADRESSE MEMOIRE A VISUA- < LISER ; 'EOT' OU 'R/C' FONT UN CHANGE- < MENT CYCLIQUE (4S PAR PAS DE 4K MOTS). < C : INTERDICTION DES FONCTIONS DANGEREUSES. < D : DISPLAY LE CONTENU D'UN MOT MEMOIRE. < LBY REPON < A=REPONSE UTILISATEUR. CPI "@" JE E24 < VERS LE CHGT ADRESSE VIDEO. CPI "Z" < POUR VALIDATION. JG E40 < ERREUR. ADRI -"A",A < DECODAGE. JAL E40 < ERREUR. LR A,X < X=NUMERO DE LA DIRECTIVE. BR &ATCOM < VERS LE TRAITEMENT SPECIFIQUE. < < TRAITEMENT DES ERREURS : < E40: EQU $ LAD DEMERR SVC 0 < ENVOI DU MESSAGE D'ERREUR. JMP E11 < VERS UNE INTERROGATION. < < A R R E T / M A R C H E V I D E O : < ROUGE: EQU $ LAI TVPR JMP E22 VERT: EQU $ LAI TVPV JMP E22 BLEU: EQU $ LAI TVPB JMP E22 HALT: EQU $ LAI 0 E22: EQU $ STA &AMODV < TRANSMISSION DE L'ORDRE, LA AINVTV WORD '1EC5 < EXECUTION DE L'ORDRE. < < AFFICHAGE DE L'ADRESSE DE LA ZONE VISUALISEE < LORS DE LA MISE EN MARCHE DE LA VIDEO : < LA DEMINT STA DEMADR < DEMADR EST MISE EN MODE ECRITURE. LAD DEMADR SVC 0 < EDITION DE L'ADRESSE CONTENUE < DAN SLE BUFFER 'REPON'. LA DEMIN STA DEMADR < DEMADR REMISE EN MODE LECTURE. JMP E11 < VERS L'INTERROGATION. < < C H A N G E M E N T D ' A D R E S S E : < E24: EQU $ < < ENTREE DE L'ADRESSE ET CONVERSION BINAIRE : < LAD DEMADR SVC 0 < ENTREE DE 4 CARACTERES. LXI 0 < X=INDEX DU BUFFER 'REPON'. LYI 4 < Y=DECOMPTEUR. LBY &ABADR < ACCES AU 1ER CARACTERE. CPI '0D < EST-CE LE MODE CYCLIQUE ??? JE E26 < OUI. CPI '04 < EST-CE LE MODE CYCLIQUE ??? JE E26 < OUI. E30: EQU $ LBY &ABADR < A=UN CARACTERE LU. ADRI -'30,A JAL E40 < ERREUR : NON RECONNU. CPI 9 < EST-CE UN CHIFFRE ??? JLE E31 < OUI. ADRI -'41+'39+1,A < NON. CPI 'A < EST-CE UNE LETTRE HAXA-DECIMALE. JL E40 < NON , ERREUR. CPI 'F JG E40 < NON , ERREUR. E31: EQU $ SCRS 4 < MISE DES 4 BITS EN TETE DE A. SCLD 4 < ET CONCATENATION DERRIERE B. ADRI 1,X < PROGRESSION DE L'INDEX. ADRI -1,Y < DECOMPTE. CPZR Y < EST-CE FINI ??? JG E30 < NON , ON CONTINUE. STB &AADRES < OK , MAJ DE ADRES. < < CAHNGEMENT D'ADRESSE : < LA AMODTV WORD '1EC5 < EXECUTION MODE MAITRE DE MODTV. JMP E11 < VERS L'INTERROGATION. < < C H A N G E M E N T C Y C L I Q U E : < E26: EQU $ LAD SLEEP SVC 0 < MISE EN ATTENTE DE 4 SECONDES. LA ACYCTV WORD '1EC5 < EXECUTION MAITRE DE CYCTV. JMP E26 < ET REBOUCLAGE SUR L'ATTENTE ; < A T T E N T I O N : LA SORTIE < DE CETTE BOUCLE SE FAIT PAR UN < ALT-MODE ET RETOUR PAR PRESC ... < < I N V E R S I O N D E L A T R A C E D E C M S 4 : < E28: EQU $ LA AINVT WORD '1EC5 < EXECUTION MAITRE DE INVT. < < EMISSION D'UN MESSAGE DONNANT L'ETAT DE LA TRACE APRES INVERSION : < LAI MTON-LOC < TRACE ON A PRIORI. CPZ &AMODT < QUEL EST L'ETAT REEL ??? JE E50 < TRACE ON EFFECTIVEMENT. LAI MTOFF-LOC < ET NON , LA TRACE EST OFF. E50: EQU $ SLLS 1 < POUR UNE ADRESSE OCTETS... STA DEMT+1 < MISE EN PLACE DE L'@OCTET DU < MESSAGE ON/OFF. LAD DEMT SVC 0 < ENVOI DU MESSAGE ON/OFF. JMP E11 < VERS L'INTERROGATION UTILISATEUR. < < R E T O U R A U C C I : < E10: EQU $ LAD CCI SVC 0 < RETOUR AU CCI , C'EST TOUT ..... JMP E1 < AU CAS OU UN !GO AURAIT ETE < DEMANDE (FAUDRAIT ETRE VICIEUX..) < < R A Z L E S C O N N E X I O N S ! C M : < E300: EQU $ LXI NCM < X=NBRE DE CARTES !CM A EMETTRE. E301: EQU $ PSR X < SAVE LE NBRE DE CARTES. LA &ACM < A=@OCTET CARTE !CM COURANTE. STA INTC+1 < QUE L'ON MET DANS LA DEMANDE < D'APPEL DU CCI NON INTERACTIF. LAD INTC SVC 0 < APPEL CCI NON INTERACTIF. PLR X < RESTAURE X=NBRE DE CARTES !CM. JDX E301 < A LA CARTE !CM SUIVANTE. LA &ACM < ACCES A LA CARTE "!CM" DES VISUS. STA INTC+1 LXI NVISU E301X: EQU $ LR X,A ADRI "0",A STBY CMVIN < GENERATION DU NUMERO DE VISU. PSR X LAD INTC SVC 0 PLR X JDX E301X < A LA VISU PRECEDENTE... JMP E11 < VERS L'INTERROGATION UTILISATEUR. < < E T A T D U S Y S T E M E : < E400: EQU $ < < NBRE D'UTILISATEURS ACTIFS (ENTRE !LOGIN ET !F/!BYE SANS !W) : < LXI NSPUSE LAD MNUSER BSR ADISP LXI NESCLA < X=NOMBRE D'ESCLAVES POTENTIELS. LAI NSPTBU SBT 0 ACTD 1 LR B,Y < Y=ADRESSE DE LA LISTE DES 'DCTESC'. GU1: EQU $ LR Y,A ACTD 1 LR B,A JAE GU2 < PAS D'ESCLAVE ICI... STA ADCT < SAUVEGARDE DE L'ADRESSE DE 'DCTESC'. ADRI YASSGN,A < A=ADRESSE DU 1ER MOT DE 'TASSGN'. ACTD 1 < B='NSP' DU PERIPHERIQUE IN... LR B,A JAE GU2 < 'DCTESC' NON ENCORE INITIALISEE... SBT 0 ACTD 1 LR B,A < A=ADRESSE DE LA 'DCT' IN... ADRI HNAME,A PSR A ACTD 1 < B=DEBUT DU NOM DU PERIPH IN. SWBR B,A ANDI 'FF03 SWBR A,A < A=3 (LONGEUR) ET 1ERE LETTRE. STA REPON PLR A ADRI 1,A ACTD 1 < B=2 DERNIERES LETTRES. STB REPON+1 LAD MESP BSR APRINT < ESPACEMENT... LAD REPON BSR APRINT < NOM DU PERIPH IN... LA ADCT ADRI ACNESC,A ACTD 1 < RECUPERATION DE <ACNESC>, STB MACNE+0 ADRI 1,A ACTD 1 STB MACNE+1 LAD MACN BSR APRINT < ET EDITION... GU2: EQU $ ADRI 1,Y < ESCLAVE SUIVANT SI EXISTE... JDX GU1 < < ETAT DU SYSTEME : < BIT2 : 'DKM' PRESENT, < BIT3 : 'DKF' PRESENT, < BIT8 : UN NOM DE FICHIER PEUT ETRE DETRUIT < MEME SI LE FICHIER INTERNE EXISTE < LORSQUE CE BIT EST A 1. < ETC... < LXI NSPETA LAD META BSR ADISP < < MOT DE CONTROLE DE LA MEMOIRE VIRTUELLE : < < BITS0-7 : DONNE LE 'NVP' SEUIL AU DELA < DUQUEL (LUI COMPRIS) UN FICHIER < QUI LUI EST ASSIGNE PEUT TRAN- < SITER PAR LA MEMOIRE VIRTUELLE. < BIT14 : LE 'SGN' PEUT PASSER EN MEMOIRE < VIRTUELLE SI 1, < BIT15 : IDEM POUR LE 'SGF'. < ETC... < LXI NSPMV LAD MMV BSR ADISP LXI NSPSWS LAD MPS BSR ADISP < NSP DU PERIPHERIQUE DE SWAPPING. < < DISPLAY DE L'ETAT DE L'ESPACE DISQUE : < BSR ADSPDK RRE11: BR AE11 < RELAI VERS L'INTERROGATION UTILISATEUR... PAGE < < < M O D I F I C A T I O N I N D I C A T E U R S < D E C O N T R O L E D E C M S 5 : < < MIND: EQU $ LAI NSPETA SBT 0 ACTD 1 LR B,A < A=ADRESSE DE 'ETASYS', ACTD 1 < B=VALEUR DE 'ETASYS'. PSR B < SAVE 'ETASYS' AVANT... PSR A < SAUVEGARDE DE L'ADRESSE... RBT 16+BRCDKF < 'DKF RENDRA LES REGISTRES HDC', RBT 16+OTODLN < 'PAS DE DELETE NOM DE FICHIER', RBT 16+OTOCOP < 'COPY ON', RBT 16+OTOCFM < 'COPY DKF --> DKM ON'. RBT 16+BTRYDK < SYSER SUR ERREUR DKF & DKM... LR B,Y < Y=ETAT INITIALISE... LA AMM1 BSR ALECR JNE MIND1 < 'DKF RENDRA SES REGISTRES HDC'. XR B,Y SBT 16+BRCDKF < 'DKF PEUT GARDER SES REGISTRES HDC'. XR B,Y MIND1: EQU $ LA AMM2 BSR ALECR JNE MIND2 < 'PAS DE DELETE DE NOM DE FICHIER'. XR B,Y SBT 16+OTODLN < 'DELETE DE NOM DE FICHIER'. XR B,Y MIND2: EQU $ LA AMM3 BSR ALECR JE MIND3 < 'COPY ON'. XR B,Y SBT 16+OTOCOP < 'COPY OFF'. XR B,Y MIND3: EQU $ LA AMM4 BSR ALECR JE MIND4 < 'COPY DKF --> DKM ON'. XR B,Y SBT 16+OTOCFM < 'COPY DKF --> DKM OFF'. XR B,Y MIND4: EQU $ LA AMM5 BSR ALECR JE MIND5 < SYSER SUR ERREUR DKF & DKM. XR B,Y SBT 16+BTRYDK < PAS DE SYSER SUR ERREUR... XR B,Y MIND5: EQU $ PLR A < RESTAURE A=ADRESSE DE 'ETASYS'. LR Y,B < B=NOUVELLE VALEUR DE 'ETASYS'. LYI 0 < MODE ABSOLU, STAR < MODIFICATION DE 'ETASYS'... PLR A < A='ETASYS' AVANT, EORR B,A < A=MODIFICATIONS DE 'ETASYS', TBT BTRYDK < 'BTRYDK' A-T'IL CHANGE ??? JNC RRE11 < NON, VERS L'INTERROGATION... TBT 16+BTRYDK < OUI, ALORS MODIFICATION DE 'MAIL'. JC MINDA < PAS DE SYSER... LAI '04 STA MESS LAI '6D STBY MESS < MESS=6D/EOT. LBI 1 < POUR UN MESSAGE VIDE... BR AMAILX < SUPPRESSION DU 'MAIL'... MINDA: EQU $ LAD MESS LR A,B LA AMM6 LXI LMM6+1/2 MOVE < MESS="SYSER DK OFF !!". LBI LMM6-1 BR AMAILX < MISE EN PLACE D'UN 'MAIL'... PAGE < < < I N T E R D I C T I O N D E S F O N C T I O N S < D A N G E R E U S E S : < < MEMX: EQU $ LAI NSPMV SBT 0 ACTD 1 < B=ADRESSE DE 'MEMV'... LR B,A < A=ADRESSE DE 'MEMV'. ACTD 1 < B='MEMV' COURANT... TBT NBITMO+MEMXXX < DEJA INTERDIT ??? JNC MEMX1 < OUI... RBT NBITMO+MEMXXX < NON... LYI 0 < Y=MODE ABSOLU. STAR MEMX1: EQU $ BR AE11 < VERS L'INTERROGAION... PAGE < < < D I S P L A Y L E C O N T E N U D ' U N < M O T M E M O I R E : < < DEBUG: EQU $ LAD DEMADR SVC 0 < ENTREE DE L'ADRESSE DEMANDEE, OU BIEN < D'UN NVP SI L'ADRESSE INDIQUEE EST ENTRE < '8000 ET '807F... LXI 0 < X=INDEX DU BUFFER, LBY &ABADR STZ IDEBUG < R/C A PRIORI... CPI '0D JE DEBUG4 < MODE CONTINU A ADRESSE CONSTANTE... IC IDEBUG < EOT A PRIORI... CPI '04 JE DEBUG4 < MODE CONTINU A ADRESSE CROISSANTE... < < MODE DISCRET : < LYI 4 < Y=DECOMPTEUR DES CHIFFRES. DEBUG1: EQU $ LBY &ABADR < A=CARACTERE COURANT, ADRI -"0",A < DECODAGE ASCI, JAL DEBUG2 < ERREUR !!! CPI 9 JLE DEBUG3 < CHIFFRE... ADRI -"A"+"9"+1,A < LETTRE ??? CPI 10 JL DEBUG2 < ERREUR !!! CPI 15 JG DEBUG2 < ERREUR !!! DEBUG3: EQU $ SCRS 4 SCLD 4 < GENERATION DE L'ADRESSE BINAIRE. ADRI 1,X < PASSAGE AU CARACTERE SUIVANT, ADRI -1,Y < ET DECOMPTAGE... CPZR Y < SUIVANT ??? JG DEBUG1 < OUI... LR B,A < NON, STA ADEBUG < ET SAVE... ACTD 1 < A=ADRESSE OU NVP... LR B,Y < Y=CONTENU DESIRE... LXI -1 < POUR 'DISP'... LAD MEGAL BSR ADISP < DISPLAY DE (Y). BR AE11 < VERS L'INTEROGATION... DEBUG2: EQU $ BR AERR < VERS L'ERREUR... < < MODE CONTINU : < DEBUG4: EQU $ LY ADEBUG LXI -1 LAD MRC BSR ADISP < EDITION DE L'ADRESSE... LA ADEBUG ACTD 1 < RECUPERATION DE LA VALEUR, AD IDEBUG STA ADEBUG < PROGRESSION EVENTUELLE DE 'ADEBUG'... LR B,Y < ET MISE DANS Y, LXI -1 < POUR ADISP : LAD MDEBUG BSR ADISP < VISUALISATION DE (Y). JMP DEBUG4 < ET ON BOUCLE JUSQU'A UN ALT-MODE... PAGE < < < V A L I D A T I O N I M P L E M E N T A T I O N : < < X120: VAL $-ZERO X120: VAL '3EF-X120 ZEROV: EQU ZERO+X120 < ERREUR VOLONTAIRE D'ASSEMBLAGE < SI IDLE FAIT PLUS D'UN K... END IDLE