95 lines
2.0 KiB
Plaintext
95 lines
2.0 KiB
Plaintext
|
; Turbo Pascal 5.5 object-oriented example
|
|||
|
; Assembler include file for OBJECTS.PAS unit
|
|||
|
; Copyright (c) 1989 by Borland International, Inc.
|
|||
|
|
|||
|
; *******************************************************
|
|||
|
; * *
|
|||
|
; * EQUATES AND MACROS *
|
|||
|
; * *
|
|||
|
; *******************************************************
|
|||
|
|
|||
|
LOCALS @@
|
|||
|
|
|||
|
; Object definition macro
|
|||
|
|
|||
|
OBJECT MACRO Name,Parent
|
|||
|
FIELD MACRO FName,FType,FCount
|
|||
|
&Name&@&&FName EQU (FType PTR &Name&@)
|
|||
|
&Name&@ = &Name&@ + FType * FCount
|
|||
|
ENDM
|
|||
|
METHOD MACRO MName
|
|||
|
IFE &Name&$
|
|||
|
&Name&@VMT EQU (WORD PTR &Name&@)
|
|||
|
&Name&@ = &Name&@ + WORD
|
|||
|
&Name&$ = 4
|
|||
|
ENDIF
|
|||
|
&Name&$&&MName EQU (DWORD PTR &Name&$)
|
|||
|
&Name&$ = &Name&$ + DWORD
|
|||
|
ENDM
|
|||
|
IFNB <Parent>
|
|||
|
&Name&@ = &Parent&@
|
|||
|
&Name&$ = &Parent&$
|
|||
|
ELSE
|
|||
|
&Name&@ = 0
|
|||
|
&Name&$ = 0
|
|||
|
ENDIF
|
|||
|
ENDM
|
|||
|
|
|||
|
; 4-Byte record
|
|||
|
|
|||
|
ByteRec STRUC
|
|||
|
b0 DB ?
|
|||
|
b1 DB ?
|
|||
|
b2 DB ?
|
|||
|
b3 DB ?
|
|||
|
ByteRec ENDS
|
|||
|
|
|||
|
; 4-Word record
|
|||
|
|
|||
|
WordRec STRUC
|
|||
|
w0 DW ?
|
|||
|
w2 DW ?
|
|||
|
w4 DW ?
|
|||
|
w6 DW ?
|
|||
|
WordRec ENDS
|
|||
|
|
|||
|
; Base object type
|
|||
|
|
|||
|
OBJECT Base
|
|||
|
METHOD Done
|
|||
|
|
|||
|
; SProc object type
|
|||
|
|
|||
|
OBJECT SProc
|
|||
|
FIELD StoreProc,DWORD,1
|
|||
|
FIELD LoadProc,DWORD,1
|
|||
|
|
|||
|
; Stream object type
|
|||
|
|
|||
|
OBJECT Stream,Base
|
|||
|
FIELD TypeCount,WORD,1
|
|||
|
FIELD TypeList,DWORD,1
|
|||
|
FIELD ProcList,DWORD,1
|
|||
|
FIELD Status,WORD,1
|
|||
|
METHOD Error
|
|||
|
METHOD Flush
|
|||
|
METHOD GetPos
|
|||
|
METHOD Read
|
|||
|
METHOD RegisterTypes
|
|||
|
METHOD SetPos
|
|||
|
METHOD Truncate
|
|||
|
METHOD Write
|
|||
|
|
|||
|
; DosStream object type
|
|||
|
|
|||
|
OBJECT DosStream,Stream
|
|||
|
FIELD Handle,WORD,1
|
|||
|
|
|||
|
; BufStream object type
|
|||
|
|
|||
|
OBJECT BufStream,DosStream
|
|||
|
FIELD Buffer,DWORD,1
|
|||
|
FIELD BufSize,WORD,1
|
|||
|
FIELD BufPtr,WORD,1
|
|||
|
FIELD BufEnd,WORD,1
|
|||
|
|