annotate level2/modules/kernel/fgcmdir.asm @ 1145:ca83286ded5b

Start of new OS-9 L2 Kernel
author boisy
date Tue, 22 Apr 2003 19:35:48 +0000
parents
children 1da8ab9ba433
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
1 * F$GCMDir entry point
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
2 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
3 * This system call is only used by OS9p1 to get rid of all the empty spaces
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
4 * in the module directory to keep it small & compact.
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
5 FGCMDir ldx <D.ModDir get pointer to module directory start
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
6 bra L0C1D skip ahead
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
7 L0C17 ldu MD$MPDAT,x DAT initialized?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
8 beq L0C23 no it's empty skip ahead
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
9 leax MD$ESize,x move to next entry
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
10 L0C1D cmpx <D.ModEnd end of module directory?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
11 bne L0C17 no, keep looking
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
12 bra L0C4B
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
13 * Move all entrys up 1 slot in directory
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
14 L0C23 tfr x,y move empty entry pointer to Y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
15 bra L0C2B
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
16 L0C27 ldu MD$MPDAT,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
17 bne L0C34
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
18 L0C2B leay MD$ESize,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
19 cmpy <D.ModEnd done complete directory?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
20 bne L0C27 no, keep going
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
21 bra L0C49
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
22 * Move entry up 1 slot in directory
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
23 L0C34 equ *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
24 IFNE H6309
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
25 ldw #MD$ESize
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
26 tfm y+,x+
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
27 ELSE
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
28 ldu ,y++
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
29 stu ,x++
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
30 ldu ,y++
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
31 stu ,x++
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
32 ldu ,y++
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
33 stu ,x++
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
34 ldu ,y++
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
35 stu ,x++
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
36 ENDC
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
37 L0C44 cmpy <D.ModEnd done complete directory?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
38 bne L0C27 no, keep going
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
39
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
40 L0C49 stx <D.ModEnd save new module directory end pointer
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
41 * Shrink DAT table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
42 L0C4B ldx <D.ModDir+2 get module directory DAT end pointer
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
43 bra L0C53
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
44
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
45 L0C4F ldu ,x
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
46 beq L0C5B
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
47 L0C53 leax -2,x Bump module ptr down by 2
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
48 cmpx <D.ModDAT Hit beginning yet?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
49 bne L0C4F No, keep checking
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
50 clrb Yes, return without error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
51 rts
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
52
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
53 L0C5B ldu -2,x
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
54 bne L0C53
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
55 tfr x,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
56 bra L0C67
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
57
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
58 L0C63 ldu ,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
59 bne L0C70
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
60 L0C67 leay -2,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
61 L0C69 cmpy <D.ModDAT
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
62 bcc L0C63
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
63 bra L0C81
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
64 L0C70 leay 2,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
65 ldu ,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
66 stu ,x
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
67 L0C76 ldu ,--y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
68 stu ,--x
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
69 beq L0C87
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
70 cmpy <D.ModDAT
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
71 bne L0C76
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
72
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
73 L0C81 stx <D.ModDAT
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
74 bsr L0C95
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
75 clrb Yes, return without error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
76 rts
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
77
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
78 L0C87 leay 2,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
79 leax 2,x
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
80 bsr L0C95
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
81 leay -4,y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
82 leax -2,x
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
83 bra L0C69
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
84
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
85 * Update Module Dir Image Ptrs
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
86 L0C95 pshs u
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
87 ldu <D.ModDir
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
88 bra L0CA4
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
89 L0C9B cmpy MD$MPDAT,u same DAT ptrs?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
90 bne L0CA2 no, skip
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
91 stx MD$MPDAT,u else update ptrs
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
92 L0CA2 leau MD$ESize,u next entry
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
93 L0CA4 cmpu <D.ModEnd last entry?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
94 bne L0C9B no
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
95 puls u,pc else yes... return