From 7b0f87cf60e9e2db978c9264855f9b6fc360440c Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 6 Jun 2023 15:20:07 +0200 Subject: [PATCH] Text operations speedup --- Atari/textproc.asm | 30 ++++++++++++++++++++---------- grafproc.asm | 2 +- scorch.xex | Bin 56332 -> 56330 bytes 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/Atari/textproc.asm b/Atari/textproc.asm index ec2fc6e..bccfbaa 100644 --- a/Atari/textproc.asm +++ b/Atari/textproc.asm @@ -2026,7 +2026,7 @@ AngleDisplay ; nr of weapon in A, address to put in weaponPointer @weapon_index = TextNumberOff sta @weapon_index ;get back number of the weapon - mwa #(NamesOfWeapons-1) LineAddress4x4 + mwa #NamesOfWeapons LineAddress4x4 jsr _calc_inverse_display ; now copy text to screen dey ; ldy #-1 @@ -2038,9 +2038,9 @@ AngleDisplay and #%01111111 ; remove reverse clearingOnly sta (weaponPointer),y - lda #0 ; clean the rest - iny:cpy #16 ; weapon name is max 16 chars - bne clearingonly +; lda #0 ; clean the rest +; iny:cpy #16 ; weapon name is max 16 chars +; bne clearingonly rts .endp ;------------------------------------------------- @@ -2050,19 +2050,29 @@ clearingOnly @weapon_index = TextNumberOff @inverse_counter = temp+1 - mwa #0 @inverse_counter - tay ; ldy #0 -@ - inw LineAddress4x4 + mva #0 @inverse_counter + ldy LineAddress4x4 ; lower byte to Y + sta LineAddress4x4 ; #0 +loop lda (LineAddress4x4),y spl:inc @inverse_counter lda @weapon_index beq zeroth_talk ; special treatment of talk #0 cmp @inverse_counter - bne @- + beq lets_talk + iny + bne loop + inc LineAddress4x4+1 + bne loop - inw LineAddress4x4 ; we were pointing at the char with inverse, must go 1 further +lets_talk + iny + bne @+ + inc LineAddress4x4+1 +@ zeroth_talk + sty LineAddress4x4 + ldy #0 rts .endp diff --git a/grafproc.asm b/grafproc.asm index 43a9ead..eed8a0d 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -1604,7 +1604,7 @@ notZero sta plot4x4color tya tax ; save Y - mwa #(talk-1) LineAddress4x4 + mwa #talk LineAddress4x4 jsr _calc_inverse_display ; now find length of the text diff --git a/scorch.xex b/scorch.xex index ca27340b67bb8f396e45b3f237105c5299fe3ff2..32c7087318e4f0a11f05fc1d8ac355b1204b9470 100644 GIT binary patch delta 4703 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 CM0BwL