# Die 256 Bankdateien in fuenf verschachtelte BIN-Dateien wandeln # Fuer den Einsatz in den Megamodulen mit 3 EPROMs muessen noch die Dateien rom1+rom2 bzw. rom3+rom4 zusammengefuegt werden # AUTOR: Ulrich Zander # DATUM: 24.05.2021 # # *** Testversion # #!/usr/bin/perl -w use Cwd; use strict; # 1. Teilen der 256 10K-Bankdateien (bank000...bank255) in je 5 Teile a 2048 Bytes # 2. Zusammenfügen je eines der 5 Teile einer Bank zu 5 EPROM-Dateien a 512K # # globale Variable # bankdatei sind die 256 10K-Bankdateien # teildatei sind die 5x256 2K-Dateien # mega ist das Verzeichnis der 5 neuen EPROM-Dateien my (@verzeichnis, $teildir, $teildatei, $bankdir, $bankdatei, $megadir, $megadatei, $i, $j, $k, $tok); $bankdir = "./bankneu"; $bankdatei = "bank"; $teildir = "./teileneu"; $teildatei = "tbank"; $megadir = "./meganeu"; $megadatei = "rom"; mkdir $teildir; mkdir $megadir; # 1. Dateien im Verzeichnis ermitteln und in 2K-Teile teilen opendir(DIR, "$bankdir"); @verzeichnis = sort readdir(DIR); closedir(DIR); $i = "000"; # Anzahl der 2K-Dateien je ROM-Datei foreach $bankdatei (@verzeichnis) { next if ($bankdatei eq "."); next if ($bankdatei eq ".."); print "." ; system " split -d -a 1 -b 2048 $bankdir/$bankdatei $teildir/$teildatei$i\_"; # -d=dezimal, -a=Stellenanzahl, -b=Größe $i++; if ("$i" eq "256") { $i = "000" }; } print "\n1280 Teilbank-Dateien erstellt\n"; # 2. 2K-Dateien zusammenfügen in 5x512K opendir(DIR, "$teildir"); @verzeichnis = sort readdir(DIR); closedir(DIR); system "rm $megadir/$megadatei*"; print "alte Dateien geloescht\n"; #unlink "$megadir/$megadatei*"; $i = "0"; # Anzahl der 2K-Dateien je Bank (5) $j = "000"; # Anzahl der Bänke (256) $k = "0"; # tbankjjj_i foreach $teildatei (@verzeichnis) # 1280 Teildateien, je 256 der 5 ROMs { next if ($teildatei eq "."); next if ($teildatei eq ".."); system "cat $teildir/$teildatei >> $megadir/$megadatei$i"; $i++; if ($i eq "5") { $i = "0", $j++; } print "." ; if ("$j" eq "256") { goto end; }; } end: print "\n5 ROM-Dateien rom.bin in $megadir erstellt.\n"; # end perl