Article de reference

Commodore DOS

Commodore DOS , également connu sous le nom de CBM DOS , est le système d'exploitation disque utilisé avec les ordinateurs 8 bits de Commodore . Contrairement à la plupart des a...

Commodore DOS , également connu sous le nom de CBM DOS , est le système d'exploitation disque utilisé avec les ordinateurs 8 bits de Commodore . Contrairement à la plupart des autres systèmes DOS , qui sont chargés depuis le disque dans la mémoire vive (RAM) de l'ordinateur et exécutés sur place, CBM DOS est exécuté en interne dans le lecteur : le DOS réside dans des puces ROM à l'intérieur du lecteur et est géré par un ou plusieurs microprocesseurs dédiés de la famille MOS 6502. Ainsi, le transfert de données entre les ordinateurs 8 bits de Commodore et leurs lecteurs de disquettes s'apparente davantage à une connexion réseau local qu'à un transfert classique entre un disque et un ordinateur.

le bus série IEEE-488 (bus IEC) spécifique à Commodore , utilisant les protocoles série (TALK/LISTEN) ; tous les autres utilisent le bus parallèle IEEE-488 .

  • 1.0 présent dans les lecteurs de disquettes 2040 et 3040
  • 2.0 présent dans les lecteurs de disquettes 4040 et 3040
  • 2.5 présent dans les lecteurs de disquettes 8050
  • 2.6 présent dans les lecteurs de disquettes 1540 , 1541 (y compris celui intégré au SX-64) , 1551 , 2031 (+"lp") et 4031
  • 2.7 présent dans les lecteurs de disquettes 8050 , 8250 (+"lp") et SFD-1001
  • 3.0 présent dans les lecteurs de disquettes 1570 , 1571 externe et 8280 (8280 : 8 pouces), ainsi que dans les disques durs 9060 et 9090
  • 3.1 présent dans le lecteur 1571 intégré aux ordinateurs C128DCR
  • 10.0 trouvé dans le 1581 ( 3+lecteur de disquettes 1/2 pouce

La version 2.6 était de loin la version DOS la plus couramment utilisée et la plus connue, en raison de son utilisation dans le 1541 dans le cadre des systèmes C64 .

Remarque : La version révisée du firmware pour le 1571, qui corrigeait le bogue relatif au fichier, a également été identifiée comme V3.0. Il est donc impossible de différencier les deux versions uniquement à partir du numéro de version.

Aperçu technique

1541 types de répertoires et de fichiers

La disquette Commodore 1541 peut contenir jusqu'à 144 fichiers dans un espace de noms plat (sans sous-répertoires ). Le répertoire est stocké sur la piste réservée 18, située à mi-chemin entre le centre et le bord d'une disquette simple face de 35 pistes. Un nom de fichier peut comporter jusqu'à 16 octets et est théoriquement unique. En utilisant des méthodes d'accès direct à la structure du répertoire, il est possible de renommer un fichier avec le nom d'un autre , bien que l'accès à ces fichiers puisse s'avérer difficile, voire impossible. Les fichiers portant le même nom n'ont généralement aucune utilité, si ce n'est pour informer ou gérer visuellement les fichiers. Une astuce courante, utilisée par exemple par The Final Cartridge III , consistait à ajouter des fichiers nommés "----------------"d'un certain type au répertoire, puis à réorganiser les fichiers autour de ces lignes pour former des groupes. De nombreux développeurs de jeux, membres de groupes warez et hackers de la demoscene utilisaient également des entrées de répertoire personnalisées plus ingénieuses.DEL<

Les noms de fichiers peuvent contenir un espace décalé ( $A0), et si la liste des fichiers est affichée depuis BASIC, la partie du nom de fichier située après cet $A0espace apparaîtra séparée du début du nom par un guillemet, ce qui empêchera BASIC de la considérer comme faisant partie du nom complet. Cette fonctionnalité permet de créer des entrées de répertoire telles que , qui apparaîtront alors dans la liste des fichiers comme, par exemple :SAVE "PROGRAM⇧ Shiftspace[ Lorsque l'utilisateur déplace le curseur au début de la ligne, saisit le mot LOADau-dessus de la taille du fichier et appuie sur Entrée BASIC interprète cela comme un chargement du programme en mémoire. Tout ce qui suit le deux-points ou l'adresse secondaire ne sera pas exécuté, car l'ordinateur ignore toute commande après un LOAD. L'utilisateur peut également appuyer sur Entrée pour exécuter automatiquement le programme. ,8,1...,8,8LIST

Sur le Commodore 64 , la saisie de la commande `basic` affichera des caractères illisibles à l'écran au lieu de charger le répertoire dans la mémoire RAM BASIC. En effet, le lecteur attribue au répertoire l'adresse de chargement ` $ 0401` (1025), qui correspond au début du BASIC pour le Commodore PET , mais à la mémoire écran par défaut du C64 (à partir du deuxième caractère de la première ligne).,8,1

L'affichage du répertoire à l'aide d'une commande écrase le programme BASIC en mémoire. Le DOS Wedge et diverses cartouches et extensions tierces, telles que Epyx Fast Load , Action Replay et The Final Cartridge III, permettent d'afficher le répertoire du disque grâce à des commandes spéciales qui chargent le répertoire dans la mémoire d'écran sans détruire le programme BASIC en cours d'exécution. Certaines versions de Commodore BASIC incluent une commande qui remplit la même fonction.,8DIRECTORYCATALOG

Les types de fichiers suivants sont pris en charge :

SEQ
Un fichier séquentiel est un fichier de données qui se lit linéairement du début à la fin. SEQCes fichiers sont couramment utilisés pour stocker des documents ou des fichiers texte créés par un traitement de texte ou un éditeur similaire. Un fichier séquentiel est analogue à un fichier plat sous Linux ou UNIX , car il ne possède pas de structure interne particulière. Il est impossible de se positionner à un emplacement arbitraire dans un fichier séquentiel, car il n'existe pas d'équivalent à l' lseekappel noyau présent dans les systèmes d'exploitation de type UNIX .
PRG
PRGLes fichiers contiennent généralement du code exécutable, mais peuvent aussi servir de fichiers de données. Les deux premiers octets PRGsont lus par la routine « load file » du noyau et servent à déterminer l’adresse de chargement (ils sont stockés au format little-endian ).
REL
Un fichier relatif est une variante du type de fichier séquentiel, dans laquelle un mécanisme d'indexation appelé secteurs latéraux permet un accès direct aux enregistrements. Les enregistrements peuvent avoir une taille maximale de 254 octets et sont adressés par un numéro cardinal commençant à 1, ce qui permet un accès aléatoire à n'importe quelle partie du fichier.
USR
Un fichier spécifié par l'utilisateur possède une structure interne identique à celle d'un fichier séquentiel. À l'origine, Commodore avait conçu ce type de fichier pour faciliter le développement de DOS, car son contenu pouvait être copié dans un tampon de disque pour être exécuté par le microprocesseur du disque. Très peu de programmes ont réellement utilisé ce type de fichier. Certaines applications utilisant des structures de disque bas niveau non standard enregistrent des données au format USR, ce qui a fini par être interprété comme une sorte de signal d'avertissement à l'utilisateur : « Ne touchez à rien, ne tentez ni de copier ni de supprimer ». Notamment, les fichiers « VLIR » de GEOS apparaissent comme USRtels.
DEL
Type de fichier interne non documenté, dont la structure est similaire à celle d'un fichier séquentiel. La création de ce type de fichier nécessite une manipulation directe du répertoire du disque.

La présence d'un astérisque ( **) devant le type de fichier dans une liste de répertoires (par exemple, `/etc/fichier` *SEQ) indique que le fichier n'a pas été correctement fermé après écriture. Lorsque le lecteur reçoit l'ordre de fermer un fichier ouvert en écriture, le tampon associé est vidé sur le disque et la table de disponibilité des blocs (BAM) est mise à jour pour refléter précisément les blocs utilisés. Si un plantage de programme ou un autre problème (comme le retrait du disque par l'utilisateur alors qu'un fichier est ouvert) crée un « fichier orphelin », également appelé « fichier corrompu », les tampons ne sont pas vidés et la BAM ne reflète pas correctement l'utilisation du disque, ce qui expose ce dernier à un risque de corruption. Un fichier corrompu est généralement inaccessible (mais peut être ouvert en mode « modification »), et toute tentative de suppression à l'aide de la scratchcommande DOS peut entraîner une corruption du système de fichiers , telle que la création de liens croisés. La seule méthode pratique pour supprimer l'un de ces fichiers consiste à l'ouvrir en mode « modification » (et à le corriger), ou à valider le disque (voir la validatecommande DOS ci-dessous). Cette dernière opération reconstruit le fichier BAM et supprime les références aux fichiers corrompus du répertoire. Le fameux bogue de sauvegarde avec remplacement pouvait entraîner la création de fichiers parasites.

*DELIl s'agit d'un type spécial inscrit dans l'entrée de répertoire sur le disque des fichiers supprimés. Ces fichiers n'apparaissent pas dans une liste de répertoires classique, et leurs blocs de données ainsi que leurs entrées de répertoire seront réutilisés par les fichiers créés ultérieurement. Certains utilitaires permettent de « récupérer » ces fichiers si leurs blocs de données et leurs entrées de répertoire n'ont pas encore été écrasés par d'autres fichiers. Ces types d'entrée DEL filessont couramment utilisés pour insérer des bannières ou des sections de commentaires dans une liste de répertoires.

Les fichiers dont le nom <se termine par `.cs` (par exemple, ` .cs`) sont « verrouillés » et ne peuvent pas être supprimés ; ils peuvent cependant être ouverts en lecture. Il n'existe pas de commande DOS Commodore permettant de définir ou de supprimer explicitement ce statut, mais de nombreux utilitaires tiers ont été développés à cet effet. Ces utilitaires lisent généralement le répertoire à l'aide de commandes d'accès direct, effectuent les modifications nécessaires sur les données brutes, puis réécrivent les modifications sur le disque.PRG<

Accès aux fichiers

L'accès aux fichiers relève principalement de la responsabilité de l'ordinateur hôte. La ROM du noyau contient les routines primitives nécessaires à cet accès, tandis que la ROM BASIC offre une abstraction de plus haut niveau pour l'accès aux fichiers via la syntaxe BASIC. Les composants relevant du DOS sont l'analyse des noms de fichiers et l'adressage secondaire. Cette section présente un aperçu des commandes BASIC nécessaires, par souci d'exhaustivité.

L'ouverture d'un fichier sur un lecteur de disquettes Commodore implique le traitement de plusieurs paramètres, vaguement analogues aux procédures d'ouverture de fichiers dans d'autres environnements. Le DOS s'exécutant dans le contrôleur du lecteur, la séquence d'ouverture de fichier doit transmettre suffisamment d'informations à ce dernier pour garantir une interprétation sans ambiguïté. Voici une instruction BASIC typique pour écrire dans un fichier séquentiel :

Les paramètres qui suivent le OPENverbe sont les suivants :

3
Ce paramètre, le numéro de fichier , identifie logiquement le fichier ouvert au sein du système d'exploitation de l'ordinateur et est analogue à un descripteur de fichier dans les systèmes d'exploitation de type UNIX . Il n'est jamais transmis au disque et n'est donc ni connu ni utilisé par le système d'exploitation du disque. Le numéro de fichier peut être compris entre 1 et 254 inclus, est attribué par le programmeur et doit être unique si plusieurs fichiers sont ouverts simultanément. Une fois le fichier ouvert, toutes les procédures d'entrée/sortie du programme utilisent ce numéro de fichier. Dans les programmes en langage assembleur , cette valeur est souvent appelée LA (adresse logique), abréviation du mnémonique désignant l'emplacement mémoire où le numéro de fichier est stocké. Les numéros de fichier supérieurs à 127 entraînent l'insertion d'un saut de ligne supplémentaire après chaque retour chariot (utile, par exemple, pour doubler l'interligne d'un document).
8
Ce paramètre, le numéro de périphérique , identifie un périphérique spécifique connecté à l'ordinateur. Les périphériques 0 à 3 correspondent respectivement au clavier, au lecteur de cassettes, à l'interface RS-232 et à l'écran, tous directement contrôlés par la ROM du noyau. Les périphériques à partir de 4 correspondent aux périphériques connectés au bus périphérique, tels que les imprimantes ou les lecteurs de disquettes. Dans le cas d'un lecteur de disquettes, le numéro de périphérique fait référence au contrôleur de l'unité, et non au(x) mécanisme(s) de lecture interne(s). Par convention, le premier lecteur de disquettes d'un système porte le numéro 8, le second, s'il est présent, le numéro 9, et ainsi de suite, jusqu'à un maximum de 15 (lorsque huit lecteurs de disquettes sont connectés). Ce système de numérotation est dérivé du bus IEEE-488 (ou GPIB ) utilisé par les modèles Commodore PET/CBM. Dans les programmes en langage assembleur, cette valeur est souvent désignée par FA ou PA (adresse physique), abréviation de l'adresse mémoire où le numéro de périphérique est stocké.
4
Ce paramètre, l' adresse secondaire , comprise entre 0 et 15 inclus, correspond à un canal de communication spécifique établi avec le contrôleur du périphérique et transmis à ce dernier lorsqu'il reçoit l'ordre de communiquer ou d'écouter sur le bus périphérique. Comme le numéro de fichier, l'adresse secondaire est déterminée par le programmeur et doit être unique pour le périphérique concerné. La plage de 0 à 14 inclus est utilisée pour l'échange de données avec le périphérique, tandis que l'adresse 15, appelée « canal de commande », sert à envoyer des commandes au contrôleur du périphérique (par exemple, pour renommer un fichier disque), si ce dernier prend en charge cette opération. Dans les disques durs, les adresses secondaires de 0 à 14 inclus sont associées à des tampons au sein du contrôleur, établissant ainsi la communication avec un fichier spécifique sur un disque spécifique. Comme mentionné précédemment, le disque dur ne connaissant pas le numéro de fichier , il ne peut utiliser que l' adresse secondaire pour distinguer plusieurs fichiers ouverts simultanément. En revanche, le système d'exploitation hôte est indifférent à l'adresse secondaire. Elle est transmise au disque à chaque accès au fichier, mais n'est pas utilisée autrement par l'hôte. Dans les programmes en langage assembleur, cette valeur est souvent appelée SA (adresse secondaire).
CHAÎNE DE COMMANDE
Dans la documentation Commodore, ce "0:ADDRESSBOOK,S,W"paramètre est officiellement appelé « chaîne de commande » et est interprété par le contrôleur du périphérique utilisé. Pour un lecteur de disquettes, la structure formelle de la chaîne de commande comprend le numéro du mécanisme de lecture ( 0:à ne pas confondre avec le numéro du périphérique), le nom du fichier ( ADDRESSBOOK), le type de fichier ( Sici, séquentiel) et le mode d'accès ( Wici, ouvert en écriture). En pratique, certains de ces paramètres peuvent être omis. Au minimum, seul le nom du fichier est requis pour ouvrir le fichier en lecture.
Le numéro de lecteur identifie un mécanisme de lecture connecté au contrôleur d'une unité de disque et est analogue à un numéro d'unité logique dans un contrôleur SCSI capable de gérer plusieurs mécanismes (par exemple, les contrôleurs SASI développés pour fonctionner avec les disques durs ST-412 / ST-506 dans les années 1980). Dans les lecteurs de disquettes, le premier mécanisme est le lecteur 0: et le second, le lecteur 1:. Il est assez courant d'omettre le numéro de lecteur lors de la communication avec un lecteur de disquettes à lecteur unique, car 0: est la valeur par défaut. Cependant, comme cette omission peut engendrer quelques bogues obscurs sous DOS, elle est déconseillée (un deux-points suffit à remplacer 0: et à éviter ces bogues). Une exception à cette convention concerne le sous-système de disque dur Lt. Kernal , dans lequel le numéro de lecteur fait référence à des « unités logiques » ( lecteurs virtuels créés sur un seul lecteur physique), ce qui rendait nécessaire une syntaxe telle que 4: ou 10: si un fichier à ouvrir ne se trouvait pas sur l'unité logique zéro (équivalent au mécanisme de lecteur zéro dans une unité de disquette double).

Il est également possible de charger et d'enregistrer des fichiers à l'aide des commandes `load` LOADet ` save` SAVE. Les spécificateurs de nom de fichier peuvent aussi être utilisés ; par exemple, ` save` enregistre le programme BASIC dans un fichier de programme et `save` dans un fichier séquentiel. Si l'adresse secondaire n'est pas spécifiée ou est égale à 0 (par exemple , `$0801`) , le fichier est enregistré/chargé à partir de la zone mémoire BASIC (qui, sur C64, commence par défaut à $ 0801). Si l'adresse secondaire est spécifiée avec une valeur différente de zéro (par exemple, ` $0801` ), le programme est chargé à partir de l'adresse indiquée par le fichier lui-même (l'en-tête PRG, qui correspond aux deux premiers octets du fichier) . Cette forme de commande est plus courante pour le chargement de programmes en code machine.,8PRG,8,1,8,8,1

La relocalisation du chargement a été introduite pour la première fois sur le VIC-20, car cette machine pouvait démarrer la RAM BASIC à plusieurs emplacements différents, selon l'extension de mémoire installée. La série Commodore PET, plus ancienne , ne prenait pas en charge la relocalisation ; le résultat était donc le même : le fichier était chargé dans la même zone mémoire que celle où il avait été enregistré. La relocalisation du chargement s'effectue au niveau de l'hôte, ce qui constitue une exception à la règle mentionnée précédemment concernant l'utilisation de l'adresse secondaire uniquement en interne. Le PET ne pouvant pas relocaliser les fichiers, les programmes BASIC écrits sur les machines Commodore plus récentes doivent être modifiés à l'aide d'un éditeur de secteurs afin de modifier les octets d'en-tête. Il est également possible d'utiliser le moniteur de langage machine intégré au PET pour modifier l'adresse de liaison du programme BASIC après son chargement.,8,8,1

Cette commande chargera le premier programme présent sur le disque à partir de l'emplacement mémoire spécifié. C'est l'une des commandes de chargement les plus courantes sur ces plateformes ; elle est notamment utilisée pour lancer la plupart des logiciels commerciaux. Il est important de noter que l' utilisation d'un caractère générique ne sélectionnera le premier nom de catalogue que si aucun autre fichier sur ce disque n'a été accédé auparavant ; le nom du dernier fichier utilisé est conservé en mémoire, et les commandes suivantes chargeront ce fichier plutôt que le premier. (Cependant, la commande `cd` chargera toujours le premier fichier présent sur le disque.),8,1,8,1,8,1,8,1

Dans les systèmes à deux disques, les répertoires de disques sont accessibles via ` disk_dir` et `disk_dir` . Ces commandes permettent d'accéder directement aux fichiers présents sur l'un ou l'autre disque et portant le même nom . Il est possible de charger des répertoires partiels en ajoutant un deux-points et un modèle : par exemple, ` disk_dir` chargera un répertoire partiel affichant uniquement les fichiers dont le nom commence par la lettre K et qui sont de type PRG. Tous ces répertoires partiels conservent la ligne initiale du nom du disque et la ligne finale « BLOCKS FREE ».,8,8"0:$""1:$""$",8

Le bug de sauvegarde avec remplacement

Commodore DOS propose également une commande « Sauvegarder avec remplacement » permettant d'écraser un fichier existant sans avoir à SCRATCHle supprimer au préalable. Pour ce faire, un @symbole était ajouté au début du nom du fichier lors de l' opération de suppression OPENou SAVEd'écrasement ; par exemple, « + » . Pendant des années, des rumeurs ont circulé, à commencer par le lecteur 4040, concernant un bogue dans l'implémentation de cette commande. Au début, certains commentateurs ont nié son existence. Des prix étaient même offerts pour prouver son existence. Début 1985, le magazine Compute! conseillait à ses lecteurs d'éviter d'utiliser cette commande. La même année, plusieurs auteurs ont publié indépendamment des articles prouvant que le bogue de la sauvegarde avec remplacement était bien réel et présentant des méthodes pour le reproduire.,8

Les appareils concernés étaient les modèles 1541 (à un seul lecteur) et 4040 (à deux lecteurs) ; les modèles 8050 et 8250 n'étaient pas affectés. Certains commentateurs ont suggéré que ce bogue pouvait être évité en spécifiant systématiquement le 0:numéro de lecteur lors de la sauvegarde, bien qu'il ait été démontré par la suite que toute opération disque sans numéro de lecteur suffisait à reproduire le bogue. Ce bogue provenait du fait que les implémentations DOS concernées étaient des versions modifiées du DOS contenu dans les anciens lecteurs doubles PET de Commodore, tels que le 8050. Ceci créait un « lecteur fantôme1: » sur les systèmes à un seul lecteur, entraînant l'allocation d'une mémoire tampon inutile dans certaines conditions. Étant donné que la commande « Sauvegarder avec remplacement » utilisait les cinq mémoires tampons du lecteur, et que la méthode d'allocation de la mémoire tampon « fantôme » ne respectait pas les spécifications, des données brouillées pouvaient être écrites sur le disque.

En septembre 1986, Philip A. Slaymaker publia un article décrivant en détail la cause du bogue et proposant des correctifs pour les ROM des lecteurs 1541. Les lecteurs disposant d'un programmateur d'EPROM pouvaient ainsi créer leurs propres ROM corrigées et les installer dans le lecteur. Commodore fut informé des découvertes de Slaymaker et, bien qu'aucune mise à jour officielle n'ait été publiée pour les ROM du 1541 d'origine, le bogue fut corrigé dans la révision 5 des ROM du 1571, ainsi que dans celles des lecteurs 1541-c et 1541-II. Bien que non pris en charge par Commodore, il est possible d'utiliser le firmware du 1541-II (mais pas celui du 1541-c) dans un lecteur 1541 d'origine grâce à des EPROM, ce qui corrige également le bogue pour ce lecteur.

Canal de commande

Comme indiqué précédemment, l'interface DOS du Commodore est accessible via le « canal de commandes », en utilisant une syntaxe similaire à celle employée pour accéder aux fichiers. L'envoi de commandes à DOS et la récupération des messages d'état et d'erreur générés en réponse à ces commandes s'effectuent en ouvrant un fichier sur le périphérique en utilisant 15 comme adresse secondaire, par exemple :

CommandeDescriptionImplémentation de BASIC 1.x et 2.xImplémentation DOS WedgeImplémentation BASIC 3.0+NouveauFormatez un disque pour le préparer à l'utilisation et supprimer toutes les données qu'il contient. Omettre le paramètre d'identification à deux caractères permet de supprimer rapidement tous les fichiers d'un disque déjà formaté.OPEN 15,8,15,"N0:disk name,identifier":CLOSE 15@N0:disk name,identifierHEADER "disk name",identifierGratterSupprimer un fichier du disque (ou plusieurs fichiers, en utilisant la correspondance par caractères génériques)OPEN 15,8,15,"S0:file name":CLOSE 15@S0:file nameSCRATCH "file name"RebaptiserRenommez un fichier sur le disque. Notez que le nouveau nom précède le nom (sauf dans le code BASIC 3.0+) !OPEN 15,8,15,"R0:new name=old name":CLOSE 15@R0:new name=old nameRENAME "old name" TO "new name"InitialiserRéinitialisez le lecteur et chargez le fichier BAM du disque dans sa mémoire interne. Cette opération est rarement nécessaire, car le lecteur s'en charge généralement automatiquement, sauf en cas de remplacement d'un disque par un autre possédant le même identifiant.:CLOSE15@I0:DCLEAR(BASIC 7.0+ uniquement)ValiderRéconciliez le fichier BAM avec le répertoire du disque, allouez tous les blocs utilisés et libérez ceux qui ne sont pas utilisés par des fichiers, puis supprimez tous les fichiers non fermés du répertoire. Fonction équivalente à CHKDSK / ScanDisk des systèmes d'exploitation Microsoft.:CLOSE15@V0:COLLECTCopieDupliquez un fichier sur le même disque (ou un autre disque du même lecteur double) sous un nom différent. Notez que le nouveau nom précède le nom du fichier (sauf dans le code BASIC 3.0+) ! La duplication sur un autre disque sans lecteur double nécessite l’utilisation d’un utilitaire.OPEN 15,8,15,"C0:new name=0:existing name":CLOSE 15@C0:new name=0:existing nameCOPY"existing name"TO"new name"DoubleDupliquez un disque entier. Fonction disponible uniquement pour les disques à deux lecteurs ; sinon, un utilitaire est nécessaire. Indiquez d’abord le numéro du lecteur cible, puis celui du lecteur source (sauf dans le code BASIC 3.0 et versions ultérieures).:CLOSE15@D1=0BACKUP D0 TO D1

Il existe également une commande de recherche dans les fichiers de type RELative ( RECORD#), plusieurs commandes d'accès direct au niveau bloc ( BLOCK-READ, BLOCK-WRITE, BUFFER-POINTER), la gestion des blocs ( BLOCK-ALLOCATE, BLOCK-FREE), la manipulation de la mémoire du disque et l'exécution de code sur le processeur du disque ( MEMORY-WRITE, MEMORY-READ, MEMORY-EXECUTE, BLOCK-EXECUTE) ainsi que des fonctions personnalisables ( USERet &commandes ). Certaines de ces fonctions, initialement personnalisables, ont été réaffectées pour accéder à de nouvelles fonctionnalités dans les versions de DOS postérieures à la version 1.0.

ISBN0-8359-3091-2.
  • Englisch, Lothar ; Szczepanowski, Norbert (1984). Anatomie du lecteur de disquettes 1541. Grand Rapids, MI : Abacus Software (traduit de l’édition originale allemande de 1983, Düsseldorf : Data Becker GmbH). ISBN0-916439-01-1.
  • (en finnois) Lundahl, Reijo (1986). 1541-Léviasema . Amerssoft. ISBN951-35-3206-2
  • Systèmes d'exploitation disque (DOS)

    Plus d articles de Worldlex Wiki

    Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

    Explorer l index