| line | true | false | branch | 
 
| 53 | 0 | 0 | if (defined $_[0]) | 
 
| 55 | 0 | 0 | $self->read(%params) ? : | 
 
| 108 | 0 | 0 | if ($_[0] =~ /^\-filedata$/i and defined $_[1]) { } | 
 
|  | 0 | 0 | elsif ($_[0] =~ /^\-file(name)|(handle)$/i and defined $_[1]) { } | 
 
|  | 0 | 0 | elsif (defined $_[0] and not defined $_[1]) { } | 
 
|  | 0 | 0 | elsif (defined $_[0]) { } | 
 
| 123 | 0 | 0 | if (defined $filedata) { } | 
 
| 128 | 0 | 0 | if (ref \$filename ne 'GLOB') { } | 
 
| 130 | 0 | 0 | unless defined $filename | 
 
| 132 | 0 | 0 | unless ($filename) | 
 
| 138 | 0 | 0 | unless ($FH = 'FileHandle'->new("< $filename")) | 
 
| 159 | 0 | 0 | unless ($size) | 
 
| 169 | 0 | 0 | unless ($SID eq 'PSID' and ($version >= 1 and $version <= 4) or $SID eq 'RSID' and $version >= 2 and $version <= 4) | 
 
| 184 | 0 | 0 | if (defined $filedata) { } | 
 
| 194 | 0 | 0 | if ($size != $dataOffset - 8) | 
 
| 205 | 0 | 0 | if ($version == 1) | 
 
| 215 | 0 | 0 | if ($version >= 2) | 
 
| 223 | 0 | 0 | if ($version == 2) | 
 
| 234 | 0 | 0 | if ($version >= 3) | 
 
| 241 | 0 | 0 | if ($version == 3) | 
 
| 251 | 0 | 0 | if ($version >= 4) | 
 
| 258 | 0 | 0 | if ($version == 4) | 
 
| 273 | 0 | 0 | if (defined $filedata) { } | 
 
| 282 | 0 | 0 | unless (defined $size) | 
 
| 290 | 0 | 0 | if (ref \$filename ne 'GLOB' and not defined $filedata) | 
 
| 312 | 0 | 0 | if ($_[0] =~ /^\-file(name)|(handle)$/i and defined $_[1]) { } | 
 
|  | 0 | 0 | elsif (defined $_[0] and not defined $_[1]) { } | 
 
|  | 0 | 0 | elsif (defined $_[0]) { } | 
 
| 328 | 0 | 0 | if (ref \$filename ne 'GLOB') { } | 
 
| 329 | 0 | 0 | unless defined $filename | 
 
| 331 | 0 | 0 | unless ($filename) | 
 
| 336 | 0 | 0 | unless ($FH = 'FileHandle'->new("> $filename")) | 
 
| 349 | 0 | 0 | if ($self->{'validateWrite'}) | 
 
| 367 | 0 | 0 | if ($self->{'SIDdata'}{'version'} > 1) | 
 
| 372 | 0 | 0 | if ($self->{'SIDdata'}{'version'} == 2) { } | 
 
|  | 0 | 0 | elsif ($self->{'SIDdata'}{'version'} == 3) { } | 
 
|  | 0 | 0 | elsif ($self->{'SIDdata'}{'version'} == 4) { } | 
 
| 392 | 0 | 0 | if (ref \$filename ne 'GLOB') | 
 
| 413 | 0 | 0 | unless defined wantarray | 
 
| 415 | 0 | 0 | unless (defined $fieldname) | 
 
| 418 | 0 | 0 | if (wantarray) { } | 
 
| 428 | 0 | 0 | if $fieldname =~ /^copyright$/ | 
 
| 429 | 0 | 0 | if $fieldname =~ /^name$/ | 
 
| 431 | 0 | 0 | unless (grep /^$fieldname$/, @SIDfieldNames) | 
 
| 457 | 0 | 0 | if ($self->{'SIDdata'}{'data'} and $self->{'SIDdata'}{'loadAddress'} == 0) { } | 
 
| 470 | 0 | 0 | if not defined $songnumber or $songnumber < 1 | 
 
| 472 | 0 | 0 | if ($songnumber > $self->{'SIDdata'}{'songs'}) | 
 
