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
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.