annotate src/os9/level1/clock.asm @ 60:84d2d5a54ed0

level1 clock fixed
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 24 Jul 2018 17:04:46 +0900
parents 2088fd998865
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 ********************************************************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 * Clock - OS-9 Level One V2 Clock module
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 * $Id: clock.asm,v 1.1.1.1 2001/02/21 23:30:52 boisy Exp $
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 * NOTE: This clock is TOTALLY VALID for ALL DATES between 1900-2155
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 * Ed. Comments Who YY/MM/DD
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 * ------------------------------------------------------------------
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 * 5 Tandy/Microware original version
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 * 6 Modified to handle leap years properly for BGP 99/05/03
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 * 1900 and 2100 A.D.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 nam Clock
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 ttl OS-9 Level One V2 Clock module
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 ifp1
33
7c5379eb406e nitors9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 31
diff changeset
18 use defsfile
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 endc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 tylg set Systm+Objct
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 atrv set ReEnt+rev
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 rev set $01
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 edition set $06
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 TimerPort set $e030
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
26 TkPerSec set 60
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
27 TkPerTS equ TkPerSec/10 ticks per time slice
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
28
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 mod eom,name,tylg,atrv,ClkEnt,size
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 size equ .
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 name fcs /Clock/
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 fcb edition
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 SysTbl fcb F$Time
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 fdb FTime-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 fcb $80
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
60
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
42 ClockIRQ ldx #TimerPort
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
43 lda ,x
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
44 bita #$10
60
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
45 bne L00B4
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
46 L00AE jsr [>D.Poll] poll ISRs
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
47 bcc L00AE keep polling until carry set
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
48 jmp [>D.AltIRQ] jump into an alternate IRQ if available
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
49
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
50 L00B4
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
51 ldb #$8f start timer
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
52 stb ,x
60
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
53
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
54 dec <D.Tick
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
55 bne L007F go around if not zero
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
56 ldb <D.Sec get minutes/seconds
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
57 * Seconds increment
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
58 incb increment seconds
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
59 cmpb #60 full minute?
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
60 blo L007F
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
61 ldb <D.TSec
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
62 stb <D.Tick
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
63 bsr FTime
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
64 L007F stb <D.Sec
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
65
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
66 jmp [>D.Clock]
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 ClkEnt equ *
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
69 ldd #59*256+$01 last second and last tick
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
70 std <D.Sec will prompt RTC read at next time slice
60
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
71 ldb #TkPerSec
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
72 stb <D.TSec set ticks per second
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
73 stb <D.Tick set ticks per second
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
74 ldb #TkPerTS get ticks per time slice
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
75 stb <D.TSlice set ticks per time slice
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
76 stb <D.Slice set first time slice
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 pshs cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 orcc #FIRQMask+IRQMask mask ints
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
79 leax <ClockIRQ,pcr
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 stx <D.IRQ
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 * install system calls
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
82 leay <SysTbl,pcr
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 os9 F$SSvc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 ldx #TimerPort
54
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
85 ldb #$8f start timer
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
86 stb ,x
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 puls pc,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 * F$Time system call code
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 FTime ldx R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 ldy #TimerPort
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 ldb #$04
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 stb ,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 ldd 1,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 std ,x
60
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
96 std <D.Year
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 ldd 3,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 std 2,x
60
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
99 std <D.Day
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 ldd 5,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 std 4,x
60
84d2d5a54ed0 level1 clock fixed
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 57
diff changeset
102 std <D.Min
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 emod
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 eom equ *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 end