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.AQ / REMDRV.A
Text File  |  2000-06-30  |  4KB  |  209 lines

  1. ; REMDRV.A - A BASTARDIZATION OF CONREM
  2. ; CREATED 12/19/85 BY ESKAY (AS ALWAYS)
  3. ; VERSION 23 AS OF 12/19/85
  4. ;
  5.     MODULE    "RemDrv"
  6. ;
  7. ; ANOTHER ENHANCED TURBODOS MODULE BY ESKAY
  8. ; IN ADDITION TO THE DESCRIPTION OF T-FCN 33, REMOTE CONSOLE I/O,
  9. ; THE FOLLOWING IS NOW POSSIBLE:
  10. ; - SET/QUERY REMOTE BAUD RATES
  11. ; - REMOTE CHANNEL I/O
  12. ;
  13. ; ADDITIONAL SYNTAX:    (C-REGISTER = 33)
  14. ; REG    CONT    FUNCTION
  15. ;  D    0FE    ATTACH CHANNEL IN B, RETURN A=FF=BUSY
  16. ;  D    0FD    DETACH CHANNEL IN B
  17. ;  D    0FC    SET BAUD FOR CHANNEL IN B, FROM E
  18. ;  D    0FB    GET BAUD FOR CHANNEL IN B, RETURN IN A
  19. ;  D    0FA    RETURN INPUT DATA FROM CHANNEL B,
  20. ;        IF BIT 7 SET ON B, OUTPUT BYTE IN E
  21. ;
  22. ; NOTE:
  23. ; =====
  24. ;    ADD IN .PAR FILE:    RCFCN = 0XE9,[RCHNTY]
  25. ;
  26.     LOC    Code#
  27. ;
  28. RCHNTY::
  29.     MOV    AL,0X56[SI]        ; GET MODE BYTE
  30.     CMP    AL,=0XFE        ; ATTACH?
  31.     JZ    ATTACH
  32.     CMP    AL,=0XFD        ; DETACH?
  33.     JZ    DETACH
  34.     CMP    AL,=0XFC        ; SET BAUD
  35.     JZ    SETBD
  36.     CMP    AL,=0XFB        ; GET BAUD
  37.     JZ    GETBD
  38.     CMP    AL,=0XFA        ; GET INPUT
  39.     JZ    DOIO
  40. ;
  41. ; CONTINUE WITH CONREM STUFF
  42. ;
  43.     MOV    AL,0X67[SI]
  44.     JMP    RCFCN#+3        ; CONTINUE
  45. ;
  46. ;    +------------------------+
  47. ;    | COMM CHANNEL I/O STUFF |
  48. ;    +------------------------+
  49. ;
  50. ; ATTACH TO CHANNEL
  51. ;
  52. ATTACH:    CALL    GETCHN            ; GET CHANNEL NUMBER INTO DE
  53.     MOV    BX,&BUSYV        ; POINT TO BUSY VECTOR
  54.     ADD    BX,DX
  55.     MOV    AL,[BX]
  56.     MOV    BYTE [BX],=0XFF        ; PRESET BUSY
  57.     OR    AL,AL            ; TEST BUSY
  58.     JZ    __X            ; RETURN A=FF IF BUSY
  59.     MOV    0X4F[SI],AL
  60.     RET
  61. ;
  62. __X:    MOV    BX,&ATTV        ; POINT TO ATTACH TABLE
  63.     JMPS    GETVEC            ; GET VECTOR
  64. ;
  65. ; DETACH FROM CHANNEL
  66. ;
  67. DETACH:    CALL    GETCHN            ; GET CHANNEL NUMBER
  68.     MOV    BX,&BUSYV        ; POINT TO BUSY VECTOR
  69.     ADD    BX,DX
  70.     MOV    BYTE [BX],=0        ; SET CHANNEL CLEAR
  71.     MOV    BX,&DETV
  72.     JMPS    GETVEC
  73. ;
  74. ; SET CHANNEL BAUD RATE
  75. ;
  76. SETBD:    CALL    GETCHN            ; GET CHANNEL NUMBER
  77.     MOV    BX,&SETBV        ; POINT TO SETBAUD VECTORS
  78.     JMPS    GETVEC            ; GET VECTOR
  79. ;
  80. ; GET BAUD RATE
  81. ;
  82. GETBD:    CALL    GETCHN            ; GET CHANNEL #
  83.     MOV    BX,&GETBV        ; POINT TO GETBAUD VECTORS
  84.     JMPS    GETVEC
  85. ;
  86. ; DO I/O
  87. ;
  88. DOIO:    CALL    GETCHN            ; GET CHANNEL #
  89.     AND    DL,=0X7F        ; STRIO OUTPUT FLAG IF SET
  90.     MOV    BX,&IOV
  91. ;
  92. ; GET VECTOR
  93. ;
  94. GETVEC:    ADD    BX,DX
  95.     ADD    BX,DX
  96.     MOV    DL,[BX]
  97.     INC    BX
  98.     MOV    DH,[BX]
  99.     CALL    TSTUND#            ; TEST UNDEFINED
  100.     MOV    AL,=0XFE        ; PRELOAD FALSE
  101.     JNZ    XCUTE
  102.     MOV    DX,=0
  103.     MOV    BX,&BUSYV
  104.     ADD    BX,DX
  105.     MOV    BYTE [BX],=0
  106.     MOV    0X4F[SI],AL
  107.     RET
  108. ;
  109. XCUTE:    XCHG    DX,BX
  110.     JMPI    BX
  111. ;
  112. ; GET CHANNEL NUMBER
  113. ;
  114. GETCHN:    MOV    DL,0X54[SI]
  115.     MOV    DH,=0
  116.     RET
  117. ;
  118.     LOC    Data#
  119. ;
  120. ; REMDRV DATA AREA
  121. ;
  122. BUSYV:    BYTE    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    ; BUSY VECTORS
  123. ATTV:    WORD    &ATACHA#
  124.     WORD    &ATACHB#
  125.     WORD    &ATACHC#
  126.     WORD    &ATACHD#
  127.     WORD    &ATACHE#
  128.     WORD    &ATACHF#
  129.     WORD    &ATACHG#
  130.     WORD    &ATACHH#
  131.     WORD    &ATACHI#
  132.     WORD    &ATACHJ#
  133.     WORD    &ATACHK#
  134.     WORD    &ATACHL#
  135.     WORD    &ATACHM#
  136.     WORD    &ATACHN#
  137.     WORD    &ATACHO#
  138.     WORD    &ATACHP#
  139. ;
  140. DETV:    WORD    &DETAA#
  141.     WORD    &DETAB#
  142.     WORD    &DETAC#
  143.     WORD    &DETAD#
  144.     WORD    &DETAE#
  145.     WORD    &DETAF#
  146.     WORD    &DETAG#
  147.     WORD    &DETAH#
  148.     WORD    &DETAI#
  149.     WORD    &DETAJ#
  150.     WORD    &DETAK#
  151.     WORD    &DETAL#
  152.     WORD    &DETAM#
  153.     WORD    &DETAN#
  154.     WORD    &DETAO#
  155.     WORD    &DETAP#
  156. ;
  157. SETBV:    WORD    &SETBAA#
  158.     WORD    &SETBAB#
  159.     WORD    &SETBAC#
  160.     WORD    &SETBAD#
  161.     WORD    &SETBAE#
  162.     WORD    &SETBAF#
  163.     WORD    &SETBAG#
  164.     WORD    &SETBAH#
  165.     WORD    &SETBAI#
  166.     WORD    &SETBAJ#
  167.     WORD    &SETBAK#
  168.     WORD    &SETBAL#
  169.     WORD    &SETBAM#
  170.     WORD    &SETBAN#
  171.     WORD    &SETBAO#
  172.     WORD    &SETBAP#
  173. ;
  174. GETBV:    WORD    &GETBDA#
  175.     WORD    &GETBDB#
  176.     WORD    &GETBDC#
  177.     WORD    &GETBDD#
  178.     WORD    &GETBDE#
  179.     WORD    &GETBDF#
  180.     WORD    &GETBDG#
  181.     WORD    &GETBDH#
  182.     WORD    &GETBDI#
  183.     WORD    &GETBDJ#
  184.     WORD    &GETBDK#
  185.     WORD    &GETBDL#
  186.     WORD    &GETBDM#
  187.     WORD    &GETBDN#
  188.     WORD    &GETBDO#
  189.     WORD    &GETBDP#
  190. ;
  191. IOV:    WORD    &INOUTA#
  192.     WORD    &INOUTB#
  193.     WORD    &INOUTC#
  194.     WORD    &INOUTD#
  195.     WORD    &INOUTE#
  196.     WORD    &INOUTF#
  197.     WORD    &INOUTG#
  198.     WORD    &INOUTH#
  199.     WORD    &INOUTI#
  200.     WORD    &INOUTJ#
  201.     WORD    &INOUTK#
  202.     WORD    &INOUTL#
  203.     WORD    &INOUTM#
  204.     WORD    &INOUTN#
  205.     WORD    &INOUTO#
  206.     WORD    &INOUTP#
  207. ;
  208.     END
  209.