31
|
1 ********************************************************************
|
|
2 * Clock - OS-9 Level One V2 Clock module
|
|
3 *
|
|
4 * $Id: clock.asm,v 1.1.1.1 2001/02/21 23:30:52 boisy Exp $
|
|
5 *
|
|
6 * NOTE: This clock is TOTALLY VALID for ALL DATES between 1900-2155
|
|
7 *
|
|
8 * Ed. Comments Who YY/MM/DD
|
|
9 * ------------------------------------------------------------------
|
|
10 * 5 Tandy/Microware original version
|
|
11 * 6 Modified to handle leap years properly for BGP 99/05/03
|
|
12 * 1900 and 2100 A.D.
|
|
13
|
|
14 nam Clock
|
|
15 ttl OS-9 Level One V2 Clock module
|
|
16
|
|
17 ifp1
|
33
|
18 use defsfile
|
31
|
19 endc
|
|
20
|
|
21 tylg set Systm+Objct
|
|
22 atrv set ReEnt+rev
|
|
23 rev set $01
|
|
24 edition set $06
|
|
25 TimerPort set $e030
|
34
|
26 TkPerSec set 60
|
|
27 TkPerTS equ TkPerSec/10 ticks per time slice
|
|
28
|
31
|
29
|
|
30 mod eom,name,tylg,atrv,ClkEnt,size
|
|
31
|
|
32 size equ .
|
|
33
|
|
34 name fcs /Clock/
|
|
35 fcb edition
|
|
36
|
|
37 SysTbl fcb F$Time
|
|
38 fdb FTime-*-2
|
|
39 fcb $80
|
|
40
|
|
41
|
|
42 ClockIRQ clra
|
|
43 tfr a,dp
|
34
|
44 ldx #TimerPort
|
|
45 lda ,x
|
|
46 bita #$10
|
|
47 beq L00B4
|
|
48 ldb #$8f start timer
|
|
49 stb ,x
|
|
50 L00B4
|
56
|
51 jmp [>D.SvcIRQ]
|
31
|
52
|
|
53 ClkEnt equ *
|
34
|
54 ldd #59*256+$01 last second and last tick
|
|
55 std <D.Sec will prompt RTC read at next time slice
|
|
56 * ldb #TkPerSec
|
|
57 * stb <D.TSec set ticks per second
|
|
58 ldb #TkPerTS get ticks per time slice
|
|
59 stb <D.TSlice set ticks per time slice
|
|
60 stb <D.Slice set first time slice
|
31
|
61 pshs cc
|
|
62 orcc #FIRQMask+IRQMask mask ints
|
34
|
63 leax <ClockIRQ,pcr
|
31
|
64 stx <D.IRQ
|
|
65 * install system calls
|
34
|
66 leay <SysTbl,pcr
|
31
|
67 os9 F$SSvc
|
|
68 ldx #TimerPort
|
54
|
69 ldb #$8f start timer
|
|
70 stb ,x
|
31
|
71 puls pc,cc
|
|
72
|
|
73 * F$Time system call code
|
|
74 FTime ldx R$X,u
|
|
75 ldy #TimerPort
|
|
76 ldb #$04
|
|
77 stb ,y
|
|
78 ldd 1,y
|
|
79 std ,x
|
|
80 ldd 3,y
|
|
81 std 2,x
|
|
82 ldd 5,y
|
|
83 std 4,x
|
|
84 clrb
|
34
|
85
|
31
|
86 rts
|
|
87
|
|
88 emod
|
|
89 eom equ *
|
|
90 end
|