| 477 | 0 | 0 | if ($self->isPlaySIDSpecific) { } | 
 
| 481 | 0 | 0 | if $songnumber > 32 | 
 
| 490 | 0 | 0 | unless defined $self->{'SIDdata'}{'flags'} | 
 
| 505 | 0 | 0 | if $self->{'SIDdata'}{'version'} == 1 | 
 
| 509 | 0 | 0 | unless defined $self->{'SIDdata'}{'flags'} | 
 
| 510 | 0 | 0 | if $self->isRSID | 
 
| 531 | 0 | 0 | unless defined $self->{'SIDdata'}{'flags'} | 
 
| 532 | 0 | 0 | unless $self->isRSID | 
 
| 546 | 0 | 0 | unless defined $self->{'SIDdata'}{'flags'} | 
 
| 555 | 0 | 0 | unless defined $self->{'SIDdata'}{'flags'} | 
 
| 559 | 0 | 0 | if ($clock == 0) { } | 
 
|  | 0 | 0 | elsif ($clock == 1) { } | 
 
|  | 0 | 0 | elsif ($clock == 2) { } | 
 
|  | 0 | 0 | elsif ($clock == 3) { } | 
 
| 578 | 0 | 0 | unless defined $self->{'SIDdata'}{'flags'} | 
 
| 580 | 0 | 0 | if (not defined $sidNumber or $sidNumber == 1) { } | 
 
|  | 0 | 0 | elsif ($sidNumber == 2) { } | 
 
|  | 0 | 0 | elsif ($sidNumber == 3) { } | 
 
| 584 | 0 | 0 | unless $self->{'SIDdata'}{'version'} >= 3 | 
 
| 589 | 0 | 0 | unless $self->{'SIDdata'}{'version'} >= 4 | 
 
| 601 | 0 | 0 | unless defined $SIDModel | 
 
| 603 | 0 | 0 | if ($SIDModel == 0) { } | 
 
|  | 0 | 0 | elsif ($SIDModel == 1) { } | 
 
|  | 0 | 0 | elsif ($SIDModel == 2) { } | 
 
|  | 0 | 0 | elsif ($SIDModel == 3) { } | 
 
| 624 | 0 | 0 | if (not defined $sidNumber or $sidNumber == 1) { } | 
 
|  | 0 | 0 | elsif ($sidNumber == 2) { } | 
 
|  | 0 | 0 | elsif ($sidNumber == 3) { } | 
 
| 631 | 0 | 0 | unless $self->{'SIDdata'}{'version'} >= 3 | 
 
| 637 | 0 | 0 | unless $self->{'SIDdata'}{'version'} >= 4 | 
 
| 660 | 0 | 0 | if $fieldname =~ /^copyright$/ | 
 
| 661 | 0 | 0 | if $fieldname =~ /^name$/ | 
 
| 663 | 0 | 0 | unless (grep /^$fieldname$/, @SIDfieldNames) | 
 
| 670 | 0 | 0 | if ($fieldname eq 'magicID') | 
 
| 671 | 0 | 0 | if ($SIDhash{$fieldname} ne 'PSID' and $SIDhash{$fieldname} ne 'RSID') | 
 
| 676 | 0 | 0 | if ($SIDhash{$fieldname} ne $self->{'SIDdata'}{'magicID'}) | 
 
| 681 | 0 | 0 | if ($fieldname eq 'version') | 
 
| 682 | 0 | 0 | if ($SIDhash{$fieldname} < 1 or $SIDhash{$fieldname} > 4) | 
 
| 688 | 0 | 0 | if ($self->{'SIDdata'}{'version'} < 2 and $fieldname eq 'magicID' || $fieldname eq 'flags' || $fieldname eq 'reserved' || $fieldname eq 'startPage' || $fieldname eq 'pageLength') | 
 
| 696 | 0 | 0 | if ($self->{'SIDdata'}{'version'} < 3 and $fieldname eq 'secondSIDAddress' || $fieldname eq 'thirdSIDAddress') | 
 
| 703 | 0 | 0 | if ($self->{'SIDdata'}{'version'} < 4 and $fieldname eq 'thirdSIDAddress') | 
 
| 711 | 0 | 0 | if ($fieldname eq 'title' or $fieldname eq 'author' or $fieldname eq 'released') | 
 
