Section courante

A propos

Section administrative du site

 Système d'exploitation  Utilisation  Tutoriel  Programmation  Emulateur  Annexe  Aide 
Amiga
Apple
CP/M / DOS
CoCo
Cray
Mainframe
Mobile
OS/2
TRS-80
UNIX
Windows
Autres
AmigaDOS
AmigaOS
MorphOS
Apple DOS
System 1.0
System 1.1
System 2.0
System 3.0
System 3.1
System 3.2
System 3.3
System 4.0
System 4.1
System 4.2
System 4.3
System 6.0
System 7.0
System 7.1
System 7.5
System 7.6
Mac OS 8.0
Mac OS 8.1
Mac OS 8.5
Mac OS 8.6
Mac OS 9.0
Mac OS 9.1
Mac OS 9.2
Mac OS X
Mac OS X Server
Apple DOS
Caldera DR-DOS 7
CP/M
CP/M-80
CP/M-86
DOS
DR-DOS
FreeDOS
IBM DOS 4
IBM DOS 5
MS-DOS
PC DOS
PTS-DOS
DR-DOS 5
DR-DOS 6
DR-DOS 7
MS-DOS 1.25
MS-DOS 2.0
MS-DOS 2.11
MS-DOS 3.0
MS-DOS 3.20
MS-DOS 3.21
MS-DOS 3.3
MS-DOS 4
MS-DOS 5
MS-DOS 6
MS-DOS 6.2
MS-DOS 7.10
PC DOS 1.0
PC DOS 1.1
PC DOS 2.0
PC DOS 2.1
PC DOS 3.0
PC DOS 3.1
PC DOS 3.2
PC DOS 3.3
PC DOS 4.0
PC DOS 4.01
PC DOS 5.0
PC DOS 6.1
PC DOS 6.3
PC DOS 7.0
PC DOS 2000
FLEX
OS-9
COS
UNICOS
OpenVMS
OS/390
OS/400
VAX/VMS
z/OS
Android OS
Bada
EPOC
PalmOS
Citrix Multiuser
eComStation
OS/2 Version 1
OS/2 Version 1.1
OS/2 Version 1.2
OS/2 Version 1.3
OS/2 Version 2
OS/2 Version 2.1
OS/2 Warp 3
OS/2 Warp 4
LDOS
MultiDOS
NEWDOS
TRSDOS
AIX
FreeBSD
HP-UX
Linux
QNX
SkyOS
Solaris (SunOS)
UNIX
XENIX
ReactOS
Windows 95
Windows 98
Windows Me
Windows NT 4.0 Server
Windows 2000 Professionnel
Windows 2000 Server
Windows XP
Windows Server 2003
Windows Server 2003 R2
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows Server 2019
Windows Vista
Windows 7
Windows 8
Windows 10
Windows 11
FLEX
KolibriOS
Inferno
Medos-2
Oberon
Plan 9
p-System
RDOS
Introduction
Structure de données
Références des commandes
Organisation de la mémoire
Organisation du disque
Structure d'un fichier
Routines système pour les entrées/sorties en langage assembleur
Enregistrements physiques et logiques dans TRSDOS
Les premiers pas
Opération Mini Disk
Faire une sauvegarde du TRSDOS
DISK BASIC
BASICG
BASIC For TRSDOS Version 6
TRS-80 Pascal
Assembleur Z80
trs80gp
Références des codes d'erreurs
Référence de termes et du vocabulaire
Cartographie de la mémoire
Tables de caractère TRSDOS
Conversions de base
Préface
Notes légal
Dictionnaire
Recherche

Routines système pour les entrées/sorties en langage assembleur

Ces informations sont fournies aux clients souhaitant écrire leurs propres routines d'entrée/sortie au niveau de l'assemblage. Une explication de la séquence d'appel et des paramètres pour chaque routine d'entrée/sortie nécessaire est donnée. Une connaissance du code Z-80 est supposée.

Les notations suivantes sont standard dans cette section :

