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

  1. ;----------------------------------------------------------
  2. ;
  3. ;BSTAM Driver for the Morrow Decision I or MULTI/IO board
  4. ;      ( This routine will work with BSTAM through V4.6)
  5. ;      written by: Robert E. A. Adams, WA9ZMO   25-Dec-82
  6. ;
  7. ;    NOTE: To locate the GROUP address use DDT to see
  8. ;    the second and third bytes of CONIN. In my system
  9. ;    it was '3A E3' or '0E33AH'.
  10. ;
  11. ;----------------------------------------------------------
  12. ;
  13. FALSE    EQU    0
  14. TRUE    EQU    NOT FALSE
  15. INITIAL EQU    TRUE    ;TRUE FOR PORT/BAUD INITIALIZATION
  16.             ;FALSE IF NO INITILIALIZATION REQ'D
  17. ;----------------------------------------------------------
  18. ;
  19. BEGIN    ORG    103H 
  20. INITIL  JMP     INITIU  ;UART INITIALIZATION ENTRY POINT
  21. INSPORT JMP     INSPRU  ;STATUS PORT READ    ENTRY POINT
  22. ERRSET  JMP     ERRSTU  ;UART ERROR RESET    ENTRY POINT
  23. INPORT  JMP     INPRTU  ;READ DATA PORT      ENTRY POINT
  24. OUTPORT JMP     OUTPRU  ;WRITE DATA PORT     ENTRY POINT
  25. DUART    JMP    DUARTU    ;DUMMY ROUTINE
  26. DUARTU    EQU    $
  27.     RET        ;DO A RETURN HERE UNLESS YOU WISH
  28.             ;TO ADD AN ADDITIONAL ROUTINE
  29. ;
  30. ;----------------------------------------------------------
  31. GROUP    EQU    0E33AH    ;YOU WILL HAVE TO CHECK YOUR BIOS
  32.             ;FOR YOUR VALUE
  33. DEVICE    EQU    2    ;SERIAL PORT P2 SPECIFIED HERE
  34. PORT    EQU    48H    ;ADDRESS OF DECISION & MULTI/IO
  35. ;
  36. ;----------------------------------------------------------
  37. ;
  38. PREPARE EQU     $
  39.         PUSH    H       ;THIS ROUTINE INFORMS THE PIC
  40.         PUSH    PSW     ;AS TO WHICH 8250 PORT YOU ARE
  41.         LDA     GROUP   ;ABOUT TO I/O... IT MUST BE
  42.         ORI     DEVICE  ;CALLED EACH TIME YOU DO AN 'IN'
  43.         OUT     PORT+7  ;OR AN 'OUT'
  44.         POP     PSW     ;
  45.         POP     H       ;
  46.         RET     ;RETURN TO THE ROUTINE
  47. ;
  48. ;----------------------------------------------------------
  49. ;PORT INITIALIZATION ROUTINE
  50. ;
  51. INITIU  EQU     $
  52.     CALL    SIGNON
  53.  
  54.     IF    INITIAL
  55. ;
  56. ;BAUD RATE DIVISORS FOR 8250'S
  57. ;
  58. B110    EQU    1047
  59. B300    EQU     384
  60. B600    EQU     192
  61. B1200   EQU     96
  62. B2400   EQU     48
  63. B4800   EQU     24
  64. B9600   EQU     12
  65. ;
  66.         PUSH H ! PUSH D ! PUSH B
  67.         LXI     H,B300 ;GET BAUD RATE
  68.         LDA     GROUP
  69.         ORI     DEVICE
  70.         OUT     PORT+7
  71.         MVI     A,83H
  72.         OUT     PORT+3
  73.         MOV     A,L
  74.         OUT     PORT+0
  75.         MOV     A,H
  76.         OUT     PORT+1
  77.         MVI     A,3
  78.         OUT     PORT+3
  79.         OUT     PORT+4
  80.         POP B  ! POP D  ! POP  H
  81.         ENDIF   ;INITIAL
  82. ;
  83.         RET     ;RETURN TO BSTAM
  84. ;
  85. ;----------------------------------------------------------
  86. ;       STATUS INPUT ROUTINE
  87. ;
  88. INSPRU  EQU     $
  89.         CALL    PREPARE ;INFORM THE PIC
  90.         IN      PORT+5  
  91.         ANI     21H
  92.     PUSH    B
  93.     RLC
  94.     MOV    B,A
  95.     RLC
  96.     RLC
  97.     ORA    B
  98.     POP    B
  99.     ANI    3
  100.     ORI    4
  101.         RET     ;RETURN TO BSTAM
  102. ;
  103. ;----------------------------------------------------------
  104. ;ERROR RESET ROUTINE
  105. ;
  106. ERRSTU  EQU     $
  107.         CALL    PREPARE ;INFORM THE PIC
  108.         RET     ;RETURN TO BSTAM
  109. ;
  110. ;----------------------------------------------------------
  111. ;INPUT ROUTINE
  112. ;
  113. INPRTU  EQU     $
  114.         CALL    PREPARE ;INFORM THE PIC
  115.         IN      PORT+0  ;GET DATA FROM PORT
  116.         RET     ;RETURN TO BSTAM
  117. ;
  118. ;----------------------------------------------------------
  119. ;OUTPUT ROUTINE
  120. ;
  121. OUTPRU  EQU     $
  122.         CALL    PREPARE ;INFORM THE PIC
  123.         OUT     PORT+0  ;SEND DATA TO REMOTE CPU
  124.         RET     ;RETURN TO BSTAM
  125. ;
  126. ;----------------------------------------------------------
  127. MESSGE:    DB    13,10,10
  128.     DB    'Version for Morrow Decision or Multi/IO'
  129.         DB      13,10
  130.     DB    'Serial Port P2  25-Dec-82 by Robb Adams'
  131.         DB      13,10,7,'$'
  132. ;
  133. SIGNON:    PUSH B ! PUSH D ! PUSH H
  134.     LXI    D,MESSGE
  135.     MVI    C,9
  136.     CALL    0005    ;ANOUNCE VERSION TO USER
  137.     POP  H ! POP  D ! POP  B
  138.     RET     ;RETURN TO BSTAM
  139. ;
  140. ;----------------------------------------------------------
  141.     END    BEGIN
  142.