view scripts/mkdskindex @ 3194:2ecebda8716b

mfree.asm: Fix zero-day Block Map entry bug Previously, code assumed that the final entry in the block map would be used. This was true for CoCo but is not necessarily true (and is not true for mc09). Slight mod removes that implicit assumption; the code now works correctly on both platforms.
author Neal Crook <foofoobedoo@gmail.com>
date Tue, 30 May 2017 23:59:46 +0100
parents 7c917d36ea68
children
line wrap: on
line source

#!perl

# generate pretty index.html from directory of .dsks
# AAW 4/5/10


$dirtoget=$ARGV[0];

opendir(DSKD, $dirtoget) || die("Cannot open directory");

@dsks=readdir(DSKD);

&header;

print "<TABLE class=tab1>";

print "<TR id='header'><TD class='h1'>File</td><TD class='h1'>Name</td><TD class='h1'>Size</td><TD class='h1'>Created</td><TD class='h1'>Sectors</td><TD class='h1'>Format</td></tr>";

foreach $dsk (sort @dsks)
{

 if ($dsk =~ m/.*\.(dsk|img|DSK)$/)
 {
  @os9id = `os9 id $dirtoget/$dsk`;

  foreach $line (@os9id)
  {
   if ($line =~ m/Disk\sname\s+:\s+(.*)/)
   {
    $name = $1;
   } 
   elsif ($line =~ m/Disk\sformat\s+:.*\((.*)\)/)
   {
    $format = $1;
   }
   elsif ($line =~ m/Creation\sdate\s+:\s+(.*)/)
   {
    $created = $1;
   }
   elsif ($line =~ m/Total\ssectors\s+:\s+(.*)/)
   {
    $sectors = $1;
   }


  }  

  if ($dsk =~ m/_dw[\._]/)
  {
    $format = "DriveWire 3/4";
  }

  if ($dsk =~ m/_becker[\._]/)
  {
    $format = "DriveWire 3/4";
  }

  if ($dsk =~ m/_cocosdc[\._]/)
  {
    $format = "CoCo SDC";
  }

  if ($dsk =~ m/.*\.img/)
  {
    $format = "Other disk image";
  }

  if ($dsk =~ m/.*\.DSK/)
  {
    $format = "RSDOS";
    $created = "-";
    $sectors = "-";
  }

  $size = -s "$dirtoget/$dsk";

  $size = int($size / 1024) . "k";

  print "<TR class='r1'>";
  print "<td class='d1'><A HREF=$dsk>$dsk</A></td>";
  print "<TD class='d1'>$name</td>";
  print "<TD class='d1'>$size</td>";
  print "<td class='d1'>$created</td>";
  print "<td class='d1'>$sectors</td>";
  print "<TD class='d1'>$format</TD>";
  print "</tr>\r\n";
 
 }

 if ($dsk eq "ReadMe")
 {
  print "<td class='d1'><A HREF=$dsk>$dsk</A></td>";
  print "\r\n";
 }
}

print "</TABLE>";

&footer;

closedir(DSKD);





sub header
{
  print "<HTML><HEAD><TITLE>Latest disk images</TITLE>";

  print '<style type="text/css">';

  print 'body { margin: 0px; padding 0px; }';
  print 'td.h1 { font-family: arial; padding: 5px; padding-right: 10px; font-size:12px; color: #FFFFFF; background-color: #444444; }';
  print 'td.d1 { font-family: arial; padding: 5px; padding-right: 10px; font-size:12px; }';
  print 'table.tab1 { margin: 10px; border-collapse:collapse;}';

  print 'h4 { font-family: arial; padding: 10px;}';

  print "</style>";

  print "</HEAD><BODY>";
  print "<H4>NitrOS-9: Latest disk images</h4>";

}


sub footer
{
 print "</BODY></HTML>";


}