home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / OBJSRC / COMMTEST.txt < prev    next >
Text File  |  2020-08-13  |  3KB  |  136 lines

  1. ; MIDI INPUT DISPLAY
  2. ;
  3.          ORG       $6000
  4. ;
  5.          JSR       $FC58     ;CLR SCRN
  6. LOOP     LDA       ERRORS
  7.          BEQ       NOERRS
  8.          LDA       #$87
  9.          JSR       $FDED
  10.          LDA       #$00
  11.          STA       ERRORS
  12. NOERRS   LDA       $C000
  13.          BPL       NOKEY
  14.          AND       #$7F
  15.          CMP       #$03
  16.          BEQ       EXIT
  17.          LDA       $C000
  18.          STA       $C010
  19. ;;;;         JSR       COMOUT
  20. ;
  21. NOKEY    JSR       COMTIN
  22.          BEQ       LOOP
  23.          JSR       COMINP
  24.          JSR       $FDDA
  25.          JMP       LOOP
  26. ;
  27. EXIT     JSR       COMCLS
  28.          RTS
  29. ;
  30. ; **** COMMUNICATIONS SUBROUTINES ****
  31. ;
  32. CCCOM    EQU       $C0A8
  33. CCSTS    EQU       $C0A8
  34. CCDTA    EQU       $C0A9
  35. ;
  36. MLI      EQU       $BF00
  37. ;
  38. ;INITIALIZE COMM LINE
  39. ;--------------------
  40. COMINT   LDA #$00
  41.          STA CIRCS
  42.          STA CIRCE           ;START CIRCULAR BUFFER PTRS
  43.          JSR MLI
  44.          DFB $40
  45.          DW  APARMS
  46.          LDA #$13
  47.          STA CCCOM
  48.          LDA #$11
  49.          STA CCCOM           ;DISABLE INTERRUPTS
  50.          LDX CCDTA           ;THROW AWAY ANY GARBAGE DATA
  51.          ORA #$80            ;ENABLE INTERRUPTS
  52.          STA CCCOM
  53.          RTS
  54. ;
  55. ;COMM LINE INTERRUPT HANDLER
  56. ;---------------------------
  57. COMIRQ   LDA CCSTS
  58.          BNE COMME
  59.          SEC                 ;NOT MINE
  60.          RTS
  61. COMME    PHA
  62.          AND #$70            ;ANY ERRORS?
  63.          BEQ COMNE
  64.          INC ERRORS          ;YES-BUMP ERR CNT
  65. COMNE    PLA
  66.          AND #$01            ;ANY DATA?
  67.          BEQ CLAIM
  68.          LDA CCDTA           ;GET INCOMING BYTE
  69.          LDX CIRCE
  70.          STA CIRC,X          ;STORE AT END OF BUFR
  71.          INX
  72.          STX CIRCE
  73.          CPX CIRCS           ;WRAPAROUND?
  74.          BNE CLAIM
  75.          INC ERRORS          ;OVERRUN ERROR
  76.          DEC CIRCE           ;BACK UP END POINT
  77. CLAIM    CLC
  78.          RTS
  79. ;
  80. ;TEST CIRC BUFR FOR INPUT
  81. ;------------------------
  82. COMTIN   SEI
  83.          LDX CIRCS
  84.          CPX CIRCE         
  85.          CLI
  86.          RTS       ;IF ZERO, NO DATA YET
  87. ;
  88. ;WAIT FOR INPUT, RETURN IN A REG
  89. ;-------------------------------
  90. COMINP   JSR COMTIN
  91.          BEQ COMINP          ;WAIT
  92.          SEI
  93.          LDX CIRCS           ;GET BYTE FROM Q
  94.          LDA CIRC,X
  95.          INX
  96.          STX CIRCS
  97.          CLI
  98.          RTS
  99. ;
  100. ;SEND BYTE OUT FROM A REG
  101. ;------------------------
  102. COMOUT   PHA
  103. COMOL    LDA CCSTS
  104.          AND #$02            ;WAIT FOR TDRE
  105.          BEQ COMOL
  106.          PLA
  107.          STA CCDTA
  108.          RTS
  109. ;
  110. ;CLOSE COMM PORT
  111. ;---------------
  112. COMCLS   LDA #$13
  113.          STA CCCOM
  114.          LDA #$11
  115.          STA CCCOM
  116.          CLI
  117.          LDA #$01
  118.          STA APARMS
  119.          JSR MLI
  120.          DFB $41
  121.          DW  APARMS
  122.          LDA #$02
  123.          STA APARMS
  124.          RTS
  125. ;
  126. ;INTERNAL DATA:
  127. ;==============
  128. APARMS   DFB  2    ;MLI PARM LIST FOR ALLOC/DEALLOC INT
  129.          DFB  0
  130.          DW   COMIRQ
  131. ;
  132. ERRORS   DFB  0    ;ERROR COUNTER
  133. CIRCS    DFB  0    ;Q START PTR
  134. CIRCE    DFB  0    ;Q END PTR
  135. CIRC     DS   256  ;CIRC BUFR
  136.