home *** CD-ROM | disk | FTP | other *** search
- ; REMDRV.MAC - A BASTARDIZATION OF CONREM
- ; CREATED 10/05/85 BY ESKAY (AS ALWAYS)
- ; VERSION 23 AS OF 10/11/85
- ;
- NAME ('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
- ;
- .Z80
- ;
- ASEG ; GET SERIAL # STRAIGHT
- PUBLIC ?ORIG?,?UNIT?
- ?ORIG? EQU 24
- ?UNIT? EQU 1
- ;
- CSEG
- ;
- RCHNTY: LD A,(IX+32H) ; GET MODE BYTE
- CP 0FEH ; ATTACH?
- JP Z,ATTACH
- CP 0FDH ; DETACH?
- JP Z,DETACH
- CP 0FCH ; SET BAUD
- JP Z,SETBD
- CP 0FBH ; GET BAUD
- JP Z,GETBD
- CP 0FAH ; GET INPUT
- JP Z,DOIO
- ;
- ; CONTINUE WITH CONREM STUFF
- ;
- LD A,(IX+3BH)
- JP RCFCN##+3 ; CONTINUE
- ;
- ; +------------------------+
- ; | COMM CHANNEL I/O STUFF |
- ; +------------------------+
- ;
- ; ATTACH TO CHANNEL
- ;
- ATTACH: CALL GETCHN ; GET CHANNEL NUMBER INTO DE
- LD HL,BUSYV ; POINT TO BUSY VECTOR
- ADD HL,DE
- LD A,(HL)
- LD (HL),0FFH ; PRESET BUSY
- OR A ; TEST BUSY
- JP NZ,EXITA## ; RETURN A=FF IF BUSY
- LD HL,ATTV ; POINT TO ATTACH TABLE
- JR GETVEC ; GET VECTOR
- ;
- ; DETACH FROM CHANNEL
- ;
- DETACH: CALL GETCHN ; GET CHANNEL NUMBER
- LD HL,BUSYV ; POINT TO BUSY VECTOR
- ADD HL,DE
- LD (HL),0 ; SET CHANNEL CLEAR
- LD HL,DETV
- JR GETVEC
- ;
- ; SET CHANNEL BAUD RATE
- ;
- SETBD: CALL GETCHN ; GET CHANNEL NUMBER
- LD HL,SETBV ; POINT TO SETBAUD VECTORS
- JR GETVEC ; GET VECTOR
- ;
- ; GET BAUD RATE
- ;
- GETBD: CALL GETCHN ; GET CHANNEL #
- LD HL,GETBV ; POINT TO GETBAUD VECTORS
- JR GETVEC
- ;
- ; DO I/O
- ;
- DOIO: CALL GETCHN ; GET CHANNEL #
- RES 7,E ; STRIO OUTPUT FLAG IF SET
- LD HL,IOV
- ;
- ; GET VECTOR
- ;
- GETVEC: ADD HL,DE
- ADD HL,DE
- LD E,(HL)
- INC HL
- LD D,(HL)
- CALL TSTUND## ; TEST UNDEFINED
- LD A,0FEH ; PRELOAD FALSE
- JR NZ,.XCUTE
- CALL GETCHN
- LD HL,BUSYV
- ADD HL,DE
- LD (HL),0
- JP EXITA##
- .XCUTE: EX DE,HL
- JP (HL)
- ;
- GETCHN: LD E,(IX+30H) ; GET CHANNEL
- LD D,0
- RET
- ;
- COMMON /?INIT?/
- ;
- DSKIN@::
- LD HL,RCHNTY
- LD A,0C3H
- LD (RCFCN##),A
- LD (RCFCN##+1),HL
- RET
- ;
- DSEG
- ;
- ; REMDRV DATA AREA
- ;
- BUSYV: DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; BUSY VECTORS
- ATTV: DW ATACHA##
- DW ATACHB##
- DW ATACHC##
- DW ATACHD##
- DW ATACHE##
- DW ATACHF##
- DW ATACHG##
- DW ATACHH##
- DW ATACHI##
- DW ATACHJ##
- DW ATACHK##
- DW ATACHL##
- DW ATACHM##
- DW ATACHN##
- DW ATACHO##
- DW ATACHP##
- ;
- DETV: DW DETAA##
- DW DETAB##
- DW DETAC##
- DW DETAD##
- DW DETAE##
- DW DETAF##
- DW DETAG##
- DW DETAH##
- DW DETAI##
- DW DETAJ##
- DW DETAK##
- DW DETAL##
- DW DETAM##
- DW DETAN##
- DW DETAO##
- ;
- SETBV: DW SETBAA##
- DW SETBAB##
- DW SETBAC##
- DW SETBAD##
- DW SETBAE##
- DW SETBAF##
- DW SETBAG##
- DW SETBAH##
- DW SETBAI##
- DW SETBAJ##
- DW SETBAK##
- DW SETBAL##
- DW SETBAM##
- DW SETBAN##
- DW SETBAO##
- DW SETBAP##
- ;
- GETBV: DW GETBDA##
- DW GETBDB##
- DW GETBDC##
- DW GETBDD##
- DW GETBDE##
- DW GETBDF##
- DW GETBDG##
- DW GETBDH##
- DW GETBDI##
- DW GETBDJ##
- DW GETBDK##
- DW GETBDL##
- DW GETBDM##
- DW GETBDN##
- DW GETBDO##
- DW GETBDP##
- ;
- IOV: DW INOUTA##
- DW INOUTB##
- DW INOUTC##
- DW INOUTD##
- DW INOUTE##
- DW INOUTF##
- DW INOUTG##
- DW INOUTH##
- DW INOUTI##
- DW INOUTJ##
- DW INOUTK##
- DW INOUTL##
- DW INOUTM##
- DW INOUTN##
- DW INOUTO##
- DW INOUTP##
- ;
- END
- DW ATACHI##
- DW ATACHJ##
- DW ATACHK##
- DW ATACHL##
- D