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
/
TURBODSG
/
REMDRV.A
< prev
next >
Wrap
Text File
|
2000-06-30
|
4KB
|
209 lines
; REMDRV.A - A BASTARDIZATION OF CONREM
; CREATED 12/19/85 BY ESKAY (AS ALWAYS)
; VERSION 23 AS OF 12/19/85
;
MODULE "RemDrv"
;
; ANOTHER ENHANCED TURBODOS MODULE BY ESKAY
; IN ADDITION TO THE DESCRIPTION OF T-FCN 33, REMOTE CONSOLE I/O,
; THE FOLLOWING IS NOW POSSIBLE:
; - SET/QUERY REMOTE BAUD RATES
; - REMOTE CHANNEL I/O
;
; ADDITIONAL SYNTAX: (C-REGISTER = 33)
; REG CONT FUNCTION
; D 0FE ATTACH CHANNEL IN B, RETURN A=FF=BUSY
; D 0FD DETACH CHANNEL IN B
; D 0FC SET BAUD FOR CHANNEL IN B, FROM E
; D 0FB GET BAUD FOR CHANNEL IN B, RETURN IN A
; D 0FA RETURN INPUT DATA FROM CHANNEL B,
; IF BIT 7 SET ON B, OUTPUT BYTE IN E
;
; NOTE:
; =====
; ADD IN .PAR FILE: RCFCN = 0XE9,[RCHNTY]
;
LOC Code#
;
RCHNTY::
MOV AL,0X56[SI] ; GET MODE BYTE
CMP AL,=0XFE ; ATTACH?
JZ ATTACH
CMP AL,=0XFD ; DETACH?
JZ DETACH
CMP AL,=0XFC ; SET BAUD
JZ SETBD
CMP AL,=0XFB ; GET BAUD
JZ GETBD
CMP AL,=0XFA ; GET INPUT
JZ DOIO
;
; CONTINUE WITH CONREM STUFF
;
MOV AL,0X67[SI]
JMP RCFCN#+3 ; CONTINUE
;
; +------------------------+
; | COMM CHANNEL I/O STUFF |
; +------------------------+
;
; ATTACH TO CHANNEL
;
ATTACH: CALL GETCHN ; GET CHANNEL NUMBER INTO DE
MOV BX,&BUSYV ; POINT TO BUSY VECTOR
ADD BX,DX
MOV AL,[BX]
MOV BYTE [BX],=0XFF ; PRESET BUSY
OR AL,AL ; TEST BUSY
JZ __X ; RETURN A=FF IF BUSY
MOV 0X4F[SI],AL
RET
;
__X: MOV BX,&ATTV ; POINT TO ATTACH TABLE
JMPS GETVEC ; GET VECTOR
;
; DETACH FROM CHANNEL
;
DETACH: CALL GETCHN ; GET CHANNEL NUMBER
MOV BX,&BUSYV ; POINT TO BUSY VECTOR
ADD BX,DX
MOV BYTE [BX],=0 ; SET CHANNEL CLEAR
MOV BX,&DETV
JMPS GETVEC
;
; SET CHANNEL BAUD RATE
;
SETBD: CALL GETCHN ; GET CHANNEL NUMBER
MOV BX,&SETBV ; POINT TO SETBAUD VECTORS
JMPS GETVEC ; GET VECTOR
;
; GET BAUD RATE
;
GETBD: CALL GETCHN ; GET CHANNEL #
MOV BX,&GETBV ; POINT TO GETBAUD VECTORS
JMPS GETVEC
;
; DO I/O
;
DOIO: CALL GETCHN ; GET CHANNEL #
AND DL,=0X7F ; STRIO OUTPUT FLAG IF SET
MOV BX,&IOV
;
; GET VECTOR
;
GETVEC: ADD BX,DX
ADD BX,DX
MOV DL,[BX]
INC BX
MOV DH,[BX]
CALL TSTUND# ; TEST UNDEFINED
MOV AL,=0XFE ; PRELOAD FALSE
JNZ XCUTE
MOV DX,=0
MOV BX,&BUSYV
ADD BX,DX
MOV BYTE [BX],=0
MOV 0X4F[SI],AL
RET
;
XCUTE: XCHG DX,BX
JMPI BX
;
; GET CHANNEL NUMBER
;
GETCHN: MOV DL,0X54[SI]
MOV DH,=0
RET
;
LOC Data#
;
; REMDRV DATA AREA
;
BUSYV: BYTE 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; BUSY VECTORS
ATTV: WORD &ATACHA#
WORD &ATACHB#
WORD &ATACHC#
WORD &ATACHD#
WORD &ATACHE#
WORD &ATACHF#
WORD &ATACHG#
WORD &ATACHH#
WORD &ATACHI#
WORD &ATACHJ#
WORD &ATACHK#
WORD &ATACHL#
WORD &ATACHM#
WORD &ATACHN#
WORD &ATACHO#
WORD &ATACHP#
;
DETV: WORD &DETAA#
WORD &DETAB#
WORD &DETAC#
WORD &DETAD#
WORD &DETAE#
WORD &DETAF#
WORD &DETAG#
WORD &DETAH#
WORD &DETAI#
WORD &DETAJ#
WORD &DETAK#
WORD &DETAL#
WORD &DETAM#
WORD &DETAN#
WORD &DETAO#
WORD &DETAP#
;
SETBV: WORD &SETBAA#
WORD &SETBAB#
WORD &SETBAC#
WORD &SETBAD#
WORD &SETBAE#
WORD &SETBAF#
WORD &SETBAG#
WORD &SETBAH#
WORD &SETBAI#
WORD &SETBAJ#
WORD &SETBAK#
WORD &SETBAL#
WORD &SETBAM#
WORD &SETBAN#
WORD &SETBAO#
WORD &SETBAP#
;
GETBV: WORD &GETBDA#
WORD &GETBDB#
WORD &GETBDC#
WORD &GETBDD#
WORD &GETBDE#
WORD &GETBDF#
WORD &GETBDG#
WORD &GETBDH#
WORD &GETBDI#
WORD &GETBDJ#
WORD &GETBDK#
WORD &GETBDL#
WORD &GETBDM#
WORD &GETBDN#
WORD &GETBDO#
WORD &GETBDP#
;
IOV: WORD &INOUTA#
WORD &INOUTB#
WORD &INOUTC#
WORD &INOUTD#
WORD &INOUTE#
WORD &INOUTF#
WORD &INOUTG#
WORD &INOUTH#
WORD &INOUTI#
WORD &INOUTJ#
WORD &INOUTK#
WORD &INOUTL#
WORD &INOUTM#
WORD &INOUTN#
WORD &INOUTO#
WORD &INOUTP#
;
END