| 718 | 0 | 0 | if ($self->{'SIDdata'}{'version'} == 1) { } | 
 
|  | 0 | 0 | elsif ($self->{'SIDdata'}{'version'} >= 2 and $self->{'SIDdata'}{'version'} <= 4) { } | 
 
| 734 | 0 | 0 | if ($self->{'SIDdata'}{'dataOffset'} <= 124) { } | 
 
| 747 | 0 | 0 | unless (defined $self->{'SIDdata'}{'flags'}) | 
 
| 751 | 0 | 0 | unless (defined $self->{'SIDdata'}{'startPage'}) | 
 
| 755 | 0 | 0 | unless (defined $self->{'SIDdata'}{'pageLength'}) | 
 
| 759 | 0 | 0 | if ($self->{'SIDdata'}{'version'} == 2 or $self->{'SIDdata'}{'version'} == 3) | 
 
| 760 | 0 | 0 | unless (defined $self->{'SIDdata'}{'reserved'}) | 
 
| 765 | 0 | 0 | if ($self->{'SIDdata'}{'version'} >= 3) | 
 
| 766 | 0 | 0 | unless (defined $self->{'SIDdata'}{'secondSIDAddress'}) | 
 
| 772 | 0 | 0 | if ($self->{'SIDdata'}{'version'} >= 4) | 
 
| 773 | 0 | 0 | unless (defined $self->{'SIDdata'}{'thirdSIDAddress'}) | 
 
| 779 | 0 | 0 | if ($changePSIDSpecific) | 
 
| 781 | 0 | 0 | unless ($SIDhash{'flags'}) | 
 
| 782 | 0 | 0 | if ($self->isRSID) { } | 
 
| 792 | 0 | 0 | if ($self->isRSID) | 
 
| 799 | 0 | 0 | if ($self->{'SIDdata'}{'loadAddress'} != 0) | 
 
| 805 | 0 | 0 | if ($self->getC64BASIC) | 
 
| 826 | 0 | 0 | unless (defined $songnumber) | 
 
| 831 | 0 | 0 | unless (defined $value) | 
 
| 836 | 0 | 0 | if ($songnumber > $self->{'SIDdata'}{'songs'} or $songnumber < 1) | 
 
| 841 | 0 | 0 | if ($value ne 0 and $value ne 1) | 
 
| 846 | 0 | 0 | if $songnumber < 1 | 
 
| 848 | 0 | 0 | if ($self->{'SIDdata'}{'version'} == 1 or $self->isPlaySIDSpecific) { } | 
 
| 852 | 0 | 0 | if $songnumber > 32 | 
 
| 865 | 0 | 0 | unless (defined $self->{'SIDdata'}{'flags'}) | 
 
| 870 | 0 | 0 | if ($MUSplayer ne 0 and $MUSplayer ne 1) | 
 
| 885 | 0 | 0 | if ($self->isRSID) | 
 
| 890 | 0 | 0 | unless (defined $self->{'SIDdata'}{'flags'}) | 
 
| 895 | 0 | 0 | if ($PlaySID ne 0 and $PlaySID ne 1) | 
 
| 910 | 0 | 0 | unless ($self->isRSID) | 
 
| 915 | 0 | 0 | unless (defined $self->{'SIDdata'}{'flags'}) | 
 
| 920 | 0 | 0 | if ($C64BASIC ne 0 and $C64BASIC ne 1) | 
 
| 931 | 0 | 0 | if ($C64BASIC) | 
 
| 939 | 0 | 0 | unless (defined $self->{'SIDdata'}{'flags'}) | 
 
| 944 | 0 | 0 | if ($clock < 0 or $clock > 3) | 
 
| 959 | 0 | 0 | unless (defined $self->{'SIDdata'}{'flags'}) | 
 
| 964 | 0 | 0 | if ($clock =~ /^(unknown|none|neither)$/i) { } | 
 
|  | 0 | 0 | elsif ($clock =~ /^PAL$/i) { } | 
 
|  | 0 | 0 | elsif ($clock =~ /^NTSC$/i) { } | 
 
|  | 0 | 0 | elsif ($clock =~ /^(any|both|either)$/i) { } | 
 
| 987 | 0 | 0 | unless (defined $self->{'SIDdata'}{'flags'}) | 
 
