home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 August / macformat-027.iso / mac / Shareware City / Developers / Oberon⁄F / Mac / Mod / TimeMgr (.txt) < prev    next >
Encoding:
Oberon Document  |  1994-06-07  |  4.3 KB  |  139 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Geneva
  16. Geneva
  17. StdStamps.StdViewDesc
  18. Geneva
  19. MODULE MacTimeMgr;
  20. (* cp 
  21.     TickCount, GetDblTime repeated here
  22.     IMPORT SYSTEM, MacTypes;
  23.     CONST
  24.         D0 = 0; A0 = 8;
  25.         Time = 20CH;
  26.         DoubleTime = 2F0H;
  27.         CaretTime = 2F4H;
  28.         CODE = 1; NOSTKCHK = 4;
  29.     TYPE
  30.         DateTimeRec* = RECORD (MacTypes.Data)
  31.             year*, month*, day*,
  32.             hour*, minute*, second*,
  33.             dayOfWeek*: INTEGER
  34.         END;
  35.         TMTask* = RECORD (MacTypes.Data)
  36.             qLink: LONGINT;
  37.             qType*: INTEGER;
  38.             tmAddr*: MacTypes.ProcPtr;
  39.             tmCount*: LONGINT;
  40.             tmWakeUp*: LONGINT;
  41.             tmReserved: LONGINT
  42.         END;
  43.         TMTaskPtr* = POINTER TO TMTask;
  44.     PROCEDURE [CODE] readDateTime 0A0H, 039H;
  45.     PROCEDURE [CODE] setDateTime 0A0H, 03AH;
  46.     PROCEDURE [CODE] date2Secs 0A9H, 0C7H;
  47.     PROCEDURE [CODE] secs2Date 0A9H, 0C6H;
  48.     PROCEDURE [CODE] insTime 0A0H, 058H;
  49.     PROCEDURE [CODE] insXTime 0A4H, 058H;
  50.     PROCEDURE [CODE] primeTime 0A0H, 05AH;
  51.     PROCEDURE [CODE] rmvTime 0A0H, 059H;
  52.     PROCEDURE [CODE] TickCount* (): LONGINT 0A9H, 075H;
  53.     PROCEDURE [CODE] GetDblTime* (): LONGINT 002H, 0F0H;
  54.     PROCEDURE [NOSTKCHK] GetCaretTime* (): LONGINT;
  55.         VAR t: LONGINT;
  56.     BEGIN
  57.         SYSTEM.MOVE(CaretTime, SYSTEM.ADR(t), 4);
  58.         RETURN t
  59.     END GetCaretTime;
  60.     (** Date and Time Operations (see OSUtilities in IM, volume II) **)
  61.     PROCEDURE [NOSTKCHK] ReadDateTime* (VAR secs: LONGINT): INTEGER;
  62.         VAR res: INTEGER;
  63.     BEGIN
  64.         SYSTEM.PUTREG(A0, SYSTEM.ADR(secs));
  65.         readDateTime;
  66.         SYSTEM.GETREG(D0, res);
  67.         RETURN res
  68.     END ReadDateTime;
  69.     PROCEDURE [NOSTKCHK] GetDateTime* (VAR secs: LONGINT);
  70.     BEGIN
  71.         SYSTEM.MOVE(Time, SYSTEM.ADR(secs), 4)
  72.     END GetDateTime;
  73.     PROCEDURE [NOSTKCHK] SetDateTime* (secs: LONGINT): INTEGER;
  74.         VAR res: INTEGER;
  75.     BEGIN
  76.         SYSTEM.PUTREG(D0,secs);
  77.         setDateTime;
  78.         SYSTEM.GETREG(D0, res);
  79.         RETURN res
  80.     END SetDateTime;
  81.     PROCEDURE [NOSTKCHK] Date2Secs* (date: DateTimeRec; VAR secs: LONGINT);
  82.     BEGIN
  83.         SYSTEM.PUTREG(A0, SYSTEM.ADR(date));
  84.         date2Secs;
  85.         SYSTEM.GETREG(D0, secs)
  86.     END Date2Secs;
  87.     PROCEDURE [NOSTKCHK] Secs2Date* (secs: LONGINT; VAR d: DateTimeRec);
  88.     BEGIN
  89.         SYSTEM.PUTREG(D0, secs);
  90.         SYSTEM.PUTREG(A0, SYSTEM.ADR(d));      (* error in 'Inside Macintosh' *)
  91.         secs2Date
  92.     END Secs2Date;
  93.     PROCEDURE [NOSTKCHK] GetTime* (VAR d: DateTimeRec);
  94.         VAR secs: LONGINT;
  95.     BEGIN
  96.         GetDateTime(secs);
  97.         Secs2Date(secs, d)
  98.     END GetTime;
  99.     PROCEDURE [NOSTKCHK] SetTime* (d: DateTimeRec);
  100.         VAR secs: LONGINT; err: INTEGER;
  101.     BEGIN
  102.         Date2Secs(d, secs);
  103.         err := SetDateTime(secs)
  104.     END SetTime;
  105.     (** 128K ROM **)
  106.     PROCEDURE [NOSTKCHK] InsTime* (tmTaskPtr: TMTaskPtr);
  107.     BEGIN
  108.         SYSTEM.PUTREG(A0, tmTaskPtr);
  109.         insTime
  110.     END InsTime;
  111.     PROCEDURE [NOSTKCHK] InsXTime* (tmTaskPtr: TMTaskPtr);
  112.     BEGIN
  113.         SYSTEM.PUTREG(A0, tmTaskPtr);
  114.         insXTime
  115.     END InsXTime;
  116.     PROCEDURE [NOSTKCHK] PrimeTime* (tmTaskPtr: TMTaskPtr; count: LONGINT);
  117.     BEGIN
  118.         SYSTEM.PUTREG(A0, tmTaskPtr);
  119.         SYSTEM.PUTREG(D0, count);
  120.         primeTime
  121.     END PrimeTime;
  122.     PROCEDURE [NOSTKCHK] RmvTime* (tmTaskPtr: TMTaskPtr);
  123.     BEGIN
  124.         SYSTEM.PUTREG(A0, tmTaskPtr);
  125.         rmvTime
  126.     END RmvTime;
  127. END MacTimeMgr.
  128. TextControllers.StdCtrlDesc
  129. TextControllers.ControllerDesc
  130. Containers.ControllerDesc
  131. Controllers.ControllerDesc
  132. TextRulers.StdRulerDesc
  133. TextRulers.RulerDesc
  134. TextRulers.StdStyleDesc
  135. TextRulers.StyleDesc
  136. TextRulers.AttributesDesc
  137. Geneva
  138. Documents.ControllerDesc
  139.