; TITLE "SDIR02 - Syslib 4.0" NAME ('DPARAM') ;=============================================================== ; Author : Harold F. Bower ; Derived from SDIR02.Z80 Ver 1.5 by Richard Conn ; Date : 17 Sep 89 ; Version : 1.6 ; Module : SDIR02 ; Abstract: This module contains the routine DPARAMS which ; extracts Disk Parameter information from the DPB for the ; currently logged drive and stores the information in ; designated variables in the module SDIRBF. Variables are: ; BLKSHF <-- Block Shift Factor (1 byte) ; BLKMSK <-- Block Mask (1 byte) ; EXTENT <-- Extent mask (1 byte) ; BLKMAX <-- Max # of Blocks on Disk (2 bytes) ; DIRMAX <-- Max # of Directory Entries (2 bytes) ; Revision: ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; Module Entry Points PUBLIC DPARAMS ; From SYSLIB Get.. EXT BLKSHF, BLKMSK, EXTENT, BLKMAX, DIRMAX ; Definitions BDOS EQU 5 ; CP/M, ZRDOS, ZSDOS Entry Point GETDPB EQU 31 ; Get DPB Command .Z80 CSEG ;=============================================================== ; NAME - DPARAMS ; Entry: - None ; Exit : - None, Variables are set with DPB information ; Uses : - None ; Special Requirements: None ;=============================================================== DPARAMS: PUSH BC ; Save Regs PUSH DE PUSH HL PUSH AF ; Version 2.x or MP/M Get parameters method (NOT CP/M 1.x) LD C,GETDPB ; 2.x or MP/M...Request DPB CALL BDOS INC HL INC HL LD DE,BLKSHF ; Point to destination LDI ; Move Block Shift & inc ptrs LDI ; Move Block Mask & inc ptrs LDI ; Move Extent Mask & inc ptrs LD E,(HL) ; Get Max Block Number INC HL LD D,(HL) INC DE ; Add 1 for Max Number of Blocks LD (BLKMAX),DE ; Maximum Number of Blocks INC HL LD E,(HL) ; Get Directory Size INC HL LD D,(HL) INC DE ; Add 1 for Number of Entries LD (DIRMAX),DE POP AF ; Restore Registers POP HL POP DE POP BC RET END