home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1992-06-20 | 1.5 KB | 81 lines |
- IMPLEMENTATION MODULE DOSclock;
-
- FROM SYSTEM IMPORT ASSEMBLER;
- FROM Strings IMPORT Assign;
- FROM Text IMPORT WriteCard;
-
- PROCEDURE GetDate(VAR day:ARRAY OF CHAR; VAR month, date, year:CARDINAL);
- VAR num:CARDINAL;
- temp:ARRAY[0..8] OF CHAR;
- BEGIN
- num := 0;
- month := 0;
- date := 0;
- year := 0;
- ASM
- MOV AH,42
- INT 21H
- LES DI,month
- MOV ES:[DI],DH
- LES DI,date
- MOV ES:[DI],DL
- LES DI,year
- MOV ES:[DI],CX
- MOV num,AL
- END;
- CASE num OF
- 0: temp := 'Sunday'|
- 1: temp := 'Monday'|
- 2: temp := 'Tuesday'|
- 3: temp := 'Wednesday'|
- 4: temp := 'Thursday'|
- 5: temp := 'Friday'|
- 6: temp := 'Saturday';
- END;
- Assign(temp,day);
- END GetDate;
-
- PROCEDURE SetDate(month, date, year:CARDINAL);
- BEGIN
- ASM
- MOV DH,month
- MOV DL,date
- MOV CX,year
- MOV AH,43
- INT 21H
- END;
- END SetDate;
-
- PROCEDURE GetTime(VAR hour, min, sec:CARDINAL);
- VAR num:CARDINAL;
- temp:ARRAY [0..8] OF CHAR;
- BEGIN
- hour := 0;
- min := 0;
- sec := 0;
- ASM
- MOV AH,44
- INT 21H
- LES DI,hour
- MOV ES:[DI],CH
- LES DI,min
- MOV ES:[DI],CL
- LES DI,sec
- MOV ES:[DI],DH
- END;
- END GetTime;
-
- PROCEDURE SetTime(hour, min, sec:CARDINAL);
- BEGIN
- ASM
- MOV CH,hour
- MOV CL,min
- MOV DH,sec
- MOV DL,0
- MOV AH,45
- INT 21H
- END;
- END SetTime;
-
- END DOSclock.