annotate level2/modules/kernel/fmapblk.asm @ 3198:734862561313

3rdparty/packages: Rename particularly cryptic folder names
author Tormod Volden <debian.tormod@gmail.com>
date Sat, 03 Jun 2017 10:34:39 +0200
parents 039ddb7c8ad7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1345
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
1 **************************************************
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
2 * System Call: F$MapBlk
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
3 *
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
4 * Function: Map specific block
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
5 *
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
6 * Input: B = Number of blocks
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
7 * X = Beginning block number
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
8 *
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
9 * Output: U = Address of first block
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
10 *
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
11 * Error: CC = C bit set; B = error code
1da8ab9ba433 Added consistent comments to each system call
boisy
parents: 1245
diff changeset
12 *
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
13 FMapBlk lda R$B,u get # blocks
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
14 beq L0BAA can't map 0 blocks, return error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
15 cmpa #DAT.BlCt within range of DAT image?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
16 bhi L0BAA no, return error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
17 leas -$10,s make a buffer to hold DAT image
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
18 ldx R$X,u get start block #
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
19 ldb #1 block increment value
1245
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
20 IFNE H6309
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
21 * Change to W 05/19/93 - used W since one cycle faster per block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
22 tfr s,w point to buffer
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
23 FMapBlk2 stx ,w++ save block # to buffer
1245
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
24 ELSE
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
25 tfr s,y point to buffer
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
26 FMapBlk2 stx ,y++ save block # to buffer
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
27 ENDC
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
28 abx Next block
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
29 deca done?
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
30 bne FMapBlk2 no, keep going
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
31 ldb R$B,u get block count again
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
32 ldx <D.Proc get process pointer
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
33 leay <P$DATImg,x point to DAT image
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
34 os9 F$FreeHB find the highest free block offset
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
35 bcs L0BA6 no room, return error
1245
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
36 IFNE H6309
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
37 tfr d,w Preserve start block # & # of blocks
1245
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
38 ELSE
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
39 pshs d
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
40 ENDC
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
41 lsla Multiply start block # by 32
3123
039ddb7c8ad7 l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents: 1345
diff changeset
42 lsla
039ddb7c8ad7 l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents: 1345
diff changeset
43 lsla
039ddb7c8ad7 l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents: 1345
diff changeset
44 lsla
039ddb7c8ad7 l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents: 1345
diff changeset
45 lsla
039ddb7c8ad7 l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents: 1345
diff changeset
46 clrb
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
47 std R$U,u save address of first block
1245
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
48 IFNE H6309
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
49 tfr w,d Restore offset
1245
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
50 ELSE
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
51 puls d
deb30e2667c7 Removed W register usage for 6809 port
boisy
parents: 1145
diff changeset
52 ENDC
1145
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
53 leau ,s move DAT image into process descriptor
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
54 os9 F$SetImg Change process dsc to reflect new blocks
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
55 L0BA6 leas <$10,s Eat DAT image copy & return
3123
039ddb7c8ad7 l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents: 1345
diff changeset
56 rts
1145
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 L0BAA comb Illegal Block address error
ca83286ded5b Start of new OS-9 L2 Kernel
boisy
parents:
diff changeset
59 ldb #E$IBA
3123
039ddb7c8ad7 l2 kernel: Remove tabs and trailing whitespace, align comments
Neal Crook <foofoobedoo@gmail.com>
parents: 1345
diff changeset
60 rts