Technical data
Result
After OB 180 has been called successfully
•• the value of the DBA register (= address of DW 0) is raised by the
value of ACCU-1-L
•• the value of the DBL register is reduced by the value of ACCU-1-L
•• the RLO is cleared (RLO = 0)
•• all other bit and word condition codes are cleared
Possible errors
•• Negative length
•• No data block opened
•• Contents of ACCU-1-L ≥ DBL
In the event of an error (ACCU-1-L
≥ DBL) the DBA and DBL
registers remain unchanged. The RLO is set (RLO = 1). The
remaining bit and word condition codes are cleared.
If the DBL register contains the value "0", OB 180 recognizes that no
data block is open. The RLO is set (RLO = 1), signalling an error.
Resetting DBA and DBL to
the initial value
Opening the data block again using the operations C DB or CX DX,
re-establishes the initial setting.
Example
You want to shift the data block start address (DBA = 151B) in DB 17
(DBL = 8) by two data words.
:C DB 17 open DB 17
:L KB 2 shift / offset as constant
:JU OB 180 call OB 180: DBA and DBL are adjusted
When you call OB 180, the data word stored at e.g. address 1520 can no
longer be addressed as DW 5, but must be addressed as DW 3 etc. (see
Fig. 6-6).
OB 180: Accessing Variable Data Blocks
CPU 928B Programming Guide
6 - 60 C79000-B8576-C898-01