diff --git a/scorch.asm b/scorch.asm index 474932e..69dfd8a 100644 --- a/scorch.asm +++ b/scorch.asm @@ -405,9 +405,9 @@ RoboTanks ; robotanks shoot here jsr ArtificialIntelligence jsr PutTankNameOnScreen + jsr DisplayStatus ldx TankNr jsr MoveBarrelToNewPosition - ;jsr DisplayStatus ;all digital values like force, angle, wind, etc. (but it is done in MoveBarrelToNewPosition proc) lda kbcode cmp #28 ; ESC bne @+ @@ -1147,7 +1147,7 @@ LimitForce .proc MoveBarrelToNewPosition jsr DrawTankNr ldx TankNr - jsr DisplayStatus + jsr DisplayStatus.displayAngle ldx TankNr lda NewAngle cmp AngleTable,x diff --git a/scorch.xex b/scorch.xex index 1801664..2740cdf 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/textproc.asm b/textproc.asm index 19afa51..a09bbef 100644 --- a/textproc.asm +++ b/textproc.asm @@ -1887,57 +1887,6 @@ ActiveDefence NoDefenceWeapon NoShieldEnergy - ;========================= - ;display Force - ;========================= - ldx TankNr - lda ForceTableL,x - sta decimal - lda ForceTableH,x - sta decimal+1 - mwa #textbuffer+40+36 displayposition - jsr displaydec - - ;========================= - ;display Angle - ;========================= - ; additionally we are getting charcode of the tank - ; (for future display) - ldx TankNr - lda AngleTable,x - cmp #90 - beq VerticallyUp - bcs AngleToLeft -AngleToRight - ; now we have values from 0 to 89 and right angle - sta decimal - lda #$7f ; (tab) character - sta textbuffer+40+25 - lda #0 ;space - sta textbuffer+40+22 - beq AngleDisplay -AngleToLeft - sec - lda #180 - sbc AngleTable,x - ; angles 180 - 91 converted to 0 - 89 - sta decimal - lda #$7e ;(del) char - sta textbuffer+40+22 - lda #0 ;space - sta textbuffer+40+25 - beq AngleDisplay -VerticallyUp - ; now we have value 90 - sta decimal - lda #0 ;space - sta textbuffer+40+25 - sta textbuffer+40+22 - -AngleDisplay - mwa #textbuffer+40+23 displayposition - jsr displaybyte - ;========================= ;display Wind ;========================= @@ -1975,6 +1924,56 @@ DisplayWindValue sta decimal mwa #textbuffer+80+7 displayposition jsr displaybyte ;decimal (byte), displayposition (word) + + ;========================= + ;display Force + ;========================= + ldx TankNr + lda ForceTableL,x + sta decimal + lda ForceTableH,x + sta decimal+1 + mwa #textbuffer+40+36 displayposition + jsr displaydec + + ;========================= + ;display Angle + ;========================= +displayAngle + ldx TankNr + lda AngleTable,x + cmp #90 + beq VerticallyUp + bcs AngleToLeft +AngleToRight + ; now we have values from 0 to 89 and right angle + sta decimal + lda #$7f ; (tab) character + sta textbuffer+40+25 + lda #0 ;space + sta textbuffer+40+22 + beq AngleDisplay +AngleToLeft + sec + lda #180 + sbc AngleTable,x + ; angles 180 - 91 converted to 0 - 89 + sta decimal + lda #$7e ;(del) char + sta textbuffer+40+22 + lda #0 ;space + sta textbuffer+40+25 + beq AngleDisplay +VerticallyUp + ; now we have value 90 + sta decimal + lda #0 ;space + sta textbuffer+40+25 + sta textbuffer+40+22 + +AngleDisplay + mwa #textbuffer+40+23 displayposition + jsr displaybyte rts .endp