I
I
Progra m mtechn ische Beschreibung
Kompendium
C 3013-0001-1 M 3030
Arbeitsplatzcomputer A 7150 Betriebssystem DCP 1700
I ANWEND ER- I I --~~~~~~~~~~~~~--. 12/87
Programmtechnische Beschreibung
Kompendium
DCP 1700, Ausgabe 3.20
Kompendium
AC A7150
VEB Robotron-Projekt Dresden
C3013-0001-1 M3030
Die vorliegende Auflage des "Kompendium" fuer DCP 1700 entspricht dem Stand von 12/87.
Die Ausarbeitung der Schrift erfolgte durch ein Kollektiv des VEB Robotron-Projekt Dresden.
Nachdruck, jegliche vervielfaeltigung oder Auszuege daraus .sind unzulaessig.
Herausgeber:
VEB Robotron-Projekt Dresden, Leningrader Str. 9
Ag 706/169/88 - 5749
i '.'
1. 1.1. 1.2.
2.
3.
4. 4.1. 4.2. 4.2.1. 4.2.2. 4.2'.3. 4.2.4.
5. 5.1. 5.2.
6. 6.1. 6.2. 6.3. 6.4. 6.5 6.6. 6.7.
7.
8.
9.
9.1. 9.2. 9.3. 9.4. 9.5.
10. 10.1. 10.2.
11. 11.1. 11.2. 11.3. 11.4. 11. 5.
12.
I N H ALT S VER Z E ICH N I S
Einleitung Vorbemerkungen Hinweise zur Benutzung der Schrift
Dateive,rwaltung
Standard-Eingabe und Standard-Ausgabe
Befehle Befehlsarten Befehlsbeschreibung Systembefehle Stapelverarbeitungsbefehle Konfigurationsbefehle Standard-Einheitentreiber
Funktionsaufrufe Unterbrechungen Systemfunktionen ueber int 21h
Daten und Kodes Allgemeine Strukturen Zeichendarstellung des Color/Grafik-Adapters ESCAPE-Folgen Erweiterter ASCII-Code Erweiterter Fehlercode Steuerfunktionen der Konsol-Eingabe Wichtige Speicheradressen
Monitor
Zeileneditor (EDLIN)
~erkzeuge zur Programmierung (MASM, LIB, LINK, CREF)
Allgemeines MACRO-Assembler MASM Bibliothekar LIB Verbinder LINK Cross-Referenz-Generator CREF
Testhilfen (MAPSYM, SYMDEB) Symboldatei-Generator MAPSYM Symbolische Testhilfe SYMDEB
Festplatten-Einrichtung (MWINCH) Funktionen von MWINCH Aufruf von MWINCH Partition-Typen Befehlsdatei Systemkonfiguration
EXE-Datei
- 3 -
Seite
5 5 5
5
7
7 7 8 8
15 15 16
17 17 20
28 28 29 29 30 30 31 32
33
33
34 34 34 35 35 36
36 36 36
39 39 39 40 40 41
41
1. Einleitung ============= I 1.1. Vorbemerkungen
Die vorliegende Schrift enthaelt eine zusammengefasste Darstellung der Betriebssystembefehle, der Funktionsrufe, der Daten und Codes und der wichtigsten ·Software-Entwicklungswerkzeuge. Sie soll dem Benutzer, insbesondere dem Software-Entwickler, die taegliche Arbeit am Rechner erleichtern. Ausfuehrlichere Informationen enthalten folgende Schriften: - Anleitung fuer den Bediener - Anleitung fuer den Systemprogrammierer - Anleitung fuer den Assemblerprogrammierer
1.2. Hinweise zur Benutzung der Schrift
Folgende Metasymbole und Bezeichnungen werden in der Schrift verwendet:
(-) d: File [ ?l
Path [/] !A7150: < .•• >
wahlfrei anzugeben alternativ anzugeben Auslassung kein'Parameter oder Schalter Laufwerk vollstaendiger Pfadname einer Datei ohne Jokerzeichen vollstaendiger Pfadname einer Datei mit Jokerzeichen; fehlt er bei Quelle, wird *.* (alle Dateien) angenommen vollstaendiger Pfad eines Unterverzeichnisses ein oder mehrere befehlsmodifizierende Schalter Sonderbehandlung am A7150 Bitweise Darstellung, rechts das niederwertigste Bit
2. Dateiverwaltung ================== Die Dateiverwaltung ist baumartig strukturiert.Jede Magnetplatte besitzt ein Stammverzeichnis (root directory) mit einer begrenzten Anzahl von Eintraegen (64 ... ). Die Eintraege jedes Verzeichnisses koennen Dateien oder weitere Unterverzeichnisse beschreiben. In einem Unterverzeichnis ist die Anzahl der Eintraege nicht begrenzt.
- Begriffe:
Standardgeraet: Das mit dem Befehl d: eingestellte logische Laufwerk (A ... )
Standardverzeichnis: Das mit dem Befehl CHDIR eingestellte laufende Verzeichnis; jedes Laufwerk hat sein eigenes Standardverzeichnis.
pfad: Definierter Zweig des Verzeichnisbaumes; entlang der Pfade sucht DCP nach aus fuehrbaren Befehlen, wenn der Dateiname nicht vollstaendig angegeben ist. Die Pfade werden mit ~em Befehl PATH eingestellt.
Dateiname: Besteht aus Name und Erweiterung Pfadname: Besteht aus Laufwerksnamen, Pfadzuordnung und
Dateinamen; er kann abgekuerzt werden.
- Vollstaendiger Pfadname:
Jede Datei auf einer Magnetplatte ist durch den vollstaendigen Pfadnamen eindeutig bezeichnet. Er beginnt beim Laufwerksnamen
- 5 -
und dem Stammverzeichnis:
d:\SubdirOl\ ... \Filename.Ext
Parameter Definition -------------------------------------------------------------d: \ SubdirOl\
... \ Filename .Ext
Laufwerksname (A ... ) Stammverzeichnis Unterverzeichnis SubdirOl, Name wie Dateiname; ueblicherweise wird eine Erweiterung weggelassen weitere Unterverzeichnisse im Verlauf des Pfades Name der Datei (1 ... 8 zulaessige ~eichen) Erweiterung der Datei (1 ... 3 zulaessige Zeichen)
In Name und Erweiterung sind folgende Zeichen unzulaessig: " / \ [ 1 : I < > + =; und ASCII-Zeichen OOH ..• 20H
Gross- und Kleinbuchstaben sind gleichberechtigt. Der vollstaendige Pfadname darf 63 Zeichen nicht ueberschreiten.
- Abgekuerzter Pfadname:
Standardlaufwerk fuer fehlenden Laufwerksname Standardverzeichnis fuer fehlendes Verzeichnis
- Bei Befehlen, die Dateigruppen bearbeiten, sind innerhalb von Name und Erweiterung zwei sogenannte Jokerzeichen zulaessig:
? *
steht fuer jedes zulaessige Zeichen in dieser Position, steht fuer jedes zulaessige Zeichen in dieser Position und allen restlichen Positionen.
- Sonderbezeichnung des Dateinamens fuer Verzeichnisse:
laufendes Verzeichnis vorhergehendes Verzeichnis
- Reservierte Einheiten-Namen koennen anstelle eines Dateinamens verwendet werden, der Doppelpunkt ist wahlfrei:
Name Einheit
~ö;~--~~-------~~;di~~~~t~~t~t~~/~ild~~hi~;--------------------AUX: oder COMl: Erster Anschluss asynchrone Uebertragung COM2: Zweiter Anschluss asynchrone Uebertragung PRN: oder LPTl: Erster Drucker LPT2: Zweiter Drucker NUL: "Null"-Geraet; erzeugt als Eingabegeraet sofort
Dateiende und uebernimmt als Ausgabegeraet alle Daten.
- Reservierte Dateinamen und deren Verwendung:
%PIPE @ ••• BACKUPID.@@@ FILEnnnn.CHK FILEnnnn.REC VM.TMP
temporaere Datei eines verketteten Datenstroms Befehlsdatei des Verbinders BACKUP-Datei zerstoerte Diskettenspeicherplaetze bei CHKDSK Dateinamen bei Wiederherstellung der Diskette Temporaere Verbinder-Datei
- 6 -
- Reservierte Erweiterungen von Dateinamen und deren Verwendung:
.$$$
.ASM
.BAK
.BAT
.BIN
.COM
.CRF
.EXE
.LIB
.LST
.MAP
.OBJ
. REF
.SYS
.TMP
allgemeine temporaere Datei Quelldatei des Assemblers Sicherungsdatei von Bibliothekar und Editoren ausfuehrbare Stapeldatei Binaerdatei ausfuehrbare Datei (Befehl) im COM-Format Cross-Reference-Quelldatei ausfuehrbare Datei (Befehl) im EXE-Format Bibliothek fuer Bibliothekar und Verbinder Listendatei des Assemblers Ladetabelle des Verbinders Objektdatei von Uebersetzer, Bibliothekar, Verbinder Cross-Referenz-Liste . systemeigene Datei (Einheitentreiber, .•• ) allgemeine temporaere Datei
3. Standard-Eingabe und Standard-Ausgabe
Nach dem Ur laden sind sofort folgende fuenf Dateien geoeffnet:
Zugriffswort Datei
o 1 2 3 4
Standard-Eingabe Standard-Ausgabe Standard-Fehler ausgabe Standard-Hilfsgeraet Standard-Drucker
(stdin) (stdout) (stderr) (stdaux) (stdprn)
Tastatur ; Bildschirm ; Bildschirm
von Standard-Eingabe und Standard-Ausgabe (redirect): - Umleiten <Infile >Outfile »Appfile
stdin kommt von der vorhandenen Datei Infile. stdout wird auf eine neue Datei Outfile geleitet. stdout wird auf die Datei Appfile geleitet. Existiert diese Datei bereits, wird der Schreib-zeiger an das Dateiende gestellt.
-·Verketten von Standard-Eingabe und Standard-Ausgabe (pipe): PrgllPrg2 stdout von Prgl fuehrt zur stdin von Prg2 ..
Die Datenuebergabe erfogt mittels temporoerer Dateien, die im Stammverzeichnis des Standardlaufwerkes angelegt werden.
4. Befehle
4.1. Befehlsarten
Systembefehl~: Interne Befehle sind Bestandteil des Befehls-Prozessors, Sle sind jederzeit verfuegbar. Externe Befehle befinden sich auf einer Magnetplatte und werden vor Ausfuehrung eingelesen. Fehlt. die Pfadzuordnung, so werden sie zuerst im Standardverzeichnis und dann in den mit PATH verbundenen Verzeichnissen gesucht. Externe Befehle haben folgende Erweiterungen:
.COM fuer ausfuehrbares COM-Format (1 Segment, max. 64KBytes)
.EXE fuer ausfuehrbares EXE-Format (mehrere Segmente, siehe auch Kapitel 12)
Alle startbaren Anwendungsprogramme haben entweder die Erweiterung .COM oder .EXE und sind folglich im erweiterten Sinn externe Befehle.
- 7 -
Stapelverarbeitungs-Befehle: Sie werden vorzugsweise in Stapelverarbeitungs-Dateien verwendet. Eine solche Datei enthaelt mehrere Befehle, die nacheinander ausgefuehrt werden:
interne und externe Befehle Ausfuehrung spez. Stapelverarbeitungs-Befehle Ausfuehrungs-Kontrolle
Eine Stapelverarbeitungs-Datei ist durch die Erweiterung .BAT gekennzeichnet. Stapelverarbeitungs-Dateien koennen gekettet, aber nicht ohne weiteres geschachtelt werden. Bis zu zehn Scheinparameter (%0 •.• %9) sind moeglich, die beim Aufruf zugewiesen werden. %0 wird immer durch Laufwerk, wenn vorhanden, und den Namen der Stapelverarbeitungsdatei ersetzt. Existiert eine Datei AUTOEXEC.BAT im Stammverzeichnis der Magnetplatte, von der das System geladen wird, so wird sie unmittelbar nach dem Ur laden vorn Befehls-Prozessor abgearbeitet.
- Konfigurations-Befehle: Mit ihnen kann waehrend des Ur ladens die Systemkonfiguration in wesentlichen Teilen beeinflusst und erwei tert werden. SOie bef inden sich ausschI iesslich in einer Datei CONFIG.SYS und werden abgearbeitet, wenn sich diese Datei im Stammverzeichnis derjenigen Magnetplatte befindet, von der das System geladen wird.
4.2. Befehlsbeschreibung
4.2.1. Systembefehle
Funktionell geordnet:
[IJ Systemverwaltung
[ 2]
[3 J
BREAK Ein/Ausschalten der 'CTRL-C'-Abfrage CLS Loeschen Bildschirm COMMAND Sekundaerer Befehls-Prozessor (Ende EXIT) CTTY Definition Primaerkonsole d: Einstellen Standardlaufwerk (d.h. Laufwerkswechsel) MODE Einstellen Geraetemodus PROMPT Einstellen Systemanfrage, Ausgabe ESC-Folgen SET Erweitern der Umgebung VCHAR2 Laden des zweiten alphanumerischen Zeichensatzes VER Ausgabe der Versionsnummer des DCP . VERIFY Ein/Ausschalten Vergleichslesen bei Plattenzugriffes
Diskettenverwaltung CHKDSK Pruefen von Dateistrukturen DISKCOMP Physisches Vergleichen von Disketteninhalten DISKCOPY Physisches Kopieren von Disketten FORMAT Physisches Formatieren von Disketten LABEL Wechseln Datentraegername RECOVER Wiederherstellen defekter Dateien SYS Kopieren Betriebssystem VOL Anzeige Datentraegername
Dateiverwaltung ATTRIB Wechseln Dateiattribut BACKUP Sichern von Festplatteninhalten COMP Vergleich von Dateien COPY Kopieren von Dateien RENAME Umbenennen von Dateien REPLACE Ersetzen von Dateien RESTORE Rueckspeichern gesicherter Festplatteninhalte TYPE Anzeige einer Textdatei auf Bildschirm XCOPY Verzeichnisorientiertes Kopi~ren
- 8 -
[ 4]
[5]
[ 6]
[7]
[ 8]
Verzeichnisverwaltung , , CHDIR Definition Standardverz. (d.h. Verzelchnlswechsel) DIR Anzeige des Inhaltsverzeichniss~s, ' MKDIR Erzeugen eines neuen unterverzelc~nls~es RMDIR Entfernen eines leeren Unterverzelchnlsses TREE Anzeige des Verzeichnisbaumes
Zugriffsverwaltung ASSIGN Umleiten von Laufwerkszugriffen JOIN Verknuepfen von Verzeichnissen ueber Laufwerksgrenzen PATH Festlegen von Suchwegen SHARE Organisieren geteilter ~ugriffe , SUBST . Ersetzen Pfad durch loglsche Laufwerksbezelchnung
Filter FIND MORE SORT
Suchen Kopieren bildschirmgrosser Bloecke Sortieren .
Druckerausgabe GRAFTABL Laden zweiter grafischer,zeichensatz , GRAPHICS Vorbereiten grafische Prlnt-Screen-Funktlon PRINT Eingliedern Print-Spooler
Systemuhr CLOCK Anzeige Systemuhr im Alphamode DATE Lesen/Set.zen Systemdatum TIME Lesen/Setzen Systemzeit
[9] Festplattenverwaltung FDISK Partitions-Verwaltung MWINCH Festplatten-Verwaltung
Alphabetisch geordnet:
Gueltige Trennzeichen im Befehl sind Externe Befehle sind mit * markiert;
, *
und Leerzeichen. bedeutet Pfadzuordnung.
Befehl. Parameter Wirkung ------------------------------------------------------------------
*ASSIGN
*ATTRIB
*BACKUP
BREAK
CHDIRlcD
x=y [ •.• ]
(-)
+R File -R File
[?] d: [/] Schalter
/A /D:mm-tt-jj /M /S
[ONIOFF] (-)
Cd:] Path (-)
Benutzt Laufwerk y, wenn x angesprochen wurde.
Ausnahme: DISKCOPY p. DISKCOMP Ruecksetzen aller Zuordnungen
Setzt Dateiattribut "Nur Lesen" Loescht Dateiattribut "Nur Lesen"
Sichert Dateien nach d:
Zufuegen zu sichernder Dateien Nach angegebenem Datum mod~f~z~ert Seit letzter Sicherung modlflzlert Einschl~esslich aller Unterverz.
EinlAusschalten Test auf 'CTRL-C' Anzeige des aktuellen Status
Wechselt Standardverzeichnis Anzeige Standardverzeichnis
- 9 -
*CHKDSK
*CLOCK
CLS
*COMMAND
*COMP
COPY
CTTY
[? ][/1 Schalter
IF
(-)
(-)
IV
[d: [Path]] [I] Schalter
(-) . IC Befehl IE:n
IP
[a?] [b?]
[q?] [d:[Path]][/] [q?] [z?][/] qFile+ ..• zFile[/]
Schalter (koennen ueberall eingefuegt werden)
IA IB IV
Einheitenname
d: (-) d
DATE Datum (-)
DELlERASE [?]
DIR
*DISKCOMP
*DISKCOPY
[?][/] Schalter
IP IW
[qd:[zd:]][/]
Schalter 11 18
[qd:[zd:]][/]
Schalter 11
Analyse von Verzeichnis und FAT
Fuehrt Korrekturen aus Anzeige und Statusbericht
Zeigt Systemzeit im Alphamodus an
Loescht Bildschirm
Startet sekundaeren Befehls-Prozessor
Bl~ibt aktiv bis z~m Spezialbef:EXIT Ze1chenfolge Befehl wird uebergeben Groesse der Umgebung (160 ... 32768, abgerundet auf Paragraph-Grenze) P~ozessor wird resident, .AUTOEXEC.BAT w1rd nach Ur laden abgearbeitet
Vergleicht aFiles mit bFiles, es erfolgt Test auf EOF ('CTRL-Z')
Kop~ert qFile ~ach d:(gleiche Namea) Kop1ert von qF1le nach zFile Fue~t alle qFile+ •.. zu zFile Bez1~ht sich auf die vorhergehende Date1angabe und alle folgenden, bis anderer Schalter auftritt Verarbeitung als ASCII (Text)
(Standard bei Fuegen) Verarbeitung als Binaer
(Standard sonst) Identisch mit dem Befehl VERIFY ON. Bemerkung: Eingabeende von CON: ist
'CTRL-Z'
Definiert die Primaerkonsole
Stellt Standardlaufwerk ein logischer Laufwerksname (A ..• )
Eingabe Datum im Landesformat Ausgabe
Loescht Dateien
Zeigt Inhaltsverzeichnis an
Anzeige seitenweise gekuerzte Ausgabe
Vergleicht physisch die Disketten in den Laufwerken qd: und zd:
einseitige Diskette 8 Sektoren pro Spur
Kopiert eine Diskette physisch von Laufwerk qd: nach Laufwerk zd: Im Bedarfsfall wird die Zieldiskette formatiert. einseitige Diskette
- 10 -
*EXE2BIN
EXIT
*FDISK
*FIND
* FORMAT
eFile [bFile] Wandelt die EXE-Datei eFile in BINoder COM-Datei bFile um. Die Erweiterung .EXE von eFile kann fehlen. Fehlt die Erweiterung von bFile, wird .BIN genommen. Eirie COM-Datei kann erzeu~t.werd~n, wenn sie mit org 100h organ1sler:t 1st.
(-)
(-)
Beendet sekundaeren BeJehlsprozessor (Siehe COMMAND)
Bereitet die Festplatte vor. Die Bedienung ist menuegesteuert. Anschi. ist FORMAT abzuarbeiten.
!A7150: siehe 11. Festplatten-Einrichtung
[I] "String" [File .•. ] Durchsucht alle Zeilen aus File oder stdin nach String ("" ist ") und sen-
Schalter det dann nach stdout (Such-Filter):
[d:] [I]
ohne Zeile, wenn String enthalten IC Anzahl. der Zeilen, die String
enthaelt IN Zeile, wenn String enthalten;
zusaetzlich relative Zeilennummer IV Zeile, wenn String nicht enthalten
Formatisiert Diskette im Laufwerk d: Schalter
IS Kopiert Systemdateien Erzeugt Datentraegername einseitig, sonst zweiseitig
IV 11 14 18
!A7150:
40 Spuren im 80-spurigen Laufwerk 8 Sektoren pro Spur, sonst 9
fuer Festplatte siehe Kapitel 11.
*GRAFTABL (-) Laedt erweiterten Grafik-Zeichensatz
*GRAPHICS [Ptyp][/] Ptyp Schalter
IB
*JOIN
*KEYBxx
*LABEL
MKDIRIMD
IR dl: d2:Path
dl: ID (-)
(-) xx entspricht:
FR GR UK
Cd: ]Name
[d]
Cd: ]Path
!A7150:
Druckt grafischen Bildschirm Druckertyp (COLORllcOLOR4IGRAPHICS)
Hintergrundfarbe Inverse Ausgabe
Weist Laufwerk dl: dem Laufwerk d2: als Unterverzeichnis Path zu Hebt Zuweisung auf Zeigt Zuweisungen an
Ersetzt Tastaturprogramm bedeutet Tastaturbelegung:
franzoesisch deutsch englisch
KEYBGR/KEYBDR nicht erforderlich
Setzt Datentraegername (max.ll Zeichen)
Ausgabe Datentraegername_
Erstellt ein neues Verzeichnis
- 11 -
*MODE
*MORE
PATH
Legt Betriebsmodus fest fuer LPT#[:)[r)f,[v)[,P)) -Drucker
t[,f)[,T) -Bildschirm !A7150: fund T nicht implementiert
eOMn[:)b[,p[,d[,s[,P)))) -asynchrone Uebertragung
LPT#[:)=eOMn
# b
d f n p r s t
v P
T
Path[; ... ] (-)
[/)[?) Schalter
/B:n
/D:Name
/M:n
/Q:n
/S:n /U:n
/e
/T
-Paralleldruckerausg. umleiten auf asynchrone Uebertragung
Druckernummer (1 ... 3) Baudrate (1101150130016001
120012400 480019600) Datenbits (7 81' Standard: 7 Verschieben (R LI Adapternummer (1 2) Paritaet(NIOIE), Standard: E Zeichen pro Zeile (801132) Stoppbits (112) Typ (401S01BW401BWSole0401
1
eOSO) Zeilenvorschub (6 S) Wiea~rholt bei Zeitlimit
Fehler Testmuster
Uebertragungs-Filter: bildschirmgrosse Bloecke von stdin nach stdout
Definiert Pfade Anzeige der aktuellen Pfade
Druckt Dateien mit Print-Spooler
Groesse des Druckpuff~rs (Standard: 512 Bytes)
Einheiten-Name der Druckeinheit (Standard: PRN)
Anzahl der Taktgeberpulse, die fuer Ausgabe zur Verfuegung stehen
(Standard: 2) Anzahl der moeglichen Dateien in der Warteschlange (1 ... 32)
(Standard: 10) Zeit fuer Drucker (1 ... 255) Anzahl der Taktgeberpulse, die auf den Drucker gewartet wird
(Standard: 1) Loeschmodus
Streicht einzelne Dateien aus der Warteschlange
Setzt Druckermodus Fuegt vorhergehende und folgende gende Datei bis /e zu
Beendigungsmodus Loescht Warteschlange
! Schalter nur beim ersten Aufruf moeglich. Druckgeraete bei erstem Aufruf: LPTn, PRN, COMn, AUX, ...
- 12 -
"RECOVER
Sr,I :["-·j9 (- )
String
[? ]
d:
$$ $$b Sd $e
$9 $h $1 ~n $p $q ;;1: $'1
RENA1'1E iREN [ ? 1 F i1 e
*REPLACE [?] Path[/] Schalter
/A /P /R
*RESTORE d: [?][/1
R~1DIR 1 PD
Schalter /P /S
[d:JPath
Setzt Systemanfrage Stalldard-Systemanfrage
hnfraqe-Zeichenkette; folgende Metaf~lgen haben sonderbedeutung:
Zeichen $ ,Zeichenfolge CR LF
Zeichen 1 Datum Zeichen ESC (Ausgabe ESC-Folge
an Geraete, ANSI.SYS, ... ) Zeichen> Zeichen Backspace Zeichen< Standard-Laufwerk aktuelles Standard-Verzeichnis Zeichen = Uhrzeit Versionsnummer
Stellt Dateien wieder her, die einen defekten Sektor enthalten. Wiederherstellen von Dateien bei defektem Verzeichnis. Die neu entstandenen Dateien haben die Namen
FILEnnn.REC (nnn = 001 ... ).
Urnbenennen von Dateien eines Verzeichnisses.
innerhalb
Selektives Ersetzen von Dateien in Path
nur Dateien, die in Path fehlen Abfrage vor Kopieren einer Datei IGnoriert READ-ONLY-Attribut einer
- Datei in Path Durchsuchen aller Verzeichnisse in
Path; nicht mit /A zusammen Warten auf Diskettenwechsel
ERRORLEVEL bei Beendigung: 2 Datei nicht gefunden 3 Pfad nicht gefunden 5 Zugriffsverbot 8 fehlender Speicher
11 ungueltiges Kommando 15 ungueltiges Geraet 22 ungueltiges Betriebssystem
Speichert Dateien zurueck, die mit BACKUP gesichert wurden
Svstemanfrage vor Zutueckspeichern zurueckspeichern in allen
unterverzeichnissen ERRORLEVEL bei Beendigung:
o normal 1 keine Dateien gefunden 2 Zugriffsfehler 3 Bedienerabbruch 4 sonstiger Fehler
Loescht leeres Unterverzeichnis
- 13 -
COUNTRY=xxx Datums- und Schreibweise:
amerikanisch franzoesisch deutsch
Zeitformat in landesspezifischer
001 (Standard) 033 049
DEVICE=Filename Installation eines zusaetzlichen Einheitentreibers (siehe Kapitel 4.2.4); installierte Treiber haben Vorrang vor den rest implementierten des DCP
FCBS=m,n m (1 ... 255) Dateisteuerbloecke koennen maximal gleichzeitig eroeffnet sein (Standard 4)
FILES=x
n (0 ... 255, <m) Dateisteuerbloecke werden gegen Schliessen geschuetzt (Standard 0)
x (8 ... 255) maximal gleichzeitig eroeffnete Dateien (Standard 8)
LASTDRIVE=x x (A ... Z) ist der letzte gueltige Laufwerksbuchstabe (Standard E)
SRELL=File Ersetzen Befehlsprozessor COMMAND.COM durch File
4.2.4. Standard-Einheitentreiber
Zum Lieferumfang gehoeren folgende Treiber:
ANSI.SYS Ermoeglicht ESCAPE-Folgen (siehe Kapitel 6.3.) DEVICE=ANSI.SYS -
DRIVER.SYS Organisieren eines logischen DCP-Laufwerkes DEVICE=DRIVER.SYS /D:ddd [/1 Schalter
/D:ddd /T:ttt /S:ss /R:hh /C /N /F:f
physisches Laufwerk (O=A, ...• Spuren pro Seite (Standard 80) Sektoren pro Spur (Standard 9) Koepfe (Standard 2) Test auf Diskettenwechsel nichtwechselbare Magnetplatte Geraetetyp (0-160/180,320/360k,
128=Festplatte)
l-1,2~1, 2-720k)
MWINCHoSYS Organisieren mehrfacher DCP-Partitions (siehe 11.) DEVICE=MWINCR.SYS
VDISK.SYS Organisieren eines virtuellen DCP-Laufwerkes DEVICE=VDISK.SYS bbb sss ddd Wer~e (dezimal; sie werden korrigiert, wenn sie mit der Spelchergroesse unvertraeglich sind)
bbb Groesse in kBytes' (1 ... ) sss Sektorgroesse (512) ddd Bauptverzeichnis-Eintraege(2.0.5l2,Standard 64) Das virtuelle DCP-Laufwerk wird im RAl'! angelegt.
- 16 -
50 Funktionsrufe ================ 5.1. Unterbrechungen
Unterbrechung F E R (F=Funktion,E=Ein-,R =Rueckgabewerte)
iot 5h
int lOh
Bildschirm-Druck-Funktibn (BP retten)
Bildschirm-Service AH = 00 Setzen Mode
AR
AB
AH
AR AH AB
AR
AH
AH
AR
AR
AR
A.H
AB
AL = 00 - 40x25 B&W, 02 - 80x25 B&\-J, 04 - 320x200 Color, 06 - 640x200 B&W
01 Setzen Cursor-Typ
01 - 40x25 Color 03 - BOx25 Color 05 - 320x200 B&W
CH Bits 4-0 Start Linle, Bit 5 Blink CL Bits 4-0 End-Linie
02 Setzen Cursor-Position DR,DL = Reihe,Kolumne (0,0 BH Seite (0 bei Graphik)
03 Lesen Cursor-Position BH Seite
05 06 07
DH,DL = Reihe,Kolumne CH,CL = Cursor-Typ
Auswahl aktive Seite in (AL) Rollen aktive Seite hoch und tief
oben,links)
AL CH,CL = DH,DL = BH
Zeilenzahl (0 loescht Fenster) Reihe,Columne links oben Reihe,Columne rechts unten Attribut einzurollende Reihe
08 BH
Lesen Zeichen/Attribut von Cursorpos. Seite
AL = Zeichen AH = Attribut
09 Schreiben Zeichen/Attribut auf Curserpos. BH t Seite CX Anzahl AL Zeichen BL Attribut
OAh Schreiben Zeichen auf Cursorposition BH Seite CX Anzahl AL Zeichen
OBh Setzen Color Palette BR Paletten Farbe BL Farbwert
aCh Schreiben Dot DX,CX = Reihe,Kolumne AL = Farbwert
ODh Lesen Dot DX,CX = Reihe,Kolumne
AL = Farbwert OEh
AL BL BH
OFh
Schreiben ASCII-Teletype Zeichen Vorderg Seite (
Lesen aktuel AL Mode
ündfarbe im Graohik-Modus m Alpha-Modus) . en Status
AR Anzahl der Kolumnen BH aktive Seite
- 17 -
int llh
int 12h
int 13h
int 14h
int 16h
int 17h
int lAh
Geraete-Ausstattungs-Service AX = <15 •.. ,0>: Bit 15,14 Anzahl der Drucker
11-9 Anzahl der seriellen Interfaces 7,6 Anzahl der Laufwerke (0=1, ... ) 5,4 Initial Video Mode(1=1,2=3,3=2) 3,2 Groesse Planar RAM in 16kBytes o 1 wenn IPL von Diskette
Speichergroesse-Service AX = Speichergroesse in KBytes
Disketten-Service AR 00 Reset AR 01 Lesen Status nach (AL) AR 02 Lesen und AR 03 Schreiben und AR 04 Vergleichen und AH 05 'Formatieren
AL Sektoranzahl CH Spur (0 •.. ) CL Sektor (1 ..• ) DH Zylinder (0 •.• ) DL Geraet, (0 •.. ) ES:BX Pufferadresse (ID-Felder bei Format)
CF = 1 wenn Fehler, dann AR = Status
Service serielle Schnittstelle AH = 00 Initialisieren
AL = <76543210>: Bit 7-5 Baudrate (000=110; 001=150;
010=300; 011=600; 100=1200;101=2400; 110=4800;111=9600)
4,3 Paritaet (OO,lO=N;Ol=O;ll=E) 2 Stoppbits (0=1;1=2) 0,1 Wortlaenge (10=7Bit;11=8Bit)
AH 01 Senden Zeichen aus (AL) AH 02 Empfangen Zeichen in (AL) AB 03 Lesen Status nach (AX)
Tastatur AH 00
AH 01
AH = 02
Service Lesen naechstes Zeichen nach (AL)
AH = Scan-Kode Test auf verfuegbares Zeichen nach (AL/AH)
ZF = 1 kein Ze4chen verfuegbar o (AX) Zeichen verfuegbar
Lesen Tastatur Flag nach (AL) (siehe 6.7.)
Drucker-Service DX Printer Nummer (0 ... )
AH 00 Sende ein Zeichen von (AL) AL =1 wenn Fehler (Time out)
AR 01 Initialisieren AB 02 Lesen Status nach (AH)
Datum/Uhrzeit-Service AH 00 Lesen Systemzeit
CX:DX = Zaehler (CX hoeherwertiger Teil) AL = 0, wenn kein 24-Stunden-Ueberlauf
AR 01 Setzen Systemzeit aus (CX:DX)
- 18 -
int ICh
int- IFh
int 20h
int 21h
int 22h
int 23h
int 24h
int 25h int 26h
int 27h
int 28h
int 2Fh
Uhr-Unterbrechung (18.2 mal pro Sekunde)
Zeiger auf Grafik-Zeichentabelle (Kodes 128 ... 255)
Programm beenden (vorzugsweise Systemfunktion 4Ch) CS = Segment-Adresse d~s PSP
Systemfunktions-Sammelunterbrechun9 AR = Funktionsnummer (welteres siehe 5.2.)
Terminate-Adresse
CTRL-C-Adresse
Critical-Error-Adresse Bei Eintritt AR <76543210>:
Bit 7 O-Plattenfehler 5 l-I9norieren erlaubt 4 l-Wlederholung erlaubt 3 I-Abbruch erlaubt
2,1 Puffer 00 - DCP 10 - Verzeichnis 01 - FAT 11 - Daten
o O-lesen, I-schreiben BP:SI zeigt auf Einheitentreiber-Kopf Auf dem Stack von oben Register vor Ruf:
IP,CS,FL,AX,BX,CX,DX,SI,DI,BP,DS,ES,IP,CS,FL Bei Rueckkehr mit iret DCP-Behandlung setzen:
AL = 0 Fehler ignorieren 1 Operation wiederholen 2 Programm mit int 23h beenden 3 Fehlerhaften Systemruf abbrecpen
Absolutes Disk-Lesen und Absolutes Disk-Schreiben AL = Geraete-Nummer (0 = A, ... ) CX = Anzahl zu uebertragender Sektoren (1 ... ) DX = Logische Startsektornummer(O = Boot-Sektor) DS:BXPufferadresse
Bei Rueckkehr befindet sich noch das Flagregister auf dem Stack! Alle Register (ausser Segmentreg.) sind zestoert.
Resident beenden DX = Programmende-Adresse
Maximale Groesse 64 KBytes - Die Unterbrechungsvektoren 22h, 23h und 24h werden
auf DCP-Behandlung zurueckgespeichert - Vorzugsweise Systemfunktion 3lh benutzen
2Eh reserviert fuer DCP
Multiplex~Unterbrechung AH Multiplex-Nummer
Von DCP benutzt fuer residente Teile von Olh PRINT 02h ASSIGN lOh SHARE B7h APPEND
Von DCP reserviert OOh 7Fh Fuer Anwendungen frei COh FFh
- 19 -
AL Funktion (Bei Rueckkehr CP=1 ist AX Status) Von Dep reserviert F8h .. FFh
OOh Installationsstatus Ruec~kehr AL = OOh nicht installiert
Olh nicht installierbar FFh installiert
PRINT besitzt zusaetzlich folgend~ Funktionen: Olh Eingliedern Druckdatel
DS,DX Zeiger auf 1 BYTE 0 I DWORD Zeiqer auf PEadname
02h Loeschen Druckdatei -DS:DX Zeiger auf Pfadname
03h . Loeschen alle Druckdateien 04h Warten und Status
Rueckkehr DX Fehler-Zaehler DS~Sl Zeiger auf DLuckschlan~e,
jeder Eintrag ist 64 B~tes lang, der letzte be g1nIlt mit O.
05h Ende Stacus
int 30h ... 3Fh reserviert fuer Dep
5.2. Systemfunktionen ueber \nt 21h
Numerisch geordnet
nie Systemfunktionen sind in deL funkticnellen Ordnung naeher erlaeutert. [x] bezeichnet die jeweilige Gtuppe,
OOh [1 J Programm beenden, kein Beel:digungskode Olh [2] Eingabe von stdin mit 'CTRL-C'-Test 02h [31 Ausgabe auf stdout mit 'CTRL-C'-Test 03h [5] Eingabe von stdaux mit Warten 04h [51 Ausgabe auf stdaux 05h [5] Ausgabe auf stdprn 06h [4] (DL=OFFh) Eingabe von Konsole mit Warten 06h [4] (DL sonst) Ausgabe auf Konsole 07h [2] Eingabe von stdin ohne Echo 08h [8] Eingabe von stdin ohne Echo. mit 'C'i'HL-C'·-'l'esL 09h [3J Drucken Zeichenkette OAh [8] Einlesen Zeichenkette OBh [81 Abfrage Eingabestatus mit 'CTRL-C'-'j'esf_ OCh [8] Loeschen Eingabepuffer u. Funktion Ol,06.U7,08,OAh [uren ODh [6] Plattensteuerung initialisieren, Puffer vergessen OEh [6] Standardlaufwerk einstellen OFh [7J OeEfnen Datei lOh [71 Schliessen Datei 11h [7] Suchen ersten Dateinamen 12h [7] Suchen naechsten Dateinamen l3h [7] Loesehen Datei 14h [7] Naechsten Satz lesen ISh [7] Naeehsten Satz schreiben 16h [7] Erzeugen Datei 17h [7] Umbenennen Datei 19h [6] Laufwerksnummer abfragen lAh [6] Setzen Datenuebertragungsbereich DTA 1Bh [6] Abfrage Dateizuordnungstabelle ( ) ['21,(;e3 '.;e[2,el-ICh [6] Abfrage Dateizuordnungstabelle (FAT) beliebiges Gerael
- 20 -
21h 2211 23h 24h 25h 261', 27h 213h 28tl 29h 2Ah 2Bh 2Ch 2Dh 2Eh 2Fh 30h 31h 33b 35h 361', 3311 39h 31\11 3Bh 3eh 3Dh 3Et! 3Fh 40h 41h 4211 43h '14h 45h 46h Ll7h 48b 49h 4Ah 4Bh 4Ch 4Dh 4Eh 4Fh 54h 5Gh - ab 57h 59h SAh 5Bh :)Ch - aL 5Eh 5Fh 62h - aL f)7h 68h
Elflz21nen
Lesen Sehre System-Datum Lesen System-Uhrzeit Schreiben System-Uhrzeit Setzen/Ruecksetzen Vergleichsschalter Abfrage Datenuebertrag~n9sbereich (DTA) Lesen DCP-Versionsnummer Beenden Prozess und resident bleiben [KEEP) Lesen/Setzen 'CTRL-C'-Status Lesen Unterb~echungsvektor Lesen Platteninformationen Lesen/Setzen 1andesspezifische Informationen Erzeugen Unterverzeiehnis IMKDIR) Loeschen leeres Unterverzeichnis (RMDIR) Wechseln Unterverzeichnis (CHDIR Erzeugen Date mit Laenge 0 ( Oeffnen Datei Sehliessen Datei Lesen ~on Datei oder Geraet Schreiben auf Datei oder Geraet Loeschen Datei (UNLINK) Setzen Lese/Sehreibzeiger (LSEEK) Lesen/Setzen Dateiattribute Geraetes (IOCTL Wechseln Zugri ( Ueb,ernehmen Zugriffs\<lort ( Bestimmen aktuelles Verzeichnis Reservieren Speicherplatz Freigeben reservierten SpeiCherplatz Veraendern reservierten Speicherplatz (SETBLOCKI f"ar]en/Allsfuehren eines programms (EXEe) Beenden eines Prozesses (EXIT) Lesen Beendigungskode eines Subprozesses (WArT) Suchen ersten Dateinamen (FIND FIRST) Suchen naechsten Dateinamen (FIND NEXT) Lesen Vergleichsstatus
71 Umbenennen Datei Svstem-Version 3bOO verfuegbar:
19] Lesen/Setzen Uhrzeit und_Dat~rn der DateierzeuguDg [1] Lesen erweiterte Fehlerintormationen [7] Erzeugen temporaere Datei [7J Erzellgen neue Datei [7] Sperren/Fre Dateizugriff
System-Vers ion 3 ~ verfuegbar ~ 17] AL=O) Lesen Maschinenname (7) zwerkuncerstuetz~ng [1] Lesen Prcgramm-Segment-P efix-Adresse {PS~) stem-Version 3.30 verfuegbar 71 Setzen Zugriffswort-Anza 1 7] Ausliefern Datei (COMMIT
- 2l
Funktionell geordnet
Funktion Parameter Rueckgabe
[1] Programm-Steuerung
OOh
26h
31h
33h
4Bh
4Ch
4Dh
59h
62h
Programm beenden, kein Beendigungskode CS = Segment-Adresse des PSP (-)
Programmaufruf (PSP) erzeugen DX = Segment-Adresse (-)
Beenden Prozess und resident bleiben (KEEP) AL = Rueckgabekode (-) DX = Zu reservierender Speicher in
Paragraphen (16 Bytes-Einheiten) Lesen/Setzen 'CTRL-C'-Status
AL = 00 Lesen DL = Status 01 Setzen
DL = Status, wenn Setzen (O=OFF,l=ON) Laden/Ausfuehren eines Programms (EXEC)
(Naehere Beschreibung am Ende dieses Kapitels) Beenden eines Prozesses (EXIT)
AL = Rueckgabekode ' (-) _Lesen Beendigungskode eines Subprozesses (WAIT)
(-) AX = Rueckgabekode Lesen erweiterte Fehlerinformationen (siehe 6.5.)
BX = 0 AX Fehlerkode BH = Fehlerklasse BL = Aktion CH = Ort
Lesen Programm-Segment-Prefix-Adresse (PSP) (-) BX = Segmentadresse PSP
[2] Konsole-Steuerung
Olh
07h
08h
OAh
OBh
Eingabe von stdin mit 'CTRL-C'-Test (-) AL = Zeichen
Eingabe von stdin ohne Echo (-)
Eingabe von (-)
AL = Zeichen stdin ohne Echo, mit 'CTRL-C'-Test
AL = Zeichen
OCh
Einlesen Zeichenkette DS:DX = Zeiger auf I-Puffer (-)
Abfrage Eingabestatus mit. 'CTRL-C'-Test (-) AL =
Loeschen Eingabepuffer u. Funktion 01, 06, AL = Funktion (1, 6, 7, 8, OAh) AL = DL = Zeichen,' wenn Ausgabe
[3) Bildschirm-Steuerung
02h Ausgabe auf stdout mit 'CTRL-C'-Test DL = Zeichen
09h Drucken Zeichenkette DS:DX = Zeiger auf $-Kette
[4) Direkte Konsole-Steuerung
06h Direkte Ein-/Ausgabe auf Konsole
(-)
(-)
DL OFFh Eingabe AL = O •.. OFEh Zeichen, wenn Ausgabe
- 22 -
FFh Zeichen vorh. 00 nichts vorh. 07, 08 , OAh rufen Zeich~n, wenn Eing.
Zeichen, wenn Eing.
[5) Andere Ein/Ausgabefunktionen
03h
04h
05h
Eingabe von stdaux mit Warten (-)
Ausgabe auf stdaux DL = Zeichen
Ausgabe auf stdprn DL = Zeichen
AL = Zeichen
(-)
(-)
[6] Allgemeine Platten-Funktionen
ODh
OEh
19h
lAh
IBh
ICh
2Eh
2Fh
36h
54h
Plattensteuerung initialisieren, Puffer vergessen (-) (-)
Standardlaufwerk einstellen DL = Geraetenummer (O=A, •.. )
Laufwerksnummer abfragen (-)
Setzen Datenuebertragungsbereich DS:DX = Zeiger auf DTA
AL
AL (DTA)
(-)
Geraeteanzahl
Geraetenummer (O=A)
Abfrage Dateizuordnungstabelle (FAT) (-) -
des laufenden Geraetes AL = Sektoren/Cluster CX = Bytes/Sektor DX = Anzahl der Cluster DS:BX = Zeiger auf FAT beliebiges Geraet wie lBh
'Abfrage Dateizuordnun'gstabelle (FAT) DL = Geraetenummer
(O=Standard,l=A, .•. ) Setzen/Ruecksetzen Vergleichsschalter
AL = Vergleichsschalter (-) (l=ON,O=OFF)
Abfrage Datenuebertragungsbereich (DTA) (_) ES:BX = Zeiger auf DTA
Lesen Platten informationen DL = Geraetenummer
(O=Standard,l=A, ... )
Lesen Vergleichsstatus (-)
AX
BX CX DX
AL
Sektoren/Cluster -1 Geraet n. bereit Verfuegbare Cluster Bytes/Sektor Anzahl der Cluster
Vergleichsstatus (O=OFF,l=ON)
[7) Datei Ein/Ausgabe-Funktionen
OFh Oeffnen Datei DS:DX = Zeiger auf FCB
lOh Schliessen Datei
llh
12h
13h
DS:DX = Zeiger auf FCB
Suchen ersten Dateinamen DS:DX = Zeiger auf FCB
Suchen naechsten Dateinamen DS:DX = Zeiger auf FCB
Loeschen Datei DS:DX = Zeiger auf FCB
- 23,-
AL
AL
AL
AL
AL
00 geoeffnet -1 nicht geoeffnet
00 gefunden -1 nicht gefunden
00 gefunden -1 nicht gefunden
00 gefunden -1 nicht gefunden
00 ge10escht -1 nicht gefunden
14h
ISh
16h
I7tl
21h
22h
23h
24h
2711
28h
29h
3Ch
3Dh
Naechsten Satz lesen DS;DX Zeiger auf FCB
Naechsten Satz schreiben DS:DX = Zeiger auf FCB
Erzeugen Datei DS:DX = Zeiger auf FCB
Umbenennen Datei DS:DX = Zeiger auf FCB
Einzelnen Satz lesen DS:DX = Zejger auf FCB
Einzelnen Satz schreiben DS:DX = Zeiger auf FCB
Dateigroess e abfragen DS:DX =Zeiger auf FCE
AL
AL
AL
AL
I\L
AL
AL
Satz fuer wahlfreien Zugriff auswaehlen DS:DX = Zeiger auf FCB (-)
Mehrere Saetze lesen CX = Anzahl der Saetze DS:DX = Zeiger auf FCB
Mehrere Saetz~ schreiben CX = Anzahl der Saetze (I ... ) DS:DX = Zeiger auf FCB
AL
AL
00 01 02 03
00 01 02
00 -1
00 -1
00 01 02 03
00 01 02
00
-1
= 00 01 02 03
00 01 02
gelesen EOF, keine Dar;,n DTA zu klein EOF, teilw. Daten
geschrieben Platte voll DTA zu klein
erzeugt nicht erzeugt
umbenannt nicht urnbenannt
gelesen EOF, keine Daten DTA zu klein EOF,teihJ; Daten
geschrieben Diskette voll DTA zu klein
Eintrag gefunden (FCE aktuell) nicht gefunden
gelesen EOF, keine Da,ten DTA zu klein EOF,teilw. Daten
geschrieben Diskette voll. DTA zu klein
Dateinamen zergliedern (PARSE) DS:SI Zeiger auf Textzeile AL = 00 keine Joker ES:DI Zeiger auf FCB-Bereich 01 Joker AL <76543210>: Modus -1 Geraet ungueltig'
Bit 7-4 0 DS:SI Zeiger auf 1. 3 I-Erweiterung Zeichen nach Name 2 I-Dateinarne ES:DI = Zeiger auf 1. I I-Geraeteeintrag Byte des FCB o I-Fuehrende Trennzeichen
Erzeugen Date] mit Laenge 0 (CRBAT) CX = Dateiattribut DS:DX = Zeioer auf Pfadname
Oeffnerl Da ei _. DS:DX Zeiger auf Pfadname AL = < 6543210>: Zugriffskode
B t 7 Fortsetzen O-uebernommen I-privat,
24 -
AX = (CF=O)Zugriffswort (CF=I)Fehleikode
AX (CF=O)Zugriffswort (CF=l)Fehlerkode
3Eh
3Fh
40tl
41h
42h
43h
45h
46h
4Eh
4IFh
56b
5Ah
SEh
Bit 6-4 Teilung OOO-kompat bel OOl-exklus v lesen/schreiben OlO-exklus v schre~ben . Oll-exklus v lesen 100-nich~ exklusiv
Bit 2-0 Zugriff OOO-lesen DOI-schreiben DIO-lesen/schreiben
Schliessen Datei BX = Zugriffswort
Lesen von Datei oder Geraet BX = Zugriffswort CX = Bytesanzahl DS:DX = Zeiger auf DTA
Schreiben auf Datei oder Geraet BX = Zugriffswort CX = Bvtesanzahl DS:DX ; Zeiger auf DTA
Loeschen Datei (UNLINK) DS:DX = Zeiger auf Pfadname
Setzen Lese/Schreibzeiger (LSEEK)
AX
AX
AX
Al{
(CF=l)FE:hlerkode
(CF=Q)Bytesanzahl (CF=l)Fehlerkoce
{CF=O)Bytesanz~hl (CF=l)Fehlerkoae
(CF=I)Fehlerkode
BX Zugriffswort AX {CF=l)Fehlerkode CX: DX Bytes-Offset (CX [lOeherw.-) sons t . . AL Methode DX:AX = neue POS~tlCHl
o ab Dateibeginn (DX hoeherwertlg) 1 ab laufender Position 2 ab Dateiende
Lesen/Setzen Dateiattribute DS:DX = Zeiger auf Pfadname AL Funktion
CX Wechseln
BX
00 Lesen 01 Setzen Attribut, wenn AL
ZugriffsvJOrt (DUP) = Zugriffswort
01
AX
Uebernehrnen Zugriffswort (FORCDUP) BX = Zugriffswort CX = zweites Zugriffswort
Suchen ersten Dateinamen (FIND FIRST)
Al{
CX AL
ICF=l)Fehlerkode sonst At t [ibut, ,,,enn 00
(CF=O)neues Zugriff~wort (CF=lIFehlerkoae
AX (CF=l)Fehlerkode
DS:DX = Zeiger auf voll- AX (CF=l)Fehlerkode staendigen Pfadnamen
CX = Suchattribut Suchen naechsten Dateinamen (FIND NEXT)
DTA von vorherg. 4Eh/4Fh gesetzt AX Umbenennen Datei
(CF=l)Fehlerkode
!CF=l)Fehlerkode DS:DX = alter Pfadname ES:DI = neuer Pfadname
Erzeugen temporaere Datei DS:DX = Zeiger auf Name
eines Pfades, endend mit \
CX Attribut Erzeugen neue Datei
DS:DX Pfadname CX = Attribut
- 25 -
AX
A~ = (CF=l)Fehlerkode sonst
DS:DX = vol1st. pfadname
AX (CF=O)Zugriffswort (CF=lIFehlerkode
5Ch
67h
68h
[8]
39h
3Ah
3Bh
47h
Sperren/Freigeben Dateizugriff AL = Funktion AX = (CF=l)Fehlerkode
(O=Sperren,l=Freigeben) BX Zugriffswort CX:DX Offset (CX hoeherwertiger Teil) SI:PI = Laenge (SI hoeherwertiger Teil)
Setzen Zugriffswort-Anzahl BX = Anzahl gewuenschter Zugriffsworte
(maximal 64K) Ausliefern Datei (COMMIT)
BX Zugriffswort
Verzeichnis-Funktionen
Erzeugen Unterverzeichnis (MKDIR) DS:DX = Zeiger auf Name AX =
Loeschen leere~ Unterverzeichnis (RMDIR) DS:DX = Ze1ger auf Name AX
Wechseln Unterverzeichnis (CHDIR) DS:DX = Zeiger auf Name '
Bestimmen aktuelles Verzeichnis DS:SI Zeiger auf 64-Byte
Bereich
AX
AX
(CF=I)Fehlerkode
(CF~I)Fehlerkode
(CF=I)Fehlerkode
(CF=l)Fehlerkode wenn CF=O
DL Geraetenummer (O=Standard,l=A, ... )
DS:SI = vOllstaendiger Pfadname .
[9] Datum/Zeit-Funktionen
2Ah
2Bh
2Ch
2Dh
57h
Lesen System-Datum (-)
Schreiben System-Datum CX = Jahr (1980 .•. 2099) DH = Monat .(1 .•. 12) DL = Tag (1 ••• 31)
Lesen System-Uhrzeit (-)
Schreiben System-Uhrzeit CL Minuten CH = Stunden DL = Hundertstel Sekunden DH = Sekunden
Lesen/Setzen Uhrzeit und Datum der AL Funktion (Olesen,l=setzen) BX Zugriffswort CX = Zeit, wenn setzen DX = Datum, wenn setzen
[10] Speicherorganisation-Funktionen ------------------------------------48h Reservieren Speicherblock
BX = Anzahl ge~lUenschter Paragraphen (1 Paragraph = 16 Bytes)
- 26 -
AL Tag (O=Sonntag .... ) CX Jahr (1980 •.• 2099) DH Monat (1 ..• ) DL Tag im Monat (1 ..• )
AL 00 gueltig -1 ungueltig
CL Minuten CH Stunden DL 1/100 Sekunden DH Sekunden
AL 00 gueltig -1 ungueltig
Dateierzeugung AX = (CF=I)Fehlerkode
sonst CX Zeit, wenn lesen DX Datum, wenn lesen
AX = BX = AX:O
(CF=l)Fehlerkode (CF=l)groesstmoegl. Paragraphenanzahl = (CF=O) Zeiger auf Speicherblock
49h Freigeben reservierter Speicherblock ES = Segmentadresse des AX = (CF=l)Fehlerkode
freizugebenden Blockes 4Ah Veraendern reservierter Speicherblock (SETBLOCK)
BX Anzahl gewuenschter AX (CF=l)Fehlerkode Paragraphen BX = groesstmoegliche
ES Segmentadresse des Blockes Paragraphenanzahl
[11] Unterbrechungs-Funktionen
25h
35h
Unterbrechungsvektor setzen AL = Unterbrechungsnummer DS:DX = Unterbrechungsvektor
Lesen Unterbrechungsvektor AL = Unterbrechungsnummer
(-)
ES:BX Vektor
[12] Vers ions-Funktion
30h Lesen DCP-Versionsnummer (-) AL
AR Hauptnummer Unternummer
[13] Direkte Ein/Ausgabe-Funktion
44h Geraetesteuerung (IOCTL) DS:DX = Daten oder Puffer AX = (CF=l)Fehlerkode o. BL Geraet (O=Standard) oder -1, sonst BX Zugriffswort Anzahl uebertragener CX Bytesanzahl Bytes AL Subfunktion:
Oll - Abfrageisetzen von Kanalinformationen 2 3 Empfang Senden Steuerzeichen auf Zeichengeraet 4 5 Empfang Senden Steuerzeichen auf Blockgeraet 6 7 - Pruefen von Empfangs-ISende-Bereitschaft
8 - Blockgeraet Medium wechselbar? 9 logisches Geraet lokallentfernt?
OAh - Zugriffswort lokal I entfernt? OBh - WiederhOIUngjn bei Zugriffsverletzung OCh\ODh - Zeichen- Blockgeraet IOCTL-Funktion OEh OFh - GetlSet logisches Geraet
[14] Landesinformations-Funktion
38h Lesen/Setzen landesspezifische DS:DX = 34-Byte-Puffer DX OFFFFh (Setzen) AL 0 Standard (Lesen) \
Landeskode « 255) OFFh (> 255), dann
BX = Landeskode
Informationen AX = (CF=l)Fehlerkode
sonst DS:DX = Puffer ak~uell BX = Landeskode
EXEC Funktion (int 21h, Funktion 4Bh)
Parameter: Rueckgabe: AL = 00 Laden mit PSP und Ausfuehren AX = (CF=l)Fehlerkode
03 Laden ohne PSP (Overlay) DS:DX = Zeiger auf vollstaendigen pfadname (O-Kette) ES:BX = Zeiger auf Parameterblock Vor Aufruf mittels FU,nktion 4Ah genuegend Speicher freigeben. - Funktion AL = 00:
Die Vektoren 22h und 23h sollten auf Adresse nach EXEC gesetzt
- 27 -
werden, das sichert die PortfuehruDg des aufrufenden Programms. Parameterblock:
WORD Segmentadresse der zu uebergebenden OOh uebernimmt Umgebung des aufrufenden
DWORD Zeiger auf Zeile, die in PSP+80h eingetragen werden
DleJORD DWORD
Umgebung:
soll. Zeiger Zei.ger
auf ungeoeffneten FeB fuer FCBl des neuen'PSP auf ungeoeffneten FCE fuer FCB2 des neuen PSP
Folge von O-Ketten in der enthalten vordefinierte parameter~ Der vordefinierte ParaITleter iehnet den Befehlsprozessor. Auf die letzte O-Kette folgt O. Danach ~teht ein Wort mit der Anzahl erqaenzender O-Ketten, die erste dieser Ketten ist eine Kopie des·vollst. Pfadnamens aus DS,DX.
Im aufgerufenen Programm sind alle geoeffneten Dateien des aufrufenden Programms verfuegbar. Bei Rueckkehr sind alle Register einschI. 55 lind SP zerstoert!
- Funktion AL = 03: Parameterblock:
WORD Ladeadresse in Segmentfurm v/GRD Relokationsfzol;tor; gleich der Ladeadresse
60 Daten und Kodes
6.1. Allgemeine Strukturen
- Begriffe O-Kette Zeichenkette. mit 0 (OOh) abgeschlossen Pfadname O-Kette, die vollstaendigen Pfadname $-Kette Zeichenkette. mit S (24h) abgeschlossen I-Puffer Puffer der Laenge n+2 Bytes
1. Byte Laenge n (ungleich 0 2. Byte eingelesene Zeichenzahl ohne beendendes CR (ÜDhl n Bytes Datenpuffer
- Verzeichnis-Eintrag (Entry)
Offset Laenge
OOh 8
08h 3 OBh 1
OCh 10 16h 2
19h 2
lAh 2 ICh 4
Bedeutung
Dateiname . Byte 0 ist Statusbyte des Eintrages:
OOh frei E5h aeloescht 2Eh Unterverzeichnis -
Erweiterung Attribut
Olh Read only 02h 04h System Datei 08h lOh Unterverzeichnis 20h
Reserviert Veraenderungszeit <15 ... 0>:
Hidden Datei Datentraegername Arcbivbit
Bit 15-11 Stunde. binaer 10-5 Minute. binaer 4-0 2-Sekunde. binaer
Veraenderungsdatum <15 ... 0>: Bit 15-9 Jahr (0-1980)
8-5 Monat (1 ... ) 4-0 Tag (1. .. )
Startcluster (2 ... ) Dateigroesse in Bytes
- 28 ..
- Datei Steuerblock (FCB)
Offset Laenge
-07h -06h -Olh
OOh Olh 09h OCh OEh lOh l4h 16h 20h 2lh
1 S 1 1 B 3 2 2 4 2
10 1 4
Bedeutung
Kennzeichen erweiterter FCB (FFh) Reserviert Attribut Laufwerk (vor Oeffnen O=Stand~rd;nach Oeffnen O=A) Dateiname Dateierweiterung aktuelle Blocknummer logische Satzlaenge in Bytes Dateilaenge in Bytes Datum (Bit 0-4 Tag, S-B Monat, 9-lS"Jahr) Reserviert aktueller Datensatz innerhalb des akt. Blockes Datensatz-Nummer fuer wahlfreien Zugriff
- Programm-Segment-Prefix (PSP) (DS:O nach Programmstart)
Offset
OOh 02h 04h 05h OAh OEh 12h l6h 2Ch 2Eh 50h 53h 5Sh SCh 6Sh 6Ch BOh Blh BOh
Laenge
2 2 1 S 4 4 4
22 2
34 3 2 7 9 7
20 1
127 12B
Bedeutung
int 20h Instruktion Speichergroesse in Paragraphen Reserviert Ruf zu Funktionsdispatcher Terminate-Vektor Break-Vektor Error-Vektor Reserviert Zeiger zur Umgebung Re.serviert int 21h / ret far Instruktionen Reserviert FCBl Erweiterung FCBl FCB2 Erweiterung FCB2 Parameter Laenge Parameter Standard Disk Transfer Area (DTA)
6.2. Zeichendarstellung des Color/Grafik-Adapters
Adresse BBOOh:m Zeichen <7 •.. 0> BBOOh:m+l Attribut <7 ... 0> Attributbits: 7 Blink,6-4 Hintergrund,3 Intensiv,2-0 Vordergrund
Farben:<Rot,Gruen,Blau> Bit 0 bei S/W: Unterstrich
6.3. ESCAPE-Folgen
Wenn der Einheitentreiber ANSI.SYS installiert ist, stehen folgende ESCAPE-Folgen zur Ilerfuegung: (ESC steht fuer das Zeichen lBh, # steht fuer eine Dezimalzahl oder Standardwerte, Gross- oder Kleinschreibung ist zu beachten.) ESC[ #A CUU: Cursor nach oben ESC[#B CUD: Cursor nach unten ESC[#C CUF: Cursor nach rechts ESC[#D CUB: Cursor nach links ESC[#;#H CUP: Cursor auf position Zeile;Spalte
- 29 -
ESC[s ESC[u
ESC[6n ESC[#;#R ESC[2J ESC[K ESC[ #h
SCP: Speichern aktuelle Cursorposition RCP: Wiederherstellen gespeicherte Cursor
position DSR: CPR: ED: EL: SM:
Anforderung einer CPR-Folge Ausgabe Cursorposition auf Zeile;Spalte Loeschen Bildschirm Loeschen Zeile ab Cursorposition Setzen Bildschirmtyp
ESC[ #l ESC[#; ... #m
(# vgl. intlO: Setzen Mode) RM: Ruecksetzen SM (# wie SM) SGR: Setzen Zeichenattribute Die Attribut-Parameter koennen' sein:
Normal B&W 0 Intensiv 1 Unterstrich bei B&W 4 Blinken 5 Invers 7 Unsichtbar 8
Farben: Vordergrund Schwarz 30 Rot 31 Gruen 32 Gelb 33 Blau 34 Violett 35 Tuerkis 36 Weiss 37
Hintergrund 40 41 42 43 44 45 46
Tastaturzuweisung ESC[ #; ... #p 47
Der erste oder, wenn dieser Null, der zweite ASCII-Kode werden durch die ersetzt. Fuer # kann auch "string" werden.
erste und folgenden angegeben
6.4. Erweiterter ASCII-Kode
Bei Eingabe liefert der erste Kodes:
Funktionsruf 0,
3 16 ... 25 59 ..• 68 72 75 79 81 83 94 ... 103 114 116 118 120 ... 131
NUL ALT-Q,W,E,R,T,Y,U,I,O,P Fl. .. FIO Cursor up Cursor left End Page down DEL F21 ... F30 (CTRL-Fl .. ", CTRL-Prtsc CTRL-Advance Word CTRL-Page down ALT-l, ... 9,0,-,=
6.5. Erweiterter Fehlerkode
15 30 ... 38 71 73 77 80 82 84 ... 93 104 ... 113 115 117 119 132
der zweite folgende
SHIFT-TAB ALT-Z,X,C,V,B,M,N HOME Page up Cursor right Cursor down INS Fll •. F20 (SHIFT-Fl .. ) F31 ... F40 (ALT-Fl ... ) CTRL-Reverse Word CTRL-End CTRL-Home CTRL-Page up
Die Systemfunktion 59h liefert folgende Informationen: - Fehlerkode (Register AX)
1 Ungueltige Funktionsnummer 2 3 Pfad nicht gefunden 4 5 Zugriff verboten 6 7 Falscher Speicherkontrollblock 8
- 30 -
Datei nicht gefunden Zu viele offene Dateien Zugriffswort ungueltig Ungenuegender Speicher
9 11 13 16 18 20 22 24 26 28 30 32 34 35 50 52 54 56 58 60 62 64 66 68 70 71 72 82 83 85 87
Ungueltige Speicherblock-Adr. 10 Ungueltiges Format 12 . Ungueltiges Datum 15 Verzeichnis nicht loeschbar 17 keine weitere Datei 19 Unbekanntes Geraet 21, Unbekanntes Kommando 23 Ungueltige Strukturlaenge 25 Unbekanntes Medium 27 Papierende 29 Lesefehler 31 Zugriffsverletzung 33 Ungueltiger Datentraegerwechsel Ungueltiger FCB 36 Netzwerkanfrage ungueltig 51 Doppelter Name im Netzwerk 53 Netzwerk beschaeftigt 55 Zuviele Kommandos 57 Unkorrekte Netzwerkantwort 59 inkompatibler Antwortadapter 61 kein Platz fuer Druckdatei 63 geloeschter Netzwerkname 65 unkorrektes Netzwerkqeraet 67 Netzwerkname zu gross 69 Zeitweise unterbrochen Netzwerkanfrage nicht angenommen Umadresierung unterbrochen 80 Verzeichniseintrag nicht moeglich int24-Fehler 84 doppelte Umadressierung 86 ungueltiger Parameter 88
- Fehlerklasse (Register BH) 1 Ressourcenueberschreitung 3 Ermaechtigung
2 4 6 8
5 Geraet 7 Anwendungsprogramm 9 Ungueltiges Format
11 Medium 13 Unbekannt
Aktion (Register BL) 1 Wiederholung 3 Anwender 5 unmittelbares EXIT • 7 wiederholt nach Eingriff
- --Ort (Register CHI I unbekannt 3 Netzwerk 5 Speicher
10 12
2 4 6
2 4
Ungueltige Umgebung Ungueltiger Zugriffskode Ungueltiges Geraet Ungleiches Geraet Diskette schreibgeschuetzt Geraet nicht bereit Datenfehler (CRC) Suchfehler Sektor nicht gefunden Schreibfehler Allgemeiner Fehler L'Ock-Verletzung
Pufferueberlauf Entferntes Geraet unbekannt Netzwerkname unbekannt Geraet unbekannt Netzwerk Geraetefehler Netzwerkfehler Druck-Warteschlange voll geloeschte Druckdatei Zugriff abgeschlagen Netzwerkname nicht gefunden Drivergrenze ueberschritten
Datei existiert
zu viele Umadressierungen ungueltiges Passwort Netzwerkgeraetefehler
Zeitweise Situation IntErn Systemfehler Nicht gefunden Verschachtelt Bereits vorhanden
verzoegerte Wiederholung Abbruch ignoriert
Blockgeraet serielles Geraet
6.6. Steuerfunktionen der KonSOl-Eingabe
Fl F2 F3 F4 F5 F6
Kopieren ein Zeichen Kopieren bis Zeichen Kopieren bis Zeilenende Loeschen bis Zeichen Kopieren Zeile Ausgabe CTRL-Z (auch Einyabeende von CON:)
- 31 -
CTRL-C CTRL-P CTRL-S CTRL-Z CTRL-ALT-CE CTRL-ALT-DEL CTRL-ALT-Fl CTRL-ALT-F2
Abbruch laufender ßefehl Echoausgabe auf Drucker ein/aus Unterbrechung Bildschirmausgabe Eingabeende von Konsole
!A7150: Neustart Monitor (siehe Kapitel 7) Ur laden des Systems Amerikanische Tastaturbelegung Deutsche oder nachgeladene Tastaturbelegung
!A7150: Amerikanische und deutsche Tastaturbelegung sind ohne nachgeladenes Tastat.urprogramm (KEYBGR) verfuegbar.
6.7. Wichtige Speicheradressen
- Allgemeine Daten 0040:0010h (Wort) Equipment-Flag 0040:0013h (Wort) Speichergroesse in KBytes
- Tastatur-Daten 0040:0017h (Byte)
J INS STATE CAPS STATE NUM STATE SCROLL STATE ALT SHIFT CTL SHIFT LEFT SHIFT RIGHT SHIFT
0040:001Bh-(Byte) INS SHIFT CAPS SHIFT NUM SHIFT SCROLL SHIFT HOLD_STATE
- Bildschirm-Daten
Tastatur BOh 40h 20h lOh OBh 04h 02h Olh
Tastatur BOh 40h 20h lOh OBh
Flag mit den Bits INSERT Zustand gewechselt CAPS LOCK Zustand gewechselt NUM LOCK .Zustand gewechselt SCROLL LOCK Zustand gewechselt ALTERNATE SHIFT gedrueckt CONTROL SHIFT gedrueckt LEFT SHIFT gedrueckt RIGHT SHIFT gedrueckt Flag 1 mit den Bits INSERT Zustand aktiv CAPS LOCK Zustand aktiv NUM LOCK Zustand aktiv SCROLL LOCK Zustand aktiv CONTROL NUM LOCK gewechselt
0040:0049h (Byte) laufender CRT Mode 0040:004Ah (Wort) Anzahl Kolumnen 0040:004Ch (Wort) Groesse Bildschirm-Puffer in Bytes 0040:004Eh (Wort) Startadresse des Bildschirm-Puffers (OBBOOh) 0040:0050h (B Worte) B Kursor-Positionen 0040:0060h (Wort) laufender Kursor-Mode 0040:0062h (Byte) aktive Seite 0040:0065h. (Byte) laufender Mode 0040:0066h (Byte) laufende Color-Palette
- System-Uhrzeit 0040:006Ch (Wort) Uhrzeit-Zaehler, niederwertiger Teil 0040:006Eh (Wort) Uhrzeit-Zaehler, hoeherwertiger Teil 0040:0070h (Byte) Zaehler-Ueberlauf
- Print screen Status 0050:0000h (Byte) O~aktiv, I-nicht aktiv, 255-Fehler
- Single drive Modus 0050:0004h (Byte) O-Geraet A, I-Geraet B aktiv
- Zeichengenerator Zeichen OOh ... 7Fh im Grafikmodus FOOO:FA6Eh (Byte) Tabelle mit B Bytes je Zeichen
- 32 -
7. Monitor (nur A7150) ====================== Nach Start des Rechners kann der ACT @it A abgebrochen werden, es meldet sich der Monitor. Aus DCP wird der Monitor mit CTRL-ALT-CE gestartet.
- Parameter: Address Length List Range
[Segment:]OffsetISegmentregister:Offset Bereichslaenge ( ••• lOOOOh) Liste Value/Value/ ... Bereich Address I startAddresslendAddress I
startAddress#Length Value Byte oder Wort hexadezimal
Vor jedem Kommando kann ein dezimaler Fortsetzungsfaktor stehen.
- Wichtige Monitor-Kommandos:
Kommando Wirkung
A
AC An B
Anzeige der Partition-Tabelle des \'1inchesterlaufwerkes Desaktivieren alle Partitions
- Aktivsetzen Partition n (1 .•• 4) Ur laden von (1.)Diskette oder
Dx Range[,] (2.)aktiver Partition
Anzeige Speicherbereich als
Sx Address[=List]
x = (-) Byte x = W Wort x = X Assemblertext Einschalten Fortsetzung des Kommandos; Wird als naechstes Kommando nur, eingegeben, wird Dx fort'iJesetzt. AnzeIge und Aendern als x (-) Byte x = W Wort
B. Zeileneditor (EDLIN)
- Aufruf: EDLIN File [/B] /B 'CTRL-Z' wird als Textzeichen behandelt.
Nach abgeschlossener Editierung steht die urspruengliche Datei noch mit der Erweiterung BAK zur Verfuegung. Eine Zeile kann bis 253 Zeichen lang sein.
- Editiertasten: DEL ESC Fl od. -> F2 c F3 F4 c F5 F6 INS txt INS
- Editierbefehle:
Loeschen ein Zeichen Auf'iJeben Zeile ' KopIeren ein Zeichen Kopieren bis Zeichen c Kopieren bis Zeilenende Loeschen bis Zeichen c Fixieren Zeile CTRL-Z Einfuegen txt
Zeilennummern.n werden angegeben: d absolute Zeile (1 •.• 65529) -d # Zeile nach letzter Zeile +d
laufende Zeile
- 33 -
relativ vor laufender Zeile rel~tiv nach laufender Zeile
Mehrere Befehle getrennt. Fuer angegebene Wert.
auf einer Befehlszeile weggelassene Parameter
werden mit wirkt der
Semikolon alternativ
Befehl
n [nlmoegliche Zahl]A
[nb 1 • ] , [ ne 1 . ] , nz , [w 11] C
[nbi.] , [ne Inb]D E [ni ]1 [nb!-ll],[nel+lllL [nb . 1 , [ne 1 • ] , nzM
Wirkung
Einstellen Anfuegen~
Kopieren
Loeschen Ende Einfuegen Anzeige Verschieben
der zu editierenden Zeile von n Zeilen aus Datei an Textende von Zeile nb bis ne w-mal vor nz von Zeile nb'bis ne EDLIN mit Speichern Datei einer neuen Zeile vor n Bereich von nb bis ne der Zeilen von nb bis ne vor nz
[nbl+l],[ne]P Seitenweise Anzeige (23 Zeilen) Q Verlassen EDLIN ohne Abspeichern [nbl+l],[nel#][?]R[stxt]F6[etxt] Ersetzen im Bereich von nb bis ne
jeden Text stxt durch etxt;
[nbl+l],[nel#][?]S[stxt] Suchen ? bewirkt Rueckfrage
[nl·]TFile
im Bereich von nb bis ne nach stxt; ? bewirkt Rueckfrage
Einkopieren der Datei File vor Zeile n [n moegliche Zahl]W Speichern ab Zeile 1 auf Datei
Ein fehlender stxt- oder etxt-Parameter im R- oder S-Befehl wird vom vorhergehenden R- oder S-Befehl uebernommen.
9. Werkzeuge zur Programmierung (MASM, LIB, LINK, CREF)
9.1. Allgemeines
- Eingabeparameter werden abgefragt, Eingabedateien stehen.
Schalter koennen hfnter
Trennzeichen: , trennt Parameter zu aufeinander folgenden Abfragen + trennt Parameter zur gleichen Abfrage
beendet die Abfrage; Fuer alle weiteren Parameter werden Standards angenommen.
- Aufrufmoeglichkeiten: NAME ' NAME [/] Parami [, ... ] NAME @rFile
9.2. Macro Assembler MASM
- Abfragen:
Abfrage Abfrage Abfrage meter)
Source filename [.ASM]:
ueber stdin/stdout (Konsole) aus Kommandozeile aus rFile (je Zeile ein Para-
Object filename [source.OBJ]: Assembler-Quellfile erzeugtes Objektfile Assemblerliste Cross~Referenz-File
Source listing [NUL.LST]: Cross reference [NUL.CRF]:
- Schalter: /A Segmente werden in alphabetischer Reihenfolge sortiert. /D erzeugt Assemblerliste von Pass 1 und Pass 2 des
Assemblers. Zum Finden von Phasenfehlern geeignet. Listenname erforderlich, sonst nur Ausgabe der Fehlermeldungen von Pass 1 auf stdout.
- 34 -
/E
/ML
/MX
/0 /R /X
Emulation des Numerikprozessor-Kodes. Beim Linken wird eine mathematische Bibliothek benoetigt. keine automatische Konvertierung von Klein- in Grossbuchstaben (fuer Kopplung mit hoeheren Programmiersprachen). Gross- und Kleinbuchstaben werden nicht unterschieden ! In PUBLIC's und EXTRN's keiQe automatische Konvertierung von Klein- in Grossbuchstaben. Hat Vorrang vor /ML, wenn beide angegeben. Angabe aller Zahlen in der Liste oktal. Erzeugung von Numerikprozessor-Kode. hebt Unterdrueckung der FALSE-Zweige in der Liste auf, .SFCOND, .LFCOND, .TFCOND in der Quelle haben Vorrang t
9.3. Bibliothekar LIB
- Abfragen: Librar~ name [.LIB]: Operatlons:
zu bearbeitende Bibliothek auszufuehrende Operationen Liste der Moduln List file [NUL.LST]:
Output Library [name.LIB]: erzeugte Bibliothek
Operationen: + objectname - modulname
-+ modulname * modulname
*- modulname
- Schalter: /PAGESIZE:n
Anfuegen an die Bibliothek Loeschen aus der Bibliothek Ersetzen des Moduls durch gleichnami~es Objekt Kopieren des Moduls in ein gleichnamlges Objekt Kopieren des Moduls in ein gleichnamiges Objekt mit Entfernen des Moduls aus der Bibliothek
Modulbeginn an Vielfachem von n Bytes ab Fileanfang, n muss Potenz von 2 sein (Standard: 16, entspricht Paragraphengrenze)
- Eingabe von LIB name; bewirkt eine Ueberpruefung aller Moduln. Sonst erzeugt LIB eine neue Bibliothek mit standardmaessig dem gleichen Namen und gibt 'der alten Bibliothek den Typ .BAK.
9.4. Verbinder LINK
- Abfragen: Object modules [.OBJ]: Run file [object 1.EXE]: 'List file [NUL.MAP]: Libraries [.LIB]:
- Schalter:
Objektfile(s) erzeugtes lauffaehiges File Liste benoetigte Bibliotheksfiles
Schalter koennen soweit abgekuerzt werden, wie sie noch eindeutig unterscheidbar bleiben. Schalterwerte koennen, angegeben werden
dezimal dddd, oktal 00000, hexadezimal Oxhhhh oder OXhhhh.
/CPARMAXALLOC:num maximal angeforderte Anzahl Paragraphen im Speicher beim Laden des Programms (1. .. 65535)
/DOSSEG Sortieren der Segmente in der ,Reihenfolge: 1. Segmente mit Klassennamen-Ende 'CODE' 2. alle anderen Segmente ausserhalb der
group 'DGROUP'
- 35
/DSALLOCATE
/HIGH
/LINENUMBERS
/MAP
/NODEFAULTLIBRARY
/NOGROUPASSOCIAT
/NOIGNORECASE
/OVERLAYINT:num
/PAUSE
/SEGMENTS:num
/STACK:size
3. alle Segmente der 'DGROUP' in der Folge:
Segmente der Klasse 'BEGDATA' alle anderen Segmente der 'DGROUP' Segmente der Klasse 'BSS' Segmente der Klasse 'STACK'
Daten werden im Datensegment an den oberen Adressen eingetragen. Das Programm wird an das obere Speicherende geladen. Zeilennummern werden mit in die Liste eingetragen, wenn sie im Objekt enthalten waren (bei hoeheren Programmiersprachen) Auflistung der PUBLIC-Symbole in der Liste, sonst nur Segmente enthalten in den Objekten angegebene Standardbibliotheken werden nicht automatisch gesucht. Programme werden entsprechend frueheren Linkerversionen verbunden. ~ Gross- und Kleinbuchstaben werden unterschieden. Andere Nummer der Ueberlagerungs-LadeUnterbrechung (Standard: 03Fh) Pause vor Bchreiben .EXE-File (Diskettenwechsel) maximal zulaessige Anzahl Segmente im Programm (1 ••• 1024, Standard: 128) Stackgroesse in Bytes (Standard: 2 kBytes)
9.5. Cross-Referenz-Generator CREF
- Abfragen: Cross reference [.CRF]: Listing [filename.REF):
10. Testhilfen (MAPSYM, SYMDEB)
10.1. Symboldatei-Generator MAPSYM
Aufruf: MAPSYM
/1
[/1) File.MAP File.MAP datei Ausgabe ueber die
10.2. Symbolische Testhilfe SYMDEB
- Aufruf: SYMDEB [symFile) [File [Argument))
.CRF-File vom MASM lesbare Symbolliste
ist von LINK erzeugte Listen-
zusaetzlicher umwandlung ,
Informationen
File Testobjekt, Erweiterungen .COM, .EXE oder beliebig. symFile Ein oder mehrere Symboldateien zu den Moduln von
File. Als Symboldatei wird alles vor File ausgewertet.
Argument Liste von Parametern, die an File uebergeben werden
- Parameter: * alle Listenelemente Arglist Argumentliste
- 36 -
Addr Byte Drive File Length List Port Range String Value
- Operatoren unitaer:
+ BY DW NOT OFF POl PORT SEG WO WPORT
binaer: +
* /
- Befehle:
Adresse [Segment:)Offset I Segmentregister:Offset 1 ... 2 Hexadezimalzahlen Laufwerknummer (O=A ... ) wahlweise Laufwerk, Name und Erweiterung Bereichslaenge ( ... lcrOOOh) Werteliste als Byte ode~ String 8- oder 16-Bit-Adresse Bereich startAddr endAddr I startAddr L Length Zeichenfolge als 'Folge' oder "Folge" 1 ... 4 Hexadezimalzahlen
fuer Ausdruecke
Vorzeichen niederwertigstes Byte aus einer Adresse Doppelwort aus einer Adresse Einerkomplement Offset eines Operanden Zeiger ein Byte von einem Ein-/Ausgabe-Port Segment eines Operanden niederwertigstes Wort aus einer Adresse ein Wort von einem Ein-/Ausgabe-Port
Addition Subtraktion MuH ipl ikation Division Segmentueberschreitung
AND MOD OR XOR
bitweise UND Modulo bitweise ODER bitweise
Exclusiv-ODER
Befehl Parameter Wirkung
A [Addr)
BP [n) Addr [Pass)
Ex List 1 *
BI,
C Range Addr
Dx [Addr I Range)
D [Addr I Range)
Eingabe als Assemblerbefehl
Unterbrechungspunkt Nummer n (n =' 0 ... 9) auf Addr setzen; Pass = Durchlaeufe bis Unterbrechung (0 ... 65535)
Unterbrechungspunkte x = C loeschen
D ausschalten E einschalten
Unterbrechungspunkte auflisten
Vergleich von Speicherbereichen
Anzeige x = A
B W D S L T
Speicherbereich in ASCII Bytes und ASCII Words Double~lOrds 4 bytes und Short real 8 bytes und Long real 10 bytes und Ten bytes real
Anzeigeformat wie letzter D-Befehl
- 37 -
Ex Addr [List)
F Range List
Eingabe x = A
B W D S L T
von Werten in den Speicher als ASCII Byte Word Doubleword Short real Long real Ten bytes real
Fuellen von Range mit Werten aus List
G [=startAddr) [breakAddr) Ausfuehrung ab startAadr bis breakAddr oder Unterbrechungspunkt oder Programmende
H Value 1 Value 2
I Port
Berechnung hexadezimal Summe und Differenz
Lesen ein Byte von Port
L [Addr [Drive Sector Num)) Laedt Num Sektoren (1 ..• 80h) ab Sector (0 ••• ) von Drive (O=A) nach Addr
L [Addr)
M Range Addr
N Arglist
o Port Byte
P [=startAddr] [Num)
Q
R [Register [[=)Value))
S Range List
Sx
T [=startAddr) [Num]
U [Range)
Laedt Datei, die von FCBl im PSP beschrie-' ben wird, ab Addr oder CS:IOO (bei .COM und .EXE immer); (BX:CX) enthaelt Anzahl gelesener Bytes bzw. bei .EXE die absolute Prögrammgroesse
Verschieben eines Speicherbereiches von Range nach Addr
Formatiert PSP in CS:O; die ersten beiden Argumente formatieren FCBl und FCB2, die gesamte nach N stehende Arglist steht als Parameter ab CS:81, die Zeichenanzahl in CS:80
c
Ausgabe von Byte ueber Port
Schrittweise Ausfuehrung von einem oder Num Befehlen; INT und CALL = 1 Befehl
Beendigung von SYMDEB
Anzeige undjoder Flags: 0 D I = 1 OV DN EI = 0 NV UP DI
Aenderung der Register S Z A P C NG ZR AC PE CY PL NZ NA P,O NC
Suchen von List in Range
Setzen Anzeigemodus fuer Befehlsanzeige: x = + Quelltextzeilen
aus dem Speicher disassembliert & beides
Schrittweise Ausfuehrung von einem oder Num Befehlen; INT und CALL eingeschlossen Anzeige als Assemblertext '
W [Addr [Drive Sec tor Num)) Schreibt Num Sektoren ab Sector auf Drive
- 38 -
W [Addr)
x [*)
Schreibt' Datei, die von FCBl im PSP beschrieben wird, ab Addr oder CS:IOO; (BX:CX) en,thaelt die Anzahl zu schreibender Bytes; Eine Datei mit der Erweiterung .EXE kann nicht geschrieben werden!
Anzeige Name und Ladesegment der aktiven [aller) Symboltabelle[n)
X? [symFile!) [Segmentname:) [Symbolname) adresse(n)
Anzeige der Symbol-
XO [symFile!)
Z Symbol Value
? Expression
* [String)
[Systemcommand)
x Drive
Eroeffnen des Symbolfiles
Zuweisen des Wertes an das Symbol
Berechnen des Wertes
Kommentar
Aufruf eines System-Befehls Anzeige der aktuellen Quelltextzeile
Umleitung x = <
>
der Ein-jAusgabe Eingabe von Geraet Ausgabe auf Geraet Ein- und Ausgabe ueber Geraet
11. Festplatten-Einrichtung (MWINCH, nur A7150) =============================================== 11.1. Funktionen von MWINCH
Die Auswahl der Funktionen ist vOl1staendig menuegefuehrt: Definieren eines beliebi~en Festplatten-Typs, Physisches Formatieren elnschliesslich Defektspur-Behandlung, Physisches Vergleichen auf der Festplatte, Einrichten bis zu 4 Partitions (FDIS~-Funktionen), Logisches Formatieren (FORMAT-Funktionen), Installieren ei'nes Betriebssystems in einer DCP-Partition, Vorbereiten von Partitions fuer fremde Betriebssysteme, Veraendern von Partitiongroessen, Aktiv-jNichtaktivsetzen von Partitions, Wechsel des Partitiontyps, Stapelarbeit mittels Befehls-Datei.
11.2. Aufruf
MWINCH [befehlsdatei) [jB) [jC) [jV) befehlsdatei Datei mit Steuerkommandos zur Abarbeitung einer
Standard-Kommandofolge fuer MWINCH. jB Rueckkehr zu DCP mit 'CTRL-C' moeglich. Diese
Moeglichkeit des Verlassens ist nur in Ausnahmefaellen anzuwenden, in der Regel sollte ein Neustart erfolgen.
jC Menue auf Farbbildschirm in Farbe jV Die Clustergroesse kann in RjW- und RjO-Parti-
tions variiert werden (Kompatibilitaets-abweichung !)
- 39 -
f'lWINCH benoetigt auf der Diskelte zum Einrichten einer DCP-Partition mit System die Dateien
MWINCH.SYS Geraetetreiber fuer die R/W- und R/O-Partitions CONFIG.SYS Konfigurationsdatei, die in die DCP-Partition
kopiert wird (sollte die Zeile DEVICE=MWINCH.SYS enthalten)
AUTOEXEC.NEW neue AUTOEXEC-Datei, die unter dem Namen AUTOEXEC.BAT in die DCP-Partition kopiert wird.
11.3. Partition-Typen
DCP-Partition
R/W-Partition
R/O-Part i ti on
xxx-Partition
Ein Wechsel des der Partition.
DCP-System-Partition, max. 32 MByte; es kann nur eine solche System-Partition existieren. Daten-Partition fuer die aktive DCP-Partition, max. 32 MByte; jede R/W-Partition wird als ein zusaetzliches logisches Laufwerk behandelt. Jede R/W-Partition kann zu einem beliebi~en Zeitpunkt mittels MWINCH in eine R/O-Partitlon umgewandelt werden. Danach sind keine Schreiboperationen mehr moeglich. Eine Menueauswahl bietet die Moeglichkeit, Partitions fuer andere Betriebssysteme einzurichten.
Partition-Typs hat keinen Einfluss auf den Inhalt
11.4. Befehlsdatei
- FOlgende Steuerzeichen kontrollieren die Abarbeitung: #s Start einer Folge von Kommandoworten. Die Kommando
worte entsprechen den Eingaben im Dialog, wobei der Anfangsbuchstabe ausgewertet wi rd. Eine Folge k'ann nicht laenger als eine Zeile sein.
#w Ausgabe eines Textes (Hinweise, Warnungen) auf dem Bildschirm. Texte koennen maximal 8 Zeilen umfassen. Der Text beginnt erst in der naechsten Zeile der Befehlsdatei !
#e Ende einer Fol<;le von Kommandowort·en oder eines Textes Hinter #w und #e kann bls zum Ende der Zeile Kommentar eingefuegt werden.
- Innerhalb einer Folge von Kommandoworten sind folgende Steuerzeichen moe~lich:
#d Fuer die Eingabe wird der vorgegebene Standardwert verwendet.
#0 Eine Eingabe wird von der Tastatur erwartet. #m Ab dieser Stelle erfolgen die Eingaben innerhalb des
gesamten Untermenues von der Tastatur. Nach Verlassen des Untermenues wird die Befehlsdatei weiter abgearbeitet.
#f Der Rest der Kommandofolge wird nur dann abgearbeitet, wenn noch eine Partition auf der Festplatte eingerichtet werden kann.
#p Der Rest der Kommandofolge wird nur dann abgearbeitet, wenn die aktuelle Partition noch nicht eingerichtet ist. Die aktuelle Partition wird vom Anfang der Befehlsdatei an durchgezaehlt (1 .. 4).
- 40 -
11.5. System-Konfiguration
Wenn MWINCH eine DCP-System-Partition eingerichtet hat, sind zusaetzlich zum System im Stammverzeichnis folgende Dateien vorhanden:
CONFIG.SYS Konfi<;luration mit d€m Befehl DEVICE=MWINCH.SYS MWINCH.SYS EinheItentreiber fuer die R/W- und R/O-Partitions MWINCH.EXE Einrichtungs- und Wartungsprogramm
Wenn MWINCH.SYS nicht konfiguriert wird, kann DCP nur auf die aktive DCP-Partition zugreifen.
12. EXE-Datei
Die Verschieblichkeit des Lademoduls (das eigentliche Programm) ist durch einen vorangestellten programmkopf (Header) gewaehrleistet:
- Programmkopf
Offset
OOh 02h 04h
06h
08h OAh
OCh
OEh lOh 12h 14h 16h ISh lAh
Laenge
2 2 2
2
2 2
2
2 2 2 2 2 2 2
Inhalt
4Dh, 5Ah; EXE-Signatur Laenge des Lademoduls mO,d 512 (Di vrsionsrest) Laenge des Lademoduls in 512-Byte-Einheiten (pages) Anzahl der Verschiebe-Eintraege (relocation items) Groesse des Programmkopfes in 16Byte-Einheiten Mindestanzahl der zusaetzlichen 16Byte-Einheiten Hoechstanzahl der zusaetzlichen 16Byte-Einheiten; gesetzt durch CPARMAXALLOC bei LINK Verschiebung des SS-Registers Anfan~swert des SP-Registers negatIve Pruefsumme aller Worte der Datei Anfangswert des IP-Registers Verschiebung des CS-Registers . Offset der Verschiebungstabelle vom Dateibeginn Overlay-Nummer (0 ist residenter Teil) langen Eintraegen. ~eder Eintrag zeigt auf eine verschiebliche Adresse im Lademodul.
- Auf die Verschiebungstabelle folgt der ei~entliche Lademodul.