home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol074 / ugodbout.asm < prev    next >
Encoding:
Assembly Source File  |  1984-04-29  |  2.6 KB  |  101 lines

  1. ;********************************************************
  2. ;*                            *
  3. ;*    FOR GODBOUT INTERFACER 1/2 SERIAL I/O BOARD    *
  4. ;*                            *
  5. ;********************************************************
  6. ;
  7. ;    April 22, 1981
  8. ;
  9. ;    By    Bill Bolton
  10. ;        Software Tools
  11. ;        P.O. Box 80
  12. ;        Newport Beach
  13. ;        NSW, 2106
  14. ;        Australia
  15. ;
  16. ;
  17. BEGIN    ORG    103H
  18. INITIL    JMP    INITIU            ;UART/USART INITIALISATION ENTRY POINT
  19. INSPORT    JMP    INSPRU            ;STATUS PORT READ ENTRY POINT
  20. ERRSET    JMP    ERRSTU            ;UART/USART ERROR RESET ENTRY POINT
  21. INPORT    JMP    INPRTU            ;READ DATA PORT ENTRY POINT
  22. OUTPORT    JMP    OUTPRU            ;WRITE DATA PORT ENTRY POINT
  23. ;
  24. ;
  25. TP    EQU    38H            ;DATA PORT
  26. TPS    EQU    TP+1            ;STATUS PORT
  27. ;
  28. ;
  29. INITIU:
  30.     CALL    SIGNON            ;TELL USER WHAT'S IMPLEMENTED
  31.     RET                ;RETURN TO BSTAM
  32. ;
  33. ;
  34. ;            THIS IS THE STATUS READ PORT ROUTINE.
  35. ;            WHEN EXITING THIS ROUTINE BSTAM EXPECTS IN REGISTER A
  36. ;            THE FOLLOWING BITS TO BE SET IF NEEDED:
  37. ;            1. 20 BIT SET IF FRAMING ERROR
  38. ;            2. 10 BIT SET IF OVERRUN ERROR
  39. ;            3. 08 BIT SET IF PARITY  ERROR
  40. ;            4. 04 BIT SET IF TRANSMITTER EMPTY
  41. ;                IF YOUR UART/USART DOES NOT HAVE TRANSMITTER
  42. ;                EMPTY FEATURE, THEN ALWAYS SET THIS BIT ON.
  43. ;            5. 02 BIT SET IF RECEIVER READY
  44. ;            6. 01 BIT SET IF TRANSMITTER READY
  45. ;            7. DO NOT SET THE 80 BIT OR 40 BIT
  46. ;
  47. INSPRU:
  48.     IN    TPS        ;GET INFO BITS FROM INTERFACER STATUS PORT
  49.     ANI    2BH        ;MASK OUT RELEVANT BITS
  50.     XRI    04H        ;FORCE TX EMPTY ON
  51.     RET            ;RETURN TO BSTAM
  52. ;
  53. ;
  54. ;            THIS IS THE ERROR RESET FOR UART/USART ROUTINE.
  55. ;            YOUR UART/USART MAY NOT NEED TO BE RESET IF FRAMING,
  56. ;            OVERRUN, OR PARITY ERROR IS FOUND. IF THIS IS YOUR
  57. ;            CASE, JUST DO A RETURN.
  58. ;
  59. ERRSTU:
  60.     RET            ;RETURN TO BSTAM
  61. ;
  62. ;
  63. ;            THIS IS THE READ DATA PORT ROUTINE.
  64. ;            BEFORE THIS ROUTINE IS ENTERED THE 02 BIT OF
  65. ;            STATUS READ ROUTINE MUST HAVE BEEN SET.
  66. ;            DO NOT CLEAR THE 80 BIT FROM THE DATA INPUT PORT.
  67. ;            RETURN WITH REGISTER A LOADED WITH INPUT DATA.
  68. ;
  69. INPRTU:
  70.     IN    TP        ;GET DATA FROM PORT
  71.     RET            ;RETURN TO BSTAM
  72. ;
  73. ;
  74. ;            THIS IS THE WRITE DATA PORT ROUTINE.
  75. ;            BEFORE THIS ROUTINE IS ENTERED THE 04 BIT AND 01 BIT
  76. ;            OF STATUS READ MUST BE SET.
  77. ;            DO NOT CLEAR THE 80 BIT FROM THE DATA OUTPUT PORT.
  78. ;            REGISTER A CONTAINS THE OUTPUT DATA.
  79. ;
  80. OUTPRU:
  81.     OUT    TP        ;SEND DATA TO REMOTE CPU
  82.     RET            ;RETURN TO BSTAM
  83. ;
  84. MESSGE:    DB    0DH,0AH,0DH,0AH
  85.     DB    'Version 4.5 - April 22,1981',0DH,0AH
  86.     DB    'For Godbout "Interfacer" S-100 I/O Card,',0DH,0AH
  87.     DB    'using an 1602 UART at ports 38H/39H, no parity.',0DH,0AH,'$'
  88. ;
  89. SIGNON:    PUSH    B
  90.     PUSH    D
  91.     PUSH    H
  92.     LXI    D,MESSGE
  93.     MVI    C,9
  94.     CALL    5        ;ANOUNCE VERSION TO USER
  95.     POP    H
  96.     POP    D
  97.     POP    B
  98.     RET
  99. ;
  100.     END    BEGIN
  101.