mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-04-09 01:37:17 +00:00
Joystick dual axis read + buzz in constant time
This commit is contained in:
parent
44e307325c
commit
ea5bdccb82
4
src/inc/joybuzz.plh
Normal file
4
src/inc/joybuzz.plh
Normal file
@ -0,0 +1,4 @@
|
||||
import joybuzz
|
||||
const MAX_JOY = 64
|
||||
predef joypos(buzz)#3
|
||||
end
|
53
src/libsrc/apple/joybuzz.pla
Normal file
53
src/libsrc/apple/joybuzz.pla
Normal file
@ -0,0 +1,53 @@
|
||||
asm asmdefs
|
||||
!SOURCE "vmsrc/plvmzp.inc"
|
||||
SPEAKER = $C030
|
||||
GCSTRB = $C070
|
||||
GC0 = $C064
|
||||
GC1 = $C065
|
||||
GCPB1 = $C061
|
||||
GCPB2 = $C062
|
||||
GCMAX = 64 ; MAX VALUE FOR GAME CONTROLLER
|
||||
end
|
||||
//
|
||||
// Read both game controllers in parallel
|
||||
//
|
||||
export asm joypos(buzz)#3
|
||||
DEX
|
||||
DEX
|
||||
LDA #$00
|
||||
STA ESTKH,X
|
||||
STA ESTKH+1,X
|
||||
STA ESTKH+2,X
|
||||
LDA #GCMAX
|
||||
STA TMPL
|
||||
STA ESTKL,X
|
||||
STA ESTKL+1,X
|
||||
LDY ESTKL+2,X ; BUZZ TONE
|
||||
BIT GCSTRB
|
||||
JOYZZLP DEY
|
||||
BEQ +
|
||||
NOP ; TIMING
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
BNE ++
|
||||
+ BIT SPEAKER
|
||||
LDY ESTKL+2,X ; BUZZ TONE
|
||||
++ LDA #$FF
|
||||
ASL GC0
|
||||
ADC ESTKL,X
|
||||
ASL GC1
|
||||
STA ESTKL,X
|
||||
LDA #$FF
|
||||
ADC ESTKL+1,X
|
||||
STA ESTKL+1,X
|
||||
DEC TMPL
|
||||
BNE JOYZZLP
|
||||
ASL GCPB1 ; READ GC BUTTONS
|
||||
LDA GCPB2
|
||||
ROR
|
||||
AND #$C0
|
||||
STA ESTKL+2,X
|
||||
RTS
|
||||
end
|
||||
done
|
@ -39,6 +39,7 @@ HTTPD = rel/HTTPD\#FE1000
|
||||
DGR = rel/apple/DGR\#FE1000
|
||||
GRAFIX = rel/apple/GRAFIX\#FE1000
|
||||
GFXDEMO = rel/apple/GFXDEMO\#FE1000
|
||||
JOYBUZZ = rel/apple/JOYBUZZ\#FE1000
|
||||
PORTIO = rel/apple/PORTIO\#FE1000
|
||||
ROGUE = rel/ROGUE\#FE1000
|
||||
ROGUEMAP = rel/ROGUEMAP\#FE1000
|
||||
@ -74,7 +75,7 @@ TXTTYPE = .TXT
|
||||
#SYSTYPE = \#FF2000
|
||||
#TXTTYPE = \#040000
|
||||
|
||||
apple: $(PLVMZP_APL) $(PLASM) $(PLVM) $(PLVM01) $(PLVM02) $(PLVM802) $(PLVM03) $(CMD) $(PLASMAPLASM) $(CODEOPT) $(ARGS) $(MEMMGR) $(MEMTEST) $(FIBER) $(FIBERTEST) $(LONGJMP) $(ED) $(MON) $(SOS) $(ROD) $(SIEVE) $(UTHERNET2) $(UTHERNET) $(ETHERIP) $(INET) $(DHCP) $(HTTPD) $(ROGUE) $(ROGUEMAP) $(ROGUECOMBAT) $(GRAFIX) $(GFXDEMO) $(DGR) $(DGRTEST) $(FILEIO_APL) $(CONIO_APL) $(PORTIO) $(SPIPORT) $(SDFAT) $(FATCAT) $(FATGET) $(FATPUT) $(FATWDSK) $(FATRDSK) $(SANE) $(FPSTR) $(FPU) $(SANITY) $(RPNCALC) $(SNDSEQ) $(PLAYSEQ)
|
||||
apple: $(PLVMZP_APL) $(PLASM) $(PLVM) $(PLVM01) $(PLVM02) $(PLVM802) $(PLVM03) $(CMD) $(PLASMAPLASM) $(CODEOPT) $(ARGS) $(MEMMGR) $(MEMTEST) $(FIBER) $(FIBERTEST) $(LONGJMP) $(ED) $(MON) $(SOS) $(ROD) $(SIEVE) $(UTHERNET2) $(UTHERNET) $(ETHERIP) $(INET) $(DHCP) $(HTTPD) $(ROGUE) $(ROGUEMAP) $(ROGUECOMBAT) $(GRAFIX) $(GFXDEMO) $(DGR) $(DGRTEST) $(FILEIO_APL) $(CONIO_APL) $(JOYBUZZ) $(PORTIO) $(SPIPORT) $(SDFAT) $(FATCAT) $(FATGET) $(FATPUT) $(FATWDSK) $(FATRDSK) $(SANE) $(FPSTR) $(FPU) $(SANITY) $(RPNCALC) $(SNDSEQ) $(PLAYSEQ)
|
||||
-rm vmsrc/plvmzp.inc
|
||||
|
||||
c64: $(PLVMZP_C64) $(PLASM) $(PLVM) $(PLVMC64)
|
||||
@ -327,6 +328,10 @@ $(SPIPORT): libsrc/apple/spiport.pla $(PLVM02) $(PLASM)
|
||||
./$(PLASM) -AMOW < libsrc/apple/spiport.pla > libsrc/apple/spiport.a
|
||||
acme --setpc 4094 -o $(SPIPORT) libsrc/apple/spiport.a
|
||||
|
||||
$(JOYBUZZ): libsrc/apple/joybuzz.pla $(PLVM02) $(PLASM)
|
||||
./$(PLASM) -AMOW < libsrc/apple/joybuzz.pla > libsrc/apple/joybuzz.a
|
||||
acme --setpc 4094 -o $(JOYBUZZ) libsrc/apple/joybuzz.a
|
||||
|
||||
$(PORTIO): libsrc/apple/portio.pla $(PLVM02) $(PLASM)
|
||||
./$(PLASM) -AMOW < libsrc/apple/portio.pla > libsrc/apple/portio.a
|
||||
acme --setpc 4094 -o $(PORTIO) libsrc/apple/portio.a
|
||||
|
@ -20,6 +20,7 @@ cp rel/INET#FE1000 prodos/sys/INET.REL
|
||||
cp rel/LONGJMP#FE1000 prodos/sys/LONGJMP.REL
|
||||
cp rel/MEMMGR#FE1000 prodos/sys/MEMMGR.REL
|
||||
cp rel/apple/PORTIO#FE1000 prodos/sys/PORTIO.REL
|
||||
cp rel/apple/JOYBUZZ#FE1000 prodos/sys/JOYBUZZ.REL
|
||||
cp rel/SANE#FE1000 prodos/sys/SANE.REL
|
||||
cp rel/apple/SDFAT#FE1000 prodos/sys/SDFAT.REL
|
||||
cp rel/apple/SPIPORT#FE1000 prodos/sys/SPIPORT.REL
|
||||
@ -100,6 +101,7 @@ cp inc/inet.plh prodos/bld/inc/INET.PLH.TXT
|
||||
cp inc/longjmp.plh prodos/bld/inc/LONGJMP.PLH.TXT
|
||||
cp inc/memmgr.plh prodos/bld/inc/MEMMGR.PLH.TXT
|
||||
cp inc/sane.plh prodos/bld/inc/SANE.PLH.TXT
|
||||
cp inc/joybuzz.plh prodos/bld/inc/JOYBUZZ.PLH.TXT
|
||||
cp inc/portio.plh prodos/bld/inc/PORTIO.PLH.TXT
|
||||
cp inc/sdfat.plh prodos/bld/inc/SDFAT.PLH.TXT
|
||||
cp inc/sndseq.plh prodos/bld/inc/SNDSEQ.PLH.TXT
|
||||
|
Loading…
x
Reference in New Issue
Block a user