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