Hi,
But you have been calling ASM routines since that is exactly what PBP does, it "builds" your code into an ASM program by "stitching together" different library routines which are all in ASM. Some of these routines have "settings" which can be "configured" and this is done with the DEFINE directive. The DEFINE directive is a PBP "command" and PBP is not case sensitive so the DeFiNe can be any case but the name of the "setting" you want to configure must match the case of how it is written in the ASM routine it "configures" - and all the PBP library routies use all upper case.For what it's worth I'm not an experienced programmer but If I'm wrong I'd like to know for future use. In the few prorams I've written I've always had to use caps for the defines to work but I haven't been calling asm routines. So I'd at least try it to see if it matters.
Let's take the simple example of DEFINE OSC 20, in the library file you'll find something like (and this is ASM):See, here OSC is all upper case and since this is code that is directly used by the assembler IS case sensitive so if you, in your program, would do define osc 20 it wouldn't work. Not because define is lower case but because osc is. What happens is that the assembler creates a constant named osc (which is different from OSC that the library routines is looking for) and assignes the value 20 to it. The library routines checks if OSC has been defined but doesn't see it so it sets its value to 4 - when you intended for it to be 20.Code:ifndef OSC OSC = 4 endif
If you write a ASM routine where the assembler is looking for aBc then you'd need to use DEFINE aBc for it to work, define ABC wouldn't, neither would DEFINE ABC.
Man, I really hope I got that right but if I didn't I hope someone will jump in and correct me.
/Henrik.




Bookmarks