I have been looking into that float variable returning bug.
It looks like I was able to eliminate my entire program and the bug remains.
Downloading the open source DBP and installing it and DBPro EX latest fresh had no effect.
I also tested 2 Windows 10 Systems:
AMD FX-9590 and Intel Core i7 2670-QM
So this is not a CPU architecture thing.
I have attached an Xbox one Controller with a USB Cord.
Here is the entire source code:
set display mode 1920, 1080, 32
set window off
sync on
Test_Function()
Function Button_MoveAngle()
JoyAngle# = 0
JoyX# = JoyStick X()
JoyY# = JoyStick Y()
If JoyX# = 0
If JoyY# > 0 Then MyAngle# = 270
If JoyY# < 0 Then MyAngle# = 90
Else
MyAngle# = ATAN(JoyY# / JoyX#)
EndIf
Quad = 0
If JoyX# > 0 And JoyY# < 0 Then Quad = 0
If JoyX# < 0 And JoyY# < 0 Then Quad = 1
If JoyX# < 0 And JoyY# > 0 Then Quad = 2
If JoyX# > 0 And JoyY# > 0 Then Quad = 3
If Quad = 0 Then JoyAngle# = 0 - MyAngle#
If Quad = 1 Then JoyAngle# = 180 - MyAngle#
If Quad = 2 Then JoyAngle# = 180 - MyAngle#
If Quad = 3 Then JoyAngle# = 360 - MyAngle#
If JoyX# = 0 And JoyY# < 0 Then JoyAngle# = 90
If JoyX# = 0 And JoyY# > 0 Then JoyAngle# = 270
If JoyY# = 0 And JoyX# < 0 Then JoyAngle# = 180
If JoyY# = 0 And JoyX# > 0 Then JoyAngle# = 0
EndFunction JoyAngle#
Function Test_Function()
repeat
jz# = Button_MoveAngle()
Text 10, 700, "Call From Test Function:: " + STR$(jz#)
sync
Until Returnkey() = 1
EndFunction
Here is the Assembly Dump:
######CODE:
0 PUSH REGISTERS ; PUSH REGISTERS
0 MOV MEM4 ESP @$_ESP_ ; STORE STACK IN MEM
0
1 LINE : set display mode 1920, 1080, 32
0 I
2 LINE : set window off e
0 I
2 MOV EAX IMM4 , 32
2 PUSH EAX ; PUSH TO STACK L
2 MOV EAX IMM4 , 1080
2 PUSH EAX ; PUSH TO STACK j
2 MOV EAX IMM4 , 1920
2 PUSH EAX ; PUSH TO STACK S
2 MOV EBX IMM4 [1
2 CALL EBX ; CALL [DBProSetupDebug.dll ,?SetDisplayModeEx@@YAXHHH@Z ,
2 POP EBX ; POP EBX FROM STACK A
2 POP EBX ; POP EBX FROM STACK
2 POP EBX ; POP EBX FROM STACK
2 MOV MEM IMM4 @$_SLN_, 2
2 MOV EAX MEM4 @$_ERR_
2 CMP EAX4 0
2 JNE $labelend ; CALL Normal Runtime Error Hook
0 I
3 LINE : sync on o
0 I
3 MOV EBX IMM4 [2
3 CALL EBX ; CALL [DBProSetupDebug.dll ,?SetWindowModeOff@@YAXXZ
3 MOV MEM IMM4 @$_SLN_, 3
3 MOV EAX MEM4 @$_ERR_
3 CMP EAX4 0
3 JNE $labelend ; CALL Normal Runtime Error Hook
0 I
4 LINE : Test_Function
0 I
4 MOV EBX IMM4 [3
4 CALL EBX ; CALL [dbprocore.dll ,?SyncOn@@YAXXZ
4 MOV MEM IMM4 @$_SLN_, 4
4 MOV EAX MEM4 @$_ERR_
4 CMP EAX4 0
4 JNE $labelend ; CALL Normal Runtime Error Hook )
0 I
5 LINE : Function Button_MoveAngle()
0 I
6 LINE : JoyAngle# , 0 n
0 I
6 CALL MEM $label Test_Function ; DIRECT SUBCALL
6 MOV MEM IMM4 @$_SLN_, 6
6 MOV EAX MEM4 @$_ERR_
6 CMP EAX4 0
6 JNE $labelend ; CALL Normal Runtime Error Hook @
0 I
7 LINE : JoyX# , JoyStick X() n
0 I
8 LINE : JoyY# , JoyStick Y() n
0 I
9 LINE : If JoyX# = 0 i
0 I
9 MOV EBX IMM4 [4
9 CALL EBX ; CALL [dbprocore.dll ,?EarlyEnd@@YAXXZ
9 JMP $labelend ; DIRECT JUMP
9 MOV MEM IMM4 @$_SLN_, 9
9 MOV EAX MEM4 @$_ERR_
9 CMP EAX4 0
9 JNE $labelend ; CALL Normal Runtime Error Hook d
0 I
9 PUSH EBP ; PUSH EBP Z
9 MOV EBP ESP ; MOV EBP ESP Z
9 SUB ESP 56 ; SUB ESP
9 MOV EAX ESP
9 MOV ECX IMM4 13
9 MOV SIB[EAX:ECX*4],IMM4 , 0
9 LOOP ECX , -9 ; CLEAR STACK
0 I
10 LINE : If JoyY# > 0 : MyAngle# , 270
0 L
10 MOV EAX IMM4 , 0
10 PUSH EAX ; PUSH TO STACK D
10 MOV EBX IMM4 [5
10 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
10 POP EBX ; POP EBX FROM STACK H
10 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
10 MOV EAX4 [EBP+A] -12
10 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X
10 MOV MEM IMM4 @$_SLN_, 10
10 MOV EAX MEM4 @$_ERR_
10 CMP EAX4 0
10 JNE $labelend ; CALL Normal Runtime Error Hook
0 L
11 LINE : If JoyY# < 0 : MyAngle# , 90
0 L
0 L
11 MOV EBX IMM4 [6
11 CALL EBX ; CALL [DBProInputDebug.dll ,?JoystickX@@YAHXZ
11 MOV [EBP+A] EAX4 -20 ; ASSIGN EAX TO X
11 MOV MEM IMM4 @$_SLN_, 11
11 MOV EAX MEM4 @$_ERR_
11 CMP EAX4 0
11 JNE $labelend ; CALL Normal Runtime Error Hook @
11 MOV EAX4 [EBP+A] -20
11 PUSH EAX ; PUSH TO STACK l
11 MOV EBX IMM4 [5
11 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
11 POP EBX ; POP EBX FROM STACK o
11 MOV [EBP+A] EAX4 -24 ; ASSIGN EAX TO X
11 MOV EAX4 [EBP+A] -24
11 MOV [EBP+A] EAX4 -16 ; ASSIGN X TO X O
11 MOV MEM IMM4 @$_SLN_, 11
11 MOV EAX MEM4 @$_ERR_
11 CMP EAX4 0
11 JNE $labelend ; CALL Normal Runtime Error Hook
0 L
12 LINE : Else y
0 L
0 L
12 MOV EBX IMM4 [7
12 CALL EBX ; CALL [DBProInputDebug.dll ,?JoystickY@@YAHXZ
12 MOV [EBP+A] EAX4 -20 ; ASSIGN EAX TO X
12 MOV MEM IMM4 @$_SLN_, 12
12 MOV EAX MEM4 @$_ERR_
12 CMP EAX4 0
12 JNE $labelend ; CALL Normal Runtime Error Hook @
12 MOV EAX4 [EBP+A] -20
12 PUSH EAX ; PUSH TO STACK r
12 MOV EBX IMM4 [5
12 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
12 POP EBX ; POP EBX FROM STACK o
12 MOV [EBP+A] EAX4 -24 ; ASSIGN EAX TO X
12 MOV EAX4 [EBP+A] -24
12 MOV [EBP+A] EAX4 -28 ; ASSIGN X TO X
12 MOV MEM IMM4 @$_SLN_, 12
12 MOV EAX MEM4 @$_ERR_
12 CMP EAX4 0
12 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
13 LINE : MyAngle# , ATAN(JoyY# / JoyX#)
0 L
13 MOV EAX IMM4 , 0
13 PUSH EAX ; PUSH TO STACK r
13 MOV EBX IMM4 [5
13 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
13 POP EBX ; POP EBX FROM STACK o
13 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
13 MOV EAX4 [EBP+A] -12
13 PUSH EAX ; PUSH TO STACK C
13 MOV EAX4 [EBP+A] -16
13 PUSH EAX ; PUSH TO STACK C
13 MOV EBX IMM4 [8
13 CALL EBX ; CALL [dbprocore.dll ,?EqualLFF@@YAKMM@Z
13 POP EBX ; POP EBX FROM STACK q
13 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
13 POP EAX ; POP EAX FROM STACK q
13 MOV EAX4 [EBP+A] -32
13 CMP EAX4 0 ; CONDITION COMPARE
13 JE $label2[13] ; JUMP IF EQUAL
0 L
14 LINE : EndIf e
0 L
14 MOV EAX IMM4 , 0
14 PUSH EAX ; PUSH TO STACK
14 MOV EBX IMM4 [5
14 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
14 POP EBX ; POP EBX FROM STACK a
14 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
14 MOV EAX4 [EBP+A] -12
14 PUSH EAX ; PUSH TO STACK C
14 MOV EAX4 [EBP+A] -28
14 PUSH EAX ; PUSH TO STACK C
14 MOV EBX IMM4 [9
14 CALL EBX ; CALL [dbprocore.dll ,?GreaterLFF@@YAKMM@Z
14 POP EBX ; POP EBX FROM STACK a
14 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X
14 POP EAX ; POP EAX FROM STACK r
14 MOV EAX4 [EBP+A] -32
14 CMP EAX4 0 ; CONDITION COMPARE
14 JE $label0[15] ; JUMP IF EQUAL
0 L
14 MOV EAX IMM4 , 270
14 PUSH EAX ; PUSH TO STACK
14 MOV EBX IMM4 [5
14 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
14 POP EBX ; POP EBX FROM STACK r
14 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
14 MOV EAX4 [EBP+A] -12
14 MOV [EBP+A] EAX4 -36 ; ASSIGN X TO X Y
14 MOV MEM IMM4 @$_SLN_, 14
14 MOV EAX MEM4 @$_ERR_
14 CMP EAX4 0
14 JNE $labelend ; CALL Normal Runtime Error Hook L
14 MOV MEM IMM4 @$_SLN_, 14
14 MOV EAX MEM4 @$_ERR_
14 CMP EAX4 0
14 JNE $labelend ; CALL Normal Runtime Error Hook L
0 L
15 LINE : Quad , 0 ,
0 L
15 MOV EAX IMM4 , 0
15 PUSH EAX ; PUSH TO STACK r
15 MOV EBX IMM4 [5
15 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
15 POP EBX ; POP EBX FROM STACK o
15 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
15 MOV EAX4 [EBP+A] -12
15 PUSH EAX ; PUSH TO STACK C
15 MOV EAX4 [EBP+A] -28
15 PUSH EAX ; PUSH TO STACK C
15 MOV EBX IMM4 [10
15 CALL EBX ; CALL [dbprocore.dll ,?LessLFF@@YAKMM@Z
15 POP EBX ; POP EBX FROM STACK o
15 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
15 POP EAX ; POP EAX FROM STACK o
15 MOV EAX4 [EBP+A] -32
15 CMP EAX4 0 ; CONDITION COMPARE
15 JE $label1[16] ; JUMP IF EQUAL
0 L
15 MOV EAX IMM4 , 90
15 PUSH EAX ; PUSH TO STACK e
15 MOV EBX IMM4 [5
15 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
15 POP EBX ; POP EBX FROM STACK o
15 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
15 MOV EAX4 [EBP+A] -12
15 MOV [EBP+A] EAX4 -36 ; ASSIGN X TO X
15 MOV MEM IMM4 @$_SLN_, 15
15 MOV EAX MEM4 @$_ERR_
15 CMP EAX4 0
15 JNE $labelend ; CALL Normal Runtime Error Hook L
15 MOV MEM IMM4 @$_SLN_, 15
15 MOV EAX MEM4 @$_ERR_
15 CMP EAX4 0
15 JNE $labelend ; CALL Normal Runtime Error Hook L
13 JMP $label3[20] ; DIRECT JUMP
0 L
16 LINE : If JoyX# > 0 And JoyY# < 0 : Quad , 0
0 L
17 LINE : If JoyX# < 0 And JoyY# < 0 : Quad , 1
0 L
0 L
17 MOV EAX4 [EBP+A] -16
17 PUSH EAX ; PUSH TO STACK r
17 MOV EAX4 [EBP+A] -28
17 PUSH EAX ; PUSH TO STACK r
17 MOV EBX IMM4 [11
17 CALL EBX ; CALL [dbprocore.dll ,?DivFFF@@YAKMM@Z
17 POP EBX ; POP EBX FROM STACK i
17 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
17 POP EAX ; POP EAX FROM STACK i
17 MOV EAX4 [EBP+A] -12
17 PUSH EAX ; PUSH TO STACK C
17 MOV EBX IMM4 [12
17 CALL EBX ; CALL [dbprocore.dll ,?AtanFF@@YAKM@Z @
17 MOV [EBP+A] EAX4 -24 ; ASSIGN EAX TO X
17 POP EBX ; POP EBX FROM STACK t
17 MOV MEM IMM4 @$_SLN_, 17
17 MOV EAX MEM4 @$_ERR_
17 CMP EAX4 0
17 JNE $labelend ; CALL Normal Runtime Error Hook @
17 MOV EAX4 [EBP+A] -24
17 MOV [EBP+A] EAX4 -36 ; ASSIGN X TO X e
17 MOV MEM IMM4 @$_SLN_, 17
17 MOV EAX MEM4 @$_ERR_
17 CMP EAX4 0
17 JNE $labelend ; CALL Normal Runtime Error Hook @
13 MOV MEM IMM4 @$_SLN_, 13
13 MOV EAX MEM4 @$_ERR_
13 CMP EAX4 0
13 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
18 LINE : If JoyX# < 0 And JoyY# > 0 : Quad , 2
0 L
19 LINE : If JoyX# > 0 And JoyY# > 0 : Quad , 3
0 L
20 LINE : If Quad = 0 : JoyAngle# , 0 - MyAngle#
0 L
20 MOV EAX IMM4 , 0
20 MOV [EBP+A] EAX4 -44 ; ASSIGN X TO X e
20 MOV MEM IMM4 @$_SLN_, 20
20 MOV EAX MEM4 @$_ERR_
20 CMP EAX4 0
20 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
21 LINE : If Quad = 1 : JoyAngle# , 180 - MyAngle#
0 L
21 MOV EAX IMM4 , 0
21 PUSH EAX ; PUSH TO STACK r
21 MOV EBX IMM4 [5
21 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
21 POP EBX ; POP EBX FROM STACK o
21 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X A
21 MOV EAX4 [EBP+A] -12
21 PUSH EAX ; PUSH TO STACK C
21 MOV EAX4 [EBP+A] -16
21 PUSH EAX ; PUSH TO STACK C
21 MOV EBX IMM4 [9
21 CALL EBX ; CALL [dbprocore.dll ,?GreaterLFF@@YAKMM@Z
21 POP EBX ; POP EBX FROM STACK o
21 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
21 POP EAX ; POP EAX FROM STACK o
21 MOV EAX IMM4 , 0
21 PUSH EAX ; PUSH TO STACK C
21 MOV EBX IMM4 [5
21 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z Z
21 POP EBX ; POP EBX FROM STACK o
21 MOV [EBP+A] EAX4 -40 ; ASSIGN EAX TO X S
21 MOV EAX4 [EBP+A] -40
21 PUSH EAX ; PUSH TO STACK C
21 MOV EAX4 [EBP+A] -28
21 PUSH EAX ; PUSH TO STACK C
21 MOV EBX IMM4 [10
21 CALL EBX ; CALL [dbprocore.dll ,?LessLFF@@YAKMM@Z Z
21 POP EBX ; POP EBX FROM STACK o
21 MOV [EBP+A] EAX4 -48 ; ASSIGN EAX TO X S
21 POP EAX ; POP EAX FROM STACK o
21 MOV EAX4 [EBP+A] -48
21 PUSH EAX
21 MOV EAX4 [EBP+A] -32
21 POP EBX
21 AND EAX EBX4
21 MOV [EBP+A] EAX4 -52 ; AND g
21 MOV EAX4 [EBP+A] -52
21 CMP EAX4 0 ; CONDITION COMPARE
21 JE $label4[22] ; JUMP IF EQUAL
0 L
21 MOV EAX IMM4 , 0
21 MOV [EBP+A] EAX4 -44 ; ASSIGN X TO X d
21 MOV MEM IMM4 @$_SLN_, 21
21 MOV EAX MEM4 @$_ERR_
21 CMP EAX4 0
21 JNE $labelend ; CALL Normal Runtime Error Hook @
21 MOV MEM IMM4 @$_SLN_, 21
21 MOV EAX MEM4 @$_ERR_
21 CMP EAX4 0
21 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
22 LINE : If Quad = 2 : JoyAngle# , 180 - MyAngle#
0 L
22 MOV EAX IMM4 , 0
22 PUSH EAX ; PUSH TO STACK r
22 MOV EBX IMM4 [5
22 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z Z
22 POP EBX ; POP EBX FROM STACK o
22 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
22 MOV EAX4 [EBP+A] -12
22 PUSH EAX ; PUSH TO STACK C
22 MOV EAX4 [EBP+A] -16
22 PUSH EAX ; PUSH TO STACK C
22 MOV EBX IMM4 [10
22 CALL EBX ; CALL [dbprocore.dll ,?LessLFF@@YAKMM@Z Z
22 POP EBX ; POP EBX FROM STACK o
22 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
22 POP EAX ; POP EAX FROM STACK o
22 MOV EAX IMM4 , 0
22 PUSH EAX ; PUSH TO STACK C
22 MOV EBX IMM4 [5
22 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z Z
22 POP EBX ; POP EBX FROM STACK o
22 MOV [EBP+A] EAX4 -40 ; ASSIGN EAX TO X S
22 MOV EAX4 [EBP+A] -40
22 PUSH EAX ; PUSH TO STACK C
22 MOV EAX4 [EBP+A] -28
22 PUSH EAX ; PUSH TO STACK C
22 MOV EBX IMM4 [10
22 CALL EBX ; CALL [dbprocore.dll ,?LessLFF@@YAKMM@Z Z
22 POP EBX ; POP EBX FROM STACK o
22 MOV [EBP+A] EAX4 -48 ; ASSIGN EAX TO X S
22 POP EAX ; POP EAX FROM STACK o
22 MOV EAX4 [EBP+A] -48
22 PUSH EAX
22 MOV EAX4 [EBP+A] -32
22 POP EBX
22 AND EAX EBX4
22 MOV [EBP+A] EAX4 -52 ; AND g
22 MOV EAX4 [EBP+A] -52
22 CMP EAX4 0 ; CONDITION COMPARE
22 JE $label5[23] ; JUMP IF EQUAL K
0 L
22 MOV EAX IMM4 , 1
22 MOV [EBP+A] EAX4 -44 ; ASSIGN X TO X Y
22 MOV MEM IMM4 @$_SLN_, 22
22 MOV EAX MEM4 @$_ERR_
22 CMP EAX4 0
22 JNE $labelend ; CALL Normal Runtime Error Hook @
22 MOV MEM IMM4 @$_SLN_, 22
22 MOV EAX MEM4 @$_ERR_
22 CMP EAX4 0
22 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
23 LINE : If Quad = 3 : JoyAngle# , 360 - MyAngle#
0 L
23 MOV EAX IMM4 , 0
23 PUSH EAX ; PUSH TO STACK r
23 MOV EBX IMM4 [5
23 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z Z
23 POP EBX ; POP EBX FROM STACK o
23 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
23 MOV EAX4 [EBP+A] -12
23 PUSH EAX ; PUSH TO STACK C
23 MOV EAX4 [EBP+A] -28
23 PUSH EAX ; PUSH TO STACK C
23 MOV EBX IMM4 [9
23 CALL EBX ; CALL [dbprocore.dll ,?GreaterLFF@@YAKMM@Z
23 POP EBX ; POP EBX FROM STACK o
23 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
23 POP EAX ; POP EAX FROM STACK r
23 MOV EAX IMM4 , 0
23 PUSH EAX ; PUSH TO STACK C
23 MOV EBX IMM4 [5
23 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z Z
23 POP EBX ; POP EBX FROM STACK o
23 MOV [EBP+A] EAX4 -40 ; ASSIGN EAX TO X S
23 MOV EAX4 [EBP+A] -40
23 PUSH EAX ; PUSH TO STACK C
23 MOV EAX4 [EBP+A] -16
23 PUSH EAX ; PUSH TO STACK C
23 MOV EBX IMM4 [10
23 CALL EBX ; CALL [dbprocore.dll ,?LessLFF@@YAKMM@Z Z
23 POP EBX ; POP EBX FROM STACK o
23 MOV [EBP+A] EAX4 -48 ; ASSIGN EAX TO X S
23 POP EAX ; POP EAX FROM STACK o
23 MOV EAX4 [EBP+A] -32
23 PUSH EAX
23 MOV EAX4 [EBP+A] -48
23 POP EBX
23 AND EAX EBX4
23 MOV [EBP+A] EAX4 -52 ; AND g
23 MOV EAX4 [EBP+A] -52
23 CMP EAX4 0 ; CONDITION COMPARE
23 JE $label6[24] ; JUMP IF EQUAL K
0 L
23 MOV EAX IMM4 , 2
23 MOV [EBP+A] EAX4 -44 ; ASSIGN X TO X d
23 MOV MEM IMM4 @$_SLN_, 23
23 MOV EAX MEM4 @$_ERR_
23 CMP EAX4 0
23 JNE $labelend ; CALL Normal Runtime Error Hook @
23 MOV MEM IMM4 @$_SLN_, 23
23 MOV EAX MEM4 @$_ERR_
23 CMP EAX4 0
23 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
24 LINE : If JoyX# = 0 And JoyY# < 0 : JoyAngle# , 90
0 L
24 MOV EAX IMM4 , 0
24 PUSH EAX ; PUSH TO STACK r
24 MOV EBX IMM4 [5
24 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z Z
24 POP EBX ; POP EBX FROM STACK o
24 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
24 MOV EAX4 [EBP+A] -12
24 PUSH EAX ; PUSH TO STACK C
24 MOV EAX4 [EBP+A] -16
24 PUSH EAX ; PUSH TO STACK C
24 MOV EBX IMM4 [9
24 CALL EBX ; CALL [dbprocore.dll ,?GreaterLFF@@YAKMM@Z
24 POP EBX ; POP EBX FROM STACK o
24 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
24 POP EAX ; POP EAX FROM STACK o
24 MOV EAX IMM4 , 0
24 PUSH EAX ; PUSH TO STACK C
24 MOV EBX IMM4 [5
24 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z Z
24 POP EBX ; POP EBX FROM STACK o
24 MOV [EBP+A] EAX4 -40 ; ASSIGN EAX TO X S
24 MOV EAX4 [EBP+A] -40
24 PUSH EAX ; PUSH TO STACK C
24 MOV EAX4 [EBP+A] -28
24 PUSH EAX ; PUSH TO STACK C
24 MOV EBX IMM4 [9
24 CALL EBX ; CALL [dbprocore.dll ,?GreaterLFF@@YAKMM@Z
24 POP EBX ; POP EBX FROM STACK o
24 MOV [EBP+A] EAX4 -48 ; ASSIGN EAX TO X S
24 POP EAX ; POP EAX FROM STACK o
24 MOV EAX4 [EBP+A] -48
24 PUSH EAX
24 MOV EAX4 [EBP+A] -32
24 POP EBX
24 AND EAX EBX4
24 MOV [EBP+A] EAX4 -52 ; AND l
24 MOV EAX4 [EBP+A] -52
24 CMP EAX4 0 ; CONDITION COMPARE
24 JE $label7[26] ; JUMP IF EQUAL K
0 L
24 MOV EAX IMM4 , 3
24 MOV [EBP+A] EAX4 -44 ; ASSIGN X TO X
24 MOV MEM IMM4 @$_SLN_, 24
24 MOV EAX MEM4 @$_ERR_
24 CMP EAX4 0
24 JNE $labelend ; CALL Normal Runtime Error Hook @
24 MOV MEM IMM4 @$_SLN_, 24
24 MOV EAX MEM4 @$_ERR_
24 CMP EAX4 0
24 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
25 LINE : If JoyX# = 0 And JoyY# > 0 : JoyAngle# , 270
0 L
26 LINE : If JoyY# = 0 And JoyX# < 0 : JoyAngle# , 180
0 L
26 MOV EAX IMM4 , 0
26 PUSH EAX
26 MOV EAX4 [EBP+A] -44
26 MOV EBX EAX4
26 POP EDX
26 MOV EAX IMM4 0
26 CMP EDX EBX4
26 SETE EAX
26 MOV [EBP+A] EAX4 -20 ; EQUAL e
26 MOV EAX4 [EBP+A] -20
26 CMP EAX4 0 ; CONDITION COMPARE r
26 JE $label8[27] ; JUMP IF EQUAL K
0 L
26 MOV EAX IMM4 , 0
26 PUSH EAX ; PUSH TO STACK
26 MOV EBX IMM4 [5
26 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z Z
26 POP EBX ; POP EBX FROM STACK o
26 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
26 MOV EAX4 [EBP+A] -36
26 PUSH EAX ; PUSH TO STACK C
26 MOV EAX4 [EBP+A] -12
26 PUSH EAX ; PUSH TO STACK C
26 MOV EBX IMM4 [13
26 CALL EBX ; CALL [dbprocore.dll ,?SubFFF@@YAKMM@Z
26 POP EBX ; POP EBX FROM STACK u
26 MOV [EBP+A] EAX4 -24 ; ASSIGN EAX TO X A
26 POP EAX ; POP EAX FROM STACK u
26 MOV EAX4 [EBP+A] -24
26 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X e
26 MOV MEM IMM4 @$_SLN_, 26
26 MOV EAX MEM4 @$_ERR_
26 CMP EAX4 0
26 JNE $labelend ; CALL Normal Runtime Error Hook @
26 MOV MEM IMM4 @$_SLN_, 26
26 MOV EAX MEM4 @$_ERR_
26 CMP EAX4 0
26 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
27 LINE : If JoyY# = 0 And JoyX# > 0 : JoyAngle# , 0 0
0 L
27 MOV EAX IMM4 , 1
27 PUSH EAX
27 MOV EAX4 [EBP+A] -44
27 MOV EBX EAX4
27 POP EDX
27 MOV EAX IMM4 0
27 CMP EDX EBX4
27 SETE EAX
27 MOV [EBP+A] EAX4 -20 ; EQUAL L
27 MOV EAX4 [EBP+A] -20
27 CMP EAX4 0 ; CONDITION COMPARE r
27 JE $label9[28] ; JUMP IF EQUAL K
0 L
27 MOV EAX IMM4 , 180
27 PUSH EAX ; PUSH TO STACK
27 MOV EBX IMM4 [5
27 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
27 POP EBX ; POP EBX FROM STACK o
27 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
27 MOV EAX4 [EBP+A] -36
27 PUSH EAX ; PUSH TO STACK C
27 MOV EAX4 [EBP+A] -12
27 PUSH EAX ; PUSH TO STACK C
27 MOV EBX IMM4 [13
27 CALL EBX ; CALL [dbprocore.dll ,?SubFFF@@YAKMM@Z
27 POP EBX ; POP EBX FROM STACK u
27 MOV [EBP+A] EAX4 -24 ; ASSIGN EAX TO X
27 POP EAX ; POP EAX FROM STACK u
27 MOV EAX4 [EBP+A] -24
27 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X e
27 MOV MEM IMM4 @$_SLN_, 27
27 MOV EAX MEM4 @$_ERR_
27 CMP EAX4 0
27 JNE $labelend ; CALL Normal Runtime Error Hook @
27 MOV MEM IMM4 @$_SLN_, 27
27 MOV EAX MEM4 @$_ERR_
27 CMP EAX4 0
27 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
28 LINE : EndFunction JoyAngle#
0 L
28 MOV EAX IMM4 , 2
28 PUSH EAX
28 MOV EAX4 [EBP+A] -44
28 MOV EBX EAX4
28 POP EDX
28 MOV EAX IMM4 0
28 CMP EDX EBX4
28 SETE EAX
28 MOV [EBP+A] EAX4 -20 ; EQUAL L
28 MOV EAX4 [EBP+A] -20
28 CMP EAX4 0 ; CONDITION COMPARE r
28 JE $label10[29] ; JUMP IF EQUAL M
0 L
28 MOV EAX IMM4 , 180
28 PUSH EAX ; PUSH TO STACK
28 MOV EBX IMM4 [5
28 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
28 POP EBX ; POP EBX FROM STACK o
28 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
28 MOV EAX4 [EBP+A] -36
28 PUSH EAX ; PUSH TO STACK C
28 MOV EAX4 [EBP+A] -12
28 PUSH EAX ; PUSH TO STACK C
28 MOV EBX IMM4 [13
28 CALL EBX ; CALL [dbprocore.dll ,?SubFFF@@YAKMM@Z
28 POP EBX ; POP EBX FROM STACK u
28 MOV [EBP+A] EAX4 -24 ; ASSIGN EAX TO X A
28 POP EAX ; POP EAX FROM STACK u
28 MOV EAX4 [EBP+A] -24
28 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X
28 MOV MEM IMM4 @$_SLN_, 28
28 MOV EAX MEM4 @$_ERR_
28 CMP EAX4 0
28 JNE $labelend ; CALL Normal Runtime Error Hook @
28 MOV MEM IMM4 @$_SLN_, 28
28 MOV EAX MEM4 @$_ERR_
28 CMP EAX4 0
28 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
29 LINE : Function Test_Function() 0
0 L
29 MOV EAX IMM4 , 3
29 PUSH EAX
29 MOV EAX4 [EBP+A] -44
29 MOV EBX EAX4
29 POP EDX
29 MOV EAX IMM4 0
29 CMP EDX EBX4
29 SETE EAX
29 MOV [EBP+A] EAX4 -20 ; EQUAL K
29 MOV EAX4 [EBP+A] -20
29 CMP EAX4 0 ; CONDITION COMPARE r
29 JE $label11[31] ; JUMP IF EQUAL #
0 L
29 MOV EAX IMM4 , 360
29 PUSH EAX ; PUSH TO STACK
29 MOV EBX IMM4 [5
29 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
29 POP EBX ; POP EBX FROM STACK o
29 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X A
29 MOV EAX4 [EBP+A] -36
29 PUSH EAX ; PUSH TO STACK C
29 MOV EAX4 [EBP+A] -12
29 PUSH EAX ; PUSH TO STACK C
29 MOV EBX IMM4 [13
29 CALL EBX ; CALL [dbprocore.dll ,?SubFFF@@YAKMM@Z
29 POP EBX ; POP EBX FROM STACK u
29 MOV [EBP+A] EAX4 -24 ; ASSIGN EAX TO X S
29 POP EAX ; POP EAX FROM STACK u
29 MOV EAX4 [EBP+A] -24
29 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X
29 MOV MEM IMM4 @$_SLN_, 29
29 MOV EAX MEM4 @$_ERR_
29 CMP EAX4 0
29 JNE $labelend ; CALL Normal Runtime Error Hook @
29 MOV MEM IMM4 @$_SLN_, 29
29 MOV EAX MEM4 @$_ERR_
29 CMP EAX4 0
29 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
30 LINE : repeat n
0 L
31 LINE : jz# , Button_MoveAngle() 0
0 L
31 MOV EAX IMM4 , 0
31 PUSH EAX ; PUSH TO STACK r
31 MOV EBX IMM4 [5
31 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
31 POP EBX ; POP EBX FROM STACK o
31 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X #
31 MOV EAX4 [EBP+A] -12
31 PUSH EAX ; PUSH TO STACK C
31 MOV EAX4 [EBP+A] -28
31 PUSH EAX ; PUSH TO STACK C
31 MOV EBX IMM4 [10
31 CALL EBX ; CALL [dbprocore.dll ,?LessLFF@@YAKMM@Z
31 POP EBX ; POP EBX FROM STACK o
31 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
31 POP EAX ; POP EAX FROM STACK o
31 MOV EAX IMM4 , 0
31 PUSH EAX ; PUSH TO STACK C
31 MOV EBX IMM4 [5
31 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
31 POP EBX ; POP EBX FROM STACK o
31 MOV [EBP+A] EAX4 -40 ; ASSIGN EAX TO X S
31 MOV EAX4 [EBP+A] -40
31 PUSH EAX ; PUSH TO STACK C
31 MOV EAX4 [EBP+A] -16
31 PUSH EAX ; PUSH TO STACK C
31 MOV EBX IMM4 [8
31 CALL EBX ; CALL [dbprocore.dll ,?EqualLFF@@YAKMM@Z
31 POP EBX ; POP EBX FROM STACK o
31 MOV [EBP+A] EAX4 -48 ; ASSIGN EAX TO X S
31 POP EAX ; POP EAX FROM STACK o
31 MOV EAX4 [EBP+A] -32
31 PUSH EAX
31 MOV EAX4 [EBP+A] -48
31 POP EBX
31 AND EAX EBX4
31 MOV [EBP+A] EAX4 -52 ; AND g
31 MOV EAX4 [EBP+A] -52
31 CMP EAX4 0 ; CONDITION COMPARE
31 JE $label12[32] ; JUMP IF EQUAL C
0 L
31 MOV EAX IMM4 , 90
31 PUSH EAX ; PUSH TO STACK
31 MOV EBX IMM4 [5
31 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
31 POP EBX ; POP EBX FROM STACK o
31 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
31 MOV EAX4 [EBP+A] -12
31 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X
31 MOV MEM IMM4 @$_SLN_, 31
31 MOV EAX MEM4 @$_ERR_
31 CMP EAX4 0
31 JNE $labelend ; CALL Normal Runtime Error Hook @
31 MOV MEM IMM4 @$_SLN_, 31
31 MOV EAX MEM4 @$_ERR_
31 CMP EAX4 0
31 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
32 LINE : Text 10, 700, "Call From Test Function: " + STR$(jz#)
0 L
32 MOV EAX IMM4 , 0
32 PUSH EAX ; PUSH TO STACK r
32 MOV EBX IMM4 [5
32 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
32 POP EBX ; POP EBX FROM STACK o
32 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
32 MOV EAX4 [EBP+A] -12
32 PUSH EAX ; PUSH TO STACK C
32 MOV EAX4 [EBP+A] -28
32 PUSH EAX ; PUSH TO STACK C
32 MOV EBX IMM4 [9
32 CALL EBX ; CALL [dbprocore.dll ,?GreaterLFF@@YAKMM@Z
32 POP EBX ; POP EBX FROM STACK o
32 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
32 POP EAX ; POP EAX FROM STACK o
32 MOV EAX IMM4 , 0
32 PUSH EAX ; PUSH TO STACK C
32 MOV EBX IMM4 [5
32 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
32 POP EBX ; POP EBX FROM STACK o
32 MOV [EBP+A] EAX4 -40 ; ASSIGN EAX TO X S
32 MOV EAX4 [EBP+A] -40
32 PUSH EAX ; PUSH TO STACK C
32 MOV EAX4 [EBP+A] -16
32 PUSH EAX ; PUSH TO STACK C
32 MOV EBX IMM4 [8
32 CALL EBX ; CALL [dbprocore.dll ,?EqualLFF@@YAKMM@Z
32 POP EBX ; POP EBX FROM STACK o
32 MOV [EBP+A] EAX4 -48 ; ASSIGN EAX TO X
32 POP EAX ; POP EAX FROM STACK o
32 MOV EAX4 [EBP+A] -32
32 PUSH EAX
32 MOV EAX4 [EBP+A] -48
32 POP EBX
32 AND EAX EBX4
32 MOV [EBP+A] EAX4 -52 ; AND g
32 MOV EAX4 [EBP+A] -52
32 CMP EAX4 0 ; CONDITION COMPARE
32 JE $label13[33] ; JUMP IF EQUAL C
0 L
32 MOV EAX IMM4 , 270
32 PUSH EAX ; PUSH TO STACK
32 MOV EBX IMM4 [5
32 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
32 POP EBX ; POP EBX FROM STACK o
32 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
32 MOV EAX4 [EBP+A] -12
32 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X e
32 MOV MEM IMM4 @$_SLN_, 32
32 MOV EAX MEM4 @$_ERR_
32 CMP EAX4 0
32 JNE $labelend ; CALL Normal Runtime Error Hook @
32 MOV MEM IMM4 @$_SLN_, 32
32 MOV EAX MEM4 @$_ERR_
32 CMP EAX4 0
32 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
33 LINE : sync 1
0 L
33 MOV EAX IMM4 , 0
33 PUSH EAX ; PUSH TO STACK r
33 MOV EBX IMM4 [5
33 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
33 POP EBX ; POP EBX FROM STACK o
33 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X #
33 MOV EAX4 [EBP+A] -12
33 PUSH EAX ; PUSH TO STACK C
33 MOV EAX4 [EBP+A] -16
33 PUSH EAX ; PUSH TO STACK C
33 MOV EBX IMM4 [10
33 CALL EBX ; CALL [dbprocore.dll ,?LessLFF@@YAKMM@Z
33 POP EBX ; POP EBX FROM STACK o
33 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
33 POP EAX ; POP EAX FROM STACK o
33 MOV EAX IMM4 , 0
33 PUSH EAX ; PUSH TO STACK C
33 MOV EBX IMM4 [5
33 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
33 POP EBX ; POP EBX FROM STACK o
33 MOV [EBP+A] EAX4 -40 ; ASSIGN EAX TO X
33 MOV EAX4 [EBP+A] -40
33 PUSH EAX ; PUSH TO STACK C
33 MOV EAX4 [EBP+A] -28
33 PUSH EAX ; PUSH TO STACK C
33 MOV EBX IMM4 [8
33 CALL EBX ; CALL [dbprocore.dll ,?EqualLFF@@YAKMM@Z
33 POP EBX ; POP EBX FROM STACK o
33 MOV [EBP+A] EAX4 -48 ; ASSIGN EAX TO X
33 POP EAX ; POP EAX FROM STACK o
33 MOV EAX4 [EBP+A] -32
33 PUSH EAX
33 MOV EAX4 [EBP+A] -48
33 POP EBX
33 AND EAX EBX4
33 MOV [EBP+A] EAX4 -52 ; AND g
33 MOV EAX4 [EBP+A] -52
33 CMP EAX4 0 ; CONDITION COMPARE
33 JE $label14[34] ; JUMP IF EQUAL C
0 L
33 MOV EAX IMM4 , 180
33 PUSH EAX ; PUSH TO STACK
33 MOV EBX IMM4 [5
33 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
33 POP EBX ; POP EBX FROM STACK o
33 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
33 MOV EAX4 [EBP+A] -12
33 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X
33 MOV MEM IMM4 @$_SLN_, 33
33 MOV EAX MEM4 @$_ERR_
33 CMP EAX4 0
33 JNE $labelend ; CALL Normal Runtime Error Hook @
33 MOV MEM IMM4 @$_SLN_, 33
33 MOV EAX MEM4 @$_ERR_
33 CMP EAX4 0
33 JNE $labelend ; CALL Normal Runtime Error Hook @
0 L
34 LINE : Until Returnkey() = 1 o
0 L
34 MOV EAX IMM4 , 0
34 PUSH EAX ; PUSH TO STACK r
34 MOV EBX IMM4 [5
34 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
34 POP EBX ; POP EBX FROM STACK o
34 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
34 MOV EAX4 [EBP+A] -12
34 PUSH EAX ; PUSH TO STACK C
34 MOV EAX4 [EBP+A] -16
34 PUSH EAX ; PUSH TO STACK C
34 MOV EBX IMM4 [9
34 CALL EBX ; CALL [dbprocore.dll ,?GreaterLFF@@YAKMM@Z
34 POP EBX ; POP EBX FROM STACK o
34 MOV [EBP+A] EAX4 -32 ; ASSIGN EAX TO X S
34 POP EAX ; POP EAX FROM STACK o
34 MOV EAX IMM4 , 0
34 PUSH EAX ; PUSH TO STACK C
34 MOV EBX IMM4 [5
34 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
34 POP EBX ; POP EBX FROM STACK o
34 MOV [EBP+A] EAX4 -40 ; ASSIGN EAX TO X S
34 MOV EAX4 [EBP+A] -40
34 PUSH EAX ; PUSH TO STACK C
34 MOV EAX4 [EBP+A] -28
34 PUSH EAX ; PUSH TO STACK C
34 MOV EBX IMM4 [8
34 CALL EBX ; CALL [dbprocore.dll ,?EqualLFF@@YAKMM@Z
34 POP EBX ; POP EBX FROM STACK o
34 MOV [EBP+A] EAX4 -48 ; ASSIGN EAX TO X S
34 POP EAX ; POP EAX FROM STACK o
34 MOV EAX4 [EBP+A] -32
34 PUSH EAX
34 MOV EAX4 [EBP+A] -48
34 POP EBX
34 AND EAX EBX4
34 MOV [EBP+A] EAX4 -52 ; AND g
34 MOV EAX4 [EBP+A] -52
34 CMP EAX4 0 ; CONDITION COMPARE
34 JE $label15[35] ; JUMP IF EQUAL C
0 L
34 MOV EAX IMM4 , 0
34 PUSH EAX ; PUSH TO STACK
34 MOV EBX IMM4 [5
34 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
34 POP EBX ; POP EBX FROM STACK o
34 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X S
34 MOV EAX4 [EBP+A] -12
34 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X
34 MOV MEM IMM4 @$_SLN_, 34
34 MOV EAX MEM4 @$_ERR_
34 CMP EAX4 0
34 JNE $labelend ; CALL Normal Runtime Error Hook @
34 MOV MEM IMM4 @$_SLN_, 34
34 MOV EAX MEM4 @$_ERR_
34 CMP EAX4 0
34 JNE $labelend ; CALL Normal Runtime Error Hook @
35 MOV EAX4 [EBP+A] -8 ; ASSIGN X TO EAX
35 MOV ESP EBP ; MOV ESP EBP K
35 POP EBP ; POP EBP K
35 RET ; RETURN #
0 L
35 LINE : EndFunction k
0 L
36 LINE : EndFunction k
0 L
37 LINE : EndFunction k
0 L
38 LINE : EndFunction k
0 L
38 MOV EBX IMM4 [4
38 CALL EBX ; CALL [dbprocore.dll ,?EarlyEnd@@YAXXZ
38 JMP $labelend ; DIRECT JUMP X
38 MOV MEM IMM4 @$_SLN_, 38
38 MOV EAX MEM4 @$_ERR_
38 CMP EAX4 0
38 JNE $labelend ; CALL Normal Runtime Error Hook d
0 L
38 PUSH EBP ; PUSH EBP K
38 MOV EBP ESP ; MOV EBP ESP K
38 SUB ESP 44 ; SUB ESP A
38 MOV EAX ESP
38 MOV ECX IMM4 10
38 MOV SIB[EAX:ECX*4],IMM4 , 0
38 LOOP ECX , -9 ; CLEAR STACK X
38 MOV EAX IMM4 , 0
38 MOV [EBP+A] EAX4 -20 ; ASSIGN X TO X S
38 MOV EAX IMM4 , 0
38 MOV [EBP+A] EAX4 -24 ; ASSIGN X TO X
38 MOV EAX IMM4 , 0
38 MOV [EBP+A] EAX4 -36 ; ASSIGN X TO X K
0 L
39 LINE : EndFunction k
0 L
0 L
40 LINE : EndFunction k
0 L
0 L
40 CALL MEM $label Button_MoveAngle ; DIRECT SUBCALL
40 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
40 MOV MEM IMM4 @$_SLN_, 40
40 MOV EAX MEM4 @$_ERR_
40 CMP EAX4 0
40 JNE $labelend ; CALL Normal Runtime Error Hook d
40 MOV EAX4 [EBP+A] -12
40 PUSH EAX ; PUSH TO STACK r
40 MOV EBX IMM4 [5
40 CALL EBX ; CALL [dbprocore.dll ,?CastLtoF@@YAKH@Z
40 POP EBX ; POP EBX FROM STACK o
40 MOV [EBP+A] EAX4 -16 ; ASSIGN EAX TO X
40 MOV EAX4 [EBP+A] -16
40 MOV [EBP+A] EAX4 -8 ; ASSIGN X TO X
40 MOV MEM IMM4 @$_SLN_, 40
40 MOV EAX MEM4 @$_ERR_
40 CMP EAX4 0
40 JNE $labelend ; CALL Normal Runtime Error Hook d
0 L
41 LINE : EndFunction k
0 L
0 L
41 MOV EAX4 [EBP+A] -8
41 PUSH EAX ; PUSH TO STACK r
41 MOV EAX4 [EBP+A] -20
41 PUSH EAX ; PUSH TO STACK r
41 MOV EBX IMM4 [14
41 CALL EBX ; CALL [DBProTextDebug.dll ,?Str@@YAKKM@Z
41 MOV [EBP+A] EAX4 -20 ; ASSIGN EAX TO X
41 POP EBX ; POP EBX FROM STACK o
41 POP EBX ; POP EBX FROM STACK o
41 MOV MEM IMM4 @$_SLN_, 41
41 MOV EAX MEM4 @$_ERR_
41 CMP EAX4 0
41 JNE $labelend ; CALL Normal Runtime Error Hook d
41 MOV EAX4 [EBP+A] -20
41 PUSH EAX ; PUSH TO STACK r
41 MOV EAX IMM4 $$1
41 PUSH EAX ; PUSH TO STACK l
41 MOV EAX4 [EBP+A] -24
41 PUSH EAX ; PUSH TO STACK
41 MOV EBX IMM4 [15
41 CALL EBX ; CALL [dbprocore.dll ,?AddSSS@@YAKKKK@Z Z
41 POP EBX ; POP EBX FROM STACK e
41 MOV [EBP+A] EAX4 -24 ; ASSIGN EAX TO X
41 POP EAX ; POP EAX FROM STACK
41 POP EAX ; POP EAX FROM STACK e
41 MOV EAX4 [EBP+A] -24
41 PUSH EAX ; PUSH TO STACK l
41 MOV EAX IMM4 , 700
41 PUSH EAX ; PUSH TO STACK C
41 MOV EAX IMM4 , 10
41 PUSH EAX ; PUSH TO STACK l
41 MOV EBX IMM4 [16
41 CALL EBX ; CALL [DBProTextDebug.dll ,?BasicText@@YAXHHK@Z A
41 POP EBX ; POP EBX FROM STACK q
41 POP EBX ; POP EBX FROM STACK a
41 POP EBX ; POP EBX FROM STACK
41 MOV MEM IMM4 @$_SLN_, 41
41 MOV EAX MEM4 @$_ERR_
41 CMP EAX4 0
41 JNE $labelend ; CALL Normal Runtime Error Hook F
0 L
42 LINE : EndFunction k
0 L
42 MOV EBX IMM4 [17
42 CALL EBX ; CALL [dbprocore.dll ,?Sync@@YAXXZ
42 MOV MEM IMM4 @$_SLN_, 42
42 MOV EAX MEM4 @$_ERR_
42 CMP EAX4 0
42 JNE $labelend ; CALL Normal Runtime Error Hook
39 MOV EBX IMM4 [18
39 CALL EBX ; CALL [dbprocore.dll ,?ProcessMessages@@YAKXZ
39 CMP EAX4 1 ; CONDITION COMPARE .
39 JE $labelend ; JUMP IF EQUAL
0 L
43 LINE : EndFunction k
0 L
43 MOV EBX IMM4 [19
43 CALL EBX ; CALL [DBProInputDebug.dll ,?ReturnKey@@YAHXZ
43 MOV [EBP+A] EAX4 -12 ; ASSIGN EAX TO X
43 MOV MEM IMM4 @$_SLN_, 43
43 MOV EAX MEM4 @$_ERR_
43 CMP EAX4 0
43 JNE $labelend ; CALL Normal Runtime Error Hook F
43 MOV EAX IMM4 , 1
43 PUSH EAX
43 MOV EAX4 [EBP+A] -12
43 MOV EBX EAX4
43 POP EDX
43 MOV EAX IMM4 0
43 CMP EDX EBX4
43 SETE EAX
43 MOV [EBP+A] EAX4 -40 ; EQUAL
43 MOV EAX4 [EBP+A] -40
43 CMP EAX4 0 ; CONDITION COMPARE ,
43 JE $label16[39] ; JUMP IF EQUAL
39 MOV MEM IMM4 @$_SLN_, 39
39 MOV EAX MEM4 @$_ERR_
39 CMP EAX4 0
39 JNE $labelend ; CALL Normal Runtime Error Hook
44 MOV EAX4 [EBP+A] -20
44 PUSH EAX ; PUSH TO STACK l
44 MOV EBX IMM4 [20
44 CALL EBX ; CALL [dbprocore.dll ,?FreeSS@@YAKK@Z
44 POP EBX ; POP EBX FROM STACK d
44 MOV EAX4 [EBP+A] -24
44 PUSH EAX ; PUSH TO STACK l
44 MOV EBX IMM4 [20
44 CALL EBX ; CALL [dbprocore.dll ,?FreeSS@@YAKK@Z
44 POP EBX ; POP EBX FROM STACK o
44 MOV EAX4 [EBP+A] -36
44 PUSH EAX ; PUSH TO STACK l
44 MOV EBX IMM4 [20
44 CALL EBX ; CALL [dbprocore.dll ,?FreeSS@@YAKK@Z
44 POP EBX ; POP EBX FROM STACK r
44 MOV ESP EBP ; MOV ESP EBP K
44 POP EBP ; POP EBP Z
44 RET ; RETURN
0 L
44 LINE : EndFunction k
0 L
44 MOV EAX MEM4 @$_REK_
44 CMP EAX4 0
44 JNE LEAP
44 MOV EBX IMM4 [21
44 CALL EBX ; CALL [dbprocore.dll ,?Quit@@YAKXZ
44 MOV ESP MEM4 @$_ESP_ ; RESTORE STACK FROM MEM p
44 POP REGISTERS ; POP REGISTERS
0 L
44 RET ; RETURN Y
VARIABLES:
@$_ESP_=0 [STRUCT@dword]
@$_ERR_=4 [STRUCT@dword]
@$_ESC_=8 [STRUCT@dword]
@$_REK_=12 [STRUCT@dword]
@$_SLN_=16 [STRUCT@dword]
@$_TEMPA_=20 [STRUCT@dword]
@$_TEMPB_=24 [STRUCT@dword]
@$L0=28 [STRUCT@integer]
@$L1=32 [STRUCT@integer]
@$L2=36 [STRUCT@integer]
SIZE OF VARIABLE BUFFER = 40
STRING:
>>1=Call From Test Function:
DLLS:
>>1=DBProSetupDebug.dll
>>2=dbprocore.dll
>>3=DBProInputDebug.dll
>>4=DBProTextDebug.dll
>>5=DBProBasic2DDebug.dll
>>6=DBProSystemDebug.dll
COMMANDS:
>>1=1,?SetDisplayModeEx@@YAXHHH@Z
>>2=1,?SetWindowModeOff@@YAXXZ
>>3=2,?SyncOn@@YAXXZ
>>4=2,?EarlyEnd@@YAXXZ
>>5=2,?CastLtoF@@YAKH@Z
>>6=3,?JoystickX@@YAHXZ
>>7=3,?JoystickY@@YAHXZ
>>8=2,?EqualLFF@@YAKMM@Z
>>9=2,?GreaterLFF@@YAKMM@Z
>>10=2,?LessLFF@@YAKMM@Z
>>11=2,?DivFFF@@YAKMM@Z
>>12=2,?AtanFF@@YAKM@Z
>>13=2,?SubFFF@@YAKMM@Z
>>14=4,?Str@@YAKKM@Z
>>15=2,?AddSSS@@YAKKKK@Z
>>16=4,?BasicText@@YAXHHK@Z
>>17=2,?Sync@@YAXXZ
>>18=2,?ProcessMessages@@YAKXZ
>>19=3,?ReturnKey@@YAHXZ
>>20=2,?FreeSS@@YAKK@Z
>>21=2,?Quit@@YAKXZ
LABELS:
$label Button_MoveAngle code:9 data:0 byte:196
$label Test_Function code:38 data:0 byte:3399
$label0[15] code:15 data:0 byte:691
$label10[29] code:29 data:0 byte:2306
$label11[31] code:31 data:0 byte:2467
$label12[32] code:32 data:0 byte:2688
$label13[33] code:33 data:0 byte:2909
$label14[34] code:34 data:0 byte:3130
$label15[35] code:35 data:0 byte:3351
$label16[39] code:39 data:0 byte:3457
$label17[43] code:43 data:0 byte:3863
$label1[16] code:16 data:0 byte:841
$label2[13] code:13 data:0 byte:846
$label3[20] code:20 data:0 byte:986
$label4[22] code:22 data:0 byte:1223
$label5[23] code:23 data:0 byte:1423
$label6[24] code:24 data:0 byte:1623
$label7[26] code:26 data:0 byte:1823
$label8[27] code:27 data:0 byte:1984
$label9[28] code:28 data:0 byte:2145
$labelend code:44 data:0 byte:3912
DEBUG:
STRUCT@integer Overall Size:4
STRUCT@float Overall Size:4
STRUCT@string Overall Size:4
STRUCT@boolean Overall Size:1
STRUCT@byte Overall Size:1
STRUCT@word Overall Size:2
STRUCT@dword Overall Size:4
STRUCT@double float Overall Size:8
STRUCT@double integer Overall Size:8
STRUCT@label Overall Size:4
STRUCT@dabel Overall Size:4
STRUCT@integer array Overall Size:4
STRUCT@float array Overall Size:4
STRUCT@string array Overall Size:4
STRUCT@boolean array Overall Size:4
STRUCT@byte array Overall Size:4
STRUCT@word array Overall Size:4
STRUCT@dword array Overall Size:4
STRUCT@double float array Overall Size:4
STRUCT@double integer array Overall Size:4
STRUCT@anytype non casted Overall Size:4
STRUCT@userdefined var ptr Overall Size:4
STRUCT@userdefined array ptr Overall Size:4
FS@Button_MoveAngle Overall Size:52 Parameter Count:0
STRUCT@returnvalue TYPE>integer OFFSET>0
STRUCT@JoyAngle# TYPE>float OFFSET>4
STRUCT@$F0 TYPE>float OFFSET>8
STRUCT@JoyX# TYPE>float OFFSET>12
STRUCT@$L0 TYPE>integer OFFSET>16
STRUCT@$F1 TYPE>float OFFSET>20
STRUCT@JoyY# TYPE>float OFFSET>24
STRUCT@$L1 TYPE>integer OFFSET>28
STRUCT@MyAngle# TYPE>float OFFSET>32
STRUCT@$F2 TYPE>float OFFSET>36
STRUCT@Quad TYPE>integer OFFSET>40
STRUCT@$L3 TYPE>integer OFFSET>44
STRUCT@$L4 TYPE>integer OFFSET>48
FS@Test_Function Overall Size:40 Parameter Count:0
STRUCT@returnvalue TYPE>integer OFFSET>0
STRUCT@jz# TYPE>float OFFSET>4
STRUCT@$L0 TYPE>integer OFFSET>8
STRUCT@$F1 TYPE>float OFFSET>12
STRUCT@$S0 TYPE>string OFFSET>16
STRUCT@$S1 TYPE>string OFFSET>20
STRUCT@$L2 TYPE>integer OFFSET>24
STRUCT@$L3 TYPE>integer OFFSET>28
STRUCT@$S4 TYPE>string OFFSET>32
STRUCT@$L1 TYPE>integer OFFSET>36
I have attached the compiled EXE.