annotate os9/level1/clock.asm @ 54:fc10b7ae23d0

clock level2 worked
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 22 Jul 2018 19:41:06 +0900
parents 2032755628dc
children 4fa2bdb0c457
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
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 ClockIRQ clra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 tfr a,dp
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
44 ldx #TimerPort
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
45 lda ,x
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
46 bita #$10
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
47 beq L00B4
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
48 ldb #$8f start timer
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
49 stb ,x
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
50 L00B4
54
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
51 jsr [>D.SvcIRQ]
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
52 rti
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 ClkEnt equ *
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
55 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
56 std <D.Sec will prompt RTC read at next time slice
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
57 * ldb #TkPerSec
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
58 * stb <D.TSec set ticks per second
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
59 ldb #TkPerTS get ticks per time slice
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
60 stb <D.TSlice set ticks per time slice
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
61 stb <D.Slice set first time slice
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 pshs cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 orcc #FIRQMask+IRQMask mask ints
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
64 leax <ClockIRQ,pcr
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 stx <D.IRQ
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 * install system calls
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
67 leay <SysTbl,pcr
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 os9 F$SSvc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 ldx #TimerPort
54
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
70 ldb #$8f start timer
fc10b7ae23d0 clock level2 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 34
diff changeset
71 stb ,x
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 puls pc,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 * F$Time system call code
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 FTime ldx R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 ldy #TimerPort
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 ldb #$04
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 stb ,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 ldd 1,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 std ,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 ldd 3,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 std 2,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 ldd 5,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 std 4,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 clrb
34
2032755628dc fix for nitros9
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 33
diff changeset
86
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 rts
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 emod
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 eom equ *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 end