From f1e889c718f57c1aca7233bcfd5da9123556555a Mon Sep 17 00:00:00 2001 From: mizu Date: Wed, 16 Jan 2013 02:12:04 +0000 Subject: [PATCH] git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@587 7061adef-622a-194b-ae81-725974e89856 --- build/tools/A9Ovl_Chk/a9ovlchk.exe | Bin 493056 -> 493056 bytes build/tools/A9Ovl_Chk/main.dcu | Bin 10994 -> 11236 bytes build/tools/A9Ovl_Chk/main.pas | 32 +++++++----- build/tools/A9Ovl_Chk/main.~pas | 78 +++++++++++++++++++---------- 4 files changed, 72 insertions(+), 38 deletions(-) diff --git a/build/tools/A9Ovl_Chk/a9ovlchk.exe b/build/tools/A9Ovl_Chk/a9ovlchk.exe index 2de45a3a8554b80b1374a8ece17996893b050a7d..136c373c58de07bfd9bcd7bdeb244d2915162657 100755 GIT binary patch delta 4318 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 Jl2l7q{tvn1sMY`g delta 4158 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 L$Av|j<*WV&J4|JS diff --git a/build/tools/A9Ovl_Chk/main.dcu b/build/tools/A9Ovl_Chk/main.dcu index ec3cf62775d44bc6e90f48c95720d81179b49c8c..f430c7cf7fcbc5a92169667f073b349126bbf3f8 100644 GIT binary patch delta 3978 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 0)) and (Rec.Name <> '.') and (Rec.Name <> '..') and (Rec.name<>'log.txt')then begin - Inc(Count); //ListBox_log.Items.Add('**********************************'); Writeln(flog,'**********************************'); sf := 'file: '+Rec.Name; @@ -163,7 +163,7 @@ begin seek( fsrl,romh.fat_offset+sizeof(TRom_Fat)*i); BlockRead( fsrl,fat,sizeof(fat),n);//top,bottom取得 if n <> sizeof(fat) then begin - s := s+'Cannot read fat id='+ inttostr(i); + s := 'file error'; break; end; //max_sectors = (DHT_OVERLAY_MAX/512 - total_sectors) / (nums-i); @@ -171,8 +171,10 @@ begin else max_sectors := 0; btm := fat.bottom and $fffffe00; //512単位 if (fat.bottom and $1ff)<>0 then inc(btm,512);//上方向に丸める - if max_sectors = 0 then begin//残検証サイズなければ丸ごと検証外 + if max_sectors = 0 then begin//最大達したら丸ごと検証外 top := fat.top; + sectors := (btm-top) shr 9;//div 512 + if (top and $1ff)<>0 then inc(sectors); ss := '(A9 Overlay の全部)'; end else begin top := fat.top and $fffffe00; //512単位 @@ -190,8 +192,8 @@ begin //ListBox_log.Items.Add(s); Writeln(flog,s); inc(noc_size,512); - inc(noc_sectors,1); - inc(all_sectors,1); + inc(noc_sectors); + inc(all_sectors); end; size := btm - top; sectors := size shr 9;//div 512 @@ -239,7 +241,10 @@ begin end else s := ' Open Error'; CloseFile(fsrl); Writeln(flog,s);//結果 - if (s='OK') or (s='NG') then s := 'done'; + if (s='OK') or (s='NG') then begin + s := 'done'; + Inc(Count); + end else inc(err_count); ss := sf + ' : ' + s; ListBox_log.Items.Add(ss); end; @@ -247,6 +252,10 @@ begin finally FindClose(Rec); end; + Writeln(flog,'********************************'); + Writeln(flog,'check files = '+ inttostr(Count)); + Writeln(flog,'error = '+ inttostr(err_count)); + CloseFile(flog); end; {$I+} @@ -263,12 +272,11 @@ begin ListBox_log.Clear; //指定ディレクトリのsrlファイルをチェック FileCount := CheckSrlHeader; - if FileCount>0 then begin + if FileCount>=0 then begin ListBox_log.Items.Add(' ------------------------------ '); - s := 'total '+inttostr(FileCount)+' files'; - end else if FileCount = 0 then s := ' file not ditect' ; - ListBox_log.Items.Add(s); - + s := ' '+inttostr(FileCount)+' files done'; + ListBox_log.Items.Add(s); + end; end; diff --git a/build/tools/A9Ovl_Chk/main.~pas b/build/tools/A9Ovl_Chk/main.~pas index 1d7de00..0b4efc4 100644 --- a/build/tools/A9Ovl_Chk/main.~pas +++ b/build/tools/A9Ovl_Chk/main.~pas @@ -89,7 +89,7 @@ function TForm1.CheckSrlHeader: integer; var Rec: TSearchRec; sf,s,ss: String; - i,n,Count: integer; + i,n,Count,err_count: integer; fsrl: file; flog:TextFile; romh: TRomh; @@ -101,7 +101,7 @@ begin {$I-} //ログファイル作成 ListBox_log.Items.Add('Create Log file'); - s := 'log.txt'; + s := ExtractFilePath(Application.Exename)+'log.txt'; AssignFile (flog,s); Rewrite(flog); if IOResult <> 0 then begin @@ -109,6 +109,7 @@ begin ListBox_log.Items.Add('faild') end else begin Count := 0; + err_count := 0; //指定ディレクトリからファイルを取り出す // ** 内容で判別しないので違うファイル置かないよう注意 ** if FindFirst(SrlDir + '*.*', faAnyFile, Rec) = 0 then @@ -118,9 +119,8 @@ begin if not((Rec.Attr and faDirectory > 0)) and (Rec.Name <> '.') and (Rec.Name <> '..') and (Rec.name<>'log.txt')then begin - Inc(Count); - //ListBox_log.Items.Add(' ********************************** '); - Writeln(flog,' ********************************** '); + //ListBox_log.Items.Add('**********************************'); + Writeln(flog,'**********************************'); sf := 'file: '+Rec.Name; //ListBox_log.Items.Add(sf); Writeln(flog,sf); @@ -163,25 +163,44 @@ begin seek( fsrl,romh.fat_offset+sizeof(TRom_Fat)*i); BlockRead( fsrl,fat,sizeof(fat),n);//top,bottom取得 if n <> sizeof(fat) then begin - s := s+'Cannot read fat id='+ inttostr(i); + s := 'file error'; break; end; - size := (fat.bottom - fat.top)+1; - sectors := size shr 9;//div 512 - if (size and $1ff) <>0 then inc(sectors); - size := sectors shl 9; - inc(all_sectors,sectors); //max_sectors = (DHT_OVERLAY_MAX/512 - total_sectors) / (nums-i); if (total_sectors < 1024)then max_sectors := (1024 - total_sectors) div (nums-i) else max_sectors := 0; - btm := fat.bottom; - if max_sectors = 0 then begin//残検証サイズなければ丸ごと検証外 + btm := fat.bottom and $fffffe00; //512単位 + if (fat.bottom and $1ff)<>0 then inc(btm,512);//上方向に丸める + if max_sectors = 0 then begin//最大達したら丸ごと検証外 top := fat.top; + sectors := (btm-top) shr 9;//div 512 + if (top and $1ff)<>0 then inc(sectors); ss := '(A9 Overlay の全部)'; end else begin + top := fat.top and $fffffe00; //512単位 + size := fat.top and $01ff; + if size<>0 then begin + inc(top,512);////上方向に丸める + //先頭の未検証部分 .. 不要? + s := 'offset'+inttostr(i)+' = 0x'+ inttohex(fat.top,8) + +' ; 0x'+ inttohex(fat.top,8) + +'-0x' + inttohex(top-1,8)+ss; + //ListBox_log.Items.Add(s); + Writeln(flog,s); + s := 'length'+ inttostr(i) + ' = 0x' + inttohex(size,4) + + ' ; '+ inttostr(size)+' bytes'; + //ListBox_log.Items.Add(s); + Writeln(flog,s); + inc(noc_size,512); + inc(noc_sectors); + inc(all_sectors); + end; + size := btm - top; + sectors := size shr 9;//div 512 + inc(all_sectors,sectors); if sectors > max_sectors then begin //最大割当サイズ超 - sectors := sectors - max_sectors;//検証されないセクタ数 - top := fat.top + max_sectors; + sectors := sectors - max_sectors;//残りセクタ数 + inc(top,max_sectors*512);//残り先頭 inc(total_sectors,max_sectors); ss := '(A9 Overlay の一部)'; end else begin //超過なし @@ -189,11 +208,11 @@ begin sectors := 0; end; end; - if sectors > 0 then begin + if sectors > 0 then begin//残りあり size := sectors shl 9; s := 'offset'+inttostr(i)+' = 0x'+ inttohex(top,8) +' ; 0x'+ inttohex(top,8) - +'-0x' + inttohex(btm,8)+ss; + +'-0x' + inttohex(btm-1,8)+ss; //ListBox_log.Items.Add(s); Writeln(flog,s); s := 'length'+ inttostr(i) + ' = 0x' + inttohex(size,4) @@ -205,12 +224,13 @@ begin end; end; if i = nums then begin //中断なし + //ListBox_log.Items.Add(' '); //ListBox_log.Items.Add('total sectors = '+inttostr(all_sectors)); //ListBox_log.Items.Add('no check sectors = '+inttostr(noc_sectors)); //ListBox_log.Items.Add('no check size = '+inttostr(noc_size)); - //ListBox_log.Items.Add(' '); //間をあける - Writeln(flog); //開業 + Writeln(flog); //改行 Writeln(flog,'total sectors = '+inttostr(all_sectors)); + Writeln(flog,'check sectors = '+inttostr(total_sectors)); Writeln(flog,'no check sectors = '+inttostr(noc_sectors)); Writeln(flog,'no check size = '+inttostr(noc_size)); if noc_size > 0 then s:= 'NG' @@ -221,14 +241,21 @@ begin end else s := ' Open Error'; CloseFile(fsrl); Writeln(flog,s);//結果 - if (s='OK') or (s='NG') then s := 'done'; + if (s='OK') or (s='NG') then begin + s := 'done'; + Inc(Count); + end else inc(err_count); ss := sf + ' : ' + s; ListBox_log.Items.Add(ss); - end; + end; until (FindNext(Rec) <> 0); finally FindClose(Rec); end; + Writeln(flog,'********************************'); + Writeln(flog,'check files = '+ inttostr(Count)); + Writeln(flog,'error = '+ inttostr(err_count)); + CloseFile(flog); end; {$I+} @@ -245,12 +272,11 @@ begin ListBox_log.Clear; //指定ディレクトリのsrlファイルをチェック FileCount := CheckSrlHeader; - if FileCount>0 then begin + if FileCount>=0 then begin ListBox_log.Items.Add(' ------------------------------ '); - s := 'total '+inttostr(FileCount)+' files'; - end else if FileCount = 0 then s := ' file not ditect' ; - ListBox_log.Items.Add(s); - + s := ' '+inttostr(FileCount)+' files done'; + ListBox_log.Items.Add(s); + end; end;