| 992 | 0 | 0 | if ($SIDModel < 0 or $SIDModel > 3) | 
 
| 997 | 0 | 0 | if (not defined $sidNumber or $sidNumber == 1) { } | 
 
|  | 0 | 0 | elsif ($sidNumber == 2) { } | 
 
|  | 0 | 0 | elsif ($sidNumber == 3) { } | 
 
| 1006 | 0 | 0 | unless $self->{'SIDdata'}{'version'} >= 3 | 
 
| 1015 | 0 | 0 | unless $self->{'SIDdata'}{'version'} >= 4 | 
 
| 1028 | 0 | 0 | unless (defined $self->{'SIDdata'}{'flags'}) | 
 
| 1033 | 0 | 0 | if ($SIDModel =~ /^(unknown|none|neither)$/i) { } | 
 
|  | 0 | 0 | elsif ($SIDModel =~ /^6581$/ or $SIDModel == 6581) { } | 
 
|  | 0 | 0 | elsif ($SIDModel =~ /^8580$/i or $SIDModel == 8580) { } | 
 
|  | 0 | 0 | elsif ($SIDModel =~ /^(any|both|either)$/i) { } | 
 
| 1056 | 0 | 0 | if (not defined $sidNumber or $sidNumber < 2 or $sidNumber > 3) | 
 
| 1061 | 0 | 0 | unless (defined $fullSIDAddress) | 
 
| 1066 | 0 | 0 | if ($sidNumber == 2 and $self->{'SIDdata'}{'version'} < 3 or $sidNumber == 3 and $self->{'SIDdata'}{'version'} < 4) | 
 
| 1073 | 0 | 0 | if ($fullSIDAddress =~ /^\s*\$/) { } | 
 
|  | 0 | 0 | elsif ($fullSIDAddress =~ /^\s*0x/) { } | 
 
| 1083 | 0 | 0 | if ($fullSIDAddress < 54304 or $fullSIDAddress > 57344 or $fullSIDAddress >= 55296 and $fullSIDAddress < 56832) | 
 
| 1091 | 0 | 0 | if ($middleSIDAddress % 2 != 0) | 
 
| 1096 | 0 | 0 | if ($self->{'SIDdata'}{'version'} >= 4) | 
 
| 1097 | 0 | 0 | if ($sidNumber == 2 and $self->{'SIDdata'}{'thirdSIDAddress'} == $middleSIDAddress) | 
 
| 1102 | 0 | 0 | if ($sidNumber == 3 and $self->{'SIDdata'}{'secondSIDAddress'} == $middleSIDAddress) | 
 
| 1110 | 0 | 0 | if ($sidNumber == 2) { } | 
 
|  | 0 | 0 | elsif ($sidNumber == 3) { } | 
 
| 1130 | 0 | 0 | if ($self->{'SIDdata'}{'loadAddress'} == 0 and $self->{'SIDdata'}{'data'}) { } | 
 
| 1147 | 0 | 0 | if ($self->isRSID) { } | 
 
| 1151 | 0 | 0 | if ($self->getSpeed($songNo) == 1) { } | 
 
| 1164 | 0 | 0 | if ($self->{'SIDdata'}{'version'} > 1 and $clock == 2 and not $oldMD5) | 
 
| 1189 | 0 | 0 | if ($self->{'SIDdata'}{'version'} < 2) | 
 
| 1194 | 0 | 0 | if ($self->isRSID) | 
 
| 1199 | 0 | 0 | if ($self->{'SIDdata'}{'dataOffset'} != 124) | 
 
| 1218 | 0 | 0 | if (length $self->{'SIDdata'}{$field} > 32) | 
 
| 1228 | 0 | 0 | if ($self->isRSID and $self->{'SIDdata'}{'initAddress'} > 0 && $self->{'SIDdata'}{'initAddress'} < 2024 || $self->{'SIDdata'}{'initAddress'} >= 40960 && $self->{'SIDdata'}{'initAddress'} < 49152 || $self->{'SIDdata'}{'initAddress'} >= 53248 && $self->{'SIDdata'}{'initAddress'} <= 65535 || $self->{'SIDdata'}{'initAddress'} < $self->getRealLoadAddress || $self->{'SIDdata'}{'initAddress'} > $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3 || $self->getC64BASIC) | 
 
