1INCLUDE "config_private.inc" 2 3SECTION code_clib 4SECTION code_l 5 6PUBLIC l_ldd_loop 7PUBLIC l_ldd_loop_0 8PUBLIC l_ldd_loop_small 9 10IF (__CLIB_OPT_UNROLL & 0x80) 11 12EXTERN l_ldd_loop_smc 13defc l_ldd_loop = l_ldd_loop_smc 14 15EXTERN l_ldd_loop_smc_0 16defc l_ldd_loop_0 = l_ldd_loop_smc_0 17 18EXTERN l_ldd_loop_smc_small 19defc l_ldd_loop_small = l_ldd_loop_smc_small 20 21ELSE 22 23EXTERN l_ldd 24EXTERN l_ldd_256, l_ldd_128 25EXTERN l_ldd_64, l_ldd_32, l_ldd_16 26 27l_ldd_loop: 28 29 ld a,b 30 31 or a 32 jp z, fine 33 34l_ldd_loop_0: 35coarse: 36 37 call l_ldd_256 38 39 dec a 40 jp nz, coarse 41 42l_ldd_loop_small: 43fine: 44 45 ld a,c 46 47 cp 16 48 jp c, sub_16 49 50 add a,a 51 call c, l_ldd_128 52 53 add a,a 54 call c, l_ldd_64 55 56 add a,a 57 call c, l_ldd_32 58 59 add a,a 60 call c, l_ldd_16 61 62 ret z 63 64 lddr 65 ret 66 67sub_16: 68 69 or a 70 ret z 71 72 lddr 73 ret 74 75ENDIF 76