U
Notes:
No distinction is made between uppercase and lowercase.
This command accepts no parameters.
Any characters following the "U" are ignored.
A portion of the device memory below the HEAP (i.e., non-predefined SRAM variables) is allocated to a global variable array. The "u" prefix is more indicative of its design -- a "union" type of aggregate variable (to borrow the term from the "C" language.) It was designed so BYTEs, CHARs, INTs, WORDs, LONGs and ULONGs could be easily interchanged. That functionality exists in the enter commands, but not the display commands; at least not yet.
The minimum number of BYTEs allocated to uVars.B[##] is 32. That value can be increased to a maximum of 256, by modifying the value of EEbConfig_uVars, which is an "adder" to the minimum 32. Its range can be 0 to 224 (= 0xE0); setting it to a value greater than 0xE0 will make it be 0 (not 0xE0). That choice was made, by the way, because EEPROM values are all initially 0xFF when the chip (and therefore System Configuration) is reset. It it preferable to set the adder to the minimum rather than the maximum in that case.
The value in variable EEbConfig_uVars is underlined above. It added 48 (= 0x30) BYTEs to the minimum uVars.B[##] configuration of 32 BYTEs. Note that the value is maintained in R15 by MIRTOS, updated once each second when the unit serial number if valid, as highlighted by the underlined value below.> DES ; Display EEPROM System variables EEPROM contents: 0000: 10 21 00 9F 01 01 96 FF-04 00 FF FF 28 3C 50 FF .!..........(.P. 0010: C0 00 3F FF 30 08 03 67-FF 25 74 FF FF FF FF FF ..?.0..g.%t..... 0020: 24 28 05 FF FF 40 FF FF-FF 14 30 20 00 40 FF FF $(...@....0 .@.. 0030: 80 16 FF FF FF FF FF FF-60 00 B0 00 90 01 FF FF ........`....... 0040: FF FF FF FF FF FF 00 AF-FF FF FF FF FF FF FF FF ................ >
> r 10 32 54 76 98 1110 1312 1514 1716 1918 2120 2322 2524 2726 2928 3130 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- 0000 08BB 094E FF28-0004 0000 0000 3000-0001 007E 5201 0000-0000 0230 0280 3166 >
> E 20 = 0 ; Set EEbConfig_uVars to the minimum >U ; Display uVars.B[0] to uVars.B[31] SRAM contents: 0280: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0290: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >e 20 = 0x30 >u SRAM contents: 0280: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0290: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >E 20 += 2 >U SRAM contents: 0280: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0290: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02D0: 00 00 .. >e 20 = 224 ; Set EEbConfig_uVars to its maximum (224 = 0xE0) >u SRAM contents: 0280: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0290: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0300: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0310: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0320: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0330: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0340: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0350: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0360: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0370: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >e 20 += 1 >DE+ 16 5 ; The value of EEbConfig_uVars is now overrange (= 0xE1) EEPROM contents: 0010: C0 00 3F FF E1 ..?.. >u SRAM contents: 0280: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0290: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >E 20 = 64 >u SRAM contents: 0280: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0290: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 02D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ >M ; Show the memory configuration HEAP starts: 0x02E0; present SP: 0x08F7; slack: 0x0617 bytes >P+? SRAM contents: 02E0: 00 00 .. >
Details: | |
The 'U' command is treated as if "DV+" were entered. | |
The HEAP follows immediately after the memory allocated to uVars.B[##]. Its location is based on the EEbConfig_uVars value. The starting address of the HEAP is shown using either the "M" or "P" system commands, as shown above. | |
See also: | |
The "Memory display system command. The "V" system command performs the same action as this one. |