Zur Demonstration der »überdurchschnittlichen Intelligenz« eines PCs muß häufig ein Programm zur Ermittlung des Wochentages eines Kalenderddatums herhalten. WASIST.DEB zeigt den Wochentag zu einem Datum zwischen 1980 und 1999 an. Das Programm wandelt das als Parameter übergebene Datum vom ASCII-Format in das interne Datumsformat, um anschließend das Systemdatum auf diesen Wert zu setzen. Beim Auslesen des neugesetzten Systemdatums, erhält WASIST den entsprechenden Wochentag. Danach kann die Routine das Systemdatum wieder auf den alten Wert setzen und das Ergebnis anzeigen. Achten Sie bitte genauestens auf die richtige Anzahl der Leerzeichen bei der Auflistung der Wochentage im hinteren Teil des Listings. Vorsichtshalber haben wir Sie durch das Zeichen » ^ « ersetzt.
Name: | WASIST.DEB |
Funktion: | Zeigt den Wochentag eines Datums an. |
Übersetzung: | DEBUG <WASIST.DEB |
Prüfsumme: | 61FC |
Anwendung: | WASIST T.M.JT = Tag (1 … 31) M = Monat (1 … 12)
J = Jahr (80 … 99) |
Einschränkungen: | ./. |
A CLD ;100 MOV AH,2A ;101 INT 21 ;103 PUSH CX ;105 PUSH DX ;106 MOV SI,82 ;107 CALL 149 ;10A MOV DL,AH ;10D CALL 149 ;10F MOV DH,AH ;112 CALL 149 ;114 MOV CX,76C ;117 ADD CL,AH ;11A MOV AH,2B ;11C INT 21 ;11E CMP AL,0 ;120 MOV SI,1A0 ;122 JNZ 13C ;125 CMP By[80],2 ;127 JB 13C ;12C MOV AH,2A ;12E INT 21 ;130 MUL By[155] ;132 MOV SI,AX ;136 ADD SI,156 ;138 POP DX ;13C POP CX ;13D MOV AH,2B ;13E INT 21 ;140 MOV AH,9 ;142 MOV DX,SI ;144 INT 21 ;146 RET ;148 XOR AX,AX ;149 AAD ;14B MOV AH,AL ;14D LODSB ;14F SUB AL,30 ;150 JNB 14B ;152 RET ;154 DB B,"Sonntag$^^^Montag" DB "$^^^^Dienstag$^^Mit" DB "twoch$^^Donnerstag$" DB "Freitag$^^^Samstag$" DB "Ungültiges^Datum$" RCX B1 NWDATE.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot