British Garden Birds

want to request software or documentation that you can't find online? post in here!
Post Reply
User avatar
PitfallJones
Posts: 452
Joined: Fri Feb 22, 2008 3:44 pm
Contact:

British Garden Birds

Post by PitfallJones » Wed Jul 31, 2019 2:39 pm

Hi,

Can anyone post the Ceefax pages from the 'British Garden Birds' laserdisc?

bgb4.jpg
Thanks

PJ

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Wed Jul 31, 2019 8:41 pm

Well, I've got them all, but there aren't any pictures like that!

The grabbing operation is shown here:

http://www.beebmaster.co.uk/Laserdisc/BirdsTxt.html

They are stored on an ADFS disc, but Fuse-ADFS doesn't seem to like the image.
Image

User avatar
davidb
Posts: 2646
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: British Garden Birds

Post by davidb » Wed Jul 31, 2019 10:10 pm

BeebMaster wrote:
Wed Jul 31, 2019 8:41 pm
They are stored on an ADFS disc, but Fuse-ADFS doesn't seem to like the image.
If you send me the image then maybe I can fix FUSE-ADFS - especially if it's the one I wrote. ;)

guesser
Posts: 324
Joined: Mon Jun 26, 2006 9:21 pm
Contact:

Re: British Garden Birds

Post by guesser » Wed Jul 31, 2019 10:44 pm

BeebMaster wrote:
Wed Jul 31, 2019 8:41 pm
Well, I've got them all, but there aren't any pictures like that!
It's by JellicaJake :)
https://twitter.com/JellicaJake/status/ ... 6177379328
A web based teletext editor which can export as Mode 7 screen memory: https://zxnet.co.uk/teletext/editor
Join the Teletext Discord for teletext chat.

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Thu Aug 01, 2019 9:46 am

Here they are, ADFS L format, I just do a direct sector copy from 0 to &9FF so there's no "interleaving".

It appears I am using Andrew Benham's version of Fuse-ADFS which, in debug mode, reports errors like "doesn't look like a directory at sector nnn".

Also !ADFFS gives broken directory errors, I suspect that is because it expects an "interleaved" image and I can't see that it supports a sequential sector dump.

BGB.7z
(77.86 KiB) Downloaded 18 times
Image

User avatar
davidb
Posts: 2646
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: British Garden Birds

Post by davidb » Thu Aug 01, 2019 11:05 am

I'll take a look later.

I don't remember if L format disks are typically interleaved. ADFSlib assumes that they are for the most part, though I did encounter another disk that wasn't interleaved.

User avatar
PitfallJones
Posts: 452
Joined: Fri Feb 22, 2008 3:44 pm
Contact:

Re: British Garden Birds

Post by PitfallJones » Thu Aug 01, 2019 11:08 am

Hi There,

Thanks a lot for that BeebMaster- Terrific Stuff!

I'm not familiar with that disk format but I managed to extract all the teletext frames by doing a binary dump (Frame#1 begins at offset 0x6300 for instance) - they have bit 7 set but otherwise are in normal mode7 format.

I've attached all the frames (as bmps) from disk#1.

Very cool - the bird descriptions are excellent and I see there is also subtitles for the video and some engineering pages!
This weekend I'll have a go at displaying them on my BBC Micro.

So... I'm intrigued to watch the actual video now - a quick search of YouTube came up blank - any chance of a mp4?

PJ
Attachments
BGBBMP1.rar
(1.34 MiB) Downloaded 19 times

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Thu Aug 01, 2019 11:45 am

It's a standard Acorn ADFS 640K disc, so it should mount in any emulator or ADFS Explorer etc.

Shame there aren't any pictures on there, that would have been great!

I don't have a video recording of the disc, I'll have to make one at some point. I do get quite a few requests for videos of BBC Video laserdiscs, especially the Mr. Smith gardening titles for some reason.
Image

User avatar
davidb
Posts: 2646
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: British Garden Birds

Post by davidb » Thu Aug 01, 2019 10:27 pm

BeebMaster wrote:
Thu Aug 01, 2019 11:45 am
It's a standard Acorn ADFS 640K disc, so it should mount in any emulator or ADFS Explorer etc.
In theory the emulators should mount it, but neither Arculator nor ArcEm could do so. :(

I tried creating and formatting a new disk image in Arculator, but it wouldn't recognise it afterwards, so I don't know what's wrong with L format disks. Even the Master Compact Welcome Disk from STH couldn't be read by the emulators.

If you can use a RISC OS machine to convert the disk to an 800K D or E format disk and upload the image of that, it would be useful for comparison purposes.

User avatar
Multiwizard
Posts: 1763
Joined: Wed Jan 11, 2012 9:03 pm
Contact:

Re: British Garden Birds

Post by Multiwizard » Fri Aug 02, 2019 9:29 am

Hi,

I have all the recording equipment (connected) at hand, so enjoy :D :

https://www.youtube.com/watch?v=cUAmLYzTf9o


Greetings, Wim... :-)

User avatar
PitfallJones
Posts: 452
Joined: Fri Feb 22, 2008 3:44 pm
Contact:

Re: British Garden Birds

Post by PitfallJones » Fri Aug 02, 2019 10:34 am

Superb!! - Thanks for posting it - I'm just watching it now....

Hey it's got David as well!
His voice always brings to mind a cave full of bat dung to me!

That's a terrific picture for composite video.

If you don't know much about Laserdisc (I didn't) Techmoan has an informative video about it:
https://www.youtube.com/watch?v=KOrn2hBsYKE
Has the ability to perfect freeze-frame - who knew?

PJ

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Fri Aug 02, 2019 11:39 am

I had a similar problem with the Domesday disc images, which conform to ADFS hard disc format (basically ADFS L but more sectors) but they wouldn't work properly in emulators etc. either. So perhaps for some reason the free space map or directory structure of these discs isn't being understood properly.

Laserdiscs come in two formats, CAV and CLV. CAV discs are encoded as a set of individual, numbered picture frames with sound and Teletext (and possibly LV-ROM data instead of sound) included and they can be played forwards, backwards, fast, slow, frozen, and searched. I think laserdisc CAV is still the only video format where you can dial up a specific picture number and guarantee getting the same frame every time.

CLV is simpler and uses time-coding but only supports normal forward playback speed and fast-forward & fast-rewind, so you can't search for individual frames or fractions of seconds (although I believe some of the very last high-end players did allow a CLV freeze-frame).
Image

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Fri Aug 02, 2019 11:42 am

As well as being one of the only laserdiscs with a Teletext magazine included, it is also one of the first with dual-channel sound, so by choosing left, right or stereo you can have David Attenborough, or the birds, or both.
Image

User avatar
Multiwizard
Posts: 1763
Joined: Wed Jan 11, 2012 9:03 pm
Contact:

Re: British Garden Birds

Post by Multiwizard » Sat Aug 03, 2019 6:33 am

PitfallJones wrote:
Thu Aug 01, 2019 11:08 am

I've attached all the frames (as bmps) from disk#1.

PJ
Could you do (convert) disk#2 too? :D


Greetings, Wim... :-)

User avatar
PitfallJones
Posts: 452
Joined: Fri Feb 22, 2008 3:44 pm
Contact:

Re: British Garden Birds

Post by PitfallJones » Sat Aug 03, 2019 12:18 pm

