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

  1. ;
  2. ;VERSION UAPPLE     (revised JUL 20, 1981)
  3. ;
  4. ;User routines for BSTAM version 4.3 or 4.4, for use with
  5. ;Apple CP/M with an Apple Communications Interface or
  6. ;a CCS 7710A Serial Interface in slot 2.
  7. ;    By Keith Petersen, W8SDZ
  8. ;
  9. ;DEFINE PORT ADDRESSES
  10. ;
  11. STATUS    EQU    0E0A0H    ;COM. OR CCS CARD STATUS LOC.
  12. DATA    EQU    0E0A1H    ;COM. CARD DATA - SLOT 2
  13. ;
  14. ;DEFINE ASCII CHARACTERS USED
  15. ;
  16. CR    EQU    0DH
  17. LF    EQU    0AH
  18. ;
  19. ;    IF YOU WISH TO USE OTHER REGISTERS SUCH AS HL,BC,DE
  20. ;    (NOT INCLUDING  SP  REGISTER)
  21. ;    BE SURE TO PUSH BSTAM'S REGISTERS ON TO STACK AND POP
  22. ;    THEM BACK OFF BEFORE RETURNING TO BSTAM.
  23. ;    THERE IS AMPLE ROOM TO PUSH ALL REGISTERS ONTO BSTAM'S
  24. ;    STACK, PLUS ROOM FOR 10 LEVELS OF CALL'S.
  25. ;
  26. ;    THERE ARE 300 BYTES OF USER SPACE AVAILABLE TO YOU.
  27. ;
  28. ;    THE JUMP'S CODED AT THE BEGINNING OF THIS PROGRAM
  29. ;    CANNOT BE MOVED IN ANY WAY.
  30. ;
  31. BEGIN    ORG    103H
  32. ;
  33. INITIL    JMP    INITIU    ;UART/USART INITIALATION ENTRY POINT
  34. INSPORT    JMP    INSPRU    ;STATUS PORT READ ENTRY POINT
  35. ERRSET    JMP    ERRSTU    ;UART/USART ERROR RESET ENTRY POINT
  36. INPORT    JMP    INPRTU    ;READ DATA PORT ENTRY POINT
  37. OUTPORT    JMP    OUTPRU    ;WRITE DATA PORT ENTRY POINT
  38. ;
  39. INITIU    EQU    $
  40. ;    THIS IS THE UART/USART INITIALATION ROUTINE.
  41. ;    TO BE COMPATIBLE WITH MOST BSTAM USERS USE FOLLOWING
  42. ;    INITIALATION GUIDE LINES:
  43. ;    1. USE 1 STOP BIT    (OPTIONAL - 2)
  44. ;    2. USE 8 DATA BITS    (MUST)
  45. ;    3. USE 1 START BIT    (MUST)
  46. ;    4. USE 16X FOR CLOCK RATE     (MUST)
  47. ;    5. USE ASYNCHRONOUS MODE ONLY    (MUST)
  48. ;
  49.     LDA    DATA    ;CLEAR DATA PORT
  50.     LDA    DATA    ;AGAIN TO MAKE SURE
  51.     CALL    SIGNON    ;TELL USER WHAT'S IMPLEMENTED
  52.     RET        ;RETURN TO BSTAM
  53. ;
  54. INSPRU    EQU    $
  55. ;    THIS IS THE STATUS READ PORT ROUTINE.
  56. ;    WHEN EXITING THIS ROUTINE BSTAM EXPECTS IN REGISTER A
  57. ;    THE FOLLOWING BITS TO BE SET IF NEEDED:
  58. ;    1. 20 BIT SET IF FRAMING ERROR
  59. ;    2. 10 BIT SET IF OVERRUN ERROR
  60. ;    3. 08 BIT SET IF PARITY  ERROR
  61. ;    4. 04 BIT SET IF TRANSMITTER EMPTY
  62. ;        IF YOUR UART/USART DOES NOT HAVE TRANSMITTER
  63. ;        EMPTY FEATURE, THEN ALLWAYS SET THIS BIT ON.
  64. ;    5. 02 BIT SET IF RECEIVER READY
  65. ;    6. 01 BIT SET IF TRANSMITTER READY
  66. ;    7. DO NOT SET THE 80 BIT OR 40 BIT
  67. ;
  68.     LDA    STATUS    ;TBE = 02H, RDA = 01H
  69.     RLC
  70.     ANI    6    ;MASK OFF UNWANTED BITS
  71.     ORI    1    ;BOGUS TBE BIT
  72.     RET
  73. ;
  74. ERRSTU    EQU    $
  75. ;    THIS IS THE ERROR RESET FOR UART/USART ROUTINE.
  76. ;    YOUR UART/USART MAY NOT NEED TO BE RESET IF FRAMING,
  77. ;    OVERRUN, OR PARITY ERROR IS FOUND. IF THIS IS YOUR
  78. ;    CASE, JUST DO A RETURN.
  79. ;
  80.     RET        ;RETURN TO BSTAM
  81. ;
  82. INPRTU    EQU    $
  83. ;    THIS IS THE READ DATA PORT ROUTINE.
  84. ;    BEFORE THIS ROUTINE IS ENTERED THE 02 BIT OF
  85. ;    STATUS READ ROUTINE MUST HAVE BEEN SET.
  86. ;    DO NOT CLEAR THE 80 BIT FROM THE DATA INPUT PORT.
  87. ;    RETURN WITH REGISTER A LOADED WITH INPUT DATA.
  88. ;
  89.     LDA    DATA    ;GET DATA FROM PORT
  90.     RET        ;RETURN TO BSTAM
  91. ;
  92. OUTPRU    EQU    $
  93. ;    THIS IS THE WRITE DATA PORT ROUTINE.
  94. ;    BEFORE THIS ROUTINE IS ENTERED THE 04 BIT AND 01 BIT
  95. ;    OF STATUS READ MUST BE SET.
  96. ;    DO NOT CLEAR THE 80 BIT FROM THE DATA OUTPUT PORT.
  97. ;    REGISTER A CONTAINS THE OUTPUT DATA.
  98. ;
  99.     STA    DATA    ;SEND DATA TO REMOTE CPU
  100.     RET        ;RETURN TO BSTAM
  101. ;
  102. MESSGE:    DB    CR,LF,CR,LF
  103.     DB    'Version for Apple II as of 7/20/81.',CR,LF
  104.     DB    'For Apple Communications Interface or',CR,LF
  105.     DB    'CCS 7710A Serial Interface in slot 2.',CR,LF,'$'
  106. ;
  107. SIGNON:    PUSH    B
  108.     PUSH    D
  109.     PUSH    H
  110.     LXI    D,MESSGE
  111.     MVI    C,9
  112.     CALL    5        ;ANNOUNCE VERSION TO USER
  113.     POP    H
  114.     POP    D
  115.     POP    B
  116.     RET
  117. ;
  118.     END
  119.