Mercurial > hg > Members > kono > nitros9-code
annotate level1/modules/sysgo.asm @ 1970:19b2c99a0b80
Patches to support upgraded Dragon 32.
author | afra |
---|---|
date | Sun, 08 Jan 2006 02:39:25 +0000 |
parents | 754792b902fb |
children | 293cf1d9f5b6 |
rev | line source |
---|---|
0 | 1 ******************************************************************** |
1315 | 2 * SysGo - Kickstart program module |
0 | 3 * |
4 * $Id$ | |
5 * | |
1316 | 6 * Edt/Rev YYYY/MM/DD Modified by |
7 * Comment | |
0 | 8 * ------------------------------------------------------------------ |
1316 | 9 * 5 1998/10/12 Boisy G. Pitre |
10 * Taken from OS-9 L2 Tandy distribution and modified banner for V3. | |
11 * | |
12 * 5r2 2003/01/08 Boisy G. Pitre | |
13 * Fixed fork behavior so that if 'shell startup' fails, system doesn't | |
14 * jmp to Crash, but tries AutoEx instead. Also changed /DD back to /H0 | |
15 * for certain boot floppy cases. | |
16 * | |
17 * 2003/09/04 Boisy G. Pitre | |
18 * Back-ported to OS-9 Level One. | |
1462
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
19 * |
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
20 * 5r3 2003/12/14 Boisy G. Pitre |
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
21 * Added SHIFT key check to prevent startup/autoex from starting if |
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
22 * held down. Gene Heskett, this Bud's for you. |
0 | 23 |
24 nam SysGo | |
1315 | 25 ttl Kickstart program module |
0 | 26 |
588 | 27 IFP1 |
0 | 28 use defsfile |
29 use scfdefs | |
588 | 30 ENDC |
0 | 31 |
1315 | 32 tylg set Prgrm+Objct |
0 | 33 atrv set ReEnt+rev |
1462
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
34 rev set $03 |
1315 | 35 edition set $05 |
0 | 36 |
37 mod eom,name,tylg,atrv,start,size | |
38 | |
1315 | 39 u0000 rmb 32 |
40 u0020 rmb 42 | |
41 u004A rmb 33 | |
42 u006B rmb 6 | |
43 u0071 rmb 655 | |
0 | 44 size equ . |
45 | |
46 name fcs /SysGo/ | |
1315 | 47 fcb edition |
48 | |
49 * Default process priority | |
50 DefPrior set 128 | |
0 | 51 |
1315 | 52 Banner equ * |
1363 | 53 fcc "NitrOS-9/" |
54 IFNE H6309 | |
55 fcc /6309 / | |
56 ELSE | |
57 fcc /6809 / | |
1315 | 58 ENDC |
1363 | 59 fcc /Level / |
1519 | 60 fcb '0+Level |
1363 | 61 fcc / V0/ |
1803
6b0d1027e4e0
Removed NITROS9VERSION, NITROS9MAJOR, NITROS9MINOR environment vars from
boisy
parents:
1801
diff
changeset
|
62 fcb '0+NOS9VER |
1315 | 63 fcc /.0/ |
1803
6b0d1027e4e0
Removed NITROS9VERSION, NITROS9MAJOR, NITROS9MINOR environment vars from
boisy
parents:
1801
diff
changeset
|
64 fcb '0+NOS9MAJ |
1315 | 65 fcc /.0/ |
1803
6b0d1027e4e0
Removed NITROS9VERSION, NITROS9MAJOR, NITROS9MINOR environment vars from
boisy
parents:
1801
diff
changeset
|
66 fcb '0+NOS9MIN |
1666 | 67 fcb C$CR,C$LF |
1801
75f1d0fc33e1
A tip of the hat to the CoCoFEST has been added to sysgo
boisy
parents:
1789
diff
changeset
|
68 * For ROM version, cut down on verbage |
75f1d0fc33e1
A tip of the hat to the CoCoFEST has been added to sysgo
boisy
parents:
1789
diff
changeset
|
69 IFEQ ROM |
1789 | 70 fcc /(C) 2005 The NitrOS-9 Project/ |
1315 | 71 fcb C$CR,C$LF |
1803
6b0d1027e4e0
Removed NITROS9VERSION, NITROS9MAJOR, NITROS9MINOR environment vars from
boisy
parents:
1801
diff
changeset
|
72 IFNE NOS9DBG |
1651 | 73 fcc "** DEVELOPMENT BUILD **" |
74 fcb C$CR,C$LF | |
75 fcc "** NOT FOR DISTRIBUTION! **" | |
1615 | 76 fcb C$CR,C$LF |
77 ENDC | |
1787 | 78 dts |
591 | 79 fcb C$CR,C$LF |
1419 | 80 fcc !http://www.nitros9.org! |
591 | 81 fcb C$CR,C$LF |
588 | 82 ENDC |
0 | 83 fcb C$LF |
1315 | 84 BannLen equ *-Banner |
0 | 85 |
1228 | 86 IFEQ ROM |
1315 | 87 DefDev equ * |
1228 | 88 IFNE DD |
89 fcc "/DD" | |
90 ELSE | |
91 fcc "/H0" | |
92 ENDC | |
0 | 93 fcb C$CR |
1315 | 94 HDDev equ * |
1228 | 95 IFNE DD |
96 fcc "/DD/" | |
97 ELSE | |
98 fcc "/H0/" | |
99 ENDC | |
1315 | 100 ExecDir fcc "CMDS" |
0 | 101 fcb C$CR |
588 | 102 ENDC |
0 | 103 |
104 Shell fcc "Shell" | |
1315 | 105 fcb C$CR |
274 | 106 AutoEx fcc "AutoEx" |
0 | 107 fcb C$CR |
108 | |
1228 | 109 IFEQ ROM |
1316 | 110 Startup fcc "startup -p" |
0 | 111 fcb C$CR |
1316 | 112 StartupL equ *-Startup |
588 | 113 ENDC |
0 | 114 |
1315 | 115 ShellPrm equ * |
116 IFGT Level-1 | |
117 fcc "i=/1" | |
118 ENDC | |
119 CRtn fcb C$CR | |
120 ShellPL equ *-ShellPrm | |
121 | |
0 | 122 * Default time packet |
1642 | 123 DefTime dtb |
0 | 124 |
1315 | 125 IFEQ Level-1 |
126 * BASIC reset code | |
0 | 127 BasicRst fcb $55 |
252 | 128 neg <$0074 |
76 | 129 nop |
1300 | 130 clr >PIA0Base+3 |
1315 | 131 nop |
76 | 132 nop |
1315 | 133 sta >$FFDF turn off ROM mode |
134 jmp >Bt.Start+2 jump to boot | |
252 | 135 BasicRL equ *-BasicRst |
1315 | 136 ENDC |
0 | 137 |
1315 | 138 |
139 * SysGo Entry Point | |
0 | 140 start leax >IcptRtn,pcr |
141 os9 F$Icpt | |
1315 | 142 * Set priority of this process |
143 os9 F$ID | |
144 ldb #DefPrior | |
145 os9 F$SPrior | |
146 * Show banner | |
147 leax >Banner,pcr | |
148 ldy #BannLen | |
149 lda #$01 standard output | |
150 os9 I$Write write out banner | |
151 * Set default time | |
152 leax >DefTime,pcr | |
153 os9 F$STime set time to default | |
154 IFEQ ROM | |
155 * Change EXEC and DATA dirs | |
156 leax >ExecDir,pcr | |
157 lda #EXEC. | |
158 os9 I$ChgDir change exec. dir | |
159 leax >DefDev,pcr | |
160 lda #READ.+WRITE. | |
161 os9 I$ChgDir change data dir. | |
162 bcs L0125 | |
163 leax >HDDev,pcr | |
164 lda #EXEC. | |
165 os9 I$ChgDir change exec. dir to HD | |
166 ENDC | |
167 | |
168 * Setup BASIC code | |
169 L0125 equ * | |
1316 | 170 pshs u,y |
1315 | 171 IFEQ Level-1 |
0 | 172 leax >BasicRst,pcr |
252 | 173 ldu #D.CBStrt |
174 ldb #BasicRL | |
1315 | 175 CopyLoop lda ,x+ |
0 | 176 sta ,u+ |
177 decb | |
178 bne CopyLoop | |
1315 | 179 ELSE |
180 os9 F$ID | |
1467 | 181 lbcs L01A9 |
1315 | 182 leax ,u |
183 os9 F$GPrDsc | |
1467 | 184 lbcs L01A9 |
1315 | 185 leay ,u |
186 ldx #$0000 | |
187 ldb #$01 | |
188 os9 F$MapBlk | |
189 bcs L01A9 | |
0 | 190 |
1315 | 191 lda #$55 set flag for Color BASIC |
192 sta <D.CBStrt,u | |
193 * Copy our default I/O ptrs to the system process | |
194 ldd <D.SysPrc,u | |
195 leau d,u | |
196 leau <P$DIO,u | |
197 leay <P$DIO,y | |
198 ldb #DefIOSiz-1 | |
199 L0151 lda b,y | |
200 sta b,u | |
201 decb | |
202 bpl L0151 | |
203 ENDC | |
274 | 204 |
1228 | 205 IFEQ ROM |
1315 | 206 * Fork shell startup here |
1462
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
207 * Added 12/14/03: If SHIFT is held down, startup is not run |
1464 | 208 lda #$01 standard output |
1462
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
209 ldb #SS.KySns |
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
210 os9 I$GetStt |
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
211 bcs DoStartup |
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
212 bita #SHIFTBIT SHIFT key down? |
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
213 bne L0186 Yes, don't to startup or autoex |
062d65d5c132
Added check for SHIFT key which, if down, bypasses startup and AutoEx
boisy
parents:
1449
diff
changeset
|
214 DoStartup leax >Shell,pcr |
0 | 215 leau >Startup,pcr |
252 | 216 ldd #256 |
1316 | 217 ldy #StartupL |
1315 | 218 os9 F$Fork |
219 bcs DoAuto | |
220 os9 F$Wait | |
221 ENDC | |
222 * Fork AutoEx here | |
223 DoAuto leax >AutoEx,pcr | |
224 leau >CRtn,pcr | |
225 ldd #$0100 | |
226 ldy #$0001 | |
0 | 227 os9 F$Fork |
1315 | 228 bcs L0186 |
0 | 229 os9 F$Wait |
1316 | 230 L0186 equ * |
231 puls u,y | |
232 FrkShell leax >ShellPrm,pcr | |
1315 | 233 leay ,u |
234 ldb #ShellPL | |
235 L0190 lda ,x+ | |
236 sta ,y+ | |
237 decb | |
238 bne L0190 | |
239 * Fork final shell here | |
240 leax >Shell,pcr | |
1316 | 241 lda #$01 D = 256 (B already 0 from above) |
1315 | 242 ldy #ShellPL |
1316 | 243 IFGT Level-1 |
1315 | 244 os9 F$Chain |
245 ldb #$06 | |
246 bra Crash | |
247 L01A9 ldb #$04 | |
248 Crash clr >DPort+$08 turn off disk motor | |
249 jmp <D.Crash | |
1316 | 250 ELSE |
251 os9 F$Fork | |
252 bcs DeadEnd | |
253 os9 F$Wait | |
254 bcc FrkShell | |
255 DeadEnd bra DeadEnd | |
588 | 256 ENDC |
0 | 257 |
258 IcptRtn rti | |
259 | |
260 emod | |
261 eom equ * | |
262 end |