Re: Just a collection of sub-programs
MSX Basic had ON A GO(SUB|TO) 100,200,300
Only gotcha of course was that the values of A were always 0,1,2 (could have been 1,2,3 - can't remember) for the example above. To get something like drawing program tool bar to work you needed to divide cursor coordinates so that values would fit. Cascading if to check if coordinates were within first button do this elseif coordinates were within second button etc was too slow.
Of course, it was Microsoft there, what did you expect ? Flood fill was especially slow and entertaining to watch. Especially when you left 1 pixel gap somewhere.