home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
OBJSRC
/
MOCKBRD.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
3KB
|
143 lines
; ********************************************
; * MOCKBRD.SRC - MOCKINGBOARD INTERFACE
; * (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
MOCKBRD EQU 10 ;MOCKINGBOARD INTERFACE
;
;
;------------OBJECT HEADER
ORG $6000
;
LDA #$00 ;CALL OBJECT SETUP ROUTINE
STA $FA
JSR $000A
DFB MOCKBRD ;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:
;
MSLOT EQU $06 ;WILL POINT TO MKBD SLOT ($C400)
SLOTNUM DFB $04 ;DEFAULT TO SLOT 4
;
SPEAKER DFB $00 ;00=LEFT, 80=RIGHT
;
;==========================================
; METHODS:
;
; 'I' - INITIALIZE MOCKINGBOARD
; 'P' <REG> <DATA> - POKE REGISTER WITH DATA
; 'L' <SLOT#> - CHANGE SLOT OF MOCKINGBOARD
; 'S' <SPKR#> - CHANGE SPEAKER (0=LEFT,1=RIGHT)
;
;==========================================
CODE LDY #0
LDA (MSG),Y
CMP #'L'
BNE CODES
INY
LDA (MSG),Y
AND #$07
LDY #SLOTNUM-BASE
STA (MYADRS),Y
RTS
;
CODES CMP #'S'
BNE CODEI
INY
LDA (MSG),Y
BEQ STORSPKR
LDA #$80
STORSPKR LDY #SPEAKER-BASE
STA (MYADRS),Y
RTS
;
CODEI CMP #'I'
BNE CODEP
LDY #SLOTNUM-BASE
LDA (MYADRS),Y
ORA #$C0
STA MSLOT+1
LDA #$0
STA MSLOT
;
LDA #$FF
LDY #$03
STA (MSLOT),Y
LDY #$83
STA (MSLOT),Y
LDA #$07
LDY #$02
STA (MSLOT),Y
LDY #$82
STA (MSLOT),Y
;
LDA #$00
LDY #$00
STA (MSLOT),Y
LDY #$80
STA (MSLOT),Y
LDA #$04
LDY #$00
STA (MSLOT),Y
LDY #$80
STA (MSLOT),Y
RTS
;
CODEP CMP #'P'
BNE CODEEX
LDY #SLOTNUM-BASE
LDA (MYADRS),Y
ORA #$C0
STA MSLOT+1
LDA #$0
STA MSLOT
;
LDY #2
LDA (MSG),Y
PHA
LDY #1
LDA (MSG),Y
AND #$0F
PHA
;
LDY #SPEAKER-BASE
LDA (MYADRS),Y
TAY
INY
PLA
STA (MSLOT),Y
DEY
LDA #$07
STA (MSLOT),Y
LDA #$04
STA (MSLOT),Y
INY
PLA
STA (MSLOT),Y
DEY
LDA #$06
STA (MSLOT),Y
LDA #$04
STA (MSLOT),Y
RTS
;
CODEEX LDY #RETCODE-BASE
LDA #12
STA (MYADRS),Y
SEC
RTS