Diskettenspeicher in DOS prüfen

Speziell in Stapeljobs mit Installationsanweisungen ist es oftmals wichtig, überprüfen zu können, ob zum Kopieren auf eine Diskette der Speicherplatz ausreicht. DSKSPACE vergleicht die als Parameter übergebene Zahl mit dem noch freien Speicherplatz auf dem angegebenen Laufwerk und übergibt das Ergebnis im Errorlevel. DSKSPACE können Sie auch als automatische Warnung dafür verwenden, daß sich die Speicherkapazität Ihrer Festplatte dem Ende zuneigt. Wenn z.B. nach der Zeile DISKSPACE C:500000 der ERRORLEVEL 1 aktiv ist, ist es höchste Zeit, die auf der Festplatte enthaltenen Daten mal wieder auszumisten. Die AUTOEXEC.BAT könnte dann auch automatisch in den Norton-Commander oder ein ähnliches Programm verzweigen, mit welchem Sie auf komfortable Weise Ihre Platte nach überflüssigem Datenschrott durchforsten können.

Name: DSKSPACE.DEB
Funktion: Überprüft, ob auf einem Laufwerk noch genügend freier Speicher ist.
Übersetzung: DEBUG <DSKSPACE.DEB
Prüfsumme: CAD4
Anwendung: DSKSPACE [Lw:]#IF ERRORLEVEL 255: Ungültiges Laufwerk IF ERRORLEVEL 1: Zuwenig Speicher IF ERRORLEVEL 0: Genügend Speicher # ganze Zahl, mit der die noch freie Speichermenge

verglichen werden soll

Einschränkungen: ./.
A
XOR SI,SI           ;100
XOR DI,DI           ;102
MOV BP,5D           ;104
MOV DX,DI           ;107
MOV BX,SI           ;109
MOV CX,9            ;10B
ADD SI,BX           ;10E
ADC DI,DX           ;110
LOOP 10E            ;112
ADD SI,AX           ;114
ADC DI,0            ;116
MOV AL,[BP]         ;119
INC BP              ;11C
SUB AL,30           ;11D
JNB 107             ;11F
MOV DL,[5C]         ;121
MOV AH,36           ;125
INT 21              ;127
CMP AX,FFFF         ;129
JZ 13C              ;12C
MUL CX              ;12E
MUL BX              ;130
CMP DX,DI           ;132
JNZ 138             ;134
CMP AX,SI           ;136
MOV AL,0            ;138
ADC AL,0            ;13A
MOV AH,4C           ;13C
INT 21              ;13E

RCX
40
NDSKSPACE.COM
W
Q

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