home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-25 | 6.1 KB | 313 lines | [04] ASCII Text (0x0000) |
- ; ********************************************
- ; * DISPLINE.SRC - DISPLAY OF STATUS LINE
- ; * (C) 1993, ERIC RANGELL
- ; ********************************************
- ;
- ;------------GLOBAL EQUATES
- RECEIVER EQU $FA
- MSG EQU $FB
- MYOBJ EQU $FD
- MYADRS EQU $FE ;WILL POINT TO 'BASE' WHEN OBJECT INVOKED
- ;
- USRVECT EQU $0A ;APPLESOFT USR VECTOR - USED TO CALL OBJECTS
- ;
- ;------------OBJECTS REFERENCED
- DISPLINE EQU 12
- HEXASC EQU 13 ;HEX-ASC
- INTRFACE EQU 16 ;MIDI INTERFACE CONTROLLER
- NOTEMGR EQU 25 ;NOTE ON/OFF MANAGER
- CTRLMGR EQU 27 ;CTRL CHG MANAGER
- PROGMGR EQU 28 ;PGM CHG MANAGER
- SYSXMGR EQU 31 ;SYSX MGR
- ;
- ;------------OBJECT HEADER
- ORG $6000
- ;
- LDA #$00 ;CALL OBJECT SETUP ROUTINE
- STA $FA
- JSR $000A
- DFB DISPLINE ;OBJECT NUMBER
- DFB 0,0,0,0,0,0,0 ;SAVE AREA
- BASE CLV
- BVC CODE
- RETCODE DFB $00 ;RETURN CODE
- ;
- ;==========================================
- ; INTERNAL DATA MAINTAINED BY OBJECT:
- ;
- LINE ASC 'T'
- DTIMEH ASC '00'
- DTIMEL ASC '00'
- DJ ASC ' '
- DK ASC ' '
- DL ASC ' '
- ASC ' '
- ASC 'M'
- DM ASC ' '
- ASC 'R'
- DR ASC ' '
- ASC 'E'
- DE ASC ' '
- DSOFT ASC '-'
- DSOST ASC '-'
- DDAMP ASC '- '
- ASC 'C'
- DC ASC ' '
- ASC 'P'
- DP1 ASC '00'
- DP2 ASC '00 '
- ASC 'B'
- DB ASC ' '
- ASC 'V'
- DV ASC '00 '
- DTRANS ASC '00'
- ;
- HEXMSG ASC 'B'
- HEXBYTE DFB $00
- ASCH DFB $00
- ASCL DFB $00
- ;
- GETINTRF ASC 'R'
- DFB $00
- TIMERH DFB $00
- TIMERL DFB $00
- DFB $00
- ;
- GETNOTE ASC 'R'
- TRANS DFB $00
- KARA DFB $00
- DFB $00,$00
- ;
- GETPROG ASC 'R'
- PROGCHNL DFB $00
- PROG1 DFB $00
- PROG2 DFB $00
- ;
- GETCTRL ASC 'R'
- CTRLCHNL DFB $00
- VOL DFB $00
- LOCAL DFB $00
- SOFT DFB $00
- SOST DFB $00
- DAMP DFB $00
- ;
- GETSYSX ASC 'R'
- SYSXCHNL DFB $00
- BRILL DFB $00
- MULTI DFB $00
- REV DFB $00
- EFF DFB $00
- ;
- ;==========================================
- ; METHODS:
- ;
- ; 'C' <CHNL> = CONSTRUCT DISPLAY LINE FOR CHNL & POKE IT
- ;
- ;==========================================
- CODE LDY #0
- LDA (MSG),Y
- CMP #'C'
- BEQ CODEC
- ;--------
- CODEEX LDY #RETCODE-BASE
- LDA #12
- STA (MYADRS),Y
- SEC
- RTS
- ;
- CODEC LDY #1
- LDA (MSG),Y
- LDY #CTRLCHNL-BASE
- STA (MYADRS),Y
- LDY #PROGCHNL-BASE
- STA (MYADRS),Y
- LDY #SYSXCHNL-BASE
- STA (MYADRS),Y
- ;
- LDA #INTRFACE
- STA RECEIVER
- LDA #GETINTRF-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDA #NOTEMGR
- STA RECEIVER
- LDA #GETNOTE-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDA #PROGMGR
- STA RECEIVER
- LDA #GETPROG-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDA #CTRLMGR
- STA RECEIVER
- LDA #GETCTRL-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDA #SYSXMGR
- STA RECEIVER
- LDA #GETSYSX-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- ;NOW FILL IN THE LINE
- ;
- LDY #TIMERH-BASE
- LDA (MYADRS),Y
- LDY #HEXBYTE-BASE
- STA (MYADRS),Y
- ;
- LDA #HEXASC
- STA RECEIVER
- LDA #HEXMSG-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDY #ASCH-BASE
- LDA (MYADRS),Y
- LDY #DTIMEH-BASE
- STA (MYADRS),Y
- LDY #ASCL-BASE
- LDA (MYADRS),Y
- LDY #DTIMEH-BASE+1
- STA (MYADRS),Y
- ;
- LDY #TIMERL-BASE
- LDA (MYADRS),Y
- LDY #HEXBYTE-BASE
- STA (MYADRS),Y
- ;
- LDA #HEXASC
- STA RECEIVER
- LDA #HEXMSG-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDY #ASCH-BASE
- LDA (MYADRS),Y
- LDY #DTIMEL-BASE
- STA (MYADRS),Y
- LDY #ASCL-BASE
- LDA (MYADRS),Y
- LDY #DTIMEL-BASE+1
- STA (MYADRS),Y
- ;JKL
- LDY #KARA-BASE
- LDA (MYADRS),Y
- BEQ NOKARA
- LDA #'K'
- LDY #DK-BASE
- STA (MYADRS),Y
- NOKARA LDY #LOCAL-BASE
- LDA (MYADRS),Y
- BNE NOLOCAL
- LDA #'L'
- LDY #DL-BASE
- STA (MYADRS),Y
- NOLOCAL LDY #MULTI-BASE
- LDA (MYADRS),Y
- LDY #HEXBYTE-BASE
- STA (MYADRS),Y
- ;
- LDA #HEXASC
- STA RECEIVER
- LDA #HEXMSG-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDY #ASCL-BASE
- LDA (MYADRS),Y
- LDY #DM-BASE
- STA (MYADRS),Y
- ;REV
- LDY #REV-BASE
- LDA (MYADRS),Y
- LDY #HEXBYTE-BASE
- STA (MYADRS),Y
- ;
- LDA #HEXASC
- STA RECEIVER
- LDA #HEXMSG-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDY #ASCL-BASE
- LDA (MYADRS),Y
- LDY #DR-BASE
- STA (MYADRS),Y
- ;EFF
- LDY #EFF-BASE
- LDA (MYADRS),Y
- LDY #HEXBYTE-BASE
- STA (MYADRS),Y
- ;
- LDA #HEXASC
- STA RECEIVER
- LDA #HEXMSG-BASE
- CLC
- ADC MYADRS
- STA MSG
- LDA #00
- ADC MYADRS+1
- STA MSG+1
- JSR USRVECT
- ;
- LDY #ASCL-BASE
- LDA (MYADRS),Y
- LDY #DE-BASE
- STA (MYADRS),Y
- ;PEDALS
- LDY #SOFT-BASE
- LDA (MYADRS),Y
-
- RTS
-