;    File              : $REQUEST.EQU$
;
;    Description       :
;
;    Original Author   : DIGITAL RESEARCH
;
;    Last Edited By    : $CALDERA$
;
;-----------------------------------------------------------------------;
;    Copyright Work of Caldera, Inc. All Rights Reserved.
;      
;    THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
;    PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
;    ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
;    WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
;    THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
;    HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
;    AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
;    AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
;    COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
;    CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
;    TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
;    CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
;    AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
;    CIVIL LIABILITY.
;-----------------------------------------------------------------------;
;
;    *** Current Edit History ***
;    *** End of Current Edit History ***
;
;    $Log$
;    ENDLOG


P_DSTRUC struc
		dw	?
REQUEST		dd	?
P_DMA		dd	?
P_DSTRUC ends

P_STRUC struc
		dw	?	; saved BP
REQUEST_OFF	dw	?	; request header offset
REQUEST_SEG	dw	?	; request header segment
P_DMAOFF	dw	?	; transfer offset
P_DMASEG	dw	?	; transfer segment
P_RETRY		db	?	; retry count for disk errors
P_DIRECT	db	?	; 0 if DMA deblocking required
P_ROSCMD	db	?	; 2 = read, 3 = write, 4 = verify
P_SETTLE	db	?	; for fast settle on reads
P_SECTOR	db	?	; sector # (0..BPB_SPT-1)
P_HEAD		db	?	; head # (0..BPB_HEADS-1)
P_CYL		dw	?	; cylinder # (0..1023)
P_COUNT		dw	?	; requested sector count
P_MCNT		dw	?	; physical sector count
P_STRUC	ends



CMD_INIT		equ	 0	; Initialize the Device Driver
CMD_MEDIA_CHECK		equ	 1	; Request Media Check
CMD_BUILD_BPB		equ	 2	; Build Drive BPB
CMD_INPUT_IOCTL		equ	 3	; IOCTL input
CMD_INPUT		equ	 4	; Input
CMD_INPUT_NOWAIT	equ	 5	; Non destructive input no wait
CMD_INPUT_STATUS	equ	 6	; Input status
CMD_INPUT_FLUSH		equ	 7	; Input flush
CMD_OUTPUT		equ	 8	; Output
CMD_OUTPUT_VERIFY	equ	 9	; Output with verify
CMD_OUTPUT_STATUS	equ	10	; Output status
CMD_OUTPUT_FLUSH	equ	11	; Output flush
CMD_OUTPUT_IOCTL	equ	12	; IOCTL output
CMD_DEVICE_OPEN		equ	13	; Device OPEN
CMD_DEVICE_CLOSE	equ	14	; Device CLOSE
CMD_FIXED_MEDIA		equ	15	; Removeable Media Check
CMD_GENERIC_IOCTL	equ	19	; Generic IOCTL
CMD_GET_DEVICE		equ	23	; Get the Logical Device
CMD_SET_DEVICE		equ	24	; Set the Logical Device
CMD_QUERY_IOCTL		equ	25	; query ioctl support

;	Generic Request Header Format

RH_LEN		equ	byte ptr 0
RH_UNIT		equ	byte ptr 1
RH_CMD		equ	byte ptr 2
RH_STATUS	equ	word ptr 3
  RHS_DONE	equ	0100h
  RHS_BUSY	equ	0200h
  RHS_IC	equ	0400h			; Interim Character
  RHS_RM	equ	0800h
  RHS_ERROR	equ	8000h

;******
;* No longer safe to use - some device drivers trample on them....
;*
;* RH_STRATEGY	equ	dword ptr 5	; Device Strategy Routine
;* RH_STRATOFF	equ	word ptr  5	; Strategy Offset
;* RH_STRATSEG	equ	word ptr  7	; Strategy Segment
;* RH_INTERRUPT	equ	dword ptr 9	; Device Interrupt Routine
;* RH_INTOFF	equ	word ptr  9	; Intterupt Offset
;* RH_INTSEG	equ	word ptr 11	; Interrupt Segment
;*****

;	Request header for initialization

