symbol direction = b0 '0=Clockwise, 1=Anti-clockwise symbol inner = b1 symbol magpulse = b2 main: pins = %00000000 gosub find_start nextride: pause 5000 gosub oscillate_start direction = 1 gosub full_speed direction = 0 gosub full_speed gosub oscillate_stop pause 10000 goto nextride oscillate_start: direction = 0 gosub speed_0 gosub speed_1 gosub speed_2 gosub speed_2 gosub speed_1 gosub speed_0 pause 300 ' direction = 1 gosub speed_0 gosub speed_1 gosub speed_2 gosub speed_2 gosub speed_3 gosub speed_3 gosub speed_3 gosub speed_2 gosub speed_1 gosub speed_0 pause 500 ' direction = 0 gosub speed_0 gosub speed_1 gosub speed_2 gosub speed_3 gosub speed_4 gosub speed_4 gosub speed_4 gosub speed_3 gosub speed_2 gosub speed_1 gosub speed_0 pause 1000 ' direction = 1 gosub speed_0 gosub speed_1 gosub speed_2 gosub speed_3 gosub speed_4 gosub speed_6 gosub speed_4 gosub speed_3 gosub speed_3 gosub speed_2 gosub speed_1 gosub speed_1 gosub speed_1 gosub speed_0 pause 2000 return oscillate_stop: direction = 1 gosub speed_1 gosub speed_2 gosub speed_3 gosub speed_4 gosub speed_3 gosub speed_2 gosub speed_1 pause 300 ' direction = 0 gosub speed_1 gosub speed_2 gosub speed_2 gosub speed_2 gosub speed_1 gosub speed_1 gosub speed_1 pause 300 ' direction = 1 do while pin2 = 0 'wait for magnet to trigger reed switch pins = %00000010 pause 1 pins = %00000000 pause 2 loop gosub speed_0 gosub speed_0 gosub speed_0 gosub speed_0 pause 300 ' return full_speed: gosub speed_0 gosub speed_1 gosub speed_2 gosub speed_3 gosub speed_4 gosub speed_6 gosub speed_8 if direction = 0 then pins = %00000001 else pins = %00000010 endif magpulse = 0 do while magpulse < 4 if pin2 = 1 then inc magpulse pause 500 endif loop gosub speed_3 gosub speed_2 gosub speed_1 gosub speed_0 pause 500 return speed_0: for inner = 1 to 10 if direction = 0 then pins = %00000001 pause 1 pins = %00000000 pause 2 else pins = %00000010 pause 1 pins = %00000000 pause 2 endif next inner return speed_1: for inner = 1 to 100 if direction = 0 then pins = %00000001 pause 1 pins = %00000000 pause 1 else pins = %00000010 pause 1 pins = %00000000 pause 1 endif next inner return speed_2: for inner = 1 to 100 if direction = 0 then pins = %00000001 pause 2 pins = %00000000 else pins = %00000010 pause 2 pins = %00000000 endif next inner return speed_3: for inner = 1 to 100 if direction = 0 then pins = %00000001 pause 4 pins = %00000000 else pins = %00000010 pause 4 pins = %00000000 endif next inner return speed_4: for inner = 1 to 100 if direction = 0 then pins = %00000001 pause 6 pins = %00000000 else pins = %00000010 pause 6 pins = %00000000 endif next inner return speed_6: for inner = 1 to 100 if direction = 0 then pins = %00000001 pause 6 pins = %00000000 else pins = %00000010 pause 6 pins = %00000000 endif next inner return speed_8: for inner = 1 to 100 if direction = 0 then pins = %00000001 pause 8 pins = %00000000 else pins = %00000010 pause 8 pins = %00000000 endif next inner return find_start: 'check that Seating Platform is in Loading/Unloading position do while pin2 = 0 'wait for magnet to trigger reed switch pins = %00000001 pause 4 pins = %00000000 loop gosub speed_0 return