Invalid variable declaration??

Discussion specific to NXT-G, NXC, NBC, RobotC, Lejos, and more.
Post Reply
felix2ch
Posts: 33
Joined: 11 Jun 2013, 16:46

Invalid variable declaration??

Post by felix2ch »

RXEDumper give me the message when decompile the rxe file generated by LEGO-NXT-G v2.0.

How should i do?
Thanks.
Attachments
Untitled-1.rxe
(1.67 KiB) Downloaded 274 times
afanofosc
Site Admin
Posts: 1256
Joined: 26 Sep 2010, 19:36
Location: Nashville, TN
Contact:

Re: Invalid variable declaration??

Post by afanofosc »

RXEDumper has not been actively updated for quite a while. I would recommend opening the RXE in the latest BricxCC version. You can also drag and drop from a Windows Explorer window to BricxCC to decompile the RXE file. I get the following code when I do that:

Code: Select all

/*
Untitled-1.rxe
Header
----------------
FormatString = MindstormsNXT
Version = 5
DSCount = 139 (0x8B)
DSSize = 478 (0x1DE)
DSStaticSize = 208 (0xD0)
DSDefaultsSize = 364 (0x16C)
DynDSDefaultsOffset = 94 (0x5E)
DynDSDefaultsSize = 270 (0x10E)
MemMgrHead = 3 (0x3)
MemMgrTail = 8 (0x8)
DVArrayOffset = 278 (0x116)
ClumpCount = 5 (0x5)
CodespaceCount = 363 (0x16B)
----------------
DataSpace
----------------
DSTOC
  sl0000: 06 00 0000
  sl0001: 06 01 0004
  sl0002: 06 01 0008
  sl0003: 06 01 000C
  sl0004: 06 01 0010
   f0005: 0A 01 0014
  ul0006: 05 00 0018
  sl0007: 06 00 001C
  sl0008: 06 00 0020
  sl0009: 06 01 0024
  sl000A: 06 00 0028
  ul000B: 05 01 002C
  ul000C: 05 01 0030
   f000D: 0A 01 0034
  uw000E: 03 00 0038
  sw000F: 04 00 003A
  sw0010: 04 01 003C
  sw0011: 04 01 003E
  sw0012: 04 01 0040
  sw0013: 04 01 0042
  uw0014: 03 01 0044
  sw0015: 04 01 0046
  sw0016: 04 00 0048
  sw0017: 04 00 004A
  uw0018: 03 00 004C
  ub0019: 01 01 004E
  ub001A: 01 00 004F
  ub001B: 01 00 0050
  ub001C: 01 00 0051
  ub001D: 01 00 0052
  ub001E: 01 01 0053
  ub001F: 01 00 0054
  ub0020: 01 01 0055
  ub0021: 01 01 0056
  ub0022: 01 01 0057
  ub0023: 01 00 0058
  ub0024: 01 00 0059
  ub0025: 01 01 005A
  ub0026: 01 01 005B
  ub0027: 01 01 005C
  ub0028: 01 01 005D
  ub0029: 01 01 005E
  ub002A: 01 01 005F
  ub002B: 01 00 0060
  ub002C: 01 00 0061
  ub002D: 01 01 0062
  ub002E: 01 00 0063
  ub002F: 01 01 0064
  ub0030: 01 00 0065
  ub0031: 01 00 0066
  ub0032: 01 00 0067
  ub0033: 01 00 0068
  ub0034: 01 00 0069
  ub0035: 01 00 006A
  ub0036: 01 00 006B
  ub0037: 01 00 006C
  ub0038: 01 00 006D
  sb0039: 02 00 006E
  sb003A: 02 01 006F
  ub003B: 01 00 0070
  ub003C: 01 00 0071
  ub003D: 01 01 0072
  ub003E: 01 01 0073
  sb003F: 02 00 0074
  ub0040: 01 00 0075
  ub0041: 01 01 0076
  ub0042: 01 01 0077
  ub0043: 01 00 0078
  ub0044: 01 01 0079
   c0045: 08 00 0005
  sb0046: 02 01 007C
  ub0047: 01 01 007D
  ub0048: 01 00 007E
  ub0049: 01 01 007F
  ub004A: 01 01 0080
   c004B: 08 00 0001
  sw004C: 04 01 0084
   c004D: 08 00 0003
  sb004E: 02 01 0088
  ub004F: 01 01 0089
   a0050: 07 00 008A
  ub0051: 01 00 0000
   c0052: 08 00 0002
  sb0053: 02 01 008C
  ub0054: 01 01 008D
   c0055: 08 00 0003
  sb0056: 02 01 0090
  ub0057: 01 01 0091
   a0058: 07 00 0092
  ub0059: 01 00 0000
   c005A: 08 00 0002
  sb005B: 02 01 0094
  ub005C: 01 01 0095
   c005D: 08 00 0003
  sb005E: 02 01 0098
  ub005F: 01 01 0099
   a0060: 07 00 009A
  ub0061: 01 00 0000
   c0062: 08 00 0002
  sw0063: 04 01 009C
  sw0064: 04 01 009E
   c0065: 08 00 0004
  sb0066: 02 01 00A0
   c0067: 08 00 0002
  sw0068: 04 01 00A4
  sw0069: 04 01 00A6
   a006A: 07 00 00A8
  ub006B: 01 00 0000
  ul006C: 05 01 00AC
   a006D: 07 00 00B0
  sl006E: 06 00 0000
   a006F: 07 00 00B2
  sl0070: 06 00 0000
   a0071: 07 00 00B4
  sl0072: 06 00 0000
   a0073: 07 00 00B6
  sl0074: 06 00 0000
   a0075: 07 00 00B8
  ub0076: 01 00 0000
   a0077: 07 00 00BA
  ub0078: 01 00 0000
   a0079: 07 00 00BC
  ub007A: 01 00 0000
   a007B: 07 00 00BE
  ub007C: 01 00 0000
   a007D: 07 00 00C0
  ub007E: 01 00 0000
   a007F: 07 00 00C2
  ub0080: 01 00 0000
   a0081: 07 00 00C4
  ub0082: 01 00 0000
   a0083: 07 00 00C6
  ub0084: 01 00 0000
   a0085: 07 00 00C8
  ub0086: 01 00 0000
   a0087: 07 00 00CA
  ub0088: 01 00 0000
   a0089: 07 00 00CC
  ub008A: 01 00 0000
Static DS Defaults
FF FF FF FF 32 00 00 00 02 00 00 00 01 00 00 00 
3A 00 00 00 03 00 64 00 20 00 08 00 01 00 01 02 
01 01 03 01 01 01 01 01 01 01 01 04 0A 01 01 01 
01 E0 01 01 E0 01 01 01 01 00 02 00 03 00 04 00 
05 00 06 00 07 00 08 00 09 00 0A 00 0B 00 0C 00 
0D 00 0E 00 0F 00 10 00 11 00 12 00 13 00 
Dynamic DS Defaults
00 FF FF FF 00 FF FF FF 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 FF FF FF 44 65 66 61 
75 6C 74 00 00 FF FF FF 00 FF FF FF 00 FF FF FF 
00 00 FF FF 80 09 00 FF 00 FF FF FF 00 FF FF FF 
00 FF FF FF 00 FF 
Dope Vectors (offset, elem size, count, back ptr, link)
01 16 00 0A 00 14 FF FF 00 01
FF FF 00 01 00 00 00 8A 00 02
FF FF 00 01 00 00 00 92 00 06
00 D0 00 01 00 01 00 9A 00 04
00 D4 00 01 00 01 00 A8 00 05
00 D8 00 04 00 04 00 B0 00 09
FF FF 00 04 00 00 00 B2 00 07
FF FF 00 04 00 00 00 B4 00 08
FF FF 00 04 00 00 00 B6 FF FF
00 E8 00 01 00 01 00 B8 00 0A
00 EC 00 01 00 08 00 BA 00 0B
00 F4 00 01 00 01 00 BC 00 0C
00 F8 00 01 00 01 00 BE 00 0D
00 FC 00 01 00 01 00 C0 00 0E
01 00 00 01 00 02 00 C2 00 0F
01 04 00 01 00 03 00 C4 00 10
01 08 00 01 00 01 00 C6 00 11
01 0C 00 01 00 01 00 C8 00 12
01 10 00 01 00 01 00 CA 00 13
01 14 00 01 00 01 00 CC 00 00
----------------
ClumpRecords
----------------
5 record(s) (Fire Cnt, Dependent Cnt, Code Start)
t000: 00 00 0000
t001: 01 01 0007
t002: 01 01 015A
t003: 01 03 015D
t004: 03 00 0160
t001 dependencies: t004 
t002 dependencies: t004 
t003 dependencies: t001 t002 t004 
----------------
*/
; -------------- variable declarations --------------
dseg	segment
;------- definitions -------
c0045_def	struct
sb0046	sbyte
ub0047	byte
ub0048	byte
ub0049	byte
ub004A	byte
c0045_def	ends
c004B_def	struct
sw004C	sword
c004B_def	ends
c004D_def	struct
sb004E	sbyte
ub004F	byte
a0050	byte[]
c004D_def	ends
c0052_def	struct
sb0053	sbyte
ub0054	byte
c0052_def	ends
c0055_def	struct
sb0056	sbyte
ub0057	byte
a0058	byte[]
c0055_def	ends
c005A_def	struct
sb005B	sbyte
ub005C	byte
c005A_def	ends
c005D_def	struct
sb005E	sbyte
ub005F	byte
a0060	byte[]
c005D_def	ends
c0062_def	struct
sw0063	sword
sw0064	sword
c0062_def	ends
c0067_def	struct
sw0068	sword
sw0069	sword
c0067_def	ends
c0065_def	struct
sb0066	sbyte
c0067	c0067_def	
a006A	byte[]
ul006C	dword
c0065_def	ends
;------- declarations -------
sl0000	sdword	-1
sl0001	sdword	
sl0002	sdword	
sl0003	sdword	
sl0004	sdword	
f0005	float	
ul0006	dword	50
sl0007	sdword	2
sl0008	sdword	1
sl0009	sdword	
sl000A	sdword	58
ul000B	dword	
ul000C	dword	
f000D	float	
uw000E	word	3
sw000F	sword	100
sw0010	sword	
sw0011	sword	
sw0012	sword	
sw0013	sword	
uw0014	word	
sw0015	sword	
sw0016	sword	32
sw0017	sword	8
uw0018	word	1
ub0019	byte	
ub001A	byte	1
ub001B	byte	2
ub001C	byte	1
ub001D	byte	1
ub001E	byte	
ub001F	byte	3
ub0020	byte	
ub0021	byte	
ub0022	byte	
ub0023	byte	1
ub0024	byte	1
ub0025	byte	
ub0026	byte	
ub0027	byte	
ub0028	byte	
ub0029	byte	
ub002A	byte	
ub002B	byte	1
ub002C	byte	1
ub002D	byte	
ub002E	byte	1
ub002F	byte	
ub0030	byte	1
ub0031	byte	1
ub0032	byte	1
ub0033	byte	4
ub0034	byte	10
ub0035	byte	1
ub0036	byte	1
ub0037	byte	1
ub0038	byte	1
sb0039	sbyte	-32
sb003A	sbyte	
ub003B	byte	1
ub003C	byte	1
ub003D	byte	
ub003E	byte	
sb003F	sbyte	-32
ub0040	byte	1
ub0041	byte	
ub0042	byte	
ub0043	byte	1
ub0044	byte	
c0045	c0045_def	{1, , }
c004B	c004B_def	
c004D	c004D_def	
c0052	c0052_def	
c0055	c0055_def	
c005A	c005A_def	
c005D	c005D_def	{0x0}
c0062	c0062_def	
c0065	c0065_def	{0x0, }
a006D	sdword[]	0x0, 0x0, 0x0, 0x0
a006F	sdword[]	
a0071	sdword[]	
a0073	sdword[]	
a0075	byte[]	0x0
a0077	byte[]	'Default'
a0079	byte[]	0x0
a007B	byte[]	0x0
a007D	byte[]	0x0
a007F	byte[]	0x0, 0x0
a0081	byte[]	0x80, 0x9, 0x0
a0083	byte[]	0x0
a0085	byte[]	0x0
a0087	byte[]	0x0
a0089	byte[]	0x0
dseg	ends
; -------------- program code --------------
	thread t000
	mov	sl0001, ub0019
	subcall	t003, sl0000
	exit	-1, -1
	endt
