(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED " 9-Nov-93 00:46:02" ("compiled on " {DSK}export>lispcore>sources>CLTL2>LLTIMER.;1) "19-Feb-93 17:03:08" "COMPILE-FILEd" in "Medley 19-Feb-93 ..." dated "19-Feb-93 18:20:42") (FILECREATED "18-Oct-93 16:44:27" "{Pele:mv:envos}Sources>CLTL2>LLTIMER.;2" 37571 previous date%: " 3-Sep-91 18:14:34" "{Pele:mv:envos}Sources>CLTL2>LLTIMER.;1") (RPAQQ LLTIMERCOMS ((COMS (* ;;; "Lowest level Clock stuff") (FNS \CLOCK0 \DAYTIME0 \GETINTERNALCLOCK \SETDAYTIME0 CLOCKDIFFERENCE \SECONDSCLOCKGREATERP \CLOCKGREATERP \RCLOCK0) (FNS CLOCK0) (OPTIMIZERS \RCLOCK0) (INITVARS (\RCLKMILLISECOND 1680)) (GLOBALVARS \RCLKSECOND \RCLKMILLISECOND) (COMS (* ;; "Maiko-specific elements") (FNS \MAIKO.DAYTIME \MAIKO.DAYTIME0 \MAIKO.CLOCK0 \MAIKO.CLOCK \MAIKO.COPY-TIME-STATS \MAIKO.SETTIME) (* ;; "The elements of \MAIKO.MOVDS get movd by \MAIKO.FAULTINIT") (ADDVARS (\MAIKO.MOVDS (\MAIKO.DAYTIME DAYTIME) (\MAIKO.DAYTIME0 \DAYTIME0) (\MAIKO.CLOCK0 \CLOCK0) (\MAIKO.CLOCK0 CLOCK0) (\MAIKO.CLOCK CLOCK) (\MAIKO.SETTIME \NS.SETTIME) (\MAIKO.SETTIME \PUP.SETTIME) (\MAIKO.SETTIME SETTIME) ( \MAIKO.COPY-TIME-STATS CL::%%COPY-TIME-STATS)))) (DECLARE%: DONTCOPY (EXPORT (MACROS \UPDATETIMERS) (* ; "Locations in alto emulator") (CONSTANTS (\RTCSECONDS 378) (\RTCMILLISECONDS 380) (\RTCBASE 382) ( \OFFSET.SECONDS 0) (\OFFSET.MILLISECONDS 2) (\OFFSET.BASE 4) (\ALTO.RCLKSECOND 1680000) ( \ALTO.RCLKMILLISECOND 1680) (\DLION.RCLKMILLISECOND 35) (\DLION.RCLKSECOND 34746) ( \DOVE.RCLKMILLISECOND 63) (\DOVE.RCLKSECOND 62500))) (* ;; "Locked stuff. Have to lock anything used by pagefault code, including the ufns that they use until all microcodes have them" ) (ADDVARS (INEWCOMS (ALLOCAL (ADDVARS (LOCKEDFNS \CLOCK0 \GETINTERNALCLOCK \BOXIDIFFERENCE \BOXIPLUS \BLT \SLOWIQUOTIENT) (LOCKEDVARS \RCLKSECOND \RCLKMILLISECOND \MISCSTATS))))))) (COMS (* ; "basic date and time") (FNS CLOCK DAYTIME ALTO.TO.LISP.DATE LISP.TO.ALTO.DATE) (DECLARE%: EVAL@COMPILE DONTCOPY (EXPORT (PROP MACRO ALTO.TO.LISP.DATE LISP.TO.ALTO.DATE)))) (COMS (* ; "DURATION and TIMER things") (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS TIMER.MAKESAFETIMER TIMER.TIMEREXPIRED? EXPAND.SETUPTIMER) (* ; "Following macro needn't be installed since the function call is fairly slow anyway") (MACROS SETUPTIMER.DATE) (FNS \SETUPTIMERmacrofn))) (COMS (* ;; "macros for dealing with timers") (MACROS SETUPTIMER) (MACROS \TIMER.TIMERP \TIMER.MAKETIMER \TIMER.PLUS \TIMER.DIFFERENCE \TIMER.IN.SECONDS \TIMER.IN.MILLISECONDS \TIMER.IN.TICKS) (FNS \SETUPTIMERmacrofn \CanonicalizeTimerUnits) (FNS SETUPTIMER SETUPTIMER.DATE TIMEREXPIRED? TIME.UNTIL) (VARS (\TIMEREXPIRED.BOX (SETUPTIMER 0))) ( GLOBALVARS \TIMEREXPIRED.BOX \RCLKMILLISECOND \RCLKSECOND)) (* ;; "Arrange for the proper compiler.") (PROP FILETYPE LLTIMER))) \CLOCK0 :D8 (P 1 EXCESS P 0 \INTERRUPTABLE I 0 BOX) P@bl@ `l*I`jI@Idn@nI``(18 \GETINTERNALCLOCK) (75 \RCLKMILLISECOND 64 \RCLKSECOND 35 \RCLKSECOND 23 \MISCSTATS 5 FIXP) () \DAYTIME0 :D8 (P 0 \INTERRUPTABLE I 0 BOX) j@ (14 \GETINTERNALCLOCK) (9 FIXP) () \GETINTERNALCLOCK :D8 (I 1 BOX I 0 CLOCKOFFSET) 6`l$`llA`l$@l`l*w`l(ANIL (46 \MISCSTATS 37 \MISCSTATS 24 \MISCSTATS 12 \MISCSTATS 4 \MISCSTATS) () \SETDAYTIME0 :D8 (P 1 TMP P 0 \INTERRUPTABLE I 0 BOX) @b`l(w`l$@lĿn@`In'`I@nn&`l`l$lĿ`lQn``@&`@'`n`j7n``7j@(194 \PROCESS.RESET.TIMERS) (183 \IOPAGE 173 \IOPAGE 161 \IOPAGE 150 \IOPAGE 139 \IOPAGE 128 \IOPAGE 118 \IOPAGE 105 \MACHINETYPE 93 \MISCSTATS 85 \MISCSTATS 61 \MISCSTATS 48 \MISCSTATS 25 \MISCSTATS 15 \MISCSTATS 5 FIXP) () CLOCKDIFFERENCE :D8 (P 0 \INTERRUPTABLE I 0 OLDCLOCK) `l, @j(15 \CLOCK0) (7 \MISCSTATS) () \SECONDSCLOCKGREATERP :D8 (P 0 \INTERRUPTABLE I 1 SECONDS I 0 OLDCLOCK) $`l,`ll`l,@ANIL (26 \MISCSTATS 15 \MISCSTATS 7 \MISCSTATS) () \CLOCKGREATERP :D8 (P 0 \INTERRUPTABLE I 1 MSECS I 0 OLDCLOCK) `l, @A(15 \CLOCK0) (7 \MISCSTATS) () \RCLOCK0 :D8 (I 0 BOX) @wNIL (5 FIXP) () CLOCK0 :D8 (P 0 \INTERRUPTABLE I 0 BOX) 1@l@ l o@ @`l, l@(42 \CLOCK0 25 \MP.ERROR 11 \CLOCK0) (34 \MISCSTATS) ( 19 "Call to CLOCK0 with arg not a number box. ^N to continue.") optimize-\RCLOCK0 :D8 (L (2 $$CTX 1 $$ENV 0 $$WHOLE)) @ggHohNIL (15 \DTEST 10 \RCLK) ( 21 ((QUOTE FIXP))) (PUTPROP (QUOTE \RCLOCK0) (QUOTE COMPILER:OPTIMIZER-LIST) (CL:ADJOIN (QUOTE optimize-\RCLOCK0) (GET ( QUOTE \RCLOCK0) (QUOTE COMPILER:OPTIMIZER-LIST)))) (RPAQ? \RCLKMILLISECOND 1680) \MAIKO.DAYTIME :D8 (I 0 BOX) l@}1NIL NIL () \MAIKO.DAYTIME0 :D8 (I 0 BOX) l@}1NIL NIL () \MAIKO.CLOCK0 :D8 (I 0 BOX) j@}1NIL NIL () \MAIKO.CLOCK :D8 (I 1 BOX I 0 N) @A}1NIL NIL () \MAIKO.COPY-TIME-STATS :D8 (I 1 DESTINIATION-BLOCK I 0 REFERENCE-BLOCK) @A}2NIL NIL () \MAIKO.SETTIME :D8 (I 0 RETFLG) !@@ lh}1(30 DAYTIME 25 \PROCESS.RESET.TIMERS 7 STRINGP) (19 \TimeZoneComp) () (ADDTOVAR \MAIKO.MOVDS (\MAIKO.DAYTIME DAYTIME) (\MAIKO.DAYTIME0 \DAYTIME0) (\MAIKO.CLOCK0 \CLOCK0) ( \MAIKO.CLOCK0 CLOCK0) (\MAIKO.CLOCK CLOCK) (\MAIKO.SETTIME \NS.SETTIME) (\MAIKO.SETTIME \PUP.SETTIME) (\MAIKO.SETTIME SETTIME) (\MAIKO.COPY-TIME-STATS CL::%%COPY-TIME-STATS)) CLOCK :D8 (I 1 BOX I 0 N) {@jdjAlAl dk`j dl4AlAl `l`l``ll`l @ (120 \ILLEGAL.ARG 113 \GETBASEFIXP 63 \CLOCK0 40 \GETBASEFIXP 24 \CLOCK0) (106 \MISCSTATS 92 \MISCSTATS 86 \MISCSTATS 77 \MISCSTATS 68 \MISCSTATS 34 \MISCSTATS) () DAYTIME :D8 NIL l o(7 \DAYTIME0) NIL ( 12 -2147483648) ALTO.TO.LISP.DATE :D8 (L (0 DATE)) @oNIL NIL ( 5 -2147483648) LISP.TO.ALTO.DATE :D8 (L (0 DATE)) @oNIL NIL ( 5 -2147483648) (PUTPROPS SETUPTIMER MACRO (X (\SETUPTIMERmacrofn X))) (PUTPROPS \TIMER.TIMERP MACRO ((X) (FIXP X))) (PUTPROPS \TIMER.TIMERP DMACRO ((X) (TYPENAMEP X (QUOTE FIXP)))) (PUTPROPS \TIMER.MAKETIMER DMACRO (NIL (NCREATE (QUOTE FIXP)))) (PUTPROPS \TIMER.PLUS DMACRO ((OLDTIMER INTERVAL) (\BOXIPLUS OLDTIMER INTERVAL))) (PUTPROPS \TIMER.DIFFERENCE DMACRO ((TIMER2 TIMER1) (IDIFFERENCE TIMER2 TIMER1))) (PUTPROPS \TIMER.IN.SECONDS DMACRO ((OLDTIMER) (\DAYTIME0 OLDTIMER))) (PUTPROPS \TIMER.IN.MILLISECONDS DMACRO ((OLDTIMER) (\CLOCK0 OLDTIMER))) (PUTPROPS \TIMER.IN.TICKS DMACRO ((OLDTIMER) (\RCLOCK0 OLDTIMER))) \SETUPTIMERmacrofn :D8 (P 5 FORM P 4 CLOCKFNNAME P 3 IntervalUnits P 2 TimerUnits P 1 TIMERFORM P 0 INTERVALFORM I 1 NOERRORCHKS I 0 X) @@@ @ JKgJdg dgdgg ZKdd*dg dgdgg [Jdg6ddggHoggHog}g5KdggHoggHogBJg4KdggHoggHog\ADI o5oIIgM gooMhIhgLIhHh(353 SUBST 322 CONSTANTEXPRESSIONP 312 SHOULDNT 126 \CanonicalizeTimerUnits 77 \CanonicalizeTimerUnits 23 CONSTANTEXPRESSIONP 13 CONSTANTEXPRESSIONP) (387 \TIMER.PLUS 360 LAMBDA 347 Timer? 306 \TIMER.IN.SECONDS 292 IQUOTIENT 285 TICKS 272 IQUOTIENT 264 MILLISECONDS 254 SECONDS 246 \TIMER.IN.MILLISECONDS 232 ITIMES 225 SECONDS 212 IQUOTIENT 204 TICKS 194 MILLISECONDS 187 \TIMER.IN.TICKS 173 ITIMES 166 SECONDS 153 ITIMES 145 MILLISECONDS 134 TICKS 120 MILLISECONDS 111 SECONDS 102 MILLISECONDS 93 TICKS 71 MILLISECONDS 62 SECONDS 53 MILLISECONDS 44 TICKS 35 IGNOREMACRO) ( 370 (DECLARE (LOCALVARS Timer?)) 365 (Timer?) 335 (COND ((\TIMER.TIMERP Timer?) Timer?) (T (\TIMER.MAKETIMER))) 328 (\TIMER.MAKETIMER) 298 (\RCLKSECOND) 278 (1000) 238 (1000) 218 (\RCLKMILLISECOND) 179 (\RCLKSECOND) 159 (\RCLKMILLISECOND)) \CanonicalizeTimerUnits :D8 (P 1 CONVERTEDP P 0 Y I 0 X) T@HdggHgHdggggIH Xig@ (81 ERROR 64 U-CASE) (75 |Invalid arg for timer units| 55 SECONDS 48 SECONDS 42 MILLISECONDS 35 MS 26 MILLISECONDS 17 TICKS 10 TICKS) () SETUPTIMER :D8 (I 3 intervalUnits I 2 timerUnits I 1 OldTimer? I 0 INTERVAL) @jbAlbBdg dgdgg bCd,gCdgdgCgC bBdg.ddg`g`@bAw@g,Cdg@`ۋgn@bA @Bg+Cdg@ng@`bA @(268 SHOULDNT 260 \DAYTIME0 210 \CLOCK0 107 \CanonicalizeTimerUnits 57 \CanonicalizeTimerUnits) (250 \RCLKSECOND 242 TICKS 229 MILLISECONDS 219 SECONDS 194 SECONDS 187 \RCLKMILLISECOND 178 TICKS 168 MILLISECONDS 159 FIXP 148 \RCLKSECOND 141 SECONDS 135 \RCLKMILLISECOND 127 MILLISECONDS 116 TICKS 100 MILLISECONDS 89 SECONDS 80 MILLISECONDS 70 TICKS 51 MILLISECONDS 42 SECONDS 33 MILLISECONDS 24 TICKS 10 FIXP) () SETUPTIMER.DATE :D8 (I 1 OldTimer? I 0 DTS) AAl @ (27 IDATE 22 IDATE 16 \DAYTIME0) (5 FIXP) () TIMEREXPIRED? :D8 (P 0 \INTERRUPTABLE I 1 ClockValue.or.timerUnits I 0 TIMER) @@l Aj`jA `@hAdg dgdgg dgj`w@hdgj` @hgj` @h(174 \DAYTIME0 146 \CLOCK0 91 \CanonicalizeTimerUnits 39 \PUTBASEFIXP 14 \LISPERROR) (169 \TIMEREXPIRED.BOX 157 SECONDS 141 \TIMEREXPIRED.BOX 128 MILLISECONDS 115 FIXP 110 \TIMEREXPIRED.BOX 97 TICKS 85 MILLISECONDS 76 SECONDS 67 MILLISECONDS 58 TICKS 45 \TIMEREXPIRED.BOX 32 \TIMEREXPIRED.BOX 21 FIXP 5 FIXP) () TIME.UNTIL :D8 (I 1 UNITS I 0 TIMER) @@l Adg dgdgg dg@`wdg@` g@` (125 SHOULDNT 118 \DAYTIME0 98 \CLOCK0 55 \CanonicalizeTimerUnits 14 \LISPERROR) (113 \TIMEREXPIRED.BOX 105 SECONDS 93 \TIMEREXPIRED.BOX 84 MILLISECONDS 75 FIXP 70 \TIMEREXPIRED.BOX 61 TICKS 49 MILLISECONDS 40 SECONDS 31 MILLISECONDS 22 TICKS 5 FIXP) () (RPAQ \TIMEREXPIRED.BOX (SETUPTIMER 0)) (PUTPROPS LLTIMER FILETYPE :FAKE-COMPILE-FILE) (PUTPROPS LLTIMER COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1990 1991 1993)) NIL