annotate os9/level2/clock.asm @ 53:fe88cea67ef0

clock interrupt get time
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 22 Jul 2018 17:55:06 +0900
parents ce7323f9b937
children fc10b7ae23d0
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
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 tylg set Systm+Objct
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 atrv set ReEnt+rev
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 rev set $01
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 edition set $06
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
25 TimerPort set $ffb0
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 mod eom,name,tylg,atrv,ClkEnt,size
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 size equ .
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 name fcs /Clock/
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 fcb edition
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 SysTbl fcb F$Time
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 fdb FTime-*-2
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
36 fcb F$STime
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
37 fdb FSTime-*-2
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 fcb $80
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
41 ClockIRQ ldx #TimerPort
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
42 lda ,x
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
43 bita #$10
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
44 beq L00AE
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
45 lda #$8f
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
46 sta >TimerPort
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 L00AE jsr [>D.Poll]
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 bcc L00AE
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
49 L00B4 jsr [>D.AltIRQ]
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
50 rti
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 ClkEnt equ *
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 pshs cc
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 orcc #FIRQMask+IRQMask mask ints
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 leax >ClockIRQ,pcr
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 stx <D.IRQ
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 * install system calls
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 leay >SysTbl,pcr
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 os9 F$SSvc
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 ldx #TimerPort
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 ldb #$8f start timer
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 stb ,x
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 puls pc,cc
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 * F$Time system call code
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
66 FTime ldx #TimerPort
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 ldb #$04
53
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
68 stb ,x
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
69 leax 1,x Address of system time packet
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
70 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
71 ldb P$Task,y Process Task number
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
72 lda <D.SysTsk From System Task
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
73 ldu R$X,u
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
74 STime.Mv ldy #6 Move 6 bytes
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
75 FMove os9 F$Move
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
76 rts
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
77
fe88cea67ef0 clock interrupt
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
78 FSTime clrb
7
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 rts
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 emod
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 eom equ *
a6db579d8c11 level 2 rom preparing...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 end