view scripts/bundi @ 1874:9db5440eef21

Converted to perl scripts
author boisy
date Thu, 11 Aug 2005 03:21:53 +0000
parents df5378cb9581
children 298e596aa143
line wrap: on
line source

#!/usr/bin/perl
#
# BUNDI - Build the Ultimate NitrOS-9 Disk Image
#
# This script builds the ULTIMATE NitrOS-9 disk image,
# complete with HDB-DOS drives!
#
# The resulting image has a NitrOS-9 partition and an HDB-DOS partition.
# The first drive of the HDB-DOS partition is the HDB-DOS distribution
# diskette.  The last drive is the NitrOS-9 boot disk.
#
# Size of image is 90,624 256-byte sectors, which fits in
# $00B100 OS-9 Offset in HDB-DOS
#
# ATTENTION!  Set the HDB-DOS offset in your HDB-DOS ROM here! (must be in decimal)
$hdbdos_offset = 45312;		# 0x00B100
# ATTENTION!  Set the number of HDB-DOS virtual disks (must be in decimal)
$num_hdbdos_disks = 128;
$NITROS9DIR = $ENV{'NITROS9DIR'};
$CLOUD9DIR = $ENV{'CLOUD9DIR'};


# Check for proper number of arguments
$numargs = $#ARGV + 1;
if ($numargs != 2)
{
	print "Usage: bundi <bootscript> <diskname>\n";
	exit;
}

$scriptname = $ARGV[0];
$diskname = $ARGV[1];


$multiplier = 2;
$os9_sectors = $hdbdos_offset * $multiplier;
printf("Number of sectors: %d\n", $os9_sectors);
$hdb_drives = $num_hdbdos_disks - 2;

print "########## PART  I ##########\n";
print "#                           #\n";
print "#    Assemble EVERYTHING!   #\n";
print "#                           #\n";
print "#############################\n\n";

print "Step 1 - Making the ENTIRE NitrOS-9 Project (could take a while)...\n";
#system("cd $NITROS9DIR; make dsk>&/dev/null");

print "Step 2 - Making the HDB-DOS Product...\n";
system("cd $CLOUD9DIR/Products/HDB-DOS/Software; make dsk>&/dev/null");

print "Step 3 - Making the Ved Product...\n";
system("cd $ENV{'CLOUD9DIR'}/Products/Ved/Software; make dsk>&/dev/null");

print "########## PART II ##########\n";
print "#                           #\n";
print "#   Prepare the Disk Image  #\n";
print "#                           #\n";
print "#############################\n\n";

print "Step 1 - Format the disk and make the boot disk\n";
system("os9 format -qe -l$os9_sectors tmp.dsk");
system("./$scriptname>&/dev/null");
system("os9 gen -b=bootfile -t=boottrack tmp.dsk>&/dev/null");
system("os9 copy -o=0 $NITROS9DIR/6309l2/modules/sysgo_dd tmp.dsk,sysgo");
system("os9 attr tmp.dsk,sysgo -epepr");
system("os9 dsave -e $NITROS9DIR/6309l2/nos96309l2_80d.dsk, tmp.dsk, >&/dev/null");
system("os9 dsave -e $NITROS9DIR/3rdparty/packages/uucpbb/uucpbb21_6309.dsk, tmp.dsk, >&/dev/null");
system("os9 dsave -e $NITROS9DIR/3rdparty/packages/cc/cc.dsk, tmp.dsk, >&/dev/null");
system("os9 dsave -e $NITROS9DIR/3rdparty/packages/basic09/basic09v010100.dsk, tmp.dsk, >&/dev/null");
system("os9 dsave -e $CLOUD9DIR/Products/Ved/Software/ved.dsk, tmp.dsk, >&/dev/null");
system("os9 format -qe -ss -dd boot.dsk");
system("os9 gen -b=bootfile -t=boottrack boot.dsk>&/dev/null");
system("rm bootfile boottrack");

print "Step 2 - Build the HDB-DOS drives\n";
system("rm hdbdrives.dsk");
system("decb dskini -h$hdb_drives hdbdrives.dsk");
system("rm hdbdrives2.dsk");
system("cat $CLOUD9DIR/Products/HDB-DOS/Software/hdbdos.dsk hdbdrives.dsk boot.dsk>hdbdrives2.dsk");
system("rm hdbdrives.dsk boot.dsk");
system("decb hdbconv hdbdrives2.dsk hdbdrives.dsk");
system("rm hdbdrives2.dsk");

print "Step 3 - Put it all together\n";
system("rm $diskname");
system("cat tmp.dsk hdbdrives.dsk>$diskname");
system("rm tmp.dsk hdbdrives.dsk");

print "Ok, we're done! The file $diskname is now a fresh disk image.\n";