summaryrefslogtreecommitdiff
path: root/irdecoderunit.pas
diff options
context:
space:
mode:
Diffstat (limited to 'irdecoderunit.pas')
-rw-r--r--irdecoderunit.pas9
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;