summaryrefslogtreecommitdiff
path: root/v4.0/src/MAPPER/SEL_DISK.ASM
blob: ab3bbc9b69efc8222326c174748f91d090f47ef6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
;
page 80,132
;
title CP/DOS DosSelectDisk mapper
;
dosxxx  segment byte public 'dos'
        assume  cs:dosxxx,ds:nothing,es:nothing,ss:nothing
;
;**********************************************************************
;*
;*   MODULE:   dosselectdisk
;*
;*   FILE NAME: dos048.asm
;*
;*   CALLING SEQUENCE:
;*
;*       push      word  drive          drive number
;*       call      dosselectdisk
;*
;*   MODULES CALLED:  PC-DOS Int 21h, ah=0eh, select disk
;*
;*********************************************************************

            public   dosselectdisk
            .sall
            .xlist
            include  macros.inc
            .list

str         struc
old_bp      dw       ?
Return      dd       ?
Drive       dw       ?       ; drive number
str         ends

dosselectdisk  proc  far
        Enter   Dosselectdisk         ; push registers

        mov     dx,[bp].drive         ; load drive number
        dec     dx                    ; adjust for cp/dos incompatibility

        mov     ah,0eh
        int     21h                   ; select the drive

        sub     ax,ax                 ; set good return code

        mexit                         ; pop registers
        ret     size str - 6          ; return

dosselectdisk endp

dosxxx      ends

            end