]> git.sur5r.net Git - cc65/commitdiff
Fixed a bug
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 14 Sep 2000 19:16:53 +0000 (19:16 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 14 Sep 2000 19:16:53 +0000 (19:16 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@325 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/runtime/lswitch.s

index 9173b155427beca75a484f283b1cdf94ec7e6f90..5c069451a48a3fa1b2d7bf67b9a689afb9bcfda5 100644 (file)
@@ -4,10 +4,10 @@
 ; CC65 runtime: switch statement with long selector
 ;
 
-; Subroutine to handle a switch statement with an int selector. The table
+; Subroutine to handle a switch statement with an long selector. The table
 ; is located at the return address from the function. It contains the negative
 ; of the case label count as first word, followed by three words for each case
-; label, the first two being the value, and the second one the label to jump
+; label, the first two being the value, and the last one the label to jump
 ; to in case of a match. The default case is located at the end of the table.
 
        .export         lswitch
@@ -31,7 +31,6 @@ lswitch:
        lda     (ptr2),y
        sta     ptr3+1          ; Remember the count of labels
 
-       ldy     #0
        clc                     ; Skip the label count
        lda     ptr2
        adc     #2
@@ -42,7 +41,8 @@ lswitch:
 
 ; Search for the label
 
-L0:    lda     (ptr2),y
+L0:    ldy     #0
+       lda     (ptr2),y
        cmp     ptr1
                bne     L1
        iny