867
|
1 *
|
|
2 * Module access system calls
|
|
3 *
|
|
4
|
|
5 shiftla macro
|
|
6 rept \1
|
|
7 lsla
|
|
8 endr
|
|
9 endm
|
|
10
|
|
11 use ..../defs/os9defs.a
|
|
12 psect mod_a,0,0,1,0,0
|
|
13
|
|
14 * modlink(modname,type,language)
|
|
15 modlink: pshs y,u save environment
|
|
16 ldx 6,s get module name pointer
|
|
17 lda 9,s get type
|
|
18 shiftla 4 shift to m.s nibble
|
|
19 ora 11,s and language
|
|
20
|
|
21 os9 F$LINK call os9
|
|
22
|
|
23 * the only value returned is a pointer to the module
|
|
24 * other values can be found in the module itself
|
|
25 modcom
|
|
26 tfr u,d C return value always in d reg.
|
|
27 puls y,u restore environment
|
|
28 lbcs _os9err
|
|
29 rts
|
|
30
|
|
31 * modload(modname,type,language)
|
|
32 modload: pshs y,u save environment
|
|
33 ldx 6,s get module name pointer
|
|
34 lda 9,s get type
|
|
35 shiftla 4
|
|
36 ora 11,s and type
|
|
37
|
|
38 os9 F$LOAD call os9
|
|
39
|
|
40 bra modcom common code
|
|
41
|
|
42 * munlink(mod)
|
|
43 munlink: pshs u save register variable
|
|
44 ldu 4,s get module pointer
|
|
45
|
|
46 os9 F$UNLINK call os9
|
|
47 puls u restore register variable
|
|
48 lbra _sysret usual return
|
|
49 endsect
|