Noch gibt es unter den standardmäßigen DOS-Befehlen keine Möglichkeit, Informationen über die Größe von Dateien eines bestimmten Typs zu erhalten. FSIZE.DEB ermittelt mit den DOS-Funktionen »Find First File« und »Find Next File« die zum übergebenen Parameter passenden Dateien und addiert ihre Größen. Anschließend zeigt FSIZE das Ergebnis, eine 32-Bit-Zahl, auf dem Bildschirm an. Ebenso wie SPACE.DEB verwendet FSIZE hierzu eine spezielle Routine, die wir Ihnen im Anhang A (»Für den Programmierer«) genauer erläutern. Die Zeile »DB 91« steht übrigens für XCHG AX,CX (siehe »Bug in DEBUG« auf Seite ???). Im Unterschied zum DIR-Befehl, müssen Sie bei FSIZE den gewünschten Dateityp genau angeben. »FSIZE \Verzeichnis« ist also nicht möglich, »FSIZE \Verzeichnis\*.*« funktioniert jedoch. Wenn Sie keinen Parameter angeben, verwendet das Programm sämtliche Dateien des aktuellen Verzeichnisses. »FSIZE« ist also gleichbedeutend mit »FSIZE *.*«.
Name: | FSIZE.DEB |
Funktion: | Ermittelt die Größe der spezifizierten Dateien. |
Übersetzung: | DEBUG <FSIZE.DEB |
Prüfsumme: | F95B |
Anwendung: | FSIZE [Lw:][Verzeichnis\Datei(en)]ohne Parameter: Größe sämtlicher Dateien im aktuellen Verzeichnis |
Einschränkungen: | ./. |
A MOV DX,164 ;100 MOV BX,[80] ;103 AND BX,FF ;107 JZ 114 ;10B MOV [BX+81],BH ;10D MOV DX,82 ;111 MOV CX,27 ;114 MOV AH,4E ;117 XOR SI,SI ;119 XOR DI,DI ;11B INT 21 ;11D JB 12D ;11F ADD DI,[9A] ;121 ADC SI,[9C] ;125 MOV AH,4F ;129 JMP 11D ;12B MOV DX,SI ;12D MOV AX,DI ;12F MOV BP,A ;131 CALL 13E ;134 MOV DX,15E ;137 MOV AH,9 ;13A JMP 15B ;13C MOV CX,AX ;13E MOV AX,DX ;140 XOR DX,DX ;142 DIV BP ;144 DB 91 DIV BP ;147 XCHG CX,DX ;149 PUSH CX ;14B MOV CX,DX ;14C OR CX,AX ;14E JZ 155 ;150 CALL 13E ;152 POP DX ;155 ADD DL,30 ;156 MOV AH,2 ;159 INT 21 ;15B RET ;15D DB " Byte$*.*",0 RCX 68 NFSIZE.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot