Zeit-Routinen

Die hier vorgestellten Routinen sind solche für die Verabeitung des Datums. Sie sind nicht auf das Jahr-2000-Problem überprüft:

Modul-Entry B: Beschreibung, I: Eingabe-, O: Ausgabeparameter

MMDDYY.MAC
MMDDYY B: Aktuelles Datum in Zeichenkette wandeln, Format MM/TT/JJ
  I: Register HL zeigt auf Zeichenkette, Register B hält das Endzeichen (typischerweise „$" oder Null) und Register C hält das Trennungszeichen zwischen den einzelnen Darstellungen.
  O: ---

DDMMYY.MAC
DDMMYY B: Aktuelles Datum in Zeichenkette wandeln, Format TT MMM JJ
  I: Register HL zeigt auf Zeichenkette, Register B hält das Endzeichen (typischerweise „$" oder Null) und Register C hält das Trennungszeichen zwischen den einzelnen Darstellungen. In der Adresse DDMMYY-2 steht ein Zeiger auf eine Monatstabelle (je drei Zeichen), Voreinstellung ist englisch.
  O: ---

HHMMSS.MAC
HHMMSS B: Aktuelle Uhrzeit in Zeichenkette wandeln, Format HH:MM:SS
  I: Register HL zeigt auf Zeichenkette, Register B hält das Endzeichen (typischerweise „$" oder Null) und Register C hält das Trennungszeichen zwischen den einzelnen Darstellungen.
  O: ---

HHMM.MAC
HHMM B: Aktuelle Uhrzeit in Zeichenkette wandeln, Format HH:MM
  I: Register HL zeigt auf Zeichenkette, Register B hält das Endzeichen (typischerweise „$" oder Null) und Register C hält das Trennungszeichen zwischen den einzelnen Darstellungen.
  O: ---

PUTBCD.MAC
PUTBCD B: BCD Zeichen in Zeichenkette wandeln
  I: Akkumulator hält den BCD Wert und Register HL zeigt auf Zeichenkette.
  O: Reg HL um 2 inkrementiert

GETCLK.MAC
GETCLK B: Laden der aktuellen Systemzeit (CP/M 3.x)
  I: ---
  O: Register HL hält den Datumswert (1 entspricht 1.1.1978) und Register DE zeigt auf BCD Parameterblock (HH, MM, SS)

CNVDAY.MAC
CNVDAY B: Wandeln des CP/M 3.x Datumwertes
  I: Register HL hält den Datumswert (1 entspricht 1.1.1978)
  O:
Register IX zeigt auf BCD Block :IX+0Tag
 IX+1Monat
 IX+2Jahr