;-----------------------------------
	thread t001
	precedes	t004
	mov	ub001E, uw000E
	mov	a006F, a006D
	cmp	LTEQ, ub0020, ub001E, ub001F
	and	ub0020, ub0020, ub001D
	mov	c0045.ub0047, ub001E
	syscall	ReadButton, c0045
	mov	ub0021, c0045.ub0048
	mov	ub0022, c0045.ub0049
	brcmp	EQ, lbl0040, ub0020, ub0026
	index	sl0002, a006F, ub001E
	sub	sl0002, ub0022, sl0002
	tst	GT, ub0020, sl0002
	brcmp	EQ, lbl0038, ub0020, ub0025
	replace	a0071, a006F, ub001E, ub0022
	mov	a0073, a0071
	jmp	lbl003A
lbl0038:	mov	a0073, a006F
lbl003A:	mov	a006D, a0073
	mov	ub0027, ub0020
	jmp	lbl0042
lbl0040:	mov	ub0027, ub0021
lbl0042:	mov	ub0028, ub0027
	not	ub0027, ub0028
	mov	ub0021, ub0027
	brtst	EQ, lbl004E, ub001C
	mov	ub0021, ub0028
lbl004E:	mov	ub0029, ub0021
	brcmp	EQ, lbl0056, ub0029, ub002B
	jmp	lbl0157
