mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 09:39:09 +02:00
+ fixed compilation of unit 'time' on win16
git-svn-id: trunk@37652 -
This commit is contained in:
parent
f1b14555b1
commit
7af8cb4015
@ -278,6 +278,19 @@ PROCEDURE SetTime (Hour, Minute, Second, Sec100: Word);
|
|||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$IFDEF OS_WIN16} { 16 BIT WINDOWS CODE }
|
||||||
|
ASSEMBLER;
|
||||||
|
ASM
|
||||||
|
MOV CH, BYTE PTR Hour; { Fetch hour }
|
||||||
|
MOV CL, BYTE PTR Minute; { Fetch minute }
|
||||||
|
MOV DH, BYTE PTR Second; { Fetch second }
|
||||||
|
MOV DL, BYTE PTR Sec100; { Fetch hundredths }
|
||||||
|
MOV AX, $2D00; { Set function id }
|
||||||
|
PUSH BP; { Safety save register }
|
||||||
|
INT $21; { Set the time }
|
||||||
|
POP BP; { Restore register }
|
||||||
|
END;
|
||||||
|
{$ENDIF}
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
||||||
{$IFDEF BIT_16} { 16 BIT WINDOWS CODE }
|
{$IFDEF BIT_16} { 16 BIT WINDOWS CODE }
|
||||||
ASSEMBLER;
|
ASSEMBLER;
|
||||||
@ -393,6 +406,55 @@ PROCEDURE GetTime (Var Hour, Minute, Second, Sec100: Word);
|
|||||||
END;
|
END;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$IFDEF OS_WIN16} { 16 BIT WINDOWS CODE }
|
||||||
|
{$IFDEF FPC_X86_DATA_NEAR}
|
||||||
|
ASSEMBLER;
|
||||||
|
ASM
|
||||||
|
MOV AX, $2C00; { Set function id }
|
||||||
|
PUSH BP; { Safety save register }
|
||||||
|
INT $21; { System get time }
|
||||||
|
POP BP; { Restore register }
|
||||||
|
XOR AH, AH; { Clear register }
|
||||||
|
CLD; { Strings go forward }
|
||||||
|
MOV AL, DL; { Transfer register }
|
||||||
|
PUSH DS
|
||||||
|
POP ES
|
||||||
|
MOV DI, Sec100; { ES:DI -> hundredths }
|
||||||
|
STOSW; { Return hundredths }
|
||||||
|
MOV AL, DH; { Transfer register }
|
||||||
|
MOV DI, Second; { ES:DI -> seconds }
|
||||||
|
STOSW; { Return seconds }
|
||||||
|
MOV AL, CL; { Transfer register }
|
||||||
|
MOV DI, Minute; { ES:DI -> minutes }
|
||||||
|
STOSW; { Return minutes }
|
||||||
|
MOV AL, CH; { Transfer register }
|
||||||
|
MOV DI, Hour; { ES:DI -> hours }
|
||||||
|
STOSW; { Return hours }
|
||||||
|
END;
|
||||||
|
{$ELSE FPC_X86_DATA_NEAR}
|
||||||
|
ASSEMBLER;
|
||||||
|
ASM
|
||||||
|
MOV AX, $2C00; { Set function id }
|
||||||
|
PUSH BP; { Safety save register }
|
||||||
|
INT $21; { System get time }
|
||||||
|
POP BP; { Restore register }
|
||||||
|
XOR AH, AH; { Clear register }
|
||||||
|
CLD; { Strings go forward }
|
||||||
|
MOV AL, DL; { Transfer register }
|
||||||
|
LES DI, Sec100; { ES:DI -> hundredths }
|
||||||
|
STOSW; { Return hundredths }
|
||||||
|
MOV AL, DH; { Transfer register }
|
||||||
|
LES DI, Second; { ES:DI -> seconds }
|
||||||
|
STOSW; { Return seconds }
|
||||||
|
MOV AL, CL; { Transfer register }
|
||||||
|
LES DI, Minute; { ES:DI -> minutes }
|
||||||
|
STOSW; { Return minutes }
|
||||||
|
MOV AL, CH; { Transfer register }
|
||||||
|
LES DI, Hour; { ES:DI -> hours }
|
||||||
|
STOSW; { Return hours }
|
||||||
|
END;
|
||||||
|
{$ENDIF}
|
||||||
|
{$ENDIF}
|
||||||
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
{$IFDEF OS_WINDOWS} { WIN/NT CODE }
|
||||||
{$IFDEF BIT_16} { 16 BIT WINDOWS CODE }
|
{$IFDEF BIT_16} { 16 BIT WINDOWS CODE }
|
||||||
ASSEMBLER;
|
ASSEMBLER;
|
||||||
|
Loading…
Reference in New Issue
Block a user