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




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.BATmuss esanstelle von
COPY LOGBUCH.SYS+LOGBUCH.TMPnatürlich
COPY LOGBUCH.SYS+LOGBUCH.TMP LOGBUCH.SYSheißen.
Fehler 2: In Einfaches Logbuch für DOS muss es wegen der Jahrtausendwende im Listing von
TIMEDATE.DEB, 12. Zeile von untenanstelle 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
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