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

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