mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 23:21:57 +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;
|
||||
{$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 BIT_16} { 16 BIT WINDOWS CODE }
|
||||
ASSEMBLER;
|
||||
@ -393,6 +406,55 @@ PROCEDURE GetTime (Var Hour, Minute, Second, Sec100: Word);
|
||||
END;
|
||||
{$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 BIT_16} { 16 BIT WINDOWS CODE }
|
||||
ASSEMBLER;
|
||||
|
Loading…
Reference in New Issue
Block a user