Inhalte von Dateien zeigen

Solange Sie sich nur Dateien anschauen wollen, die außer bewußt verwendeten Zeilenvorschüben und Tabulatoren keine besonderen Steuercodes enthalten, kommen Sie mit dem internen DOS-Befehl TYPE ganz gut aus. Die meisten Formate, z.B. Binärdateien wie COM- oder EXE-Programme, produzieren auf dem Bildschirm jedoch ungewolltes Chaos und endloses Piepsen. Drei Programme helfen Ihnen, alle möglichen Dateitypen in jeder beliebigen Form anzuzeigen: DTYPE- (Debug-Type), ATYPE- (ASCII-Type) und STYPE.DEB (Super-Type). Alle drei Programme lesen die angegebene Datei blockweise in den Speicher und zeigen sie in unterschiedlicher Form auf dem Bildschirm an.

DTYPE wandelt jede Datei in einen DEBUG-ähnlichen »Dump« um und beginnt am linken Bildschirmrand mit der Offsetadresse jeder Zeile. Dann folgen 16 zweistellige hexadezimale Zahlen in zwei Gruppen zu je 8 Byte. Am rechten Rand erscheint das dem ASCII-Zeichensatz entsprechende Äquivalent jedes zuvor angezeigten Hex-Codes. Problematische Steuerzeichen werden dabei durch einen Punkt ersetzt. Die Ausgabe dieses Listings können Sie problemlos in eine Datei umleiten.

ATYPE präsentiert die gewünschte Datei ohne Hex-Codes und Offsets, wobei auch hier kritische Steuerzeichen durch einen Punkt ersetzt werden. ATYPE entspricht damit bis auf die unterdrückten Steuerzeichen dem DOS-internen TYPE. Auch hier können Sie die Bildschirmausgabe in eine Datei umleiten.

STYPE dagegen zeigt den Inhalt der Datei im Unterschied zu D- und ATYPE.DEB nicht über das DOS, sondern auf maschinennäherer Ebene über BIOS-Funktionen an. Somit können nun endlich sämtliche Zeichen, die sich hinter den ASCII-Werten 0 bis 255 verbergen, dargestellt werden! Aus eben diesem Grund läßt sich die Ausgabe von STYPE allerdings nicht umleiten – weder in eine Datei, noch auf den Drucker.

Name: DTYPE.DEB
Funktion: Zeigt eine Datei als Hex- und ASCII-Dump auf dem Bildschirm an. Steuerzeichen werden unterdrückt.
Übersetzung: DEBUG <DTYPE.DEB
Prüfsumme: 7813
Anwendung: DTYPE Datei
Einschränkungen: ./.
A
CLD                 ;100
MOV BX,[80]         ;101
MOV By[BX+E081],0   ;105
MOV DX,82           ;10A
MOV AX,3D00         ;10D
INT 21              ;110
MOV BX,AX           ;112
JNB 11F             ;114
MOV DX,1A4          ;116
MOV AH,9            ;119
INT 21              ;11B
INT 20              ;11D
MOV DX,20E          ;11F
MOV CX,10           ;122
MOV AH,3F           ;125
INT 21              ;127
MOV CX,AX           ;129
JCXZ 11D            ;12B
PUSH BX             ;12D
PUSH CX             ;12E
MOV DI,1C8          ;12F
MOV AL,20           ;132
MOV CX,44           ;134
REPZ STOSB          ;137
MOV AX,A0D          ;139
STOSW               ;13C
POP CX              ;13D
MOV SI,20E          ;13E
MOV BX,1CA          ;141
LODSB               ;144
MOV [SI-13],AL      ;145
PUSH CX             ;148
MOV DI,1BA          ;149
MOV CX,7            ;14C
REPNZ SCASB         ;14F
JNZ 157             ;151
MOV By[SI-13],2E    ;153
POP CX              ;157
MOV AH,0            ;158
DIV By[1B9]         ;15A
ADD AX,3030         ;15E
CMP AL,39           ;161
JBE 167             ;163
ADD AL,27           ;165
CMP AH,39           ;167
JBE 16F             ;16A
ADD AH,27           ;16C
MOV [BX],AX         ;16F
ADD BX,3            ;171
CMP SI,216          ;174
JNZ 17B             ;178
INC BX              ;17A
LOOP 144            ;17B
MOV DX,1C1          ;17D
MOV CX,4D           ;180
MOV BX,1            ;183
MOV AH,40           ;186
INT 21              ;188
POP BX              ;18A
MOV SI,1C7          ;18B
MOV By[SI],30       ;18E
DEC SI              ;191
INC By[SI]          ;192
CMP By[SI],67       ;194
JNB 18E             ;197
CMP By[SI],3A       ;199
JNZ 1A1             ;19C
ADD By[SI],27       ;19E
JMP 11F             ;1A1
DB "Datei nicht "
DB "gefunden$",10
DB 7,8,9,A,D,1A,1B
DB "0000000"

