annotate level1/modules/kernel/krn.asm @ 3057:1a76d7b57aa6

level 1 krn: Fix stack injection on 6309
author Tormod Volden <debian.tormod@gmail.com>
date Sun, 25 Jan 2015 22:36:04 +0100
parents dde1b2fc79fc
children fa4b4ae537c1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
1 ********************************************************************
1587
5f18094d961d kernel modules renamed to krn, updated makefiles, clock2_tc3 now clock2_cloud9...
boisy
parents: 1460
diff changeset
2 * Krn - NitrOS-9 Level 1 Kernel
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
3 *
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
4 * $Id$
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
5 *
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
6 * This is how the memory map looks after the kernel has initialized:
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
7 *
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
8 * $0000----> ==================================
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
9 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
10 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
11 * $0020-$0111 | System Globals (D.FMBM-D.XNMI) |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
12 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
13 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
14 * $0200---->|==================================|
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
15 * | Free Memory Bitmap |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
16 * $0200-$021F | (1 bit = 256 byte page) |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
17 * |----------------------------------|
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
18 * $0220-$0221 | IOMan I/O Call Pointer |
775551ca320f Added comments
boisy
parents: 2006
diff changeset
19 * |----------------------------------|
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
20 * | System Dispatch Table |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
21 * $0222-$0291 | (Room for 56 addresses) |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
22 * |----------------------------------|
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
23 * $0292-$02FF | User Dispatch Table |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
24 * | (Room for 56 addresses) |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
25 * $0300---->|==================================|
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
26 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
27 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
28 * $0300-$03FF | Module Directory Entries |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
29 * | (Room for 64 entries) |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
30 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
31 * $0400---->|==================================|
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
32 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
33 * $0400-$04FF | System Stack |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
34 * | |
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
35 * $0500---->|==================================|
2618
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
36 * | |
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
37 * | |
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
38 * | |
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
39 * $0500-$08FF | Screen Memory (Atari Only) |
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
40 * | |
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
41 * | |
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
42 * | |
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
43 * $0900---->|==================================|
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
44 *
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
45 * Edt/Rev YYYY/MM/DD Modified by
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
46 * Comment
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
47 * ------------------------------------------------------------------
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
48 * 14 1985/??/??
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
49 * From Tandy OS-9 Level One VR 02.00.00
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
50 *
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
51 * 15 2002/07/21 Boisy G. Pitre
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
52 * Module validation consists only of module header parity check.
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
53 * CRC check is not done unless D.CRC is set to 1, which is NOT the
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
54 * default case. By default, D.CRC is set to 0, thus there is no
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
55 * CRC checking. Speeds up module loads quite a bit. The Init module
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
56 * has a bit in a compatibility byte that can turn on/off CRC checking
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
57 *
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
58 * 15r1 2003/12/09 Boisy G. Pitre
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
59 * Kernel no longer scans for modules in I/O space. Also, F$PrsNam now
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
60 * allows _ and 0-9 as first chars of a filename.
1587
5f18094d961d kernel modules renamed to krn, updated makefiles, clock2_tc3 now clock2_cloud9...
boisy
parents: 1460
diff changeset
61 *
5f18094d961d kernel modules renamed to krn, updated makefiles, clock2_tc3 now clock2_cloud9...
boisy
parents: 1460
diff changeset
62 * 15r1 2004/05/23 Boisy G. Pitre
5f18094d961d kernel modules renamed to krn, updated makefiles, clock2_tc3 now clock2_cloud9...
boisy
parents: 1460
diff changeset
63 * Renamed to 'krn'
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
64 *
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
65 * 16 2004/05/23 Boisy G. Pitre
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
66 * Added changes for Atari port
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
67
1587
5f18094d961d kernel modules renamed to krn, updated makefiles, clock2_tc3 now clock2_cloud9...
boisy
parents: 1460
diff changeset
68 nam krn
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
69 ttl NitrOS-9 Level 1 Kernel
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
70
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
71 ifp1
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
72 use defsfile
2618
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
73 IFNE atari
2622
1df7d248bb24 Made progress... clock is running, fixed some stuff, things are working
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2620
diff changeset
74 use atari.d
2618
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
75 ENDC
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
76 endc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
77
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
78 tylg set Systm+Objct
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
79 atrv set ReEnt+rev
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
80 rev set $00
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
81 edition set 16
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
82
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
83 ModTop mod eom,name,tylg,atrv,OS9Cold,size
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
84
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
85 size equ .
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
86
1663
e0208af7e616 Capitalized first letter in Krn
boisy
parents: 1622
diff changeset
87 name fcs /Krn/
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
88 fcb edition
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
89
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
90 *
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
91 * OS-9 Genesis!
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
92
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
93 OS9Cold equ *
2618
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
94
2252
41a797492324 Updated
boisy
parents: 2049
diff changeset
95 * clear out system globals from $0000-$0400
41a797492324 Updated
boisy
parents: 2049
diff changeset
96 * ldx #D.FMBM
41a797492324 Updated
boisy
parents: 2049
diff changeset
97 ldx #$0000
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
98 IFNE H6309
2252
41a797492324 Updated
boisy
parents: 2049
diff changeset
99 * ldw #$400-D.FMBM
41a797492324 Updated
boisy
parents: 2049
diff changeset
100 ldw #$400
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
101 leay Zoro,pc
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
102 tfm y,x+
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
103 ELSE
2252
41a797492324 Updated
boisy
parents: 2049
diff changeset
104 * ldy #$400-D.FMBM
41a797492324 Updated
boisy
parents: 2049
diff changeset
105 ldy #$400
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
106 clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
107 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
108 L007F std ,x++
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
109 leay -2,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
110 bne L007F
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
111 ENDC
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
112
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
113 * set up system globals
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
114 IFNE H6309
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
115 ldd #$200
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
116 ELSE
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
117 inca
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
118 inca D = $200
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
119 ENDC
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
120 std <D.FMBM $200 = start of free memory bitmap
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
121 addb #$20
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
122 std <D.FMBM+2 $220 = end of free memory bitmap
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
123 addb #$02
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
124 std <D.SysDis $222 = addr of sys dispatch tbl
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
125 addb #$70
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
126 std <D.UsrDis $292 = addr of usr dispatch tbl
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
127 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
128 inca D = $300
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
129 std <D.ModDir $300 = mod dir start
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
130 stx <D.ModDir+2 X = $400 = mod dir end
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
131 leas >$0100,x S = $500 (system stack?)
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
132
2653
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
133 * NOTE: This routine checks for RAM by writing a pattern at an address
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
134 * then reading it back for validation. On the CoCo, we pretty much know
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
135 * that we are in all-RAM mode at this point, and the same goes for the
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
136 * other supported platforms. So I am taking this code out for the time being.
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
137
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
138 IFNE CHECK_FOR_VALID_RAM
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
139 * Check for valid RAM starting at $400
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
140 ChkRAM leay ,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
141 ldd ,y store org contents in D
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
142 ldx #$00FF
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
143 stx ,y write pattern to ,Y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
144 cmpx ,y same as what we wrote?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
145 bne L00C2 nope, not RAM here!
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
146 ldx #$FF00 try different pattern
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
147 stx ,y write it to ,Y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
148 cmpx ,y same as what we wrote?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
149 bne L00C2 nope, not RAM here!
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
150 std ,y else restore org contents
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
151 leax >$0100,y check top of next 256 block
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
152 IFNE atari
2625
d1ea3dc90082 More progress... now booting with DriveWire
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
153 cmpx #$8000 stop short of ROM starting at $8000
d1ea3dc90082 More progress... now booting with DriveWire
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
154 ELSE
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
155 cmpx #Bt.Start stop short of boot track mem
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
156 ENDC
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
157 bcs ChkRAM
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
158 leay ,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
159 * Here, Y = end of RAM
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
160 L00C2 leax ,y X = end of RAM
2653
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
161
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
162 ELSE
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
163
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
164 IFNE atari
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
165 ldx #$8000
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
166 ELSE
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
167 ldx #Bt.Start
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
168 ENDC
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
169 ENDC
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
170 stx <D.MLIM save off memory limit
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
171
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
172 * Copy vector code over to address $100
2653
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
173 pshs x
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
174 IFNE H6309
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
175 leax >VectCode,pcr
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
176 ldy #D.XSWI3
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
177 ldw #VectCSz
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
178 tfm x+,y+
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
179 ELSE
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
180 leax >VectCode,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
181 ldy #D.XSWI3
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
182 ldb #VectCSz
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
183 L00D2 lda ,x+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
184 sta ,y+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
185 decb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
186 bne L00D2
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
187 ENDC
2653
40d55004f686 o krn.asm: Conditionalized out code in kernel to check for top of RAM
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2649
diff changeset
188 puls x
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
189
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
190 IFNE atari
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
191 ldy #$D000
2649
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
192
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
193 inc <D.Boot
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
194 stx <D.BTLO
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
195 ldx #$FFFF
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
196 stx <D.BTHI
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
197
2625
d1ea3dc90082 More progress... now booting with DriveWire
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
198 ELSE
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
199 ldy #Bt.Start+Bt.Size
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
200 ENDC
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
201
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
202 lbsr ValMods
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
203 IFNE atari
2649
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
204
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
205 ldx #$D800
2649
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
206 ldy #$F400
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
207 lbsr ValMods
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
208 ENDC
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
209
1460
2078e274b963 Start of addition of 6309 code in kernel
boisy
parents: 1458
diff changeset
210 * Copy vectors to system globals
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
211 L00EE leay >Vectors,pcr
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
212 leax >ModTop,pcr
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
213 pshs x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
214 ldx #D.SWI3
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
215 L00FB ldd ,y++
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
216 addd ,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
217 std ,x++
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
218 cmpx #D.NMI
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
219 bls L00FB
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
220 leas 2,s restore stack
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
221
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
222 * fill in more system globals
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
223 leax >URtoSs,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
224 stx <D.URtoSs
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
225 leax >UsrIRQ,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
226 stx <D.UsrIRQ
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
227 leax >UsrSvc,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
228 stx <D.UsrSvc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
229 leax >SysIRQ,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
230 stx <D.SysIRQ
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
231 stx <D.SvcIRQ
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
232 leax >SysSvc,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
233 stx <D.SysSvc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
234 stx <D.SWI2
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
235 leax >Poll,pcr point to default poll routine
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
236 stx <D.Poll and save it
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
237 leax >Clock,pcr get default clock routine
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
238 stx <D.Clock and save it to the vector
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
239 stx <D.AltIRQ and in the alternate IRQ vector
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
240
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
241 * install system calls
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
242 leay >SysTbl,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
243 lbsr InstSSvc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
244
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
245 * link to init module
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
246 lda #Systm+0
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
247 leax >InitNam,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
248 os9 F$Link
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
249 lbcs OS9Cold
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
250 stu <D.Init
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
251 lda Feature1,u get feature byte 1
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
252 bita #CRCOn CRC on?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
253 beq GetMem branch if not (already cleared earlier)
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
254 inc <D.CRC else turn on CRC checking
2770
bfe3de781ddf Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2710
diff changeset
255 *GetMem ldd MaxMem+1,u I don't think this exists for Level1 RG
2732
43300b4f840a Robert Gault submitted changes to the level1/modules/kernel/krn.asm file related to free pages being less than what they should be.
drencor-xeen
parents: 2731
diff changeset
256 * clrb
2770
bfe3de781ddf Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2710
diff changeset
257 * cmpd <D.MLIM starts as $EE00
2732
43300b4f840a Robert Gault submitted changes to the level1/modules/kernel/krn.asm file related to free pages being less than what they should be.
drencor-xeen
parents: 2731
diff changeset
258 * bcc L0158
43300b4f840a Robert Gault submitted changes to the level1/modules/kernel/krn.asm file related to free pages being less than what they should be.
drencor-xeen
parents: 2731
diff changeset
259 * std <D.MLIM
2770
bfe3de781ddf Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2710
diff changeset
260 GetMem equ * Initially I tried GetMem clra
bfe3de781ddf Added Arduino dwread/dwwrite changes
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2710
diff changeset
261 * that is redundant. See last line. RG
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
262 L0158 ldx <D.FMBM
2618
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
263 IFNE atari
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
264 * In the Atari, memory $0000-$08FF is used by the system
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
265 ldb #%11111111
2619
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
266 stb ,x mark $0000-$07FF as allocated
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
267 stb $1A,x mark $D000-$D7FF I/O area as allocated
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
268 ldb #%10000000
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
269 stb 1,x mark $0800-$08FF as allocated
2618
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
270 ELSE
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
271 * In the CoCo, memory $0000-$04FF is used by the system
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
272 ldb #%11111000
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
273 stb ,x
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
274 ENDC
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
275 clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
276 ldb <D.MLIM
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
277 negb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
278 tfr d,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
279 negb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
280 lbsr L065A
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
281
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
282 * jump into krnp2 here
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
283 leax >P2Nam,pcr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
284 lda #Systm+Objct
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
285 os9 F$Link
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
286 lbcs OS9Cold
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
287 jmp ,y
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
288
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
289 SWI3 pshs pc,x,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
290 ldb #P$SWI3
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
291 bra L018C
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
292 SWI2 pshs pc,x,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
293 ldb #P$SWI2
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
294 bra L018C
2622
1df7d248bb24 Made progress... clock is running, fixed some stuff, things are working
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2620
diff changeset
295 SVCNMI jmp [>D.NMI]
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
296 DUMMY rti
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
297 SVCIRQ jmp [>D.SvcIRQ]
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
298 SWI pshs pc,x,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
299 ldb #P$SWI
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
300 L018C ldx >D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
301 ldx b,x get SWI entry
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
302 stx 3,s put in PC on stack
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
303 puls pc,x,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
304
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
305 UsrIRQ leay <DoIRQPoll,pcr
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
306 * transition from user to system state
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
307 URtoSs clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
308 tfr a,dp clear direct page
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
309 ldx <D.Proc get current process desc
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
310 * Note that we are putting the system state service routine address into
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
311 * the D.SWI2 vector. If a system call is made while we are in system state,
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
312 * D.SWI2 will be vectored to the system state service routine vector.
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
313 ldd <D.SysSvc get system state system call vector
775551ca320f Added comments
boisy
parents: 2006
diff changeset
314 std <D.SWI2 store in D.SWI2
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
315 * The same comment above applies to the IRQ service vector.
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
316 ldd <D.SysIRQ get system IRQ vector
775551ca320f Added comments
boisy
parents: 2006
diff changeset
317 std <D.SvcIRQ store in D.SvcIRQ
775551ca320f Added comments
boisy
parents: 2006
diff changeset
318 leau ,s point U to S
775551ca320f Added comments
boisy
parents: 2006
diff changeset
319 stu P$SP,x and save in process P$SP
775551ca320f Added comments
boisy
parents: 2006
diff changeset
320 lda P$State,x get state field in proc desc
775551ca320f Added comments
boisy
parents: 2006
diff changeset
321 ora #SysState mark process to be in system state
775551ca320f Added comments
boisy
parents: 2006
diff changeset
322 sta P$State,x store it
775551ca320f Added comments
boisy
parents: 2006
diff changeset
323 jmp ,y jump to ,y
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
324
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
325 DoIRQPoll
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
326 jsr [>D.Poll] call vectored polling routine
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
327 bcc L01BD branch if carry clear
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
328 ldb ,s get the CC on the stack
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
329 orb #IRQMask mask IRQs
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
330 stb ,s and save it back
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
331 L01BD lbra ActivateProc
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
332
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
333
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
334
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
335 SysIRQ clra
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
336 tfr a,dp make DP be 0
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
337 jsr [>D.Poll] call the vectored IRQ polling routine
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
338 bcc L01CF branch if carry is clear
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
339 ldb ,s get the CC on the stack
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
340 orb #IRQMask mask IRQs
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
341 stb ,s and save it back
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
342 L01CF rti
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
343
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
344 Poll comb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
345 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
346
2017
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
347 * Default clock routine - executed 60 times/sec
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
348 Clock ldx <D.SProcQ get pointer to sleeping proc queue
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
349 beq L01FD branch if no process sleeping
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
350 lda P$State,x get state of that process
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
351 bita #TimSleep timed sleep?
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
352 beq L01FD branch if clear
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
353 ldu P$SP,x else get process stack pointer
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
354 ldd R$X,u get the value of the process X reg
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
355 subd #$0001 subtract one from it
3054
22ddd48b4ec2 level1 krn: Fix scheduler bug that only affected 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 2898
diff changeset
356 std R$X,u and store it back
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
357 bne L01FD branch if not zero (still will sleep)
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
358 L01E7 ldu P$Queue,x get process current queue pointer
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
359 bsr L021A
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
360 leax ,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
361 beq L01FB
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
362 lda P$State,x get process state byte
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
363 bita #TimSleep bit set?
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
364 beq L01FB branch if not
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
365 ldu P$SP,x get process stack pointer
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
366 ldd R$X,u then get process X register
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
367 beq L01E7 branch if zero
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
368 L01FB stx <D.SProcQ
2017
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
369 L01FD dec <D.Slice decrement slice
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
370 bne ClockRTI if not 0, exit ISR
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
371 lda <D.TSlice else get default time slice
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
372 sta <D.Slice and save it as slice
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
373 ldx <D.Proc get proc desc of current proc
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
374 beq ClockRTI if none, exit ISR
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
375 lda P$State,x get process state
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
376 ora #TimOut set timeout bit
f273e28ea8d0 Breaking kernel down into individual files... added comments
boisy
parents: 2012
diff changeset
377 sta P$State,x and store back
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
378 bpl L0212 branch if not system state
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
379 ClockRTI rti
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
380
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
381 L0212 leay >ActivateProc,pcr
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
382 bra URtoSs
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
383
2006
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
384
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
385 *FAProc ldx R$X,u Get ptr to process to activate
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
386 *L0D11 clrb
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
387 * pshs cc,b,x,y,u
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
388 * lda P$Prior,x Get process priority
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
389 * sta P$Age,x Save it as age (How long it's been around)
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
390 * orcc #IntMasks Shut down IRQ's
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
391 * ldu #(D.AProcQ-P$Queue) Get ptr to active process queue
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
392 * bra L0D29 Go through the chain
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
393 ** Update active process queue
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
394 ** X=Process to activate
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
395 ** U=Current process in queue links
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
396 *L0D1F inc P$Age,u update current process age
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
397 * bne L0D25 wrap?
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
398 * dec P$Age,u yes, reset it to max.
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
399 *L0D25 cmpa P$Age,u match process ages??
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
400 * bhi L0D2B no, skip update
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
401 *L0D29 leay ,u point Y to current process
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
402 *L0D2B ldu P$Queue,u get pointer to next process in chain
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
403 * bne L0D1F Still more in chain, keep going
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
404 * ldd P$Queue,y
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
405 * stx P$Queue,y save new process to chain
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
406 * std P$Queue,x
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
407 * puls cc,b,x,y,u,pc
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
408
31ca1a8e9a3a Added comments
boisy
parents: 1663
diff changeset
409
2049
0cf8513d33d7 Updated for new structure
boisy
parents: 2032
diff changeset
410 use faproc.asm
2018
505c8d261ef6 Futher division of krn, commnents added
boisy
parents: 2017
diff changeset
411
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
412 * User-State system call entry point
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
413 *
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
414 * All system calls made from user-state will go through this code.
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
415 UsrSvc leay <MakeSysCall,pcr
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
416 orcc #IntMasks
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
417 lbra URtoSs
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
418
2023
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
419 MakeSysCall
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
420 andcc #^IntMasks unmask IRQ/FIRQ
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
421 ldy <D.UsrDis get pointer to user syscall dispatch table
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
422 bsr DoSysCall go do the system call
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
423 ActivateProc
dbaeafb56535 Added comments and renamed some labels
boisy
parents: 2020
diff changeset
424 ldx <D.Proc get current proc desc
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
425 beq FNProc branch to FNProc if none
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
426 orcc #IntMasks mask interrupts
775551ca320f Added comments
boisy
parents: 2006
diff changeset
427 ldb P$State,x get state value in proc desc
775551ca320f Added comments
boisy
parents: 2006
diff changeset
428 andb #^SysState turn off system state flag
775551ca320f Added comments
boisy
parents: 2006
diff changeset
429 stb P$State,x save state value
775551ca320f Added comments
boisy
parents: 2006
diff changeset
430 bitb #TimOut timeout bit set?
775551ca320f Added comments
boisy
parents: 2006
diff changeset
431 beq L02D1 branch if not
775551ca320f Added comments
boisy
parents: 2006
diff changeset
432 andb #^TimOut else turn off bit
775551ca320f Added comments
boisy
parents: 2006
diff changeset
433 stb P$State,x in state value
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
434 bsr L021A
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
435 bra FNProc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
436
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
437 * System-State system call entry point
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
438 SysSvc clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
439 tfr a,dp set direct page to 0
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
440 leau ,s point U to SP
775551ca320f Added comments
boisy
parents: 2006
diff changeset
441 ldy <D.SysDis get system state dispatch table ptr
775551ca320f Added comments
boisy
parents: 2006
diff changeset
442 bsr DoSysCall
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
443 rti
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
444
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
445 * Entry: Y = Dispatch table (user or system)
775551ca320f Added comments
boisy
parents: 2006
diff changeset
446 DoSysCall
775551ca320f Added comments
boisy
parents: 2006
diff changeset
447 pshs u
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
448 ldx R$PC,u point X to PC
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
449 ldb ,x+ get func code at X
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
450 stx R$PC,u restore updated PC
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
451 lslb high bit set?
775551ca320f Added comments
boisy
parents: 2006
diff changeset
452 bcc L0288 branch if not (non I/O call)
775551ca320f Added comments
boisy
parents: 2006
diff changeset
453 rorb else restore B (its an I/O call)
775551ca320f Added comments
boisy
parents: 2006
diff changeset
454 ldx -2,y grab IOMan vector
775551ca320f Added comments
boisy
parents: 2006
diff changeset
455 * Note: should check if X is zero in case IOMan was not installed.
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
456 bra L0290
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
457 L0288 cmpb #$37*2
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
458 bcc L02A7
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
459 ldx b,y X = addr of system call
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
460 beq L02A7
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
461 L0290 jsr ,x jsr into system call
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
462 L0292 puls u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
463 tfr cc,a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
464 bcc FixCC branch if no error
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
465 stb R$B,u store error code
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
466 FixCC ldb R$CC,u get caller's CC
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
467 andb #^(Negative+Zero+TwosOvfl+Carry)
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
468 stb R$CC,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
469 anda #Negative+Zero+TwosOvfl+Carry
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
470 ora R$CC,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
471 sta R$CC,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
472 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
473 L02A7 comb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
474 ldb #E$UnkSvc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
475 bra L0292
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
476
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
477 * no signal handler, exit with signal value as exit code
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
478 L02AC ldb P$State,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
479 orb #SysState
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
480 stb P$State,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
481 ldb <P$Signal,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
482 andcc #^(IntMasks)
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
483 os9 F$Exit
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
484
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
485 FNProc clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
486 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
487 std <D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
488 bra L02C2
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
489 * execution goes here when there are no active processes
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
490 L02C0 cwai #^(IntMasks)
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
491 L02C2 orcc #IntMasks
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
492 ldx <D.AProcQ get next active process
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
493 beq L02C0 CWAI if none
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
494 ldd P$Queue,x get queue ptr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
495 std <D.AProcQ store in Active Q
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
496 stx <D.Proc store in current process
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
497 lds P$SP,x get process' stack ptr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
498 L02D1 ldb P$State,x get state
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
499 bmi L0308 branch if system state
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
500 bitb #Condem process condemned?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
501 bne L02AC branch if so...
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
502 ldb <P$Signal,x get signal no
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
503 beq L02FF branch if none
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
504 decb decrement
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
505 beq L02FC branch if wake up
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
506 ldu <P$SigVec,x get signal handler addr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
507 beq L02AC branch if none
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
508 ldy <P$SigDat,x get data addr
3055
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
509 ldd R$Y,s
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
510 * set up new return stack for RTI
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
511 pshs u,y,d new PC (sigvec), new U (sigdat), same Y
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
512 ldu 6+R$X,s old X via U
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
513 lda <P$Signal,x signal ...
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
514 ldb 6+R$DP,s and old DP ...
3056
dde1b2fc79fc level1 krn: Fix signal dispatch for 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3055
diff changeset
515 IFEQ H6309
3055
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
516 tfr d,y via Y
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
517 ldd 6+R$CC,s old CC and A via D
35db67ca1302 level1 krn: Fix signal dispatch code to use R$ macros
Tormod Volden <debian.tormod@gmail.com>
parents: 3054
diff changeset
518 pshs u,y,d same X, same DP / new B (signal), same A / CC
3056
dde1b2fc79fc level1 krn: Fix signal dispatch for 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3055
diff changeset
519 ELSE
dde1b2fc79fc level1 krn: Fix signal dispatch for 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3055
diff changeset
520 pshs u,b same X, same DP
dde1b2fc79fc level1 krn: Fix signal dispatch for 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3055
diff changeset
521 pshsw same W
dde1b2fc79fc level1 krn: Fix signal dispatch for 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3055
diff changeset
522 pshs a new B (signal)
dde1b2fc79fc level1 krn: Fix signal dispatch for 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3055
diff changeset
523 ldd 6+6+R$CC,s
dde1b2fc79fc level1 krn: Fix signal dispatch for 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3055
diff changeset
524 pshs d same A / CC
dde1b2fc79fc level1 krn: Fix signal dispatch for 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3055
diff changeset
525 ENDC
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
526 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
527 L02FC stb <P$Signal,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
528 L02FF ldd <P$SWI2,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
529 std <D.SWI2
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
530 ldd <D.UsrIRQ
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
531 std <D.SvcIRQ
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
532 L0308 rti
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
533
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
534 FLink pshs u save caller regs
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
535 ldd R$A,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
536 ldx R$X,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
537 lbsr L0443
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
538 bcc FLinkOK
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
539 ldb #E$MNF
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
540 bra L033D
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
541 * U = module dir entry
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
542 FLinkOK ldy ,u get module ptr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
543 ldb M$Revs,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
544 bitb #ReEnt reentrant?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
545 bne L032A branch if so
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
546 tst $02,u link count zero?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
547 beq L032A yep, ok to link to nonreent
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
548 comb else module is busy
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
549 ldb #E$ModBsy
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
550 bra L033D
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
551 L032A inc $02,u increment link count
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
552 ldu ,s get caller regs from stack
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
553 stx R$X,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
554 sty R$U,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
555 ldd M$Type,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
556 std R$D,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
557 ldd M$IDSize,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
558 leax d,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
559 stx R$Y,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
560 L033D puls pc,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
561
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
562 FVModul pshs u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
563 ldx R$X,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
564 bsr ValMod
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
565 puls y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
566 stu R$U,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
567 rts
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
568
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
569 * X = address of module to validate
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
570 ValMod bsr ChkMHCRC
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
571 bcs ValModEx
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
572 lda M$Type,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
573 pshs x,a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
574 ldd M$Name,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
575 leax d,x X = addr of name in mod
2710
ab3a2531c000 Fixed makefiles and assembly for ATARI port
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2653
diff changeset
576 IFNE atari
2649
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
577 * jsr [>$FFE8]
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
578 * lda #$20
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
579 * jsr [>$FFE4]
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
580 ENDC
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
581 puls a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
582 lbsr L0443
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
583 puls x
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
584 bcs ValLea
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
585 ldb #E$KwnMod
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
586 cmpx ,u
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
587 beq errex@
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
588 lda M$Revs,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
589 anda #RevsMask
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
590 pshs a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
591 ldy ,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
592 lda M$Revs,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
593 anda #RevsMask
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
594 cmpa ,s+ same revision as other mod?
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
595 bcc errex@
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
596 pshs y,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
597 ldb M$Size,u
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
598 bne ValPul
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
599 ldx ,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
600 cmpx <D.BTLO
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
601 bcc ValPul
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
602 ldd $02,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
603 addd #$00FF
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
604 tfr a,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
605 clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
606 tfr d,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
607 ldb ,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
608 ldx <D.FMBM
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
609 os9 F$DelBit
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
610 clr $02,u
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
611 ValPul puls y,x
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
612 ValSto stx ,u
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
613 clrb
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
614 ValModEx rts
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
615 ValLea leay ,u
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
616 bne ValSto
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
617 ldb #E$DirFul
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
618 errex@ coma
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
619 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
620
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
621 * check module header and CRC
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
622 * X = address of potential module
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
623 ChkMHCRC ldd ,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
624 cmpd #M$ID12 sync bytes?
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
625 bne ChkMHEx nope, not a module here
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
626 leay M$Parity,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
627 bsr ChkMHPar check header parity
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
628 bcc Chk4CRC branch if ok
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
629 ChkMHEx comb
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
630 ldb #E$BMID
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
631 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
632
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
633 Chk4CRC
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
634 * Following 4 lines added to support no CRC checks - 2002/07/21
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
635 lda <D.CRC is CRC checking on?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
636 bne DoCRCCk branch if so
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
637 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
638 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
639
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
640 DoCRCCk pshs x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
641 ldy M$Size,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
642 bsr ChkMCRC checkm module CRC
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
643 puls pc,x
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
644
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
645 * check module header parity
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
646 * Y = pointer to parity byte
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
647 ChkMHPar pshs y,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
648 clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
649 ChkM010 eora ,x+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
650 cmpx 2,s compare to addr of M$Parity
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
651 bls ChkM010
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
652 cmpa #$FF
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
653 puls pc,y,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
654 * X = address of potential module
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
655 * Y = size of module
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
656 ChkMCRC ldd #$FFFF
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
657 pshs b,a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
658 pshs b,a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
659 leau 1,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
660 L03D4 lda ,x+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
661 bsr CRCAlgo
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
662 leay -1,y dec Y (size of module)
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
663 bne L03D4 continue
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
664 clr -1,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
665 lda ,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
666 cmpa #CRCCon1
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
667 bne L03EC
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
668 ldd 1,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
669 cmpd #CRCCon23
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
670 beq L03EF
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
671 L03EC comb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
672 ldb #E$BMCRC
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
673 L03EF puls pc,y,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
674
2049
0cf8513d33d7 Updated for new structure
boisy
parents: 2032
diff changeset
675 use fcrc.asm
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
676
2649
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
677 L0443
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
678 ldu #$0000
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
679 tfr a,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
680 anda #TypeMask
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
681 andb #LangMask
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
682 pshs u,y,x,b,a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
683 bsr EatSpace
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
684 cmpa #PDELIM pathlist char?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
685 beq L049C branch if so
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
686 lbsr ParseNam parse name
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
687 bcs L049D return if error
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
688 ldu <D.ModDir
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
689 L045B pshs u,y,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
690 ldu ,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
691 beq L048B
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
692 ldd $04,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
693 leay d,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
694 ldb ,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
695 lbsr L07AB
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
696 bcs L0493
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
697 lda $05,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
698 beq L0476
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
699 eora $06,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
700 anda #$F0
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
701 bne L0493
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
702 L0476 lda $06,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
703 beq L0480
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
704 eora $06,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
705 anda #$0F
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
706 bne L0493
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
707 L0480 puls u,x,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
708 stu $06,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
709 bsr EatSpace
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
710 stx $02,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
711 clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
712 bra L049D
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
713 L048B ldd $0B,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
714 bne L0493
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
715 ldd $03,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
716 std $0B,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
717 L0493 puls u,y,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
718 leau $04,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
719 cmpu <D.ModDir+2
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
720 bcs L045B
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
721 L049C comb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
722 L049D puls pc,u,y,x,b,a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
723
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
724 EatSpace lda #C$SPAC
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
725 EatSpc10 cmpa ,x+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
726 beq EatSpc10
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
727 lda ,-x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
728 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
729
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
730 FFork ldx <D.PrcDBT
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
731 os9 F$All64
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
732 bcs L0517
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
733 ldx <D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
734 pshs x save calling proc desc on stack
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
735 ldd P$User,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
736 std P$User,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
737 lda P$Prior,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
738 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
739 std P$Prior,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
740 ldb #SysState
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
741 stb P$State,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
742 sty <D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
743 ldd <P$NIO,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
744 std <P$NIO,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
745 ldd <P$NIO+2,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
746 std <P$NIO+2,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
747 leax <P$DIO,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
748 leay <P$DIO,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
749 ldb #DefIOSiz
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
750 * copy I/O stuff from parent to child
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
751 L04D7 lda ,x+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
752 sta ,y+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
753 decb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
754 bne L04D7
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
755 * X/Y = address of path table in respective proc desc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
756 * Dup stdin/stdout/stderr
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
757 ldb #$03
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
758 L04E0 lda ,x+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
759 os9 I$Dup
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
760 bcc L04E8
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
761 clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
762 L04E8 sta ,y+
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
763 decb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
764 bne L04E0
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
765 bsr L0553
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
766 bcs L050C
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
767 puls y get parent proc desc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
768 sty <D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
769 lda P$ID,x get ID of new process
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
770 sta R$A,u store in caller's A
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
771 ldb P$CID,y get child id of parent
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
772 sta P$CID,y store new proc in parent's CID
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
773 lda P$ID,y get ID of parent
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
774 std P$PID,x store in child proc desc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
775 ldb P$State,x update state of child
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
776 andb #^SysState
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
777 stb P$State,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
778 os9 F$AProc insert child in active Q
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
779 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
780 L050C pshs b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
781 os9 F$Exit
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
782 comb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
783 puls x,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
784 stx <D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
785 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
786 L0517 comb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
787 ldb #E$PrcFul
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
788 rts
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
789
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
790 FChain bsr L0543
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
791 bcs L0531
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
792 orcc #IntMasks
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
793 ldb $0D,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
794 andb #$7F
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
795 stb $0D,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
796 L0527 os9 F$AProc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
797 os9 F$NProc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
798
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
799 SFChain bsr L0543
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
800 bcc L0527
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
801 L0531 pshs b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
802 stb <P$Signal,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
803 ldb P$State,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
804 orb #Condem
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
805 stb P$State,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
806 ldb #$FF
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
807 stb P$Prior,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
808 comb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
809 puls pc,b
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
810 L0543 pshs u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
811 ldx <D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
812 ldu <P$PModul,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
813 os9 F$UnLink
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
814 ldu ,s
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
815 bsr L0553
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
816 puls pc,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
817 L0553 ldx <D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
818 pshs u,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
819 ldd <D.UsrSvc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
820 std <P$SWI,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
821 std <P$SWI2,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
822 std <P$SWI3,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
823 clra
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
824 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
825 sta <P$Signal,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
826 std <P$SigVec,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
827 lda R$A,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
828 ldx R$X,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
829 os9 F$Link
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
830 bcc L0578
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
831 os9 F$Load
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
832 bcs L05E7
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
833 L0578 ldy <D.Proc
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
834 stu <P$PModul,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
835 cmpa #Prgrm+Objct
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
836 beq L058B
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
837 cmpa #Systm+Objct
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
838 beq L058B
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
839 comb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
840 ldb #E$NEMod
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
841 bra L05E7
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
842 L058B leay ,u Y = addr of module
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
843 ldu 2,s get U off stack (caller regs)
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
844 stx R$X,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
845 lda R$B,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
846 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
847 cmpd M$Mem,y compare passed mem to module's
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
848 bcc L059B branch if less than
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
849 ldd M$Mem,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
850 L059B addd #$0000
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
851 bne L05A0
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
852 L05A0 os9 F$Mem
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
853 bcs L05E7
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
854 subd #R$Size subtract registers
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
855 subd R$Y,u subtract parameter area
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
856 bcs L05E5
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
857 ldx R$U,u get parameter area
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
858 ldd R$Y,u get parameter size
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
859 pshs b,a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
860 beq L05BE
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
861 leax d,x point to end of param area
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
862 L05B6 lda ,-x get byte, dec X
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
863 sta ,-y save byte in data area, dec X
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
864 cmpx R$U,u at top of param area?
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
865 bhi L05B6
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
866 * set up registers for return of F$Fork/F$Chain
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
867 L05BE ldx <D.Proc
3057
1a76d7b57aa6 level 1 krn: Fix stack injection on 6309
Tormod Volden <debian.tormod@gmail.com>
parents: 3056
diff changeset
868 sty -R$Size+R$X,y put in X on caller stack
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
869 leay -R$Size,y back up register size
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
870 sty P$SP,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
871 lda P$ADDR,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
872 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
873 std R$U,y lowest address
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
874 sta R$DP,y set direct page
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
875 adda P$PagCnt,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
876 std R$Y,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
877 puls b,a
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
878 std R$D,y size of param area
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
879 ldb #Entire
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
880 stb R$CC,y
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
881 ldu <P$PModul,x get addr of prim. mod
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
882 ldd M$Exec,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
883 leau d,u
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
884 stu R$PC,y put in PC on caller reg
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
885 clrb
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
886 L05E5 ldb #E$IForkP
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
887 L05E7 puls pc,u,x
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
888
2619
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
889 use fsrqmem.asm
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
890
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
891 use fallbit.asm
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
892
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
893 use fprsnam.asm
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
894
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
895 use fcmpnam.asm
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
896
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
897 use fssvc.asm
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
898
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
899 * Validate modules subroutine
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
900 * Entry: X = address to start searching
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
901 * Y = address to stop (actually stops at Y-1)
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
902 ValMods pshs y
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
903 valloop@ lbsr ValMod
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
904 bcs valerr
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
905 ldd M$Size,x
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
906 leax d,x go past module
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
907 bra valcheck
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
908 valerr cmpb #E$KwnMod
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
909 beq valret
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
910 leax 1,x
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
911 valcheck cmpx ,s
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
912 bcs valloop@
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
913 valret puls y,pc
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
914
2619
d888412d8118 o Fixed assembler issue in init.asm
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2618
diff changeset
915
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
916 VectCode bra SWI3Jmp $0100
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
917 nop
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
918 bra SWI2Jmp $0103
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
919 nop
2630
e310e8613606 Fixed earlier change from yesterday due to misunderstanding of ordering of 6809 vectors on CoCo 1/2...
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2625
diff changeset
920 bra SWIJmp $0106
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
921 nop
2630
e310e8613606 Fixed earlier change from yesterday due to misunderstanding of ordering of 6809 vectors on CoCo 1/2...
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2625
diff changeset
922 bra NMIJmp $0109
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
923 nop
2630
e310e8613606 Fixed earlier change from yesterday due to misunderstanding of ordering of 6809 vectors on CoCo 1/2...
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2625
diff changeset
924 bra IRQJmp $010C
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
925 nop
2630
e310e8613606 Fixed earlier change from yesterday due to misunderstanding of ordering of 6809 vectors on CoCo 1/2...
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2625
diff changeset
926 bra FIRQJmp $010F
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
927
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
928 SWI3Jmp jmp [>D.SWI3]
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
929 SWI2Jmp jmp [>D.SWI2]
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
930 SWIJmp jmp [>D.SWI]
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
931 NMIJmp jmp [>D.NMI]
2630
e310e8613606 Fixed earlier change from yesterday due to misunderstanding of ordering of 6809 vectors on CoCo 1/2...
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2625
diff changeset
932 IRQJmp jmp [>D.IRQ]
e310e8613606 Fixed earlier change from yesterday due to misunderstanding of ordering of 6809 vectors on CoCo 1/2...
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2625
diff changeset
933 FIRQJmp jmp [>D.FIRQ]
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
934 VectCSz equ *-VectCode
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
935
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
936
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
937 SysTbl fcb F$Link
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
938 fdb FLink-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
939 fcb F$Fork
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
940 fdb FFork-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
941 fcb F$Chain
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
942 fdb FChain-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
943 fcb F$Chain+SysState
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
944 fdb SFChain-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
945 fcb F$PrsNam
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
946 fdb FPrsNam-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
947 fcb F$CmpNam
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
948 fdb FCmpNam-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
949 fcb F$SchBit
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
950 fdb FSchBit-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
951 fcb F$AllBit
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
952 fdb FAllBit-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
953 fcb F$DelBit
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
954 fdb FDelBit-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
955 fcb F$CRC
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
956 fdb FCRC-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
957 fcb F$SRqMem+SysState
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
958 fdb FSRqMem-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
959 fcb F$SRtMem+SysState
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
960 fdb FSRtMem-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
961 fcb F$AProc+SysState
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
962 fdb FAProc-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
963 fcb F$NProc+SysState
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
964 fdb FNProc-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
965 fcb F$VModul+SysState
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
966 fdb FVModul-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
967 fcb F$SSvc
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
968 fdb FSSvc-*-2
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
969 fcb $80
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
970
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
971 IFNE H6309
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
972 Zoro fcb $00
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
973 ENDC
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
974
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
975 InitNam fcs /Init/
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
976
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
977 P2Nam fcs /krnp2/
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
978
2618
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
979 emod
e6507f116064 Atari port now boots
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2617
diff changeset
980 eom equ *
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
981
2012
775551ca320f Added comments
boisy
parents: 2006
diff changeset
982 Vectors fdb SWI3 SWI3
775551ca320f Added comments
boisy
parents: 2006
diff changeset
983 fdb SWI2 SWI2
775551ca320f Added comments
boisy
parents: 2006
diff changeset
984 fdb DUMMY FIRQ
775551ca320f Added comments
boisy
parents: 2006
diff changeset
985 fdb SVCIRQ IRQ
775551ca320f Added comments
boisy
parents: 2006
diff changeset
986 fdb SWI SWI
2620
3574de541ad4 Everything WORKS
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2619
diff changeset
987 fdb SVCNMI NMI
2649
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
988
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
989
2710
ab3a2531c000 Fixed makefiles and assembly for ATARI port
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2653
diff changeset
990 IFNE atari
2649
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
991 fdb $F3FE-(*-OS9Cold)
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
992 ENDC
2649
928b4a062979 Atari: Made mods to the kernel to boot with new Liber809 firmware
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2630
diff changeset
993
2617
b1145d2cb659 Adding atari port folder and modifications to init and krn to accommodate
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2252
diff changeset
994 eomem equ *
1453
5dbf908c1483 Kernel and KernelP2 moved to krnl/
boisy
parents:
diff changeset
995 end