mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-25 01:14:21 +00:00
Upload
Digital Research
This commit is contained in:
131
CP-NET/CPNET-86 SOURCE/LOGOFF.A86
Normal file
131
CP-NET/CPNET-86 SOURCE/LOGOFF.A86
Normal file
@@ -0,0 +1,131 @@
|
||||
|
||||
TITLE 'LOGOFF TRANSIENT PROGRAM FOR CP/NET-86'
|
||||
;***************************************************************
|
||||
;***************************************************************
|
||||
;** **
|
||||
;** L O G O F F T R A N S I E N T P R O G R A M **
|
||||
;** F O R C P / N E T - 8 6
|
||||
;** **
|
||||
;***************************************************************
|
||||
;***************************************************************
|
||||
;
|
||||
; EQUATES
|
||||
;
|
||||
M EQU BYTE PTR 0[BX]
|
||||
;
|
||||
BDOS EQU 224
|
||||
BUFF EQU 0080H
|
||||
PRINT EQU 9
|
||||
VERSION EQU 12
|
||||
LOGOFF EQU 65
|
||||
CFGTBL EQU 69
|
||||
NOACTV EQU 11101111B
|
||||
;
|
||||
START:
|
||||
MOV BX,0
|
||||
ADD BX,SP
|
||||
MOV SP,(Offset CCPSTACK)+2
|
||||
PUSH BX ; SAVE CCP STACK POINTER
|
||||
MOV CL,VERSION
|
||||
INT BDOS ; GET VERSION NUMBER
|
||||
MOV AL,BH
|
||||
AND AL,00000010B
|
||||
JNZ L_1
|
||||
JMP VERSIONERR ; CP/NET MUST BE LOADED
|
||||
L_1:
|
||||
MOV DL,0 ; DEFAULT MSTR ID = 00H
|
||||
MOV BX,BUFF
|
||||
MOV AL,M ; GET # CHARS IN THE COMMAND TAIL
|
||||
OR AL,AL
|
||||
JZ DOLOGOFF ; DEFAULT LOGOFF IF EMPTY COMMAND TAIL
|
||||
MOV CL,AL ; A = # CHARS IN COMMAND TAIL
|
||||
XOR AL,AL
|
||||
SCANBLNKS:
|
||||
INC BX
|
||||
MOV AL,M
|
||||
CMP AL,' '
|
||||
JNZ PASTBLNKS ; SKIP LEADING BLANKS
|
||||
DEC CL
|
||||
JNZ SCANBLNKS
|
||||
JMPS DOLOGOFF
|
||||
PASTBLNKS:
|
||||
CMP AL,'['
|
||||
JNZ LOGOFFERR
|
||||
SCANMSTRID:
|
||||
LAHF
|
||||
INC BX
|
||||
SAHF
|
||||
DEC CL
|
||||
JZ LOGOFFERR
|
||||
MOV AL,M
|
||||
CMP AL,']'
|
||||
JZ DOLOGOFF
|
||||
SUB AL,'0'
|
||||
CMP AL,10
|
||||
JB UPDATEID
|
||||
ADD AL,('0'-'A'+10) AND 0FFH
|
||||
CMP AL,16
|
||||
JNB LOGOFFERR
|
||||
UPDATEID:
|
||||
LAHF
|
||||
XCHG AL,AH
|
||||
PUSH AX
|
||||
MOV AL,DL
|
||||
ADD AL,AL
|
||||
ADD AL,AL
|
||||
ADD AL,AL
|
||||
ADD AL,AL
|
||||
MOV DL,AL ; ACCUM * 16
|
||||
POP AX
|
||||
XCHG AL,AH
|
||||
ADD AL,DL
|
||||
MOV DL,AL
|
||||
JMPS SCANMSTRID
|
||||
DOLOGOFF:
|
||||
MOV CL,LOGOFF
|
||||
INT BDOS
|
||||
INC AL
|
||||
JNZ LOGOFFOK
|
||||
MOV DX,(Offset LOGOFFAILEDMSG)
|
||||
JMPS PRINTMSG
|
||||
VERSIONERR:
|
||||
MOV DX,(Offset VERSIONERRMSG)
|
||||
JMPS PRINTMSG
|
||||
LOGOFFERR:
|
||||
MOV DX,(Offset LOGOFFERRMSG)
|
||||
PRINTMSG:
|
||||
MOV CL,PRINT
|
||||
INT BDOS
|
||||
JMPS EXIT
|
||||
LOGOFFOK:
|
||||
MOV CL,CFGTBL
|
||||
INT BDOS ; GET CONFIG TABLE ADDRESS
|
||||
MOV AL,ES:M
|
||||
AND AL,NOACTV ; TURN OFF ACTIVE BIT
|
||||
MOV ES:M,AL
|
||||
EXIT:
|
||||
POP BX
|
||||
MOV SP,BX ; RESTORE CCP STACK POINTER
|
||||
RET
|
||||
L_2 EQU $
|
||||
DSEG
|
||||
ORG Offset L_2
|
||||
;
|
||||
; LOCAL DATA SEGMENT
|
||||
;
|
||||
VERSIONERRMSG RS 0
|
||||
DB 'CP/NET-86 is not loaded.'
|
||||
DB '$'
|
||||
LOGOFFERRMSG RS 0
|
||||
DB 'Illegal LOGOFF Command.'
|
||||
DB '$'
|
||||
LOGOFFAILEDMSG RS 0
|
||||
DB 'LOGOFF Failed.'
|
||||
DB '$'
|
||||
LCLSTACK RS 0
|
||||
DW 0C7C7H,0C7C7H,0C7C7H,0C7C7H,0C7C7H
|
||||
DW 0C7C7H,0C7C7H,0C7C7H,0C7C7H,0C7C7H
|
||||
CCPSTACK RS 0
|
||||
DW (Offset $)-(Offset $)
|
||||
;
|
||||
END
|
||||
Reference in New Issue
Block a user