RCX
C8
NDTYPE.COM
W
Q
Name: ATYPE.DEB
Funktion: Zeigt eine Datei als ASCII-Dump auf dem Bildschirm an. Steuerzeichen werden unterdrückt.
Übersetzung: DEBUG <ATYPE.DEB
Prüfsumme: 7927
Anwendung: ATYPE Datei
Einschränkungen: ./.
A
CLD                 ;100
MOV BX,[80]         ;101
MOV By[BX+E081],0   ;105
MOV DX,82           ;10A
MOV AX,3D00         ;10D
INT 21              ;110
JB 146              ;112
MOV BX,AX           ;114
MOV DX,200          ;116
MOV CX,800          ;119
MOV AH,3F           ;11C
INT 21              ;11E
MOV CX,AX           ;120
JCXZ 14D            ;122
PUSH CX             ;124
MOV SI,DX           ;125
LODSB               ;127
PUSH CX             ;128
MOV DI,164          ;129
MOV CX,7            ;12C
REPNZ SCASB         ;12F
JNZ 137             ;131
MOV By[SI-1],2E     ;133
POP CX              ;137
LOOP 127            ;138
POP CX              ;13A
PUSH BX             ;13B
MOV BX,1            ;13C
MOV AH,40           ;13F
INT 21              ;141
POP BX              ;143
JMP 119             ;144
MOV DX,14F          ;146
MOV AH,9            ;149
INT 21              ;14B
INT 20              ;14D
DB "Datei nicht "
DB "gefunden$"
DB 7,8,9,A,D,1A,1B

RCX
6B
NATYPE.COM
W
Q
Name: STYPE.DEB
Funktion: Zeigt eine Datei als ASCII-Dump auf dem Bildschirm an. Sämtliche Codes werden dargestellt.
Übersetzung: DEBUG <STYPE.DEB
Prüfsumme: A843
Anwendung: STYPE Datei
Einschränkungen: Die Ausgabe läßt sich nicht umleiten.
A 
CLD                 ;100
MOV BX,[80]         ;101
MOV By[BX+E081],0   ;105
MOV DX,82           ;10A
MOV AX,3D00         ;10D
INT 21              ;110
JB 155              ;112
MOV BP,AX           ;114
MOV DX,200          ;116
MOV BX,BP           ;119
MOV CX,800          ;11B
MOV AH,3F           ;11E
INT 21              ;120
JB 155              ;122
AND AX,AX           ;124
JZ 15C              ;126
MOV DI,AX           ;128
MOV SI,200          ;12A
MOV AH,F            ;12D
INT 10              ;12F
MOV BL,AH           ;131
LODSB               ;133
MOV AH,A            ;134
MOV CX,1            ;136
INT 10              ;139
MOV AH,3            ;13B
INT 10              ;13D
MOV AH,2            ;13F
INC DL              ;141
CMP DL,BL           ;143
JB 14E              ;145
MOV DL,0            ;147
INT 10              ;149
MOV AX,E0A          ;14B
INT 10              ;14E
DEC DI              ;150
JNZ 133             ;151
JMP 116             ;153
MOV DX,15D          ;155
MOV AH,9            ;158
INT 21              ;15A
RET                 ;15C
DB "Datei nicht "
DB "gefunden$"

RCX
72
NSTYPE.COM
W
Q

Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot