work in progress...

This commit is contained in:
2022-05-30 05:54:00 -04:00
parent 2df28af79c
commit 9f1720e970
4 changed files with 50 additions and 101 deletions
+42 -91
View File
@@ -555,11 +555,10 @@ UnequalTanks
bpl CheckNextTank bpl CheckNextTank
rts rts
.endp .endp
;-------------------------------------------------
drawtanks
;-------------------------------------------------
;-------------------------------------------------
.proc drawtanks
;-------------------------------------------------
lda tanknr lda tanknr
pha pha
ldx #$00 ldx #$00
@@ -576,8 +575,9 @@ DrawNextTank
sta tankNr sta tankNr
rts rts
.endp
;--------- ;---------
drawtanknr .proc DrawTankNr
ldx tanknr ldx tanknr
; let's check the energy ; let's check the energy
lda eXistenZ,x lda eXistenZ,x
@@ -665,11 +665,11 @@ ZeroesToGo
NoPlayerMissile NoPlayerMissile
DoNotDrawTankNr DoNotDrawTankNr
rts rts
.endp
;-------------------------------------------------- ;--------------------------------------------------
.proc drawmountains .proc drawmountains
;-------------------------------------------------- ;--------------------------------------------------
mwa #0 xdraw mwa #0 xdraw
mwa #mountaintable modify mwa #mountaintable modify
mva #1 color mva #1 color
@@ -835,6 +835,7 @@ ColumnIsReady
mva #sfx_silencer sfx_effect mva #sfx_silencer sfx_effect
rts rts
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
.proc calculatemountains .proc calculatemountains
;-------------------------------------------------- ;--------------------------------------------------
@@ -962,6 +963,7 @@ SetYofNextTank
rts rts
.endp .endp
; **************************************************** ; ****************************************************
; ----------------------------------------- ; -----------------------------------------
.proc unPlot .proc unPlot
; plots a point and saves the plotted byte, reverts the previous plot. ; plots a point and saves the plotted byte, reverts the previous plot.
@@ -1066,6 +1068,7 @@ SkipThisPlot
EndOfUnPlot EndOfUnPlot
rts rts
.endp .endp
; ----------------------------------------- ; -----------------------------------------
.proc plot ;plot (xdraw, ydraw, color) .proc plot ;plot (xdraw, ydraw, color)
; color == 1 --> put pixel ; color == 1 --> put pixel
@@ -1100,11 +1103,7 @@ MakePlot
lsr lsr
lsr lsr
tay ;save tay ;save
;--- ;---
ldx ydraw ldx ydraw
lda linetableL,x lda linetableL,x
sta xbyte sta xbyte
@@ -1126,6 +1125,7 @@ ClearPlot
sta (xbyte),y sta (xbyte),y
rts rts
.endp .endp
; ----------------------------------------- ; -----------------------------------------
.proc point .proc point
; ----------------------------------------- ; -----------------------------------------
@@ -1135,7 +1135,6 @@ ClearPlot
; let's calculate coordinates from xdraw and ydraw ; let's calculate coordinates from xdraw and ydraw
mwa xdraw xbyte mwa xdraw xbyte
lda xbyte lda xbyte
and #$7 and #$7
sta ybit sta ybit
@@ -1147,9 +1146,7 @@ ClearPlot
lsr lsr
lsr lsr
tay ;save tay ;save
;---
;---
ldx ydraw ldx ydraw
lda linetableL,x lda linetableL,x
sta xbyte sta xbyte
@@ -1163,6 +1160,7 @@ ClearPlot
eor bittable,x eor bittable,x
rts rts
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
.proc DrawLine .proc DrawLine
;-------------------------------------------------- ;--------------------------------------------------
@@ -1174,20 +1172,19 @@ ClearPlot
jsr plot.MakePlot jsr plot.MakePlot
;rts ;rts
jmp IntoDraw ; jumps inside Draw routine jmp IntoDraw ; jumps inside Draw routine
; because one pixel is already plotted ; because one pixel is already plotted
loopdraw @
lda (xbyte),y
lda (xbyte),y and bittable2,x
and bittable2,x sta (xbyte),y
sta (xbyte),y
IntoDraw IntoDraw
adw xbyte #screenBytes adw xbyte #screenBytes
dec tempbyte01 dec tempbyte01
bne loopdraw bne @-
rts rts
.endp .endp
;
; ------------------------------------------ ; ------------------------------------------
.proc TypeChar .proc TypeChar
; puts char on the graphics screen ; puts char on the graphics screen
@@ -1238,7 +1235,6 @@ CopyMask
lsrw xbyte ; div 8 lsrw xbyte ; div 8
rorw xbyte rorw xbyte
rorw xbyte rorw xbyte
;--- ;---
ldy xbyte ldy xbyte
@@ -1255,46 +1251,15 @@ CopyMask
ldx ybit ldx ybit
beq MaskOK00 beq MaskOK00
MakeMask00 MakeMask00
lsr mask1 .rept 8
ror mask2 lsr mask1+#
lsr mask1+1 ror mask2+#
ror mask2+1 .endr
lsr mask1+2 .rept 8
ror mask2+2 sec
lsr mask1+3 ror char1+#
ror mask2+3 ror char2+#
lsr mask1+4 .endr
ror mask2+4
lsr mask1+5
ror mask2+5
lsr mask1+6
ror mask2+6
lsr mask1+7
ror mask2+7
sec
ror char1
ror char2
sec
ror char1+1
ror char2+1
sec
ror char1+2
ror char2+2
sec
ror char1+3
ror char2+3
sec
ror char1+4
ror char2+4
sec
ror char1+5
ror char2+5
sec
ror char1+6
ror char2+6
sec
ror char1+7
ror char2+7
dex dex
bne MakeMask00 bne MakeMask00
MaskOK00 MaskOK00
@@ -1327,6 +1292,7 @@ CharLoopi
EndPutChar EndPutChar
rts rts
.endp .endp
; ------------------------------------------ ; ------------------------------------------
.proc PutChar4x4 .proc PutChar4x4
; puts 4x4 pixels char on the graphics screen ; puts 4x4 pixels char on the graphics screen
@@ -1368,10 +1334,7 @@ CopyChar
lda (fontind),y ; Y must be 0 !!!! lda (fontind),y ; Y must be 0 !!!!
bit nibbler4x4 bit nibbler4x4
bpl GetUpper4bits bpl GetUpper4bits
rol :4 rol
rol
rol
rol
GetUpper4bits GetUpper4bits
ora #$0f ora #$0f
sta char1,x sta char1,x
@@ -1396,7 +1359,6 @@ GetUpper4bits
lsrw xbyte ; div 8 lsrw xbyte ; div 8
rorw xbyte rorw xbyte
rorw xbyte rorw xbyte
;--- ;---
ldy xbyte ldy xbyte
lda ydraw ; y = y - 3 because left lower. lda ydraw ; y = y - 3 because left lower.
@@ -1412,26 +1374,15 @@ GetUpper4bits
ldx ybit ldx ybit
beq MaskOK01 beq MaskOK01
MakeMask01 MakeMask01
lsr mask1 .rept 4
ror mask2 lsr mask1+#
lsr mask1+1 ror mask2+#
ror mask2+1 .endr
lsr mask1+2 .rept 4
ror mask2+2 sec
lsr mask1+3 ror char1+#
ror mask2+3 ror char2+#
sec .endr
ror char1
ror char2
sec
ror char1+1
ror char2+1
sec
ror char1+2
ror char2+2
sec
ror char1+3
ror char2+3
dex dex
bne MakeMask01 bne MakeMask01
MaskOK01 MaskOK01
+6 -8
View File
@@ -474,8 +474,8 @@ missed
jsr DisplayOffensiveTextNr jsr DisplayOffensiveTextNr
NextPlayerShoots NextPlayerShoots
mva #1 Erase ;mva #1 Erase
jsr drawtanks ;jsr drawtanks
;before it shoots, the eXistenZ table must be ;before it shoots, the eXistenZ table must be
;updated accordingly to actual energy (was forgotten, sorry to ourselves) ;updated accordingly to actual energy (was forgotten, sorry to ourselves)
@@ -514,11 +514,9 @@ B0 DEY
;was setup of maximum energy for players ;was setup of maximum energy for players
mva #0 Erase ;mva #0 Erase
jsr drawtanks ;jsr drawtanks
;inc TankNr
;lda TankNr
inc:lda TankSequencePointer inc:lda TankSequencePointer
cmp NumberOfPlayers cmp NumberOfPlayers
bne PlayersAgain bne PlayersAgain
@@ -1056,14 +1054,14 @@ rotateRight;older is lower
bne MoveBarrelToNewPosition bne MoveBarrelToNewPosition
mva #$30 CharCode ; if angle goes through 0 we clear the barrel mva #$30 CharCode ; if angle goes through 0 we clear the barrel
jsr drawtankNrX jsr DrawTankNr.drawtankNrX
jmp MoveBarrelToNewPosition jmp MoveBarrelToNewPosition
rotateLeft rotateLeft
dec angleTable,x dec angleTable,x
bpl MoveBarrelToNewPosition bpl MoveBarrelToNewPosition
mva #$2e CharCode mva #$2e CharCode
jsr drawtankNrX jsr DrawTankNr.drawtankNrX
jmp MoveBarrelToNewPosition jmp MoveBarrelToNewPosition
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -1129,7 +1129,7 @@ pressedLeft
cmp #$ff ; if angle goes through 0 we clear the barrel cmp #$ff ; if angle goes through 0 we clear the barrel
bne NotThrough90DegreesLeft bne NotThrough90DegreesLeft
mva #$2e CharCode mva #$2e CharCode
jsr drawtankNrX jsr DrawTankNr.drawtankNrX
NotThrough90DegreesLeft NotThrough90DegreesLeft
cmp #(255-91) cmp #(255-91)
jne BeforeFire jne BeforeFire
@@ -1144,7 +1144,7 @@ pressedRight
lda AngleTable,x lda AngleTable,x
bne NotThrough90DegreesRight bne NotThrough90DegreesRight
mva #$30 CharCode ; if angle goes through 0 we clear the barrel mva #$30 CharCode ; if angle goes through 0 we clear the barrel
jsr drawtankNrX jsr DrawTankNr.drawtankNrX
NotThrough90DegreesRight NotThrough90DegreesRight
cmp #91 cmp #91
jne BeforeFire jne BeforeFire