Hi,
Here are the frames from disk#2 - nothing too interresting - just more subtitles.
I noticed there's a number of index pages missing from disk#1 between P173-184, which I've managed to 'recreate' locally but I obviously don't have the actual original frame numbers to use, also p185 (order of appearance) and P186 (alphabetical index) have some sub pages missing I've also synthesized.
I think the important stuff - all the bird descriptions - are present - there's 70 birds listed!
PJ
Attachments
BGBBMP2.rar
(484.51 KiB) Downloaded 14 times

User avatar
Multiwizard
Posts: 1763
Joined: Wed Jan 11, 2012 9:03 pm
Contact:

Re: British Garden Birds

Post by Multiwizard » Sat Aug 03, 2019 1:10 pm

PitfallJones wrote:
Sat Aug 03, 2019 12:18 pm
Hi,
Here are the frames from disk#2 - nothing too interesting - just more subtitles.
Hi,

thanks anyway... =D>


Greetings, Wim... :-)

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Sat Aug 03, 2019 7:16 pm

Sorry folks, there is a problem with the disc images. I am looking into it now, my imager doesn't seem to be working properly.
Image

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Sun Aug 04, 2019 1:59 pm

I am completely confused by this point.

It wasn't my imager which was at fault. I suspected that the read operation wasn't suitable for floppy discs. For some years I have used the SCSI read operation 8 using the option to specify in the command block the number of bytes to read (a 32-bit number) instead of the number of sectors (an 8-bit number). That way you can read a whole ADFS floppy disc of &A0000 bytes in a single OSWORD call, if you have enough RAM, which I do, as I use the ARM7 co-pro to do the imaging, but I don't think that call is widely used, and possibly isn't fully supported.

I re-wrote it reverting to specifying sectors, doing 160 at a time (10 ADFS floppy tracks) and the resulting images compared identically.

The image is saved to a CF/IDE hard drive running under ADFS 1.53, and then that memory card is imaged and the image file processed to convert its 512 byte sectors into 256 bytes; you throw away every other byte in the image, which is a null byte.

When I've got that, I can mount the card image with Fuse-ADFS and see everything on my BBC CF drive. Here's where it seems to go wrong.

If I use Fuse-ADFS to mount the British Garden Birds floppy disc image stored within the hard disc image mount, I see the directory structure but no files.

If I drag the image file to local storage, the image is corrupted. Fuse-ADFS won't mount it, complaining "Doesn't look like a directory at ...", which is correct because the image is kaput. !ADFFS will mount it, but some of of the files have incorrect contents. That's as expected as the image is corrupt.

If I directly extract the floppy image file from the hard drive image file with dd then I get a correct image.
If I load and save as.. the floppy image file from the hard disc image mount (e.g. loading in hex editor and saving again to local storage), I get a correct image. However, both of these images do not mount properly in Fuse-ADFS, which shows directory structure only and no files. Debug mode shows it walking through the image, finding all the sub-dirs but it doesn't find any of the files, other than those in the root. But, !ADFFS mounts and accesses all the files correctly.

So I think there is something wrong with Fuse-ADFS, it doesn't correctly mount image files stored within a mounted image file, or retrieve them correctly when dragged elsewhere (possibly that's some sort of Linux/Ubuntu problem), and it won't mount a true copy of the British Garden Birds discs and show all the files at all.
Image

User avatar
davidb
Posts: 2646
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: British Garden Birds

Post by davidb » Sun Aug 04, 2019 2:27 pm

Are the disk images you posted earlier correct? If not, can you post ones which are known to be correct, please?

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Sun Aug 04, 2019 2:38 pm

I've only verified disc one so far, a new image (directly extracted from the hard disc image) is attached.
BGB1directextract.dat.7z
(64.3 KiB) Downloaded 14 times

I've had a play around with other ADFS floppy disc images on the same hard drive and they all seem to work OK in Fuse-ADFS, so I wonder if there is something peculiar about the FSmap or directory contents of this disc.
Image

User avatar
davidb
Posts: 2646
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: British Garden Birds

Post by davidb » Sun Aug 04, 2019 6:21 pm

Apologies in advance for the long listings in this message.

I tried the BGB1directextract.dat file with ADF2INF which uses the same library as FUSE-ADFS (in theory). I haven't used FUSE in ages and tend to use ADF2INF to look at disk images.

Trying to read the image as supplied, I get the following disk structure:

Code: Select all

$.ATS-259       3000            3000            4000
$.Birds.100/1   7C00            7C00            3C0
$.Birds.100/2   7C00            7C00            3C0
$.Birds.100/3   7C00            7C00            3C0
$.Birds.101/1   7C00            7C00            3C0
$.Birds.101/2   7C00            7C00            3C0
$.Birds.101/3   7C00            7C00            3C0
$.Birds.102/1   7C00            7C00            3C0
$.Birds.102/2   7C00            7C00            3C0
$.Birds.102/3   7C00            7C00            3C0
$.Birds.103/1   7C00            7C00            3C0
$.Birds.103/2   7C00            7C00            3C0
$.Birds.103/3   7C00            7C00            3C0
$.Birds.104/1   7C00            7C00            3C0
$.Birds.104/2   7C00            7C00            3C0
$.Birds.104/3   7C00            7C00            3C0
$.Birds.105/1   7C00            7C00            3C0
$.Birds.105/2   7C00            7C00            3C0
$.Birds.105/3   7C00            7C00            3C0
$.Birds.106/1   7C00            7C00            3C0
$.Birds.106/2   7C00            7C00            3C0
$.Birds.106/3   7C00            7C00            3C0
$.Birds.107/1   7C00            7C00            3C0
$.Birds.107/2   7C00            7C00            3C0
$.Birds.107/3   7C00            7C00            3C0
$.Birds.108/1   7C00            7C00            3C0
$.Birds.108/2   7C00            7C00            3C0
$.Birds.108/3   7C00            7C00            3C0
$.Birds.109/1   7C00            7C00            3C0
$.Birds.109/2   7C00            7C00            3C0
$.Birds.109/3   7C00            7C00            3C0
$.Birds.110/1   7C00            7C00            3C0
$.Birds.110/2   7C00            7C00            3C0
$.Birds.110/3   7C00            7C00            3C0
$.Birds.111/1   7C00            7C00            3C0
$.Birds.111/2   7C00            7C00            3C0
$.Birds.111/3   7C00            7C00            3C0
$.Birds.112/1   7C00            7C00            3C0
$.Birds.112/2   7C00            7C00            3C0
$.Birds.112/3   7C00            7C00            3C0
$.Birds.113/1   7C00            7C00            3C0
$.Birds.113/2   7C00            7C00            3C0
$.Birds.113/3   7C00            7C00            3C0
$.Birds.114/1   7C00            7C00            3C0
$.Birds.114/2   7C00            7C00            3C0
$.Birds.114/3   7C00            7C00            3C0
$.Birds.115/1   7C00            7C00            3C0
$.Birds._ (empty)
$.Grab/BK       FFFF1000        FFFF802B        B11
$.Grab/SubT     FFFF1000        FFFF802B        CD3
$.Grabber       FFFF1000        FFFF802B        B11
$.MorleySVHS    FFFFFFFF        FFFFFFFF        8
$.MorleyTune    FFFFFFFF        FFFFFFFF        8
$.OldBirds (empty)
$.SubsSide1 (empty)
$.SubsSide2 (empty)
If I assume that the disk image should be interleaved by track and that

Code: Select all

1 disk is 160 tracks
1 track is 16 sectors
1 sector is 256 bytes
then things are different, though I notice that JGH mentions 80 tracks with 2 sides.

