mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 00:14:25 +00:00
599 lines
11 KiB
Plaintext
599 lines
11 KiB
Plaintext
|
||
include equates.a86
|
||
include system.a86
|
||
dseg
|
||
extrn rlr:word
|
||
extrn login_vector:word
|
||
extrn readonly_vector:word
|
||
extrn date_days:word
|
||
extrn date_secs:byte
|
||
extrn free_dirnames:word
|
||
extrn free_dirdata:word
|
||
extrn bdos_8087_inuse:word
|
||
extrn cio_flags:word
|
||
extrn comsize:word
|
||
extrn ccp_dseg:word
|
||
extrn sysvar_131:byte
|
||
extrn sysvar_132:byte
|
||
extrn sysvar_144:byte
|
||
extrn search_path:byte
|
||
extrn proc_count:byte
|
||
extrn time_slice:byte
|
||
extrn page_mode:byte
|
||
extrn temp_drive:byte
|
||
extrn max_x:byte
|
||
extrn max_y:byte
|
||
extrn bdos_ver:word
|
||
extrn boot_drive:byte
|
||
cseg
|
||
|
||
public misc_init
|
||
public misc_main
|
||
|
||
extrn cwd_for_drive:near
|
||
|
||
db '(C)1985,DIGITAL RESEARCH'
|
||
|
||
sernumber:
|
||
include serial.a86
|
||
|
||
misc_init: ; DATA XREF: dseg:0016o
|
||
retn
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
misc_functions dw offset P_RSX_default ; DATA XREF: bdos:2317o
|
||
dw offset S_BDOSVER
|
||
dw offset DRV_LOGINVEC
|
||
dw offset DRV_GET
|
||
dw offset F_DMAOFF
|
||
dw offset DRV_ROVEC
|
||
dw offset F_USERNUM
|
||
dw offset F_MULTISEC
|
||
dw offset F_ERRMODE
|
||
dw offset S_SYSVAR
|
||
dw offset F_DMASEG
|
||
dw offset F_DMAGET
|
||
dw offset T_SET
|
||
dw offset T_GET
|
||
dw offset S_SERIAL
|
||
dw offset P_CODE
|
||
dw offset proc_dupdirs
|
||
dw offset proc_freedirs
|
||
dw offset S_SYSDAT
|
||
dw offset S_OSVER
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
misc_main: ; DATA XREF: dseg:0014o
|
||
jmp cs:misc_functions[si]
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
P_RSX_default: ; DATA XREF: bdos:22EFo
|
||
mov bx, 0FFFFh
|
||
mov cx, 2
|
||
retn
|
||
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
S_BDOSVER: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:22F1o
|
||
mov bx, bdos_ver
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
S_OSVER: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:2315o
|
||
mov bx, 1012h
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
S_SYSVAR: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:2301o
|
||
mov si, dx ; Caller SCBPB
|
||
mov dx, ds ; Our DS
|
||
push ds
|
||
push es
|
||
mov ds, es:userDS ; Caller DS
|
||
mov di, offset public_sysvars
|
||
xor bx, bx
|
||
mov bl, [si]
|
||
cmp bl, 6
|
||
jb sysvar_valid
|
||
sub bl, 80h
|
||
jb sysvar_invalid
|
||
mov di, offset private_sysvars
|
||
cmp bl, 13h
|
||
jb sysvar_valid
|
||
|
||
sysvar_invalid: ; CODE XREF: S_SYSVAR+1Aj S_SYSVAR+4Fj
|
||
; ...
|
||
mov bx, 0FFFFh
|
||
jmps s_sysvar_ret
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
sysvar_valid: ; CODE XREF: S_SYSVAR+15j S_SYSVAR+22j
|
||
shl bx, 1
|
||
shl bx, 1
|
||
mov cx, cs:[bx+di]
|
||
test ch, 80h ; Process variable?
|
||
jz not_proc_var
|
||
mov dx, es
|
||
|
||
not_proc_var: ; CODE XREF: S_SYSVAR+33j
|
||
mov di, cs:2[bx+di]
|
||
test byte ptr 1[si], 0FFh
|
||
lea si, 2[si]
|
||
jnz sysvar_set
|
||
xchg si, di
|
||
push ds
|
||
pop es
|
||
|
||
mov ds, dx
|
||
|
||
jmps sysvar_access
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
|
||
sysvar_set: ; CODE XREF: S_SYSVAR+42j
|
||
test ch, 40h ; Read-only?
|
||
jnz sysvar_invalid
|
||
cmp es:proc_background, 0
|
||
jz sysvar_is_fg
|
||
test ch, 20h ; Owned by FG process?
|
||
jnz sysvar_invalid
|
||
|
||
sysvar_is_fg: ; CODE XREF: S_SYSVAR+57j
|
||
mov es, dx
|
||
|
||
sysvar_access: ; CODE XREF: S_SYSVAR+4Aj
|
||
test ch, 10h ; Volatile?
|
||
jz sysvar_nocli
|
||
cli
|
||
|
||
sysvar_nocli: ; CODE XREF: S_SYSVAR+63j
|
||
xor ch, ch
|
||
rep movsb
|
||
sti
|
||
xor bx, bx
|
||
|
||
s_sysvar_ret: ; CODE XREF: S_SYSVAR+27j
|
||
pop es
|
||
pop ds
|
||
|
||
retn
|
||
|
||
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
public_sysvars dw 2001h ; DATA XREF: S_SYSVAR+Bo
|
||
dw offset max_x
|
||
dw 2001h
|
||
dw offset max_y
|
||
dw 2001h
|
||
dw offset page_mode
|
||
dw 6001h
|
||
dw offset xios_bh_ticks
|
||
dw 2001h
|
||
dw offset temp_drive
|
||
dw 1005h
|
||
dw offset date_days
|
||
private_sysvars dw 2001h ; DATA XREF: S_SYSVAR+1Co
|
||
dw offset xios_bh_8087
|
||
dw 0E001h
|
||
dw offset proc_pid
|
||
dw 801Ah
|
||
dw offset proc_drive
|
||
dw 2001h
|
||
dw offset sysvar_131
|
||
dw 20FFh
|
||
dw offset sysvar_132
|
||
dw 3002h
|
||
dw offset ccp_dseg
|
||
dw 20FFh
|
||
dw offset boot_drive
|
||
dw 3004h
|
||
dw offset search_path
|
||
dw 0E001h
|
||
dw offset proc_background
|
||
dw 6001h
|
||
dw offset proc_count
|
||
dw 2001h
|
||
dw offset time_slice
|
||
dw 2002h
|
||
dw offset cio_flags
|
||
dw 6001h
|
||
dw offset bdos_8087_inuse
|
||
dw 9004h
|
||
dw offset proc_onblock
|
||
dw 0E002h
|
||
dw offset proc_dirname
|
||
dw 2005h
|
||
dw offset comsize
|
||
dw 6001h
|
||
dw offset sysvar_144
|
||
dw 1020h
|
||
dw offset country_info
|
||
dw 1001h
|
||
dw offset switch_char
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
S_SERIAL: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:230Bo
|
||
push es
|
||
mov es, es:userDS
|
||
mov di, dx
|
||
mov si, offset sernumber+10
|
||
mov cx, 3
|
||
db 0F3h, 2Eh ;REP CS:
|
||
movsw
|
||
pop es
|
||
mov bx, cx
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
P_CODE: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:230Do
|
||
inc dx
|
||
jz p_code_get
|
||
dec dx
|
||
mov es:proc_errcode, dx
|
||
|
||
p_code_get: ; CODE XREF: P_CODE+1j
|
||
mov bx, es:proc_errcode
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
proc_dupdirs: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:230Fo
|
||
mov si, es:proc_dirname
|
||
test si, si
|
||
jz proc_has_no_cwd
|
||
cli
|
||
mov di, free_dirnames; Take the head of the free list
|
||
mov ax, [di]
|
||
mov free_dirnames, ax
|
||
sti
|
||
push es
|
||
push ds
|
||
pop es
|
||
;
|
||
; Now duplicate the entries for each drive
|
||
;
|
||
|
||
|
||
dup_drvdir: ; CODE XREF: proc_dupdirs+3Cj
|
||
lodsw
|
||
push si
|
||
test ax, ax
|
||
jnz dup_dirdata_cpy
|
||
stosw
|
||
jmps dup_dirdata_nxt
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
dup_dirdata_cpy: ; CODE XREF: proc_dupdirs+1Bj
|
||
xchg ax, si
|
||
cli
|
||
mov ax, free_dirdata
|
||
stosw
|
||
test ax, ax
|
||
jz dup_dirdata_nxt
|
||
push cx
|
||
push di
|
||
xchg ax, di
|
||
mov ax, [di]
|
||
mov free_dirdata, ax
|
||
sti
|
||
mov cx, 5
|
||
rep movsw
|
||
pop di
|
||
pop cx
|
||
|
||
dup_dirdata_nxt: ; CODE XREF: proc_dupdirs+1Ej
|
||
; proc_dupdirs+28j
|
||
sti
|
||
pop si
|
||
loop dup_drvdir
|
||
movsw
|
||
movsw
|
||
pop es
|
||
|
||
sub di, 24h
|
||
mov es:proc_dirname, di
|
||
|
||
proc_has_no_cwd: ; CODE XREF: proc_dupdirs+7j
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
proc_freedirs: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:2311o
|
||
mov si, es:proc_dirname
|
||
test si, si
|
||
jz pfd_done
|
||
mov cx, 10h
|
||
|
||
pfd_freedata: ; CODE XREF: proc_freedirs+22j
|
||
lodsw
|
||
xchg ax, bx
|
||
test bx, bx
|
||
jz pfd_next_data
|
||
dec word ptr 8[bx] ; Decrease reference count
|
||
jnz pfd_next_data
|
||
cli
|
||
mov ax, free_dirdata; If it's 0
|
||
mov [bx], ax ; Add the DIRDATA to the free list
|
||
mov free_dirdata, bx
|
||
sti
|
||
|
||
pfd_next_data: ; CODE XREF: proc_freedirs+10j
|
||
; proc_freedirs+15j
|
||
loop pfd_freedata
|
||
dec word ptr [si]
|
||
jnz pfd_done
|
||
sub si, 20h
|
||
cli
|
||
mov bx, free_dirnames; Now free the DIRNAMES structure
|
||
mov [si], bx
|
||
mov free_dirnames, si
|
||
sti
|
||
push ds
|
||
mov ds, rlr
|
||
|
||
mov proc_dirname, 0 ; Release it from PROC
|
||
pop ds
|
||
|
||
|
||
pfd_done: ; CODE XREF: proc_freedirs+7j
|
||
; proc_freedirs+26j
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
S_SYSDAT: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:2313o
|
||
mov es:userES, ds
|
||
sub bx, bx
|
||
sub ax, ax
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
nop_iret:
|
||
nop
|
||
iret
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
; Copy bits for floating drives from their hosts
|
||
|
||
ret_drv_vector: ; CODE XREF: DRV_LOGINVEC+4j
|
||
; DRV_ROVEC+4j
|
||
mov cx, 3
|
||
|
||
rdv_float: ; CODE XREF: ret_drv_vector+23j
|
||
push cx
|
||
add cl, 0Ch
|
||
mov al, cl
|
||
mov dx, 1
|
||
shl dx, cl
|
||
mov cl, 0FFh
|
||
push bx
|
||
call cwd_for_drive
|
||
pop bx
|
||
mov cl, al ; Get the host drive
|
||
mov ax, 1
|
||
shl ax, cl
|
||
test bx, ax ; Is the corresponding bit set for it?
|
||
jz rdv_nofloat
|
||
or bx, dx
|
||
|
||
rdv_nofloat: ; CODE XREF: ret_drv_vector+1Ej
|
||
pop cx
|
||
loop rdv_float
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
DRV_LOGINVEC: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:22F3o
|
||
mov bx, login_vector
|
||
jmp ret_drv_vector ; Copy bits for floating drives from their hosts
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
DRV_GET: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:22F5o
|
||
mov bl, es:proc_drive
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
F_DMAOFF: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:22F7o
|
||
mov es:word ptr proc_dma, dx
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
DRV_ROVEC: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:22F9o
|
||
mov bx, readonly_vector
|
||
jmp ret_drv_vector ; Copy bits for floating drives from their hosts
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
F_USERNUM: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:22FBo
|
||
mov al, dl
|
||
cmp al, 0FFh
|
||
jnz f_setuid
|
||
mov bl, es:proc_uid
|
||
retn
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
f_setuid: ; CODE XREF: F_USERNUM+4j
|
||
and al, 0Fh
|
||
mov es:proc_uid, al
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
F_MULTISEC: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:22FDo
|
||
xor bx, bx
|
||
or dl, dl
|
||
jz f_bad_multisec
|
||
cmp dl, 81h
|
||
jnb f_bad_multisec
|
||
mov es:proc_multisec, dl
|
||
retn
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
f_bad_multisec: ; CODE XREF: F_MULTISEC+4j
|
||
; F_MULTISEC+9j
|
||
dec bx
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
F_ERRMODE: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:22FFo
|
||
mov es:proc_errmode, dl
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
F_DMASEG: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:2303o
|
||
mov es:word ptr proc_dma+2, dx
|
||
retn
|
||
|
||
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
; S u b r o u t i n e
|
||
|
||
F_DMAGET: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:2305o
|
||
mov ax, es:word ptr proc_dma+2
|
||
mov es:userES, ax
|
||
mov bx, es:word ptr proc_dma
|
||
retn
|
||
|
||
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
T_SET: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:2307o
|
||
mov si, dx
|
||
mov di, offset date_days
|
||
cli
|
||
push es
|
||
push ds
|
||
mov ds, es:userDS
|
||
pop es
|
||
|
||
movsw
|
||
movsw
|
||
push es
|
||
pop ds
|
||
pop es
|
||
|
||
mov date_secs, 0
|
||
sti
|
||
retn
|
||
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
T_GET: ; CODE XREF: bdos:2317u
|
||
; DATA XREF: bdos:2309o
|
||
mov di, dx
|
||
mov si, offset date_days
|
||
push es
|
||
mov es, es:userDS
|
||
cli
|
||
movsw
|
||
movsw
|
||
mov bl, date_secs
|
||
sti
|
||
pop es
|
||
retn
|
||
|
||
end
|
||
|