lbl0056:	cmp	LT, ub0029, sw000F, sw0010
	brcmp	EQ, lbl0064, ub0029, ub002D
	mov	sw0012, sw0010
	mov	sw0011, sw000F
	jmp	lbl0068
lbl0064:	mov	sw0012, sw000F
	mov	sw0011, sw0010
lbl0068:	add	sw0012, sw0012, ub002E
	sub	sw0012, sw0012, sw0011
	syscall	RandomNumber, c004B
	mov	sw0013, c004B.sw004C
	mov	uw0014, sw0013
	mov	sl0002, uw0014
	mod	sl0003, sl0002, sw0012
	add	sl0003, sw0011, sl0003
	mov	sw0015, sl0003
	mov	sl0004, sw0015
	mov	f0005, sl0004
	cmp	LT, ub0029, ub0030, ub0033
	sub	ub0021, ub0031, ub0035
	cmp	LT, ub0027, ub0021, ub0034
	and	ub0029, ub0027, ub0029
	brcmp	EQ, lbl0141, ub0029, ub0042
	brcmp	EQ, lbl00B9, ub0032, sl0009
	brcmp	EQ, lbl00B2, ub0032, sl0008
	brcmp	EQ, lbl00AB, ub0032, sl0007
	mov	a007D, a0079
	jmp	lbl00C0
