7
|
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
|
11
|
18 use defsfile
|
7
|
19 endc
|
|
20
|
|
21 tylg set Systm+Objct
|
|
22 atrv set ReEnt+rev
|
|
23 rev set $01
|
|
24 edition set $06
|
|
25 TimerPort set $f8b0
|
|
26
|
|
27 mod eom,name,tylg,atrv,ClkEnt,size
|
|
28
|
|
29 size equ .
|
|
30
|
|
31 name fcs /Clock/
|
|
32 fcb edition
|
|
33
|
|
34 SysTbl fcb F$Time
|
|
35 fdb FTime-*-2
|
|
36 fcb $80
|
|
37
|
|
38
|
|
39 ClockIRQ clra
|
|
40 tfr a,dp
|
|
41 L00AE jsr [>D.Poll]
|
|
42 bcc L00AE
|
|
43 L00B4 jmp [>D.AltIRQ]
|
|
44 rts
|
|
45
|
|
46 ClkEnt equ *
|
|
47 pshs cc
|
|
48 orcc #FIRQMask+IRQMask mask ints
|
|
49 leax >ClockIRQ,pcr
|
|
50 stx <D.IRQ
|
|
51 * install system calls
|
|
52 leay >SysTbl,pcr
|
|
53 os9 F$SSvc
|
|
54 ldx #TimerPort
|
|
55 ldb #$8f start timer
|
|
56 stb ,x
|
|
57 puls pc,cc
|
|
58
|
|
59 * F$Time system call code
|
|
60 FTime ldx R$X,u
|
|
61 ldy #TimerPort
|
|
62 ldb #$04
|
|
63 stb ,y
|
|
64 ldd 1,y
|
|
65 std ,x
|
|
66 ldd 3,y
|
|
67 std 2,x
|
|
68 ldd 5,y
|
|
69 std 4,x
|
|
70 clrb
|
|
71 rts
|
|
72
|
|
73 emod
|
|
74 eom equ *
|
|
75 end
|