1345
|
1 **************************************************
|
|
2 * System Call: F$GBlkMp
|
|
3 *
|
|
4 * Function:
|
|
5 *
|
|
6 * Input: X = 1024 byte buffer pointer
|
|
7 *
|
|
8 * Output: D = Number of bytes per block
|
|
9 * Y = Size of system's memory block map
|
|
10 *
|
|
11 *
|
|
12 * Error: CC = C bit set; B = error code
|
|
13 *
|
1145
|
14 FGBlkMp ldd #DAT.BlSz # bytes per MMU block (8k)
|
|
15 std R$D,u Put into caller's D register
|
|
16 ldd <D.BlkMap+2 Get end of system block map ptr
|
|
17 subd <D.BlkMap Subtract start of system block map ptr
|
|
18 std R$Y,u Store size of system block map in caller's Y reg.
|
|
19 tfr d,y
|
|
20 lda <D.SysTsk Get system task #
|
|
21 ldx <D.Proc Get caller's task #
|
|
22 ldb P$Task,x get task # of caller
|
|
23 ldx <D.BlkMap Get start ptr of system block map
|
|
24 L0978 ldu R$X,u Get addr to put it that caller requested
|
|
25 os9 F$Move Move it into caller's space
|
|
26 rts
|