home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
BBS_UTIL
/
BM0406_A.ZIP
/
BMASM.ZIP
/
10-NET.ASM
next >
Wrap
Assembly Source File
|
1992-08-02
|
3KB
|
82 lines
;
; Changes made by Scott McNay (1:395/11) July 26, 1992, to allow routine to be
; used with code compiled with BC's /Fs option. (Most) changes marked with
; ;BCFS0726. May have optimized some code also. This is a plug-in replacement
; for the original code.
;BCFS0801: Standardized code format. Made sure that DI, SI, BP, and DS are
; saved to meet requirements of BC 7.x.
Extrn StringAddress:far ;BCFS0726
CSEG SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:CSEG
PUBLIC LPLK10
PUBLIC LOK10
PUBLIC UNLOK10
LOOPLCK EQU 11H ; 3COM LOCK WITH DELAY
LANLOCK EQU 12H ; 3COM LOCK WITH RETURN
UNLOCK EQU 13H ; 3COM UNLOCK
DRIVE DB ? ; INPUT DRIVE NUMBER
REQUEST DB ? ; TYPE OF REQUEST
DELAY DW ? ; DELAY TIME
ENET DW 0 ; DUMMY ETHERNET ADDRESS
LENLOK DW ? ; LENGTH OF LOCK NAME
POINTER DW ? ; POINTER TO LOCK NAME
LCKNAME DB 31 DUP(?) ; INPUT LOCK NAME
DB 0 ; TERMINATOR
LPLK10 PROC FAR
MOV REQUEST,LOOPLCK
MOV DELAY,300 ; WAIT 5 MINUTES FOR LOCK
JMP PROCESS
LPLK10 ENDP
LOK10 PROC FAR
MOV REQUEST,LANLOCK
MOV DELAY,10 ; WAIT 10 SECONDS FOR LOCK
JMP PROCESS
LOK10 ENDP
UNLOK10 PROC FAR
MOV REQUEST,UNLOCK
MOV DELAY,0
PROCESS:
INT 3 ;For debugging. Remove when operation verified ;BCFS0726
PUSH BP ; SAVE BP
MOV BP,SP ; SAVE SP INTO BP FOR PARM ADDRESSING
PUSH DS ; SAVE BASIC'S DATA SEGMENT
PUSH ES ; SAVE BASIC'S EXTRA SEGMENT
MOV BX,[BP+10] ; GET ADDRESS OF DRIVE NUMBER
MOV AL,[BX] ; GET LOW ORDER BYTE OF DRIVE ADDRESS
INC AL ; ADJUST DRIVE NUMBER
MOV DRIVE,AL ; SAVE THE DRIVE NUMBER
PUSH [BP+8] ; GET A$ STRING DESCRIPTOR ADDRESS ;BCFS0726
CALL StringAddress ;BCFS0726
MOV LENLOK,CX ; GET LENGTH OF STRING A$ IN CX REGISTER ;BCFS0726
MOV POINTER,AX ;BCFS0726
MOV SI,AX ; OFFSET OF BASIC'S STRING ;BCFS0726
MOV DS,DX ;BCFS0726
PUSH CS ; MOV CS TO ES VIA STACK
POP ES ; TARGET IS IN OUR CSEG
MOV DI,OFFSET LCKNAME ; OFFSET OF WORK AREA
CLD ; START FROM THE BOTTOM
REP MOVSB ; COPY BASIC'S STRING TO OUR WORK AREA
PUSH CS ; MOV CS TO DS VIA STACK
POP DS ; OUR CSEG SEGMENT INTO DS
MOV BX,OFFSET LCKNAME+2 ; POINT TO NEW NAME
MOV SI,OFFSET ENET ; POINT TO DUMMY ETHERNET ADDRESS
MOV AX,WORD PTR DRIVE ; GET DRIVE AND LOCK REQ TYPE FOR LOCK ;BCFS0726
MOV DX,DELAY ; 3COM DELAY TIME
INT 60H ; CALL 3COM LOCK MANAGER
POP ES ; GET BACK BASIC'S EXTRA SEGMENT
POP DS ; GET BACK BASIC'S DATA SEGMENT
MOV BX,[BP+6] ; GET ADDRESS OF RESULT VARIABLE ;BCFS0801
MOV [BX],AL ; STORE RETURN CODE FROM LOCK MANAGER ;BCFS0801
POP BP
RET 6
UNLOK10 ENDP
CSEG ENDS
END