Mercurial > hg > Members > kono > nitros9-code
annotate level2/modules/kernel/fldabx.asm @ 3278:ea1afb494127
defs: Add Bt.Sec for atari and corsham
author | Tormod Volden <debian.tormod@gmail.com> |
---|---|
date | Sat, 07 Mar 2020 23:52:40 +0100 |
parents | 18306d646f71 |
children |
rev | line source |
---|---|
1345 | 1 ************************************************** |
2 * System Call: F$LDABX | |
3 * | |
4 * Function: Load A from 0,X in task B | |
5 * | |
6 * Input: B = Task number | |
7 * X = Data pointer | |
8 * | |
9 * Output: A = Data byte at 0,x in task's address space | |
10 * | |
11 * Error: CC = C bit set; B = error code | |
12 * | |
1145 | 13 FLDABX ldb R$B,u Get task # to get byte from |
14 ldx R$X,u Get offset into task's DAT image to get byte from | |
3165
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
15 |
1145 | 16 * Load a byte from another task |
17 * Entry: B=Task # | |
18 * X=Pointer to data | |
19 * Exit : B=Byte from other task | |
20 L0C40 pshs cc,a,x,u | |
3165
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
21 bsr L0BF5 Calculate offset into DAT image (fmove.asm) |
3170
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
22 ldd a,u [NAC HACK 2017Jan25] why ldd when a is never used?? |
1145 | 23 orcc #IntMasks |
3170
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
24 IFNE mc09 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
25 lda <D.TINIT Current MMU mask - selects block 0 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
26 sta >MMUADR Select block 0 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
27 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
28 stb >MMUDAT Map selected block into $0000-$1FFF |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
29 ldb ,x |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
30 clr >MMUDAT Restore mapping at $0000-$1FFF |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
31 ELSE |
3165
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
32 stb >DAT.Regs Map block into $0000-$1FFF |
1145 | 33 ldb ,x |
3165
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
34 clr >DAT.Regs Restore mapping at $0000-$1FFF |
3170
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
35 ENDIF |
1145 | 36 puls cc,a,x,u |
37 | |
38 stb R$A,u Save into caller's A & return | |
3123
039ddb7c8ad7
l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents:
1345
diff
changeset
|
39 clrb set to no errors |
039ddb7c8ad7
l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents:
1345
diff
changeset
|
40 rts |
1145 | 41 |
42 * Get pointer to task DAT image | |
43 * Entry: B=Task # | |
44 * Exit : U=Pointer to task image | |
45 *L0C09 ldu <D.TskIPt get pointer to task image table | |
46 * lslb multiply task # by 2 | |
47 * ldu b,u get pointer to task image (doesn't affect carry) | |
48 * rts restore & return | |
49 | |
1345 | 50 |
51 ************************************************** | |
52 * System Call: F$STABX | |
53 * | |
54 * Function: Store A at 0,X in task B | |
55 * | |
56 * Input: A = Data byte to store in task's address space | |
57 * B = Task number | |
58 * X = Logical address in task's address space | |
59 * | |
60 * Output: None | |
61 * | |
62 * Error: CC = C bit set; B = error code | |
63 * | |
1145 | 64 FSTABX ldd R$D,u |
65 ldx R$X,u | |
3165
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
66 |
1145 | 67 * Store a byte in another task |
68 * Entry: A=Byte to store | |
69 * B=Task # | |
70 * X=Pointer to data | |
71 L0C28 andcc #^Carry | |
72 pshs cc,d,x,u | |
3165
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
73 bsr L0BF5 Calculate offset into DAT image (fmove.asm) |
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
74 ldd a,u Get memory block |
3170
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
75 IFNE mc09 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
76 orcc #IntMasks |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
77 lda <D.TINIT Current MMU mask - selects block 0 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
78 sta >MMUADR Select block 0 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
79 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
80 lda 1,s Haven't lost stack yet so this is safe |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
81 |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
82 stb >MMUDAT Map selected block into $0000-$1FFF |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
83 sta ,x |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
84 clr >MMUDAT Restore mapping at $0000-$1FFF |
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
85 ELSE |
1145 | 86 lda 1,s |
87 orcc #IntMasks | |
3165
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
88 stb >DAT.Regs Map selected block into $0000-$1FFF |
1145 | 89 sta ,x |
3165
2d22d31bc74b
L2 kernel: Minor comment tweaks
Neal Crook <foofoobedoo@gmail.com>
parents:
3123
diff
changeset
|
90 clr >DAT.Regs Restore mapping at $0000-$1FFF |
3170
18306d646f71
mc09: First release of working L2 port to MC09 platform
Neal Crook <foofoobedoo@gmail.com>
parents:
3165
diff
changeset
|
91 ENDIF |
1145 | 92 puls cc,d,x,u,pc |