Mercurial > hg > Members > kono > os9 > sbc09
diff 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 |
line wrap: on
line diff
--- a/os9/level2/clock.asm Sun Jul 22 15:52:39 2018 +0900 +++ b/os9/level2/clock.asm Sun Jul 22 17:55:06 2018 +0900 @@ -22,7 +22,7 @@ atrv set ReEnt+rev rev set $01 edition set $06 -TimerPort set $f8b0 +TimerPort set $ffb0 mod eom,name,tylg,atrv,ClkEnt,size @@ -33,15 +33,21 @@ SysTbl fcb F$Time fdb FTime-*-2 + fcb F$STime + fdb FSTime-*-2 fcb $80 -ClockIRQ clra - tfr a,dp +ClockIRQ ldx #TimerPort + lda ,x + bita #$10 + beq L00AE + lda #$8f + sta >TimerPort L00AE jsr [>D.Poll] bcc L00AE -L00B4 jmp [>D.AltIRQ] - rts +L00B4 jsr [>D.AltIRQ] + rti ClkEnt equ * pshs cc @@ -57,17 +63,19 @@ puls pc,cc * F$Time system call code -FTime ldx R$X,u - ldy #TimerPort +FTime ldx #TimerPort ldb #$04 - stb ,y - ldd 1,y - std ,x - ldd 3,y - std 2,x - ldd 5,y - std 4,x - clrb + stb ,x + leax 1,x Address of system time packet +RetTime ldy <D.Proc Get pointer to current proc descriptor + ldb P$Task,y Process Task number + lda <D.SysTsk From System Task + ldu R$X,u +STime.Mv ldy #6 Move 6 bytes +FMove os9 F$Move + rts + +FSTime clrb rts emod