I interleave the tracks, taking track 0 and track 80, then tracks 1 and 81, all the way to tracks 79 and 159, then I get a catalogue that looks like this:

Code: Select all

$.ATS-259       3000            3000            4000
$.Birds.100/1   7C00            7C00            3C0
$.Birds.100/2   7C00            7C00            3C0
$.Birds.100/3   7C00            7C00            3C0
$.Birds.101/1   7C00            7C00            3C0
$.Birds.101/2   7C00            7C00            3C0
$.Birds.101/3   7C00            7C00            3C0
$.Birds.102/1   7C00            7C00            3C0
$.Birds.102/2   7C00            7C00            3C0
$.Birds.102/3   7C00            7C00            3C0
$.Birds.103/1   7C00            7C00            3C0
$.Birds.103/2   7C00            7C00            3C0
$.Birds.103/3   7C00            7C00            3C0
$.Birds.104/1   7C00            7C00            3C0
$.Birds.104/2   7C00            7C00            3C0
$.Birds.104/3   7C00            7C00            3C0
$.Birds.105/1   7C00            7C00            3C0
$.Birds.105/2   7C00            7C00            3C0
$.Birds.105/3   7C00            7C00            3C0
$.Birds.106/1   7C00            7C00            3C0
$.Birds.106/2   7C00            7C00            3C0
$.Birds.106/3   7C00            7C00            3C0
$.Birds.107/1   7C00            7C00            3C0
$.Birds.107/2   7C00            7C00            3C0
$.Birds.107/3   7C00            7C00            3C0
$.Birds.108/1   7C00            7C00            3C0
$.Birds.108/2   7C00            7C00            3C0
$.Birds.108/3   7C00            7C00            3C0
$.Birds.109/1   7C00            7C00            3C0
$.Birds.109/2   7C00            7C00            3C0
$.Birds.109/3   7C00            7C00            3C0
$.Birds.110/1   7C00            7C00            3C0
$.Birds.110/2   7C00            7C00            3C0
$.Birds.110/3   7C00            7C00            3C0
$.Birds.111/1   7C00            7C00            3C0
$.Birds.111/2   7C00            7C00            3C0
$.Birds.111/3   7C00            7C00            3C0
$.Birds.112/1   7C00            7C00            3C0
$.Birds.112/2   7C00            7C00            3C0
$.Birds.112/3   7C00            7C00            3C0
$.Birds.113/1   7C00            7C00            3C0
$.Birds.113/2   7C00            7C00            3C0
$.Birds.113/3   7C00            7C00            3C0
$.Birds.114/1   7C00            7C00            3C0
$.Birds.114/2   7C00            7C00            3C0
$.Birds.114/3   7C00            7C00            3C0
$.Birds.115/1   7C00            7C00            3C0
$.Birds._.115/2 7C00            7C00            3C0
$.Birds._.115/3 7C00            7C00            3C0
$.Birds._.116/1 7C00            7C00            3C0
$.Birds._.116/2 7C00            7C00            3C0
$.Birds._.116/3 7C00            7C00            3C0
$.Birds._.117/1 7C00            7C00            3C0
$.Birds._.117/2 7C00            7C00            3C0
$.Birds._.117/3 7C00            7C00            3C0
$.Birds._.118/1 7C00            7C00            3C0
$.Birds._.118/2 7C00            7C00            3C0
$.Birds._.118/3 7C00            7C00            3C0
$.Birds._.119/1 7C00            7C00            3C0
$.Birds._.119/2 7C00            7C00            3C0
$.Birds._.119/3 7C00            7C00            3C0
$.Birds._.120/1 7C00            7C00            3C0
$.Birds._.120/2 7C00            7C00            3C0
$.Birds._.120/3 7C00            7C00            3C0
$.Birds._.121/1 7C00            7C00            3C0
$.Birds._.121/2 7C00            7C00            3C0
$.Birds._.121/3 7C00            7C00            3C0
$.Birds._.122/1 7C00            7C00            3C0
$.Birds._.122/2 7C00            7C00            3C0
$.Birds._.122/3 7C00            7C00            3C0
$.Birds._.123/1 7C00            7C00            3C0
$.Birds._.123/2 7C00            7C00            3C0
$.Birds._.123/3 7C00            7C00            3C0
$.Birds._.124/1 7C00            7C00            3C0
$.Birds._.124/2 7C00            7C00            3C0
$.Birds._.124/3 7C00            7C00            3C0
$.Birds._.125/1 7C00            7C00            3C0
$.Birds._.125/2 7C00            7C00            3C0
$.Birds._.125/3 7C00            7C00            3C0
$.Birds._.126/1 7C00            7C00            3C0
$.Birds._.126/2 7C00            7C00            3C0
$.Birds._.126/3 7C00            7C00            3C0
$.Birds._.127/1 7C00            7C00            3C0
$.Birds._.127/2 7C00            7C00            3C0
$.Birds._.127/3 7C00            7C00            3C0
$.Birds._.128/1 7C00            7C00            3C0
$.Birds._.128/2 7C00            7C00            3C0
$.Birds._.128/3 7C00            7C00            3C0
$.Birds._.129/1 7C00            7C00            3C0
$.Birds._.129/2 7C00            7C00            3C0
$.Birds._.129/3 7C00            7C00            3C0
$.Birds._._.130/1               7C00            7C00            3C0
$.Birds._._.130/2               7C00            7C00            3C0
$.Birds._._.130/3               7C00            7C00            3C0
$.Birds._._.131/1               7C00            7C00            3C0
$.Birds._._.131/2               7C00            7C00            3C0
$.Birds._._.131/3               7C00            7C00            3C0
$.Birds._._.132/1               7C00            7C00            3C0
$.Birds._._.132/2               7C00            7C00            3C0
$.Birds._._.132/3               7C00            7C00            3C0
$.Birds._._.133/1               7C00            7C00            3C0
$.Birds._._.133/2               7C00            7C00            3C0
$.Birds._._.133/3               7C00            7C00            3C0
$.Birds._._.134/1               7C00            7C00            3C0
$.Birds._._.134/2               7C00            7C00            3C0
$.Birds._._.134/3               7C00            7C00            3C0
$.Birds._._.135/1               7C00            7C00            3C0
$.Birds._._.135/2               7C00            7C00            3C0
$.Birds._._.135/3               7C00            7C00            3C0
$.Birds._._.136/1               7C00            7C00            3C0
$.Birds._._.136/2               7C00            7C00            3C0
$.Birds._._.136/3               7C00            7C00            3C0
$.Birds._._.137/1               7C00            7C00            3C0
$.Birds._._.137/2               7C00            7C00            3C0
$.Birds._._.137/3               7C00            7C00            3C0
$.Birds._._.138/1               7C00            7C00            3C0
$.Birds._._.138/2               7C00            7C00            3C0
$.Birds._._.138/3               7C00            7C00            3C0
$.Birds._._.139/1               7C00            7C00            3C0
$.Birds._._.139/2               7C00            7C00            3C0
$.Birds._._.139/3               7C00            7C00            3C0
$.Birds._._.140/1               7C00            7C00            3C0
$.Birds._._.140/2               7C00            7C00            3C0
$.Birds._._.140/3               7C00            7C00            3C0
$.Birds._._.141/1               7C00            7C00            3C0
$.Birds._._.141/2               7C00            7C00            3C0
$.Birds._._.141/3               7C00            7C00            3C0
$.Birds._._.142/1               7C00            7C00            3C0
$.Birds._._.142/2               7C00            7C00            3C0
$.Birds._._.142/3               7C00            7C00            3C0
$.Birds._._.143/1               7C00            7C00            3C0
$.Birds._._.143/2               7C00            7C00            3C0
$.Birds._._.143/3               7C00            7C00            3C0
$.Birds._._.144/1               7C00            7C00            3C0
$.Birds._._.144/2               7C00            7C00            3C0
$.Birds._._.144/3               7C00            7C00            3C0
$.Birds._._.145/1               7C00            7C00            3C0
$.Birds._._._.145/2             7C00            7C00            3C0
$.Birds._._._.145/3             7C00            7C00            3C0
$.Birds._._._.146/1             7C00            7C00            3C0
$.Birds._._._.146/2             7C00            7C00            3C0
$.Birds._._._.146/3             7C00            7C00            3C0
$.Birds._._._.147/1             7C00            7C00            3C0
$.Birds._._._.147/2             7C00            7C00            3C0
$.Birds._._._.147/3             7C00            7C00            3C0
$.Birds._._._.148/1             7C00            7C00            3C0
$.Birds._._._.148/2             7C00            7C00            3C0
$.Birds._._._.148/3             7C00            7C00            3C0
$.Birds._._._.149/1             7C00            7C00            3C0
$.Birds._._._.149/2             7C00            7C00            3C0
$.Birds._._._.149/3             7C00            7C00            3C0
$.Birds._._._.150/1             7C00            7C00            3C0
$.Birds._._._.150/2             7C00            7C00            3C0
$.Birds._._._.150/3             7C00            7C00            3C0
$.Birds._._._.151/1             7C00            7C00            3C0
$.Birds._._._.151/2             7C00            7C00            3C0
$.Birds._._._.151/3             7C00            7C00            3C0
$.Birds._._._.152/1             7C00            7C00            3C0
$.Birds._._._.152/2             7C00            7C00            3C0
$.Birds._._._.152/3             7C00            7C00            3C0
$.Birds._._._.153/1             7C00            7C00            3C0
$.Birds._._._.153/2             7C00            7C00            3C0
$.Birds._._._.153/3             7C00            7C00            3C0
$.Birds._._._.154/1             7C00            7C00            3C0
$.Birds._._._.154/2             7C00            7C00            3C0
$.Birds._._._.154/3             7C00            7C00            3C0
$.Birds._._._.155/1             7C00            7C00            3C0
$.Birds._._._.155/2             7C00            7C00            3C0
$.Birds._._._.155/3             7C00            7C00            3C0
$.Birds._._._.156/1             7C00            7C00            3C0
$.Birds._._._.156/2             7C00            7C00            3C0
$.Birds._._._.156/3             7C00            7C00            3C0
$.Birds._._._.157/1             7C00            7C00            3C0
$.Birds._._._.157/2             7C00            7C00            3C0
$.Birds._._._.157/3             7C00            7C00            3C0
$.Birds._._._.158/1             7C00            7C00            3C0
$.Birds._._._.158/2             7C00            7C00            3C0
$.Birds._._._.158/3             7C00            7C00            3C0
$.Birds._._._.159/1             7C00            7C00            3C0
$.Birds._._._.159/2             7C00            7C00            3C0
$.Birds._._._.159/3             7C00            7C00            3C0
$.Birds._._._.160/1             7C00            7C00            3C0
$.Birds._._._.160/2             7C00            7C00            3C0
$.Birds._._._._.160/3           7C00            7C00            3C0
$.Birds._._._._.161/1           7C00            7C00            3C0
$.Birds._._._._.161/2           7C00            7C00            3C0
$.Birds._._._._.161/3           7C00            7C00            3C0
$.Birds._._._._.162/1           7C00            7C00            3C0
$.Birds._._._._.162/2           7C00            7C00            3C0
$.Birds._._._._.162/3           7C00            7C00            3C0
$.Birds._._._._.163/1           7C00            7C00            3C0
$.Birds._._._._.163/2           7C00            7C00            3C0
$.Birds._._._._.163/3           7C00            7C00            3C0
$.Birds._._._._.164/1           7C00            7C00            3C0
$.Birds._._._._.164/2           7C00            7C00            3C0
$.Birds._._._._.164/3           7C00            7C00            3C0
$.Birds._._._._.165/1           7C00            7C00            3C0
$.Birds._._._._.165/2           7C00            7C00            3C0
$.Birds._._._._.165/3           7C00            7C00            3C0
$.Birds._._._._.166/1           7C00            7C00            3C0
$.Birds._._._._.166/2           7C00            7C00            3C0
$.Birds._._._._.166/3           7C00            7C00            3C0
$.Birds._._._._.167/1           7C00            7C00            3C0
$.Birds._._._._.167/2           7C00            7C00            3C0
$.Birds._._._._.167/3           7C00            7C00            3C0
$.Birds._._._._.168/1           7C00            7C00            3C0
$.Birds._._._._.168/2           7C00            7C00            3C0
$.Birds._._._._.168/3           7C00            7C00            3C0
$.Birds._._._._.169/1           7C00            7C00            3C0
$.Birds._._._._.169/2           7C00            7C00            3C0
$.Birds._._._._.169/3           7C00            7C00            3C0
$.Birds._._._._.170/1           7C00            7C00            3C0
$.Birds._._._._.170/2           7C00            7C00            3C0
$.Birds._._._._.170/3           7C00            7C00            3C0
$.Birds._._._._.171/1           7C00            7C00            3C0
$.Birds._._._._.171/2           7C00            7C00            3C0
$.Birds._._._._.171/3           7C00            7C00            3C0
$.Birds._._._._.172/1           7C00            7C00            3C0
$.Birds._._._._.172/2           7C00            7C00            3C0
$.Birds._._._._.172/3           7C00            7C00            3C0
$.Birds._._._._.173/1           7C00            7C00            3C0
$.Birds._._._._.173/2           7C00            7C00            3C0
$.Birds._._._._.173/3           7C00            7C00            3C0
$.Birds._._._._.174/1           7C00            7C00            3C0
$.Birds._._._._.174/2           7C00            7C00            3C0
$.Birds._._._._.174/3           7C00            7C00            3C0
$.Birds._._._._.175/1           7C00            7C00            3C0
$.Birds._._._._.175/2           7C00            7C00            3C0
$.Birds._._._._.175/3           7C00            7C00            3C0
$.Birds._._._._._.176/1         7C00            7C00            3C0
$.Birds._._._._._.176/2         7C00            7C00            3C0
$.Birds._._._._._.176/3         7C00            7C00            3C0
$.Birds._._._._._.177/1         7C00            7C00            3C0
$.Birds._._._._._.177/2         7C00            7C00            3C0
$.Birds._._._._._.177/3         7C00            7C00            3C0
$.Birds._._._._._.178/1         7C00            7C00            3C0
$.Birds._._._._._.178/2         7C00            7C00            3C0
$.Birds._._._._._.178/3         7C00            7C00            3C0
$.Birds._._._._._.179/1         7C00            7C00            3C0
$.Birds._._._._._.179/2         7C00            7C00            3C0
$.Birds._._._._._.179/3         7C00            7C00            3C0
$.Birds._._._._._.180/1         7C00            7C00            3C0
$.Birds._._._._._.180/2         7C00            7C00            3C0
$.Birds._._._._._.180/3         7C00            7C00            3C0
$.Birds._._._._._.181/1         7C00            7C00            3C0
$.Birds._._._._._.181/2         7C00            7C00            3C0
$.Birds._._._._._.181/3         7C00            7C00            3C0
$.Birds._._._._._.182/1         7C00            7C00            3C0
$.Birds._._._._._.182/2         7C00            7C00            3C0
$.Birds._._._._._.182/3         7C00            7C00            3C0
$.Birds._._._._._.183/1         7C00            7C00            3C0
$.Birds._._._._._.183/2         7C00            7C00            3C0
$.Birds._._._._._.183/3         7C00            7C00            3C0
$.Birds._._._._._.184/1         7C00            7C00            3C0
$.Birds._._._._._.184/2         7C00            7C00            3C0
$.Birds._._._._._.184/3         7C00            7C00            3C0
$.Birds._._._._._.185/1         7C00            7C00            3C0
$.Birds._._._._._.185/2         7C00            7C00            3C0
$.Birds._._._._._.185/3         7C00            7C00            3C0
$.Birds._._._._._.186/1         7C00            7C00            3C0
$.Birds._._._._._.186/2         7C00            7C00            3C0
$.Birds._._._._._.186/3         7C00            7C00            3C0
$.Birds._._._._._.187/1         7C00            7C00            3C0
$.Birds._._._._._.187/2         7C00            7C00            3C0
$.Birds._._._._._.187/3         7C00            7C00            3C0
$.Birds._._._._._.190/1         7C00            7C00            3C0
$.Birds._._._._._.190/2         7C00            7C00            3C0
$.Birds._._._._._.190/3         7C00            7C00            3C0
$.Birds._._._._._.197/1         7C00            7C00            3C0
$.Birds._._._._._.197/2         7C00            7C00            3C0
$.Birds._._._._._.197/3         7C00            7C00            3C0
$.Birds._._._._._.198/1         7C00            7C00            3C0
$.Birds._._._._._.198/2         7C00            7C00            3C0
$.Birds._._._._._.198/3         7C00            7C00            3C0
$.Birds._._._._._.199/1         7C00            7C00            3C0
$.Birds._._._._._.199/2         7C00            7C00            3C0
$.Grab/BK       FFFF1000        FFFF802B        B11
$.Grab/SubT     FFFF1000        FFFF802B        CD3
$.Grabber       FFFF1000        FFFF802B        B11
$.MorleySVHS    FFFFFFFF        FFFFFFFF        8
$.MorleyTune    FFFFFFFF        FFFFFFFF        8
$.OldBirds (empty)
$.SubsSide1.190/100             7C00            7C00            3C0
$.SubsSide1.190/1018            7C00            7C00            3C0
$.SubsSide1.190/1197            7C00            7C00            3C0
$.SubsSide1.190/1399            7C00            7C00            3C0
$.SubsSide1.190/1480            7C00            7C00            3C0
$.SubsSide1.190/1592            7C00            7C00            3C0
$.SubsSide1.190/1732            7C00            7C00            3C0
$.SubsSide1.190/1826            7C00            7C00            3C0
$.SubsSide1.190/1976            7C00            7C00            3C0
$.SubsSide1.190/2127            7C00            7C00            3C0
$.SubsSide1.190/2271            7C00            7C00            3C0
$.SubsSide1.190/2347            7C00            7C00            3C0
$.SubsSide1.190/2522            7C00            7C00            3C0
$.SubsSide1.190/2736            7C00            7C00            3C0
$.SubsSide1.190/2828            7C00            7C00            3C0
$.SubsSide1.190/2885            7C00            7C00            3C0
$.SubsSide1.190/2973            7C00            7C00            3C0
$.SubsSide1.190/3074            7C00            7C00            3C0
$.SubsSide1.190/3206            7C00            7C00            3C0
$.SubsSide1.190/3323            7C00            7C00            3C0
$.SubsSide1.190/3407            7C00            7C00            3C0
$.SubsSide1.190/3455            7C00            7C00            3C0
$.SubsSide1.190/3514            7C00            7C00            3C0
$.SubsSide1.190/3631            7C00            7C00            3C0
$.SubsSide1.190/3729            7C00            7C00            3C0
$.SubsSide1.190/3812            7C00            7C00            3C0
$.SubsSide1.190/4012            7C00            7C00            3C0
$.SubsSide1.190/414             7C00            7C00            3C0
$.SubsSide1.190/4250            7C00            7C00            3C0
$.SubsSide1.190/4389            7C00            7C00            3C0
$.SubsSide1.190/4497            7C00            7C00            3C0
$.SubsSide1.190/4624            7C00            7C00            3C0
$.SubsSide1.190/4695            7C00            7C00            3C0
$.SubsSide1.190/4873            7C00            7C00            3C0
$.SubsSide1.190/4928            7C00            7C00            3C0
$.SubsSide1.190/5126            7C00            7C00            3C0
$.SubsSide1.190/5243            7C00            7C00            3C0
$.SubsSide1.190/5375            7C00            7C00            3C0
$.SubsSide1.190/5685            7C00            7C00            3C0
$.SubsSide1.190/5757            7C00            7C00            3C0
$.SubsSide1.190/5905            7C00            7C00            3C0
$.SubsSide1.190/6050            7C00            7C00            3C0
$.SubsSide1.190/6105            7C00            7C00            3C0
$.SubsSide1.190/6177            7C00            7C00            3C0
$.SubsSide1.190/63              7C00            7C00            3C0
$.SubsSide1.190/728             7C00            7C00            3C0
$.SubsSide1._.190/10112         7C00            7C00            3C0
$.SubsSide1._.190/10177         7C00            7C00            3C0
$.SubsSide1._.190/10349         7C00            7C00            3C0
$.SubsSide1._.190/10499         7C00            7C00            3C0
$.SubsSide1._.190/10645         7C00            7C00            3C0
$.SubsSide1._.190/10956         7C00            7C00            3C0
$.SubsSide1._.190/10996         7C00            7C00            3C0
$.SubsSide1._.190/11085         7C00            7C00            3C0
$.SubsSide1._.190/11110         7C00            7C00            3C0
$.SubsSide1._.190/11158         7C00            7C00            3C0
$.SubsSide1._.190/11301         7C00            7C00            3C0
$.SubsSide1._.190/11508         7C00            7C00            3C0
$.SubsSide1._.190/6198          7C00            7C00            3C0
$.SubsSide1._.190/6328          7C00            7C00            3C0
$.SubsSide1._.190/6388          7C00            7C00            3C0
$.SubsSide1._.190/6466          7C00            7C00            3C0
$.SubsSide1._.190/6526          7C00            7C00            3C0
$.SubsSide1._.190/6700          7C00            7C00            3C0
$.SubsSide1._.190/6745          7C00            7C00            3C0
$.SubsSide1._.190/6980          7C00            7C00            3C0
$.SubsSide1._.190/7012          7C00            7C00            3C0
$.SubsSide1._.190/7128          7C00            7C00            3C0
$.SubsSide1._.190/7207          7C00            7C00            3C0
$.SubsSide1._.190/7446          7C00            7C00            3C0
$.SubsSide1._.190/7588          7C00            7C00            3C0
$.SubsSide1._.190/7705          7C00            7C00            3C0
$.SubsSide1._.190/7791          7C00            7C00            3C0
$.SubsSide1._.190/7901          7C00            7C00            3C0
$.SubsSide1._.190/8030          7C00            7C00            3C0
$.SubsSide1._.190/8166          7C00            7C00            3C0
$.SubsSide1._.190/8262          7C00            7C00            3C0
$.SubsSide1._.190/8374          7C00            7C00            3C0
$.SubsSide1._.190/8529          7C00            7C00            3C0
$.SubsSide1._.190/8668          7C00            7C00            3C0
$.SubsSide1._.190/8723          7C00            7C00            3C0
$.SubsSide1._.190/8831          7C00            7C00            3C0
$.SubsSide1._.190/8906          7C00            7C00            3C0
$.SubsSide1._.190/8946          7C00            7C00            3C0
$.SubsSide1._.190/9037          7C00            7C00            3C0
$.SubsSide1._.190/9116          7C00            7C00            3C0
$.SubsSide1._.190/9322          7C00            7C00            3C0
$.SubsSide1._.190/9382          7C00            7C00            3C0
$.SubsSide1._.190/9482          7C00            7C00            3C0
$.SubsSide1._.190/9647          7C00            7C00            3C0
$.SubsSide1._.190/9791          7C00            7C00            3C0
$.SubsSide1._.190/9899          7C00            7C00            3C0
$.SubsSide1._._.190/11552       7C00            7C00            3C0
$.SubsSide1._._.190/11695       7C00            7C00            3C0
$.SubsSide1._._.190/12005       7C00            7C00            3C0
$.SubsSide1._._.190/12296       7C00            7C00            3C0
$.SubsSide1._._.190/12404       7C00            7C00            3C0
$.SubsSide1._._.190/12541       7C00            7C00            3C0
$.SubsSide1._._.190/12644       7C00            7C00            3C0
$.SubsSide1._._.190/12708       7C00            7C00            3C0
$.SubsSide1._._.190/12806       7C00            7C00            3C0
$.SubsSide1._._.190/12943       7C00            7C00            3C0
$.SubsSide1._._.190/13051       7C00            7C00            3C0
$.SubsSide1._._.190/13252       7C00            7C00            3C0
$.SubsSide1._._.190/13437       7C00            7C00            3C0
$.SubsSide1._._.190/13531       7C00            7C00            3C0
$.SubsSide1._._.190/13583       7C00            7C00            3C0
$.SubsSide1._._.190/13642       7C00            7C00            3C0
$.SubsSide1._._.190/13761       7C00            7C00            3C0
$.SubsSide1._._.190/13864       7C00            7C00            3C0
$.SubsSide1._._.190/13919       7C00            7C00            3C0
$.SubsSide1._._.190/14116       7C00            7C00            3C0
$.SubsSide1._._.190/14189       7C00            7C00            3C0
$.SubsSide1._._.190/14247       7C00            7C00            3C0
$.SubsSide1._._.190/14413       7C00            7C00            3C0
$.SubsSide1._._.190/14527       7C00            7C00            3C0
$.SubsSide1._._.190/14587       7C00            7C00            3C0
$.SubsSide1._._.190/14693       7C00            7C00            3C0
$.SubsSide1._._.190/14858       7C00            7C00            3C0
$.SubsSide1._._.190/14950       7C00            7C00            3C0
$.SubsSide1._._.190/15134       7C00            7C00            3C0
$.SubsSide1._._.190/15171       7C00            7C00            3C0
$.SubsSide1._._.190/15275       7C00            7C00            3C0
$.SubsSide1._._.190/15360       7C00            7C00            3C0
$.SubsSide1._._.190/15468       7C00            7C00            3C0
$.SubsSide1._._.190/15495       7C00            7C00            3C0
$.SubsSide1._._.190/15568       7C00            7C00            3C0
$.SubsSide1._._.190/15649       7C00            7C00            3C0
$.SubsSide1._._.190/15673       7C00            7C00            3C0
$.SubsSide1._._.190/15797       7C00            7C00            3C0
$.SubsSide1._._.190/15825       7C00            7C00            3C0
$.SubsSide1._._.190/15950       7C00            7C00            3C0
$.SubsSide1._._.190/16013       7C00            7C00            3C0
$.SubsSide1._._.190/16154       7C00            7C00            3C0
$.SubsSide1._._.190/16342       7C00            7C00            3C0
$.SubsSide1._._.190/16442       7C00            7C00            3C0
$.SubsSide1._._.190/16752       7C00            7C00            3C0
$.SubsSide1._._.190/16906       7C00            7C00            3C0
$.SubsSide1._._._.190/16980     7C00            7C00            3C0
$.SubsSide1._._._.190/17290     7C00            7C00            3C0
$.SubsSide1._._._.190/17361     7C00            7C00            3C0
$.SubsSide1._._._.190/17443     7C00            7C00            3C0
$.SubsSide1._._._.190/17567     7C00            7C00            3C0
$.SubsSide1._._._.190/17669     7C00            7C00            3C0
$.SubsSide1._._._.190/17727     7C00            7C00            3C0
$.SubsSide1._._._.190/17849     7C00            7C00            3C0
$.SubsSide1._._._.190/17951     7C00            7C00            3C0
$.SubsSide1._._._.190/18004     7C00            7C00            3C0
$.SubsSide1._._._.190/18139     7C00            7C00            3C0
$.SubsSide1._._._.190/18169     7C00            7C00            3C0
$.SubsSide1._._._.190/18263     7C00            7C00            3C0
$.SubsSide1._._._.190/18325     7C00            7C00            3C0
$.SubsSide1._._._.190/18417     7C00            7C00            3C0
$.SubsSide1._._._.190/18519     7C00            7C00            3C0
$.SubsSide1._._._.190/18581     7C00            7C00            3C0
$.SubsSide1._._._.190/18665     7C00            7C00            3C0
$.SubsSide1._._._.190/18746     7C00            7C00            3C0
$.SubsSide1._._._.190/19057     7C00            7C00            3C0
$.SubsSide1._._._.190/19165     7C00            7C00            3C0
$.SubsSide1._._._.190/19327     7C00            7C00            3C0
$.SubsSide1._._._.190/19353     7C00            7C00            3C0
$.SubsSide1._._._.190/19426     7C00            7C00            3C0
$.SubsSide1._._._.190/19552     7C00            7C00            3C0
$.SubsSide1._._._.190/19825     7C00            7C00            3C0
$.SubsSide1._._._.190/19917     7C00            7C00            3C0
$.SubsSide1._._._.190/20117     7C00            7C00            3C0
$.SubsSide1._._._.190/20215     7C00            7C00            3C0
$.SubsSide1._._._.190/20250     7C00            7C00            3C0
$.SubsSide1._._._.190/20271     7C00            7C00            3C0
$.SubsSide1._._._.190/20375     7C00            7C00            3C0
$.SubsSide1._._._.190/20435     7C00            7C00            3C0
$.SubsSide1._._._.190/20537     7C00            7C00            3C0
$.SubsSide1._._._.190/20624     7C00            7C00            3C0
$.SubsSide1._._._.190/20679     7C00            7C00            3C0
$.SubsSide1._._._.190/20817     7C00            7C00            3C0
$.SubsSide1._._._.190/21127     7C00            7C00            3C0
$.SubsSide1._._._.190/21169     7C00            7C00            3C0
$.SubsSide1._._._.190/21282     7C00            7C00            3C0
$.SubsSide1._._._.190/21464     7C00            7C00            3C0
$.SubsSide1._._._.190/21580     7C00            7C00            3C0
$.SubsSide1._._._.190/21673     7C00            7C00            3C0
$.SubsSide1._._._.190/21835     7C00            7C00            3C0
$.SubsSide1._._._.190/21992     7C00            7C00            3C0
$.SubsSide1._._._.190/22030     7C00            7C00            3C0
$.SubsSide1._._._._.190/22170   7C00            7C00            3C0
$.SubsSide1._._._._.190/22209   7C00            7C00            3C0
$.SubsSide1._._._._.190/22356   7C00            7C00            3C0
$.SubsSide1._._._._.190/22428   7C00            7C00            3C0
$.SubsSide1._._._._.190/22603   7C00            7C00            3C0
$.SubsSide1._._._._.190/22817   7C00            7C00            3C0
$.SubsSide1._._._._.190/23128   7C00            7C00            3C0
$.SubsSide1._._._._.190/23211   7C00            7C00            3C0
$.SubsSide1._._._._.190/23266   7C00            7C00            3C0
$.SubsSide1._._._._.190/23504   7C00            7C00            3C0
$.SubsSide1._._._._.190/23647   7C00            7C00            3C0
$.SubsSide1._._._._.190/23728   7C00            7C00            3C0
$.SubsSide1._._._._.190/23861   7C00            7C00            3C0
$.SubsSide1._._._._.190/23922   7C00            7C00            3C0
$.SubsSide1._._._._.190/24087   7C00            7C00            3C0
$.SubsSide1._._._._.190/24218   7C00            7C00            3C0
$.SubsSide1._._._._.190/24323   7C00            7C00            3C0
$.SubsSide1._._._._.190/24633   7C00            7C00            3C0
$.SubsSide1._._._._.190/24917   7C00            7C00            3C0
$.SubsSide1._._._._.190/24972   7C00            7C00            3C0
$.SubsSide1._._._._.190/25057   7C00            7C00            3C0
$.SubsSide1._._._._.190/25123   7C00            7C00            3C0
$.SubsSide1._._._._.190/25373   7C00            7C00            3C0
$.SubsSide1._._._._.190/25473   7C00            7C00            3C0
$.SubsSide1._._._._.190/25516   7C00            7C00            3C0
$.SubsSide1._._._._.190/25620   7C00            7C00            3C0
$.SubsSide1._._._._.190/25743   7C00            7C00            3C0
$.SubsSide1._._._._.190/25847   7C00            7C00            3C0
$.SubsSide1._._._._.190/26013   7C00            7C00            3C0
$.SubsSide1._._._._.190/26075   7C00            7C00            3C0
$.SubsSide1._._._._.190/26137   7C00            7C00            3C0
$.SubsSide1._._._._.190/26295   7C00            7C00            3C0
$.SubsSide1._._._._.190/26399   7C00            7C00            3C0
$.SubsSide1._._._._.190/26536   7C00            7C00            3C0
$.SubsSide1._._._._.190/26746   7C00            7C00            3C0
$.SubsSide1._._._._.190/26843   7C00            7C00            3C0
$.SubsSide1._._._._.190/26931   7C00            7C00            3C0
$.SubsSide1._._._._.190/27030   7C00            7C00            3C0
$.SubsSide1._._._._.190/27052   7C00            7C00            3C0
$.SubsSide1._._._._.190/27148   7C00            7C00            3C0
$.SubsSide1._._._._.190/27256   7C00            7C00            3C0
$.SubsSide1._._._._.190/27283   7C00            7C00            3C0
$.SubsSide1._._._._.190/27377   7C00            7C00            3C0
$.SubsSide1._._._._.190/27418   7C00            7C00            3C0
$.SubsSide1._._._._.190/27608   7C00            7C00            3C0
$.SubsSide1._._._._.190/27919   7C00            7C00            3C0
$.SubsSide1._._._._._.190/28089 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28146 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28218 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28309 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28335 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28381 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28441 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28630 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28745 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28780 7C00            7C00            3C0
$.SubsSide1._._._._._.190/28860 7C00            7C00            3C0
$.SubsSide1._._._._._.190/29176 7C00            7C00            3C0
$.SubsSide1._._._._._.190/29208 7C00            7C00            3C0
$.SubsSide1._._._._._.190/29305 7C00            7C00            3C0
$.SubsSide1._._._._._.190/29582 7C00            7C00            3C0
$.SubsSide1._._._._._.190/29661 7C00            7C00            3C0
$.SubsSide1._._._._._.190/29823 7C00            7C00            3C0
$.SubsSide1._._._._._.190/29966 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30103 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30147 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30248 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30304 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30482 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30566 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30661 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30730 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30820 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30883 7C00            7C00            3C0
$.SubsSide1._._._._._.190/30957 7C00            7C00            3C0
$.SubsSide1._._._._._.190/31011 7C00            7C00            3C0
$.SubsSide1._._._._._.190/31140 7C00            7C00            3C0
$.SubsSide1._._._._._.190/31249 7C00            7C00            3C0
$.SubsSide1._._._._._.190/31325 7C00            7C00            3C0
$.SubsSide1._._._._._.190/31469 7C00            7C00            3C0
$.SubsSide1._._._._._.190/31687 7C00            7C00            3C0
$.SubsSide1._._._._._.190/31710 7C00            7C00            3C0
$.SubsSide1._._._._._.190/31812 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32123 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32285 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32452 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32567 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32641 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32669 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32766 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32866 7C00            7C00            3C0
$.SubsSide1._._._._._.190/32933 7C00            7C00            3C0
$.SubsSide1._._._._._._.190/33244               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/33400               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/33546               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/33630               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/33838               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/33890               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/33951               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/34142               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/34227               7C00            7C00            3C0
$.SubsSide1._._._._._._.190/34315               7C00            7C00            3C0
$.SubsSide2 (empty)
Putting the files into a UEF file and looking at one or two of them indicates that re-interleaving the image produces something usable. I'll upload a new disk image later for people to look at.