RH0_NUNITS	equ	byte ptr 13
RH0_RESIDENT	equ	word ptr 14
RH0_BPBOFF	equ	word ptr 18
RH0_BPBSEG	equ	word ptr 20
RH0_DRIVE	equ	byte ptr 22
RH0_LEN		equ	22

;	Request header for media check

RH1_MEDIA	equ	byte ptr 13	; BDOS: current media byte
RH1_RETURN	equ	byte ptr 14	; driver: return code (00, 01, FF)
RH1_VOLID	equ	dword ptr 15	; driver: volume label address
RH1_LEN		equ	15

;	Request header for "build BPB"

RH2_MEDIA	equ	byte ptr 13	; BDOS or driver?
RH2_BUFFER	equ	dword ptr 14	; BDOS: scratch buffer for driver use
RH2_BPB		equ	dword ptr 18	; same as the following:
RH2_BPBOFF	equ	word ptr 18	; driver: address of new BPB
RH2_BPBSEG	equ	word ptr 20
RH2_LEN		equ	24

;	Request header for input/output

RH4_MEDIA	equ	byte ptr 13	; BDOS: current media byte
RH4_RIC		equ	byte ptr 13	; BDOS: Return Interim Char flg
RH4_BUFFER	equ	dword ptr 14	; BDOS: disk transfer address
RH4_BUFOFF	equ	word ptr 14	; BDOS: Buffer Offset
RH4_BUFSEG	equ	word ptr 16	; BDOS: Buffer Segment
RH4_COUNT	equ	word ptr 18	; BDOS: sector count
RH4_SECTOR	equ	word ptr 20	; BDOS: starting sector
RH4_VOLID	equ	dword ptr 22	; driver: volume if illegal disk change
RH4_BIGSECTOR   equ dword ptr 26   
RH4_BIGSECTORLO	equ	word ptr 26
RH4_BIGSECTORHI	equ	word ptr 28

RH4_LEN		equ	30

;	Request Header for Non-Destructive Input

RH5_CHAR	equ	byte ptr 13	; Character Read from Device
RH5_RIC		equ	byte ptr 13	; BDOS: Return Interim Char flg
RH5_LEN		equ	14

;	Request Header for Device Open

RH13_LEN	equ	13

;	Request Header for Device Close

RH14_LEN	equ	13

;	Request header for generic IOCTL

RH19_CATEGORY	equ	word ptr 13	; BDOS: major/minor function number
RH19_MAJOR	equ	byte ptr 13	; BDOS: Major Function Number
RH19_MINOR	equ	byte ptr 14	; BDOS: Minor Function Number
RH19_SI		equ	word ptr 15	; BDOS: User SI	
RH19_DI		equ	word ptr 17	; BDOS: User DI	
RH19_GENPB	equ	dword ptr 19	; BDOS: extra parameters
RH19_LEN	equ	23

RQ19_SET	equ	40h		; set device parameters
RQ19_GET	equ	60h		; get device parameters
RQ19_WRITE	equ	41h		; write tracks
RQ19_READ	equ	61h		; read tracks
RQ19_FORMAT	equ	42h		; format tracks
RQ19_VERIFY	equ	62h		; verify tracks
RQ19_SETMEDIA	equ	46h		; set media ID
RQ19_GETMEDIA	equ	66h		; get media ID

RQ19_PRP_START	equ	4Ch		; start of codepage prepare
RQ19_PRP_END	equ	4Dh		; end of codepage prepare
RQ19_SELECT	equ	4Ah		; select code page
RQ19_QRY_SEL	equ	6Ah		; query selected code page
RQ19_QRY_PRP	equ	6Bh		; query prepared code page(s)
RQ19_DSP_SET	equ	5Fh		; set display information
RQ19_DSP_GET	equ	7Fh		; get display information

;	Request header for get/set drive

RH24_CMD	equ	byte ptr 14	; BDOS: Command Code
RH24_STATUS	equ	word ptr 15	; BDOS: Status
RH24_RESVD	equ	dword ptr 17	; BDOS: Reserved
RH24_LEN	equ	21

RH_SIZE		equ	30		; maximum size of request header
