PROGRAM eMax EQUATE(500) !Maximum elements constant GlobalGrp GROUP,PRE(G) !Global data group Array BYTE,DIM(eMax) !Array of bytes Top LONG !Top element Buf BYTE !Swap buffer Pos LONG !Position counter Start LONG !Start time Stop LONG !Stop time END !group CODE LOOP G:Pos = 1 TO eMax !Loop through array G:Array[G:Pos] = RANDOM(0,255) ! fill with random values END !loop BEEP !Signal start G:Start = CLOCK() !Save start time DO Sort_Array !Do bubble sort routine G:Stop = CLOCK() !Save stop time TYPE(G:Stop - (G:Start - 1)) !Display elapsed time BEEP !Signal stop RETURN !Exit program Sort_Array ROUTINE !Bubble sort routine G:Top = 0 !Initialize Top position LOOP eMax TIMES !Loop through array G:Top += 1 ! Increment Top position LOOP G:Pos = G:Top TO eMax ! Loop from Top to bottom IF G:Array[G:Pos] < G:Array[G:Top] ! If position element is G:Buf = G:Array[G:Top] ! less than Top then swap. G:Array[G:Top] = G:Array[G:Pos] G:Array[G:Pos] = G:Buf END !if END !loop END !loop EXIT !Exit routine