home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
RCPM
/
BYESUB.AQM
/
BYESUB.ASM
Wrap
Assembly Source File
|
2000-06-30
|
2KB
|
73 lines
;
; BYESUB.ASM
; A routine to load/run a .com file on request
;
; When used by itself, or, as intended, as a called subroutine for
;RCP/M conditional logoffs, (security violation, overstayers, etc.),
;this routine will make use of the autorun feature buried in the CCP
;module of CP/M. The file specified at the equate near the end of the
;program will be loaded into the ccp command buffer, and the ccp will
;be cold started. This will act as if the name had been typed in at
;the console, and the return key hit.
;
; Note that the value of CPR is system dependant. This must be
;changed for your paticular system.
;
; ----------------------------------
;
;------------------
; Mods / Fixes :
;------------------
;
;11/06/82 Initial Release
;
; Mark J. Pulver
; AIMS (312) 789-0499
;
;
;-----------------
; Code starts :
;-----------------
;
CPR EQU 0C700H ;ccp cold start
CBUFF EQU CPR+7 ;address of command length pointer
CIVAL EQU CPR+8 ;address of command buffer
CIBPTR EQU CPR+59H ;address of pointer to ccp command buffer
;
OFFSET EQU 0
;
;
ORG 0100H
;
BYE: EQU $+OFFSET
LHLD BYEFIL ;get length
MOV B,L ;B needs it for MOVE
LXI H,BYEFIL ;get name of file
LXI D,CBUFF ;where its going
CALL MOVE ;move name into buffer
LXI H,CIVAL ;get command buffer location
SHLD CIBPTR ;stuff it in pointer
LDA USER
MOV C,A ;C must have user/drive
JMP CPR ;cold start ccp
;
MOVE: EQU $+OFFSET ;hl to de length in b
MOV A,M
STAX D
INX D
INX H
DCR B
JNZ MOVE
RET
;
USER: EQU $+OFFSET
DB 0 ;user/drive spec for file,
;follows 0004h conventions
BYEFIL: EQU $+OFFSET
DB 5,'BYE',0 ;comfile to run
;command length ^ ^- - - "0" must be here
;+2 for first and last bytes
;
;
END