BCB - Batch Control Block (undocumented)

DOS 2.x thru DOS 3.2  BCB Format

     Offset Size		   Description

	00   byte	unknown
	01   word	if non-zero; segment of control block for active FOR
	03   byte	type of batch command
			    0 - normal batch command
			    1 - FOR-loop active
	04   dword	offset of next command to execute in batch file
	07   word	offset of variable %0 (batch file name)
	09  9 words	offset of %N batch file parameters, 0FFFFh indicates
			parameter is null
	1C   nbytes	null terminated path and filename of the current
			batch file immediately followed by command line
			parameters.  Each parameter %0-%9 plus a CR is
			appended and resulting string is null terminated.


DOS 3.3  BCB Format

     Offset Size		   Description

	00   byte	unknown
	01   byte	global echo switch, if exec'd by batch CALL-command
			    1 - turn ECHO ON on return to calling batch file
			    0 - turn ECHO OFF on return to calling batch file
	02   word	batch file BCD segment if executed via CALL
			    if zero; batch file was called from command line
			    if non-zero; batch file executed via CALL-command
	04   word	if non-zero; segment of control block for active FOR
	06   byte	type of batch command
			    0 - normal batch command
			    1 - FOR-loop active
	07   dword	offset of next command to execute in batch file
	0B   word	offset of variable %0 (batch file name)
	0D  9words	offset of %N batch file parameters, 0FFFFh indicates
			parameter is null
	1F  nbytes	null terminated path and filename of the current
			batch file immediately followed by command line
			parameters.  Each parameter %0-%9 plus a CR is
			appended and resulting string is null terminated.


	- BCB length is variable and depends on the size and count of the
	  parameters and fully qualified batch file name
	- the MCB for a BCB has a process Id of the transient portion of
	  the latest COMMAND.COM
	- offsets displayed are relative to the BCB segment
	- SHIFT command changes the offsets of the parameters in the table
	  at the offsets 0B0h thru 1Ch
	- BCB  of DOS 3.3 is the  same as earlier versions except 3 bytes
	  were added after offset 0
	- to find a BCB, locate the first block in the MCB chain belonging
	  to COMMAND.COM (the second allocated block always belongs to
	  COMMAND.COM).  Then scan the MCB chain for a 64 byte block with
	  the same owner ID as COMMAND.COM).  This will be the BCB.