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