//even/odd counter //is an even or an odd number of I/O's enabled? LABEL LOOP CALL COUNT_IO CALL FIND_EVEN_ODD WAIT 1000 GOTO LOOP SUB COUNT_IO //set counter to 0 VAR1 = 0 //increase counter for each channel that is on VAR1 = VAR1 + $IO01 VAR1 = VAR1 + $IO02 VAR1 = VAR1 + $IO03 VAR1 = VAR1 + $IO04 VAR1 = VAR1 + $IO05 VAR1 = VAR1 + $IO06 VAR1 = VAR1 + $IO07 VAR1 = VAR1 + $IO08 VAR1 = VAR1 + $IO09 VAR1 = VAR1 + $IO10 VAR1 = VAR1 + $IO11 VAR1 = VAR1 + $IO12 VAR1 = VAR1 + $IO13 VAR1 = VAR1 + $IO14 VAR1 = VAR1 + $IO15 VAR1 = VAR1 + $IO16 END SUB SUB FIND_EVEN_ODD //decrease until value <= 2 LABEL CHECK_AGAIN IF VAR1 >= 0002 Then VAR1 = VAR1 - 2 GOTO CHECK_AGAIN END IF //check if even or odd IF VAR1 = 0001 Then //odd number DAC01 = 0 ELSE //even number DAC01 = 63 END IF END SUB