diff --git a/Main.pas b/Main.pas index 4e67822..56d2393 100644 --- a/Main.pas +++ b/Main.pas @@ -62,8 +62,8 @@ TFieldDefinition = record (C: 'Zone'; R: '[0-9]*'; L: 4; T:Ord(etItuZone)), (C: 'Age'; R: '[0-9][0-9]'; L: 2; T:Ord(etAge)), (C: 'Power'; R: '([0-9]*)|(K)|(KW)|([0-9A]*[OTN]*)'; L: 4; T:Ord(etPower)), - (C: 'Number'; R: '([0-9]*)([LMHP])'; L: 4; T:Ord(etJaPref)), - (C: 'Number'; R: '([0-9]*)([LMHP])'; L: 7; T:Ord(etJaCity)) + (C: 'Number'; R: '([0-9AOTN]*)([LMHP])'; L: 4; T:Ord(etJaPref)), + (C: 'Number'; R: '([0-9AOTN]*)([LMHP])'; L: 7; T:Ord(etJaCity)) ); type diff --git a/Station.pas b/Station.pas index 9d6793e..d931bc3 100644 --- a/Station.pas +++ b/Station.pas @@ -350,6 +350,23 @@ function TStation.NrAsText: string; if Random < 0.97 then Result := StringReplace(Result, '9', 'N', [rfReplaceAll]); end; + + // for JARL ALLJA, ACAG contest + // The probability is adjusted to the domestic CW situation + if (Ini.RunMode <> rmHst) and (SentExchTypes.Exch2 in + [etJaPref, etJaCity]) and + (MyCall <> Ini.Call) then + begin + if Random < 0.4 then begin + Result := StringReplace(Result, '0', 'O', [rfReplaceAll]); + Result := StringReplace(Result, '00', 'TT', [rfReplaceAll]); + end + else if Random < 0.8 + then Result := StringReplace(Result, '0', 'T', [rfReplaceAll]); + + if Random < 0.1 + then Result := StringReplace(Result, '9', 'N', [rfReplaceAll]); + end; end;