285 lines
5.4 KiB
PHP
285 lines
5.4 KiB
PHP
.xlist
|
|||
|
|
; Include file - EPOCLIB.INC
|
||
|
|
; Epoc/Os plib standard include file.
|
||
|
|
; Copyright (c) Psion PLC 1989-90.
|
||
|
|
;
|
||
|
|
; VER DATE BY DESCRIPTION
|
||
|
|
; ----- -------- ---- -----------
|
||
|
|
; 2.00F 30/09/90 NSM Final release
|
||
|
|
;
|
||
|
|
EPOCLIB_INC equ 1
|
||
|
|
;
|
||
|
|
_TANDW = 0
|
||
|
|
ifdef LATTICE
|
||
|
|
CodeSeg macro
|
||
|
|
pgroup group prog
|
||
|
|
PGROUP equ <pgroup>
|
||
|
|
prog segment byte public 'prog'
|
||
|
|
assume cs:pgroup
|
||
|
|
endm
|
||
|
|
EndCodeSeg macro
|
||
|
|
prog ends
|
||
|
|
endm
|
||
|
|
DataSeg macro
|
||
|
|
dgroup group data,udata
|
||
|
|
DGROUP equ <dgroup>
|
||
|
|
data segment word public 'data'
|
||
|
|
assume ds:dgroup,es:dgroup,ss:dgroup
|
||
|
|
endm
|
||
|
|
EndDataSeg macro
|
||
|
|
data ends
|
||
|
|
endm
|
||
|
|
UDataSeg macro
|
||
|
|
udata segment word public 'data'
|
||
|
|
endm
|
||
|
|
EndUDataSeg macro
|
||
|
|
udata ends
|
||
|
|
endm
|
||
|
|
GLREF_D MACRO NAME,TYPE
|
||
|
|
EXTRN NAME:TYPE
|
||
|
|
ENDM
|
||
|
|
GLDEF_D MACRO NAME,TYPE
|
||
|
|
PUBLIC NAME
|
||
|
|
NAME label TYPE
|
||
|
|
ENDM
|
||
|
|
GLREF_C MACRO NAME
|
||
|
|
EXTRN NAME:NEAR
|
||
|
|
ENDM
|
||
|
|
endif
|
||
|
|
;
|
||
|
|
ifdef TURBOC
|
||
|
|
_TANDW = 1
|
||
|
|
CodeSeg macro
|
||
|
|
PGROUP group _TEXT
|
||
|
|
pgroup equ <PGROUP>
|
||
|
|
_TEXT segment byte public 'CODE'
|
||
|
|
assume cs:PGROUP
|
||
|
|
endm
|
||
|
|
EndCodeSeg macro
|
||
|
|
_TEXT ends
|
||
|
|
endm
|
||
|
|
DataSeg macro
|
||
|
|
DGROUP group _DATA,_BSS
|
||
|
|
dgroup equ <DGROUP>
|
||
|
|
_DATA segment word public 'DATA'
|
||
|
|
assume ds:DGROUP,es:DGROUP,ss:DGROUP
|
||
|
|
endm
|
||
|
|
EndDataSeg macro
|
||
|
|
_DATA ends
|
||
|
|
endm
|
||
|
|
UDataSeg macro
|
||
|
|
_BSS segment word public 'BSS'
|
||
|
|
endm
|
||
|
|
EndUDataSeg macro
|
||
|
|
_BSS ends
|
||
|
|
endm
|
||
|
|
GLREF_D MACRO NAME,TYPE
|
||
|
|
EXTRN _&NAME:TYPE
|
||
|
|
NAME EQU _&NAME
|
||
|
|
ENDM
|
||
|
|
GLDEF_D MACRO NAME,TYPE
|
||
|
|
PUBLIC _&NAME
|
||
|
|
_&NAME label TYPE
|
||
|
|
NAME EQU _&NAME
|
||
|
|
ENDM
|
||
|
|
GLREF_C MACRO NAME
|
||
|
|
EXTRN _&NAME:NEAR
|
||
|
|
NAME EQU _&NAME
|
||
|
|
ENDM
|
||
|
|
endif
|
||
|
|
ifdef WATCOMC
|
||
|
|
REG_PARAM equ 1
|
||
|
|
ifdef _MSC
|
||
|
|
_TANDW = 1
|
||
|
|
endif
|
||
|
|
CodeSeg macro
|
||
|
|
PGROUP group _TEXT
|
||
|
|
pgroup equ <PGROUP>
|
||
|
|
_TEXT segment byte public 'CODE'
|
||
|
|
assume cs:PGROUP
|
||
|
|
endm
|
||
|
|
EndCodeSeg macro
|
||
|
|
_TEXT ends
|
||
|
|
endm
|
||
|
|
DataSeg macro
|
||
|
|
DGROUP group _DATA,_BSS
|
||
|
|
dgroup equ <DGROUP>
|
||
|
|
_DATA segment word public 'DATA'
|
||
|
|
assume ds:DGROUP,es:DGROUP,ss:DGROUP
|
||
|
|
endm
|
||
|
|
EndDataSeg macro
|
||
|
|
_DATA ends
|
||
|
|
endm
|
||
|
|
UDataSeg macro
|
||
|
|
_BSS segment word public 'BSS'
|
||
|
|
endm
|
||
|
|
EndUDataSeg macro
|
||
|
|
_BSS ends
|
||
|
|
endm
|
||
|
|
GLREF_D MACRO NAME,TYPE
|
||
|
|
EXTRN NAME&_:TYPE
|
||
|
|
NAME EQU NAME&_
|
||
|
|
ENDM
|
||
|
|
GLDEF_D MACRO NAME,TYPE
|
||
|
|
PUBLIC NAME&_
|
||
|
|
NAME&_ label TYPE
|
||
|
|
NAME EQU NAME&_
|
||
|
|
ENDM
|
||
|
|
GLREF_C MACRO NAME
|
||
|
|
EXTRN NAME&_:NEAR
|
||
|
|
NAME EQU NAME&_
|
||
|
|
ENDM
|
||
|
|
endif
|
||
|
|
ifdef JPIC
|
||
|
|
REG_PARAM equ 1
|
||
|
|
ifdef _MSC
|
||
|
|
_TANDW = 1
|
||
|
|
endif
|
||
|
|
CodeSeg macro
|
||
|
|
_TEXT segment byte public 'CODE'
|
||
|
|
assume cs:_TEXT
|
||
|
|
endm
|
||
|
|
EndCodeSeg macro
|
||
|
|
_TEXT ends
|
||
|
|
endm
|
||
|
|
DataSeg macro
|
||
|
|
DGROUP group _DATA,_BSS
|
||
|
|
dgroup equ <DGROUP>
|
||
|
|
_DATA segment word public 'DATA'
|
||
|
|
assume ds:DGROUP,es:DGROUP,ss:DGROUP
|
||
|
|
endm
|
||
|
|
EndDataSeg macro
|
||
|
|
_DATA ends
|
||
|
|
endm
|
||
|
|
UDataSeg macro
|
||
|
|
_BSS segment word public 'BSS'
|
||
|
|
endm
|
||
|
|
EndUDataSeg macro
|
||
|
|
_BSS ends
|
||
|
|
endm
|
||
|
|
GLREF_D MACRO NAME,TYPE
|
||
|
|
EXTRN _&NAME:TYPE
|
||
|
|
NAME EQU _&NAME
|
||
|
|
ENDM
|
||
|
|
GLDEF_D MACRO NAME,TYPE
|
||
|
|
PUBLIC _&NAME
|
||
|
|
_&NAME label TYPE
|
||
|
|
NAME EQU _&NAME
|
||
|
|
ENDM
|
||
|
|
GLREF_C MACRO NAME
|
||
|
|
EXTRN _&NAME:NEAR
|
||
|
|
NAME EQU _&NAME
|
||
|
|
ENDM
|
||
|
|
endif
|
||
|
|
;
|
||
|
|
LOCAL_D MACRO NAME,TYPE
|
||
|
|
NAME label TYPE
|
||
|
|
ENDM
|
||
|
|
;
|
||
|
|
ProcBegin macro _Name,_Type,_Registers
|
||
|
|
ifdef TURBOC
|
||
|
|
ProcBeginBody _&_Name,_Type,_Registers
|
||
|
|
endif
|
||
|
|
ifdef JPIC
|
||
|
|
ProcBeginBody _&_Name,_Type,_Registers
|
||
|
|
endif
|
||
|
|
ifdef WATCOMC
|
||
|
|
ProcBeginBody _Name&_,_Type,_Registers
|
||
|
|
_Name EQU _Name&_
|
||
|
|
endif
|
||
|
|
ifdef LATTICE
|
||
|
|
ProcBeginBody _Name,_Type,_Registers
|
||
|
|
endif
|
||
|
|
endm
|
||
|
|
ProcBegin@ macro _Name,_Type,_Registers
|
||
|
|
ProcBeginBody _Name,_Type,_Registers
|
||
|
|
endm
|
||
|
|
ProcBeginBody macro _Name,_Type,_Registers
|
||
|
|
_DI = 0
|
||
|
|
_SI = 0
|
||
|
|
if _TANDW
|
||
|
|
ifnb <_Registers>
|
||
|
|
irpc _flags,_Registers
|
||
|
|
ifidni <_flags>,<D>
|
||
|
|
_DI = 1
|
||
|
|
endif
|
||
|
|
ifidni <_flags>,<S>
|
||
|
|
_SI = 1
|
||
|
|
endif
|
||
|
|
endm
|
||
|
|
endif
|
||
|
|
endif
|
||
|
|
;
|
||
|
|
ProcEnd macro _flag
|
||
|
|
ifb <_flag>
|
||
|
|
if _DI
|
||
|
|
pop di
|
||
|
|
endif
|
||
|
|
if _SI
|
||
|
|
pop si
|
||
|
|
endif
|
||
|
|
if _TANDW
|
||
|
|
ifidni <_Type>,<bp>
|
||
|
|
pop bp
|
||
|
|
endif
|
||
|
|
endif
|
||
|
|
ifdef LATTICE
|
||
|
|
ifidni <_Type>,<bp>
|
||
|
|
pop bp
|
||
|
|
endif
|
||
|
|
endif
|
||
|
|
ret
|
||
|
|
endif
|
||
|
|
&_Name endp
|
||
|
|
endm
|
||
|
|
;
|
||
|
|
public _Name
|
||
|
|
ifidni <_Type>,<far>
|
||
|
|
_Name proc far
|
||
|
|
else
|
||
|
|
_Name proc near
|
||
|
|
endif
|
||
|
|
ifidni <_Type>,<bp>
|
||
|
|
if _TANDW
|
||
|
|
push bp
|
||
|
|
mov bp, sp
|
||
|
|
endif
|
||
|
|
ifdef LATTICE
|
||
|
|
push bp
|
||
|
|
mov bp, sp
|
||
|
|
endif
|
||
|
|
Arg1 equ <[bp+4]>
|
||
|
|
Arg2 equ <[bp+6]>
|
||
|
|
Arg3 equ <[bp+8]>
|
||
|
|
Arg4 equ <[bp+10]>
|
||
|
|
Arg5 equ <[bp+12]>
|
||
|
|
Arg6 equ <[bp+14]>
|
||
|
|
Arg7 equ <[bp+16]>
|
||
|
|
Arg8 equ <[bp+18]>
|
||
|
|
endif
|
||
|
|
ifidni <_Type>,<bx>
|
||
|
|
if _TANDW
|
||
|
|
mov bx, sp
|
||
|
|
endif
|
||
|
|
ifdef LATTICE
|
||
|
|
mov bx, sp
|
||
|
|
endif
|
||
|
|
Arg1 equ <[bx+2]>
|
||
|
|
Arg2 equ <[bx+4]>
|
||
|
|
Arg3 equ <[bx+6]>
|
||
|
|
Arg4 equ <[bx+8]>
|
||
|
|
Arg5 equ <[bx+10]>
|
||
|
|
Arg6 equ <[bx+12]>
|
||
|
|
Arg7 equ <[bx+14]>
|
||
|
|
Arg8 equ <[bx+16]>
|
||
|
|
endif
|
||
|
|
if _SI
|
||
|
|
push si
|
||
|
|
endif
|
||
|
|
if _DI
|
||
|
|
push di
|
||
|
|
endif
|
||
|
|
endm
|
||
|
|
;
|
||
|
|
.list
|