comparison os9/level1/clock.asm @ 34:2032755628dc

fix for nitros9
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 15 Jul 2018 14:18:19 +0900
parents 7c5379eb406e
children fc10b7ae23d0
comparison
equal deleted inserted replaced
33:7c5379eb406e 34:2032755628dc
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 $e030 25 TimerPort set $e030
26 TkPerSec set 60
27 TkPerTS equ TkPerSec/10 ticks per time slice
28
26 29
27 mod eom,name,tylg,atrv,ClkEnt,size 30 mod eom,name,tylg,atrv,ClkEnt,size
28 31
29 size equ . 32 size equ .
30 33
36 fcb $80 39 fcb $80
37 40
38 41
39 ClockIRQ clra 42 ClockIRQ clra
40 tfr a,dp 43 tfr a,dp
41 L00AE jsr [>D.Poll] 44 ldx #TimerPort
42 bcc L00AE 45 lda ,x
43 L00B4 jmp [>D.AltIRQ] 46 bita #$10
44 rts 47 beq L00B4
48 ldb #$8f start timer
49 stb ,x
50 L00B4
51 jmp [>D.SvcIRQ]
45 52
46 ClkEnt equ * 53 ClkEnt equ *
54 ldd #59*256+$01 last second and last tick
55 std <D.Sec will prompt RTC read at next time slice
56 * ldb #TkPerSec
57 * stb <D.TSec set ticks per second
58 ldb #TkPerTS get ticks per time slice
59 stb <D.TSlice set ticks per time slice
60 stb <D.Slice set first time slice
47 pshs cc 61 pshs cc
48 orcc #FIRQMask+IRQMask mask ints 62 orcc #FIRQMask+IRQMask mask ints
49 leax >ClockIRQ,pcr 63 leax <ClockIRQ,pcr
50 stx <D.IRQ 64 stx <D.IRQ
51 * install system calls 65 * install system calls
52 leay >SysTbl,pcr 66 leay <SysTbl,pcr
53 os9 F$SSvc 67 os9 F$SSvc
54 ldx #TimerPort 68 ldx #TimerPort
55 ldb #$8f start timer 69 * ldb #$8f start timer
56 stb ,x 70 * stb ,x
57 puls pc,cc 71 puls pc,cc
58 72
59 * F$Time system call code 73 * F$Time system call code
60 FTime ldx R$X,u 74 FTime ldx R$X,u
61 ldy #TimerPort 75 ldy #TimerPort
66 ldd 3,y 80 ldd 3,y
67 std 2,x 81 std 2,x
68 ldd 5,y 82 ldd 5,y
69 std 4,x 83 std 4,x
70 clrb 84 clrb
85
71 rts 86 rts
72 87
73 emod 88 emod
74 eom equ * 89 eom equ *
75 end 90 end