Mercurial > hg > Members > kono > os9 > sbc09
comparison 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 |
comparison
equal
deleted
inserted
replaced
52:51b437557f42 | 53:fe88cea67ef0 |
---|---|
20 | 20 |
21 tylg set Systm+Objct | 21 tylg set Systm+Objct |
22 atrv set ReEnt+rev | 22 atrv set ReEnt+rev |
23 rev set $01 | 23 rev set $01 |
24 edition set $06 | 24 edition set $06 |
25 TimerPort set $f8b0 | 25 TimerPort set $ffb0 |
26 | 26 |
27 mod eom,name,tylg,atrv,ClkEnt,size | 27 mod eom,name,tylg,atrv,ClkEnt,size |
28 | 28 |
29 size equ . | 29 size equ . |
30 | 30 |
31 name fcs /Clock/ | 31 name fcs /Clock/ |
32 fcb edition | 32 fcb edition |
33 | 33 |
34 SysTbl fcb F$Time | 34 SysTbl fcb F$Time |
35 fdb FTime-*-2 | 35 fdb FTime-*-2 |
36 fcb F$STime | |
37 fdb FSTime-*-2 | |
36 fcb $80 | 38 fcb $80 |
37 | 39 |
38 | 40 |
39 ClockIRQ clra | 41 ClockIRQ ldx #TimerPort |
40 tfr a,dp | 42 lda ,x |
43 bita #$10 | |
44 beq L00AE | |
45 lda #$8f | |
46 sta >TimerPort | |
41 L00AE jsr [>D.Poll] | 47 L00AE jsr [>D.Poll] |
42 bcc L00AE | 48 bcc L00AE |
43 L00B4 jmp [>D.AltIRQ] | 49 L00B4 jsr [>D.AltIRQ] |
44 rts | 50 rti |
45 | 51 |
46 ClkEnt equ * | 52 ClkEnt equ * |
47 pshs cc | 53 pshs cc |
48 orcc #FIRQMask+IRQMask mask ints | 54 orcc #FIRQMask+IRQMask mask ints |
49 leax >ClockIRQ,pcr | 55 leax >ClockIRQ,pcr |
55 ldb #$8f start timer | 61 ldb #$8f start timer |
56 stb ,x | 62 stb ,x |
57 puls pc,cc | 63 puls pc,cc |
58 | 64 |
59 * F$Time system call code | 65 * F$Time system call code |
60 FTime ldx R$X,u | 66 FTime ldx #TimerPort |
61 ldy #TimerPort | |
62 ldb #$04 | 67 ldb #$04 |
63 stb ,y | 68 stb ,x |
64 ldd 1,y | 69 leax 1,x Address of system time packet |
65 std ,x | 70 RetTime ldy <D.Proc Get pointer to current proc descriptor |
66 ldd 3,y | 71 ldb P$Task,y Process Task number |
67 std 2,x | 72 lda <D.SysTsk From System Task |
68 ldd 5,y | 73 ldu R$X,u |
69 std 4,x | 74 STime.Mv ldy #6 Move 6 bytes |
70 clrb | 75 FMove os9 F$Move |
76 rts | |
77 | |
78 FSTime clrb | |
71 rts | 79 rts |
72 | 80 |
73 emod | 81 emod |
74 eom equ * | 82 eom equ * |
75 end | 83 end |