annotate level1/modules/mc09clock.asm @ 3130:e0614e08fa5e

l1 boot modules: Expand documentation and clean up code Tidy up white-space and indentation. Expand documentation to show C flag is important on return from HWRead. Expand documentation to show how/why/when filler is needed at end of file. Delete dead code in some places. No functional changes.
author Neal Crook <foofoobedoo@gmail.com>
date Sun, 04 Dec 2016 21:01:42 +0000
parents 174eb9eda7b1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3116
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
1 ********************************************************************
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
2 * Clock - NitrOS-9 System Clock
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
3 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
4 * $Id$
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
5 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
6 * Edt/Rev YYYY/MM/DD Modified by
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
7 * Comment
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
8 * ------------------------------------------------------------------
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
9 * 2015/09/09 Neal Crook
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
10 * Created from clock.asm version 9r8. This version for 50Hz timer on
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
11 * multicomp09.
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
12
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
13
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
14 * [NAC HACK 2015Sep09] Inherited behaviour: this just stomps into
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
15 * D.IRQ so I assume that nothing could have been there before (ie
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
16 * because it's the "owner" of this vector). If there is an interrupt
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
17 * that is NOT a timer interrupt we jump through D.SvcIRQ, which is
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
18 * the list of other devices that might want to claim the interrupt.
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
19 * At the end of the timer interrupt service routine (ISR) we don't
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
20 * jump through D.SvcIRQ. The assumption is that there is only one
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
21 * interruptor. If that assumption tests false, the interrupt will
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
22 * still be asserted and we'll come straight back into this ISR.
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
23 * The timer ISR checks something and considers dispatching through
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
24 * AltIRQ. What's that all about?
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
25
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
26
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
27 nam Clock
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
28 ttl NitrOS-9 System Clock
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
29
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
30 use defsfile
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
31
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
32 tylg set Systm+Objct
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
33 atrv set ReEnt+rev
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
34 rev set 8
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
35 edition set 9
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
36
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
37 *------------------------------------------------------------
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
38 * For a detailed hardware description of the Multicomp09
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
39 * timer, refer to mc09.d
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
40 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
41
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
42 *------------------------------------------------------------
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
43 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
44 * Start of module
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
45 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
46 mod len,name,tylg,atrv,init,0
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
47
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
48 name fcs "Clock"
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
49 fcb edition
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
50
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
51
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
52 TkPerTS equ TkPerSec/10 ticks per time slice
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
53
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
54 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
55 * Table to set up Service Calls
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
56 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
57 NewSvc fcb F$Time
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
58 fdb FTime-*-2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
59 fcb F$VIRQ
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
60 fdb FVIRQ-*-2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
61 fcb F$STime
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
62 fdb FSTime-*-2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
63 fcb $80 end of service call installation table
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
64
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
65
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
66 *------------------------------------------------------------
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
67 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
68 * Handle F$STime system call
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
69 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
70 * First, copy time packet from user address space to system time
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
71 * variables, then fall through to code to update RTC.
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
72 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
73 FSTime equ *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
74 ldx R$X,u
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
75 ldd ,x
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
76 std <D.Year
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
77 ldd 2,x
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
78 std <D.Day
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
79 ldd 4,x
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
80 std <D.Min
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
81 lda #TkPerSec reset to start of second
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
82 sta <D.Tick
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
83 ldx <D.Clock2 get entry point to Clock2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
84 clra clear carry
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
85 jmp $06,x and call SetTime entry point
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
86
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
87 *--------------------------------------------------
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
88 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
89 * Clock Initialization
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
90 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
91 * This vector is called by the kernel to service the first F$STime
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
92 * call. F$STime is usually called by SysGo (with a dummy argument)
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
93 * in order to initialize the clock. F$STime is re-vectored to the
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
94 * service code above to handle future F$STime calls.
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
95 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
96 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
97
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
98 Clock2 fcs "Clock2"
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
99
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
100 init
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
101 pshs dp,cc save DP and CC
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
102 clra
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
103 tfr a,dp set DP to zero
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
104 leax <Clock2,pcr
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
105 lda #Sbrtn+Objct
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
106 os9 F$Link
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
107 bcc LinkOk
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
108 jmp >$FFFE level 1: jump to reset vector
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
109
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
110 LinkOk
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
111 puls cc,dp ; Restore saved dp and cc
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
112 sty <D.Clock2 save entry point
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
113 InitCont
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
114 * Do not need to explicitly read RTC during initialization
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
115 ldd #59*256+$01 last second and last tick
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
116 std <D.Sec will prompt RTC read at next time slice
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
117 ldb #TkPerSec
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
118 stb <D.TSec set ticks per second
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
119 ldb #TkPerTS get ticks per time slice
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
120 stb <D.TSlice set ticks per time slice
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
121 stb <D.Slice set first time slice
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
122
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
123 leax SvcIRQ,pcr set IRQ handler
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
124 stx <D.IRQ
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
125
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
126 leay NewSvc,pcr insert syscalls
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
127 os9 F$SSvc
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
128
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
129 * Call Clock2 init routine
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
130 ldy <D.Clock2 get entry point to Clock2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
131 jsr ,y call init entry point of Clock2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
132
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
133 * Initialize clock hardware
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
134 lda #2 enable timer and its interrupt
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
135 sta TIMER
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
136 rts
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
137
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
138
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
139 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
140 * Clock IRQ Entry Point
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
141 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
142 * For Multicomp09, called 50 times/s ie once every 20ms
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
143 SvcIRQ
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
144 clra
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
145 tfr a,dp set direct page to zero
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
146
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
147 * The increment sets N depending upon whether the timer interrupted
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
148 inc TIMER
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
149 bmi TimInt
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
150 jmp [>D.SvcIRQ] else service other possible IRQ
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
151 TimInt
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
152 dec <D.Tick decrement tick counter
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
153 bne L007F go around if not zero
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
154 ldb <D.Sec get minutes/seconds
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
155 * Seconds increment
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
156 incb increment seconds
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
157 cmpb #60 full minute?
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
158 bcs L0079 nope...
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
159 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
160 * Call GetTime entry point in Clock2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
161 *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
162 ldx <D.Clock2 get entry point to Clock2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
163 jsr $03,x call GetTime entry point
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
164 fcb $8C skip next 2 bytes
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
165 L0079 stb <D.Sec update sec
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
166 L007B lda <D.TSec get ticks per second value
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
167 sta <D.Tick and repopulate tick decrement counter
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
168 L007F clra clear A
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
169 pshs a and save it on the stack
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
170 ldy <D.CLTb get pointer to VIRQ Polling Entries
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
171 bra L009E go to the processing portion of the loop
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
172 L0087 ldd Vi.Cnt,x get count down counter
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
173 subd #$0001 subtract tick count
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
174 bne L009C branch if not at terminal count ($0000)
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
175 lda #$01
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
176 sta ,s set flag on stack to 1
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
177 lda Vi.Stat,x get status byte
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
178 beq DelEntry branch if zero (one shot, so delete)
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
179 L0096 ora #Vi.IFlag set interrupted flag
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
180 sta Vi.Stat,x save in packet
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
181 ldd Vi.Rst,x get reset count
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
182 L009C std Vi.Cnt,x save tick count back
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
183 L009E ldx ,y++ get two bytes at Y
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
184 bne L0087 if not zero, branch
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
185 lda ,s+ else get byte off stack
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
186 beq GoAltIRQ branch if zero
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
187 ldx <D.Proc else get pointer to current process descriptor
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
188 beq L00AE branch if none
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
189 tst P$State,x test process state
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
190 bpl UsrPoll branch if system state not set
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
191 L00AE jsr [>D.Poll] poll ISRs
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
192 bcc L00AE keep polling until carry set
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
193 GoAltIRQ
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
194 jmp [>D.AltIRQ] jump into an alternate IRQ if available
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
195 DelEntry
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
196 bsr DelVIRQ delete the VIRQ entry
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
197 bra L0096
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
198
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
199 UsrPoll leay >up@,pcr point to routine to execute
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
200 jmp [>D.URtoSs] User to System
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
201 up@ jsr [>D.Poll] call polling routine
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
202 bcc up@ keep polling until carry set
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
203 ldx <D.Proc get current process descriptor
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
204 ldb P$State,x and its state
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
205 andb #^SysState turn off sysstate bit
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
206 stb P$State,x save new state
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
207 ldd <P$SWI2,x
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
208 std <D.SWI2
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
209 ldd <D.UsrIRQ
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
210 std <D.SvcIRQ
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
211 bra GoAltIRQ
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
212
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
213 DelVIRQ pshs y,x save off Y,X
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
214 dl@ ldx ,y++ get next entry
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
215 stx -$04,y move up
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
216 bne dl@ continue until all are moved
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
217 puls y,x restore
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
218 leay -2,y move back 2 from Y (points to last entry)
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
219 rts return
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
220
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
221 * Install or Remove VIRQ Entry
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
222 FVIRQ pshs cc
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
223 orcc #IntMasks mask all interrupts
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
224 ldy <D.CLTb get pointer to VIRQ polling table
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
225 ldx <D.Init get pointer to init module
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
226 ldb PollCnt,x get poll count
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
227 ldx R$X,u get pointer to caller's X
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
228 beq L0118 branch if removing
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
229 tst ,y entry available?
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
230 beq L010C
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
231 subb #$02
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
232 lslb
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
233 leay b,y
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
234 tst ,y
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
235 bne PTblFul polling table full
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
236 L0106 tst ,--y
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
237 beq L0106
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
238 leay $02,y
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
239 L010C ldx R$Y,u
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
240 stx ,y
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
241 ldy R$D,u
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
242 sty ,x
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
243 bra L0124
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
244 L0118 leax R$Y,u X = caller's Y
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
245 L011A tst ,y end of VIRQ table
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
246 beq L0124 branch if so
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
247 cmpx ,y++ else compare to current VIRQ entry and inc Y
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
248 bne L011A continue searching if not matched
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
249 bsr DelVIRQ else delete entry
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
250 L0124 puls cc
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
251 clrb
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
252 rts
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
253 PTblFul puls cc
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
254 comb
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
255 ldb #E$Poll
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
256 rts
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
257
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
258
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
259
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
260 * F$Time system call code
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
261 FTime ldx R$X,u
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
262 ldd <D.Year
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
263 std ,x
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
264 ldd <D.Day
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
265 std 2,x
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
266 ldd <D.Min
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
267 std 4,x
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
268 clrb
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
269 rts
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
270
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
271 emod
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
272 len equ *
174eb9eda7b1 New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Neal Crook <foofoobedoo@gmail.com>
parents:
diff changeset
273 end