annotate level1/modules/kernel/krn.asm @ 3277:33d539c123cf

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