diff --git a/ROM2/main_basic.c b/ROM2/main_basic.c
index fc736d7e4f73c7375a1ac57788e5df66aed2abe1..ae25a79390b385c49d07c30991d4fa9535368522 100644
--- a/ROM2/main_basic.c
+++ b/ROM2/main_basic.c
@@ -242,9 +242,21 @@ int main() {
 					motor_num = cur_motor[0]%10;
 					motor_num *= 10;
 					motor_num += cur_motor[1];
-					dispense_motor(motor_num);
+					switch (dispense_motor(motor_num)) {
+						case MOTOR_HOME_FAIL:
+							set_msg(" HOME FAIL ");
+							break;
+						case MOTOR_CURRENT_FAIL:
+							set_msg(" OVER CRNT ");
+							break;
+						case MOTOR_SUCCESS:
+							set_msg("THANK  YOU");
+							break;
+						default:
+							set_msg("ERRRRRRRR?");
+							break;
+					}
 
-					set_msg("THANK  YOU");
 					display_buf[0] = ' ';
 					display_buf[1] = ' ';
 					cur_motor[0] = 0xff;
diff --git a/ROM2/motors.c b/ROM2/motors.c
index 765c1b7fc3aff06eb448450d6b41be7ebe5b82c9..64158ae56ab5e22b99ca93aae1123661cea2336f 100644
--- a/ROM2/motors.c
+++ b/ROM2/motors.c
@@ -97,7 +97,7 @@ bool is_motor(u8 slot) {
 bool left_home(u8 slot) {
 	u8 i, r = slot%10;
 	if (r >= 5) r--; 
-	r = 1 << r;
+	r = 1 << (r-1);
 
 	for (i = 0; i < 5; i++)
 		if ((home_sensors & r) == 0) return 1;
@@ -109,7 +109,7 @@ bool left_home(u8 slot) {
 bool back_home(u8 slot) {
 	u8 i, r = slot%10;
 	if (r >= 5) r--; 
-	r = 1 << r;
+	r = 1 << (r-1);
 
 	for (i = 0; i < 5; i++) {
 		if (home_sensors & r) return 1;