From e1a930ca44b27654bffd0b8fe2e9b24330ae7211 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Wed, 29 Mar 2023 20:20:26 +0200 Subject: [PATCH] More cleanup and optimization --- scorch.asm | 46 +++++++++++++++++++++------------------------- scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 49285 -> 49281 bytes 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/scorch.asm b/scorch.asm index 919ca90..77d5c10 100644 --- a/scorch.asm +++ b/scorch.asm @@ -1130,20 +1130,19 @@ NotNegativeShieldEnergy ;this algiorithm is a little longer than one in Ruszczyc 6502 book ;but it is faster - LDy #8 - LDA #0 - CLC -LP0 + ldy #8 + lda #0 + clc +LP0 ror + ror L1 + bcc B0 + clc + adc #10 ; (L2) multiplication by 10 +B0 dey + bne LP0 ror - ROR L1 - BCC B0 - CLC - ADC #10 ; (L2) multiplication by 10 -B0 DEY - BNE LP0 - ror - ROR L1 - STA MaxForceTableH,x + ror L1 + sta MaxForceTableH,x lda L1 sta MaxForceTableL,x rts @@ -1157,21 +1156,18 @@ B0 DEY ldx #(number_of_weapons - 1) @ lda #$0 cpx #ind_White_Flag_____ ; White Flag - bne @+ - lda #99 -@ sta TanksWeapon1,x + bne no99 +set99 lda #99 +no99 sta TanksWeapon1,x sta TanksWeapon2,x sta TanksWeapon3,x sta TanksWeapon4,x sta TanksWeapon5,x sta TanksWeapon6,x dex - beq setBmissile ; Baby Missile (index=0) - bpl @-1 + beq set99 ; Baby Missile (index=0) + bpl @- rts -setBmissile - lda #99 - bne @- .endp ;-------------------------------------------------- @@ -1403,11 +1399,11 @@ MoveBarrel lda NewAngle cmp AngleTable,x beq BarrelPositionIsFine - bcc rotateLeft ; older is bigger -rotateRight;older is lower + bcc rotateLeft +rotateRight ; older is lower inc angleTable,x jmp MoveBarrel -rotateLeft +rotateLeft ; older is bigger dec angleTable,x jmp MoveBarrel BarrelPositionIsFine @@ -1769,7 +1765,7 @@ YesCheat lda #99 @ iny sta (temp),y - cpy #(last_defensive_____ - first_offensive____) + cpy #(number_of_weapons - 1) bne @- NoCheat rts diff --git a/scorch.bin b/scorch.bin index c3889da1cd3c56a72b1782f42494478f9c213bdd..28044c2722f1d3028bee511c29a4845aae020b0f 100644 GIT binary patch delta 7464 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 Brs)6x delta 7601 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 K?7Y9hgZV$lOyQ^i diff --git a/scorch.xex b/scorch.xex index f4ca5a11e7f4aaa818ccb61b0be10ee17637ad41..19a3ab32fcdd69dc38cf7a3e842cbd2cb00259f1 100644 GIT binary patch delta 7452 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 Iy3O?e0eSZ4Y5)KL delta 7490 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 HR{DPdYtZMY