home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-17 | 7.6 KB | 216 lines | [04] ASCII Text (0x0000) |
- ;
- ; EDIT.SRC1
- ;
- ;================================================= *KEY*
- CTRLK JSR BACKPTR
- LDY #$00
- LDA (PTR),Y ;LOOK FOR FIRST NON $80 00
- CMP #$80
- BNE NOT0
- INY
- LDA (PTR),Y
- BNE NOT0
- BEQ CTRLK
- ;
- NOT0 JSR BACKPTR ;GO BACK ONE CELL AND LOOK AGAIN
- LDY #$00 ;FOR FIRST NON $80 00
- LDA (PTR),Y
- CMP #$80
- BNE UPDONE
- INY
- LDA (PTR),Y
- BNE UPDONE
- BEQ NOT0
- ;
- UPDONE JSR CLEANUP ;SPACE OUT PRINT LINE
- JMP PLAYNOW
- ;================================================= *KEY*
- STAR LDY #$00 ;SET CURRENT DUR = $80 00
- LDA #$80
- STA (PTR),Y
- INY
- LDA #$00
- STA (PTR),Y
- RTS
- ;================================================== *KEY*
- DEL JSR STAR ;SET CURRENT CELL = $80 00 00 00
- INY
- STA (PTR),Y
- INY
- STA (PTR),Y
- RTS
- ;================================================== *KEY*
- CTRLD JSR STAR ;DELETE CURRENT CELL
- ;
- CTLDLOOP JSR BACKPTR ;AND GO BACK UNTIL VEL = 0
- LDY #$02
- LDA (PTR),Y
- BEQ CTRLDRTS
- INY
- LDA (PTR),Y
- BEQ CTRLDRTS
- JSR DEL ;DELETE CELL IF VEL NOT ZERO
- CLV
- BVC CTLDLOOP
- ;
- CTRLDRTS RTS
- ;==================================================
- DISPNOTE LDA PTR+1 ;PRINT ADDRESS, SPACE
- JSR $FDDA
- LDA PTR
- JSR $FDDA
- LDA #$A0
- JSR $FDED
- LDY #$00 ;AND CONTENTS OF CELL
- LDA (PTR),Y
- JSR $FDDA
- INY
- LDA (PTR),Y
- JSR $FDDA
- LDA #$A0 ;SPACE
- JSR $FDED
- INY
- LDA (PTR),Y ;NOTE
- PHA
- JSR $FDDA
- LDA #$A0 ;SPACE
- JSR $FDED
- INY
- LDA (PTR),Y ;VEL
- JSR $FDDA
- LDA #$A0 ;SPACE
- JSR $FDED
- LDY #$03
- LDA (PTR),Y
- BNE NORMNOTE ;USE INVERSE FOR NOTE OFFS
- LDA #$0F
- JSR $FDED
- ;
- NORMNOTE PLA ;LOOK UP CHAR STRING FOR NOTE
- TAY
- LDA DISPMODE ;EITHER UCS OR LCF
- BEQ GETUCS
- LDA LCF,Y
- JSR $FDED
- CLV
- BVC GOTNOTE
- GETUCS LDA UCS,Y
- JSR $FDED
- ;
- GOTNOTE LDA #$0E ;CTRL-N FOR NORMAL MODE
- JSR $FDED
- LDA #$8D ;CR
- JSR $FDED
- RTS
- ;================================================== *KEY*
- CTRLH JSR BACKPTR
- JSR DISPNOTE
- JMP KEYMODE
- ;================================================== *KEY*
- CTRLU JSR INCPTR
- JSR DISPNOTE
- JMP KEYMODE
- ;================================================== *KEY*
- COMMA LDY #$00 ;MAKE CURRENT DUR= $80 78
- LDA #$80
- STA (PTR),Y
- INY
- LDA #$78
- STA (PTR),Y
- JSR BACKPTR ;GO BACK 1 CELL
- RTS
- ;================================================== *KEY*
- SLASH JSR SLASH0
- JMP KEYMODE
- SLASH0 JSR BACKPTR
- LDY #$03
- LDA (PTR),Y
- BEQ SLASH1
- JSR DISPNOTE ;DISPLAY NOTES UNTIL VEL=0
- CLV
- BVC SLASH0
- SLASH1 JMP INCPTR ;POINT TO 1ST NOTE OF CHORD
- ;================================================== *KEY*
- BKSLASH JSR SLASH0 ;INSERT DUR BEFORE CURRENT CHORD
- JSR COMMA
- JSR INCPTR
- JMP PLAYNOW
- RTS
- ;==================================================
- ;TABLE OF DURATIONS
- ; KEYSTROKE REGULAR DOTTED TRIPLET QUINT
- ; 0 000F 000F 000A 000C
- ; 3 001E 002D 0014 0018
- ;
- DURTABLE DFB $00,$0F,$00,$0F,$00,$0A,$00,$0C
- DFB $00,$1E,$00,$2D,$00,$14,$00,$18
- DFB $00,$3C,$00,$5A,$00,$28,$00,$30
- DFB $00,$78,$00,$B4,$00,$50,$00,$60
- DFB $00,$F0,$01,$68,$00,$A0,$00,$C0
- DFB $01,$E0,$02,$D0,$01,$40,$01,$80
- DFB $03,$C0,$05,$A0,$02,$80,$03,$00
- DFB $07,$80,$0B,$40,$05,$00,$06,$00
- ;
- MODE DFB $00
- ;
- TIE DFB $00
- ;
- DURACC DFB $00,$00
- ;
- DURTN DFB $00,$00
- ;
- NUMBR DFB $00
- TIMES8 DFB $00
- ;================================================== *KEY*
- SEVEN INC NUMBR
- ;
- ONE INC NUMBR
- ;
- TWO INC NUMBR
- ;
- FOUR INC NUMBR
- ;
- EIGHT INC NUMBR
- ;
- SIX INC NUMBR
- ;
- THREE INC NUMBR
- ;
- ZERO LDA #$FF ;PSYCHOLOGICAL DELAY SO NOTES DONT
- JSR $FCA8 ;GO TOO FAST
- ;
- LDA NUMBR ;ROW NUMBER OF TABLE (0-7)
- ASL A
- ASL A
- ASL A
- STA TIMES8
- LDA #$00 ;ZERO NUMBR FOR NEXT TIME
- STA NUMBR
- LDA MODE ;MODE=(0-3)
- ASL A ;MULTIPLY BY 2
- CLC
- ADC TIMES8 ;ADD ROW TO GET OFFSET
- TAX
- LDA DURTABLE+1,X ;GET THE DURATION VALUE
- STA DURTN ;LO BYTE
- LDA DURTABLE,X
- STA DURTN+1 ;HI BYTE
- LDA #$00
- STA MODE ;RESET MODE
- JSR PROCTIE
- LDA TIE ;KEEP GETTING KEYSTROKES UNTIL
- BNE DURDONE ;TIE IS FINISHED
- ;FALL THROUGH TO PLAYNOW EXIT.
- PLAYNOW LDA #$00 ;CALLED BY CTRLK AND BKSLASH
- STA DURL
- STA DURH
- LDY #$02
- LDA (PTR),Y
- STA NOTE
- INY
- LDA (PTR),Y
- STA VEL
- JMP LINEOUT
- ;
- CHN EDIT.SRC2
-