User avatar
davidb
Posts: 2646
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: British Garden Birds

Post by davidb » Sun Aug 04, 2019 9:40 pm

Here's an ADFS E format disk, produced using Arculator. I know it's not that useful for those who want to read the files on a BBC Micro, so I've also attached a ZIP archive of the files I extracted containing .inf files so that people can put together other kinds of images for testing.
Attachments
BritishGardenBirds1.zip
(383.54 KiB) Downloaded 14 times
BritishGardenBirds1.adf.zip
(77.33 KiB) Downloaded 14 times

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Mon Aug 05, 2019 1:10 pm

That's very curious, and I don't really understand what is going on. The images I make are not interleaved, they are a straight sector dump of tracks 0 to 79 followed by tracks 80 to 159.

If I attempt to mount BGB1directextract in Fuse-ADFS with debug mode on I get this:

Code: Select all

parse_dir: reading 5 sectors at 2
parse_dir: reading 5 sectors at 2555
parse_dir: reading 5 sectors at 426
parse_dir: reading 5 sectors at 607
parse_dir: reading 5 sectors at 796
parse_dir: reading 5 sectors at 985
parse_dir: reading 5 sectors at 1174
parse_dir: reading 5 sectors at 94
parse_dir: reading 5 sectors at 1367
parse_dir: reading 5 sectors at 1565
parse_dir: reading 5 sectors at 1754
parse_dir: reading 5 sectors at 1943
parse_dir: reading 5 sectors at 2132
parse_dir: reading 5 sectors at 2321
parse_dir: reading 5 sectors at 2510
parse_dir: reading 5 sectors at 83
getattr: /.xdg-volume-info
getattr: /
getattr: /autorun.inf
getattr: /.Trash
getdir: /
getattr: /.Trash-1000
getattr: /..THIS_DIR.inf
getattr: /..THIS_DISK.inf
getattr: /.ATS-259.inf
getattr: /.Grabber.inf
getattr: /.MorleySVHS.inf
getattr: /.MorleyTune.inf
getattr: /ATS-259
getattr: /Birds
getattr: /Grabber
getattr: /MorleySVHS
getattr: /MorleyTune
getattr: /OldBirds
getattr: /SubsSide1
getattr: /SubsSide2
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /
getdir: /
getattr: /autorun.inf
statfs: available sectors = 2558, free = 131
getattr: /
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
getattr: /.Trash
getattr: /.Trash-1000
getdir: /
getattr: /..THIS_DIR.inf
getattr: /
getattr: /..THIS_DISK.inf
getattr: /.ATS-259.inf
getattr: /.Grabber.inf
getattr: /.MorleySVHS.inf
getattr: /.MorleyTune.inf
getattr: /ATS-259
getattr: /.hidden
getattr: /Birds
getattr: /Grabber
getattr: /MorleySVHS
getattr: /MorleyTune
getattr: /OldBirds
getattr: /SubsSide1
getattr: /SubsSide2
statfs: available sectors = 2558, free = 131
getattr: /
read: /ATS-259, 16384 bytes starting at 0
   starts at sector 7
   length = 16384
