mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-26 09:54:20 +00:00
Upload
Digital Research
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
PL/M-86 COMPILER SDIR 8086 - GET DISK PARAMETERS PAGE 1
|
||||
|
||||
|
||||
ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE DPB86
|
||||
OBJECT MODULE PLACED IN DPB86
|
||||
COMPILER INVOKED BY: :F0: DPB86.PLM DEBUG OBJECT(DPB86) OPTIMIZE(3) XREF
|
||||
|
||||
|
||||
|
||||
$compact
|
||||
$title ('SDIR 8086 - Get Disk Parameters')
|
||||
1 dpb86:
|
||||
do;
|
||||
/* the purpose of this module is to allow independence */
|
||||
/* of processor, i.e., 8080 or 8086 */
|
||||
|
||||
$include (comlit.lit)
|
||||
=
|
||||
2 1 = declare
|
||||
= lit literally 'literally',
|
||||
= dcl lit 'declare',
|
||||
= true lit '0ffh',
|
||||
= false lit '0',
|
||||
= boolean lit 'byte',
|
||||
= forever lit 'while true',
|
||||
= cr lit '13',
|
||||
= lf lit '10',
|
||||
= tab lit '9',
|
||||
= ctrlc lit '3',
|
||||
= ff lit '12',
|
||||
= page$len$offset lit '1ch',
|
||||
= nopage$mode$offset lit '2Ch',
|
||||
= sectorlen lit '128';
|
||||
|
||||
/* function call 32 in 2.0 or later BDOS, returns the address of the disk
|
||||
parameter block for the currently selected disk, which consists of:
|
||||
spt (2 bytes) number of sectors per track
|
||||
blkshf (1 byte) block size = shl(double(128),blkshf)
|
||||
blkmsk (1 byte) sector# and blkmsk = block number
|
||||
extmsk (1 byte) logical/physical extents
|
||||
blkmax (2 bytes) max alloc number
|
||||
dirmax (2 bytes) size of directory-1
|
||||
dirblk (2 bytes) reservation bits for directory
|
||||
chksiz (2 bytes) size of checksum vector
|
||||
offset (2 bytes) offset for operating system
|
||||
*/
|
||||
|
||||
$include(dpb.lit)
|
||||
=
|
||||
= /* indices into disk parameter block, used as parameters to dpb procedure */
|
||||
=
|
||||
3 1 = dcl spt$w lit '0',
|
||||
= blkshf$b lit '2',
|
||||
= blkmsk$b lit '3',
|
||||
= extmsk$b lit '4',
|
||||
= blkmax$w lit '5',
|
||||
= dirmax$w lit '7',
|
||||
= dirblk$w lit '9',
|
||||
= chksiz lit '11',
|
||||
= offset$w lit '13';
|
||||
PL/M-86 COMPILER SDIR 8086 - GET DISK PARAMETERS PAGE 2
|
||||
|
||||
|
||||
=
|
||||
|
||||
4 1 declare k$per$block byte public;
|
||||
5 1 declare dpb$base pointer;
|
||||
6 1 declare dpb$array based dpb$base (15) byte;
|
||||
|
||||
7 1 mon4: procedure (f,a) pointer external;
|
||||
8 2 dcl f byte, a address;
|
||||
9 2 end mon4;
|
||||
|
||||
10 1 dcl get$dpb lit '31';
|
||||
|
||||
11 1 dpb$byte: procedure(param) byte public;
|
||||
12 2 dcl param byte;
|
||||
13 2 return(dpb$array(param));
|
||||
14 2 end dpb$byte;
|
||||
|
||||
15 1 dpb$word: procedure(param) address public;
|
||||
16 2 dcl param byte;
|
||||
17 2 return(dpb$array(param) + shl(double(dpb$array(param+1)),8));
|
||||
18 2 end dpb$word;
|
||||
|
||||
19 1 base$dpb: procedure public;
|
||||
20 2 dpb$base = mon4(get$dpb,0);
|
||||
21 2 k$per$block = shr(dpb$byte(blkmsk$b)+1 ,3);
|
||||
22 2 end base$dpb;
|
||||
|
||||
23 1 end dpb86;
|
||||
PL/M-86 COMPILER SDIR 8086 - GET DISK PARAMETERS PAGE 3
|
||||
|
||||
|
||||
CROSS-REFERENCE LISTING
|
||||
-----------------------
|
||||
|
||||
|
||||
DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES
|
||||
----- ------ ----- --------------------------------
|
||||
|
||||
|
||||
7 0000H 2 A. . . . . . . . . WORD PARAMETER 8
|
||||
19 003AH 38 BASEDPB. . . . . . PROCEDURE PUBLIC STACK=0008H
|
||||
3 BLKMAXW. . . . . . LITERALLY
|
||||
3 BLKMSKB. . . . . . LITERALLY 21
|
||||
3 BLKSHFB. . . . . . LITERALLY
|
||||
2 BOOLEAN. . . . . . LITERALLY
|
||||
3 CHKSIZ . . . . . . LITERALLY
|
||||
2 CR . . . . . . . . LITERALLY
|
||||
2 CTRLC. . . . . . . LITERALLY
|
||||
2 DCL. . . . . . . . LITERALLY
|
||||
3 DIRBLKW. . . . . . LITERALLY
|
||||
3 DIRMAXW. . . . . . LITERALLY
|
||||
DOUBLE . . . . . . BUILTIN 17
|
||||
1 0002H DPB86. . . . . . . PROCEDURE STACK=0000H
|
||||
6 0000H 15 DPBARRAY . . . . . BYTE BASED(DPBBASE) ARRAY(15) 13 17
|
||||
5 0000H 4 DPBBASE. . . . . . POINTER 6 13 17 20
|
||||
11 0002H 21 DPBBYTE. . . . . . PROCEDURE BYTE PUBLIC STACK=0004H 21
|
||||
15 0017H 35 DPBWORD. . . . . . PROCEDURE WORD PUBLIC STACK=0004H
|
||||
3 EXTMSKB. . . . . . LITERALLY
|
||||
7 0000H 1 F. . . . . . . . . BYTE PARAMETER 8
|
||||
2 FALSE. . . . . . . LITERALLY
|
||||
2 FF . . . . . . . . LITERALLY
|
||||
2 FOREVER. . . . . . LITERALLY
|
||||
10 GETDPB . . . . . . LITERALLY 20
|
||||
4 0004H 1 KPERBLOCK. . . . . BYTE PUBLIC 21
|
||||
2 LF . . . . . . . . LITERALLY
|
||||
2 LIT. . . . . . . . LITERALLY 2 3 10
|
||||
7 0000H MON4 . . . . . . . PROCEDURE POINTER EXTERNAL(0) STACK=0000H 20
|
||||
2 NOPAGEMODEOFFSET . LITERALLY
|
||||
3 OFFSETW. . . . . . LITERALLY
|
||||
2 PAGELENOFFSET. . . LITERALLY
|
||||
15 0004H 1 PARAM. . . . . . . BYTE PARAMETER AUTOMATIC 16 17
|
||||
11 0004H 1 PARAM. . . . . . . BYTE PARAMETER AUTOMATIC 12 13
|
||||
2 SECTORLEN. . . . . LITERALLY
|
||||
SHL. . . . . . . . BUILTIN 17
|
||||
SHR. . . . . . . . BUILTIN 21
|
||||
3 SPTW . . . . . . . LITERALLY
|
||||
2 TAB. . . . . . . . LITERALLY
|
||||
2 TRUE . . . . . . . LITERALLY
|
||||
|
||||
|
||||
|
||||
MODULE INFORMATION:
|
||||
|
||||
CODE AREA SIZE = 0060H 96D
|
||||
CONSTANT AREA SIZE = 0000H 0D
|
||||
VARIABLE AREA SIZE = 0005H 5D
|
||||
MAXIMUM STACK SIZE = 0008H 8D
|
||||
79 LINES READ
|
||||
PL/M-86 COMPILER SDIR 8086 - GET DISK PARAMETERS PAGE 4
|
||||
|
||||
|
||||
0 PROGRAM ERROR(S)
|
||||
|
||||
END OF PL/M-86 COMPILATION
|
||||
Reference in New Issue
Block a user