;************ bdos file system part 5 ************ ; BDOS functions which do not require ; ownership of the MXdisk queue func24: ;return the login vector ;====== mov bx,dlog ret func25: ;return selected disk number ;====== if BCPM mov bl,p_dsk ret endif if BMPM mov si,rlr mov bl,p_dsk[si] ret endif func26: ;set the subsequent dma address to info ;====== mov u_dma_ofst,dx ret func29: ;return r/o bit vector ;====== mov bx,rodsk ret func32: ;set user code ;====== if BCPM mov al,dl cmp al,0ffh jnz setusrcode mov bl,p_user ;interrogate user code instead ret setusrcode: and al,0fh mov p_user,al ret ;jmp goback endif if BMPM mov si,rlr cmp dl,0ffh ! jne setusrcode mov bl,p_user[si] ret setusrcode: and dl,0fh mov p_user[si],dl ret endif func44: ;set multi-sector count ;====== xor bx,bx or dl,dl jz return_not_ok cmp dl,129 jnb return_not_ok mov u_mult_cnt,dl ret return_not_ok: dec bx ;return BX = 0ffffh ret func45: ;set bdos error mode ;====== mov u_error_mode,dl ret func51: ; set dma base ;====== mov u_dma_seg,dx ret func52: ; get dma ;====== mov bx,u_dma_seg mov u_retseg,bx mov bx,u_dma_ofst ret func104: ;set current date and time ;======= mov si,dx mov di,offset tod mov cx,2 pushf! cli push es! push ds ;save DS and ES mov ds,u_wrkseg pop es rep movsw push es pop ds! pop es ;restore DS and ES mov byte ptr tod+4,0 popf ret func105: ;get current date and time ;======= mov di,dx mov si,offset tod mov cx,2 push es mov es,u_wrkseg pushf! cli rep movsw mov bl,tod+4 popf pop es ret ;********** end bdos file system part 5 **********