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

  1. ;USER AREA FOR BSTAM FOR TELEVIDEO TS-802 COMPUTER.
  2. ;WRITTEN BY KEITH PETERSEN, W8SDZ - 5/9/82
  3. ;
  4. ;BASED ON GENERALIZED INFORMATION SUPPLIED BY BYROM SOFTWARE.
  5. ;
  6. ;THIS VERSION WORKS WITH THE PRINTER PORT
  7. ;
  8. PSTAT    EQU    23H    ;PRINTER STATUS PORT
  9. PDATA    EQU    21H    ;PRINTER DATA PORT
  10. ;
  11. ;    IF YOU WISH TO USE OTHER REGISTERS SUCH AS HL,BC,DE
  12. ;    (NOT INCLUDING  SP  REGISTER)
  13. ;    BE SURE TO PUSH BSTAM'S REGISTERS ON TO STACK AND POP
  14. ;    THEM BACK OFF BEFORE RETURNING TO BSTAM.
  15. ;    THERE IS AMPLE ROOM TO PUSH ALL REGISTERS ONTO BSTAM'S
  16. ;    STACK, PLUS ROOM FOR 10 LEVELS OF CALL'S.
  17. ;
  18. ;    THERE ARE 300 BYTES OF USER SPACE AVAILABLE TO YOU.
  19. ;
  20. ;    THE JUMP'S 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 INITIALATION 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    OUTPRTU            ;WRITE DATA PORT ENTRY POINT
  29. ;
  30. ;
  31. INITIU    EQU    $
  32. ;    THIS IS THE UART/USART INITIALATION ROUTINE.
  33. ;    TO BE COMPATIBLE WITH MOST BSTAM USERS USE FOLLOWING
  34. ;    INITIALATION GUIDE LINES:
  35. ;        1. USE 1 STOP BIT    (OPTIONAL - 2)
  36. ;        2. USE 8 DATA BITS    (MUST)
  37. ;        3. USE 1 START BIT    (MUST)
  38. ;        4. USE 16X FOR CLOCK RATE     (MUST)
  39. ;        5. USE ASYNCHRONOUS MODE ONLY    (MUST)
  40. ;
  41. ;
  42.     CALL    SIGNON    ;TELL USER WHAT'S IMPLEMENTED
  43.     IN    PDATA    ;CLEAR INPUT OF CHARS.
  44.     IN    PDATA    ;AGAIN TO MAKE SURE
  45.     RET        ;RETURN TO BSTAM
  46. ;
  47. INSPRU    EQU    $
  48. ;    THIS IS THE STATUS READ PORT ROUTINE.
  49. ;    WHEN EXITING THIS ROUTINE BSTAM EXPECTS IN REGISTER A
  50. ;    THE FOLLOWING BITS TO BE SET IF NEEDED:
  51. ;        1. 20 BIT SET IF FRAMING ERROR
  52. ;        2. 10 BIT SET IF OVERRUN ERROR
  53. ;        3. 08 BIT SET IF PARITY  ERROR
  54. ;        4. 04 BIT SET IF TRANSMITTER EMPTY
  55. ;            IF YOUR UART/USART DOES NOT HAVE TRANSMITTER
  56. ;            EMPTY FEATURE, THEN ALLWAYS SET THIS BIT ON.
  57. ;        5. 02 BIT SET IF RECEIVER READY
  58. ;        6. 01 BIT SET IF TRANSMITTER READY
  59. ;        7. DO NOT SET THE 80 BIT OR 40 BIT
  60. ;
  61. ;    OURSTAT    TBE=04H
  62. ;        RDA=01H
  63. ;
  64.     PUSH    B
  65.     IN    PSTAT    ;GET INFO BITS FROM STATUS PORT
  66.     ANI    01H    ;ISOLATE RDA BIT
  67.     RLC        ;SHIFT TO 02 BIT
  68.     MOV    B,A    ;SAVE
  69.     IN    PSTAT    ;GET STATUS AGAIN
  70.     ANI    04H    ;ISOLATE TBE BIT
  71.     ORA    B    ;COMBINE WITH RDA BIT
  72.     ORI    01H    ;ADD BOGUS TBE BIT FOR BSTAM
  73.     POP    B
  74.     RET
  75. ;
  76. ERRSTU    EQU    $
  77. ;    THIS IS THE ERROR RESET FOR UART/USART ROUTINE.
  78. ;    YOUR UART/USART MAY NOT NEED TO BE RESET IF FRAMING,
  79. ;    OVERRUN, OR PARITY ERROR IS FOUND. IF THIS IS YOUR
  80. ;    CASE, JUST DO A RETURN.
  81. ;
  82.     RET        ;RETURN TO BSTAM
  83. ;
  84. INPRTU    EQU    $
  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    PDATA    ;GET DATA FROM PORT
  92.     RET        ;RETURN TO BSTAM
  93. ;
  94. OUTPRTU    EQU    $
  95. ;    THIS IS THE WRITE DATA PORT ROUTINE.
  96. ;    BEFORE THIS ROUTINE IS ENTERED THE 04 BIT AND 01 BIT
  97. ;    OF STATUS READ MUST BE SET.
  98. ;    DO NOT CLEAR THE 80 BIT FROM THE DATA OUPDATAUT PORT.
  99. ;    REGISTER A CONTAINS THE OUPDATAUT DATA.
  100. ;
  101.     OUT    PDATA    ;SEND DATA TO REMOTE CPU
  102.     RET        ;RETURN TO BSTAM
  103. ;
  104. MESSGE:    DB    0DH,0AH,0DH,0AH
  105.     DB    'VERSION TELEVIDEO MAY 9, 1982',0DH,0AH
  106.     DB    'USING PRINTER PORT',0DH,0AH,'$'
  107. ;
  108. SIGNON:    PUSH    B
  109.     PUSH    D
  110.     PUSH    H
  111.     LXI    D,MESSGE
  112.     MVI    C,9
  113.     CALL    5        ;ANOUNCE VERSION TO USER
  114.     POP    H
  115.     POP    D
  116.     POP    B
  117.     RET
  118. ;
  119.     END    BEGIN
  120.