home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / tdossigi / remch1.mac < prev    next >
Text File  |  1986-07-05  |  1KB  |  99 lines

  1. ; REMCH - REMOTE CHANNEL DRIVER EXAMPLE
  2. ;
  3. .Z80
  4. ;
  5.     NAME    ('RemCh1')
  6. ;
  7. ;
  8. ; COM1 SET BAUD RATE
  9. ;
  10. SETBA@::
  11.     LD    B,1            ; SET CHANNEL 1
  12.     LD    C,(IX+31H)        ; GET E-REGISTER
  13.     LD    E,3            ; SET FUNCTION 3=SET BAUD RATE
  14.     CALL    COMDRV##        ; DO IT
  15.     LD    A,0FFH            ; RETURN TRUE
  16.     JP    EXITA##            ; AND QUIT
  17. ;
  18. ; COM1 GET BAUD RATE
  19. ;
  20. GETBD@::
  21.     LD    B,1            ; SET CHANNEL 1
  22.     LD    E,4            ; SET FUNCTION 4=GET BAUD RATE
  23.     CALL    COMDRV##
  24.     JP    EXITA##            ; RETURN WITH BAUD IN A
  25. ;
  26. ; COM1 I/O
  27. ;
  28. INOUT@::
  29.     LD    A,(IX+30H)        ; GET DIRECTION FLAG
  30.     AND    80H            ; VALID CHAR IN E?
  31.     JR    Z,.NO1            ;   NO, INPUT ONLY
  32.     LD    B,1
  33.     CALL    .CMOUT            ; COMMON OUTPUT
  34. .NO1:    CALL    GETDMA##        ; GET DMA ADDRESS
  35.     DI
  36.     EX    DE,HL
  37.     LD    BC,128
  38.     LD    HL,COM1BF
  39.     LD    A,(HL)
  40.     LDIR
  41.     LD    HL,COM1BF
  42.     LD    (HL),0
  43.     EI
  44.     JP    EXITA##
  45. ;
  46. ; COMMON OUTPUT
  47. ;
  48. .CMOUT:    LD    C,(IX+31H)        ; GET CHARACTER
  49.     LD    E,2            ; OUTPUT FCN
  50.     JP    COMDRV##        ; DO IT
  51. ;
  52. ; ATTACH COM CHANNEL
  53. ;
  54. ATACH@::
  55.     LD    DE,COM1PL
  56.     CALL    LNKPOL##
  57.     XOR    A
  58.     JP    EXITA##
  59. ;
  60. ; DETACH COM CHANNEL
  61. ;
  62. DETA@::
  63.     LD    HL,COM1PL
  64.     JP    UNLINK##
  65. ;
  66. ; POLL ROUTINE
  67. ;
  68. COM1PL:    DW    0
  69.     DW    0
  70.     LD    E,0
  71.     LD    B,1
  72.     CALL    COMDRV##
  73.     OR    A
  74.     RET    Z
  75.     LD    E,1
  76.     LD    B,1
  77.     CALL    COMDRV##
  78.     LD    B,A
  79.     LD    HL,COM1BF
  80.     LD    A,(HL)
  81.     CP    7FH
  82.     RET    Z
  83.     DI
  84.     INC    A
  85.     LD    (HL),A
  86.     LD    E,A
  87.     LD    D,0
  88.     ADD    HL,DE
  89.     LD    (HL),B
  90.     EI
  91.     RET
  92. ;
  93. ; REMCH DATA AREA
  94. ;
  95. COM1BF:    DB    0
  96.     DS    127
  97. ;
  98.     END
  99.