Home
Manuel d`Utilisation Goupil 2 Part 2
Contents
1. Les l ments qui suivent listings et documentations i utis pour la satisfaction et l usage personnel par la Soci t de Micero informatique et T l cormunteattons SMT Toute reproduction m me partielle est interdite 3 fe tue une contrefa on passtble des petnes pr vues par et consti sur la protection des droits d auteur La Lot du 11 mars 1975 L application de cette r gle permettra de vendre des prix de plus en ptus bas ts anirnar rampe dr plus en vlug de Prour e ln dr E Por ege SMT O a autres soci t s rss re acheter ou adapter toujours pl us de logiet s de quetite et que la PREFACE Le propos de ce manuel est de fournir l utilisateur toutes les informations n cessaires l utilisation des sous programmes et des fonctions offertes par le syst me d exploitation FLEX Ce manuel peut tre utilis pour toutes les versions du FLEX versions 5 8 Il est d conseill de l ouvrir avant d tre parfaitement familiaris avec l utilisation du syst me GOUPIL et de ses disques Ce manuel est destin aux programmeurs ayant acquis une bonne exp rience des techniques de programmation en langage assembleur Il s applique la derni re version G2FLEX de l adaptation du Syst me FLEX au micro ordinateur GOUPIL SMT Manuel de Programmation Avanc e SOMMATRE Avertissement Introduction Le moniteur d exploitation disque 2 1 Pr sentation 2 2 Vari
2. un inon Si l extension n est pas pr cis e le programme appelant doit utiliser le sous programme SETEXT pour sp cifier l option par d faut Le pointeur du tampon ligne est laiss sur le carac t re suivant le s parateur sauf si c est un retour chariot ou une fin de ligne Quand une erreur est d tect e le code d erreur 21 est rang dans le FCB Le registre X est pr serv 2 4 11 CHARGEUR CD30 L AD chaygement d un fichier Ce sous programme est destin au chargement en m moire d un fichier binaire r sident sur disque En entr e le FCB du syst me en 8C840 doit contenir le nom du fichier pr ala blement ouvert en lecture binaire Le fichier est charg en m moire l adresse normalement sp cifi e dans le fichier lui m me mais il est possible de la chagger dans une zone m moire diff rente en utilisant le d placement donn en KECIB CCIC Le d placement est ajout l adresse de chargement lue dans le fichier attention au d bordement de l addition Si une adresse de transfert est trouv e elle n est pas modifi e par le d placement Il faut noter aussi que le contenu du fichier n est pas modifi par le d placement et qu il ne s agit pas d un proc dure de relogement de programme Si l on ne veut pas de d placement il faut le mettre z ro avant l appel du sous programme En sortie le drapeau de transfert CCI1D est z ro si aucune adresse de transfert n a t trouv e sinon il
3. En criture LDAA CHAR Chargement du caract re LDX f SCH Pointe sur l adresse du FCB JSR FMS Appel du FMS BNE ERR R Test d erreur Le caract re dans A a t crit Fonction Ouverture pour lecture Le fichier d sign dans le FCB est ouvert pour lecture seulement Si le fichier ne peut tre trouv un code erreur est renvoy Les zones du FCB qui doivent tre initialis es avant l ex cution de la fonction sont le num ro du lecteur le nom du fichier l extension du fichier et le code fonction Les autres zones du FCB seront initialis es par l ex cution de l ouverture du fichier L ouverture du fichier met l indicateur de compression d espace z ro d signant par l un fichier source TXT Si le fichier est un fichier binaire le programmeur devra positionner l indicateur de compression FF apr s avoir ouvert le fichier pour ne pas valider le mode de compression de place En sortie du FMS apr s l ouverture d un fichier le code fonction dans le FCB du fichier est mis automatiquement z ro Lecture Ecri ture du prochain caract re en anticipation d une E S sur le fichier Exemple LDX FCB Pointe sur l adresse du FCB initialisation des attributs du fichier dans le FCB LDAA ZC Code Fonction Ouverture en Lecture STAA O X Sauvegarde dans le FCB JSR FMS Appel du FMS BNE ERR R Test d erreur Le fichier est maintenant ouvert pour lecture Dans le cas du fichier binaire il faut continuer ave
4. Ce caract re est ignor par FLEX S il est rencontr dans un fichier il ne sera pas renvoy au programme appelant 18 ACSII ANNULER Ce caract re est ignor par FLEX S il est rencontr dans un fichier il ne sera pas renvoy au programme appelant 09 ASCII HT ou TABULATION HORIZONTALE C est un caract re drapeau qui indique qu une chaine d espace a t retir du fichier L octet suivant ce caract re contient le nombre d espaces supprim s 2 127 Le programme appelant ne voit ni le caract re drapeau ni le compteur de caract res Le nombre exact d espaces est retourn au programme utilisateur caract re par caract re chaque ex cution de la fonction lecture du prochain caract re fonction 0 l criture d un fichier les espaces sont automatiquement effac s au fur et mesure qu ils sont envoy s au FMS par la fonction Ecriture du prochain caract re La compression des donn es est donc totalement transparente pour le programme appelant Cette description n est valable que pour des fichiers sources Si Le fichier ouvert est un fichier binaire le caract re drapeau et le compteur seront transmis identiques ce qu ils sont dans le fichier SMT Manuel de Programmation Avanc e 57 7 6 Cr ation de commandes utilitaires Les commandes utilitaires peuvent tre r alis es en assembleur FLEX r serve un espace m moire dans lequel des utilitaires de taille moy
5. BER CHP HER Cp LDA CP BNE LDX LDR STA JSR BNE LDR STA JSR JSR L X STX S0u18 SERA CD3B D486 DAN SC D 4 SLL EDE CDSF EDOS CEii seca SECCA CCE 4 SIE CCFC SC 1 Ou Pi i DN Hi DCH E27 dn p3 LETTRH D n PB ER p PAUSE POUT GA PIS CECR fi BX FHS P SFF 3B X LEAL PINIT POST SMT TC Manuel de Programmation Avanc e 06e P COMMAND 26 11 81 AGBEH LEUR TEC D PADE 2 39 Ct43 7E CD amp JMP RENTER EB CA Ab Ai Ni LIRA iX Gi CA OI W CMP ENFER E2 Ci4A 26 EME Pi 63 CDA CE Ci 62 LEX NOPST 64 CAE BD CB iE P23 Jon PIR 65 CiS 298 BRA F4 66 C194 BD CD SF PS JSR RPTERR 67 Ci57 BD D4 3 P JPR FHSCLS ES CIR 7E CD 43 JHP HARNS 69 CD CE Ci 73 PE LDX LERSTR 7 CiEn 20 ED BRA P25 7i 72 Cibi 2 NOPOT FEE TAPRINT GYG non trouv 73 C176 84 ECH A 74 Ci79 22 ERSTR FEE JEP doit etre suivie d une connande 75 C19C 84 FCB A 77 CELS DR ERAZ 78 79 CBI FF FCB FF ca CDA 56 FEE 1 PRINT 61 CE493 Wi FEB AAt gi DAC DA FEE Str Hi DA END H AUCUNE ERREUR BETECTEE P COMMAND 26 11 01 ASSEMBLEUR TSE 6688 PAGE A TABLE SYMBOLES ERL Lu ERSTR Im FEB CB4g FMS D4 b FHSCLS DABS INDEX 918 LORD CH34 LOTTRH Oil NFER HU NOPST ELEZ OUTCH 09 P BE Pi CIO PL Cili PiS CIA P2 CLAE P23 t P3 LA P CiN PE C158 PAUSE CCA9 PINIT CCCB POUT CEA PRE FL PETRNG CDI RENTER CDBE RPTERR D VN C182 HARMS CDS k COPYRIGHT C 1978 BY TECHNI
6. JSR FMS Appel du FMS BNE ERR R Test d erreur Le fichier est maintenant ferm Fonction 5 Repositionnement au d but d un fichier Seuls les fichiers ouverts pour lecture peuvent tre reposi tionn s En sortie du FMS le code fonction dans le FCB est mis anticipant un ordre de lecture du fichier Si le programmeur d sire repositionnerau d but un fichier ouvert pour criture de telle sorte qu on ooe maintenant le lire il doit d abord le fermer puis le rouvrir pour ecture Exemple Le fichier est d j ouvert pour lecture LDX 4 FCB Pointe sur l adresse du FCB LDAA 5 Code de repositionnement STAA 0 X sauvegarde dans le FCB JSR FMS Appel du FMS BNE ERR R Test d erreur Le fichier est maintenant repositionn au d but et pr t en lecture Fonction 6 Ouverture du catalogue Cette fonction permet l ouverture du catalogue afin qu un programme puisse y acc der Le FCB utilis pour r aliser cette fonction ne doit pas l tre d j pour l utilisation d un fichier En entr e la seule information stocker dans le FCB est le num ro du lecteur Aucun nom de fichier n est n cessaire Les informations dans le catalogue sont lues en utilisant la fonction acquisition des donn es d un enregistrement S MT Manuel de Programmation Avanc e 7 LOSP La fonction criture des donn es d un enregistrement est utilis e pour crire dans le catalogue La fonction Lecture Ecriture du prochain
7. QUECH2 Voir la description de ces sous programmes pour plus de d tails CC23 aiguillage de l entr e Si cet octet est nul le sous programme d entr e GETCHR utilise le sous programme INCH sinon le sous_programme INCH2 Voir la description de ces sous programmes pour plus de d tails CC24 SCC25 adresse du FCB de sortie S ils ne sont pas nuls ces deux octets contiennent l adresse d un FCB bloc de contr le de fichier utilis pour la sortie dans un fichier S ils sont nuls la sortie n est pas ex cut e Voir le sous programme OUTCHR pour plus de d tails Les deux octets sont remis O par le sous programme RSTRIY SCC26 CC27 adresse du FCB d entr e S ils ne sont pas nuls ces deux octets contiennent l adresse d un FCB bloc de contr le de fichier utilis e pour l entr e partir d un fichier S ils sont nuls l entr e n est pas ex cut e Voir le sous programme GETCHR pour plus de d tails Le sous programme RSTRI S remet 0 ces deux octets GC28 drapeau commande Cet octet est non nul si leFLEX est appel par un programme utilisateur via le point d entr e D CMND Voir la documentation de D CMND pour plus de d tails Manuel de Programmation Avanc e CC29 CC2A CC2B CC2D 8CC2F 8CC30 SCC4E CCCO CCD8 compte des caract res sortis Cet octet contient le compte des caract res sortis dans une ligne Il est compar au nombre de caract res par lign
8. Sorties Dit C 0 bit 2 Leg g prot g en criture H bit C 1 bit Z 1 et B 0F s il ny a pas de disque Une op ration de repositionnement sur la piste 00 est ex cut e sur le disque dont le num ro est contenu dans le bloc de contr le du fichier FC8 d sign SDE8C SELECTION DU DISQUE Entr e X adresse du FCB Le disque dont le num ro est contenu dans le bloc de contr le du fichier sera s lectionn E8F TEST DISQUE PRET Entr e X adresse du FCB l Sortie bit Z l et bit C 1 si le disque n est pas pr t bit Z 0 et bit C 0 si le disque est pr t H Ce module existe s il est possible de tester l tat du disque dont le num ro est pr cis dans le FCB apr s avoir s lectionn ce disque et attendu le temps n cessaire la stabilisation de la vitesse des moteurs 1 seconde environ dans le cas des 5 Dans les configura tions qui ne permettent pas ce test ce module doit simplement renvoyer l tat pr t si Le num ro du disque est 0 ou l dans le FCB et un tat pas pr t pour tout autre num ro DE92 TEST RAPIDE DISQUE PRET SMT Manuel de Programmation Avanc e Ze 7 2 Initialisation des disquettes La commande NEWDISK est utilis e pour initialiser une dis quette suivant un format reconnu par FLEX Le processus d initialisation consite en l criture des nu m ros de piste et de secteurs sur chaaue secteur d une disquette suivant le forma
9. cessitant alors une r initialisation des disquettes ee EE ERT SR SE E e me tr E BE ep mn does mme dot cin mem Gm Get gen ques ven Ce point d entr e est utilis par le syst me d exploitation disque la fin de chaque ligne de commande pour fermer tout fichier laiss ouvert par le processeur Les programmes utilisateur peuvent aussi utiliser ce point d entr e pour fermer tous les fichiers ouverts toutefois si une erreur est d tect e en essayant de fermer un fichier tous les fichiers restants resteront dans leur tat Le programmeur est ainsi pr venu contre l usage de cette routine au lieu de la bonne m thode qui consiste fermer les fichiers individuellement Il n y a pas d arguments dans cette routine Elle est entr e par une instruction JSR comme une sous routine En sortie le bit Z du registre de conditions du CPU est 0 si une erreur est d tect e 1 sinon dans le cas d une erreur le registre d index contient l adresse du FCB qui cause l erreur Pen d r en rm E nait t Bt mn rm go ant mirent d c me dort M kenn ARE A e Ce point d entr e est utilis pour tous les autres appels au syst me de gestion des fichiers Un code fonction est rang dans l octet n 0 du FCB l adresse du FCB est mis dans le registre d index du CPU et ce point d entr e est appel par un JSR Les diff rentes fonctions sont d crites ci dessous En sortie le bit Z du registre de conditions du CPU est mis I si aucu
10. diteur Le FLEX ne l utilise pas Sa valeur par d faut est 0 il n est pas d fini et peut tre fix par la commande TTYSET 8CC0O7 caract re cho du retour arri re TTYSET BE C est le caract re que le sous programme INBUF envoie comme cho la r ception du caract re retour arri re Si il a la m me valeur 08 que le caract re retour arri re FLEX envoie un espace 20 avant l cho ce qui permet d effacer sur un cran le caract re affect par le retour arri re Sa valeur par d faut est 08 CCO8 nombre de lignes saut es entre deux pages TTYSET EJ Cet octet indique FLEX 1e nombre de lignes sauter entre deux pages une page ayant le nombre de lignes d fini en CCO3 La valeur par d faut est O il n y a pas de mise en page elle peut tre red finie par la commande TTYSET CCO9 drapeau de pause entre pages TTYSET PS Ce drapeau permet d arr ter la sortie entre chaque page Si l octet est nul le FLEX arr te la sortie sur cran ou imprimante la fin de chaque page s il est non nul il n y pas de pause Le caract re d chappement permet de reprendre l dition Sa valeur par d faut est O et peut tre modifi e par la commande TTYSET CCOA caract re d chappement TTYSET ES La frappe de ce caract re provoque l arr t de l dition en fin de ligne Sa valeur par d faut est 20 le caract re ASCII es pace Pour reprendre la sortie frapper nouveau ce caract re 2 3 3 VARIABLES S
11. e Fonction 14 R serv pour une utilisation future 0E hex Fonction 15 Acc s s quentiel au prochain secteur OF hex En entr e le fichier peut tre ouvert pour lecture ou pour criture pas pour une mise jour Si le fichier est ouvert pour lecture lors de l ex cution de cette fonction tous les octets de donn es restants i e pas encore lus sont ignor s et le pointeur de donn es sera positionn sur le premier octet de donn es du secteur suivant dans le fichier Si le fichier est ouvert pour criture au cours de l ex cution de cette fonction la partie non crite du secteur courant sera initialis ZERO puis le secteur entier sera crit sur le disque Le caract re suivant crire dans ce fichier sera plac dans 1a premi re position de la zone des donn es du secteur suivant Il est noter que tous les appels cette fonction seront ignor s tant qu il n y aura pas un octet d crit ou de lu dans le secteur courant Fonction 16 Ouverture de l enregistrement des informations syst me 10 hex EE En entr e seul le n du lecteur doit tre sp cifi dans le FCB il n y a pas de nom de fichier associ gi e ni Le FCB choisi ne doit pas tre d j ouvert pour l utilisation un fichier Cette fonction permet l acc s l enregistrement des informations syst me de la disquette d sign e dans le FCB IL n y a pas de fonctions diff rentes pour la lecture ou la modification de ce sect
12. utilis par les fichiers Si cette erreur est renvoy e par le FMS le dernier caract re qui devait tre crit dans le fichier ne l a pas t Une op ration de lecture d un fichier s est termin e par La rencontre d une Fin de Fichier E 9 F Toutes les donn es du fichier ont t lues Cette erreur peut tre renvoy e au cours de la lecture du catalogue du disque l aide de la fonction Acquisition des donn es d un enregistrement fonction 7 quand la fin du catalogue est atteinte S MT 47 Manuel de Programmation Avanc e 9 ERREUR DE LECTURE SUR DISQUE Une erreur de parit ou autre a t d tect e par le contr leur au cours d un essai de lecture d un secteur Le FLEX aura automatiquement essay de relire le secteur d fectueux plusieurs fois sans succ s avant de rapporter l erreur Cette erreur peut aussi tre due au chargement de num ros de piste et de secteurs ill gaux dans le FCB 10 ERREUR D ECRITURE SUR DISQUE Une erreur de parit ou autre a t d tect e par le contr leur au cours d un essai d criture d un secteur Le FLEX aura automatiquement essay de r crire plusieurs fois le secteur d fectueux sans succ s avant de rapporter l erreur Cette erreur peut aussi tre due au chargement de num ros de piste et de secteur ill gaux dans le FCB Une erreur d criture sera aussi ren voy e si une erreur de lecture est d tect e par le FLEX au cours de la mi
13. MT Manuel de Programmation Avanc e SEN est rang dans une zone de 63 caract res raison de quatres zones par enregistrement un enregistrement correspondant un secteur disque Si le message est trouv il est sorti sur l cran sinon le code d erreur n tant pas r pertori ou le fichier n ayant pas t trouv le code d erreur nnn est affich sur l cran avec le message ERR DISQUE Z nnn La description des codes d erreur syst me est donn e dans la suite du manuel 2 4 17 CONVERSION D UN NOMBRE HEXADECIMAL CD42 GETHEX entr e d un nombre h xad cimal Ce sous programme permet de convertir en binaire un nombre hexad cimal entr dans le tampon de ligne En entr e le pointeur tampon de ligne doit d signer le premier caract re du nombre en sortie la retenue est z ro si le sous programme a trouv un nombre valide le registre B est non nul et le registre X contient le nombre en binaire Le pointeur tampon de ligne est laiss sur le premier caract re suivant Le s pa rateur sauf si ce s parateur est un retour chariot ou une fin de ligne La valeur retourn e dans le registre X est nulle si le premier caract re examin dans le tampon est un s parateur tel qu une virgule la retenue est mise z ro ainsi que le registre B pour indiquer que le nombre n a pas t trouv ou bien qu il a t omis intentionnellement sachant qu il prendra la valeur O par d faut Si un caract re non h
14. d clenchera La lecture du premier secteur de la Table des secteurs du fichier Apr s s tre correctement positionn sur un enregistrement le premier caract re lu acc s s quentiel est le premier octet de donn es de l enregistrement sp cifi Essayer d acc der un enregistrement qui n existe pas d cienche une erreur SMT Manuel de Programmation Avanc e 43 Pour plus d informations sur les fichiers acc s direct lire le chapitre intitul Fichiers acc s direct Exemple La 4 D Positionnement sur l enregistrement n 6 LDX CG FCB pointe sur l adresse du FCB LDAA 6 init position STAA 93 X sauvegarde dans le FCB CLR 32 X init M S B position 0 LDAA f 2 code fonction STAA 0 X sauvegarde dans le FCB JSR FMS appel du FMS BNE ERR R test d erreur L enregistrement est pr t tre lu Fonction 22 Retour arri re d un enregistrement 16 hex Cette fonction est aussi utilis e pour les fichiers acc s direct Elle prend le num ro d enregistrement courant dans le FCB et Le d cr mente de 1 Un re positionnement sur le nouvel enregistrement est ex cut Cela a pour effet de se d caler en arri re d un enregistrement en entier Par exemple si le num ro d enregistrement courant est 16 et que la fonction retour arri re d un enregistremeent est ex cut e le fichier sera alors positionn pour permettre La lecture du premier octet de l enregistrement ZZ 15 Le fichier
15. de ces zones sont r serv s l usage de celui ci constante m moire de travail et ne doivent en aucun cas tre utilis s par un programme de l utilisateur qui risquerait de provoquer des destructions 2 3 CARTE MEMOIRE DES VARIABLES ET PARAMETRES 2 3 1 TAMPON LIGNE CO8O COFF tampon ligne Bloc de 128 octets o le sous programme INBUF range les caract res frapp s au clavier Tous les caract res l ex ception des caract res de contr le sont plac s dans le tampon Les caract res effac s par la touche retour arri re ne sont pas m moris s dans le tampon ainsi que la touche retour arri re elle m me Le retour chariot signalant la fin de l entr e d une ligne est rang dans Le tampon Le tampon est aussi utilis pour charger le fichier STARTUP lors d un d marrage froid du syst me disque commande Lei SMT Manuel de Programmation Avanc e 2 3 2 VARIABLES DE CONTROLE DE L ENVIRONNEMENT DU SYSTEME CC00 caract re de retour arri re TIYSET BS C est le caract re interpr t par le sous programme INBUF comme retour arri re backspace Il peut tre d fini par l utilisateur au moyen de la commande utilitaire TTYSET Sa valeur par d faut est le caract re ASCII BS soit 08 en hexad cimal ou aussi CTRL H ECO1 caract re d effacement TTYSET DL C est le caract re interpr t par Le sous programme INBUF comme caract re d effacement ou d annulation de ligne Il peut t
16. doit tre ouvert pour lecture ou pour mise jour avant l utilisation de cette fonction Voir le chapitre fichiers acc s direct pour plus de d tails S MT Manuel de Programmation Avanc e Ve 5 FICHIERS A ACCES DIRECT Le Syst me d exploitation FLEX permet la gestion des fichiers en acc s direct La technique de l acc s direct permet d atteindre n importe quel secteur d un fichier en pr cisant simplement la position corres pondant cet enregistrement La longueur du fichier n a pas d importance et le temps d acc s au secteur choisi est celui de deux lectures au maximum En utilisant le m me m canisme l utilisateur peut aussi ais ment se positionner sur le ni me caract re d un secteur Seulun petit calcul utilisant le nombre d octets de donn es dans un secteur 252 est n cessaire Tous les fichiers ne peuvent tre manipul s en acc s direct Il est n cessaire qu ils aient t auparavant cr s en tant que fichiers acc s direct Le mode de cr ation d un fichier est par d faut le mode s quentiel Tous les utilitaires standard du FLEX fonctionnent avec des fichiers acc s s quentiel Le seul fichier acc s direct utilis par FLEX est le fichier ERR RS SYS Un fichier cr comme un fichier acc s direct peut tre lu de mani re directe ou s quentielle Un fichier cr comme un fichier acc s s quentiel ne peut tre lu que de mani re s quentielle Pour
17. hex Le fichier doit tre ouvert pour mise jour Cette fonction est semblable la pr c dente mis part que le caract re charg dans l accumulateur A est crit dans le secteur la position indiqu e par l octet d indice d acc s direct du FCB L indice d acc s direct ne doit pas tre plus petit que A car les 4 premiers octets de chaque secteur sont r serv s des donn es syst me Exemple Ecriture d une donn e dans le 54 me octet du secteur courant LDX AF FCB pointe sur l adresse du FCB LDAA Z 54 45 init num ro de l octet choisi STAA 35 X sauvegarde dans le FCB LDAA 4 18 code fonction STAA 0 X sauvegarde dans Le FCB LDAA CARACT acquisition du caract re crire JSR FMS appel du FMS BNE ERR R test d erreur Le caract re a t crit dans le secteur SMT 42 Manuel de Programmation Avanc e Fonction 19 R serv e pour une utilisation future 13 hex Fonction 20 Recherche du lecteur suivant 14 hex Cette fonction est utilis e pour trouver le prochain lecteur pr t FLEX ex cute cette fonction de mani re diff rente suivant les versions disques 5 ou 8 Cela est d aux limites du mat riel Le d roulement de cette fonction est le suivant pour la version 8 Si le num ro de lecteur dans le FCB est FF hex la recherche des lecteurs pr ts d marre sur le lecteur O Si le num ro du lecteur dans le FCB est 0O 1 ou 2 la recherche d marre par le lec
18. la ligne JSR FEMS fait r f rence au point d appel du FMS D406 Fonction QO Lecture criture du prochain octet caract re Si le fichier est ouvert pour lecture le prochain actet est lu dans le fichier et transmis au programme appelant dans l accumulateur Si le fichier est ouvert pour criture le contenu de l accumu lateur A est plac dans le buffer afin d tre crit dans le prochain octet du fichier L indicateur de compression d espace doit contenir les valeurs convenables pour r alis rladite compression si n cessaire voix dans la description d un FCB le paragraphe traitant de l indicateur de compression d espace En sortie l octet de code fonction demeurera inchang Ainsi des lectures critures cons cutives pourront tre ex cut es sans avoir recharger le code fonction En lecture une erreur Fin de Fichier est envoy e quand toutes les donn es du fichier ont t lues Quand le secteur courant lire est vide le prochain dans le fichier est automatiquement pr par pour l ex cution de La fonction sans aucune intervention de l utilisateur De m me en criture des secteurs pleins sont automatiquement crits sur le disque sans intervention de la part de l utilisateur SMT 34 Manuel de Programmation Avanc e Exemple En lecture LDX Z FCB Pointe sur l adresse du FCB JSR FMS Appel du FMS BNE ERR R Test d erreur Le caract re lu est maintenant dans l accu
19. noms GET et M N Par contre il pourra cr er des commandes aux noms identiques ceux des commandes r pertori es dans le catalogue du disque tout en sachant que ces derni res ne pourront plus tre ex cut es tant que l acc s la table des Commandes Utilisateur n est pas inhib en remettant z ro le pointeur CC12 8CC13 3 2 Commandes r sidentes sur disque Les commandes utilisateurs sauvegard es sur disque doivent obligatoirement poss der une adresse de transfert et Une extension CMD En g n ral ces commandes sont cr es en assembleur et ia mani re d affecter une adresse de transfert un programme en cours d assemblage est d crite dans le manuel de pr sentation de l assembleur ASMB Une commande utilisateur peut tre ex cut e en n importe quel endroit de la m moire RAM utilisateur Son adresse de chargement EN est pr cis e l assemblage par la directive RG Mais dans la plupart des cas il est util de pouvoir les charger dans l espace des commandes r serv par le FLEX C100 C6FF SMT Manuel de Programmation Avanc e Pratiquement toutes Les commandes fournies avec FLEX s ex cutent dans cette zone m moire La commande SAVE ne fait pas exception la r gle aussi il n est pas possible de l utiliser pour sauvegarder des informations contenues dans cette zone C est pour cette raison que la commande SAVE L W a t cr e Elle est identique la commande SAVE mais s ex
20. pas une compression d espace par exemple pour un fichier binaire 5 MT Manuel de Programmation Avanc e 230 Une valeur positive non nulle indique que la compression est en cours cette valeur repr sente le nombre d espaces trait s jusque 1 Notons que bien que cet octet soit inclus dans la zone de travail d crite ci dessus cela n entra ne aucun conflit dans la mesure o la compression ne peut se faire que si le fichier est ouvert et que la zone de travail n est utilis e que pour un changement de nom RENAME qui ne se fait que fichier ferm En r gle g n rale cet octet sera 0 pour tout travail sur des fichiers TXT et FF pour tout travail sur des fichiers binaires Octets 63 319 Tampon secteur Ces octets contiennent les donn es du secteur lu ou crit Les 4 premiers octets du secteur sont utilis s par le syst me les 252 autres sont utilis s pour y ranger les donn es SMT 31 Manuel de Programmation Avanc e 4 1 bis Points d entr e du syst me de gestion de fichier 5 entree gu syst me de gestion de fichier PE E Wd mm d E S et M FOE ST Fee e A Fr mat M me em aang mans amtar pe mue Kent d KH derar bet mat Ce point d entr e est utilis par le syst me d exploitation disque pour initialiser le FMS apr s un d part froid L utilisateur ne devrait pas avoir utiliser ce point d entr e Une initialisation au mauvais moment peut d truire les fichiers de donn es n
21. res A l appel le registre X doit contenir l adresse du premier caract re de la chaine qui doit se terminer par le caract re ASCII E T 04 Les para m tres TTYSET sont pris en compte Le registre B est pr serve 2 4 6 CLASSEMENT D UN CARACTERE CD21 CLASS classement d un caract re Le sous programme teste si un caract re est alphanum rique ou non En entr e le caract re doit se trouver dans le registre en sortie si le caract re est alphanum rique une lettre ou un chiffre le bit de retenue carry du code de condition est mis z ro sinon la retenue est mise un et le caract re rang dans le dernier caract re terminal CC11 Tous Les registres sont pr serv s 2 4 7 TRAITEMENT DU RETOUR CHARIOT SAUT DE LIGNE CD24 PCRLF sortie retour chariot saut de ligne Ce sous programme envoie un retour chariot et un saut de ligne caract res ASCII CR et LF en prenant en compte un certain nombre de param tres TTYSET Avant toute chose le sous programme teste si un caract re d chappement TTYSET ES a t frapp au clavier pendant la sortie de la ligne pr c dente Si oui il attend l entr e d un autre caract re d chappement pour continuer ou d un retour chariot qui provoquera l abandon du travail en cours Sur un retour chariot Le sous programme met z ro le dernier caract re terminal CC11 pour supprimer les ventuelles commandes restant dans le tampon de ligne et se branche l adresse c
22. s avoir mis z ro le bit z condition z ro du registre condition du CPU i e une condition non nul existe Ceci peut tre test par une instruction BEQ ou BNE Octet 2 Code d activit Cet octet est mis 1 par le FMS si le fichier est ouvert pour lecture et mis 2 s il est ouvert pour criture Cet octet est test par plusieurs modules du FMS pour d terminer la l galit de l op ration demand e Un code erreur est donn en cas d op ration ill gale Les douze octets suivants 3 14 renferment la sp cification de fichier qui consiste en un num ro de lecteur nom de fichier et extension de fichier Certaines des fonctions du FMS ne requi rent pas le nom du fichier ni son extension ss Octet 3 Num ro de lecteur C est le num ro du lecteur contenant la disquette sur laquelle le fichier se trouve Ce num ro peut tre 0 1 2 ou 3 SMT Ela Manuel de Programmation Avanc e Les 24 octets suivants 4 27 contiennent les informations n cessaires la d nomination du fichier Ce sont les m mes informations que celles contenues dans l inventaire du disque Octets A 11 Nom du fichier C est Le nom du fichier choisi Ce nom doit obligatoirement commencer par une lettre et doit contenir uniquement des lettres des chiffres des traits d union Gi et ou des soulign s Si le nom du fichier contient moins de 8 caract res Les octets restants seront z ro Le nom du fichier doit t
23. s pour pointer sur le secteur suivant dans le fichier et non plus dans la cha ne des sec teurs disponibles Les secteurs de l inventaire du disque sur la piste 00 ont aussi des octets de lien de m me type que ceux d crits dans la chaine des secteurs disponibles et dans les fichiers de donn es SMT Manuel de Programmation Avanc e Une disquette FLEX n est pas initialis e dans un format IBM standard En effet dans un format standard tous les secteurs se sui vent physiquement dans l ordre d fini par la suite logique de leur num ro i e Le secteur 2 suit le secteur l Le secteur 3 suit le secteur 2 etc Sur une disquette FLEX les secteurs sont entrelac s Si les secteurs se suivaient physiquement la lecture d un enregistrement apr s l acquisition des donn es le secteur suivant directement celui ci serait d j pass sous la t te de lecture avant que le deuxi me ordre de lecture ne soit donn Aussi l entrela age des secteurs accorde t il plus de temps pour manipuler les donn es Le ph nom ne de perte d un secteur du aux temps de traite ment relativement lev s est appel r volutions perdues et a pour r sultat de ralentir consid rablement l ex cution des programmes uti lisant des fichiers Le format du FLEX permet de r duire Le nombre de r volutions perdues et donc de diminuer Le temps d ex cution d un programme SMT 54 Manuel de Programmation Avanc e 7 3 Description d un
24. secteur du catalogue Chaque secteur dans la partie de la disquette FLEX r serv e au eatalogue est compos de 10 enregistrements catalogue Chaque enregistrement correspond un fichier sur la disquette Dans chaque secteur les quatre premiers octets contiennent les informations de chainage et les 12 suivants ne sont pas utilis s Si on utilise la fonction Acquisition des donn es d un enregistrement pour lire les informations contenues dans le catalogue ces 16 octets sont automatiquement saut s Chaque enregistrement du catalogue contient exactement les m mes informations que celles stock es dans la zone d identification du fichier dans les FCB octets 4 27 Pour plus de d tails se r f rer la description du bloc de contr le du fichier FCB Un enregistrement du catalogue qui n a jamais t utilis a un Q dans le premier octet du nom du fichier Un enregistrement du catalogue qui a t effac a le bit de poids le plus fort du premier octet du nom du fichier mis l i e le premier octet du nom du fichier est n gatif DESCRIPTION D UN SECTEUR DE DONNEES Chaque secteur sur une disquette FLEX sauf les deux secteurs du chargeur binaire a le format suivant Octets 0 I adresse du prochain secteur Octets 2 3 num ro logique du secteur dans le fichier Octets 4 255 donn es Si un fichier est compos de plus d un secteur les octets d adresse du prochain secteur contiennent le
25. tampon ligne Ce sous programme lit une ligne au clavier et la range dans le tampon ligne Les caract res de retour arri re et d effacement TTYSET BS et TTYSET DL sont trait s Tous les autres carac t res de contr le sont ignor s l exception du retour chariot et du saut de ligne Le retour chariot est plac dans le tampon la fin de 1a ligne le saut la ligne cr e un blanc dans le tampon et provoque un retour chariot sur l cran pour continuer l entr e sur une nouvelle ligne 128 caract res peuvent tre entr s dans le tampon y compris le retour chariot final Au cas o plus de caract res seraient frapp s la ligne est tronqu e au 127i me un retour chariot tant plac dans le 1281 me A la sortie du sous programme le pointeur du tampon de ligne CC14 CC15 est initialis sur le premier caract re SMT Manuel de Programmation Avanc e Attention les commandes du syst me entr es au clavier sont gard es dans le tampon de ligne L utilisation de INBUFF par un programme utilisateur peut donc d truire des commandes qui n ont pas encore t trait es par le moniteur Il est donc prudent de r server l usage du tampon de ligne l entr e de commandes du moniteur pour ne pas risquer des effets impr visibles 2 4 5 SORTIE D UNE CHAINE DE CARACTERES SCDIE PSTRNG sortie d une chaine de caract re Ce sous programme envoie un retour chariot et un saut de ligne avant de sortir la chaine de caract
26. 3 3 2 Traitement des erreurs mp Een E gg gd pp p lent ment mt dh ee mm Wed mm eus mm eus pn gent GS eg Si en cours d ex cution une erreur est d tect e par le D S le FMS ou par la commande elle m me i1 faut pr voir un traitement de reprise ou l abandon de 1 ex cution de La commande en redonnant le contr le au FLEX par le point d entr e amp chaud CD03 Apr s avoir affich un message appropri sous programme RPTERR par exemple pour une erreur FMS SMT Manuel de Programmation Avanc e 23 3 4 Exemple d utilisation l L criture du nom d un fichier dans le FCB peut tre r alis e de la mani re suivante On suppose que le pointeur du buffer de ligne d signe ie ler caract re du nom du fichier et que son extension sera TXT par d faut LDX 4E FCB X pointe sur le FCB JSR GETFIL criture du nom du fichier dans le FCB BCS ERR R traitement d erreur LDAA 1 code de l extension TXT JSR SETEXT criture de l extension par d faut Il ne reste plus qu ouvrir le fichier afin de proc der l op ration souhait e voir les exemples du FMS pour l ouverture d un fichier 2 Les 2 exemples suivants illustrent la simplicit de l utilisation des sous programmes d E S fournis par le DS 21 LDAA A caract re ASCII A JSR PUTCHR sortie du caract re 22 LDX STRING x pointe sur une cha ne de caract res JSR PSTRNG affiche Retour chariot Saut ligne Cha ne SMT Manuel de Programmati
27. CAL SYSTEM CONSULTANTS INC SMT Manuel de Programmation Avanc e 66 7 9 Les interruptions dans FLEX FLEX fait une utilisation intensive des interruptions pendant l impression simultan e Tous les utilitaires du FLEX l Editeur l Assembleur le Processeur de texte et le Basic sont interruptibles Les programmes utilisateurs peuvent eux m mes tre interrompus Mais aucun moment les vecteurs d IRQ ou SWI ne doivent tre modifi s dans un utilitaire utilisant les modules d impression CARTES MEMOIRE OU SYSTEME 0000 B FFF RAM utilisateur CO00 CO7F Pile syst me C080 COFF Buffer d entr e C100 C6FF Zone des commandes utilitaires 700 C83F Superviseur et modules d impression C840 C97F FCB du syst me C980 CBFF Zone des fichiers syst mes CCOO D3FF DOS D400 DE7F FMS DE80 DEFF Modules d exploitation du disque
28. Le processus de chargement s arr te la r ception d une adresse de transfert ce moment le contr le est pass au programme venant d tre charg par une instruction de saut JMP l adresse de transfert re ue Si jamais le programme est d plac sur le disque apr s avoir t reli au chargeur binaire il est n cessaire de relancer la commande LINK LINK peut tre utilis e dans plusieurs applications L une d elles est le d veloppement d un syst me d exploitation propre l utilisateur L utilisateur peut parfaitement utiliser son propre syst me d exploitation le relier au chargeur binaire et l utiliser la place du FLEX Il peut tre aussi int ressant dans des configurations sp ciales de pouvoir charger quelques modules sp cialis s avant le FLEX Si cela est le cas il faut se rappeler que tant que le FLEX n a pas t charg en m moire il n y a ni module d exploitation des disques r sidents en MEV ni syst me de gestion de fichiers SMT Manuel de Programmation Avanc e Ss 7 8 Modules d impression Deux programmes d impression sont fournis avec FLEX Ils ne peuvent se concevoir l un sans l autre Le premier est la commande utilitaire Pi et l autre est le fichier PRINT SYS initialisation du terminal imprimant et sortie du caract re Le listing source de la commande P est fourni dans les pages suivantes Le fichier PRINT SYS peut tre modifi afin de s adapter au terminal choisi pa
29. S BD CD 3F LIST9 JSR RPTERR BD D4 03 JSR FMSCLS 7E CD 03 JMP WARMS END LIST POINT D ENTREE A CHAUD ACQUI SPECIF FICHIER SORTIE DU CARACTERE IMPRESSION SAUT A LA LIGNE INIT EXTENSION PAR DEFAUT AFFICHAGE ERREURS DISQUE FCB SYSTEME DEBUT NUMERO DE LA VERSION POINTE SUR L ADRESSE DU FCB ACQUIS SPECIF FICHIER ERREURS CODE TXT OU LECTURE SAUVEGARDE DANS LE FCB EXTENSION PAR DEFAUT APPEL DU FMS OUVERTURE DU FICHIER TEST D ERREUR POINTE SUR L ADRESSE DU FCB APPEL DU FMS ACQUIS D UN CARACT ERREURS RETOUR CHARIOT SORTIE SAUT A LA LIGNE REPETITION SORTIE DU CARACTERE REPETITION ACQUIS CODE ERREUR ERREUR FIN DE FICHIER CODE FERMETURE DU FICHIER SAUVEGARDE DANS LE FCB APPEL DU FMS FERMETURE ERREURS RETOUR SOUS FLEX AFFICHAGE DE L ERREUR FERMETURE DE TOUS LES FICHIERS RETOUR SOUS FLEX S MT Manuel de Programmation Avanc e 61 7 7 Commande utilitaire LINK L utilitaire LINK fourni sur la disquette FLEX est une commande sp ciale Sa seule fonction est de pr ciser au chargeur binaire qui se trouve sur la piste 00 o se trouve le syst me FLEX sur le disque LeFLEX pouvant r sider n importe o sur le disque LINK prend son adresse physique sur le disque et la stocke dans un des pointeurs des secteurs du chargeur Quand le programme s ex cute le chargeur it simple ment cette adresse et charge en m moire le fichier binaire qui se trouve cet endroit
30. YSTEME Cette section contient l adresse de d but du bloc de contr le du fichier FCB utilis L adresse de d but de stockage du programme est donn e par l ins truction ORG La zone m moire r serv e aux commandes utilitaires est uti lis e aussi l origine du programme est en C100 SMF EE Manuel de Programmation Avanc e 4 PROGRAMME Une des premi res conventions respecter l criture d une commande utilitaire est de toujours commencer le programme par une ins truction BRA suivie d une ligne de type VN FCB 1 qui d finira le num ro de version de l utilitaire Dans cet exemple le num ro de version est Cette convention permet l utilisation correcte de la commande utilitaire VERSION En LIST 2 le programme fait l acquisition des param tres d identification du fichier et les stocke dans le FCB Le sous programme GETFIL est utilis en plus de l acquisition et de la sauvegarde des in formations il teste d ventuelles erreurs Si tout se passe bien le bit de retenue c dans le registre de condition du CPU est mis autrement une ou plusieurs erreurs ont t d tect es dans Le nom du fichier C 1 et le contr le est pass la ligne d tiquette LIST 9 A cet endroit un message d erreur est affich et la main est redonn e au syst me FLEX Si le nom du fichier est correct et que le bit de retenue du registre de condition est z ro une extension TXT est donn e par d fau
31. YSTEMES GCOB num ro de l unit syst me C est le num ro de l unit de disquette partir de laquelle les commandes sont charg es Si la valeur de cet octet est FF la recherche se fera sur toute les unit s pr tes L unit par d faut est l unit o Peut tre assign par la commande ASN Sr MT 6 Manuel de Programmation Avanc e CCOC num ro de l unit de travail C est le num ro choisi par d faut de l unit de disquette utilis pour la recherche ou la cr ation d un fichier Si la valeur de cet octet est ZER la recherche se fera sur toutes les unit s pr tes Sa valeur par d faut est 1 Peut tre assign par la commande ASN BGCOD r serv e au syst me SECOE CC10 date Ces trois octets sont utilis s pour ranger la date donn e lors du chargement du moniteur Elle est m moris e en binaire le jour dans le second octet le mois dans le premier et l ann e dans le troisi me tee des unit s et dizaines seulement CCII caract re terminal Cet octet contient le dernier caract re non alphanum rique rencontr dans la lecture s quentielle du tampon de ligne Voir les commentaires sur les sous programmes NXTCH et CLASS dans le paragraphe sous programmes syst me appelables par l utilisateur BECI2 CC13 adresse de la table de commande utilisateur Le programmeur peut ranger dans ces deux octets l adresse de sa table de commande Se r f rer au chapitre concernant les commande
32. a proc dure ne ressemble pas celle des autres fonctions du FLEX Exemple LDX zf FcB pointe sur l adresse du FCB LDAA PISTE PISTE n de la piste choisie STAA 30 X init FCB position courante LDAA SECT SECT n du secteur choisi STAA 31 X init FCB position courante LDAA jf 9 Code Lecture d un secteur STAA 0 X Sauvegarde dans Le FCB JSR FMS Appel du FMS BNE ERR R Test d erreur Le contenu du secteur est maintenant dans le FCB Fonction 10 Ecriture d un secteur 0A hex Cette fonction permet d crire directement un secteur sur le disque IL faut faire tr s attention en l utilisant Cette fonction est normalement ex cut e par FLEX et l utilisateur ne devrait pas avoir la programmer IL est pr f rable d utiliser la fonction Lecture Ecriture du prochain caract re chaque fois que possible Une erreur dans l utilisation de cette fonction peut provoquer la destruction de la disquette n cessitant sa r initialisation SMT 34 Manuel de Programmation Avanc e L adresse du secteur crire doit tre contenue dans Les octets 30 31 du FCB position courante et les donn es crire doivent tre pr sentes au tampon secteur du FCB Cette fonction teste l indicateur de v rification voir le chapitre sur les variables globales et v rifiera le contenu du secteur sur Le disque apr s l criture si le mode de v rification est programm Fonction lI R serv pour une utilisation future 0B he
33. ables globales 2 3 Carte m moire des variables et param tres 2 4 Sous programmes du moniteur Ecriture d utilitaires par l utilisateur 3 1 Commandes r sidentes en m moire 3 2 Commandes r sidentes sur disque 3 3 Remarques d ordre g n ral 3 4 Exemple d utilisation Le syst me de gestion des fichiers FMS 4 1 Le bloc de contr le du fichier FCB A lbis Points d entr e du syst me de gestion de fichier 4 2 Variables globales du FMS 4 3 Codes fonction du FMS EN Fichiers acc s direct Erreurs FLEX Informations particuli res sur les disques et les fichiers Modules d interface du disque Initialisation des disquettes Description d un secteur de l inventaire Description d un fichier binaire Description d un fichier source Cr ation de commandes utilitaires Commande utilitaire LINK Modules d impression PRINT SYS et P Les interruptions dans FLEX zl sl N NNN N sl zl D VD OO zl On UT E L A mu 1 Page T GA L amp Lo 19 20 22 23 24 26 31 32 33 44 46 AVERTISSEMENT Le logiciel doit tre utilis selon les indications donn es dans ce document et le manuel d utilisation La SMT ne sera pas responsable d un usage incorrect et destructif des fonctions et des param tres du syst me d exploitation Le lecteur est invit porter son attention sur les diverses mises en garde qu il trouvera dans ce document En aucun cas la SMT ne s
34. acc s direct peut tre recopi sur une autre disquette sans perdre ses propri t s mais qu il ne peut pas tre fusionn un autre fichier S MT Se Manuel de Programmation Avanc e Ir ERREURS FLEX 1 CODE DE FONCTION FMS ILLEGAL La valeur du code de fonction dans Le FCB est trop grande ou interdite L erreur se d clenche l appel du FMS 2 LE FICHIER SPECIFIE EST DEJA OUVERT Une fonction d ouverture pour lecture mise jour ou criture a t programm e dans un bloc de contr lejpour un fichier d j ouvert 3 LE FICHIER SP CIFIE EXISTE DEJA a Une ouverture pour criture est ex cut e avec un FCB contenant les sp cifications d un fichier d j existant sur la disquette b La fonction changement de nom d un fichier est deman d e alors que le nom existe d j sur la disquette 4 LE FICHIER SPECIFIE N A PAS ETE TROUVE L ouverture d un fichier pour lecture ou pour remise jour ou pour r appelation ou pour destruction a t demand e alors que le FCB correspondant contient les sp cifications d un fichier n existant pas sur la disquette 5 ERREUR CATALOGUE SYSTEME RECHARGEZ LE SYSTEME R serv pour une utilisation future o PLUS D ESPACE DISQUE POUR LE CATALOGUE Cela signifie que le disque est plein l allocation d espace pour le catalogue tant dynamique 7 TOUT L ESPACE DISQUE A ETE UTILISE Tout l espace utile de la disquette a t
35. c LDAA FF Suppression compression de place STAA 59 X sauvegarde dans le FCB Fonction 2 Ouverture pour criture C est le m me type de fonction que la fonction l sauf que le fichier ne doit pas d j exister sur la disquette et qu il est ouvert en criture seulement SMT 35 Manuel de Programmation Avanc e Un fichier ouvert en criture ne peut tre lu tant qu il n a pas t ferm puis rouvert en lecture L indicateur de compression de place pourra tre manipul de la m me mani re qu il est d crit plus haut dans l ouverture d un fichier pour lecture Un fichier est normalement ouvert comme un fichier acc s s quentiel mais peut l tre comme un fichier acc s direct en chargeant une valeur non nulle dans l octet du FCB indicateur d une table des secteurs juste apr s l ouverture du fichier pour criture Pour plus de d tail se r f rer aux chapitre traitant des fichiers acc s direct Le fichier sera cr sur le disque d sign moins que le num ro de lecteur soit FF Dans ce cas le fichier sera cr sur le premier disque pr t mode recherche automatique Exemple LDX ZC FCB pointe sur l adresse du FCB initialisation des attributs du fichier dans le FCB LDAA 77 2 Code fonction Ouverture en Ecriture STAA 0 X Sauvegarde dans le FCB JSR FMS Appel du FMS BNE ERR R Test d erreur Le fichier est maintenant ouvert pour criture Dans le cas d un fichier binaire il fau
36. caract re ne fonctionne pas sur un FCB ouvert pour acc der au catalogue Il n est pas n cessaire de fermer un FCB ouvert par La fonction 6 apr s avoir termin la manipulation sur le catalogue Normalement l utilisateur ne doit pas avoir besoin d utiliser cette fonction Fonction 7 Acquisition des donn es d un enregistrement Cette fonction doit tre utilis e uniquement avec un FCB ouvert pour acc s catalogue fonction 6 Chaque fois qu elle est termin e le prochain enregistrement dans le catalogue est charg dans la zone des informations du catalogue du FCB octets 4 27 Tous Les enregistrements du catalogue y compris ceux qui ne sont pas utilis s ou ceux qui sont effac s sont lus lorsque cette fonction est utilis e Apr s la lecture d un enregistrement le FCB pointe sur l enregistrement qui vient d tre lu L adresse courante du catalogue dans le FCB octets 47 49 est celle de enregistrement qui vient d tre lu Une erreur Fin de Fichier est retourn e lorsque la fin du catalogue est atteinte Exemple Acquisition du 38 me enregistrement dans le catalogue LDX FCB pointe sur l adresse du FCB LDAA DISQUE DISQUE n du lecteur choisi STAA 3 X Sauvegarde dans le FCB LDAA Ce Code ouverture du catalogue STAA 0 X Sauvegarde dans le FCB JSR FMS Appel du FMS BNE ERRPR Test d erreur LDAB CC Init compteur 3 LDAA tz Code acquisition d un enregistrement STAA 0 X Sauvegar
37. cr er un fichier acc s direct la proc dure normale d ouverture pour criture doit tre utilis e Puis tout de suite apr s l ouverture si elle est r ussie il faut initialiser l indicateur de table des secteurs du fichier dans le FCB une valeur non nulle ensuite la cr ation du fichier peut commencer Seule la cr ation de fichiers texte en acc s direct pr sente un int r t Lors de la cr ation du fichier le syst me cr e une table des secteurs du fichier SMT 45 Manuel de Programmation Avanc e La table des secteurs du fichier FSM est une table ou catalogue qui permet au syst me de rep rer chaque enregistrement secteur du fichier sur le disque La FSM est constitu e de 2 secteurs et le num ro d enre gistrement 0 lui est affect Ceci implique qu un fichier de donn es de 5 secteurs de long aura finalement une longueur de 7 secteurs s il est cr en acc s direct L utilisateur n a pas besoin de manipuler les secteurs de la FSM aussi lorsqu un fichier est ouvert en lecture ils sont automati quement saut s Par contre le FMS les utilise pour ex cuter les fonctions 21 et 22 La zone d identification d un fichier contient l information pr cisant si un fichier a t cr en acc s direct ou non Si l octet indicateur de table des secteurs d un fichier est non nul le fichier est un fichier acc s direct sinon il est acc s s quentiel Il est noter qu un fichier
38. cute en 0100 La table FCB est utilis e pour le chargement des commandes disque les commandes crites pour s ex cuter dans l espace des commandes utilitaires ne doivent donc pas empi ter dessus Par contre une fois charg es elles peuvent l utiliser comme zone tampon ou FCB pour leurs propres acc s disque Pour plus de d tails se r f rer aux exemples donn s dans le chapitre descriptif du FMS SMT DUT Fm PS RE PEUR EENEG EEN DEE TEE HEN E EE TE CS E e EE NET e EE DE EE E ET TE EE a E E ERT GT EE ER MI E E EE WR MEET ET E E ET TE TTT E E EE EEN E ERA Manuel de Programmation Avanc e 22 3 3 Remarques d ordre g n ral Les commandes crites par l utilisateur sont appel es par 1 instruction de branchement JMP En retour elles doivent redonner la main au pgs en se branchant instruction JMP au point d entr e chaud du FLEX CD03 At pre E pe mnt Ve mme dom Mn me M H VUE FE MAS gur aa Een DC er de een over mmm ge utiliser des arguments entr s au clavier Le nom de la commande et les arguments sont stock s dans le buffer de ligne 080 SGOFF A l entr e de La commande le pointeur du buffer de ligne adresse la position du ler caract re du ler argument s il existe sinon il d signe soit la position du caract re de fin de ligne de commande Li soit la position du retour chariot 4 Les sous programmes NXTCH GETFIL et GETHEX peuvent tre utilis s pour faire l acquisition de ces arguments
39. d un octet du secteur est appel avec un pointeur sup rieur 255 20 FMS INACTIF RECHARGEZ LE SYSTEME R serv pour une utilisation future 21 SPECIFICATION FICHIER ILLEGALE Une erreur de format a t d tect e dans l appelation d un fichier Le nom du fichier doit commencer par une lettre et ne doit contenir que des lettres des chiffres des traits d union et ou des soulign s Idem pour l extension d un fichier Le nom d un fichier est limit 8 caract res l extension 3 KH 22 ERREUR SYSTEME EN FERMETURE FICHIER R serv pour une utilisation future 23 DEBORDEMENT TABLE D ALLOCATION DISQUE TROP SEGMENTE Une tentative de cr ation d un tr s grand fichier acc s direct a t faite sur un disque trop segment Toutes les informations sur 1 empla cement des enregistrements n ont p tre rang es dans les 2 secteurs de la table des secteurs du fichier FSM 49 Manuel de Programmation Avanc e Pour r soudre ce probl me il suffit de recr er ce fichier sur une nouvelle disquette pr alablement format e 24 NUMERO D ENREGISTREMENT INEXISTANT Au cours de l ex cution de la fonction Acc s direct un enregistrement fonction 21 le num ro de l enregistrement choisi est plus grand que le num ro du dernier enregistrement du fichier 25 ERREUR NUMERO D ENREGISTREMENT FICHIER ENDOMMAGE L enregistrement localis par le FMS au cours d un acc s direc
40. de dans le FCB JSR FMS Appel du FMS BNE ERR R Test d erreur DECB D cr mente compteur BNE Lon r p t jusqu la fin Le 3 me enregistrement du catalogue est maintenant dans le FCB 38 Manuel de Programmation Avanc e Fonction 8 Ecriture des donn es d un enregistrement Cette fonction doit tre utilis e uniquement avec un FCB ouvert pour acc s catalogue L enregistrement crire dans le catalogue est recopi de la zone des informations du catalogue du FCB dans le catalogue l endroit d sign par le FCB Le secteur du catalogue venant d tre mis jour est alors automatiquement r crit sur la disquette pour tre certain que le catalogue a bien t remis jour Un programme utilisateur ne doit normalement pas avoir crire dans le catalogue Il faut utiliser cette fonction avec pr caution Une erreur de manipulation peut d truire les fichiers sur la disquette Fonction 9 Lecture d un secteur Cette fonction permet la lecture d un secteur sur le disque Ce secteur est adress par les octets 30 31 du FCB position courante Les donn es lues sont charg es dans le tampon secteur du FCB Cette fonction est normalement ex cut e par le FLEX et l utili sateur ne devrait pas avoir besoin de la programmer IL est pr f rable d utiliser la fonction Lecture Ecriture du prochain caract re chaque fois que possible Cette fonction doit tre manipul e avec prudence car s
41. e concept de base de l ouverture ou de la fermeture d un fichier est d mon tr ainsi que celui des Entr es Sorties La m thode de traitement des erreurs est aussi expos e L tude approfondie de cet exemple permettra l utilisateur de comprendre parfaitement les techniques de cr ation des commande utili taires SMT Manuel de Programmation Avanc e D03 CD2D CDI8 CD24 CD33 CD3F D406 D 403 C840 C 100 C 100 C 102 C103 C106 C109 C 10B C 10D G LOE C112 C115 C117 CHIA C11D CI1IF C121 C123 C126 C128 C12B C12D C12F C131 C133 C135 C137 CI3A GIS WK C142 C145 60 C MMANDE UTILITAIRE LIST CHPYRIGHT C 1978 BY TECHNICAL SYSTEMS COMMUTANTS INC x E QUIVALENCES D S WARMS EQU CDO3 GETFIL EQU CD2D PUTCHR EQU CD18 PCRLF EQU CD24 SETEXT EQU CD33 RPTERR EQU CD3F x EQUIVALENCES FMS FMS EQU 8D406 FMSCLS EQU 80403 EQUIVALENCES SYSTEME FCB EQU 8C840 DEBUT DU PROGRAMME PRG SC 100 20 01 LIST BRA LIST2 01 VN FCB l CE C8 40 LIST2 LDX AFCR BD ED 20 JSR GETFIL 25 34 BCS LIST9 86 O1 LDA 1 A7 O0 STA A OX A BD CD 33 JSR SETEXT BD B4 06 JSR FMS 26 28 BNE LIST9 CE C8 40 LIST4 LDX FCB BD D406 JSR FMS 26 OE BNE LIST6 31 OD CMP A SD 26 05 BNE LISTS BD CD 24 JSR PCHLF 20 EF BRA LEIST BD CD 18 LISTS JSR PUTCHR 20 EA BRA LIST4 A6 Ol LIST6 LDA A 1 X 81 08 CMP A 8 26 OC BNE LISTO 86 O4 LDA A ZA A7 00 STA A 0 X BD D406 JSR FMS 26 03 BNE LISTO JE 6D 03 JMP WARM
42. e TTYSET WD pour d terminer la fin de la ligne La sortie d un caract re de contr le remet ce compte 0 r serv au syst me CC2C adresse de fin de la m moire utilisateur Ces deux octets contiennent l adresse de la derni re cellule m moire de l utilisateur Le contenu est initialis lors du chargement du syst me et peut tre lu par le programme ayant besoin de cette information CC2E aiguillage fichier d erreurs Si ces deux octets sont nuls le sous programme RPTERR utilise ERR RS SYS comme fichier contenant les messages d erreur Sinon ils contiennent l adresse du nom du fichier utiliser Voir le sous programme RPTERR pour plus de d tails drapeau d cho de lecture fichier Si cet octet est non nul valeur par d faut et que l entr e est faite partir d un fichier le caract re lu est envoy sur le canal de sortie Si l octet est nul il n y a pas d cho SCC4D r serv s au syst me SCCBF constantes du syst me SCCD7 initialisation imprimante Cet espace est r serv pour le chargement du sous programme d initialisation de l imprimante CCE3 test de l tat de 1 imprimante Cet espace est r serv pour le chargement du sous programme de test de l imprimante S MT GAS Manuel de Programmation Avanc e CCE4 CCF7 sortie imprimante Cet espace est r serv pour le chargement du sous programme de sortie d un caract re vers l imprimante CCF8 CCEE
43. enne peuvent tre charg s Cette zone m moire commence en C100 ex et peut s tendre jusqu en C6FF Le FCB syst me localis en C840 peut tre aussi uti lis par les commandes utilitaires cr es par le programmeur comme zone de FCB ou de stockage temporaire Il ne doit pas y avoir de donn es r sidant dans cette zone de FCB tant qu il peut y avoir des interf rences avec le chargement des programmes utilitaires FLEX utilise cette zone pour charger les commandes utilitaires en m moire Un exemple sera donn plus loin en d monstration des conventions et des techniques utiliser pour cr er des commandes utilitaires Cet exemple dont on trouvera le listing dans les pages suivantes est simplement un utilitaire permettant de lister un fichier texte sur E L cran ka syntaxe de la commande est LIST lt identification du H L extension sp cifi e par d faut est TXT Le contenu du fichier sera affich sur le terminal ligne par ligne DESCRIPTION DU LISTING SOURCE DE L UTILITAIRE LIST 1 EQUIVALENCES FLEX C est un ensemble de param tres indiquants l assembleur 1 em placement m moire des diff rents sous programmes du FLEX utilis s Ces param tres font partie des adresses donn es dans ce manuel dans le chap tre sous programmes syst me appelables par l Utilisateur 2 EQUIVALENCES FMS Ce sont les points d entr e du FMS utilis s au cours de 1 ex cution du programme 3 EQUIVALENCES S
44. er de reprises FLEX les g re automatique ment Il suffit que le code erreur fourni par le contr leur soit charg dans le registre B du CPU et que le bit Z du registre de gondition du CPU soit mis 0 Les codes d erreurs doivent tre conformes aux codes Western Digital Ces codes doivent donc tre reproduits par logiciel si un autre type de contr leur est utilis Tous les modules d interface du disque ne modifie pas le contenu du registre d index du CPU X Tous Les modules d interface du disque sont appel s par une instruction JSR Les modules d interface d crit ci apr s sont communs toutes les versions du FLEX DE80 LECTURE Entr e H X adresse du buffer secteur dans le FCB A n de piste B n de secteur il Le secteur d sign par le num ro de piste et de secteur sur Le disque est lu et charg dans le tampon secteur du FCB indiqu 8DE83 ECRITURE Entr e X adresse du buffer secteur dans le FCB A n de piste B n de secteur il St Manuel de Programmation Avanc e Le contenu du tampon secteur du FCB indiqu est crit sur le disque dans le secteur d sign par les num ros de piste et de secteur DE86 VERIFICATION Entr e pas de param tres Le secteur qui vient d tre crit est v rifi pour rep rer d ventuelles erreurs CRC DE89 REPOSITIONNEMENT SUR LA PISTE 00 Entr e X adresse du FCB 0B si le disque est
45. era tenue pour responsable de destructions provoqu es par des modifications du produit effectu es sans son accord SR Manuel de Programmation Avanc e 1 INTRODUCTION FLEX peut tre divis en trois grandes parties qui sont le DS Disk Operating System qui ex cute les commandes le FMS File Management System qui r alise la gestion des fichiers sur les disquettes l UCS Utility Command Set qui regroupe l ensemble des commandes utilitaires dont dispose l utilisateur Les commandes sont d crites dans le manuel d utilisation du FLEX Nous nous int resserons ici aux fonctions du DOS et du FMS afin de permettre au programmeur d crire ses propres commandes et de mettre en oeuvre une application utilisant des fichiers disques Lors de la mise au point des programmes qui traitent des fichiers sur disque avec l aide de FMS le programmeur doit prendre les pr cautions suivantes i prot ger en criture la disquette syst me en couvrant ou d couvrant la d coupe de protection de la disquette voir le manuel d utilisation pour plus de d tails sur cette op ration Ceci afin d viter une ventuelle destruction du syst me en cas d erreur de programmation l ex cution d un programme erron pouvant avoir des effets inattendus et d vastateurs ii utiliser une disquette de travail pour la cr ation ou le traitement de fichiers par un programme Si des donn es doivent tre pr serv es en tabl
46. est non nul et la derni re adresse trouv e est rang e en SGCIE SCCIF Le fichier est ferm par le sous programme et si une erreur se produit un message d erreur est sorti et Le contr le est transf r au FLEX au point d entr e chaud WARMS 2 4 12 RANGEMENT DE L EXTENSION DANS UN FCB 8GD33 SETEXT D finition de l extension Le sous programme permet de d finir l extension d un fichier si elle n est pas d j pr cis e dans le FCB En entr e le registre X doit contenir l adresse du FCB le registre A le code num rique de l extension O BIN Binaire l TEXT Texte 2 CMD Commande 3 BAS Basic source 4 SYS Syst me 5 BAK Backup diteur 6 SCR SEE 16 Manuel de Progranmation Avanc e 7 DAT Donn es 8 BAC Basic compil 9 DIR 10 PRT 11 OUT Fichier imprimante Spooler Si le FCB contient d j une extension la suite d un appel GETFIL par exemple le sous programme ne fait rien Tout code diff rent de ceux donn s ci dessus est ignor Le registre X est pr serv 2 4 13 ADDITION DU REGISTRE B AU REGISTRE X CD36 ADDBX addition de B X Ce sous programme ajoute le contenu du registre B au contenu du registre X Le contenu de B est d truit la sortie 2 4 14 SORTIE D UN NOMBRE DECIMAL 8GD39 QUTDEC sortie d un d cimal En entr e le registre X doit contenir l adresse de l octet de poids fort d un nombre binaire non sign sur 16 bits Le registre B doit conte
47. est un syst me multi t che la fonction d impression tant une t che priorit de bas niveau SMT 63 Manuel de Programmation avanc e Chaque demande d acc s au disque interrompt l impression tant que le disque est utilis Il faut noter que les vecteurs d interrup tion SWI et LRQ sont utilis s par le spooler La commande PRINT est utilis e pour mettre en route ce module qui imprimera tour tour les fichiers contenus dans la queue d impression Manuel de Programmation Avanc e COMMANDE UTILITAIRE P 64 LA COMMANDE Ion INITIALISE UN PORT D E S ET MODIFIE LE VECTEUR DE SAUT QUTCH DANS FLEX 2 P CERAND 6818 LA CD DADE DARS CD8b DA Ca9 CHE COSF EDAS CEt CEHZ CCCA LLEA CD CEFE Cigg Ci8 20 gi Ci92 WU CIA BE CC FC CIE 27 49 CIE C8 48 COD Ch iB Cip E7 81 LI 20 43 Etti BE CE C1i4 81 QD CILE 27 AN C416 Bi CC 82 IR 27 48 C11D 7F CC 98 120 BE CC E4 C123 81 33 CI2S 2 13 C127 CE CE ap CIZA BE Gi CIA A7 64 CAE BD D SG CIJI 26 13 CESI GE FF CETS A7 AB Ci37 BD CE 38 Ci3R BD CC CA CISD CE CC E4 C148 FF CD 18 r m OPT TIL PAG NOG P COMMAND 26 11 61 ROGEMBLEUR TSC GROG PAGE 1 COPYRIGHT 1978 BY TST EQUATES INDEX EDU CR o LOAD o FMS em PO 6 EGU RENTER ERU NFER ER PAUSE ERU Ferme EGU RPTERR EGU WARNS ERU LSTTRM EQU EOL EQU PINIT EQU POUT ERU QUTCH ERU PRI EW ORG P BRA WO FCB Pi LM BER LDX LDA STA BRA Pi LDA CHP
48. eur Toutes les manipulations sur les donn es contenues dans l enregistrement des informations syst me sont faites directement dans letampon secteur du FCB IL n est pas n cessaire de fermer le FCB apr s ex cution de cette fonction Cette fonction est utilis e de mani re interne par le FLEX elle ne devrait normalement pas tre appel e par un programme utilisateur Une mauvaise utilisation peut avoir pour r sultat la destruction du contenu de la disquette SMT Manuel de Programmation Avanc e 41 Fonction 17 Acquisition d un octet du secteur par acc s direct 11 hex En entr e le fichier doit tre ouvert pour lecture ou pour mise jour Le num ro de l octet d sir doit tre rang dans l octet indice d acc s direct du FCB octet 35 Ce num ro est relatif au d but du tampon secteur En sortie l octet choisi est retourn au programme appelant dans l accumulateur A L indice d acc s direct ne doit pas tre inf rieur 4 car il n y a pas de donn es utilisateur dans les 4 premiers octets du secteur exemple Lecture du 54 me octet de donn e LDX 7 FCB pointe sur l adresse du FCB LDAA 54 A init num ro de l octet choisi STAA 35 X sauvegarde dans le FCB LDAA 17 code fonction STAA 0 X sauvegarde dans le FCB JSR FEMS appel du FMS BNE ERR R test d erreur Maintenant le caract re choisi est dans l accu A Fonction 18 Ecriture d un octet dans le secteur par acc s direct 12
49. exad cimal est trouv les suivants sont saut s jusqu au prochain s parateur et la retenue est mise 1 La longueur du nombre dans le tampon n est pas limit e mais sa valeur binaire est tronqu e FFFF inclue 2 4 18 SORTIE D UNE ADRESSE EN HEXADECIMAL 8GD45 OUTADR sortie d une adresse hexad cimale En entr e le registre X contient l adresse de l octet de poids fort d une adresse binaire cod e sur 2 octets Cette valeur est sortie cod e en hexad cimal avec quatre chiffres 2 4 19 CONVERSION D UN NOMBRE DECIMAL gcD48 INDEC entr e d un nombre d cimal Ce sous programme permet de convertir en binaire un nombre d cimal non sign entr dans le tampon ligne SMT Manuel de Programmation Avanc e 18 En entr e le pointeur du tampon de ligne doit d signer le premier caract re du nombre En sortie la retenue est mise z ro si un nombre valide a t trouv le registre B est non nul et le registre X contient la valeur binaire de ce nombre Le pointeur du tampon est laiss sur le premier caract re suivant le s parateur sauf si ce s parateur est un retour chariot ou une fin de ligne Si le premier caract re examin dans le tampon est un s parateur une virgule par exemple la retenue est mise z ro ainsi que le registre B pour indiquer l absence du nombre et la valeur retourn e dans X est nulle La longueur du one dans Le tampon n est pas limit mais le r sultat est tronqu
50. grammation Avanc e 26 4 1 Le bloc de contr le du fichier Le bloc de contr le de fichier FCB est le coeur du FMS Un FCB est un bloc de 320 octets de RAM dans l espace m moire utilisateur qui est utilis par les programmes pour communiquer avec Le FMS chaque fichier ouvert correspond un FCB particulier Apr s la fermeture du fichier le FCB peut tre r utilis pour ouvrir un autre fichier ou pour ex cuter d autres fonctions comme la destruction DELETE ou le changement de nom RENAME d un fichier Un FCB peut tre localis n importe o dans la m moire utilisateur sauf dans la page O La zone m moire r serv e au FCB n a pas besoin d tre initia lis e de quelque mani re que ce soit Seuls les param tres utilis s pour l ex cution de la fonction demand e devront tre charg s dans le FCB Le FMS initialisera lui m me les zones du ECB dont il pourrait avoir besoin Dans la description qui suit le num ro des octets sont d sign s par rapport au d but du FCB i e Octet O est le premier octet du FCB DESCRIPTION D UN BLOC DE CONTROLE e Octet 0 Code fonction Le code de La Fonction choisie doit tre stock dans cet octet par l utilisateur avant d appeler le FMS Voir le chapitre de descriptions des codes fonction Octet l Code Erreur Si une erreur est d tect e pendant l ex cution de la fonction le FMS charge un code erreur dans cet octet et rend la main l utili sateur apr
51. ir une copie pour ne pas les perdre en cas de fausse manoeuvre et de destruction du contenu de la disquette iii tester le programme dans les cas anormaux o une donnn e lue peut ne pas correspondre ce que le programme attend Un programme bien crit doit pouvoir d tecter les erreurs et contr ler sa bonne ex cution C est dire que lorsqu une erreur se produit au cours d un traitement ou d une op ration d entr e sortie par exemple il faut pr voir un traitement particulier de reprise ou carr ment d abandon du programme S MT Manuel de Programmation Avanc e 2 LE MONITEUR D EXPLOITATION DISQUE 2 1 PRESENTATION Le DS syst me d exploitation disque assure le lien entre l utilisateur via le clavier et l cran et le syst me de gestion des fichiers disque Les commandes sont lues et trait es par le DOS Les fonctions telles que l analyse syntaxique des noms de fichiers nom extension num ro d unit disque ou des arguments des commandes la gestion des entr es sorties du clavier et de l cran les rapports d erreur sont aussi toutes assur s par le D S Les paragraphes suivants donnent la d finition des variables globales du DOS et leur adresse en m moire et d crivent les sous programmes appelables par l utilisateur 2 2 VARIABLES GLOBALES Toutes les variables int ressant le programmeur sont rang es dans deux zones m moires du D S C080 COFF et CC00 CCFF Certains emplacements
52. la page CCIC d placement de l adresse de chargement Ces deux octets contiennent le d placement ajouter l adresse de chargement d un programme partir du disque Voir le sous programme L AD pour plus de d tails Cet emplacement est aussi utilis comme m moire de travail par certains modules du FLEX drapeau de transfert Apr s le chargement en m moire d un programme partir du disque cet octet est non nul si une adresse de transfert a t trouv e au cours du chargement Il est aussi utilis par certains modules du FLEX CCIF adresse de transfert Si le drapeau de transfert est non nul apr s le chargement d un programme ces deux octets contiennent la derni re adresse de transfert rencontr e c est dire l adresse d ex cution du programme Si le drapeau est z ro le contenu est ind termin code d erreur Cet octet contient le num ro d erreur retourn en cas d erreur par plusieurs des fonctions du syst me de gestion des fichiers FMS SM TI 8 Manuel de Progammation Avanc e PGC21 drapeau d entr e sortie sp ciale Si cet octet est non nul le sous programme P TCHR ignore le nombre de caract res par ligne TTYSET WD et le caract re d chappement TTYSET ES Le sous programme RSTRI remet le drapeau O0 La valeur par d faut est O SCC22 aiguillage de la sortie Si cet octet est nul le sous programme de sortie PUTCHR utilise le sous programme QUTCH sinon le sous programme
53. la pr cision des 16 bits 2 4 20 UTILISATION DU D S COMME SOUS PROGRAMME CD4B D CMND appel du D S Ce point d entr e dans le moniteur permet un programme de faire ex cuter une commande par le moniteur et de r cup rer le contr le la fin de la commande qui peut tre multiple La commande doit tre plac e dans le tampon de ligne par le programme et le po nteur doit tre initialis sur le premier caract re de la commande Il faut noter que cette op ration d truit le contenu du tampon et que l on doit veiller ne pas rompre l enchainement de commandes multiples La commande doit tre termin e par un retour chariot D Le D S rend le contr le au programme utilisateur apr s l ex cution de la commande avec le registre B z ro si aucune erreur n a t d tect e avec le code d erreur dans B en cas d erreur du FMS s il est utilis Attention ne pas utiliser cette proc dure pour charger un programme qui pourrait recouvrir le programme appelant en m moire et Le d truire Un exemple d utilisation pourrait tre la sauvegarde sur disque d une partie de la m moire dans un fichier binaire en construisant une commande SAVE dans le tampon avec le nom du fichier et les param tres et en appelant le moniteur par ce point d entr e SMT Manuel de Programmation Avanc e 19 SO ECRITURE D UTILITAIRES PAR L UTILISATEUR La grande souplesse de FLEX est que l utilisateur peut crire ses propres co
54. le du fichier C est un nombre sur 16 bits qui indique le nombre de secteurs occup s par le fichier Octet 23 Indicateur d une table des secteurs du fichier Si cet octet est non nul habituellement 92 le fichier est un fichier acc s direct et contient une table des secteurs du fichier Voir la description des fichiers acc s direct pour plus de d tails Octet 24 R serv pour une utilisation future Octet 25 27 Date de cr ation du fichier Ces 3 octets contiennent la date en binaire de la cr ation du fichier Le premier octet est Le mois le second le jour et le troi si me l ann e uniquement les dizaines et les unit s Octet 28 29 Pointeur de liste des FCB Tous les FCB qui sont ouverts pour une lecture ou une criture sont chain s ensemble Ces deux octets contiennent l adresse m moire du pointeur de Liste des FCB du bloc suivant dans la chaine Le ler FCB dans la chaine est adress par le pointeur de base des FCB cf les variables globales Ces deux octets sont z ro si ce FCB est le dernier de la chaine Octets 30 31 Position courante Ces octets contiennent respectivement les num ros de la piste et du secteur du secteur alors contenu dans la zone tampon du FCB S le fichier est crire le secteur adress par ces octets n a pas encore t crit sur la disquette 11 est encore dans le buffer Octets 32 33 Num ro d enregistrement courant Ces octets contiennent le nu
55. lisation Ces sous programmes ne tiennent pas compte des param tres TTY SET CDI5 GETCHR acquisition d un caract re au clavier Ce sous programme permet l acquisition d un caract re au clavier et le retourne au programme appelant dans le registre A Son appel provoque la remise z ro du num ro de ligne courante CCIA IL prend en compte les param tres TTY SET son utilisation est donc pr f rable celle du INCH Si le drapeau aiguillage de l entr e est non nul le sous programme INCH2 est utilis pour l entr e S il est nul les deux octets CC26 CC27 adresse FCB d entr e sont test s S ils sont nuls le caract re est lu par le sous programme INCH sinon ils contiennent l adresse d un FCB pour lire le caract re dans un fichier pr c demment ouvert Les registres B et X sont sauvegard s 2 4 3 SORTIE D UN CARACTERE CDOF QUICH sortie caract re CDI2 QUICH2 sortie caract re A l appel de ces sous programmes le registre doit contenir le caract re sortir vers le p riph rique d sir normalement l cran Les vecteurs UTCH et QUTCH2 pointent de fa on standard vers le m me sous programme de sortie sur cran cependant QUTCH peut tre modifi par l utilisateur pour ex cuter un autre sous programme de sortie vers un p riph rique diff rent par exemple une imprimante S MT 12 Manuel de Programmation Avanc e Le sous programme PUTCHR d crit ci dessous utilise QUTCH ou QUICH2
56. m ro logique de l enregistrement du secteur contenu dans le FCB Octet 34 Indice des donn es Cet octet contient l adresse du prochain octet de donn es aller chercher pour lecture ou ranger pour criture dans le tampon Cette adresse est relative au d but du tampon elle est automatiquement avanc e par la fonction Lecture Ecriture du Prochain Octet Le programme utilisateur n a pas besoin d utiliser cet octet Octet 35 Indice d acc s direct Cet octet est utilis conjointement avec la fonction d acc s direct un octet l int rieur d un secteur pour lire un octet dans le tampon sans avoir lire tous les autres octets le pr c dant SMT 29 Manue de Programmation Avanc e L adresse de l octet choisi calcul e relativement au d but du secteur est rang e par l utilisateur dans l octet d indice et la fonction d Acc s Direct un octet est lanc e par le FMS L octet de donn es d sign est retourn dans l accumulateur A Si la valeur rang e dans l octet d indice d acc s direct est inf rieure 4 l utilisateur a acc s l un des octets de chainage du secteur Les donn es proprement dites commencent une adresse relative sup rieure 4 Octets 36 46 Tampon Ces octets sont utilis s par le FMS pour ranger tempo rairement Le nom d un fichier Ces positions ne sont pas utilis es par un programme utilisateur Octets 47 49 Adresse courante du catalogue Si le FCB est u
57. mmandes utilitaires Elles peuvent tre stock es sur disque ou r sidentes en m moire vive RAM ou morte R M EPR9M en area ee re ee mp En De telles commandes sont des programmes toujours r sidents en m moir auquels le D S fait appel lorsque le nom associ la commande est entr au clavier Les noms des commandes et les points d entr e adresse d e x cution des programmes associ s sont stock s dans une table cr e par l utilisateur en m moire Le format de cette table est d fini ci apr s FCC nom de la commande FCB O FDB adresse d ex cution de la commande La table des commandes utilisateur doit toujours se terminer par un octet nul Par exemple FCC DEBUG FCB 0 FDB 3000 FCC PUNT FCB O FDB 3200 FCB O l re commande utilisateur adresse d ex cution du pgm DEBUG 28 me commande utilisateur adresse d ex cution du pgm PUNT fin de la table SMT Manuel de Programmation Avanc e 20 L adresse de la table des commandes utilisateur doit tre fournie au D S en CCI2 8CC13 conf rer carte m moire Lorsqu une commande est entr e au clavier le DOS explore successivement sa propre table des commandes la table des commandes utilisateur si elle existe puis le catalogue du disque La table du D S contient uniquement les commandes GET et M N Comme elle est explor e avant celle de l utilisateur celui ci ne pourra pas cr er des commandes r pondant aux
58. n il ne faut pas oublier que cette adresse d signe Les emplacements dans le FCB du pointeur de liste FCB et non pas le premier mot du FCB Si ces deux octets sont nuls cela signifie qu il n y a pas de fichiers ouvrir D40B D40C Adresse du bloc de contr le courant Ces deux octets contiennent l adresse du dernier bloc de contr le trait par le FMS Cette adresse est celle du premier mot du FCB D435 Indicateur de v rification Si cet octet est non nul Le FMS testera chaque secteur juste apr s l criture afin de d tecter d ventuelles erreurs Si cet octet est nul aucun test de v rification l criture ne sera ex cut La valeurdonn e par d faut cet octet est nul Manuel de Programmation Avanc e 29 4 3 Codes fonction du EMS L utilisation du syst me de gestion des fichiers du FLEX passe par l utilisation d un certain nombre de codes fonction Le code fonction choisi est plac par l utilisateur dans l octet de code fonction octet 0 du bloc de contr le du fichier FCB avant l appel du FMS Le FMS sera appel par un JSR au point d appel du FMS D406 Le registre d index du CPU devra contenir l adresse du bloc de contr le En sortie du FMS le bit Z du registre de conditionsdu CPU sera mis z ro si une erreur a t d tect e en cours d ex cution de La fonction choisie Ce bit pourra tre test par les instructions BNE et BEQ N B Dans tous les exemples qui suivent
59. ne erreur n a t d tect e au cours de l ex cution de la fonction choisie Ce bit pourra tre test par une instruction BEQ ou BNE Si une erreur est d tect e le bit Z est mis z ro et l octet code erreur du FCB est charg avec le num ro de l erreur d tect e Dans tous les cas le registre d index du CPU contient l adresse du FCB Quelques fonctions ont besoin de certains param tres charg s dans les accumulateurs A et ou B du CPU Pour plus de d tails se r f rer la description des diff ren tes fonctions possibles Dans tous les cas le registre d index X et le registre B ne sont pas modifi s par un appel au FMS SMT Manuel de Programmation Avanc e e 4 2 Variables globales Ce paragraphe d crit les diff rentes variables internes au FMS susceptibles d int resser l utilisateur Toutes les autres positions m moire dans La zone du FMS ne doivent pas tre utilis es par le programme utilisateur pour y ranger des donn es D409 D40A Pointeur de base du FCB Ces deux octets contiennent l adresse du pointeur de la liste des FCB dans le premier bloc de la cha ne des fichiers ouverts Le contemide ces octets est g r par le FMS et Le programmeur ne doit y ranger aucune valeur Si pour une raison ou une autre l utilisateur d sire cha ner les blocs de contr le des fichiers ouvrir il doit se souvenir qu cette adresse se trouve le point de d part de la cha ne Attentio
60. nir un drapeau de suppression d espace s il est non nul les z ros de t te sont remplac s par des blancs s il est nul l impression commence avec le premier chif fre non nul 2 4 15 SORTIE D UN NOMBRE HEXADECIMAL CD3C QUTHEX sortie d un hexad cimal En entr e le registre X doit contenir l adresse d un octet qui sera imprim sous la forme de deux chiffres hexad cimaux Les registres B et X sont pr serv s 2 4 16 RAPPORT D ERREUR CD3F RPTERR message d erreur Ce sous programme assure la sortie d un message en cas de retour en erreur d une fonction du gestionnaire de fichier FMS Les messages d erreur syst me sont stock s dans le fi chier disque ERR RS SYS mais le programmeur peut utiliser son propre fichier de messages En entr e le registre X doit contenir l adresse d un FCB dont le code d erreur est non nul Ce code est tranf r en C20 un appel au sous programme RSTRIY est effectu et l aiguillage fichier d erreurs est test CC2D 8CC2E Si l aiguillage est nul le fichier ERR R SYS est ouvert en acc s direct pour la recherche du message sinon c est l adresse d une chaine ASCII donnant Les sp cifications du fichier utiliser non extension sur li caract res Le fichier utilisateur est alors ouvert en acc s direct Le code d erreur est utilis pour calculer le num ro de l enregistrement dans lequel se trouve le message et son emplacement dans l enregistrement Sachant que chaque message S
61. nner le retour chariot ou le s parateur sans passer la nouvelle commande ventuellement pr sente dans le tampon NXTCH sort par le sous programme CLASS c est dire que le caract re se trouve dans Le registre A et que la retenue est z ro s il est alphanu m rique Les registres B et X sont pr serv s 2 4 9 RESTAURATION DES VECTEURS D E S ACD2A RSTRI restauration des vecteurs d E S Ce sous programme restaure les valeurs initiales des vecteurs QUTCH et INCH pour qu ils pointent vers les m mes sous program mes d E S que respectivement SUTCH2 et INCH2 Les aiguillages d entr e et de sortie CC23 et CC22 sont remis z ro ainsi que les adresses des FCB d entr e et de sortie Les registres et B sont pr serv s 2 4 10 TRANSFERT DES SPECIFICATIONS D UN FICHIER CD2D GETFIL lecture des sp cifications d un fichier Ce sous programme est destin au rangement dans un FCB conf rer le chapitre sur le gestionnaire de fichier des sp cifications d un fichier disque nom extension se trouvant dans Le tampon de la ligne A l entr e le registre X doit contenir SMT Manuel de Programmation Avanc e SC l adresse du FCB et le pointeur du tampon ligne doit d signer le premier caract re des sp cifications du fichier Si le disque n est pas pr cis le num ro de l unit de travail sera rang dans le FCB En sortie la retenue du code de condition est z ro s il n y a pas d erreur de format
62. on Avanc e 24 LE SYSTEME DE GESTION DES FICHIERS FMS ES Le syst me de gestion de fichier FMS assure l interface entre le D S syst me d exploitation disque et la m moire de masse que constituent les disques Le FMS g re la cr ation et la destruction de tous les fichiers sur le disque Tout l espace est allou dynamiquement La zone du disque utilis e par un fichier peut tre r utilis e aussit t apr s la destruction de ce fichier La communication avec le FMS se fait par l interm diaire des FCB Blocs de contr le du fichier Ces blocs contiennent les caract ristiques du fichier comme son nom ou Le num ro du disque sur lequel il existe La lecture et l criture des donn es d un fichier E S disque seront faites caract re par caract re le disque n tant consid r que comme un terminal du micro ordinateur Les fichiers peuvent tre ouverts en lecture ou en criture Plusieurs fichiers peuvent tre ouverts en m me temps du moment qu ils ont chacun leur FCB Le FMS est un langage de commande dans lequel chaque commande est repr sent e par un nombre appel Code Fonction chaque Code Fonction correspond une t che bien d termin e comme l ouverture en lecture ou la destruction d un fichier En g n ral l utilisation du FMS est relativement simple Il suffit de pointer le registre d index sur l adresse du FCB de ranger le Code Fonction choisi dans le ler octet du FCB puis d a
63. ontenue dans le registre de retour sur chappement Si elle n est pas modifi e par l utilisateur cette adresse est celle du point d entr e chaud du moniteur WARMS Sur un caract re d chappement si n cessaire le SMT Manuet de Programmation Avanc e 14 num ro de la ligne courante est test si la page est pleine et qu une pause est demand e entre chaque page TTYSET PS le sous programme attend la frappe d un autre caract re d chap pement ou d un retour chariot comme ci dessus Toutes Les pauses sont faites avant la sortie des deux caract res CR et LF suivi du nombre de caract res nuls sp cifi s par la temporisation retour chariot TTYSET NL Quand la page courante est pleine le sous programme sort le nombre de saut de ligne sp cifi en SCCO8 TTYSET EJ Le registre X est pr serv 2 4 8 LECTURE DU TAMPON LIGNE CD27 NXTCH lecture du caract re suivant Ce sous programme permet de lire s quentiellement le tampon de Ligne Le caract re courant remplace le caract re pr c dent CC19 CEC18 le caract re suivant d sign par le pointeur du tampon ligne devient le caract re courant SCC18 Les espaces multiples sont ignor s pour ne donner qu un seul espace Le pointeur du tampon ligne est augment de un pour d signer le caract re suivant sauf si le caract re courant est un retour chariot ou un s parateur TTYSET EL Dans ce dernier cas tout nouvel appel a NXICH continuera do
64. point d entr e du fichier binaire Le format d un enregistrement contenant une adresse de transfert est le suivant Octet 0 Indicateur d adresse de transfert 16 AC4 Octet 1 MSB de l adresse de transfert Octet 2 LSB de l adresse de transfert Si un fichier binaire contient plus d un enregistrement poss dant une adresse de transfert concat nation de fichiers binaires le dernier rencontr par la proc dure de chargement sera celui qui sera utilis les autres seront ignor s Pour lire ou crire un fichier binaire travers le FMS directement partir d un programme utilisateur le programme appelant doit lui m me g rer les octets d informations en en t te de l enregis trement FLEX ne fournira pas ces informations l utilisateur S MT Manuel de Programmation Avanc e 56 7 5 Description d un fichier source Un fichier source appel aussi fichier ASCII fichier cod ou fichier texte ne contient que des caract res ASCII impri mables plus quelques caract res de contr le sp ciaux Ii n y a pas d adresse de chargement pour un fichier source C est au programme qui lit le fichier texte qu il appartient de mettre les donn es du fichier leur place Les seuls caract res de contr le reconnus ou manipul s par FLEX sont SUD ASCII CR ou RETOUR CHARIOT Ce caract re est utilis pour marquer la fin d une ligne ou d un enregistrement dans le fichier 00 ASCII NULL
65. ppeler le FMS par un JSR jump to subroutine A aucun moment l utilisateur n a se pr occuper de la place du fichier sur le disque de sa longueur ou de sa r f rence dans le catalogue Le FMS traite ces probl mes automatiquement Du fait de la gestion dynamique de l espace disponible sur le disque par une structure de liste lin aire cha n e il est pos sible que des fichiers occupent sur le disque d une suite des secteurs non contigus Normalement quand une disquette vient d tre formatt e les fichiers qui y seront rang s occuperont des secteurs contigus Au fur et mesure des cr ations et destructions de fichiers toutefois ke disque peut se fragmenter c est dire que les secteurs occup s par un fichier ne se suivent plus physiquement sur le disque pour le logiciel ils restent videmment contigus Ceci est une caract ristique des structures de listes lin aires chain es et des m thodes d allocation dynamique de l espace disponible SMT 20 Manuel de Programmation Avanc e L utilisateur du FLEX n a pas se pr occuper de cette fragm n tation possible des fichiers il doit cependant garder l esprit que les fichiers cr s peuvent tre constitu s de secteurs diss min s sur Le disque La seule cons quence de la fragmentation est l augmentation de a dur e de lecture d un fichier d e un nombre de d placements de la t te de lecture plus important Manuel de Pro
66. r le sera rendu au programme la fin du traitement des commandes rang es dans le tampon de ligne CD06 RENTER point d entr e directe C est un point d entr e directe dans la bouche principale du D S aucune initialisationn est effectu e Le branchement se fait par une instruction JMP Normalement ce point d entr e est utilis de mani re interne par le syst me et les programmes utilisateurs n en ont pas besoin SMT LI Manuel de Programmation Avanc e 2 4 2 ENTREE D UN CARACTERE CD09 INCH entr e caract re CDOC INCH2 entr e caract re Ces deux sous programmes lisent un caract re au clavier et le retournent au programme appelant dans le registre A ILs peuvent tre remplac s par des sous programmes adapt s la configuration de l utilisateur Le sous programme GETCHR utilise normalement INCH mais si le drapeau d aiguillage de l entr e CC23 est non nul il utilisera INCH2 Un programme utilisateur peut changer le vecteur de branchement l adresse INCH pour utiliser un autre sous programme g rant par exemple un lecteur de ruban papier Le vecteur de branchement l adresse INCH2 ne doit jamais tre modifi Lors d une entr e chaud dans le D S par le point WARMS le drapeau d aiguillage de l entr e est remis O et le vecteur de branchement INCH est r initialis pour pointer sur le m me sous programme que le vecteur INCH2 Le sous programme RSTRIY effectue lui aussi cette r initia
67. r serv s au syst me 2 4 SOUS_PROGRAMMES DU MONITEUR A d faut d indications contraires les sous programmes doivent tre appel s par une instruction JSR et le contenu de tous les registres doit tre pr sum d truit par leur ex cution 2 4 1 POINTS D ENTR E DU MONITEUR CDOO C LDS point d entr e froid Le chargeur disque se branche cette adresse pour initialiser le syst me charg en m moire Le D S et le FMS sont initialis s ensuite FLEX s identifie par le message habituel et demande la date Si un fichier STARTUP existe il est directement charg et ex cut Le point d entr e est r serv au chargeur et ne doit pas tre utilis par le programmeur qui pourrait risquer de d truire le contenu de la disquette syst me CD03 WARMS point d entr e chaud Pour les programmes utilisateurs c est le point d entr e principal dans le D S Le branchement doit se faire par une instruction JMP La pile syst me et le registre de retour sur chappement GCI16 CCI7 sont initialis s et le moniteur est pr t traiter de nouvelles commandes Le moniteur v rifie le dernier caract re terminal CC11 s il trouve le carac t re TTYSET EL fin de ligne s parateur de commandes il traitera la commande en attente dans le tampon de ligne commande multiple Sinon il ira lire une nouvelle ligne au clavier Si le D S a t appel par un programme utilisateur via le point d entr e D CMND le cont
68. r l utilisateur On trouvera ci apr s les imp ratifs suivre la cr ation du fichier PRINT SYS Le Listing source de celui fourni avec ia disquette FLEX interface parall le de type CENTRONICS se trouve dans Le Manuel d utilisation FLEX CARACTERISTIQUES DU FICHIER PRINT SYS Le fichier doit fournir au syst me au moins trois sous programmes de base un sous programme d initialisation de l imprimante un sous programme de test de l imprimante un sous programme de sortie du caract re La commande P et le handler physique d impression utilisent ces trois sous programmes pour communiquer avec l imprimante Les trois modules et leurs caract ristiques sont d crits ici PINIT ECCO CCD7 ce module sert initialiser le port de l imprimante Aucun des registres du CPU n a besoin d tre sauvegard PCHK CCD8 CCE3 ce module teste l tat de l imprimante pour voir si elle est pr te accepter un autre caract re Un code condition n gatif est renvoy e si elle n est pas libre positif dans l autre cas Les registres B et X ne doivent pas tre modifi s en sortie P HUT SCCE4 CCF7 ce module sort sur l imprimante le caract re contenu dans l accu apr s avoir test si l imprimante peut le recevoir PCHK Les registres B et X ne doivent pas tre modifi s MODULE D IMPRESSION SIMULTANEE FLEX contient un module d impression simultan e Spooling Essentiellement ce module
69. re cal gauche dans le champ qui lui est assign Octets 12 14 Extension du fichier C est l extension du fichier choisi Elle doit commencer par une lettre et ne doit contenir que des lettres des chiffres des traits d union et ou des soulign s CL A Si la longueur de l extension est inf rieure 3 caract res les octets restants seront mis z ro L extension doit tre cal e gauche dans le champ qui lui est assign Les fichiers sans extension ne pourront tre cr s Octet 15 Attributs du fichier A pr sent seuls les 4 bits les plus significatifs sont d finis Ces bits sont utilis s pour d finir les types de protection n cessaires Ils sont d finis comme bit 7 protection en criture bit 6 protection contre la destruction bit 5 protection en lecture bit 4 protection de catalogue Mettre I l un de ces bits met en place la protection qui lui est associ e Tous les bits sans fonction doivent tre z ro Octet 16 R serv pour une utilisation future Octet 17 18 Adresse de d but du fichier sur le disque Ces deux octets contiennent respectivement le num ro de la piste et du secteur du premier secteur du fichier Octet 19 20 Adresse de fin du fichier sur Le disque Ces deux octets contiennent respectivement le num ro de la piste et du secteur du dernier secteur du fichier SMT el Manuel de Programmation Avanc e 28 Octets 21 22 Tail
70. re d fini par l utilisateur au moyen de la commande TTYSET C est par d faut le caract re ASCII CAN ou CTRL x soit 18 CCO2 caract re s parateur ESL TTYSET EL C est le caract re s parant plusieurs commandes dans une ligne commande multiple Il peut tre d fini par l utilisateur au moyen de la commande TTYSET Valeur par d faut 3A caract re ASCII deux points TT CCO3 nombre de lignes par page TTYSET DP Cet octet d termine le nombre de lignes que FLEX imprime sur une page avant de se mettre en pause ou de commander un saut la page suivante Il peut tre d fini par l utilisateur au moyen de la commande TTYSET Sa valeur par d faut est 24 CCO4 nombre de caract res par ligne TTYSET Mi Cet octet fixe le nombre de caract res par ligne S il est nul il n y a pas de limite la longueur de la ligne Sa valeur est 80 par d faut et peut tre red finie au moyen de la commande TTYSET CCO5 temporisation retour chariot Cet octet donne le nombre de caract res nuls ou de remplissage envoyer apr s la sortie d un retour chariot de fa on tenir compte du temps de retour chariot non n gligeable de certains terminaux imprimants Sa valeur par d faut est 0 et peut tre red finie par la commande TTYSET SMT Manuel de Programmation Avanc e CCO6 caract re de tabulation TTYSET TB Cet octet d finit un caract re de tabulation qui peut tre utilis par des programmes tel que l
71. s crites par l utilisateur pour ter d tails La valeur de cette adresse est O par d faut c est dire qu il n y a pas de table de commande Uri Lea reui GCI14 CC15 pointeur du tampon de ligne Ces deux octets contiennent l adresse du prochain caract re traiter dans le tampon de ligne Voir les sous programmes INBUFF NXTCH GETFIL GETCHR et D CMND dans le paragraphe traitant des sous programmes syst me CC16 6C17 adresse de retour sur chappement Ces deux octets contiennent l adresse de retour si la frappe d un retour chariot suit celle d un caract re di chappement pour arr ter une sortie Se ref rer la description de la commande TTYSET dans le manuel d utilisation du FLEX pour plus d informations sur la proc dure d chappement Voir aussi la documentation du sous programme PCRLF SMT Manuel de Programmation Avanc e 7 cC18 CCI9 SCCIA CCIB GCI1D CCIE CC20 caract re courant Cet octet contient Le dernier caract re trait par le sous programme NXTCH dans le tampon ligne Voir le sous programme pour plus de d tails caract re pr c dent Cet octet contient le pr c dent caract re trait par le sous programme NXTCH dans le tampon ligne Voir le sous programme pour plus de d tails num ro de la ligne courante Cet octet contient le nombre de lignes sorties dans une page Compar au nombre de lignes par page il permet de d terminer la fin de
72. s num ros de la piste et du secteur respectivement du prochain secteur dans le fichier Ces octets sont z ro si c est le dernier secteur du fichier Condition E 9 F fin de fichier L utilisateur ne doit jamais changer les octets de chainage J 8 8 d un secteur ceux ci tant automatiquement g r s par le FMS S MT Manuel de Programmation Avanc e 7 4 Description d un fichier binaire Sous FLEX un fichier binaire peut contenir n importe quel type de donn es tous les caract res ASCII sont autoris s Chaque fichier binaire est compos d un ou de plus d un enregistrement binaire Il peut y avoir plus d un enregistrement binaire dans un secteur Un fichier binaire a le format suivant Octet 0 Indicateur de d but d enregistrement 02 STX Octet 1 MSB de l adresse de chargement Octet 2 LSB de l adresse de chargement Octet 3 Nombre d octets de donn es dans l enregistrement Octet 4 n Donn es binaires de l enregistrement L adresse de chargement repr sente l adresse de la zone m moire o les donn es taient stock es avant d tre crites sur disque commande SAVE Quand un fichier binaire est charg en m moire partir du disque il sera rang dans la m me zone m moire que celle d o il est issu Un fichier binaire peut aussi contenir une adresse de transfert adresse d ex cution facultative dans un enregistrement Cet enregistre ment donne alors l adresse m moire du
73. se jour du catalogue de la disquette 1E FICHIER OU DISQUE PROTEGE EN ECRITURE Un essai d criture a t tent sur une disquette prot g e en criture d coupe d autorisation d criture sur l enveloppe du disque ou sur un fichier alors que le bit de protection d criture est positionn qn a LE 12 FICHIER PROTEGE NON EFFACE Le bit de protection contre la destruction du fichier sp cifi est mis 1 et celui ci ne peut tre d truit 13 BLOC CONTROLE DE FICHIER ILLEGAL EM Une tentative d acc s un bloc de contr le dans la chaine des FCB a t faite mais celui ci n y existe pas 14 ADRESSE DISQUE ILLEGALE R serv pour une utilisation future 15 NUMERO D UNITE DISQUE ILLEGAL R serv pour une utilisation future SMT Manuel de programmation avanc e 48 16 UNITE DISQUE NON PRETE Le lecteur n a pas de disquette ou sa porte n est pas ferm e Ce message ne peut tre sorti s il n y a aucun moyen de d tecter cet tat sur les unit s certains 5 par exemple 17 LE FICHIER EST PROTEGE ACCES REFUSE R serv pour une utilisation future 18 VIOLATION DES ATTRIBUTS D ACCES A UN FICHIER a Une lecture ou un repositionnement ont t tent s sur un fichier ferm ou ouvert pour criture b Une criture a t tent e sur un fichier ferm ou ouvert pour lecture 19 POINTEUR D ACCES DIRECT ERRONE La fonction acc s direct
74. selon le contenu du drapeau aiguillage de sortie CC22 Lors d une entr e chaud dans le moniteur WARMS l aiguillage de sortie est remis z ro et UTCH est r initia lis pour pointer le m me sous programme que UTCH2 Le sous programme RSTRI effectue la m me r initialisation Ces sous programmes ne tiennent pas compte des param tres TTY SET CDI8 PUTCHR criture caract re Ce sous programme sort le caract re contenu dans le registre A vers le p riph rique choisi normalement l cran en prenant en compte les param tres TTY SET Si le drapeau d E S sp ciale CC21 est nul le compte des caract res est test CC29 et si la ligne courante est pleine on passe alors la suivante Si un caract re d chappement TTY SET a t frapp au clavier la sortie s arr te la fin de la ligne courante Le sous programme UTCH2 est utilis pour envoyer le caract re si l aiguillage de sortie CC22 est non nul sinon l adresse FCB de sortie est test e GC24 CC25 Si elle n est pas nulle c est l adresse du FCB d un fichier de sortie pr c demment ouvert et le caract re est crit dans le fichier Si elle est nulle le sous programme UTCH est utilis pour envoyer le caract re normalement vers l cran mais l utilisateur peut modifier le vecteur QUTCH pour ex cuter un autre sous programme de sortie Les registres B et X sont pr serv s 2 4 4 LECTURE D UNE LIGNE CD18 INBUFF entr e dans le
75. t au nom du fichier Il suffit de mettre le code de l extension TXT dans l accumulateur A TXT 1 et d appeler le sous programme SETEXT r sidant dans e D S Le registre d index doit pointer sur l adresse du FCB choisi Le code 1 est aussi charg dans l octet de code fonction du FCB en pr vision de l op ration effectuer sur le fichier ouverture en lecture KEN Il n y a pas d erreurs g n r es par un appel SETEXT Maintenant le fichier peut tre ouvert en lecture le code fonc tion correspondant ayant d j t charg dans le FCB et le registre d index n Ge pointant toujours sur l adresse de d but du FCB il suffit d appeler le FMS Si une erreur est d tect e l instruction BNE LIST 9 passera le contr le au module de gestion de l erreur La premi re chose que celui ci fait c est d appeler le sous programme du DS RPTERR qui affichera sur le terminal le message corres pondant au code de l erreur d tect e Ensuite tous les fichiers ouverts seront ferm s ceci est facilement r alis en appelant le point d entr e du FMS fermeture des fichiers FMSCLS Finalement le contr le est redonn au D S au point d entr e chaud Si l ouverture du fichier s est d roul e avec succ s le programme continue la ligne d tiquette LIST4 A ce moment il est possible de faire l acquisition des caract res un par un L int rieur du fichier et de les afficher sur le terminal Les Retour Chario
76. t ne sont pas stock s dans un fichier texte Ils marquent la fin d une ligne ma s la ligne suivante suit imm diatement apr s aussi tous les Retour Chariot re us par le syst me ne sont pas affich s Pour passer la ligne la r ception du caract re Retour Chariot il suffit de faire appel au sous programme du D S PCRLF SMT Manuel de Programmation Avanc e Chaque fois qu un caract re venant du fichier est re u par le syst me appel du FMS en LIST4 un test d erreur est ex cut Si une erreur est d tect e le contr le est pass ligne d tiquette LISTO Comme le FLEX ne sauvegarde pas un caract re de Fin de Fichier dans Le fichier la seule fa on de d terminer la fin du fichier est de tester l erreur Fin de Fichier g n r e par le FMS code erreur 8 Si le code erreur envoy n est pas gal 8 le contr le est pass au module de gestion de l erreur d crit plus haut S il est gal 8 l dition du fichier est termin e aussi doit il tre ferm Le code fonction FMS de fermeture de fichier est A Il est charg dans l accumulateur A et stock dans le FCB un appel au FMS suffira alors pour fermer le fichier En retour les erreurs sont test es et s il n y en a pas la main est redonn e au D S en appelant le point d entr e chaud du FLEX Cet exemple illustre une des m thodes utilis es pour cr er un utilitaire De nombreuses routines du D S et du FMS sont appel es L
77. t au fichier n est pas le bon Le fichier est probablement endom mag 26 ERREUR DE SYNTAXE REDONNEZ LA COMMANDE Une erreur de syntaxe a t d tect e dans La ligne de commande venant d tre tap e 27 COMMANDE INTERDITE PENDANT L IMPRESSION La commande qui vient d tre entr e ne peut pas tre ex cut e pendant une impression simultan e spooling actif 28 CONFIGURATION HARDWARE INSUFFISANTE Cette erreur est affich e g n ralement si la configuration m moire install e ne suffit pas l ex cution d une fonction donn e S MT Manuel de Programmation Avanc e 20 7 INFORMATIONS PARTICULIERES SUR LES DISQUES ET FICHIERS 7 1 Modules d interface du disque Les informations suivantes sont pour les utilisateurs qui souhaitent crire leurs propres modules d interface Aucune garantie ne peut tre r clam e en cas de disfonctionnement du FLEX si les modules d interface du disque ont t modifi s Les modules d interface du disque sont des programmes d in terface entre le FLEX et Le contr leur du syst me disque Les modules fournis avec FLEX sur GOUPIL sont pr vus pour les contr leurs forma teurs Western Digital s rie 1771 ou 179X Les modules d interface du disque sont localis s en RAM entre DE80 hex et DFFF hex Toutes les fonctions du disque sont des sauts vectoris s au d but de cette zone En cas d erreur les modules d inter face du disque n ont pas tent
78. t continuer avec LDAA FF Suppression compression de place STAA 59 X Fonction 3 Ouverture pour mise jour Cette fonction permet d ouvrir un fichier aussi bien pour ta D D D D A mt D e lecture qu criture Le fichier ne doit pas tre d j ouvert et doit exister sur le disque sp cifi Si la sp cification de lecteur est SFF tous les lecteurs seront recherch s Une fois que le fichier est ouvert pour tre remis jour quatre op rations peuvent tre ex cut es Lecture en acc s s quentiel Lecture en acc s direct Ecriture en acc s direct Fermeture du fichier i FUON sc l Il n est pas possible d crire s quentiellement sur un fichier ouvert pour une remise jour Cela implique qu il n est pas possible d augmenter la taille d un fichier l aide de la fonction 3 SMT 36 Manuel de Programmation Avanc e Fonction 4 Fermeture d un fichier supprime simplement son bloc de contr le de la chaine des FCB Si le fichier est ouvert pour criture les donn es restantes dans le tampon secteur sont crites sur le disque en y ajoutant des 0 si besoin est pour remplir le secteur Si le fichier est ouvert pour lecture sa fermeture Si un fichier ouvert pour criture n est jamais crit son nom ne sera pas inscrit dans le catalogue du disque puisqu il ne contient pas de donn es Exemple LDX 4 FCB Pointe sur l adresse du FCB LDAA 4 4 Code fermeture STAA 0 5 Sauvegarde dans le FCB
79. t utilis par FLEX En plus ce processus relie ensemble tous les secteurs de la disquette pour former une chaine de secteurs disponibles La premi re piste de la disquette piste 00 est sp ciale Aucun des secteur de cette piste n est autoris e recevoir des fichiers de donn es Ils sont r serv s l usage du syst me FLEX Les deux premiers secteurs contiennent un chargeur binaire qui est appel par la commande ed du moniteur GPM N Ce chargeur binaire une fois r sident en m moire centrale charge FLEX de la disquette vers le syst me Le secteur 3 sur cette piste contient l enregistrement des informations syst me Ce secteur contient les adresses physiques sur le disque de d but et de fin des secteurs de la chaine des secteurs li bres r serv s aux fichiers de donn es Tout le reste des secteurs partir du 5 de la piste 00 est r serv au catalogue des noms de fichiers Apr s l initialisation toutes les pistes disponibles ont un format commun Les deux premiers octets de chaque secteur contiennent Le num ro de la piste et du secteur du prochain secteur de la chaine Les deux octets suivants seront utilis s pour y charger le num ro logique du secteur dans le fichier Les 252 octets restants sont 0 A l originetous les octets repr sentent les num ros d enre gistrement sont 0 Quand des donn es sont stock es dans un fichier les deux octets de lien au d but de chaque secteur sont modifi
80. teur 1 2 ou 3 respectivement Si un lecteur est pr t son num ro est charg dans l octet num ro de lecteur du FCB et le bit de condition O z ro dans le registre de condition du CPU est mis 1 Si aucun des lecteurs n est pr t le bit Z du registre de conditions du CPU est mis 0 et l erreur ZZ 16 lecteur pas pr t est positionn Dans la version 5 le d roulement de la fonction est le suivant Si le num ro de lecteur dans le FCB est FF hex au retour le num ro de lecteur dans le FCB sera 0 Si cette fonction est appel e alors que le num ro de lecteur dans le FCB est O au retour celui ci sera i Dans les deux cas le bit de condition O dans le registre de condition du CPU sera mis 1 Si eile est appel e alors que le num ro de lecteur dans le FCB est 1 ou plus grand que 1 le num ro de lecteur reste inchang le bit Z du registre de conditions du CPU est mis 0 et l erreur f 16 lecteur non pr t est positionn e Fonction 21 Acc s direct un enregistrement 15 hex C est l une des fonctions permettant l acc s direct un secteur d un fichier Le num ro de l enregistrement d sir est charg dans le FCB dans le num ro d enregistrement courant octets 32 33 Avant d utiliser cette fonction le fichier doit tre ouvert pour lecture ou pour mise jour Le premier enregistrement des donn es d un fichier est l enre gistrement n 1 Se positionner sur l enregistrement 0
81. tilis pour traiter des informations du cata legue l aide de la fonction Acquisition Sauvegarde des informations d un enregistrement ces trois octets contiennent les im ros de la piste du secteur et l indice des donn es du catalogue contenues dans la zone d nominative du fichier octets4 27 Les valeurs de ces trois octets sont remis jour par la fonction Acquisition des informations d un enregistrement Octets 50 52 Pointeur de recherche du ler fichier effac dans le catalogue Ces octets sont utilis s par le FMS lorsqu il cherche une entr e libre dans Le catalogue pour y ranger le nom d un nouveau fichier Octets 53 63 Zone de travail Ces octets sont utilis s pour ranger le nouveau nom et l extension t 1 NM D A d un fichier dont on change le nom Ce nouveau nom r pond aux m mes caract ristiques que celles d crites auparavant octets 4 14 Octet 59 Indicateur de compression de l espace Si un fichier est ouvert pour lecture ou pour criture cet octet indique si une compression d espace a t faite t H ke et e S il est S ro la compression sera faite lors de la lecture ou de l criture des donn es Cette valeur y est rang e par les op rations Ouverture pour Lecture et Ouverture pour Ecriture d un fichier S il est FF il n y a pas de compression faire Cette valeur doit tre rang e par l utilisateur apr s l ouverture d un fichier s il ne d sire
82. x Fonction 12 Destruction d un fichier 0C hex Cette fonction permet d effacer le fichier dont le nom est contenu dans le FCB n du lecteur nom du fichier extension Les secteurs utilis s par ce fichier peuvent tre imm diatement r utilis s Le fichier ne doit pas tre ouvert lorsque cette fonction est demand e Le nom du fichier dans le FCB est alt r pendant l ex cution de cette fonction Exemple LDX jf FCB pointe sur l adresse du FCB mise en place du nom du fichier dans le FCB LDAA 12 code destruction STAA 0 3 Sauvegarde dans le FCB JSR FMS Appel du FMS BNE ERR R Test d erreur Le fichier est maintenant effac Fonction 13 Changement du nom d un fichier 0D hex En entr e le fichier ne doit pas tre ouvert L ancien nom doit tre dans la zone d identification du fichier du FCB octets 4 27 et le nouveau nom dans la zone de travail du FCB octets 53 63 Le fichier dont le nom est contenu dans la zone d identification du FCB porte maintenant le nom contenu dans la zone de travail Le nouveau nom et ia nouvelle extension du fichier doivent tre obligatoirement sp cifi s Exemple LDX 4 FCB pointe sur l adresse du FCB mise en place du nom du fichier dans la zone d identification LDAA ZC 13 code r appelation STAA 0 X sauvegarde dans le FCB JSR FMS appel du FMS BNE ERROR Test d erreur Le fichier est maintenant renomm 40 Manuel de Programmation Avanc
Download Pdf Manuals
Related Search
Related Contents
Documentation Soft MANUAL DEL USUARIO Anleitungen – Rohrmotor RA5 - RA15 Automatisches Mini-box.com.au pdf picoLCD 256x64 SideShow Copyright © All rights reserved.
Failed to retrieve file