home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / emacs / src / ovbgn.asm < prev    next >
Encoding:
Assembly Source File  |  1994-07-07  |  896 b   |  46 lines

  1.     public .ovbgn, ovexit_
  2.     ext ovmain_,prctyp
  3.     dseg
  4. ovstkpt: ds    2
  5. saveret: ds    2
  6.     cseg
  7. .ovbgn:
  8.     pop    h
  9.     pop    h
  10.     pop    h
  11.     pop    h
  12.     sphl
  13.     pop    b
  14. ;    call    prctyp    ;8080 or z80 processor?
  15. ;    jnc    ovbgn10    ;jump if 8080
  16.     db    253,225,221,225    ;pop ix, pop iy for z80 processor
  17. ovbgn10:
  18.     pop    h
  19.     shld    saveret
  20.     pop    d
  21.     lxi    h,ovret
  22.     push    h
  23.     lxi    h,0
  24.     dad    sp
  25.     shld    ovstkpt        ;save stack pointer for ovexit
  26.     jmp    ovmain_
  27.  
  28. ovret:    xchg            ;save return value
  29.     lhld    saveret        ;get return addr
  30.     push    h        ;place dummy overlay name ptr on stack
  31.     push    h        ;place return addr on stack
  32.     xchg            ;restore return value to hl
  33.     ret            ;return to caller
  34. ;
  35. ovexit_:
  36.     lxi    h,2            ;get return value
  37.     dad    sp
  38.     mov    e,m
  39.     inx    h
  40.     mov    d,m
  41.     lhld    ovstkpt        ;get original stack pointer
  42.     sphl                ;and restore it
  43.     xchg
  44.     ret                    ;return back to root
  45.     end
  46.