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

  1. ; MULTI.SC3
  2. ;
  3. ; INLINE TIMER OBJECT (FASTTIME.SRC)
  4. ;
  5. TIMER    CMP #'I'        
  6.          BNE CODED
  7. ;
  8.          LDA #>PULSE
  9.          STA ALLOCADR
  10.          LDA #<PULSE
  11.          STA ALLOCADR+1
  12. ;
  13.          LDA #INTRUPT
  14.          STA RECEIVER
  15.          LDA #>ALLOCMSG
  16.          STA MSG
  17.          LDA #<ALLOCMSG
  18.          STA MSG+1
  19.          JSR USRVECT
  20. ;
  21.          RTS
  22. ;
  23. ;------------OBJECTS REFERENCED
  24. INTRUPT  EQU  17             ;MIDI INTERFACE CONTROLLER
  25. ;
  26. ;==========================================
  27. ; INTERNAL DATA MAINTAINED BY OBJECT:
  28. ;
  29. SLOT     DFB $20
  30. ;
  31. COUNTERL DFB $00
  32. COUNTERH DFB $00
  33. USERFLAG DFB $00
  34. ;
  35. USERDURL DFB $00
  36. USERDURH DFB $00
  37. ;
  38. ALLOCMSG ASC 'A'
  39. ALLOCADR DW  $0000
  40. INTNUMBR DFB $00
  41. ;
  42. ;==========================================
  43. ; METHODS:
  44. ; (TO INVOKE: LDA #METHOD JSR TIMER)
  45. ;        'I' = INITIALIZE HOOK TO INTERRUPT
  46. ;        'D' <HI=X><LO=Y> = SET DURATION AND ZERO FLAG
  47. ;        'P' = PULSE FROM INTERRUPT
  48. ;        'R' <FLAG> = READ FLAG & SEE IF REACHED DURATION YET
  49. ;        'Z' = ZERO COUNTER
  50. ;==========================================
  51. CODED    CMP #'D'
  52.          BNE CODER
  53.          STX USERDURH
  54.          STY USERDURL
  55.          LDA #$00
  56.          STA USERFLAG
  57.          RTS
  58. ;
  59. PULSE    CLD
  60. ;
  61.          LDX SLOT
  62.          LDA #1
  63.          STA $C080,X
  64. ;
  65.          LDA COUNTERL
  66.          CLC
  67.          ADC #$01
  68.          STA COUNTERL
  69.          LDA COUNTERH
  70.          ADC #$00
  71.          STA COUNTERH
  72. ;
  73.          LDA USERFLAG
  74.          BNE PDONE
  75. ;
  76.          LDA COUNTERH
  77.          CMP USERDURH
  78.          BCC PDONE
  79.          LDA COUNTERL
  80.          CMP USERDURL
  81.          BCC PDONE
  82. ;
  83.          LDA #$01
  84.          STA USERFLAG
  85.          LDA #$00
  86.          STA COUNTERL
  87.          STA COUNTERH
  88. ;
  89. PDONE    LDX SLOT
  90.          LDA #0
  91.          STA $C080,X
  92.          CLC
  93.          RTS
  94. ;
  95. CODER    CMP #'R'
  96.          BNE CODEZ
  97.          LDA USERFLAG
  98.          RTS
  99. ;
  100. CODEZ    CMP #'Z'
  101.          BNE CODEEX
  102.          LDA #$00
  103.          STA COUNTERL
  104.          STA COUNTERH
  105. CODEEX   RTS
  106. ;
  107. ;
  108. ;
  109. EOF      DFB  $FF            ;EOF MARKER
  110. ;
  111. ;ADJUST ORIGIN BELOW DEPENDING ON LENGTH OF CODE
  112. ;
  113.          ORG  START+$800
  114. MLIBUFR  DS   $400
  115.