Transcript

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 Ar­beit 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 ver­wendet:

(-) 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 ueberschrei­ten.

- 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-Pro­zessors, Sle sind jederzeit verfuegbar. Externe Befehle befin­den 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 Ver­zeichnissen 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 Erwei­terung .COM oder .EXE und sind folglich im erweiterten Sinn externe Befehle.

- 7 -

Stapelverarbeitungs-Befehle: Sie werden vorzugsweise in Stapel­verarbeitungs-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 un­mittelbar nach dem Ur laden vorn Befehls-Prozessor abgearbeitet.

- Konfigurations-Befehle: Mit ihnen kann waehrend des Ur ladens die Systemkonfiguration in wesentlichen Teilen beeinflusst und er­wei tert werden. SOie bef inden sich ausschI iesslich in einer Da­tei 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 angespro­chen 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 BIN­oder COM-Datei bFile um. Die Erweite­rung .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

*PRINT

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: bildschirmgros­se 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 de­fektem Verzeichnis. Die neu ent­standenen 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 Laufwerksbuch­stabe (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 auf­rufenden 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 \'1inchester­laufwerkes 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 Fehlermel­dungen 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 Grossbuch­staben (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 File­anfang, 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 Standardbiblio­theken werden nicht automatisch gesucht. Programme werden entsprechend frueheren Linkerversionen verbunden. ~ Gross- und Kleinbuchstaben werden unter­schieden. Andere Nummer der Ueberlagerungs-Lade­Unterbrechung (Standard: 03Fh) Pause vor Bchreiben .EXE-File (Disketten­wechsel) 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 ausge­wertet.

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 be­schrieben wird, ab Addr oder CS:IOO; (BX:CX) en,thaelt die Anzahl zu schreiben­der 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 Aus­nahmefaellen 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-Parti­tion 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 Schreib­operationen mehr moeglich. Eine Menueauswahl bietet die Moeglichkeit, Partitions fuer andere Betriebssysteme einzu­richten.

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 einge­fuegt werden.

- Innerhalb einer Folge von Kommandoworten sind folgende Steuer­zeichen 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 abge­arbeitet.

#f Der Rest der Kommandofolge wird nur dann abgearbei­tet, wenn noch eine Partition auf der Festplatte eingerichtet werden kann.

#p Der Rest der Kommandofolge wird nur dann abgearbei­tet, wenn die aktuelle Partition noch nicht einge­richtet 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 zu­saetzlich 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-Ein­heiten Hoechstanzahl der zusaetzlichen 16Byte-Ein­heiten; 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.


Recommended