Notations Description
HL=>xxxx Les registres HL contiennent l'adresse de (pointer sur) xxxx au format machine. (Si l'adresse de xxxx=34B2h alors les valeurs dans les registres sont : H=34 ; L=B2).
DE=>xxxx Les registres DE contiennent l'adresse de (pointer sur) xxxx au format machine. (Si l'adresse de xxxx=5AF1h alors les valeurs dans les registres sont : D=5A ; E=F1).
B=xx Le registre B contient la valeur numérique de xx sous forme binaire. Si xx=64 décimal, alors B=40h.
A=xx Le registre A contient la valeur numérique de xx sous forme binaire. Si xx=127 décimal, alors A=7Fh. Le registre A est utilisé pour renvoyer le code d'erreur TRSDOS pour les appels d'entrée/sortie.
Z=OK Le drapeau de zéro est défini (OK) en cas de retour réussi des routines système.
X'nnnn' Adresse RAM matérielle en notation hexadécimale (par exemple, 402D est X'402D').
LRL Longueur d'enregistrement logique. De 1 à 255 octets uniquement. Vous pouvez définir des enregistrements de la longueur que vous souhaitez jusqu'à 255 octets maximum. Une longueur de zéro est un cas particulier pour les enregistrements physiques uniquement et indique que la LRL = 256 octets.
BUFFER 256 octets désignés par l'utilisateur dans la RAM pour que TRSDOS lise ou écrive des secteurs. Si LRL=0, cette zone est à la charge de l'utilisateur de gérer avant et après les entrées/sorties. Le TRSDOS gère cette zone si LRL est compris entre 1 et 255 octets. Ne modifiez pas cette zone lorsque vous utilisez le traitement d'enregistrements logiques.
UREC Enregistrement d'utilisateur : l'adresse de la chaîne d'octets RAM contiguë affectée par l'utilisateur comme sa zone d'enregistrement logique. Sa longueur doit être égale à LRL. C'est une zone différente de BUFFER.

DCB avant OPEN et après CLOSE

Le DCB est défini comme 32 octets contigus de RAM désignés par l'utilisateur. Avant OPEN et après CLOSE, il s'agit d'une chaîne de caractères ASCII compressée justifiée à gauche (sans espaces), comme dans une spécification de fichier TRSDOS standard :

Explication de DCB en OPEN

lsb/msb est l'octet le moins significatif suivi de l'octet le plus significatif au format RAM du Z80 (par exemple, adresse=7CC8 dans la RAM est C8 7C).

Adresse Longueur Explication
DCB+0 3 Réservé
+3 2 Adresse du tampon physique (lsb/msb)
+5 1 Déplacement du délimiteur à la fin de l'enregistrement en cours
+6 1 Résidence du numéro de l'unité de disque de fichier
+7 1 Réservé
+8 1 Déplacement EOF du dernier délimiteur dans le dernier enregistrement physique
+9 1 LRL (Longueur d'enregistrement logique)
+10 2 NRN (numéro du prochain enregistrement - ouvre l'ensemble=X'0000' - lsb/msb)
+12 2 ERN (numéro du dernier enregistrement - dernier dans le fichier - lsb/msb)
+14 18 Réservé

NRN

Le numéro d'enregistrement suivant définit quel enregistrement doit être lu ou écrit par le prochain appel système pour READ ou WRITE. Il est automatiquement incrémenté de un après chaque appel système. Afin de traiter des fichiers aléatoires, utilisez l'appel POSN pour diriger TRSDOS vers l'enregistrement que vous souhaitez transférer ensuite.

ERN

Le numéro d'enregistrement de fin est le dernier numéro d'enregistrement actuellement dans le fichier. Il est placé dans le répertoire au moment du CLOSE, donc s'il est censé être correct, l'utilisateur doit fermer ses fichiers après avoir ajouté des enregistrements à un fichier. Cette valeur peut également être utilisée pour se positionner à la fin du fichier afin que de nouveaux enregistrements puissent être ajoutés à la fin du fichier. Pour se positionner en fin de fichier utiliser un appel à POSN avec un numéro d'enregistrement ERN+1.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Mercredi, le 22 février 2023