home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-06-23 | 4.1 KB | 174 lines | [04] ASCII Text (0x0000) |
-
- HEX
-
- 2 OBJECT DELTA \ DELAY FOR DELTA TIME PASSED IN
- BOT LDA,
- 1 PARM STA,
- BOT 1+ LDA,
- 2 PARM STA,
- INX, INX,
- OBJ-CODE
- CLC,
- 1 PARM LDA,
- FDDA JSR,
- 2 PARM LDA,
- FDDA JSR,
- OBJ-END
-
-
- 2 OBJECT PLAY
- BOT 2 + LDA,
- PLAYPTR STA,
- BOT 3 + LDA,
- PLAYPTR 1+ STA,
- INX, INX, INX, INX,
- OBJ-CODE
-
- 0 # LDA,
- USERKEY STA,
- USERSTOP STA,
-
- CLC,
- PLAYPTR LDA, \ GET START ADRS OF SEQUENCE INTO N
- 8 # ADC,
- N STA,
- PLAYPTR 1+ LDA,
- 0 # ADC,
- N 1+ STA,
-
- BEGIN,
- C000 LDA, \ CHECK IF KEY PRESSED
- 0< IF,
- C010 LDA,
- 7F # AND,
- USERKEY STA, \ SAVE USER'S KEY
- 1B # CMP, \ USER WANTS TO ESCAPE
- 0= IF,
- 1 # LDA,
- USERSTOP STA,
- OBJ-EXIT
- THEN,
- 20 # CMP, \ SPACEBAR = EXIT NOW BUT DONT STOP
- 0= IF,
- OBJ-EXIT
- THEN,
- THEN,
-
- 0 # LDY, \ GET 1ST BYTE OF DELTA TIME
- N )Y LDA,
- 0< IF, \ IF > $80
- 7F AND, \ MASK HI BIT, SHIFT RIGHT
- .A LSR,
- 2 'PARM DELTA STA, \ SAVE DELTA TIME HI BYTE
- 0 # LDA, \ GET LO BIT OF THAT BYTE INTO HI BIT OF A
- .A ROR,
- INY, \ OR IT WITH THE SECOND DELTA TIME BYTE
- N )Y ORA,
- 1 'PARM DELTA STA, \ SAVE AS THE LO BYTE OF DELTA
-
- CLC, \ INCREMENT N BY 2
- N LDA,
- 2 # ADC,
- N STA,
- N 1+ LDA,
- 0 # ADC,
- N 1+ STA,
-
- CLC, \ SIGNAL THAT WE WANT TO CALL DELTA
- ELSE,
- 0= IF,
- CLC, \ INCREMENT N BY 1
- N LDA,
- 1 # ADC,
- N STA,
- N 1+ LDA,
- 0 # ADC,
- N 1+ STA,
- SEC, \ SIGNAL THAT WE DONT WANT TO CALL DELTA
- ELSE,
- 1 'PARM DELTA STA, \ STORE 1 BYTE DELTA TIME
- 0 # LDA,
- 2 'PARM DELTA STA,
-
- CLC, \ INCREMENT N BY 1
- N LDA,
- 1 # ADC,
- N STA,
- N 1+ LDA,
- 0 # ADC,
- N 1+ STA,
- CLC,
- THEN,
- THEN,
-
- CS NOT IF,
- OBJ-CALL DELTA \ ONLY IF NON 0 DELTA TIME ABOVE
- THEN,
-
- 0 # LDY, \ GET MIDI INSTRUCTION
- N )Y LDA,
-
- FF # CMP, \ CHECK FOR END-OF-TRACK
- 0= IF,
- SEC,
- ELSE,
-
- N )Y LDA, \ GET THE SAME BYTE AGAIN
- 0< IF, \ IF > $80
- LASTSTATUS STA, \ SAVE IT AS THE CURR STS BYTE
-
- 1 'PARM MIDIOUT STA,
- OBJ-CALL MIDIOUT
-
- CLC, \ INCREMENT N BY 1
- N LDA,
- 1 # ADC,
- N STA,
- N 1+ LDA,
- 0 # ADC,
- N 1+ STA,
-
- N )Y LDA, \ GET DATA BYTE
- THEN,
-
- 1 'PARM MIDIOUT STA,
- OBJ-CALL MIDIOUT
-
-
- \ DETERMINE IF 1 OR 2 BYTE INSTRUCTION
-
- 2 # LDA,
- LENTEST STA,
- LASTSTATUS LDA, \ CHECK STATUS BYTE
- C0 # CMP,
- CS IF,
- E0 # CMP,
- CC IF, \ 1 BYTE
- 1 # LDA,
- LENTEST STA,
- THEN,
- THEN,
-
- LENTEST LDA,
- 2 # CMP,
- 0= IF,
- 1 # LDY,
- N )Y LDA,
- 1 'PARM MIDIOUT STA,
- OBJ-CALL MIDIOUT
- CLC, \ INCREMENT N BY 2
- N LDA,
- 2 # ADC,
- N STA,
- N 1+ LDA,
- 0 # ADC,
- N 1+ STA,
- THEN,
- CLC, \ SIGNAL THAT MORE WORK TO DO
-
- THEN,
- CS UNTIL,
-
- OBJ-END
-
-