lbl00AB:	flatten	a007B, ub002F
	mov	a007D, a007B
	jmp	lbl00C0
lbl00B2:	flatten	a007B, f0005
	mov	a007D, a007B
	jmp	lbl00C0
lbl00B9:	strsubset	a007B, a0075, NA, sl000A
	mov	a007D, a007B
lbl00C0:	brcmp	EQ, lbl0123, ub0030, sl0009
	flatten	a0083, ub0021
	arrsize	sl0003, a007D
	sub	sl0003, sl0003, ub0037
	mov	ub0029, sl0003
	add	ub0029, ub0029, ub0038
	flatten	a0085, ub0029
	strcat	a0087, a0081, a0083, a0085, a007D, a007F
	strtoarr	a0087, a0087
	mov	a007B, a0087
	mov	c004D.ub004F, ub0030
	mov	c004D.a0050, a007B
	syscall	CommBTWrite, c004D
	mov	sb003A, c004D.sb004E
	cmp	EQ, ub0029, sb003A, sb0039
	brcmp	EQ, lbl0121, ub0029, ub003E
	gettick	ul000B
lbl00F7:	gettick	ul000C
	sub	ul000C, ul000C, ul000B
	cmp	GT, ub0029, ul000C, ul0006
	mov	c0052.ub0054, ub0030
	syscall	CommBTCheckStatus, c0052
	mov	sb003A, c0052.sb0053
	tst	EQ, ub0027, sb003A
	or	ub0028, ub0027, ub0029
	brtst	EQ, lbl00F7, ub0028
	brcmp	EQ, lbl011F, ub0027, ub003D
	mov	c0055.ub0057, ub0030
	mov	c0055.a0058, a007B
	syscall	CommBTWrite, c0055
	jmp	lbl011F
lbl011F:	jmp	lbl0121
lbl0121:	jmp	lbl013F
lbl0123:	mov	c005A.ub005C, ub0030
	syscall	CommBTCheckStatus, c005A
	mov	sb003A, c005A.sb005B
	cmp	NEQ, ub0027, sb003F, sb003A
	brcmp	EQ, lbl013F, ub0027, ub0041
	add	ub0021, ub0034, ub0021
	mov	c005D.ub005F, ub0021
	mov	c005D.a0060, a007D
	syscall	MessageWrite, c005D
	jmp	lbl013F
lbl013F:	jmp	lbl0141
lbl0141:	mov	f000D, sl0004
	numtostr	a007D, f000D
	mov	a0089, a007D
	mov	c0062.sw0063, sw0017
	mov	c0062.sw0064, sw0016
	mov	sw0015, ub0043
	mov	c0065.c0067, c0062
	mov	c0065.a006A, a0089
	mov	c0065.ul006C, sw0015
	syscall	DrawText, c0065
lbl0157:	exit	0, 0
	endt
;-----------------------------------
	thread t002
	precedes	t004
	exit	0, 0
	endt
;-----------------------------------
	thread t003
	precedes	t001, t002, t004
	exit	0, 2
	endt
;-----------------------------------
	thread t004
	brtst	NEQ, lbl0169, ub0044
	add	sl0001, sl0001, ub001A
	exitto	t003
lbl0169:	subret	sl0000
	endt

John Hansen
Multi-platform LEGO MINDSTORMS programming
http://bricxcc.sourceforge.net/
felix2ch
Posts: 33
Joined: 11 Jun 2013, 16:46

Re: Invalid variable declaration??

Post by felix2ch »

Smart BricxCC and stupid me....
Thanks again. :P
Post Reply

Who is online

Users browsing this forum: Semrush [Bot] and 1 guest