| 1248 | 0 | 0 | if ($self->{'SIDdata'}{'loadAddress'} != 0) | 
 
| 1251 | 0 | 0 | if ($self->isRSID and $self->{'SIDdata'}{'loadAddress'} < 2024) | 
 
| 1264 | 0 | 0 | if (not $self->isRSID and $self->{'SIDdata'}{'initAddress'} < $self->getRealLoadAddress || $self->{'SIDdata'}{'initAddress'} > $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3) | 
 
| 1277 | 0 | 0 | if ($self->{'SIDdata'}{$field} < 0 or $self->{'SIDdata'}{$field} > 65535) | 
 
| 1285 | 0 | 0 | if (not defined $self->{'SIDdata'}{$field} or $self->{'SIDdata'}{$field} < 0 or $self->{'SIDdata'}{$field} > 255) | 
 
| 1292 | 0 | 0 | if ($self->{'SIDdata'}{'songs'} > 256) | 
 
| 1298 | 0 | 0 | if ($self->{'SIDdata'}{'songs'} < 1) | 
 
| 1304 | 0 | 0 | if ($self->{'SIDdata'}{'startSong'} > $self->{'SIDdata'}{'songs'}) | 
 
| 1309 | 0 | 0 | unless ($self->isRSID) | 
 
| 1315 | 0 | 0 | if ($maxSongs > 32) | 
 
| 1325 | 0 | 0 | if (defined $self->{'SIDdata'}{'flags'}) { } | 
 
| 1336 | 0 | 0 | if ($self->isRSID) { } | 
 
| 1349 | 0 | 0 | if ($self->{'SIDdata'}{'version'} >= 3) | 
 
| 1350 | 0 | 0 | if (defined $secondSIDModel) | 
 
| 1355 | 0 | 0 | if ($self->{'SIDdata'}{'version'} >= 4) | 
 
| 1356 | 0 | 0 | if (defined $thirdSIDModel) | 
 
| 1361 | 0 | 0 | if ($self->isRSID) { } | 
 
| 1369 | 0 | 0 | if ($self->{'SIDdata'}{'startPage'} == 0 or $self->{'SIDdata'}{'startPage'} == 255) { } | 
 
|  | 0 | 0 | elsif (($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 > 65535) { } | 
 
|  | 0 | 0 | elsif ($self->{'SIDdata'}{'pageLength'} == 0) { } | 
 
| 1379 | 0 | 0 | if ($self->isRSID) | 
 
| 1385 | 0 | 0 | if ($self->{'SIDdata'}{'startPage'} >= 160 and $self->{'SIDdata'}{'startPage'} < 192 or $self->{'SIDdata'}{'startPage'} >= 208 and $self->{'SIDdata'}{'startPage'} < 255 or $self->{'SIDdata'}{'startPage'} > 0 and $self->{'SIDdata'}{'startPage'} < 4) | 
 
| 1394 | 0 | 0 | if (($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 >= 40960 and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 < 49152 or ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 >= 53248 and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 <= 65535 or ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 > 0 and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 < 1024) | 
 
| 1403 | 0 | 0 | if ($self->{'SIDdata'}{'startPage'} < 160 and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 >= 49152) | 
 
| 1412 | 0 | 0 | if ($self->{'SIDdata'}{'startPage'} << 8 >= $self->getRealLoadAddress and $self->{'SIDdata'}{'startPage'} << 8 <= $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3) | 
 
| 1420 | 0 | 0 | if (($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 >= $self->getRealLoadAddress and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 <= $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3) | 
 
| 1428 | 0 | 0 | if ($self->{'SIDdata'}{'startPage'} << 8 < $self->getRealLoadAddress and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 > $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3) | 
 
| 1438 | 0 | 0 | if ($self->{'SIDdata'}{'version'} >= 3) | 
 
| 1442 | 0 | 0 | if ($secondSIDAddress) | 
 
| 1446 | 0 | 0 | unless ($result) | 
 
| 1453 | 0 | 0 | if ($self->{'SIDdata'}{'version'} >= 4) | 
 
| 1457 | 0 | 0 | if ($thirdSIDAddress) | 
 
| 1461 | 0 | 0 | unless ($result) | 
 
| 1472 | 0 | 0 | if ($self->{'PADDING'}) |