An Example of Declaring a Communal Variable of a Record Type

ID Number: Q39235

5.00 5.10 5.10a 6.00 6.00a 6.00b| 5.10 5.10a 6.00 6.00a 6.00b

MS-DOS | OS/2

Summary:

In order to declare a communal variable of a record type, declare the

variable whose size matches the size of the record type. There is no

need to specify that the variable is of the record type.

More Information:

The following sample program demonstrates this information:

Sample Code

-----------

;Assemble options needed: none

; module 1

.model small

DOSSEG

EXTRN proc2:proc

.stack 100h

.data

color RECORD blink:1, back:3, intense:1, fore:3

COMM near pixel:byte ; use "byte" because

; color has size byte.

.code

start: MOV ax, @data

MOV ds, ax

MOV pixel, color <1,2,1,3> ; now the variable pixel

; should contain abh (1 010 1 011)

CALL proc2

MOV ax, 4c00h

INT 21h

END start

******************************

; module 2

.model small

DOSSEG

.stack 100h

.data

color RECORD blink:1, back:3, intense:1, fore:3

COMM near pixel:byte

.code

PUBLIC proc2

proc2 PROC

MOV ah, 0

MOV ah, pixel ; ah should contain abh (1 010 1 011)

RET

proc2 ENDP

END