home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / pdoseric.hdv / SOURCE / EDITVEL.SRC.txt < prev    next >
Text File  |  2020-08-13  |  5KB  |  159 lines

  1. ;
  2. ; EDIT.SRC0
  3. ;
  4.                     ORG   $1000
  5. ;
  6. PTR                 EQU   $06          ;SEQUENCE POINTER
  7. DLYCTR              EQU   $FD          ;DELAY COUNTER
  8. SPEED               EQU   $FF          ;SPEED OF PLAYBACK
  9. ;
  10. ;=================================================
  11. ORIGIN              JMP   BEGINNIN
  12. ;
  13. DURL                DFB   $00
  14. DURH                DFB   $00
  15. NOTE                DFB   $00  
  16. VEL                 DFB   $00 
  17. ;
  18. ;=================================================
  19. BEGINNIN            JSR   INITIAL
  20. ;
  21. SENDLOOP            LDY   #$00         ;GET DURATION HI BYTE
  22.                     LDA   (PTR),Y
  23.                     BNE   SEND4BYT
  24.                     RTS                ;EXIT PGM IF HI DUR = 0 (0-FF-2F-0)
  25. ;
  26. INITIAL             LDA   #$13         ;INIT MIDI CARD
  27.                     STA   $C0A8
  28.                     LDA   #$11
  29.                     STA   $C0A8                   
  30.                     LDA   #$18         ;SPEED=24
  31.                     STA   SPEED
  32.                     LDA   $2003        ; OR FROM $2003
  33.                     BEQ   INIT1
  34.                     STA   SPEED
  35. INIT1               LDA   #$04         ;PTR = $2004
  36.                     STA   PTR
  37.                     LDA   #$20
  38.                     STA   PTR+1
  39.                     RTS   
  40. ;
  41. ;                                      ;CONVERT VLQ TO 2 BYTE BINARY
  42. SEND4BYT            AND   #$7F         ;CONVERT HI DUR (STRIP HI BIT)
  43.                     ROR   A            ;AND ROTATE
  44.                     STA   DURH
  45.                     LDA   #$00         ;GET LO BIT INTO HI BIT
  46.                     ROR   A   
  47.                     INY   
  48.                     ORA   (PTR),Y      ;OR WITH LO DUR
  49.                     STA   DURL
  50.                     INY   
  51.                     LDA   (PTR),Y
  52.                     STA   NOTE         ;GET NOTE AND VEL
  53.                     INY   
  54.                     LDA   (PTR),Y
  55.                     STA   VEL
  56.                     JSR   PROCESS      ;PROCESS THE 4 BYTES
  57.                     JSR   INCPTR       ;GET NEXT CELL
  58.                     CLV   
  59.                     BVC   SENDLOOP     ;LOOP BACK
  60. ;=================================================
  61. INCPTR              LDA   PTR          ;ADD 4 TO POINTER (EACH CELL=4 BYTES)
  62.                     CLC   
  63.                     ADC   #$04
  64.                     STA   PTR
  65.                     LDA   PTR+1
  66.                     ADC   #$00
  67.                     STA   PTR+1
  68.                     RTS   
  69. ;=================================================
  70. PROCESS             LDA   DURH
  71.                     BNE   PROCDUR
  72.                     LDA   DURL
  73.                     BNE   PROCDUR
  74.                     JSR   PDL1
  75.                     JSR   NOTEOUT
  76.                     RTS
  77. ;
  78. PROCDUR             JSR   PROCCMD
  79.                     JSR   NOTEOUT
  80.                     RTS
  81. ;=================================================
  82. NOTEOUT             LDA   #$90
  83.                     JSR   MIDIOUT
  84.                     LDA   NOTE
  85.                     JSR   MIDIOUT
  86.                     LDA   VEL
  87.                     JSR   MIDIOUT
  88.                     RTS   
  89. ;
  90. MIDIOUT             STA   $C0A9
  91. ;
  92. MIDIOUT1            LDA   $C0A8
  93.                     AND   #$02
  94.                     BEQ   MIDIOUT1
  95.                     RTS   
  96. ;=================================================
  97. PROCCMD             LDA   DURH         ;WE ARE PLAYING SONG, SO PROCESS DURS
  98.                     STA   DLYCTR+1
  99.                     LDA   DURL
  100.                     STA   DLYCTR
  101. ;
  102. DELAY1              LDX   DLYCTR       ;WAIT FOR DELAY TO FINISH
  103.                     BEQ   DELAY2
  104.                     DEC   DLYCTR
  105.                     LDA   SPEED
  106.                     JSR   $FCA8
  107.                     CLV   
  108.                     BVC   DELAY1
  109. ;
  110. DELAY2              LDX   DLYCTR+1
  111.                     BEQ   CHKKEY
  112.                     DEC   DLYCTR+1
  113.                     LDA   SPEED
  114.                     JSR   $FCA8
  115.                     DEC   DLYCTR       ;EX: FROM 200->1FF
  116.                     CLV   
  117.                     BVC   DELAY1
  118. ;
  119. ; GET PADDLE 1 READING AND SET VELOCITY
  120. ;
  121. CHKKEY              LDA   $C000
  122.                     BMI   GOTAKEY
  123. PDL1                LDA   VEL
  124.                     BEQ   DONTPDL      ;IF VEL=0 DON'T UPDATE
  125.                     LDX   #$01         ; GET PADDLE 1
  126.                     JSR   $FB1E
  127.                     TYA
  128.                     EOR   #$FF
  129.                     LSR   A
  130.                     BNE   STORIT
  131.                     ORA   #$01         ; IF 0 MAKE IT 1
  132. STORIT              STA   VEL          ; INTO VEL
  133.                     LDY   #$03         ; AND UPDATE FILE
  134.                     STA   (PTR),Y
  135.                     JSR   $FDDA        ; PRINT IT & GO BACK 2
  136.                     LDA   #$88
  137.                     JSR   $FDED
  138.                     LDA   #$88
  139.                     JSR   $FDED
  140. DONTPDL             RTS   
  141. ;
  142. GOTAKEY             LDA   $C010
  143.                     AND   #$7F
  144.                     CMP   #$08
  145.                     BNE   RTARR
  146.                     DEC   $FF
  147.                     RTS
  148. ;
  149. RTARR               CMP   #$15
  150.                     BNE   OUT
  151.                     INC   $FF
  152.                     RTS
  153. ;
  154. OUT                 PLA                ; POP OUTTA HERE
  155.                     PLA
  156.                     PLA
  157.                     PLA
  158.                     RTS
  159.