At 12:51 PM 5/16/97 +0100, you wrote: >hi all, > >a couple of quick questions... > >1> when i use 'retlw TRUE/FALSE'- how does one commonly check > what happened after the return? do you check the LSB of W > i.e. btfss W,0 Does that even assemble? I use call routine xorlw FALSE btfss Z goto WasTrue WasFalse ... WasTrue ... routine ... retlw FALSE ... retlw TRUE Another way I've done it is to have: FLAGS ds 1 RETFLG equ FLAGS.0 call routine btfsc RETFLG goto WasTrue WasFalse ... WasTrue ... routine bcf RETFLG ; Default to FALSE ... ... return ; No change if false return needed ... bsf RETFLG ; Flag TRUE state return This costs a little, but makes coding simpler sometimes. Multiple routines can use RETFLG, just so long as you keep track of who owns it at any particular time. > now i'm getting into a mess trying to keep track of where i put > which CBLOCK- i.e. either i have to define the CBLOCK in bank1 > last, or i have to give an address to the next CBLOCK- which i > don't want to calculate... > > what's usually done in these cases? I would use a different assembler, that doesn't support CBLOCKs. Andy ================================================================== Andy Kunz - Montana Design - 409 S 6th St - Phillipsburg, NJ 08865 Hardware & Software for Industry & R/C Hobbies "Go fast, turn right, and keep the wet side down!" ==================================================================