read: /Grabber, 4096 bytes starting at 0
   starts at sector 71
   length = 2833
read: /MorleySVHS, 4096 bytes starting at 0
   starts at sector 92
   length = 8
read: /MorleyTune, 4096 bytes starting at 0
   starts at sector 93
   length = 8
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
getattr: /Grabber
read: /Grabber, 4096 bytes starting at 0
   starts at sector 71
   length = 2833
getattr: /Grabber
getattr: /Birds
getattr: /
getattr: /.Trash
getattr: /.Trash-1000
getdir: /Birds
getattr: /Birds/..THIS_DIR.inf
getattr: /Birds
getattr: /Birds/_
getattr: /Birds/.hidden
statfs: available sectors = 2558, free = 131
getattr: /Birds
getattr: /
getattr: /.Trash
getattr: /.Trash-1000
getdir: /
getattr: /..THIS_DIR.inf
getattr: /
getattr: /..THIS_DISK.inf
getattr: /.ATS-259.inf
getattr: /.Grabber.inf
getattr: /.MorleySVHS.inf
getattr: /.MorleyTune.inf
getattr: /ATS-259
getattr: /Birds
getattr: /Grabber
getattr: /MorleySVHS
getattr: /MorleyTune
getattr: /OldBirds
getattr: /SubsSide1
getattr: /SubsSide2
read: /ATS-259, 16384 bytes starting at 0
   starts at sector 7
   length = 16384
