Einfaches Logbuch für DOS

Als krönenden Abschluß möchten wir Ihnen zeigen, wie Sie dem PC zur Führung eines einfachen Logbuches erziehen können, in dem sämtliche Zeitpunkte, zu denen das System gestartet wurde, protokolliert werden. Voraussetzung ist natürlich, daß Ihr PC über eine batteriegepufferte Echtzeituhr verfügt. Da im Unterschied zu ATs auf XTs die Systemzeit erst per Zusatzprogramm auf den Wert der Echtzeituhr gesetzt werden muß, dürfen die Anweisungen zum Logbuch natürlich erst nach dem Zusatzprogramm zum Einsatz kommen:

IF EXIST \TMP\LOGBUCH.SYS REN \TMP\LOGBUCH.SYS *.TMP
TIMEDATE >\TMP\LOGBUCH.SYS
ECHO.>>\TMP\LOGBUCH.sys
COPY LOGBUCH.SYS+LOGBUCH.TMP
IF EXIST \TMP\LOGBUCH.TMP DEL \TMP\LOGBUCH.TMP

Damit die Bootzeiten rückwärts in die Datei LOGBUCH.SYS gelangen, plaziert der mit » + « kombinierte COPY-Befehl den aktuellen Zeitpunkt des Systemstarts jeweils an den Anfang des Logbuches. Dadurch haben Sie beim Auflisten mit »TYPE LOGBUCH.SYS« die jüngsten Daten gleich zu Beginn. Ein Booten von Diskette kann dieses Verfahren leider nicht registrieren.

Wollen Sie sich beim Booten lediglich Datum und Uhrzeit des letzten Systemstarts anzeigen lassen, können Sie die folgenden Zeilen in die AUTOEXEC.BAT übernehmen.

IF NOT EXIST \TMP\LASTBOOT.SYS GOTO SKIP
ECHO Letzter Systemstart:
TYPE \TMP\LASTBOOT.SYS
ECHO.
:SKIP
TIMEDATE >\TMP\LASTBOOT.SYS

Der Ordnung halber sollten Sie die wichtigsten temporären Dateien in einem ausschließlich dafür vorbehaltenen Directory sammeln. In unseren Beispielen verwenden wir stets »\TMP«.

Name: TIMEDATE.DEB
Funktion: Gibt das aktuelle Systemdatum gemeinsam mit der momentanen Uhrzeit aus.
Übersetzung: DEBUG <TIMEDATE.DEB
Prüfsumme: 0548
Anwendung: TIMEDATE
Einschränkungen: ./.
A
MOV AH,2A           ;100
INT 21              ;102
MOV DI,17C          ;104
INC DI              ;107
CMP By[DI-1],24     ;108
JNZ 107             ;10C
SUB AL,1            ;10E
JNB 107             ;110
MOV SI,15F          ;112
MOV AL,DL           ;115
CALL 153            ;117
MOV AL,DH           ;11A
CALL 153            ;11C
SUB CX,76C          ;11F
MOV AL,CL           ;123
ADD SI,2            ;125
CALL 153            ;128
MOV AH,2C           ;12B
INT 21              ;12D
MOV AL,CH           ;12F
ADD SI,2            ;131
CALL 153            ;134
MOV AL,CL           ;137
CALL 153            ;139
MOV AL,DH           ;13C
CALL 153            ;13E
MOV AL,DL           ;141
CALL 153            ;143
MOV DX,DI           ;146
CALL 14E            ;148
MOV DX,15D          ;14B
MOV AH,9            ;14E
INT 21              ;150
RET                 ;152
AAM                 ;153
XCHG AL,AH          ;155
ADD [SI],AX         ;157
ADD SI,3            ;159
RET                 ;15C
DB ", 00.00.1900 / "
DB "00:00.00,00 Uhr$"
DB "$Sonntag$Montag$"
DB "Dienstag$Mittwoch$"
DB "Donnerstag$"
DB "Freitag$Samstag$"

RCX
B9
NTIMEDATE.COM
W
Q

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

2 Kommentare

  1. Frank Kwirandt schreibt:
    28.02.2009, 20:20

    3 Fehler gefunden ;-)

    Hallo Herr Jannot!
    Ich finde ihre Seite mit den vielen kleinen Tools in Assembler toll, und kann ein paar Sachen davon gebrauchen. Ich habe auch ein paar Fehler gefunden, die ich Ihnen mitteilen will.

    Fehler 1: In Einfaches Logbuch für DOS, 4. Zeile in der AUTOEXEC.BAT muss es
    anstelle von
    COPY LOGBUCH.SYS+LOGBUCH.TMP
    natürlich
    COPY LOGBUCH.SYS+LOGBUCH.TMP LOGBUCH.SYS
    heißen.
    Fehler 2: In Einfaches Logbuch für DOS muss es wegen der Jahrtausendwende im Listing von TIMEDATE.DEB, 12. Zeile von unten
    anstelle von:
    DB “, 00.00.1900 / ”
    korrekt
    DB “, 00.00.20&0 / ”
    heißen.
    Fehler 3: In Aktuelles Tagesdatum in DOS ausgeben derselbe Fehler wie Fehler 2 in Zeile 29. Hier muss es
    anstelle von
    DB “, 00.00.00$”
    korrekt
    DB “, 00.00.&0$”
    heißen.

    Mit freundlichen Grüßen
    Frank Kwirandt

  2. TJ schreibt:
    28.02.2009, 21:14

    Hallo Frank,
    haben Sie vielen vielen Dank für die gute Nachricht, die mich sehr begeistert hat. Zwar erreichen mich alle Jahre wieder Leserbriefe zu diesem uralten Projekt. Aber Sie haben mit Ihren Korrekturen den Vogel abgeschossen. Das hat es seit 1989 nicht mehr gegeben ;-)
    Gerne werde ich mich bei Gelegenheit in aller Ruhe darum kümmern und Sie dabei entsprechend würdigen. Da ich morgen aber zur CeBIT nach Hannover fahre und zuvor noch andere Dinge zu erledigen habe, wird das ein paar Tage dauern.
    Bis dahin und viele beste Grüße!
    Thomas Jannot

Ihr Kommentar?

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>