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 / UIMS.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  3KB  |  124 lines

  1. ;        UIMS.ASM ver 1.0
  2. ;    adapted by Keith Petersen, W8SDZ
  3. ;        (revised 3/14/81)
  4. ;
  5. ;USER AREA FOR BSTAM VER 4.3 FOR USE WITH THE
  6. ;INDUSTRIAL MICROSYSTEMS SERIAL PRINTER PORT
  7. ;
  8. LSTSTAT    EQU    12H    ;STATUS PORT
  9. LSTDAT    EQU    13H    ;DATA PORT
  10. ;
  11. CR    EQU    0DH    ;CARRIAGE RETURN
  12. LF    EQU    0AH    ;LINE FEED
  13. ;
  14. ;    IF YOU WISH TO USE OTHER REGISTERS SUCH AS HL,BC,DE
  15. ;    (NOT INCLUDING  SP  REGISTER).  BE SURE TO PUSH BSTAM'S
  16. ;    REGISTERS ON TO STACK AND POP THEM BACK OFF BEFORE
  17. ;    RETURNING TO BSTAM.  THERE IS AMPLE ROOM TO PUSH ALL
  18. ;    REGISTERS ONTO BSTAM'S STACK, PLUS ROOM FOR 10 LEVELS
  19. ;    OF CALLS.  THERE ARE 300 BYTES OF USER SPACE AVAILABLE
  20. ;    TO YOU.  THE JUMPS CODED AT THE BEGINNING OF THIS PROGRAM
  21. ;    CANNOT BE MOVED IN ANY WAY.
  22. ;
  23. BEGIN    ORG    103H            
  24. INITIL    JMP    INITIU    ;UART/USART INITIALIZATION ENTRY POINT
  25. INSPORT    JMP    INSPRU    ;STATUS PORT READ ENTRY POINT
  26. ERRSET    JMP    ERRSTU    ;UART/USART ERROR RESET ENTRY POINT
  27. INPORT    JMP    INPRTU    ;READ DATA PORT ENTRY POINT
  28. OUTPORT    JMP    OUTPRU    ;WRITE DATA PORT ENTRY POINT
  29. ;
  30. ;
  31. INITIU    EQU    $
  32. ;
  33. ;    THIS IS THE UART/USART INITIALIZATION ROUTINE.
  34. ;    TO BE COMPATIBLE WITH MOST BSTAM USERS USE FOLLOWING
  35. ;    INITIALIZATION GUIDE LINES:
  36. ;
  37. ;        1. USE 1 STOP BIT    (OPTIONAL - 2)
  38. ;        2. USE 8 DATA BITS    (MUST)
  39. ;        3. USE 1 START BIT    (MUST)
  40. ;        4. USE 16X FOR CLOCK RATE     (MUST)
  41. ;        5. USE ASYNCHRONOUS MODE ONLY    (MUST)
  42. ;
  43.     CALL    SIGNON    ;TELL USER WHAT'S IMPLEMENTED
  44.     IN    LSTDAT    ;CLEAR DATA FROM INPUT PORT
  45.     IN    LSTDAT    ;MAKE SURE IT'S CLEAR
  46.     RET
  47. ;
  48. ;
  49. INSPRU    EQU    $
  50. ;
  51. ;    THIS IS THE STATUS READ PORT ROUTINE.
  52. ;    WHEN EXITING THIS ROUTINE BSTAM EXPECTS IN REGISTER A
  53. ;    THE FOLLOWING BITS TO BE SET IF NEEDED:
  54. ;        1. 20 BIT SET IF FRAMING ERROR
  55. ;        2. 10 BIT SET IF OVERRUN ERROR
  56. ;        3. 08 BIT SET IF PARITY  ERROR
  57. ;        4. 04 BIT SET IF TRANSMITTER EMPTY
  58. ;            IF YOUR UART/USART DOES NOT HAVE TRANSMITTER
  59. ;            EMPTY FEATURE, THEN ALLWAYS SET THIS BIT ON.
  60. ;        5. 02 BIT SET IF RECEIVER READY
  61. ;        6. 01 BIT SET IF TRANSMITTER READY
  62. ;        7. DO NOT SET THE 80 BIT OR 40 BIT
  63. ;
  64.     IN    LSTSTAT    ;GET STATUS BITS FROM IMS STATUS PORT
  65.     RLC        ;MOVE INTO PLACE FOR BSTAM
  66.     ANI    6    ;REMOVE UNWANTED BITS
  67.     ORI    1    ;OR-IN BOGUS TRANS READY BIT
  68.     RET        ;RETURN TO BSTAM
  69. ;
  70. ;
  71. ERRSTU    EQU    $
  72. ;
  73. ;    THIS IS THE ERROR RESET FOR UART/USART ROUTINE.
  74. ;    YOUR UART/USART MAY NOT NEED TO BE RESET IF FRAMING,
  75. ;    OVERRUN, OR PARITY ERROR IS FOUND. IF THIS IS YOUR
  76. ;    CASE, JUST DO A RETURN.
  77. ;
  78.     IN    LSTDAT    ;CLEAR DATA FROM INPUT PORT
  79.     IN    LSTDAT    ;MAKE SURE IT'S CLEAR
  80.     RET        ;RETURN TO BSTAM
  81. ;
  82. ;
  83. INPRTU    EQU    $
  84. ;
  85. ;    THIS IS THE READ DATA PORT ROUTINE.
  86. ;    BEFORE THIS ROUTINE IS ENTERED THE 02 BIT OF
  87. ;    STATUS READ ROUTINE MUST HAVE BEEN SET.
  88. ;    DO NOT CLEAR THE 80 BIT FROM THE DATA INPUT PORT.
  89. ;    RETURN WITH REGISTER A LOADED WITH INPUT DATA.
  90. ;
  91.     IN    LSTDAT    ;GET DATA FROM PORT
  92.     RET        ;RETURN TO BSTAM
  93. ;
  94. ;
  95. OUTPRU    EQU    $
  96. ;
  97. ;    THIS IS THE WRITE DATA PORT ROUTINE.
  98. ;    BEFORE THIS ROUTINE IS ENTERED THE 04 BIT AND 01 BIT
  99. ;    OF STATUS READ MUST BE SET.
  100. ;    DO NOT CLEAR THE 80 BIT FROM THE DATA OUTPUT PORT.
  101. ;    REGISTER A CONTAINS THE OUTPUT DATA.
  102. ;
  103.     OUT    LSTDAT    ;SEND DATA TO REMOTE CPU
  104.     RET        ;RETURN TO BSTAM
  105. ;
  106. ;
  107. MESSGE:    DB    CR,LF,CR,LF
  108.     DB    'INDUSTRIAL MICROSYSTEMS SERIAL PRINTER PORT '
  109.     DB    '- ver 1.0',CR,LF,'$'
  110. ;
  111. ;
  112. SIGNON:    PUSH    B
  113.     PUSH    D
  114.     PUSH    H
  115.     LXI    D,MESSGE
  116.     MVI    C,9
  117.     CALL    5    ;ANNOUNCE VERSION TO USER
  118.     POP    H
  119.     POP    D
  120.     POP    B
  121.     RET
  122. ;
  123.     END    BEGIN
  124.