read: /Grabber, 4096 bytes starting at 0
   starts at sector 71
   length = 2833
read: /MorleySVHS, 4096 bytes starting at 0
   starts at sector 92
   length = 8
read: /MorleyTune, 4096 bytes starting at 0
   starts at sector 93
   length = 8
getattr: /Grabber
read: /Grabber, 4096 bytes starting at 0
   starts at sector 71
   length = 2833
getattr: /Grabber
statfs: available sectors = 2558, free = 131
getattr: /
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
statfs: available sectors = 2558, free = 131
getattr: /
The disc mounts, and I can navigate through the directory structure, but the only actual files which appear are in the root directory (as suggested by the debug output).

If I add -t for interleaving, the disc doesn't mount at all and Fuse-ADFS falls over with this:

Code: Select all

parse_dir: reading 5 sectors at 2
adfs_start_secnum = 2
Start: T 0 S 2
Need to read 5 sectors
Read 5 sectors starting at ADFS track 0 (Linux track 0, head 0), sector 2 = sector number 2

parse_dir: reading 5 sectors at 2555
adfs_start_secnum = 2555
Start: T 159 S 11
Need to read 5 sectors
Read 5 sectors starting at ADFS track 159 (Linux track 79, head 1), sector 11 = sector number 2555

parse_dir: reading 5 sectors at 426
adfs_start_secnum = 426
Start: T 26 S 10
Need to read 5 sectors
Read 5 sectors starting at ADFS track 26 (Linux track 26, head 0), sector 10 = sector number 842

