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

Start of new OS-9 L2 Kernel
author boisy
date Tue, 22 Apr 2003 19:35:48 +0000
parents
children 90bad6d8388c
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 **************************************************
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
2 * System Call: F$SSVC
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
3 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
4 * Function: Allocate a 64 byte memory block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
5 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
6 * Input: Y = Address of service request init table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
7 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
8 * Output: None
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
9 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
10 * Error: CC = C bit set; B = error code
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
11 *
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
12 FSSvc ldy R$Y,u get pointer to table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
13 bra L037F start moving
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
14 * Main move loop
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
15 L036D clra clear MSB of table offset
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
16 lslb multiply function # by 2 to get offset into table
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
17 tfr d,u copy it to U
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
18 ldd ,y++ get vector to function handler
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
19 leax d,y offset X from current Y
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
20 ldd <D.SysDis get system dispatch table pointer
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
21 stx d,u save vector into place
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
22 bcs L037F it was a privliged call, skip ahead
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
23 ldd <D.UsrDis get user displat table pointer
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
24 stx d,u save vector into place
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
25 L037F ldb ,y+ get callcode
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
26 cmpb #$80 done?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
27 bne L036D no, keep going
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
28 rts return