From 8324221360258ebbe58e194fd7d0fa7dcd58ea8a Mon Sep 17 00:00:00 2001 From: Greg King Date: Thu, 17 Jul 2014 07:11:14 -0400 Subject: [PATCH] Improved some multiplication code. --- libsrc/cbm/syschdir.s | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) 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 -- 2.39.5