mirror of
https://github.com/antoinevignau/source.git
synced 2025-02-12 15:30:45 +00:00
v+1
This commit is contained in:
parent
d9b04facb5
commit
0bcc6da5fa
Binary file not shown.
@ -4851,6 +4851,7 @@ drawSPRITEXY
|
|||||||
jsr setHGRPOINTERS
|
jsr setHGRPOINTERS
|
||||||
JSR getXBYBI
|
JSR getXBYBI
|
||||||
STA theXSCREEN
|
STA theXSCREEN
|
||||||
|
|
||||||
* STX sprTABLE
|
* STX sprTABLE
|
||||||
* JSR getSPRITEDATA
|
* JSR getSPRITEDATA
|
||||||
* LDX #sprHEIGHT ; nb lignes
|
* LDX #sprHEIGHT ; nb lignes
|
||||||
@ -4861,119 +4862,112 @@ drawSPRITEXY
|
|||||||
* BCS L8376
|
* BCS L8376
|
||||||
|
|
||||||
rep #$30
|
rep #$30
|
||||||
lda #0
|
|
||||||
tax
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda #sprHEIGHT
|
|
||||||
sta nbLINES2
|
|
||||||
|
|
||||||
lda theXSCREEN ; Y for column
|
lda theXSCREEN ; Y for column
|
||||||
and #$ff
|
and #$ff
|
||||||
tay
|
clc
|
||||||
|
adc ptrHGR1
|
||||||
|
sta ptrHGR1
|
||||||
|
sta ptrHGR2
|
||||||
|
|
||||||
lda theA ; X for sprite
|
lda theA ; X for sprite
|
||||||
and #$ff
|
and #$ff
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
lda tblSPRITES,x
|
lda tblSPRITES,x
|
||||||
|
sta ptrSPR
|
||||||
|
|
||||||
|
lda #sprHEIGHT
|
||||||
|
sta nbLINES2
|
||||||
|
|
||||||
|
outerDSXY lda #0
|
||||||
tax
|
tax
|
||||||
|
|
||||||
]lp lda |$0000,x ; sprite
|
|
||||||
* eor #-1
|
|
||||||
and [ptrHGR1],y ; fond
|
|
||||||
ora [ptrHGR2],y ; fond
|
|
||||||
sta [ptrHGR1],y ; fond
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
|
|
||||||
lda |$0000,x ; sprite
|
|
||||||
* eor #-1
|
|
||||||
and [ptrHGR1],y ; fond
|
|
||||||
ora [ptrHGR2],y ; fond
|
|
||||||
sta [ptrHGR1],y ; fond
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
|
|
||||||
sep #$20
|
|
||||||
lda |$0000,x ; sprite
|
|
||||||
* eor #-1
|
|
||||||
and [ptrHGR1],y ; fond
|
|
||||||
ora [ptrHGR2],y ; fond
|
|
||||||
sta [ptrHGR1],y ; fond
|
|
||||||
rep #$20
|
|
||||||
|
|
||||||
iny
|
|
||||||
tya
|
|
||||||
clc
|
|
||||||
adc #160-5 ; 5 = 10 pixels
|
|
||||||
tay
|
tay
|
||||||
inx
|
|
||||||
|
|
||||||
|
sep #$30
|
||||||
|
|
||||||
|
]lp lda [ptrHGR2],y ; 0..1
|
||||||
|
tax
|
||||||
|
and tblMASK,x
|
||||||
|
ora (ptrSPR),y
|
||||||
|
sta [ptrHGR1],y
|
||||||
|
iny
|
||||||
|
cpy #5
|
||||||
|
bcc ]lp
|
||||||
|
|
||||||
|
rep #$30
|
||||||
|
|
||||||
|
lda ptrHGR2
|
||||||
|
clc
|
||||||
|
adc #160
|
||||||
|
sta ptrHGR2
|
||||||
|
sta ptrHGR1
|
||||||
|
|
||||||
|
lda ptrSPR
|
||||||
|
clc
|
||||||
|
adc #5
|
||||||
|
sta ptrSPR
|
||||||
|
|
||||||
dec nbLINES2
|
dec nbLINES2
|
||||||
bne ]lp
|
bne outerDSXY
|
||||||
sep #$30
|
sep #$30
|
||||||
rts
|
rts
|
||||||
|
|
||||||
mx %11
|
mx %11
|
||||||
|
|
||||||
*--- sprite de 2 de large
|
*--- sprite de 2 de large
|
||||||
|
*
|
||||||
L8350 LDY theYSCREEN
|
*L8350 LDY theYSCREEN
|
||||||
JSR setHGRPOINTERS
|
* JSR setHGRPOINTERS
|
||||||
LDY theXSCREEN
|
* LDY theXSCREEN
|
||||||
LDA sprDATA,X
|
* LDA sprDATA,X
|
||||||
EOR #$7F
|
* EOR #$7F
|
||||||
AND [ptrHGR1],Y
|
* AND [ptrHGR1],Y
|
||||||
ORA [ptrHGR2],Y
|
* ORA [ptrHGR2],Y
|
||||||
STA [ptrHGR1],Y
|
* STA [ptrHGR1],Y
|
||||||
INX
|
* INX
|
||||||
INY
|
* INY
|
||||||
LDA sprDATA,X
|
* LDA sprDATA,X
|
||||||
EOR #$7F
|
* EOR #$7F
|
||||||
AND [ptrHGR1],Y
|
* AND [ptrHGR1],Y
|
||||||
ORA [ptrHGR2],Y
|
* ORA [ptrHGR2],Y
|
||||||
STA [ptrHGR1],Y
|
* STA [ptrHGR1],Y
|
||||||
INX
|
* INX
|
||||||
INX
|
* INX
|
||||||
INC theYSCREEN
|
* INC theYSCREEN
|
||||||
DEC nbLINES
|
* DEC nbLINES
|
||||||
BNE L8350
|
* BNE L8350
|
||||||
RTS
|
* RTS
|
||||||
|
*
|
||||||
*--- sprite de 3 de large
|
*--- sprite de 3 de large
|
||||||
|
*
|
||||||
L8376 LDY theYSCREEN
|
*L8376 LDY theYSCREEN
|
||||||
JSR setHGRPOINTERS
|
* JSR setHGRPOINTERS
|
||||||
LDY theXSCREEN
|
* LDY theXSCREEN
|
||||||
LDA sprDATA,X
|
* LDA sprDATA,X
|
||||||
EOR #$7F
|
* EOR #$7F
|
||||||
AND [ptrHGR1],Y
|
* AND [ptrHGR1],Y
|
||||||
ORA [ptrHGR2],Y
|
* ORA [ptrHGR2],Y
|
||||||
STA [ptrHGR1],Y
|
* STA [ptrHGR1],Y
|
||||||
INX
|
* INX
|
||||||
INY
|
* INY
|
||||||
LDA sprDATA,X
|
* LDA sprDATA,X
|
||||||
EOR #$7F
|
* EOR #$7F
|
||||||
AND [ptrHGR1],Y
|
* AND [ptrHGR1],Y
|
||||||
ORA [ptrHGR2],Y
|
* ORA [ptrHGR2],Y
|
||||||
STA [ptrHGR1],Y
|
* STA [ptrHGR1],Y
|
||||||
INX
|
* INX
|
||||||
INY
|
* INY
|
||||||
LDA sprDATA,X
|
* LDA sprDATA,X
|
||||||
EOR #$7F
|
* EOR #$7F
|
||||||
AND [ptrHGR1],Y
|
* AND [ptrHGR1],Y
|
||||||
ORA [ptrHGR2],Y
|
* ORA [ptrHGR2],Y
|
||||||
STA [ptrHGR1],Y
|
* STA [ptrHGR1],Y
|
||||||
INX
|
* INX
|
||||||
INC theYSCREEN
|
* INC theYSCREEN
|
||||||
DEC nbLINES
|
* DEC nbLINES
|
||||||
BNE L8376
|
* BNE L8376
|
||||||
RTS
|
* RTS
|
||||||
|
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
* DRAW SPRITE AT X,Y WITH COLLISION
|
* DRAW SPRITE AT X,Y WITH COLLISION
|
||||||
@ -4984,17 +4978,79 @@ L8376 LDY theYSCREEN
|
|||||||
drawSPRXYCOLLISION
|
drawSPRXYCOLLISION
|
||||||
STY theYSCREEN
|
STY theYSCREEN
|
||||||
STA theA
|
STA theA
|
||||||
|
jsr setHGRPOINTERS
|
||||||
JSR getXBYBI
|
JSR getXBYBI
|
||||||
STA theXSCREEN
|
STA theXSCREEN
|
||||||
STX sprTABLE
|
* STX sprTABLE
|
||||||
JSR getSPRITEDATA
|
* JSR getSPRITEDATA
|
||||||
LDA #sprHEIGHT
|
* LDA #sprHEIGHT
|
||||||
STA nbLINES
|
* STA nbLINES
|
||||||
LDX #$00
|
LDX #$00
|
||||||
STX fgCOLLISION
|
STX fgCOLLISION
|
||||||
LDA sprTABLE
|
* LDA sprTABLE
|
||||||
CMP #$05
|
* CMP #$05
|
||||||
BCS L83F5
|
* BCS L83F5
|
||||||
|
|
||||||
|
rep #$30
|
||||||
|
|
||||||
|
lda theXSCREEN ; Y for column
|
||||||
|
and #$ff
|
||||||
|
clc
|
||||||
|
adc ptrHGR1
|
||||||
|
sta ptrHGR1
|
||||||
|
sta ptrHGR2
|
||||||
|
|
||||||
|
lda theA ; X for sprite
|
||||||
|
and #$ff
|
||||||
|
asl
|
||||||
|
tax
|
||||||
|
lda tblSPRITES,x
|
||||||
|
sta ptrSPR
|
||||||
|
|
||||||
|
lda #sprHEIGHT
|
||||||
|
sta nbLINES2
|
||||||
|
|
||||||
|
outerXYCOL lda #0
|
||||||
|
tax
|
||||||
|
tay
|
||||||
|
|
||||||
|
sep #$30
|
||||||
|
|
||||||
|
]lp LDA [ptrHGR1],Y ; 0..1
|
||||||
|
EOR [ptrHGR2],Y ; si HGR1=HGR2 => 0
|
||||||
|
and (sprDATA),y
|
||||||
|
ORA fgCOLLISION
|
||||||
|
STA fgCOLLISION
|
||||||
|
|
||||||
|
lda [ptrHGR2],y
|
||||||
|
tax
|
||||||
|
and tblMASK,x
|
||||||
|
ora (sprDATA),y
|
||||||
|
STA [ptrHGR1],y
|
||||||
|
iny
|
||||||
|
cpy #5
|
||||||
|
bcc ]lp
|
||||||
|
|
||||||
|
rep #$30
|
||||||
|
|
||||||
|
lda ptrHGR2
|
||||||
|
clc
|
||||||
|
adc #160
|
||||||
|
sta ptrHGR2
|
||||||
|
sta ptrHGR1
|
||||||
|
|
||||||
|
lda ptrSPR
|
||||||
|
clc
|
||||||
|
adc #5
|
||||||
|
sta ptrSPR
|
||||||
|
|
||||||
|
dec nbLINES2
|
||||||
|
bne outerXYCOL
|
||||||
|
sep #$30
|
||||||
|
stz fgCOLLISION ; LoGo
|
||||||
|
rts
|
||||||
|
|
||||||
|
mx %11
|
||||||
|
|
||||||
*--- sprite de 2 de large
|
*--- sprite de 2 de large
|
||||||
|
|
||||||
@ -5024,7 +5080,6 @@ L83C3 LDY theYSCREEN
|
|||||||
INC theYSCREEN
|
INC theYSCREEN
|
||||||
DEC nbLINES
|
DEC nbLINES
|
||||||
BNE L83C3
|
BNE L83C3
|
||||||
stz fgCOLLISION
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
*--- sprite de 3 de large
|
*--- sprite de 3 de large
|
||||||
@ -5064,7 +5119,6 @@ L83F5 LDY theYSCREEN
|
|||||||
INC theYSCREEN
|
INC theYSCREEN
|
||||||
DEC nbLINES
|
DEC nbLINES
|
||||||
BNE L83F5
|
BNE L83F5
|
||||||
stz fgCOLLISION
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
@ -5490,7 +5544,7 @@ L873C PHA ; exit with
|
|||||||
PLA
|
PLA
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
bsDATA DB ptrBOARD
|
bsDATA DB $06
|
||||||
|
|
||||||
*-----------------------------------
|
*-----------------------------------
|
||||||
* READ JOYSTICK
|
* READ JOYSTICK
|
||||||
|
@ -91,7 +91,8 @@ hgrPAGE = $1f
|
|||||||
|
|
||||||
ptrHGR1 = $24 ; **new** long
|
ptrHGR1 = $24 ; **new** long
|
||||||
ptrHGR2 = $28 ; **new** long
|
ptrHGR2 = $28 ; **new** long
|
||||||
nbLINES2 = $2c
|
ptrSPR = $2c ; **new** word
|
||||||
|
nbLINES2 = $2e ; **new** word
|
||||||
|
|
||||||
*CH = $24 ; **
|
*CH = $24 ; **
|
||||||
*CV = $25 ; **
|
*CV = $25 ; **
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user