hi all, i've just started programming the pic - i've got the led's lit up etc etc now moving on to bigger & better things.. a couple of questions regarding common practice : - i started off assigning my own registers just using CTR EQU 20h (for example) what i meant was i wanted to use address 20h now is it usual to use the 'DS' command to do this kind of thing? i.e. ORG 20h CTR DS 1 ORG 21h CTR2 DS 1 i'm kinda unsure about the direct/indirect addressing.. - say i want a small buffer (i.e. maybe 12/16 bits) - i do this ORG 30h BUFFER DS 16 now how do i get at this buffer? i know i can do BUFFER+ but i want to use 'a variable' for the offset, increment it, etc etc as i would in a high level language... i thought of having another memory location holding a 'pointer' to my buffer and then incrementing/decrementing this - but trying to implement this seems kinda unnecessarily complex.. any tips? i guess i'm still thinking high level language... thanks nishant ISE III BEng Incremental Sanity Erosion at Imperial College