System information

;*****************************************************
;* *
;* SECTOR DEBLOCKING ALGORITHMS FOR CP/M 2.0 *
;* *
;*****************************************************
;
; UTILITY MACRO TO COMPUTE SECTOR MASK
SMASK MACRO HBLK
;; COMPUTE LOG2(HBLK), RETURN @X AS RESULT
;; (2 ** @X = HBLK ON RETURN)
@Y SET HBLK
@X SET 0
;; COUNT RIGHT SHIFTS OF @Y UNTIL = 1
REPT 8
IF @Y = 1
EXITM
ENDIF
;; @Y IS NOT 1, SHIFT RIGHT ONE POSITION
@Y SET @Y SHR 1
@X SET @X + 1
ENDM
ENDM
;
;*****************************************************
;* *
;* CP/M TO HOST DISK CONSTANTS *
;* *
;*****************************************************
0800 = BLKSIZEQU 2048 ;CP/M ALLOCATION SIZE
0200 = HSTSIZ EQU 512 ;HOST DISK SECTOR SIZE
0014 = HSTSPTEQU 20 ;HOST DISK SECTORS/TRK
0004 = HSTBLK EQU HSTSIZ/128 ;CP/M SECTS/HOST BUFF
0050 = CPMSPT EQU HSTBLK * HSTSPT ;CP/M SECTORS/TRACK
0003 = SECMSK EQU HSTBLK-1 ;SECTOR MASK
SMASK HSTBLK ;COMPUTE SECTOR MASK
0002 = SECSHFEQU @X ;LOG2(HSTBLK)
;
;*****************************************************
;* *
;* BDOS CONSTANTS ON ENTRY TO WRITE *
;* *
;*****************************************************
0000 = WRALLEQU 0 ;WRITE TO ALLOCATED
0001 = WRDIR EQU 1 ;WRITE TO DIRECTORY
0002 = WRUALEQU 2 ;WRITE TO UNALLOCATED
Appendix F : CP/M Disk Definition Library CP/M Operating System Manual
G-1