annotate level1/modules/kernel/fdebug.asm @ 3109:118cd9951d24

Small fixups in level 3 boot script And add it and the boot list to the coco3 build.
author Tormod Volden <debian.tormod@gmail.com>
date Sun, 28 Feb 2016 22:48:32 +0100
parents d0f5dd304a6e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2830
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
1 ******************************************************
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
2 * F$Debug entry point
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
3 *
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
4 * Enter the debugger (or reboot)
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
5 *
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
6 * Input: A = Function code
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
7 *
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
8
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
9 FDebug equ *
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
10 * Determine if this is a system process or super user
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
11 * Only they have permission to reboot
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
12 lda R$A,u
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
13 cmpa #255 reboot request
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
14 bne leave nope
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
15 ldx <D.Proc
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
16 ldd P$User,x get user ID
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
17 beq REBOOT
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
18 comb
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
19 ldb #E$UnkSvc
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
20 leave rts
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
21
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
22 * NOTE: HIGHLY MACHINE DEPENDENT CODE!
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
23 * THIS CODE IS SPECIFIC TO THE COCO!
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
24 REBOOT orcc #IntMasks turn off IRQ's
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
25 * clrb
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
26 * stb >$FFA0 map in block 0
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
27 * stb >$0071 cold reboot
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
28 * lda #$38 bottom of DECB block mapping
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
29 * sta >$FFA0 map in block zero
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
30 stb >$0071 and cold reboot here, too
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
31 ldu #$0000 force code to go at offset $0000
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
32 leax ReBootLoc,pc reboot code
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
33 ldy #CodeSize
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
34 cit.loop lda ,x+
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
35 sta ,u+
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
36 leay -1,y
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
37 bne cit.loop
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
38 * clr >$FEED cold reboot
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
39 * clr >$FFD8 go to low speed
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
40 jmp >$0000 jump to the reset code
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
41
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
42 ReBootLoc
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
43 * ldd #$3808 block $38, 8 times
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
44 * ldx #$FFA0 where to put it
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
45 *Lp sta 8,x put into map 1
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
46 * sta ,x+ and into map 0
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
47 * inca
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
48 * decb count down
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
49 * bne Lp
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
50
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
51 * lda #$4C standard DECB mapping
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
52 * sta >$FF90
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
53 * clr >$FF91 go to map type 0
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
54 clr >$FFDE and to all-ROM mode
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
55 ldd #$FFFF
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
56 * clrd executes as CLRA on a 6809
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
57 fdb $104F
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
58 tstb is it a 6809?
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
59 bne Reset yup, skip ahead
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
60 * ldmd #$00 go to 6809 mode!
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
61 fcb $11,$3D,$00
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
62 Reset jmp [$FFFE] do a reset
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
63 CodeSize equ *-ReBootLoc
d0f5dd304a6e Added forgotten fdebug.asm
boisy
parents:
diff changeset
64