Here is a slightly friendlier input macro. Instead of asking for a cell size, it asks for a corridor width, which it adds to the wall thickness to get the cell size. I've set minimum corridor width at 2', which is slightly larger than the minimum crawlway width of 22" recommended by Architectural Graphic Standards.
Code:
MACRO MZ_INVARS
:MZI_CorrWid
gv vCorrWid 4
gv vCorrWid ^DEnter width of maze corridor (min. 2') [4]:
ifp vCorrWid-2 MZI_Wall
ifz vCorrWid-2 MZI_Wall
askbox Invalid Corridor Width
The maze corridor width entered
must be a minimum of two feet. Do
you want to re-enter it?

iferr MZI_Exit
goto MZI_CorrWid
:MZI_Wall
gv vMazeWall 1
gv vMazeWall ^DEnter thickness of the maze wall [1]:
ifp vMazeWall MZI_Border
askbox Invalid Maze Wall Thickness
The maze wall thickness must
be greater than zero. Do
you want to re-enter it?

iferr MZI_Exit
goto MZI_Wall
:MZI_Border
gv vCellSize vCorrWid+vMazeWall
gp pMzCorner ^DSelect the lower left corner of the maze:
iferr MZI_Exit
sset WALLS
lwidth vMazeWall
agrid pMzCorner
gridv vCellSize
snapv 1
snapon
csnapon
box pMzCorner ^DSelect the upper right corner of the maze:
iferr MZI_Exit
gp pNxtPt @0,0
getx xMazeL pMzCorner
getx xMazeH pNxtPt
ifp xMazeH-xMazeL MZI_Width
getx xMazeL pNxtPt
getx xMazeH pMzCorner
:MZI_Width
gn nMazeWd (xMazeH-xMazeL)/vCellSize
ifp nMazeWd-1 MZI_CheckHt
askbox Invalid Maze Width
The maze must be greater
than one cell wide. Do
you want to redraw it?

iferr MZI_Exit
undo
goto MZI_Border
:MZI_CheckHt
gety yMazeL pMzCorner
gety yMazeH pNxtPt
ifp yMazeH-yMazeL MZI_Height
gety yMazeL pNxtPt
gety yMazeH pMzCorner
:MZI_Height
gn nMazeHt (yMazeH-yMazeL)/vCellSize
ifp nMazeHt-1 MZI_Finish
askbox Invalid Maze Height
The maze must be greater
than one cell high. Do
you want to redraw it?

iferr MZI_Exit
goto MZI_Border
:MZI_Finish
gn nUnvisited (nMazeWd-1)*(nMazeHt-1)
exitm
:MZI_Exit
exitam
ENDM
--

Dalton "who hopes this makes using the macro easier." Spence