| 103 |  | else if datas = 'SWAPC_2BYTE' then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 104 |  | current_list.AddElem('SWAPC_2BYTE', 2) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 105 |  | else if datas = 'SWAPC_1BYTE' then | 
 
 
 
 
 
 
 
 
 
 
 | 106 | < | current_list.AddElem('SWAPC_1BYTE', 1) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 107 | < | else if datas = 'SWAPC_FIXARR_S' then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 108 | < | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 109 | < | ReadLn(descfile, line); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 110 | < | if Pos('h', line) > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 111 | < | datas := MidStr(line, Pos('db ', line) + 3, Pos('h', line) - (Pos('db ', line) + 3) ) | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 112 | < | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 113 | < | datas := MidStr(line, Pos('db ', line) + 3, Length(Line) - (Pos('db ', line) + 3) ); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 114 | < | i := current_list.AddArray('SWAPC_FIXARR_S', StrToInt('$'+datas)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 115 | < | current_list := TSwapList(current_list.Child(i)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 116 | < | end else if datas = 'SWAPC_VARARR_S' then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 117 | < | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 118 | < | ReadLn(descfile, line); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 119 | < | i := current_list.AddArray('SWAPC_VARARR_S', 0); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 120 | < | current_list := TSwapList(current_list.Child(i)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 121 | < | end else if datas = 'SWAPC_TMPL_PTR' then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 122 | < | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 123 | < | ReadLn(descfile, line); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 124 | < | datas := MidStr(line, Pos('dd ', line) + 4, 4); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 125 | < | current_list.AddElem('SWAPC_TMPL_PTR: ' + datas, 4); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 126 | < | end; | 
 
 
 
 
 
 
 
 
 | 106 | > | current_list.AddElem('SWAPC_1BYTE', 1); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 107 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 108 |  | if Pos('gTemplate_', line) = 1 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 109 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 149 |  | end else if datas = 'SWAPC_VARARR_S' then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 150 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 151 |  | ReadLn(descfile, line); | 
 
 
 
 
 
 
 
 
 
 
 | 152 | < | i := current_list.AddArray('SWAPC_VARARR_S', 0); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 152 | > | datas := MidStr(line, Pos(' d', line) + 4, Length(line) - (Pos(' d', line) + 3)); | 
 
 
 
 
 | 153 | > | if datas = 'SWAPC_8BYTE' then | 
 
 
 
 
 | 154 | > | i := current_list.AddArray('SWAPC_VARARR_S', 8) | 
 
 
 
 
 | 155 | > | else if datas = 'SWAPC_4BYTE' then | 
 
 
 
 
 | 156 | > | i := current_list.AddArray('SWAPC_VARARR_S', 4) | 
 
 
 
 
 | 157 | > | else if datas = 'SWAPC_2BYTE' then | 
 
 
 
 
 | 158 | > | i := current_list.AddArray('SWAPC_VARARR_S', 2) | 
 
 
 
 
 | 159 | > | else if datas = 'SWAPC_1BYTE' then | 
 
 
 
 
 | 160 | > | i := current_list.AddArray('SWAPC_VARARR_S', 1); | 
 
 
 
 
 
 
 
 
 
 
 | 161 |  | current_list := TSwapList(current_list.Child(i)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 162 |  | end else if datas = 'SWAPC_VARARR_E' then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 163 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 210 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 211 |  | function TSwapList.CloseArray: TSwapList; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 212 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 | 213 | < | Self.size := Self.size * Self.count; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 213 | > | if Self.name = 'SWAPC_FIXARR_S' then | 
 
 
 
 
 | 214 | > | Self.size := Self.size * Self.count | 
 
 
 
 
 | 215 | > | else | 
 
 
 
 
 | 216 | > | Self.size := Self.count; | 
 
 
 
 
 
 
 
 
 
 
 | 217 |  | Result := Self.parent; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 218 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 219 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 229 |  | Data:    TNodeData; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 230 |  | node:    PVirtualNode; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 231 |  | name:    String; | 
 
 
 
 
 
 
 
 
 | 241 | – | address: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 232 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 233 | < | procedure AddChilds(parent: PVirtualNode; SwapList: TSwapList); | 
 
 
 
 
 
 
 
 
 | 233 | > | procedure AddChilds(parent: PVirtualNode; SwapList: TSwapList; address: Integer); | 
 
 
 
 
 
 
 
 
 
 
 | 234 |  | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 235 |  | i: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 236 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 241 |  | data.TypeName := SwapList.Child(i).name; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 242 |  | data.Size := SwapList.Child(i).size; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 243 |  | data.Address := address; | 
 
 
 
 
 
 
 
 
 
 
 | 244 | < | if parent = nil then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 255 | < | address := address + data.Size; | 
 
 
 
 
 
 
 
 
 | 244 | > | address := address + data.Size; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 245 |  | node := AddVSTEntry(VST, parent, data); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 246 |  | if SwapList.Child(i) is TSwapList then | 
 
 
 
 
 
 
 
 
 
 
 | 247 | < | AddChilds(node, TSwapList(SwapList.Child(i))); | 
 
 
 
 
 
 
 
 
 | 247 | > | AddChilds(node, TSwapList(SwapList.Child(i)), address); | 
 
 
 
 
 
 
 
 
 
 
 | 248 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 249 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 250 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 253 |  | VST.Clear; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 254 |  | VST.BeginUpdate; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 255 |  |  | 
 
 
 
 
 
 
 
 
 | 267 | – | address := 0; | 
 
 
 
 
 
 
 
 
 | 268 | – |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 256 |  | name := list.Items.Strings[list.ItemIndex]; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 257 |  | for i := 0 to High(Types) do | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 258 |  | if Types[i].name = name then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 260 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 261 |  | if i < Length(Types) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 262 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 | 263 | < | AddChilds(nil, Types[i].SwapList); | 
 
 
 
 
 
 
 
 
 | 263 | > | AddChilds(nil, Types[i].SwapList, 0); | 
 
 
 
 
 
 
 
 
 
 
 | 264 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 265 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 266 |  | VST.EndUpdate; |