#!/usr/bin/perl -w # convert 8-bit unsigned sample to AY levels binmode STDIN; binmode STDOUT; $count = 1024; $fc = -1; $alt = 0; while (!eof(STDIN)) { read(STDIN, $b, 1); $b = ord($b); if ($b < 2) {$lo = 0;} elsif ($b < 5) {$lo = 1;} elsif ($b < 7) {$lo = 2;} elsif ($b < 10) {$lo = 3;} elsif ($b < 14) {$lo = 4;} elsif ($b < 19) {$lo = 5;} elsif ($b < 29) {$lo = 6;} elsif ($b < 40) {$lo = 7;} elsif ($b < 56) {$lo = 8;} elsif ($b < 80) {$lo = 9;} elsif ($b < 103) {$lo = 10;} elsif ($b < 131) {$lo = 11;} elsif ($b < 161) {$lo = 12;} elsif ($b < 197) {$lo = 13;} elsif ($b < 236) {$lo = 14;} else {$lo = 15;} read(STDIN, $b, 1); $b = ord($b); if ($b < 2) {$hi = 0;} elsif ($b < 5) {$hi = 1;} elsif ($b < 7) {$hi = 2;} elsif ($b < 10) {$hi = 3;} elsif ($b < 14) {$hi = 4;} elsif ($b < 19) {$hi = 5;} elsif ($b < 29) {$hi = 6;} elsif ($b < 40) {$hi = 7;} elsif ($b < 56) {$hi = 8;} elsif ($b < 80) {$hi = 9;} elsif ($b < 103) {$hi = 10;} elsif ($b < 131) {$hi = 11;} elsif ($b < 161) {$hi = 12;} elsif ($b < 197) {$hi = 13;} elsif ($b < 236) {$hi = 14;} else {$hi = 15;} if($count>=221) { close A; $fc++; open(A, "> output/raw_$fc.ay"); binmode(A); $count = 0; } print A chr(($hi << 4) + $lo); $count++; }