$regfile = "2313def.dat" $crystal = 4000000 Const Barmaxchar = 16 Dim Forcounter As Byte Dim Logval As Byte Declare Sub Bar(logvalue As Byte) Deflcdchar 0 , 14 , 10 , 14 , 21 , 14 , 10 , 17 , 17 'jumping man-a Deflcdchar 1 , 14 , 10 , 21 , 21 , 14 , 10 , 10 , 17 'jumping man-b Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 'empty box Deflcdchar 3 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 0 '1/5 box Deflcdchar 4 , 24 , 24 , 24 , 24 , 24 , 24 , 24 , 0 '2/5 box Deflcdchar 5 , 28 , 28 , 28 , 28 , 28 , 28 , 28 , 0 '3/5 box Deflcdchar 6 , 30 , 30 , 30 , 30 , 30 , 30 , 30 , 0 '4/5 box Deflcdchar 7 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 0 'full box Cls Cursor Off Do 'Generate random numbers to display as bar For Forcounter = 1 To 40 Logval = Rnd(40) Call Bar(logval) Waitms 500 Next Logval 'Count down to create diminishing bar For Logval = 40 To 1 Step -1 Call Bar(logval) Waitms 250 Next Logval Loop End Sub Bar(logvalue As Byte) Local Lognumboxes As Byte Local Logbarremainder As Byte Local Logboxnumber As Byte Locate 1 , 1 Lognumboxes = Logvalue / 5 'calc number of boxes in bar Logbarremainder = 5 * Lognumboxes 'and determine remainder Logbarremainder = Logvalue - Logbarremainder For Logboxnumber = 1 To Lognumboxes 'number of boxes to lcd Lcd Chr(7) Next Logboxnumber Logbarremainder = 2 + Logbarremainder 'make remainder point to Lcd Chr(logbarremainder) 'correct lcd char and output char to lcd Lognumboxes = Lognumboxes + 1 'Fill remainder with spaces For Logboxnumber = Lognumboxes To Barmaxchar Lcd " " Next Logboxnumber End Sub