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

  1. ; ********************************************
  2. ; * TIMER.SRC - DURATION TIMER
  3. ; * (C) 1993, ERIC RANGELL
  4. ; ********************************************
  5. ;
  6. ;------------GLOBAL EQUATES
  7. RECEIVER EQU $FA
  8. MSG      EQU $FB
  9. MYOBJ    EQU $FD
  10. MYADRS   EQU $FE             ;WILL POINT TO 'BASE' WHEN OBJECT INVOKED
  11. ;
  12. USRVECT  EQU $0A             ;APPLESOFT USR VECTOR - USED TO CALL OBJECTS
  13. ;
  14. ;------------OBJECTS REFERENCED
  15. TIMER    EQU  02
  16. INTRFACE EQU  16             ;MIDI INTERFACE CONTROLLER
  17. ;
  18. ;------------OBJECT HEADER
  19.         ORG $6000
  20. ;
  21.         LDA #$00  ;CALL OBJECT SETUP ROUTINE
  22.         STA $FA
  23.         JSR $000A
  24.         DFB TIMER           ;OBJECT NUMBER
  25.         DFB 0,0,0,0,0,0,0   ;SAVE AREA
  26. BASE    CLV
  27.         BVC CODE
  28. RETCODE DFB $00             ;RETURN CODE
  29. ;
  30. ;==========================================
  31. ; INTERNAL DATA MAINTAINED BY OBJECT:
  32. ;
  33. COUNTERL DFB $00
  34. COUNTERH DFB $00
  35. USERFLAG DFB $00
  36. ;
  37. USERDURL DFB $00
  38. USERDURH DFB $00
  39. ;
  40. HOOKMSG  ASC 'H'
  41. HOOKOBJ  DFB $00
  42. ;
  43. ;==========================================
  44. ; METHODS:
  45. ;        'I' = INITIALIZE HOOK TO INTERRUPT
  46. ;        'D' <HI><LO> = 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. CODE     LDY #0
  52.          LDA (MSG),Y
  53.          CMP #'I'        
  54.          BNE CODED
  55. ;
  56.          LDA MYOBJ
  57.          LDY #HOOKOBJ-BASE
  58.          STA (MYADRS),Y
  59. ;
  60.          LDA #INTRFACE
  61.          STA RECEIVER
  62.          LDA #HOOKMSG-BASE
  63.          CLC
  64.          ADC MYADRS
  65.          STA MSG
  66.          LDA #00
  67.          ADC MYADRS+1
  68.          STA MSG+1
  69.          JSR USRVECT
  70. ;
  71.          RTS
  72. ;
  73. CODED    CMP #'D'
  74.          BNE CODEP
  75.          LDY #1
  76.          LDA (MSG),Y
  77.          LDY #USERDURH-BASE
  78.          STA (MYADRS),Y
  79.          LDY #2
  80.          LDA (MSG),Y
  81.          LDY #USERDURL-BASE
  82.          STA (MYADRS),Y
  83.          LDA #$00
  84.          LDY #USERFLAG-BASE
  85.          STA (MYADRS),Y
  86.          RTS
  87. ;
  88. CODEP    CMP #'P'
  89.          BNE CODER
  90. ;
  91.          LDY #COUNTERL-BASE
  92.          LDA (MYADRS),Y
  93.          CLC
  94.          ADC #$01
  95.          STA (MYADRS),Y
  96.          LDY #COUNTERH-BASE
  97.          LDA (MYADRS),Y
  98.          ADC #$00
  99.          STA (MYADRS),Y
  100. ;
  101.          LDY #USERFLAG-BASE
  102.          LDA (MYADRS),Y
  103.          BNE PDONE
  104. ;
  105.          LDY #COUNTERH-BASE
  106.          LDA (MYADRS),Y
  107.          LDY #USERDURH-BASE
  108.          CMP (MYADRS),Y
  109.          BCC PDONE
  110.          LDY #COUNTERL-BASE
  111.          LDA (MYADRS),Y
  112.          LDY #USERDURL-BASE
  113.          CMP (MYADRS),Y
  114.          BCC PDONE
  115. ;
  116.          LDA #$01
  117.          LDY #USERFLAG-BASE
  118.          STA (MYADRS),Y
  119.          LDA #$00
  120.          LDY #COUNTERL-BASE
  121.          STA (MYADRS),Y
  122.          LDY #COUNTERH-BASE
  123.          STA (MYADRS),Y
  124. PDONE    RTS
  125. ;
  126. CODER    CMP #'R'
  127.          BNE CODEZ
  128.          LDY #USERFLAG-BASE
  129.          LDA (MYADRS),Y
  130.          LDY #1
  131.          STA (MSG),Y
  132.          RTS
  133. ;
  134. CODEZ    CMP #'Z'
  135.          BNE CODEEX
  136.          LDA #$00
  137.          LDY #COUNTERL-BASE
  138.          STA (MYADRS),Y
  139.          LDY #COUNTERH-BASE
  140.          STA (MYADRS),Y
  141.          RTS
  142. ;
  143. CODEEX   LDY #RETCODE-BASE
  144.          LDA #12
  145.          STA (MYADRS),Y
  146.          SEC   
  147.          RTS 
  148. ;
  149.