...STEPW50:    JB SWITCH1,STEPW100 ; GO TO STEPW100 IF SWITCH 1 IS HIGH
            JB SWITCH2,STEPW100 ; GO TO STEPW100 IF SWITCH 1 IS HIGH
            CALL STEPLOOP ;  move 180 degrees
            CALL DELAY    ; DELAY 1/2 SEC
            SJMP MAIN     ; BACK TO MAIN

STEPW100:   JB SWITCH2,STEPW150  ; GO TO STEPW100 IF SWITCH 2 IS HIGH
            JNB SWITCH1,STEPW150 ; GO TO STEPW100 IF SWITCH 1 IS LOW
            CALL STEPLOOP ;move 180 degrees
            CALL DELAY    ; DELAY 1/2 SEC
            CALL DELAY    ; DELAY 1/2 SEC
            ljmp MAIN

STEPW150:   JNB SWITCH1,STEPW200  ;  GO TO STEPW200 IF SWITCH 1 IS HIGH
            JB SWITCH2,STEPW200   ;GO TO STEPW200 IF SWITCH 2 IS LOW
            CALL STEPLOOP ;move 180 degrees
            CALL DELAY    ; DELAY 1/2 SEC
            CALL DELAY    ; DELAY 1/2 SEC
            CALL DELAY     ; DELAY 1/2 SEC
            ljmp MAIN      ; BACK TO MAIN

STEPW200:
            CALL STEPLOOP  ;move 180 degrees
            CALL DELAY     ; DELAY 1/2 SEC
            CALL DELAY     ; DELAY 1/2 SEC
            CALL DELAY      ; DELAY 1/2 SEC
            CALL DELAY   ; DELAY 1/2 SEC
            ljmp MAIN    ; BACK TO MAIN

;***************************************
STEPLOOP:    MOV R1,#200         ;LOOP COUNTER SET TO 200 TIMES
STEPLOOPER:  setb STEPOUT ; TURN ON STEP OUTPUT PIN
             CALL STEPON       ; LEAVE PIN ON 1uSEC
             clr STEPOUT  ; TURN OFF STEP OUTPUT PIN
             CALL STEPOFF
             DJNZ R1,STEPLOOPER
             RET
;***************************************
;***************************************
; .5 SEC DELAY ROUTINE
DELAY:      MOV SP,#70H
            MOV R7,#0AH  ;OUTER LOOP COUNTER SET TO 10 TIMES
            MOV R5,#236  ;INNER LOOP COUNT SET TO 236 TIMES
LOOP2:      MOV R6,#00H  ;MIDDLE LOOP SET TO 256 TIMES
LOOP1:      DJNZ R5,LOOP1;LOOP 256 TIMES
            DJNZ R6,LOOP1;LOOP 236 TIMES
            DJNZ R7,LOOP2;LOOP 10 TIMES
            RET          ;RETURN PROGRAM
;***************************************
;***************************************
;         1 uSEC DELAY WHILE STEP PUSE OUTPUTTED
STEPON:     MOV R5,#02H ;LOOP SET TO 2 TIMES
LOOP3:      DJNZ R5,LOOP3;LOOP 2 TIMES
            RET
;***************************************
;***************************************
;          TIME OFF BETWEEN EACH STEP PULSE

STEPOFF:   MOV R5,#04H     ; OUTER LOOP SET TO 4 TIMES
            MOV R6,#00H     ; INNER LOOP SET TO 256
LOOP4:      DJNZ R6,LOOP4   ; LOOP 256 TIMES
            DJNZ R5,LOOP4   ; LOOP 4 TIMES
            RET
;***************************************
...