GN_Gdt, Convert an ASCII string to an internal binary date
Register parameters
IN:
HL = source pointer
0 = read from stream whose handle is IX
1 = read from filter whose handle is IX
2 = not allowed
> 255 = string pointed to by HL
DE = destination pointer
0 = not allowed
1 = not allowed
2 = result returned in ABC
>255 = store result at address pointed to by DE
A = date format
A0 = 1, undefined
A1 = 1, undefined
A2 = 1, undefined
A3 = 1, force American format (MM/DD/YY)
A4 = 1, force European format (DD/MM/YY)
A5 = 1, force C to be the delimiter
A6 = 1, undefined
A7 = 1, undefined
IX = source handle (if HL = 0,1)
B = maximum number of characters to be read
C = optional forced delimiter (default is ".")
OUT, if call successful:
Fc = 0
HL, if HL(in) = 0, index to last character read
HL, if HL(in) > 255, pointer to last/terminating character
ABC, if DE(in) = 2, date in internal format
ABC, if DE(in) > 255, ABC(in)
DE, if DE(in) > 255, DE(in)+3
OUT, if call failed:
Fc = 1
A = error code:
RC_ROOM ($07), insufficient memory to make conversion.
RC_HAND ($08), handles not available for conversion
RC_BAD ($04), bad parameters
RC_SNTX ($0C), Bad syntax
Registers changed after return:
......../IXIY same
AFBCDEHL/.... different
Notes
ASCII string have to use the local date string (dates are fully country localized since OZ 4.5).
Setting A3=0 and A4=0 will mean that the PANEL settings for the date format will be used. A3=A4=1 will use European format. The routine will return a syntax error (RC_SNTX) if A5=1 and the character passed in C(in) is not the terminator of the string to be converted. Please note that returned internal format is in high byte low byte register sequense (A = high byte, C = low byte).
Source in HL can not be in segment 1 used by Date Filter Table. Destination in (DE>255) can be inside segment 1.
Related calls
GN_Dei, convert zoned format date to internal format
GN_Die, convert internal format date to zoned format
GN_Gmd, Get (read) machine date in internal format
GN_Pdt, write internal date as ASCII string
GN_Pmd, put (set) machine date