diff options
Diffstat (limited to 'irdecoderunit.pas')
-rw-r--r-- | irdecoderunit.pas | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/irdecoderunit.pas b/irdecoderunit.pas index 5b9d045..cff9936 100644 --- a/irdecoderunit.pas +++ b/irdecoderunit.pas @@ -145,7 +145,8 @@ begin if eingabeLaenge>=length(eingabePuffer) then setlength(eingabePuffer,eingabeLaenge+1024); eingabePuffer[eingabeLaenge]:=(findeZeichen(lw and not $08) shl 1) or byte((lw and $08) <> 0); - inc(eingabeLaenge); + if ((not eingabePuffer[eingabeLaenge]) and (not 1)) <> 0 then + inc(eingabeLaenge); end; letztesZeichen[empf]:=lw; @@ -199,8 +200,10 @@ begin if mi<>ma then raise exception.create('Sanity-Check nicht bestanden: mi<>ma nach Bisektion!'); result:=mi; - if zeichenTabelle[result]<>lw then - raise exception.create('Kann Tastencode '''+inttohex(lw,4)+''' nicht finden!'); + if zeichenTabelle[result]<>lw then begin + writeln(stderr,'Kann Tastencode '''+inttohex(lw,4)+''' nicht finden, ignoriere Taste!'); + result:=not 0; + end; end; function tIRDecoder.findeBefehl(lw: longword): int64; |