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