comparison src/os9/level1/clock.asm @ 57:2088fd998865

sbc09 directry clean up
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 23 Jul 2018 16:07:12 +0900
parents os9/level1/clock.asm@4fa2bdb0c457
children 84d2d5a54ed0
comparison
equal deleted inserted replaced
56:4fa2bdb0c457 57:2088fd998865
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
18 use defsfile
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
26 TkPerSec set 60
27 TkPerTS equ TkPerSec/10 ticks per time slice
28
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
44 ldx #TimerPort
45 lda ,x
46 bita #$10
47 beq L00B4
48 ldb #$8f start timer
49 stb ,x
50 L00B4
51 jmp [>D.SvcIRQ]
52
53 ClkEnt equ *
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
61 pshs cc
62 orcc #FIRQMask+IRQMask mask ints
63 leax <ClockIRQ,pcr
64 stx <D.IRQ
65 * install system calls
66 leay <SysTbl,pcr
67 os9 F$SSvc
68 ldx #TimerPort
69 ldb #$8f start timer
70 stb ,x
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
85
86 rts
87
88 emod
89 eom equ *
90 end