Code in PBPPI18L.LIB, can I ?


Closed Thread
Results 1 to 9 of 9

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default Re: Code in PBPPI18L.LIB, can I ?

    Well, I don't see redundant code. But there's probably not enough code.
    I was running it in proteus and found that it stops reading the array whenever a borrow occurs from the high byte of R6.

    At points like 1023, 767, 511, 255 bytes remaining, it exits the ARRAYREAD.

    It uses the carry flag (STATUS,C) to indicate the "Timeout", which should only be cleared when both bytes are 0.

    HTH,
    DT

  2. #2


    Did you find this post helpful? Yes | No

    Default Re: Code in PBPPI18L.LIB, can I ?

    Preface...... I think,

    Max readarray would/could TRY to be 65K, (word)...... too long for any possible array to read in PIC.
    So, is your check looping thru 64KB ??? (I assssume no one wants to parse flash)

    example of my code
    Code:
    array1Test:    ' arr1 has INDX chars that is < ARR1[declared legnth]
    Flag1=0
    arrayread arr1,INDX,done,[wait("1qwe")]:Flag1=1 'found match
    done:      'no match
    My little array is 1000, and the arrayread matched the match anywhere from begining to the end.
    But, I was wondering if a "MATCH-TO-EXIT" compare char code, could be added. Like arraywrite, then tested on each pass, without extensive code addition.

    Then it would be;
    ARRAYREAD array_to_read, max_legnth, compare_char_to_exit, escape_labl[.....xyz....]

    As you stated somewhere, array read & write is making string usage much more practical.
    Don

  3. #3


    Did you find this post helpful? Yes | No

    Default Re: Code in PBPPI18L.LIB, can I ?

    forget misinterpreted last post,
    not sure if you saw,
    In second post I had added the check for 16 bit =0,at top of routine, few lines asm for that
    Code:
     LIST
    ARRAYREADTO movf R6, F                       ; Check for no chars left in array    hi & low R6
                         bcf STATUS, C                   ; Preset for timed out (C clear)   
                         btfsc STATUS, Z          ; Set "Z" if LOW "Reg" == 0
                         movf  R6+1, F    
                         bz    arrayreaddone               ; No chars left
                         movf   R6, F                   
                btfsc  STATUS, Z      ;decrement high and low
               decf  R6+1, F         ;If Low byte is Zero, Decrement High
                          decf    R6, F                          ; Count down the characters left and fall through to ARRAYREAD  
    
    NOLISTARRAYREAD_USED = 1    
    endif
    hard to format text in code window.

    Don
    Last edited by amgen; - 28th September 2011 at 19:52.

  4. #4
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default Re: Code in PBPPI18L.LIB, can I ?

    OK, and you can forget my misinterpreted last post too.
    After further testing, your changes do work as advertised. My test was flawed.

    Back to the redundant code question, I think you can save 1 WORD by changing the second part to ...
    Code:
    ;        movf   R6, F
            decf    R6, F          ; Count down the characters left and fall through to ARRAYREAD  
            btfss  STATUS, C       ; If Low byte borrowed
            decf  R6+1, F          ; Decrement High
    It's not much, but ...
    Last edited by Darrel Taylor; - 29th September 2011 at 00:37.
    DT

  5. #5
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default Re: Code in PBPPI18L.LIB, can I ?

    Don,

    Would you like melabs to include your changes in the next update to PBP3?
    DT

  6. #6


    Did you find this post helpful? Yes | No

    Default Re: Code in PBPPI18L.LIB, can I ?

    By all means,
    I would feel honored.

    Don

  7. #7
    Join Date
    Mar 2005
    Location
    CROATIA
    Posts
    38


    Did you find this post helpful? Yes | No

    Default Re: Code in PBPPI18L.LIB, can I ?

    Hi, I just seen this post, but i already post my problem regarding array.0(word-sized-variable)
    as this isue is similar for reading, can someone give me hint how can we patch writing routine
    to have array.0(word-sized-variable) working, as now only byte size index works....

    regards, & thenx for any kind oh help

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts