Files
bds.mr.jtg/src.jtag/svf/jtag.svfAstRuntest.pas
T
2026-01-08 19:12:06 +01:00

111 lines
3.0 KiB
ObjectPascal

unit jtag.svfAstRuntest;
interface
uses
jtag.svfAstNode;
type
TsvfAstRuntest = class( TsvfAstNode)
private
fAllowData : boolean;
public
RunClock : AnsiString;
RunCount : AnsiString;
MinTime : AnsiString;
MaxTime : AnsiString;
RunState : byte;
EndState : byte;
public
constructor Create;
function AsText: AnsiString; override;
public
procedure BeginData;
procedure EndData;
end;
implementation
uses
jtag.svfProgram;
{ TsvfAstRuntest }
// @@@: Constructor/destructor ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Constructor/destructor
//
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ======================================================================================
// Constructor
// ======================================================================================
constructor TsvfAstRuntest.Create;
begin
inherited;
fAllowData := false;
RunClock := 'TCK';
RunCount := '';
MinTime := '';
MaxTime := '';
RunState := 1;
EndState := $FF;
end;
// ======================================================================================
// BeginData
// ======================================================================================
procedure TsvfAstRuntest.BeginData;
begin
fAllowData := true;
end;
// ======================================================================================
// EndData
// ======================================================================================
procedure TsvfAstRuntest.EndData;
begin
fAllowData := false;
end;
// ================================================================================================
// As Text
// ================================================================================================
function TsvfAstRuntest.AsText: AnsiString;
begin
result := 'RUNTEST';
if RunClock <> ''then
result := result +' '+ RunCount +' '+ RunClock;
if MinTime <> '' then
result := result +' '+ MinTime +' SEC';
if MaxTime <> '' then
result := result +' MAXIMUM '+ MaxTime +' SEC';
if EndState <> $FF then
begin
result := result +' ENDSTATE ';
case EndState of
stRESET : result := result +'RESET';
stIDLE : result := result +'IDLE';
stDRPAUSE : result := result +'DRPAUSE';
stIRPAUSE : result := result +'IRPAUSE';
else result := result +'InVaLiD';
end;
end;
result := result +';' +#13#10#13#10;
end;
end.