From: Greg King Date: Thu, 17 Jul 2014 11:11:14 +0000 (-0400) Subject: Improved some multiplication code. X-Git-Tag: V2.15~48^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=refs%2Fpull%2F129%2Fhead;p=cc65 Improved some multiplication code. --- diff --git a/libsrc/cbm/syschdir.s b/libsrc/cbm/syschdir.s index 9361d56f0..a4a83cd21 100644 --- a/libsrc/cbm/syschdir.s +++ b/libsrc/cbm/syschdir.s @@ -1,5 +1,6 @@ ; -; Oliver Schmidt, 2012-10-16 +; 2012-10-16, Oliver Schmidt +; 2014-07-16, Greg King ; ; unsigned char __fastcall__ _syschdir (const char* name); ; @@ -39,18 +40,14 @@ ; Multiply first digit by 10 - ldx #8 -@L0: asl - asl tmp1 - bcc @L1 - clc - adc #10 -@L1: dex - bne @L0 + txa + asl a ; * 2 + asl a ; * 4, carry cleared + adc tmp1 ; * 5 + asl a ; * 10, carry cleared ; Add second digit to product - clc adc tmp2 tax @@ -80,7 +77,8 @@ done: rts .endproc ;-------------------------------------------------------------------------- -; getdigit +; getdigit -- Converts PetSCII to binary. +; Sets carry if the character is outside of '0'-'9'. .proc getdigit