Files
cstrike15_src/public/wintab/wintabx/xlibproc.inc
nephacks f12416cffd initial
2025-06-04 03:22:50 +02:00

77 lines
1.2 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PROC_TEMPLATE MACRO procname, retpop, mod, internal, ord
.errb <retpop> ;; require non-blank
include cmacros.inc
include xlib.inc
externFP __&mod&dynlink
sBegin Data
Data&procname PROCD_STRUC <LinkProc&procname>
sEnd Data
sBegin Code
assumes cs,Code
assumes ds,Data
;; the data structure
Ptr&procname label word
.errnz pcData-($-Ptr&procname)
dw DataOFFSET Data&procname
IF UNLINK
.errnz pcLinkProc-($-Ptr&procname)
dw CodeOFFSET LinkProc&procname
ENDIF
.errnz pcRetF-($-Ptr&procname)
bogus proc far
IF retpop
retf retpop*2
ELSE
retf
dw 0
ENDIF
bogus endp
.errnz pcStr-($-Ptr&procname)
IFNB <ord>
db 0
dw ord, 0
ELSE
db "&procname&",0
ENDIF
;; the dynlinking stub proc
LinkProc&procname proc far
lea bx, Ptr&procname
jmp __&mod&dynlink
LinkProc&procname endp
;; the glue routine
IFNB <internal>
IFDIF <internal>,<->
internal proc far
public internal
jmp Data&procname.pdPtr
internal endp
ELSE
procname proc far
public procname
jmp Data&procname.pdPtr
procname endp
ENDIF
ELSE
procname proc far
public procname
jmp Data&procname.pdPtr
procname endp
ENDIF
sEnd Code
end
ENDM