annotate bootman/bootman.a @ 2186:f2f1920e10e8

Updates
author boisy
date Tue, 10 Mar 2009 02:25:09 +0000
parents 2db06bc0742a
children d280490500a8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2163
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
1 NAM bootman
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
2 TTL Boot Manager
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
3
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
4 BOOTTRACK equ 0
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
5
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
6 PSECT bootman,$11,0,0,0,entry
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
7
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
8 VSECT
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
9 ENDSECT
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
10
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
11 TOP EQU $FE00
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
12
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
13 * ORG $2600
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
14
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
15 * This code is executed first - it moves the actual boot manager code
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
16 * into high RAM so it is out of the way to load boot files
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
17 fcc "OS"
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
18 entry
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
19 lds #TOP-1 set stack to absolute TOP - 1
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
20 ldd #bmgrsiz get size of boot manager
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
21 pshs d save on stack
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
22 ldd #TOP get address at top
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
23 subd ,s++ subtract size of boot manager
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
24 clrb D now holds the address where we copy boot manager
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
25 deca minus 256 bytes for stack
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
26 deca minus 256 bytes for statics
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
27
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
28 pshs d save address for later
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
29
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
30 tfr d,u place boot manager's dest addr in U
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
31 ldd #bmgrsiz
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
32 leax bootmain,pcr
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
33 cloop ldy ,x++
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
34 sty ,u++
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
35 subd #$0002
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
36 bgt cloop
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
37
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
38 jmp ,s++ send control to moved code
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
39
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
40 * The entry point of the boot manager
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
41 * Entry: stack is set up, U points to static storage
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
42 csect
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
43 sectptr rmb 2
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
44 endsect
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
45
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
46 bootmain lbsr mach_init initialize the machine we're running on
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
47 lds #$FDFF set up stack
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
48 ldu #$F200 set up static storage
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
49 leax 256,u
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
50 stx sectptr,u
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
51 leax welcome,pcr
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
52 bsr writestr
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
53 loop bra loop
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
54
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
55
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
56 welcome fcc "NitrOS-9 Boot Manager"
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
57 fcb 0
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
58
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
59 * Helpful routines
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
60
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
61 * writestr - write string to output handler
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
62 * Entry:
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
63 * X = address of string (nul terminated)
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
64 writestr:
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
65 leay llio,pcr
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
66 writeloop
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
67 lda ,x+
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
68 beq writedone
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
69 jsr 3,y
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
70 bra writeloop
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
71 writedone
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
72 rts
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
73
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
74 bmgrsiz equ *-bootmain
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
75
2db06bc0742a Start of BootMan
boisy
parents:
diff changeset
76 endsect