LEX 'DRIVELEX' TITLE DRIVELEX-SOURCE 30/03/1985 id EQU 113 CON(2) id CON(2) 9 CON(2) 10 CON(5) 0 NIBHEX F REL(4) (Tx0)+1 REL(4) MSGTBL REL(5) POLHND CON(3) (Tx1)-(Tx0) REL(5) DISAB CON(1) 13 CON(3) (Tx2)-(Tx0) REL(5) ENABL CON(1) 13 Tx0 Tx1 CON(1) 13 NIBASC 'DISABLE' CON(2) 9 Tx2 CON(1) 11 NIBASC 'ENABLE' CON(2) 10 Txf NIBHEX 1FF eFILE EQU 234 MSGTBL CON(2) 1 CON(2) 2 eLEX EQU 2 CON(2) 16 CON(2) eLEX CON(1) 4 NIBASC ' Lex ' CON(1) 12 eDRIVE EQU 1 CON(2) 24 CON(2) eDRIVE CON(1) 5 NIBASC 'Driver' CON(1) 13 CON(2) eLEX CON(1) 14 CON(2) eFILE CON(1) 12 NIBHEX FF pFTYPE EQU #2D fDLEX EQU #FF POLHND LC(2) pFTYPE Interception du poll FTYPE. ?B=C B GOYES pTSTf Oui: on branche en pTSTf. RTNSXM Non: retour avec XM=1. pTSTf C=0 A On charge dans C=C-1 B C(B) la valeur FF (type de fichier D-LEX). ?A=C A A-t-on affaire È un fichier du type 255 ? GOYES pEXQf Oui: on branche en pEXQf. RTNSXM Non: retour avec XM=1. pEXQf GOSUB eTBL Voir IDS I chapitre 12 pages 6-7-8. NIBHEX 000 Le premier 0 veut dire que nous sommes en prÅsence d'un * fichier de structure normale du type BIN, LEX, KEY. * Le deuxiÉme 0: fichier normal qui peut Átre copiÅ dans * et hors de la mÅmoire sans aide d'un fichier Lex * supplÅmentaire. * Le troisiÉme 0: le fichier n'est pas exÅcutable. CON(2) 5 Offset entre le "Next Lex Chain" et les "Data". NIBASC 'D-LEX' Type de fichier durant les catalogues. CON(1) 1 Nombre de types possibles (" ", "S", "P" et "E"). CON(4) fDLEX Un seul type 255. NIBHEX FF Fin de la table. eTBL C=RSTK Lecture de la table. D1=C " A=0 S Retour du Poll A=A+1 S avec A(S)=1 et XM=0 XM=0 RTN " fLEX EQU #E208 NXTSTM EQU #08A48 MFERR EQU #09393 eFTYPE EQU #3F CONF EQU #10212 REL(5) E/DLXd REL(5) E/DLXp DISAB GOSUB POSD1 C=0 A C=C-1 B ?A=C A GOYES Nxtstm LC(5) fLEX ?A#C A GOYES Eftype C=0 A C=C-1 B GOC Config REL(5) E/DLXd REL(5) E/DLXp ENABL GOSUB POSD1 LC(5) fLEX ?A=C A GOYES Nxtstm B=C A C=0 A C=C-1 B ?A#C A GOYES Eftype C=B A Config DAT1=C 4 ST=0 0 GOSBVL CONF Nxtstm GOVLNG NXTSTM Eftype LC(2) eFTYPE GOC Mferr FILXQ^ EQU #09B76 FINDF EQU #09F77 eFnFND EQU #39 eFACCS EQU #3C oMAINT EQU #3E BSERR EQU #0939A LXFND EQU #0979D POSD1 SETHEX GOSBVL FILXQ^ D=0 A D=D-1 A GOSBVL FINDF GOC EfNfnd C=0 S C=C+1 S ?D>C S GOYES Efaccs CD1EX R0=C GOSBVL LXFND CD1EX D1=C C=C+A A D=C A Ntfnd LCHEX 0A0971 P= 5 Boucle A=DAT1 6 ?A=C WP GOYES DEXQ D1=D1+ 11 CD1EX ?D<=C A GOYES Sortie CD1EX GONC Boucle EfNfnd LC(2) eFnFND Mferr GOVLNG MFERR Edrive LC(4) (eDRIVE)+(id)*256 GOVLNG BSERR Efaccs LC(2) eFACCS GOC Mferr DEXQ D1=D1+ 6 A=DAT1 A P= 0 LC(5) oMAINT A=A-C A AD1EX C=A A A=DAT1 W ?A=B W GOYES Edrive CD1EX D1=D1+ 5 GOTO Ntfnd Sortie P= 0 C=R0 D1=C D1=D1+ 16 A=0 A A=DAT1 4 RTN OUTBYT EQU #02CE8 FILEP EQU #03E9C RESPTR EQU #03172 FSPECe EQU #02F02 tLITRL EQU #C4 OUTNBS EQU #05426 E/DLXp GOSBVL FILEP GONC Fspece ?ST=1 7 GOYES Resptr LC(2) tLITRL GOSBVL OUTBYT A=C B P=C 15 GOVLNG OUTNBS Fspece GOVLNG FSPECe Resptr GOVLNG RESPTR FILDC* EQU #05759 OUTEL1 EQU #05300 E/DLXd GOSBVL FILDC* GOVLNG OUTEL1 END