Mercurial > hg > Members > kono > nitros9-code
annotate level1/modules/mc09clock.asm @ 3116:174eb9eda7b1
New port "mc09" for Multicomp09, an FPGA-based 6809 machine
Include new commands/descriptor for mc09 clock and SD controller
author | Neal Crook <foofoobedoo@gmail.com> |
---|---|
date | Sat, 17 Oct 2015 21:21:11 +0100 |
parents | |
children |
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 |