public .ovbgn, ovexit_
       ext ovmain_,prctyp
       dseg
ovstkpt: ds     2
saveret: ds     2
       cseg
ovbgn:
       pop     h
       pop     h
       pop     h
       pop     h
       sphl
       pop     b
;       call    prctyp  ;8080 or z80 processor?
;       jnc     ovbgn10 ;jump if 8080
       db      253,225,221,225 ;pop ix, pop iy for z80 processor
ovbgn10:
       pop     h
       shld    saveret
       pop     d
       lxi     h,ovret
       push    h
       lxi     h,0
       dad     sp
       shld    ovstkpt         ;save stack pointer for ovexit
       jmp     ovmain_

ovret:  xchg                    ;save return value
       lhld    saveret         ;get return addr
       push    h               ;place dummy overlay name ptr on stack
       push    h               ;place return addr on stack
       xchg                    ;restore return value to hl
       ret                     ;return to caller
;
ovexit_:
       lxi     h,2                     ;get return value
       dad     sp
       mov     e,m
       inx     h
       mov     d,m
       lhld    ovstkpt         ;get original stack pointer
       sphl                            ;and restore it
       xchg
       ret                                     ;return back to root
       end