[comp.sys.atari.st] Improved Menu Control Again

franco@iuvax.cs.indiana.edu (01/09/88)

Here is an improved version of the program for improved menu control
that was posted about a week ago.  Also included is the source (generous
comments).

---------------------------cut here--------------------------

begin 644 mac.arc
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
E-Q`H.O4IWC15<(456MA:K*BBD**%&<<J`P"C+#I:275B!P$:`/`1
`
end