home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
OBJSRC
/
DISPLINE.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
6KB
|
313 lines
; ********************************************
; * 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