What's the fastest way to...

What's the fastest way to set the Z or C flag in assembly? I'm using the following to toggle a clock line but it's taking too long when you couple it with the cycle overhead of the CALL statement.
It's imbedded in a driver for an ADC088S052. The usage is this:
All these clock calls are driving up the time but I can't seem to figure out a way to directly toggle the port without doing a flag related operation.
Any ideas?
Thanks,
Jim-
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Signature space for rent!
Send $1 to CannibalRobotics.com.
'------------------------------------------------------------------------------------------- CL_ON MOV s,#0 ' TEST s,#0 wz ' Sets Z flag to 1 muxz dirA,CL_Mask ' Set CL to 1 muxz OUTA,CL_Mask ' Set CL to 1 CL_ON_Ret ret '------------------------------------------------------------------------------------------- CL_Off MOV s,#0 ' TEST s,#0 wz ' Sets Z flag to 1 muxz dirA,CL_Mask ' Set CL to output muxnz OUTA,CL_Mask ' Set CL to 0 CL_Off_Ret ret '-------------------------------------------------------------------------------------------
It's imbedded in a driver for an ADC088S052. The usage is this:
'..... CALL #CS_Off ' Chip Select Low, wake up ADC CALL #CL_Off ' 3 clock pulses to initiate conversion CALL #CL_On ' CALL #CL_Off ' CALL #CL_On ' CALL #CL_Off ' SHR t2,#2 ' Shift it right 2 places (MSB out first) AND t2,#%0_0000_0001 wz wc ' Test LSB muxz OUTA,DI_mask ' Put a 1 on data line muxnz OUTA,DI_mask ' Pot a 0 on data line CALL #CL_On ' Clock High MOV t2,ADChan ' Get ADChan again SHR t2,#1 ' Shift it right once for middle bit '.....
All these clock calls are driving up the time but I can't seem to figure out a way to directly toggle the port without doing a flag related operation.
Any ideas?
Thanks,
Jim-
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Signature space for rent!
Send $1 to CannibalRobotics.com.
Comments
Use:
or outa, CL_Mask
to set the output high. Use:
andn outa, CL_Mask
to set it low.
Neither of these will upset other bits in outa.
No calls required.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
ANDN outa, bitmask to clear port bit
bitmask long |< pin 'creates a long that has a single bit high that corresponds to the pin
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Parallax Forums - If you're ready to learn, we're ready to help.