Chapter 6

Macros


Introduction.................................................... 180

BIOS.INC...................................................... 180

CMACROS.INC, CMACROS.NEW................................. 180

MS-DOS.INC................................................... 183

MACROS.INC.................................................. 184

PROLOGUE.INC................................................ 185

WIN.INC...................................................... 185

 

Introduction

Each of the INCLUDE files is listed with the names of the macros it contains. Macros listed take the form:

<macroname>MACRO[[ <variables[[:=<default value>]], ..>]]

Some variables are listed as name:req. In these cases, req indicates that macroname cannot be called without the variable name supplied.

For specific information on the macros themselves, see the contents of the commented *.INC file.

BIOS.INC

@Cls MACRO pagenum

@GetCharAtr MACRO pagenum

@GetCsr MACRO pagenum

@GetMode MACRO

@PutChar MACRO chr, atrib, pagenum, loops

@PutCharAtr MACRO chr, atrib, pagenum, loops

@Scroll MACRO distance:REQ, atrib:=<07h>, upcol, uprow, dncol, dnrow

@SetColor MACRO color

@SetCsrPos MACRO column, row, pagenum

@SetCsrSize MACRO first, last

@SetMode MACRO mode

@SetPage MACRO pagenum

@SetPalette MACRO color

 

CMACROS.INC, CMACROS.NEW

These two include files contain the same macros. Use CMACROS.NEW for programs written in MASM 6.0 and later. Use CMACROS.INC for programs written in MASM 5.1 or earlier, or if you have problems with CMACROS.NEW.

@reverse MACRO list

arg MACRO args

assumes MACRO   s,ln

 

callcrt MACRO  funcname

cBegin MACRO pname

cEnd MACRO pname

cEpilog MACRO procname, flags, cbParms, cbLocals, reglist, userparms

cProc MACRO pname:REQ, attribs, autoSave

cPrologue MACRO procname, flags, cbParms, cbLocals, reglist, userparms

createSeg MACRO segName, logName, aalign, combine, class, grp

cRet MACRO

defGrp MACRO foo:vararg

errn$ MACRO l,x

errnz MACRO x

externA MACRO names:req, langtype

externB MACRO names:req, langtype

externCP MACRO n,c

externD MACRO names:req, langtype

externDP MACRO n,c

externFP MACRO names:req, langtype

externNP MACRO names:req, langtype

externP MACRO n,c

externQ MACRO names:req, langtype

externT MACRO names:req, langtype

externW MACRO names:req, langtype

farPtr MACRO n,s,o

globalB MACRO name:req, initVal:=<?>, repCount, langType

globalCP MACRO n,i,s,c

globalD MACRO name:req, initVal:=<?>, repCount, langType

globalDP MACRO n,i,s,c

globalQ MACRO name:req, initVal:=<?>, repCount, langType

globalT MACRO name:req, initVal:=<?>, repCount, langType

globalW MACRO name:req, initVal:=<?>, repCount, langType

labelB MACRO names:req,langType

labelCP MACRO n,c

 

labelD MACRO names:req,langType

labelDP MACRO n,c

labelFP MACRO names:req,langType

labelNP MACRO names:req,langType

labelP MACRO n,c

labelQ MACRO names:req,langType

labelT MACRO names:req,langType

labelW MACRO names:req,langType

lbl MACRO names:req

localB MACRO name

localCP MACRO n

localD MACRO name

localDP MACRO n

localQ MACRO name

localT MACRO name

localV MACRO name,a

localW MACRO name

logName&_assumes MACRO s

logName&_sbegin MACRO

n MACRO

outif MACRO name:req, defval:=<0>, onmsg, offmsg

parmB MACRO names:req

parmCP MACRO n

parmD MACRO names:req

parmDP MACRO n

parmQ MACRO names:req

parmR MACRO n,r,r2

parmT MACRO names:req

parmW MACRO names:req

regPtr MACRO n,s,o

save MACRO r

sBegin MACRO name:req

 

sEnd MACRO name

setDefLangType MACRO overLangType

staticB MACRO name:req, initVal:=<?>, repCount

staticCP MACRO name:req, i, s

staticD MACRO name:req, initVal:=<?>, repCount

staticDP MACRO name:req, i, s

staticI MACRO name:req, initVal:=<?>, repCount

staticQ MACRO name:req, initVal:=<?>, repCount

staticT MACRO name:req, initVal:=<?>, repCount

staticW MACRO name:req, initVal:=<?>, repCount

 

MS-DOS.INC

NPVOID  TYPEDEF NEAR PTR

FPVOID  TYPEDEF FAR PTR

FILE_INFO  STRUCT

@ChDir MACRO path:REQ, segmnt

@ChkDrv MACRO drive

@CloseFile MACRO handle:REQ

@DelFile MACRO path:REQ, segmnt

@Exit MACRO return

@FreeBlock MACRO segmnt

@GetBlock MACRO graphs:REQ, retry:=<0>

@GetChar MACRO ech:=<1>, cc:=<1>, clear:=<0>

@GetDate MACRO

@GetDir MACRO buffer:REQ, drive, segmnt

@GetDrv MACRO

@GetDTA MACRO

@GetFileSize MACRO handle:REQ

@GetFirst MACRO path:REQ, atrib, segmnt

@GetInt MACRO   interrupt:REQ

@GetNext MACRO

 

@GetStr MACRO ofset:REQ, terminator, limit, segmnt

@GetTime MACRO

@GetVer MACRO

@MakeFile MACRO path:REQ, atrib:=<0>, segmnt, kind

@MkDir MACRO path:REQ, segmnt

@ModBlock MACRO graphs:REQ, segmnt

@MoveFile MACRO old:REQ, new:REQ, segold, segnew

@MovePtrAbs MACRO handle:REQ, distance

@MovePtrRel MACRO handle:REQ, distance

@OpenFile MACRO path:REQ, access:=<0>, segmnt

@PrtChar MACRO chr:VARARG

@Read MACRO ofset:REQ, bytes:REQ, handle:=<0>, segmnt

@RmDir MACRO path:REQ, segmnt

@SetDate MACRO month:REQ, day:REQ, year:REQ

@SetDrv MACRO drive:REQ

@SetDTA MACRO buffer:REQ, segmnt

@SetInt MACRO interrupt:REQ, vector:REQ, segmnt

@SetTime MACRO hour:REQ, minutes:REQ, seconds:REQ, hundredths:REQ

@ShowChar MACRO chr:VARARG

@ShowStr MACRO ofset:REQ, segmnt

@TSR MACRO paragraphs:REQ, return

@Write MACRO ofset:REQ, bytes:REQ, handle:=<1>, segmnt

 

MACROS.INC

@ArgCount MACRO arglist:VARARG

@ArgI MACRO index:REQ, arglist:VARARG

@ArgRev MACRO arglist

@PopAll MACRO

@PushAll MACRO

@RestoreRegs MACRO

@SaveRegs MACRO regs:VARARG

echof MACRO format:REQ, args:VARARG

pushc MACRO op

 

PROLOGUE.INC

cEpilogue MACRO szProcName, flags, cbParams, cbLocals, rgRegs, rgUserParams

cPrologue MACRO szProcName, flags, cbParams, cbLocals, rgRegs, rgUserParams

 

WIN.INC

The include file WIN.INC is WINDOWS.H processed by H2INC, and slightly modified to reduce unnecessary warnings.