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 / BSTAM / UHS46.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  4KB  |  139 lines

  1. ;
  2. ;BSTAM 4.6 UHSIO4.ASM  NORTH STAR HSIO-4
  3. ;
  4. ;Modification written by Robb Adams  (WA9ZMO/8)
  5. ;6354 North Twelth Street, Kalamazoo, MI 49009
  6. ;
  7. ;10-Oct-82  This version will adapt the North Star 
  8. ;HSIO-4 I/O Board to BSTAM. The user need only make
  9. ;three modifications if desired;
  10. ;
  11. ;    BOARD ADDR - PORT ADDR - BAUD RATE 
  12. ;
  13. ;----------------------------------------------------------
  14. BEGIN    ORG    103H
  15. INITIL    JMP    INITIU    ;INITIALATION ENTRY POINT
  16. INSPORT    JMP    INSPRU    ;STATUS PORT READ ENTRY POINT
  17. ERRSET    JMP    ERRSTU    ;ERROR RESET ENTRY POINT
  18. INPORT    JMP    INPRTU    ;READ DATA PORT ENTRY POINT
  19. OUTPORT    JMP    OUTPRU    ;WRITE DATA PORT ENTRY POINT
  20. DUART    JMP    DUARTU
  21. DUARTU    RET
  22. ;----------------------------------------------------------
  23. BDOS    EQU    05H    ;
  24. CR    EQU    0AH    ;CARRIAGE RETURN
  25. LF    EQU    0DH    ;LINE FEED
  26. ;----------------------------------------------------------
  27. PA    EQU    00H    ;PORT A
  28. PB    EQU    04H    ;PORT B
  29. PC    EQU    08H    ;PORT C
  30. PD    EQU    0CH    ;PORT D
  31. ;----------------------------------------------------------
  32. B19200    EQU    00H    ;-- BAUD RATES FOLLOW --
  33. B9600    EQU    01H
  34. B4800    EQU    02H
  35. B2400    EQU    03H
  36. B1200    EQU    04H
  37. B600    EQU    05H
  38. B300    EQU    06H
  39. B110    EQU    07H
  40. ;----------------------------------------------------------
  41. BAS    EQU    10H    ;<- CHANGE BOARD ADDRESS HERE
  42. PAD    EQU    PD    ;<- CHANGE  PORT ADDRESS HERE
  43. BAUD    EQU    B300    ;<- CHANGE BAUD  RATE    HERE
  44. ;----------------------------------------------------------
  45. PORT    EQU    BAS+PAD    ;ADDRESS OF CHOSEN PORT
  46. STATPT    EQU    PORT+3    ;STATUS PORT
  47. DATAPT    EQU    PORT+2    ;DATA PORT
  48. INTRPT    EQU    PORT+1    ;INTERRUPT PORT
  49. BAUDPT    EQU    PORT+0    ;BAUD PORT
  50. ;----------------------------------------------------------
  51. MI    EQU    4EH    ;1 STOP,8 DATA
  52. CI    EQU    37H    ;ERROR RESET AND CHIP ENABLE
  53. ERSET    EQU    37H    ;ERROR RESET AND CHIP ENABLE
  54. ;----------------------------------------------------------
  55. INITIU    EQU    $
  56.  
  57. ;THIS IS THE UART/USART INITIALATION ROUTINE.
  58. ;
  59. ;TO BE COMPATIBLE WITH MOST BSTAM USERS USE FOLLOWING
  60. ;INITIALATION GUIDE LINES:
  61. ;
  62. ;1. USE 1 STOP BIT    (OPTIONAL - 2)
  63. ;2. USE 8 DATA BITS    (MUST)
  64. ;3. USE 1 START BIT    (MUST)
  65. ;4. USE 16X FOR CLOCK RATE     (MUST)
  66. ;5. USE ASYNCHRONOUS MODE ONLY    (MUST)
  67.  
  68.     MVI    A,B300    ;<- CHANGE BAUD RATE HERE
  69.     OUT    BAUDPT
  70.     CALL    SIGN        
  71.     MVI    A,03H
  72.     CALL    NOOP
  73.     CALL    NOOP
  74.     MVI    A,040H    ;RESET 8251
  75.     CALL    NOOP
  76.     MVI    A,MI    ;SEND MODE COMMAND 
  77.     CALL    NOOP
  78.     MVI    A,CI    ;ENABLE AND RESET ERRORS (FE,OE,PE)
  79.     CALL    NOOP
  80.     IN    DATAPT    ;CLEAR BUFFER
  81.     IN    DATAPT    ;... TWICE
  82.     RET        ;RETURN TO BSTAM
  83.  
  84. NOOP:    OUT     STATPT
  85.     NOP ! NOP ! NOP    
  86.     NOP ! NOP ! NOP
  87.     RET
  88.  
  89. INSPRU    EQU    $
  90.  
  91. ;THIS IS THE STATUS READ PORT ROUTINE.
  92. ;WHEN EXITING THIS ROUTINE BSTAM EXPECTS IN REGISTER A
  93. ;THE FOLLOWING BITS TO BE SET IF NEEDED:
  94. ;
  95. ;1. 02 BIT SET IF RECEIVER READY
  96. ;2. 01 BIT SET IF TRANSMITTER READY
  97.  
  98.     IN    STATPT    ;FROM 8251 STATUS PORT
  99.     RET        ;RETURN TO BSTAM
  100.  
  101. ERRSTU    EQU    $
  102.  
  103. ;THIS IS THE ERROR RESET FOR UART/USART ROUTINE.
  104. ;YOUR UART/USART MAY NOT NEED TO BE RESET IF FRAMING,
  105. ;OVERRUN, OR PARITY ERROR IS FOUND. IF THIS IS YOUR
  106. ;CASE, JUST DO A RETURN.
  107.  
  108.     MVI    A,ERSET    ;RESET ERRORS 
  109.     OUT    STATPT    ;TO STATUS PORT
  110.     RET        ;RETURN TO BSTAM
  111.  
  112. INPRTU    EQU    $
  113.  
  114. ;THIS IS THE READ DATA PORT ROUTINE.
  115.  
  116.     IN    DATAPT    ;GET DATA FROM PORT
  117.     RET        ;RETURN TO BSTAM
  118.  
  119. OUTPRU    EQU    $
  120.  
  121. ;THIS IS THE WRITE DATA PORT ROUTINE.
  122.  
  123.     OUT    DATAPT    ;SEND DATA TO REMOTE CPU
  124.     RET        ;RETURN TO BSTAM
  125.  
  126. MSGE:    DB    CR,LF,CR,LF
  127.     DB    'Version: North Star HSIO-4  11-Oct-82'
  128.     DB    CR,LF
  129.     DB    'Baud: 300    Port: D    by Robb Adams'
  130.     DB    CR,LF,LF,'$'
  131.  
  132. SIGN:    PUSH B ! PUSH D ! PUSH    H
  133.     LXI    D,MSGE
  134.     MVI    C,9
  135.     CALL    BDOS    
  136.     POP  H ! POP  D ! POP    B
  137.     RET
  138.     END    BEGIN
  139.