#PUSH !g Register_Object !1_cd Object !1 is a CD_Client Function Popup_Handle Returns Handle Handle hoID Get Created_Object_Id to hoId If (hoId=0) Begin #SET G$ !a Gosub !1_Sub!g Move (!1_cd(Self)) to hoId Set Created_Object_id to hoID End Function_Return hoID End_Function End_Object [Found ~Found] Begin !1_Sub!g: // we want to pop G$ but the Begin has pushed R$ on to the stack. Therefore we must pop // R$, then G$ and put R$ back up there #POP R$ #POP G$ #PUSH !r Object !1_cd !2 !3 !4 !5 !6 !7 !8 !9