[PicForth] need optimal forth coding ideas

David McNab david at rebirthing.co.nz
Mon Nov 29 15:06:58 CET 2004


Hi all,

I'm seeking suggestions for efficient PicForth coding.

Here's a piece of code from my parallel LCD driver:

   ::code lcd.send-nyb ( W:nyb -- )

       w>                      \ save on stack

       \ set D4-D7 low, and change to high if needed
       lcd.pin-D4  bcf
       lcd.pin-D5  bcf
       lcd.pin-D6  bcf
       lcd.pin-D7  bcf

       \ set bits needing to be set
       indf 4      btfsc
       lcd.pin-D4  bsf
       indf 5      btfsc
       lcd.pin-D5  bsf
       indf 6      btfsc
       lcd.pin-D6  bsf
       indf 7      btfsc
       lcd.pin-D7  bsf

       pop

       lcd.pulse-E goto

   end-code

Code is working fine. The issue is that I'm in a process of trying to 
translate as much assembler code as possible to PicForth.

With the above, we have LCD pins that are non-contiguous - they don't 
even necessarily belong to the same port.

My question is - how can I translate something like:

       lcd.pin-D4  bcf
       ...
       indf 4      btfsc
       lcd.pin-D4  bsf

in pure PicForth such that it still only takes three machine-words?

-- 
Cheers
David


More information about the PicForth mailing list