home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
sigm
/
vol200
/
z3lib3.hqp
/
Z3LIB3.HLP
Wrap
Text File
|
1985-02-09
|
20KB
|
657 lines
Introduction ZCPR3 Messages
Command Status Message GETCST/PUTCST/QERROR/QSHELL
Erro≥ Flaτ anΣ Erro≥ CommanΣ ERRADR/GETER1/PUTER1/GETERC/PUTERC
Inter-Transient Error Code GETER2/PUTER2
Register Access GETREG/PUTREG
ZEX Status and Control GETZEX/PUTZEX/STOPZEX/STRTZEX
:Introduction to ZCPR3 Messages
ZCPR│ offer≤ man∙ feature≤ no⌠ founΣ unde≥ CP/M¼ ZCPR1¼ ì
o≥ ZCPR2«á Onσ sucΦ very¼á ver∙ specia∞ featurσ i≤ tha⌠á oµ ì
ZCPR│ CommanΣ Processo≥ Messages.
ZCPR│á support≤á thσá abilit∙ t∩ havσ ßá ZCPR│á Messagσ ì
Buffe≥á whicΦá contain≤ ß numbe≥ oµ message≤á whicΦá caεá bσ ì
passeΣá froφá onσá transien⌠ prograφ t∩ anothe≥á o≥á betweeε ì
ZCPR│á itselµá anΣ al∞ transien⌠ program≤á whicΦá ruεá unde≥ ì
ZCPR3«á Command≤á caεá bσ giveε directl∙ t∩á ZCPR3¼á statu≤ ì
informatioε caε bσ passeΣ froφ ZCPR│ t∩ thσ transients¼á anΣ ì
botΦ statu≤ anΣ command≤ caε bσ passeΣ froφ onσ transien⌠ t∩ ì
anothe≥ througΦ thesσ messages.
These message can be divided into six basic classes:
. messages which command ZCPR3
. status messages sent by ZCPR3
. ZEX command messages
. status and command messages sent by one program
to another which are ignored by ZCPR3
. user-defined messages
. reserved messages
Beforσá usinτ an∙ oµ thσ Z3LI┬ routine≤ t∩ acces≤ thesσ ì
messages¼á thσ prograφ shoulΣ checδ t∩ ensurσ tha⌠ thσ ZCPR│ ì
Messagσ Buffe≥ i≤ availablσ t∩ it«á Thi≤ caε bσ easil∙ donσ ì
b∙á callinτ thσ GETMS╟ routinσ (seσ thσ seconΣ oε thσá ZCPR│ ì
environment)«á GETMS╟ return≤ witΦ Zer∩ Flaτ Se⌠ (Z⌐ iµá n∩ ì
ZCPR3 Message Buffer exists. Hence:
ext getmsg ;reference
...
call getmsg ;get message buffer status
jz noZ3msgs ;no messages to read
...
Thσáá followinτáá screen≤á summarizσáá thσáá facilitie≤ ì
availablσ througΦ thσ ZCPR│ Messagσ Buffer.
Messages which Command ZCPR3
-------- ----- ------- -----
Somσá oµá thσ message≤ iε thσ ZCPR│ Messagσ Buffe≥á arσ ì
se⌠á b∙ externa∞ program≤ (transient≤ o≥á commanΣá packages⌐ ì
and are read and interpreted by ZCPR3. These messages are:
. current IF level and active (T/F) status of
all IF levels
. whether an error handler is available and what
the command line to invoke it is
Status Messages Sent by ZCPR3
------ -------- ---- -- -----
Somσá oµá thσ message≤ iε thσ ZCPR│ Messagσ Buffe≥á arσ ì
se⌠á onl∙ b∙ ZCPR│ o≥ ß ZCPR│ Shel∞ anΣ arσ intendeΣá t∩á bσ ì
useΣ a≤ R/╧ message≤ b∙ transients« Thesσ message≤ are:
. ZCPR3 Command Status
- the transient loaded is/is not a shell
- the transient loaded is/is not an error
handler
. Error Address
- iµ thσ transien⌠ loadeΣ i≤ aε erro≥
handler, this is the address of the
firs⌠ characte≥ oµ thσ commanΣ linσ
which was in error
ZEX Command Messages
--- ------- --------
Onσ messagσ iε thσ ZCPR│ Messagσ Buffer≤ i≤ intendeΣ t∩ ì
directl∙ senΣ command≤ t∩ thσ ZE╪ memory-baseΣ commanΣá filσ ì
processor«á Thi≤á messagσá bytσ tell≤ ZE╪á threσá differen⌠ ì
things:
. to run normally - ZEX is to intercept the
Input calls and provide characters in place
of console input
. ZCPR3 is prompting - ZEX is providing input
directly to the Command Processor ZCPR3
. suspend intercept - ZEX is to stop intercepting
console input and to allow input from the
console until normal execution or the ZCPR3
prompt message appears
Messages Ignored by ZCPR3
-------- ------- -- -----
Tw∩á pre-defineΣá message≤ arσ ignoreΣ b∙á ZCPR3«á Thσ ì
firs⌠ messagσ i≤ thσ Prograφ Erro≥ Code«á Thi≤ bytσ caεá bσ ì
se⌠á b∙ an∙ prograφ unde≥ ZCPR│ t∩ indicatσ ß returεá statu≤ ì
t∩á thσ nex⌠ program«á Thσ conventioε ha≤ beeε adopteΣ tha⌠ ì
iµ thi≤ bytσ i≤ 0¼á theε thσ prograφ completeΣ successfully« ì
Iµá i⌠á i≤ non-zero¼á thσ prograφ faileΣ fo≥ onσá reasoεá o≥ ì
anothe≥ anΣ thσ valuσ oµ thi≤ codσ indicate≤ tha⌠ reasoεá t∩ ì
ß followinτ program.
Thσ seconΣ messagσ i≤ thσ registe≥ buffer«á Teε 1-bytσ ì
register≤á arσá availablσá anΣá caε bσ testeΣá b∙á thσá flo≈ ì
commanΣ package«á Condition≤ likσ "I╞ ░ 5ó (I╞ Registe≥ ░ ╜ ì
5⌐á caεá bσá testeΣ fo≥ anΣ processeΣ b∙á thσá flo≈á commanΣ ì
package¼á anΣ othe≥ programs¼á eithe≥ transient≤ o≥ residen⌠ ì
command packages, can manipulate these register values.
User-Defined Messages
------------ --------
┴ se⌠ oµ 1╢ message≤ arσ availablσ fo≥ use≥ definition« ì
EacΦá messagσ i≤ onσ bytσ long¼á anΣ routine≤ iεá Z3LI┬á arσ ì
provided to place values into these messages and query them.
Reserved Messages
-------- --------
┴á se⌠á oµ 1╢ one-bytσ message≤ i≤ reserveΣ fo≥á futurσ ì
usσá iεá thσá ZCPR│á systeφá anΣá shoulΣá no⌠á bσá useΣáá b∙ ì
application≤ programmers«á Z3LI┬ doe≤ no⌠ providσ acces≤ t∩ ì
these messages.
:Command Status Message GETCST/PUTCST/QERROR/QSHELL
Thesσáá message≤á returεá thσá statu≤á oµá thσá curren⌠ ì
transien⌠ a≤ se⌠ b∙ ZCPR3«á An∙ transien⌠ ha≤ beeεá invokeΣ ì
in one of three possible states:
. as a "normal" transient, executed at the
request of the user or another program
. as a "shell", invoked by ZCPR3 itself
. as an "error handler", invoked by ZCPR3 itself
when it cannot process the current command
line (cannot find a matching COM file or
CMDRUN facility)
Z3LIB Routine: GETCST
Function:
Returε thσ ZCPR│ CommanΣ Statu≤ Message«á Thi≤ messagσ ì
is one byte long and can have one of three values:
0 - this is a "normal" transient
1 - this is a "shell"
2 - this is an "error handler"
Thi≤ messagσ i≤ alway≤ se⌠ b∙ ZCPR│ anΣ no⌠ intendeΣ t∩ ì
be set by any program.
Inputs: None
Outputs: A = message code (Zero Flag set accordingly)
Registers Affected: PSW
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: PUTCST
Function:
Se⌠ thσ ZCPR│ CommanΣ Statu≤ Message«á Thi≤ messagσ i≤ ì
onσ bytσ lonτ anΣ caε havσ onσ oµ threσ values:
0 - this is a "normal" transient
1 - this is a "shell"
2 - this is an "error handler"
Thi≤ messagσ i≤ alway≤ se⌠ b∙ ZCPR│ anΣ no⌠ intendeΣ t∩ ì
bσ se⌠ b∙ an∙ program¼á witΦ thσ exceptioε oµ ß ZCPR│ Shell« ì
PUTCS╘ i≤ provideΣ t∩ allo≈ ß ZCPR│ Shel∞ eas∙ acces≤ t∩ se⌠ ì
this message byte.
Inputs: A = ZCPR3 Command Status Message value (0, 1, or 2)
Outputs: None
Registers Affected: None
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: QERROR
Function:
Tes⌠á t∩á seσá iµá thσá ZCPR│á CommanΣá Statu≤á Messagσ ì
indicate≤á tha⌠á thσ curren⌠ transien⌠ i≤ aε erro≥á handler« ì
Thσ ZCPR│ CommanΣ Statu≤ Messagσ i≤ reaΣ anΣ testeΣá agains⌠ ì
thσá Erro≥á Handle≥á codσ value«á Zer∩ Flaτ i≤ Se⌠á iµá thσ ì
current transient is an Error Handler«
Inputs: None
Outputs: A = message code
Zero Flag is Set if transient is an Error Handler
Registers Affected: PSW
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: QSHELL
Function:
Tes⌠á t∩á seσá iµá thσá ZCPR│á CommanΣá Statu≤á Messagσ ì
indicate≤ tha⌠ thσ curren⌠ transien⌠ i≤ ß shell«á Thσ ZCPR│ ì
CommanΣ Statu≤ Messagσ i≤ reaΣ anΣ testeΣ agains⌠ thσá Shel∞ ì
codσ value«á Zer∩ Flaτ i≤ Se⌠ iµ thσ curren⌠ transien⌠ i≤ ß ì
Shell.
Inputs: None
Outputs: A = message code
Zero Flag is Set if transient is a Shell
Registers Affected: PSW
Side Effects: None
Special Error Conditions: None
:Error Flag and Error Command ERRADR/GETER1/PUTER1/GETERC/PUTERC
This set of routines performs the following functions:
ERRAD╥ - return≤ thσ addres≤ oµ thσ firs⌠
character of the command line in error
GETER1 - returns the error flag
PUTER1 - sets the error flag
GETERC - returns the address of the first
character of the error handler command line
PUTERC - set the error handler command line
Z3LIB Routine: ERRADR
Function:
Assuminτ tha⌠ thσ curren⌠ transien⌠ i≤ aε erro≥ handle≥ ì
(ß cal∞ t∩ QERRO╥ return≤ witΦ Zer∩ Flaτ Set)¼á thi≤ routinσ ì
return≤á thσ addres≤ oµ thσ firs⌠ characte≥ oµá thσá commanΣ ì
line which was in error. For example, if the command:
XXX params;DIR
wa≤á issueΣ anΣ XXX.CO═ coulΣ no⌠ bσ found¼á ERRAD╥á return≤ ì
thσ addres≤ oµ thσ firs⌠ characte≥ oµ thσ string:
db 'XXX params;DIR',0
Inputs: None
Outputs: HL = address of first character of error line
Registers Affected: HL
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: GETER1
Function:
Returε thσ erro≥ flaτ iε A«á GETER▒ allow≤ thσ prograφ ì
t∩ finΣ ou⌠ iµ aε erro≥ handle≥ i≤ currentl∙ installed« A=░ ì
anΣá Zer∩á Flaτá i≤á Se⌠ (Z⌐ iµ therσ i≤á n∩á erro≥á handle≥ ì
installed.
Inputs: None
Outputs: A=0 and Z if no error handler installed
A<>0 and NZ if error handler installed
Registers Affected: PSW
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: PUTER1
Function:
Se⌠á thσ erro≥ handle≥ installeΣ flag«á PUTER▒á allow≤ ì
thσá prograφá t∩ explictl∙ se⌠ thσ erro≥á handle≥á installeΣ ì
flag«á Iµ thi≤ flaτ i≤ se⌠ t∩ 0¼á thσ curren⌠ erro≥ handle≥ ì
(iµ any⌐ i≤ disabled«á Iµ thi≤ flaτ i≤ se⌠ t∩ non-zero¼ thσ ì
curren⌠á erro≥ handle≥ (defineΣ b∙ thσ erro≥ handle≥ commanΣ ì
linσ messagσ - seσ GETERC/PUTERC⌐ i≤ enableΣ fo≥ late≥ use.
Inputs: A = error handler engaged flag
(A=0 if error handler is to be disabled, A<>0
if error hander is to be enabled)
Outputs: None
Registers Affected: None
Side Effects: Error Handler Enable Message is Set
Special Error Conditions: None
Z3LIB Routine: GETERC
Function:
Returεá thσá addres≤á oµ thσá firs⌠á characte≥á oµá thσ ì
command line used to invoke the current error handler.
If the error handler is to be invoked by the command:
ERROR params
then the address of the first character of this string:
db 'ERROR params',0
is returned.
Iµ therσ i≤ n∩ erro≥ string¼á oε exi⌠ A=░ anΣ Zer∩ Flaτ ì
i≤á Se⌠ (Z)«á Otherwise¼á A=firs⌠ characte≥ oµ erro≥ strinτ ì
and NZ.
Inputs: None
Outputs: HL = address of first char
A=0 and Zero Flag Set if string is empty
Registers Affected: HL, PSW
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: PUTERC
Function:
Se⌠á thσá erro≥ handle≥ commanΣá line«á Oεá input¼á H╠ ì
point≤ t∩ ß strinτ whicΦ i≤ t∩ bσ thσ commanΣ linσá executeΣ ì
to invoke an error handler. For example:
ext puterc
...
lxi h,erstr ;pt to string
call puterc
jnz OK ;string was accepted
...
erstr:
db 'ERROR NOOPT',0
Thσá erro≥ string¼á includinτ thσ endinτ 0¼á mus⌠ bσ 3▓ ì
byte≤á lonτá o≥ less«á Iµ i⌠ i≤ morσ thaεá 3▓á byte≤á long¼ ì
PUTERC returns with A=0 and Zero Flag Set (Z).
Inputs: HL = address of first character of error handler
command line
Outputs: A=0 and Zero Flag Set (Z) if command line too long
(more than 32 bytes)
Registers Affected: PSW
Side Effects: None
Special Error Conditions: None
:Inter-Transient Error Code GETER2/PUTER2
Thσá inter-transien⌠á erro≥ codσ i≤ ß one-bytσá messagσ ì
whicΦá an∙á prograφá caεá se⌠á t∩á indicatσá it≤á completioε ì
success«á Thσá conventioε i≤ adopteΣ tha⌠ iµá thi≤á messagσ ì
bytσá i≤ se⌠ t∩ 0¼á theε thσ prograφ completeΣ successfully« ì
Iµ thi≤ messagσ bytσ i≤ no⌠ 0¼ theε thσ prograφ haΣ aε erro≥ ì
iεá onσ forφ o≥ anothe≥ anΣ thσ valuσ oµ thi≤á messagσá bytσ ì
indicate≤ thσ error.
GETER▓á allow≤ ß prograφ t∩ determinσ thσ valuσ oµ thi≤ ì
inter-transien⌠á erro≥ codσ anΣ PUTER▓ allow≤ ßá prograφá t∩ ì
se⌠ thσ valuσ oµ thσ inter-transien⌠ erro≥ code.
Z3LIB Routine: GETER2
Function:
Returεá thσ valuσ oµ thσ inter-transien⌠ erro≥ codσá iε ì
A. A=0 and Zero Flag Set (Z) if no error.
Inputs: None
Outputs: A=error code and Zero Flag set accordingly
A=0 and Zero Flag Set (Z) if no error
Registers Affected: PSW
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: PUTER2
Function:
Se⌠á thσ valuσ oµ thσ inter-transien⌠ erro≥á code«á Iµ ì
A=0, the program is indicating that no error occurred.
Inputs: A=error code (A=0 if no error)
Outputs: None
Registers Affected: None
Side Effects: Error Code Message is Set
Special Error Conditions: None
:Register Access GETREG/PUTREG
Thσ ZCPR│ Messagσ Buffe≥ provide≤ teε one-bytσ message≤ ì
whicΦ arσ useΣ a≤ one-bytσ registers« Thσ GETRE╟ anΣ PUTRE╟ ì
routine≤á allo≈á ß prograφ t∩ obtaiε anΣ se⌠ ß valuσ iεá an∙ ì
one of the ten registers.
Z3LIB Routine: GETREG
Function:
Obtaiε thσ valuσ (iε A⌐ oµ thσ registe≥ whosσ numbe≥ i≤ ì
iε ┬ (B=░ t∩ 9)«á Oε entry¼ B=registe≥ number¼ anΣ oε exit¼ ì
A=value in register.
Note║á GETRE╟ perform≤ n∩ checδ oε thσ validit∙ oµ thσ ì
valuσ iε B¼á usinτ i⌠ a≤ aε offse⌠ int∩ thσ registe≥ buffer« ì
I⌠ i≤ thσ responsibilit∙ oµ thσ programme≥ t∩ ensurσ tha⌠á ┬ ì
contains a valid register number (0 to 9).
Example of use:
ext getreg
...
mvi b,5 ;get the value of Register 5
call getreg
jz r5eq0 ;process special case of reg 5 = 0
Inputs: B = register number of register to access
Outputs║ ┴ ╜ valuσ oµ registe≥ anΣ Zer∩ Flaτ i≤ set
accordingly
Registers Affected: PSW
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: PUTREG
Function:
Se⌠á thσ valuσ (containeΣ iε A⌐ int∩ ß registe≥á (whosσ ì
number is contained in B).
Note║á n∩á checδá i≤ madσ t∩ ensurσ tha⌠ ┬á contain≤á ß ì
valiΣá registe≥á number«á I⌠ i≤ thσ responsibilit∙á oµá thσ ì
programmer to ensure that B contains a value from 0 to 9.
Example of use:
ext putreg
...
mvi b,9 ;set register 9
mvi a,20 ;to 20
call putreg
...
Inputs: B = register number (0 to 9)
A = register value (0 to 255)
Outputs: None
Registers Affected: None
Side Effects: Register Value is Set
Special Error Conditions: None
:ZEX Status and Control GETZEX/PUTZEX/STOPZEX/STRTZEX
Thσá ZE╪ CommanΣ Filσ Facilit∙ (unde≥ ZCPR│ only!⌐á caε ì
bσ controlleΣ b∙ thi≤ se⌠ oµ Z3LI┬ routines« ZE╪ intercept≤ ì
al∞ BIO╙ call≤ fo≥ input¼á and¼á wheε iε intercep⌠ mode¼á i⌠ ì
provide≤á inpu⌠ froφ tex⌠ containeΣ iε it≤ memory-baseΣ tex⌠ ì
buffe≥á rathe≥á thaε allowinτ thσ use≥ t∩á inpu⌠á character≤ ì
froφá thσ keyboard«á Thesσ routine≤ arσ useΣ t∩á quer∙á thσ ì
statu≤á oµ ZE╪ anΣ t∩ instruc⌠ ZE╪ t∩ continuσá interceptinτ ì
character≤ o≥ t∩ sto≡ interceptinτ character≤ anΣ allo≈ use≥ ì
input.
Z3LIB Routine: GETZEX
Function:
Return≤ thσ ZE╪ contro∞ messagσ bytσ iε A« Thi≤ allow≤ ì
thσá prograφá t∩ finΣ ou⌠ thσ curren⌠ statσ tha⌠ ZE╪ i≤á in« ì
This control message byte takes on one of three values:
0 - "normal" - ZEX is running and intercepting
BIOS calls
1 - "ZCPR3 Prompt" - ZEX is allowed to run and
intercept BIOS calls but ZEX thinks that it
is providing input to the ZCPR3 command
Processor directly (ZEX is not providing
input to any program)
2 - "ZEX suspended" - ZEX is not intercepting
BIOS calls and user input is allowed
Thσ codσ oµ ▒ shoulΣ neve≥ bσ seeε b∙ an∙ prograφ sincσ ì
i⌠ i≤ se⌠ b∙ ZCPR│ anΣ cleareΣ t∩ ░ afte≥ ZE╪ ha≤á completeΣ ì
the command line input.
An∙á ZE╪á contro∞á messagσ i≤ rese⌠ upoεá executioεá oµ ì
ZCPR│á t∩á ░ wheε ZCPR│ i≤ entereΣ anΣ theε t∩á ▒á wheεá thσ ì
ZCPR│á promp⌠ appear≤ (ZCPR│ input)«á Wheε ZCPR│á complete≤ ì
its input, it resets the ZEX control message to 0.
Inputs: None
Outputs║ ┴ ╜ ZE╪ Contro∞ Messagσ anΣ Zer∩ Flaτ set
accordingly
A = 0 if ZEX is intercepting chars
A = 1 if ZCPR3 input is engaged and ZEX is
intercepting chars
A = 2 if ZEX is not intercepting chars
Registers Affected: PSW
Side Effects: None
Special Error Conditions: None
Z3LIB Routine: PUTZEX
Function:
Set≤á thσ ZE╪ contro∞ messagσ bytσ iε A«á Thi≤á allow≤ ì
thσá prograφ t∩ se⌠ thσ statσ tha⌠ ZE╪ i≤ in«á Thi≤ contro∞ ì
messagσ bytσ mus⌠ takσ oε onσ oµ threσ values:
0 - "normal" - ZEX is running and intercepting
BIOS calls
1 - "ZCPR3 Prompt" - ZEX is allowed to run and
intercept BIOS calls but ZEX thinks that it
is providing input to the ZCPR3 command
Processor directly (ZEX is not providing
input to any program)
2 - "ZEX suspended" - ZEX is not intercepting
BIOS calls and user input is allowed
I⌠á i≤á thσá responsibilit∙ oµ thσá programme≥á tha⌠á ┴ ì
contains one of these three values upon entry to PUTZEX.
Thσ codσ oµ ▒ ma∙ bσ se⌠ b∙ an∙ prograφ iµ i⌠ want≤ ZE╪ ì
t∩ "thinkó tha⌠ i⌠ i≤ providinτ inpu⌠ t∩ ZCPR3«á Iµ ZE╪ wa≤ ì
previousl∙á suspended¼á i⌠ advance≤ t∩ thσ beginninτ oµá thσ ì
nex⌠ linσ anΣ resume≤ wheε i⌠ see≤ thi≤ code.
An∙á ZE╪á contro∞á messagσ i≤ rese⌠ upoεá executioεá oµ ì
ZCPR│á t∩á ░ wheε ZCPR│ i≤ entereΣ anΣ theε t∩á ▒á wheεá thσ ì
ZCPR│á promp⌠ appear≤ (ZCPR│ input)«á Wheε ZCPR│á complete≤ ì
its input, it resets the ZEX control message to 0.
Inputs║ ┴ ╜ ZE╪ Contro∞ Messagσ
A = 0 if ZEX is intercepting chars
A = 1 if ZCPR3 input is engaged and ZEX is
intercepting chars
A = 2 if ZEX is not intercepting chars
Outputs: None
Registers Affected: None
Side Effects: ZEX Control Message Byte is Set
Special Error Conditions: None
Z3LIB Routine: STOPZEX
Function:
Sto≡á ZE╪á froφ interceptinτ BIO╙ call≤ anΣá allo≈á thσ ì
user to input characters.
Thi≤ i≤ ß shorthanΣ t∩ placinτ thσ 2 contro∞ codσá int∩ ì
the ZEX Control Message Byte.
Inputs: None
Outputs: None
Registers Affected: None
Side Effects: ZEX Control Message Byte is set to 2
Special Error Conditions: None
Z3LIB Routine: STRTZEX
Function:
Allo≈á ZE╪ t∩ intercep⌠ BIO╙ call≤ anΣ don'⌠ allo≈á thσ ì
use≥ t∩ inpu⌠ characters.
Thi≤ i≤ ß shorthanΣ t∩ placinτ thσ 0 contro∞ codσá int∩ ì
the ZEX Control Message Byte.
Inputs: None
Outputs: None
Registers Affected: None
Side Effects: ZEX Control Message Byte is set to 0
Special Error Conditions: None