home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-12-13 | 1.8 KB | 83 lines | [04] ASCII Text (0x0000) |
- ( ALTERNATIVE SEQUENCER )
-
- \ MASC DEFINITIONS
-
- ( NOTE - SENDNOTES AND KLR ALREADY HAVE ML CODE LOADED )
- ( THESE WORDS COME AFTER SENDNOTES AND KLR )
-
- HEX
-
-
- ( SPEED MODIFIES FIRST LDA# INSTRUCTION IN SENDNOTES )
- \ : SPEED ( BYTE -- )
- \ ' SENDNOTES 1+ [COMPILE] LITERAL C!
- \ ;
-
-
- ( MIDICHNL MODIFIES THE SECOND LDA# INSTRUCTION IN SENDNOTES )
- \ : MIDICHNL ( CHNL # 0-15 -- )
- \ 0F AND 90 +
- \ ' SENDNOTES 5 + [COMPILE] LITERAL C!
- \ ;
-
-
- 19 CONSTANT SNADRS ( ADDRESS PICKED UP BY SENDNOTES )
- 1B CONSTANT SNSPEED ( SENDNOTES STORES PLAYBACK SPEED IN HERE )
-
-
- ( SEQUENCE STORES 0 AS THE INITIAL LENGTH AND PFA ADRS FOR END-SEQ)
- ( WHEN WORD IS EXECUTED, RETURNS STARTING ADDRESS AND LENGTH )
-
- VARIABLE SEQPFA
-
- : SEQUENCE ( -- ) ( -- STARTADRS, LENGTH )
- CREATE HERE SEQPFA ! 0 , DOES>
- DUP 2+ SWAP @
- ;
-
- : END-SEQ
- ( CALCULATE LENGTH OF SEQUENCE & STORE IT )
- HERE SEQPFA @ - 2 - SEQPFA @ !
- ( STORE TERMINATOR BYTES FOR PLAYBACK PROGRAM )
- 0 C, FF C, 2F C, 0 C,
- ;
-
- ( EXECUTE PASTE BY TYPING PASTE <SEQUENCE NAME> )
- ( DO NOT USE IN COLON DEFINITIONS! )
-
- : PASTE ( <WORD> -- )
- FIND DUP IF EXECUTE HERE SWAP DUP ALLOT CMOVE ELSE DROP THEN
- ;
-
- \ EXAMPLE OF PASTING:
- \ PART1, PART2, PART3 ALREADY DEFINED
- \
- \ SEQUENCE SONG
- \ PASTE PART1
- \ PASTE PART2
- \ PASTE PART3
- \ END-SEQ
-
- : PLAYADRS ( ADRS -- )
- SNADRS !
- SENDNOTES KLR
- SNSPEED C@ ' SENDNOTES 1+ [COMPILE] LITERAL C!
- ( GETS FINAL SPEED AND MODIFIES FIRST LDA# INSTRUCTION IN SENDNOTES )
- ;
-
-
- : PLAYIMM ( <MIDI WORD> -- )
- FIND DUP IF EXECUTE DROP PLAYADRS ELSE DROP THEN
- ;
-
- : PLAYCOMP ( <MIDI WORD> -- )
- FIND DUP IF EXECUTE DROP [COMPILE] LITERAL COMPILE PLAYADRS ELSE DROP THEN
- ;
-
- : PLAY
- STATE @ 0= IF PLAYIMM ELSE PLAYCOMP THEN
- ; IMMEDIATE
-
-
- DEC
-