home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / hard.hdv / HARD / PROJECT / SOURCE / EDIT.SRC1 < prev    next >
Encoding:
Text File  |  1993-03-17  |  7.6 KB  |  216 lines  |  [04] ASCII Text (0x0000)

  1. ;
  2. ; EDIT.SRC1
  3. ;
  4. ;================================================= *KEY*
  5. CTRLK               JSR   BACKPTR
  6.                     LDY   #$00
  7.                     LDA   (PTR),Y      ;LOOK FOR FIRST NON $80 00
  8.                     CMP   #$80
  9.                     BNE   NOT0
  10.                     INY   
  11.                     LDA   (PTR),Y
  12.                     BNE   NOT0
  13.                     BEQ   CTRLK
  14. ;
  15. NOT0                JSR   BACKPTR      ;GO BACK ONE CELL AND LOOK AGAIN
  16.                     LDY   #$00         ;FOR FIRST NON $80 00
  17.                     LDA   (PTR),Y
  18.                     CMP   #$80
  19.                     BNE   UPDONE
  20.                     INY   
  21.                     LDA   (PTR),Y
  22.                     BNE   UPDONE
  23.                     BEQ   NOT0
  24. ;
  25. UPDONE              JSR   CLEANUP      ;SPACE OUT PRINT LINE
  26.                     JMP   PLAYNOW
  27. ;================================================= *KEY*
  28. STAR                LDY   #$00         ;SET CURRENT DUR = $80 00
  29.                     LDA   #$80
  30.                     STA   (PTR),Y
  31.                     INY   
  32.                     LDA   #$00
  33.                     STA   (PTR),Y
  34.                     RTS   
  35. ;================================================== *KEY*
  36. DEL                 JSR   STAR         ;SET CURRENT CELL = $80 00 00 00
  37.                     INY   
  38.                     STA   (PTR),Y
  39.                     INY   
  40.                     STA   (PTR),Y
  41.                     RTS   
  42. ;================================================== *KEY*
  43. CTRLD               JSR   STAR         ;DELETE CURRENT CELL
  44. ;
  45. CTLDLOOP            JSR   BACKPTR      ;AND GO BACK UNTIL VEL = 0
  46.                     LDY   #$02
  47.                     LDA   (PTR),Y
  48.                     BEQ   CTRLDRTS
  49.                     INY   
  50.                     LDA   (PTR),Y
  51.                     BEQ   CTRLDRTS
  52.                     JSR   DEL          ;DELETE CELL IF VEL NOT ZERO
  53.                     CLV   
  54.                     BVC   CTLDLOOP
  55. ;
  56. CTRLDRTS            RTS   
  57. ;==================================================
  58. DISPNOTE            LDA   PTR+1        ;PRINT ADDRESS, SPACE
  59.                     JSR   $FDDA
  60.                     LDA   PTR
  61.                     JSR   $FDDA
  62.                     LDA   #$A0
  63.                     JSR   $FDED
  64.                     LDY   #$00         ;AND CONTENTS OF CELL
  65.                     LDA   (PTR),Y
  66.                     JSR   $FDDA
  67.                     INY   
  68.                     LDA   (PTR),Y
  69.                     JSR   $FDDA
  70.                     LDA   #$A0         ;SPACE
  71.                     JSR   $FDED
  72.                     INY   
  73.                     LDA   (PTR),Y      ;NOTE
  74.                     PHA   
  75.                     JSR   $FDDA
  76.                     LDA   #$A0         ;SPACE
  77.                     JSR   $FDED
  78.                     INY   
  79.                     LDA   (PTR),Y      ;VEL
  80.                     JSR   $FDDA
  81.                     LDA   #$A0         ;SPACE
  82.                     JSR   $FDED
  83.                     LDY   #$03
  84.                     LDA   (PTR),Y
  85.                     BNE   NORMNOTE     ;USE INVERSE FOR NOTE OFFS
  86.                     LDA   #$0F
  87.                     JSR   $FDED
  88. ;
  89. NORMNOTE            PLA                ;LOOK UP CHAR STRING FOR NOTE
  90.                     TAY   
  91.                     LDA   DISPMODE     ;EITHER UCS OR LCF
  92.                     BEQ   GETUCS
  93.                     LDA   LCF,Y
  94.                     JSR   $FDED
  95.                     CLV
  96.                     BVC   GOTNOTE
  97. GETUCS              LDA   UCS,Y
  98.                     JSR   $FDED
  99. ;
  100. GOTNOTE             LDA   #$0E         ;CTRL-N FOR NORMAL MODE
  101.                     JSR   $FDED
  102.                     LDA   #$8D         ;CR
  103.                     JSR   $FDED
  104.                     RTS   
  105. ;================================================== *KEY*
  106. CTRLH               JSR   BACKPTR
  107.                     JSR   DISPNOTE
  108.                     JMP   KEYMODE
  109. ;================================================== *KEY*
  110. CTRLU               JSR   INCPTR
  111.                     JSR   DISPNOTE
  112.                     JMP   KEYMODE
  113. ;================================================== *KEY*
  114. COMMA               LDY   #$00         ;MAKE CURRENT DUR= $80 78
  115.                     LDA   #$80
  116.                     STA   (PTR),Y
  117.                     INY   
  118.                     LDA   #$78
  119.                     STA   (PTR),Y
  120.                     JSR   BACKPTR      ;GO BACK 1 CELL
  121.                     RTS   
  122. ;================================================== *KEY*
  123. SLASH               JSR   SLASH0
  124.                     JMP   KEYMODE
  125. SLASH0              JSR   BACKPTR
  126.                     LDY   #$03
  127.                     LDA   (PTR),Y
  128.                     BEQ   SLASH1       
  129.                     JSR   DISPNOTE     ;DISPLAY NOTES UNTIL VEL=0
  130.                     CLV   
  131.                     BVC   SLASH0
  132. SLASH1              JMP   INCPTR       ;POINT TO 1ST NOTE OF CHORD
  133. ;================================================== *KEY*
  134. BKSLASH             JSR   SLASH0        ;INSERT DUR BEFORE CURRENT CHORD
  135.                     JSR   COMMA
  136.                     JSR   INCPTR
  137.                     JMP   PLAYNOW
  138.                     RTS   
  139. ;==================================================
  140. ;TABLE OF DURATIONS
  141. ;   KEYSTROKE   REGULAR   DOTTED   TRIPLET   QUINT
  142. ;       0         000F     000F     000A      000C
  143. ;       3         001E     002D     0014      0018
  144. ;
  145. DURTABLE            DFB  $00,$0F,$00,$0F,$00,$0A,$00,$0C
  146.                     DFB  $00,$1E,$00,$2D,$00,$14,$00,$18
  147.                     DFB  $00,$3C,$00,$5A,$00,$28,$00,$30
  148.                     DFB  $00,$78,$00,$B4,$00,$50,$00,$60
  149.                     DFB  $00,$F0,$01,$68,$00,$A0,$00,$C0   
  150.                     DFB  $01,$E0,$02,$D0,$01,$40,$01,$80
  151.                     DFB  $03,$C0,$05,$A0,$02,$80,$03,$00
  152.                     DFB  $07,$80,$0B,$40,$05,$00,$06,$00
  153. ;
  154. MODE                DFB   $00
  155. ;
  156. TIE                 DFB   $00
  157. ;
  158. DURACC              DFB   $00,$00
  159. ;
  160. DURTN               DFB   $00,$00
  161. ;
  162. NUMBR               DFB   $00
  163. TIMES8              DFB   $00
  164. ;================================================== *KEY*
  165. SEVEN               INC   NUMBR
  166. ;
  167. ONE                 INC   NUMBR
  168. ;
  169. TWO                 INC   NUMBR
  170. ;
  171. FOUR                INC   NUMBR
  172. ;
  173. EIGHT               INC   NUMBR
  174. ;
  175. SIX                 INC   NUMBR
  176. ;
  177. THREE               INC   NUMBR
  178. ;
  179. ZERO                LDA   #$FF         ;PSYCHOLOGICAL DELAY SO NOTES DONT
  180.                     JSR   $FCA8        ;GO TOO FAST
  181. ;
  182.                     LDA   NUMBR        ;ROW NUMBER OF TABLE (0-7)
  183.                     ASL   A            
  184.                     ASL   A   
  185.                     ASL   A   
  186.                     STA   TIMES8
  187.                     LDA   #$00         ;ZERO NUMBR FOR NEXT TIME
  188.                     STA   NUMBR
  189.                     LDA   MODE         ;MODE=(0-3)
  190.                     ASL   A            ;MULTIPLY BY 2
  191.                     CLC   
  192.                     ADC   TIMES8       ;ADD ROW TO GET OFFSET
  193.                     TAX   
  194.                     LDA   DURTABLE+1,X ;GET THE DURATION VALUE
  195.                     STA   DURTN            ;LO BYTE      
  196.                     LDA   DURTABLE,X
  197.                     STA   DURTN+1          ;HI BYTE
  198.                     LDA   #$00
  199.                     STA   MODE         ;RESET MODE
  200.                     JSR   PROCTIE
  201.                     LDA   TIE          ;KEEP GETTING KEYSTROKES UNTIL
  202.                     BNE   DURDONE      ;TIE IS FINISHED
  203. ;FALL THROUGH TO PLAYNOW EXIT.
  204. PLAYNOW             LDA   #$00         ;CALLED BY CTRLK AND BKSLASH
  205.                     STA   DURL
  206.                     STA   DURH
  207.                     LDY   #$02
  208.                     LDA   (PTR),Y
  209.                     STA   NOTE
  210.                     INY
  211.                     LDA   (PTR),Y
  212.                     STA   VEL
  213.                     JMP   LINEOUT
  214. ;
  215.                     CHN   EDIT.SRC2
  216.