home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
assemblr
/
library
/
lib4a86
/
lib
/
dirs.lib
< prev
next >
Wrap
Text File
|
1992-02-12
|
2KB
|
195 lines
#IF !LIB4A86
#ELSE
#IF !INTERN_LIB4A86_S
INTERN_LIB4A86_S EQU 01
JMP START
#ENDIF
#ENDIF
RENAMEDIR:
JMP INTERN_RENAMEFILEDIR
EXISTDIR:
PUSH CX,DX,SI
CALL INTERN_MAKEASCIIZ
PUSH AX
MOV AX,04300H
INT 021H
POP DX
MOV [SI],DH
JC >L8
TEST CX,010H
JZ >L8
CLC
JMP >L9
L8:
STC
L9:
POP SI,DX,CX
RET
GETDIR:
PUSH SI
PUSH DX
CLD
OR DL,DL
JNE >L1
MOV AH,019H
INT 021H
INC AL
MOV DL,AL
L1:
MOV B[SI],0
MOV DH,DL
ADD DH,040H
MOV B[SI+1],DH
MOV W[SI+2],'\:'
ADD SI,4
MOV AH,047H
INT 021H
JC >L8
MOV AH,3
L1:
LODSB
OR AL,AL
JE >L2
INC AH
JMP L1
L2:
CMP B[SI-2],'\'
JE >L1
MOV B[SI-1],'\'
INC AH
L1:
CLC
L8:
POP DX
POP SI
MOV B[SI],AH
RET
CHANGEDIR:
MOV AH,03BH
JMP >L1
REMOVEDIR:
MOV AH,03AH
JMP >L1
MAKEDIR:
MOV AH,039H
L1:
PUSH BX
PUSH DX,SI
MOV BX,AX
CALL INTERN_MAKEASCIIZ
PUSH AX
MOV AH,BH
INT 021H
POP BX
MOV B[SI],BH
POP SI,DX
POP BX
RET
SELECTDISK:
AND AL,0DFH
MOV DL,AL
SUB DL,041H
MOV AH,0EH
INT 021H
RET
GETDISKFREE:
MOV AH,0
JMP SHORT INTERN_GETDISKMEMORY
GETDISKSPACE:
MOV AH,01
JMP SHORT INTERN_GETDISKMEMORY
INTERN_GETDISKMEMORY:
PUSH BX,CX,SI
MOV SI,AX
MOV DL,AL
MOV AH,036H
INT 021H
CMP AX,0FFFFH
JE >L1
OR SI,SI
JNZ >L2
MUL BX
MUL CX
JMP >L20
L2:
MUL DX
MUL CX
L20:
CLC
JMP >L9
L1:
STC
L9:
POP SI,CX,BX
RET
#IF !INTERN_MAKEASCIIZ_S
INTERN_MAKEASCIIZ_S EQU 01
INTERN_MAKEASCIIZ:
CLD
XOR AH,AH
LODSB
MOV DX,SI
ADD SI,AX
XCHG AH,[SI]
RET
#ENDIF
#IF !INTERN_RENAMEFILEDIR_S
INTERN_RENAMEFILEDIR_S EQU 01
INTERN_RENAMEFILEDIR:
PUSH DX,SI
CALL INTERN_MAKEASCIIZ
PUSH AX
PUSH SI
PUSH DX
PUSH DS
MOV DS,ES
MOV SI,DI
CALL INTERN_MAKEASCIIZ
MOV DI,DX
POP DS
POP DX
PUSH AX
PUSH SI
MOV AH,056H
INT 021H
POP DI
POP AX
MOV ES:[DI],AH
POP SI
POP AX
MOV [SI],AH
L9:
POP SI,DX
RET
#ENDIF
#IF !INTERN_CMARK0
INTERN_CMARK0 EQU 01H
INTERN_CMARK1:
PUSH BP
MOV BP,SP
MOV BX,06H
SUB CH,[BP+SI]
SUB AH,[BX+SI]
DEC SP
DEC CX
INC DX
XOR AL,041H
CMP B[02820H],DH
INC BX
SUB W[BX+SI],SP
INC DX
CS AND B[BP+DI+043H],DL
DEC AX
INC BP
DEC BP
DEC BP
INC BP
PUSH DX
AND B[BP+SI],CH
SUB CH,[BP+SI]
POP DX
MOV SP,BP
POP BP
RET
#ENDIF