78.7.3
PATCH: Changing File Contents
This feature is not intended to replace the functions of the AMO PATCH. The displayer does not use memory address in order to change the appropriate memory area on the hard disk; in fact for the purpose of this displayer function it is irrelevant whether the file to be processed corresponds to any memory locations on the hard disk at all.
The file whose contents are to be modified must first be assigned with the E command.
In order to help avoid typing errors, the number of new values entered must correspond to the number of memory units to be changed. In addition the length of the new values must exactly correspond to the memory output option selected (e.g. a 2-digit hexadecimal number if BYTE was selected).
Command Syntax
The number of memory units to be changed must be entered in decimal form. The new values must be entered as hexadecimal numbers and separated by hyphens.
•
Modification using an Address Symbol
PATCH,ADR,name,input,number,values;
•
Modification using a Direct Address
PATCH,DA,offset,input,number,values;
The offset must be entered as hexadecimal numbers.
•
Modification using a logical Memory Definition
PATCH,LOGNAME,name,input,number,values,indices,offset;
The indices of the array elements concerned must be entered in decimal form; either linked single values or index ranges are permitted.
The offset of the memory area to be changed must be entered in decimal form; it is the displacement of the pointer relative to the beginning of the array element.
Example
In connection with the DUMP-example given above the user wants to correct the address of the second memory from 34C0:5170 to 34A0:CEDA.
Input:
*patch,logname,entry_tbl,dword,1,34a0ceda,1,1a;
Output:
DISPLAYER-INPUT IN BPA PLEASE:
Input:
*dump,logname,entry_tbl,1&&2;
Output:
TABLE: ENTRY_TBL
INDEX: 0000H ADDRESS: 0000H:0000H
CONTENTS HEX (ASCII)
0( 0) 44425F445F43505F 4445565F53544154 DB_D_CP_DEV_STAT
10( 16) 4520202020202020 2020DADEA0340100 E ...4..
20( 32) 0000FF0700 .....
INDEX: 0001H ADDRESS: 0000H:0025H
CONTENTS HEX (ASCII)
0( 0) 44425F445F43505F 4445565F53544154 DB_S_CP_DEV_STAT
10( 16) 5553202020202020 2020DACEA0340200 US pQ.4..
20( 32) 0000FF0700 .....
DISPLAYER INPUT IN BPA PLEASE:
The correction was successfully completed.
Notes
a)
If the user switches over to access the displayer of another processor, and specifies this processor according to its status (e.g. active base processor), the connection, once established, is maintained even if the Hicom system switches processors. In other words, if a connection is established to base processor B (being the active processor at the time of the AMO switchover), then the user remains with this processor even when it is switched to standby operation. The user sees which processor he is currently accessing with the aid of the input request message.
b)
The default setting for output of numbers by the AMO is "H" (hexadecimal); in other cases, the numbers are explicitly assigned the suffix "T" for decimal.
c)
Until otherwise specified after the AMO has been started, hexadecimal dump format is always displayed with the corresponding ASCII characters (branch CHAR) and not interspersed with empty lines (branch DIST).
d)
Memory definitions are always created for the processor whose displayer is currently being controlled by the AMO. Any memory definitions with the same name for other processors in the AMO work area or the hard disk save area are overwritten.
e)
The addresses and index ranges of the CC and GP layout element table are re-initialized each time the AMO is started and for each processor switchover, and remain constant for the duration of the linkup to the processor.
f)
Unless otherwise specified, the layout element tables of the layout data modules (CC layout data module or LTG layout data module) are stored as logical memory definitions in the resident task area of the processor being accessed. This allows the user to enter new Flexama memories in the layout element tables which can then be copied from their appropriate layout data module as memory definitions for the next AMO run or processor switchover. These two memory definitions always occupy the first two places in the resident save area and cannot be changed.
g)
When copying logical memory definitions from a layout data module for memories with more than one data blocks, the additional memory blocks are marked with a "#" followed by a 2-digit block number appended to the memory name.
The functions "copy" and "lst,def" are intended only for those memory blocks that actually have a physical memory area. Flexama memories without a valid memory address may exist in the layout data modules, but they are not displayed to the user.
h)
The allocation of an address to a memory definition (DEF,ADR,..?) is only executed in the AMO work area. By following up with a DEF command (DEF,LOGNAME,..?) or a COPY comand (COPY,DEF,...?), the allocation can be transferred to other areas.
i)
When creating and storing memory definitions, the higher-level storage includes the lower-level storage (i.e. if AREA=HD is specified, the memory definitions are also entered in the save area of the resident displayer task and in the AMO work area).
j)
After assigning a filename for storing memory definitions on the hard disk, the file is not created until the estimated number of memory descriptions to be stored is specified (otherwise the file will be regarded as created and will be opened). The file is expanded as necessary (dynamically).
k)
Blanks in memory definition names are always removed. Thus, no distinction is made between "DB_D_ CPB_TBL" and "DB_D_CPB_TBL". However, if the name consists entirely of blanks, one blank remains.
l)
An asterisk at the beginning or end of an entry of a memory definition name is regarded as a ’wildcard’ character, whenever a complete, unambiguous name is not required (e.g. for the DEF command). Thus, "LST,DEF,DB_D_DH*" would list the memory contents for both DB_D_DH_DEV_TBL and DB_D_DH_LINE_TBL.
m)
When using high-level memory definitions for displaying call processing memories (e.g. LST,SW,<DCLD/SCLD/....>,...), the DISPLAYER on principle always showes the memory content of the corresponding ’active’ processor. That means, it is not possible during a DISPS-connection with a processor in ’standby’-state, to output its memories using the high-level memory access. Since the addresses of memories are identically in a ’standby’- and an ’active’-Prozessor, it is possible to use the existing logical memory definition to output the data. This function remains in the current connected processor!
n)
When processing file contents, the "address" shows the position in the file with respect to the start of the file (offset).
o)
Status data (LST,SW,STA,..?) is output in words.
p)
When displaying the save area of the boot communication area (BCASA) on the operator console (SEL=SCREEN) is requested, the AMO interrupts the output after every 2000 bytes, giving the operator the opportunity to abort the function. The reason is the lage size of the BCA, with approximate 48 kbyte. The output order to a hard disk file takes the the full size of the BCASA. Each command needs a new file name. This prevents inadvertant overwriting of data, in a file that already exists (see message F29).
q)
The memory address has the same format for the commands LST, SET, and DEF (ADR=<selector>-<offset>).
r)
The module identification is required in order to output the module data of a particular peripheral module. If the module-ID is missing, the AMO outputs the data of all peripheral modules in the system configuration.
s)
The output of device memories (DH and CP) for S0-bus stations is done with an other concept as for normal ports. The reason is, that a S0-bus port may have up to 8 terminal devices arranged. As normally the position (=DI) of a terminal device on S0-bus is unknown to the user, therefore this value is handled like a SERVICE INDICATOR (values see chapter 0.1.4 parameter ’DI’). In this case the DISPS puts out the position (TSI) and the device memories of ALL terminal devices which correspond to the given service. The TSI (terminal selection identifier) defines the physical position of a terminal device at the S0-bus. This method is only necessary if the user take circut (CIR) or line address (LN), because in this cases a device is not addressed definitely. LODEN, STNO, CRF and DTI input select exactly one device and produce only an output of the device memories belonging to it! The LODEN of the terminal devices can be determined with the command LST,SW,LODEN,CIR/LN,.... and thereby the position (see colume DI/TSI) is also shown.
t)
Functional terminal devices on S0-bus need additional to the fix available device memories some special, with a dynamic LODEN addressable, dynamic device memories. It is necessay for running parallel transactions, and only useable during the connection exist. In the ouput it is identified with CRI (call reference internal). By existing connection at first the fix available device memories (TSI) are put out and subsequently if need be, the dynamic allocated device memories (CRI) follow.
${DocTitle}
, ID:
${DocID}
©
02/2025
Mitel Networks Corporation. - All rights reserved.
Mitel and the Mitel logo are trademarks of Mitel Networks Corporation. Unify and associated marks are trademarks of Unify Software and Solutions GmbH&Co. KG.
All other trademarks herein are the property of their respective owners.