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 / REMCH1.A < prev    next >
Text File  |  2000-06-30  |  1KB  |  106 lines

  1. ; REMCH - REMOTE CHANNEL DRIVER EXAMPLE
  2. ;
  3.     MODULE    "RemCh1"
  4. ;
  5.     LOC    Code#
  6. ;
  7. ; COM1 SET BAUD RATE
  8. ;
  9. SETBA_::
  10.     MOV    CH,=1            ; SET CHANNEL 1
  11.     MOV    CL,0X55[SI]        ; GET E-REGISTER
  12.     MOV    DL,=3            ; SET FUNCTION 3=SET BAUD RATE
  13.     CALL    COMDRV#            ; DO IT
  14.     MOV    0X4F[SI],=BYTE 0XFF    ; RETURN TRUE
  15.     RET                ; AND QUIT
  16. ;
  17. ; COM1 GET BAUD RATE
  18. ;
  19. GETBD_::
  20.     MOV    CH,=1            ; SET CHANNEL 1
  21.     MOV    DL,=4            ; SET FUNCTION 4=GET BAUD RATE
  22.     CALL    COMDRV#
  23.     MOV    0X4F[SI],AL        ; RETURN WITH BAUD IN A
  24.     RET
  25. ;
  26. ; COM1 I/O
  27. ;
  28. INOUT_::
  29.     MOV    AL,0X54[SI]        ; GET DIRECTION FLAG
  30.     AND    AL,=0X80        ; VALID CHAR IN E?
  31.     JZ    __NO1            ;   NO, INPUT ONLY
  32.     MOV    CH,=1
  33.     CALL    CMOUT            ; COMMON OUTPUT
  34. __NO1:    MOV    DX,0X6A[SI]
  35.     MOV    BP,0X6C[SI]
  36.     MOV    CX,=128
  37.     MOV    BX,&COM1BF
  38.     MOV    AL,[BX]
  39.     PUSH    AX
  40.     MOV    AX,DS
  41.     CALL    LDIR#
  42.     POP    AX
  43.     MOV    COM1BF,=BYTE 0
  44.     MOV    0X4F[SI],AL
  45.     RET
  46. ;
  47. ; COMMON OUTPUT
  48. ;
  49. CMOUT:    MOV    CL,0X55[SI]        ; GET CHARACTER
  50.     MOV    DL,=2            ; OUTPUT FCN
  51.     JMP    COMDRV#            ; DO IT
  52. ;
  53. ; ATTACH COM CHANNEL
  54. ;
  55. ATACH_::
  56.     MOV    DX,&COM1PL
  57.     CALL    LNKPOL#
  58.     MOV    0X4F[SI],=BYTE 0
  59.     RET
  60. ;
  61. ; DETACH COM CHANNEL
  62. ;
  63. DETA_::
  64.     MOV    BX,&COM1PL
  65.     JMP    UNLINK#
  66. ;
  67. ; POLL ROUTINE
  68. ;
  69. COM1PL:    WORD    0
  70.     WORD    0
  71.     MOV    DL,=0
  72.     MOV    CH,=1
  73.     CALL    COMDRV#
  74.     OR    AL,AL
  75.     JNZ    __1
  76.     RET
  77. ;
  78. __1:    MOV    DL,=1
  79.     MOV    CH,=1
  80.     CALL    COMDRV#
  81.     MOV    CH,AL
  82.     MOV    BX,&COM1BF
  83.     MOV    AL,[BX]
  84.     CMP    AL,=0X7F
  85.     JNZ    __2
  86.     RET
  87. ;
  88. __2:    CLI
  89.     INC    AL
  90.     MOV    [BX],AL
  91.     MOV    DL,AL
  92.     MOV    DH,=0
  93.     ADD    BX,DX
  94.     MOV    [BX],CH
  95.     STI
  96.     RET
  97. ;
  98. ; REMCH DATA AREA
  99. ;
  100.     LOC    Data#
  101. ;
  102. COM1BF:    BYTE    0
  103.     RES    127
  104. ;
  105.     END
  106.