Doesn't look like a directory at sector 426
(Incidentally I have no idea how the first directory on the disc ("Birds") ended up being located in the final 5 sectors of the disc, but that is how it is on the actual floppy disc!)
Image

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Mon Aug 05, 2019 5:29 pm

The BGB1directextract image works fine in ADFS Explorer with interleaving turned off, and I get the same structure and content as shown in the ADF2INF listing above for interleaving; if I turn interleaving on, I get the truncated list of files which ADF2INF shows as non-interleaved.

So something is back-to-front somewhere.
Image

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Mon Aug 05, 2019 9:16 pm

Fixed it! Fuse-ADFS can't deal with filenames with "/" in them, they just get ignored! And of course all the teletext page files have a slash in them to denote the sub-page number! I hadn't noticed till now also that Fuse-ADFS was dropping "Grab/Bk" and "Grab/SubT" from the root dir as well!

So it needs to convert / to . in a filename. I've added an extra line to do this in the sub parse_dir section where it's reading the filename:

Code: Select all

 for my $j (0 .. 9) {
                        my $c = $name[$j];
                        my $c1 = $c & 0x7f;
                        if ($j < 5) {
                                my $f = $c & 0x80;
                                $adfs_attrs .= ( $f ? $adfs_attrs[$j] : ' ');
                        }
>>>>>>>		if ($c1 == 0x2f) { $c1 = 0x2e    # Convert / to . in filename
			}

                        $finished_name = 1 if $c1 == 0x0d;
                        $leafname .= chr $c1 unless $finished_name;
                }
