| 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'}) |