home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / turbo55 / tp55 / objects.inc < prev    next >
Text File  |  1989-05-02  |  2KB  |  95 lines

  1. ; Turbo Pascal 5.5 object-oriented example
  2. ; Assembler include file for OBJECTS.PAS unit
  3. ; Copyright (c) 1989 by Borland International, Inc.
  4.  
  5. ; *******************************************************
  6. ; *                                                     *
  7. ; *     EQUATES AND MACROS                              *
  8. ; *                                                     *
  9. ; *******************************************************
  10.  
  11.         LOCALS  @@
  12.  
  13. ; Object definition macro
  14.  
  15. OBJECT MACRO Name,Parent
  16.   FIELD MACRO FName,FType,FCount
  17.     &Name&@&&FName EQU (FType PTR &Name&@)
  18.     &Name&@ = &Name&@ + FType * FCount
  19.   ENDM
  20.   METHOD MACRO MName
  21.     IFE &Name&$
  22.       &Name&@VMT EQU (WORD PTR &Name&@)
  23.       &Name&@ = &Name&@ + WORD
  24.       &Name&$ = 4
  25.     ENDIF
  26.     &Name&$&&MName EQU (DWORD PTR &Name&$)
  27.     &Name&$ = &Name&$ + DWORD
  28.   ENDM
  29.   IFNB <Parent>
  30.     &Name&@ = &Parent&@
  31.     &Name&$ = &Parent&$
  32.   ELSE
  33.     &Name&@ = 0
  34.     &Name&$ = 0
  35.   ENDIF
  36. ENDM
  37.  
  38. ; 4-Byte record
  39.  
  40. ByteRec         STRUC
  41. b0              DB      ?
  42. b1              DB      ?
  43. b2              DB      ?
  44. b3              DB      ?
  45. ByteRec         ENDS
  46.  
  47. ; 4-Word record
  48.  
  49. WordRec         STRUC
  50. w0              DW      ?
  51. w2              DW      ?
  52. w4              DW      ?
  53. w6              DW      ?
  54. WordRec         ENDS
  55.  
  56. ; Base object type
  57.  
  58. OBJECT Base
  59.   METHOD Done
  60.  
  61. ; SProc object type
  62.  
  63. OBJECT SProc
  64.   FIELD StoreProc,DWORD,1
  65.   FIELD LoadProc,DWORD,1
  66.  
  67. ; Stream object type
  68.  
  69. OBJECT Stream,Base
  70.   FIELD TypeCount,WORD,1
  71.   FIELD TypeList,DWORD,1
  72.   FIELD ProcList,DWORD,1
  73.   FIELD Status,WORD,1
  74.   METHOD Error
  75.   METHOD Flush
  76.   METHOD GetPos
  77.   METHOD Read
  78.   METHOD RegisterTypes
  79.   METHOD SetPos
  80.   METHOD Truncate
  81.   METHOD Write
  82.  
  83. ; DosStream object type
  84.  
  85. OBJECT DosStream,Stream
  86.   FIELD Handle,WORD,1
  87.  
  88. ; BufStream object type
  89.  
  90. OBJECT BufStream,DosStream
  91.   FIELD Buffer,DWORD,1
  92.   FIELD BufSize,WORD,1
  93.   FIELD BufPtr,WORD,1
  94.   FIELD BufEnd,WORD,1
  95.