And now it works!
Image

User avatar
davidb
Posts: 2646
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: British Garden Birds

Post by davidb » Mon Aug 05, 2019 10:11 pm

BeebMaster wrote:
Mon Aug 05, 2019 9:16 pm
Fixed it! Fuse-ADFS can't deal with filenames with "/" in them, they just get ignored! And of course all the teletext page files have a slash in them to denote the sub-page number! I hadn't noticed till now also that Fuse-ADFS was dropping "Grab/Bk" and "Grab/SubT" from the root dir as well!
...
And now it works!
That's good to know. Also that I don't have to fix my Fuse implementation! ;)

User avatar
BeebMaster
Posts: 3060
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: British Garden Birds

Post by BeebMaster » Tue Aug 06, 2019 10:26 pm

Here's a new image of disc 2, which is correct.

I'm still having trouble with dragging items from within the Fuse mount, sometimes it works correctly and sometimes it doesn't (which is what happened with the first set of images) but this appears to be a separate issue to the slash issue.
Attachments
BGdnBirds2.7z
(21.86 KiB) Downloaded 14 times
Image

User avatar
davidb
Posts: 2646
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: British Garden Birds

Post by davidb » Tue Aug 06, 2019 11:19 pm

I reinterleaved the image and extracted the files. Please let me know whether they look OK.
Attachments
BritishGardenBirds2.zip
(312.47 KiB) Downloaded 15 times

User avatar
PitfallJones
Posts: 452
Joined: Fri Feb 22, 2008 3:44 pm
Contact:

Re: British Garden Birds

Post by PitfallJones » Thu Aug 08, 2019 2:06 pm

Hi,

Here's a 80 track DFS disk of the bird descriptions.

The original dump seems to miss some subpages and just repeat an earlier page so I've marked some pages as missing.
I think each bird should have 3 subpages.
The later dumps appear to just have the subtitle pages.

Enjoy!

PJ
Attachments
bgbirds.rar
(47.48 KiB) Downloaded 13 times

Post Reply