annotate os9/level2/clock.asm @ 55:8d151f303bee

FIRQ does not worked
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 23 Jul 2018 08:35:25 +0900
parents fc10b7ae23d0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 ********************************************************************
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 * Clock - OS-9 Level One V2 Clock module
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 *
a6db579d8c11 level 2 rom preparing...
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 $
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 *
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 * NOTE: This clock is TOTALLY VALID for ALL DATES between 1900-2155
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 *
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 * Ed. Comments Who YY/MM/DD
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 * ------------------------------------------------------------------
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 * 5 Tandy/Microware original version
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 * 6 Modified to handle leap years properly for BGP 99/05/03
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 * 1900 and 2100 A.D.
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 nam Clock
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 ttl OS-9 Level One V2 Clock module
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 ifp1
11
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
18 use defsfile
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 endc
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
55
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
21 usefirq equ 0
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
22
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 tylg set Systm+Objct
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 atrv set ReEnt+rev
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 rev set $01
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 edition set $06
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
27 TimerPort set $ffb0
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 mod eom,name,tylg,atrv,ClkEnt,size
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 size equ .
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 name fcs /Clock/
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 fcb edition
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 SysTbl fcb F$Time
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 fdb FTime-*-2
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
38 fcb F$STime
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
39 fdb FSTime-*-2
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 fcb $80
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
55
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
43 ifeq usefirq-1
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
44 ClockFIRQ
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
45 leas -1,s
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
46 pshs d,dp,x,y
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
47 lda 8,s
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
48 ora #$80 Entire flag
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
49 pshs a
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
50 stu 8,s
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
51 jmp [$FFF8]
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
52 endc
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
53 ClockIRQ
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
54 ldx #TimerPort
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
55 lda ,x
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
56 bita #$10
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
57 beq L00AE
54
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
58 L00AE leax ClockIRQ1,pcr
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
59 stx <D.SvcIRQ
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
60 jmp [D.XIRQ] Chain through Kernel to continue IRQ handling
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
61 ClockIRQ1
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
62 inc <D.Sec go up one second
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
63 lda <D.Sec grab current second
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
64 cmpa #60 End of minute?
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
65 blo VIRQend No, skip time update and alarm check
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
66 clr <D.Sec Reset second count to zero
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
67 VIRQend
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
68 ldx #TimerPort
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
69 lda #$8f
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
70 sta >TimerPort
54
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
71 jmp [>D.Clock]
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
72
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
73 TkPerTS equ 2
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 ClkEnt equ *
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 pshs cc
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 orcc #FIRQMask+IRQMask mask ints
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 leax >ClockIRQ,pcr
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 stx <D.IRQ
55
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
80 ifeq usefirq-1
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
81 leax >ClockFIRQ,pcr
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
82 stx $FFF6 must be a RAM
8d151f303bee FIRQ does not worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 54
diff changeset
83 endc
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 * install system calls
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 leay >SysTbl,pcr
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 os9 F$SSvc
54
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
87 ldd #59*256+TkPerTS last second and time slice in minute
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
88 std <D.Sec Will prompt RTC read at next time slice
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
89 stb <D.TSlice set ticks per time slice
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
90 stb <D.Slice set first time slice
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
91 lda #TkPerSec Reset to start of second
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
92 sta <D.Tick
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
93
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 ldx #TimerPort
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 ldb #$8f start timer
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 stb ,x
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 puls pc,cc
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 * F$Time system call code
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
100 FTime ldx #TimerPort
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 ldb #$04
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
102 stb ,x
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
103 leax 1,x Address of system time packet
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
104 RetTime ldy <D.Proc Get pointer to current proc descriptor
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
105 ldb P$Task,y Process Task number
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
106 lda <D.SysTsk From System Task
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
107 ldu R$X,u
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
108 STime.Mv ldy #6 Move 6 bytes
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
109 FMove os9 F$Move
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
110 rts
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
111
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
112 FSTime clrb
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 rts
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 emod
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 eom equ *
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 end