Seite 1 von 1

_If Not A XOr B_ in procedure

Verfasst: 18.11.2006 23:15
von #NULL
ein If Not A XOr B macht komische sachen, aber nur innerhalb der procedures. die variable B wird verändert. klammerung egal.

select
case - ich bin zu müde?
case - ich bin zu blöd?
case - hier stimmt was nicht? [schon bekannt?]

Code: Alles auswählen

A=0
B=0

If Not A XOr B
  Debug Str(A)+"    "+Str(B)
Else
  Debug Str(A)+"    "+Str(B)
EndIf
Debug ""
;####### ausgabe : 0    0




Procedure stonedXOR_byte(A.b,B.b)
  If Not A XOr B
    Debug Str(A)+"    "+Str(B)
  Else
    Debug Str(A)+"    "+Str(B)
  EndIf
  Debug ""
EndProcedure

stonedXOR_byte(0,0)
;####### ausgabe : 0    79

; 79 entspricht 01001111






Procedure stonedXOR_long(A.l,B.l)
  If Not A XOr B
    Debug Str(A)+"    "+Str(B)
  Else
    Debug Str(A)+"    "+Str(B)
  EndIf
  Debug ""
EndProcedure


stonedXOR_long(0,0)
;####### ausgabe : 0    2088856911

; 2088856911 entspricht 01111100 10000001 01101101 01001111






Procedure stonedXOR_word(A.w,B.w)
  If Not A XOr B
    Debug Str(A)+"    "+Str(B)
  Else
    Debug Str(A)+"    "+Str(B)
  EndIf
  Debug ""
EndProcedure


stonedXOR_word(0,0)
;####### ausgabe : 0    27983

; 27983 entspricht 01101101 01001111






Procedure stonedXOR_quad(A.q,B.q)
  If Not A XOr B
    Debug Str(A)+"    "+Str(B)
  Else
    Debug Str(A)+"    "+Str(B)
  EndIf
  Debug ""
EndProcedure


stonedXOR_quad(0,0)
;####### ausgabe : 0    0






Verfasst: 19.11.2006 09:43
von mk-soft
@#NULL,

BUG GEFUNDEN!!!!!!!!!!!!!!!!!!

Fehler liegt in der Funktion "XOr". Wer kann das mal Fred melden.

Verfasst: 21.11.2006 00:28
von Andre
mk-soft hat geschrieben:@#NULL,

BUG GEFUNDEN!!!!!!!!!!!!!!!!!!

Fehler liegt in der Funktion "XOr". Wer kann das mal Fred melden.
Habe ich eben per Mail an Fred und freak getan.

Kann aber trotzdem nicht schaden, wenn mal noch jemand im englischen Bug-Report-Forum eine kurze Beschreibung und das Beispiel postet.
(Als Merkzettel für Fred sozusagen... :wink:)

Verfasst: 21.11.2006 08:14
von #NULL
also in der proc ist die ausgabe die gleiche bei
If Not A XOr B
If A XOr B
If 1 XOr B
If 0 XOr B
..nämlich 0 für A, und 79 für B (im fall der byte-version)

wird die proc nur mit B definiert:
Procedure stonedXOR_byte(B.b) und mit stonedXOR_byte(0) aufgerufen
dann wird nach
If A XOr B
4198864 für A, und 79 für B ausgegeben, egal ob man A explizit als Protected deklariert oder nicht. bei Shared A bleibt A 0 (natürlich nur, insofern das äußere A auch wirklich 0 ist).


ich hab keinen account im engl. board

Verfasst: 23.11.2006 19:55
von mk-soft
Die Funktion "Or" und "And" laufen einwandfrei. Ist mir nur bei "XOr"