What is so difficult about it ?
Dunno. Something is, because your code below is bogus. :-)
move.l GadToolsBase,A6
lea.l glist,A0
jsr LVOCreateContext(A6)
move.l D0,gadget
...
dc.l glist ; the gadget list given to OpenWindow()
You mean:
glist: dc.l 0
dc.l gadget ; the gadget pointer given to and returned by CreateGadget()
You mean:
gadget: dc.l 0