Opus Challenger disassembly + patched 2.00 ROM

discussion of beeb/electron applications, languages, utils and educational s/w
Post Reply
tom_seddon
Posts: 216
Joined: Mon Aug 29, 2005 11:42 pm
Contact:

Opus Challenger disassembly + patched 2.00 ROM

Post by tom_seddon » Mon Oct 08, 2018 12:26 am

I was looking at an old copy of The Micro User the other day and saw an advert for the Challenger 2.00/ADFS ROM. My Challenger has the 1.01 ROM, and certainly no ADFS, so this got me searching, and I found a thread about it here: viewtopic.php?f=32&t=11795

Turns out the 2.00/ADFS ROM is 32K, so two parts: a 16K DFS part that's supposedly stand-alone, and a 16K ADFS part (that is very obviously Master only, and appears to depend on the DFS part's disc access routines).

The standalone DFS part looks like it ought to work on the BBC B, but it doesn't - at least, it doesn't quite, but it was close enough that I decided to see if it was fixable. The result: a reasonably useful disassembly, and a patched ROM that should (hopefully) work on BBC B and Master alike, with or without the ADFS ROM. See here: https://github.com/tom-seddon/challenger_disassembly - for entertainment purposes only, at your own risk, etc. (Master compatibility as yet untested, but I am using the patched ROM in my own BBC B)

Now that I've got the DFS half apparently working, I'm not quite sure where I'm going to go with this. I'd like to produce a full re-assembleable version, so I'll probably be poking at it over time with that as my goal, and once I try it on the Master in conjuction with the ADFS part, I'm sure I'll have to spend a bit of time sorting out any problems caused by my "fix" ;) - but aside from that, I don't really have anything in mind. A model B-compatible Challenger ADFS would be good, but it looks like that would be quite a lot of work, so it probably won't happen... (And anyway, ADFS is terrible on floppy discs! I'm not even sure why I'd want it, even though I do.)

--Tom
Last edited by tom_seddon on Mon Oct 08, 2018 12:29 am, edited 1 time in total.

User avatar
Lardo Boffin
Posts: 1308
Joined: Thu Aug 06, 2015 6:47 am
Contact:

Re: Opus Challenger disassembly + patched 2.00 ROM

Post by Lardo Boffin » Mon Oct 08, 2018 6:21 am

Very interesting!

Any idea how the ADFS side would ‘see’ the 512K of RAM discs?
Last edited by Lardo Boffin on Mon Oct 08, 2018 6:21 am, edited 1 time in total.
BBC model B 32k issue 4, 16k sideways RAM, Watford 12 ROM board, Viglen twin 40/80 5.25" discs, Acorn 6502 coproc
BBC model B 32k issue 7, turboMMC, Opus Challenger 3 512k, Pi 3 coproc
BBC Master, Datacentre + HDD, pi co-proc

User avatar
Pernod
Posts: 1315
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Opus Challenger disassembly + patched 2.00 ROM

Post by Pernod » Mon Oct 08, 2018 3:20 pm

tom_seddon wrote:
Mon Oct 08, 2018 12:26 am
I was looking at an old copy of The Micro User the other day and saw an advert for the Challenger 2.00/ADFS ROM. My Challenger has the 1.01 ROM, and certainly no ADFS, so this got me searching, and I found a thread about it here: viewtopic.php?f=32&t=11795
Thanks for finding an advert for this, I'd previously assumed it was in development and never made it to commercial release. Looking at other Micro User issues it was only advertised from Dec.87-Feb.88, and was marketed by Slogger rather than Opus.

As MAME already supports the Challenger I tried the ROM in a Master configuration. It initialises ADFS and produces the 'Challenger ADFS 512K' banner but seems to get stuck in DFS. I can also see that it has formatted the RAM disc as ADFS. Not really looked at it further yet but I expect your disassembly will come in useful =D>
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

tom_seddon
Posts: 216
Joined: Mon Aug 29, 2005 11:42 pm
Contact:

Re: Opus Challenger disassembly + patched 2.00 ROM

Post by tom_seddon » Sat Oct 20, 2018 9:06 pm

Lardo Boffin wrote:
Mon Oct 08, 2018 6:21 am
Very interesting!

Any idea how the ADFS side would ‘see’ the 512K of RAM discs?
From a UI perspective: it apparently appears as drives 2 and 6. (Still haven't actually tested this with my own Challenger though!) Don't know if you've seen them but the other thread has a photo of the 3 dot matrix printed sheets that apparently passed for the manual: viewtopic.php?f=32&t=11795&start=30#p191812

Technically: the DFS half contains all the routines for RAM disc access and 1770 access, and the ADFS half appears to mostly defer to it for disc access. (Hard disc access routines are an open question - I haven't looked for those yet.) So I expect the bulk of the ADFS code can just treat the RAM disc like a normal disc (albeit one that claims to be only 512K), and there's probably just a special case in the formatter.

--Tom

P.S. I have my Master set up again now, and I've upgraded my Challenger to 512K, so this stuff will get tried out on real hardware at some point soon...
Last edited by tom_seddon on Sat Oct 20, 2018 9:08 pm, edited 1 time in total.

tom_seddon
Posts: 216
Joined: Mon Aug 29, 2005 11:42 pm
Contact:

Re: Opus Challenger disassembly + patched 2.00 ROM

Post by tom_seddon » Sat Nov 10, 2018 3:41 pm

Pernod wrote:
Mon Oct 08, 2018 3:20 pm
As MAME already supports the Challenger I tried the ROM in a Master configuration. It initialises ADFS and produces the 'Challenger ADFS 512K' banner but seems to get stuck in DFS.
I've had a chance to try this briefly on a real Master+Challenger now, and it seems that the original ROM pair does seem to work OK on a Master, to some extent. To try it out, load both halves into adjacent ROM slots, with CHADFS in the higher one and CH200 in the lower. *UNPLUG the onboard DFS and ADFS. It starts up in ADFS mode with the RAM disc initialised as ADFS.

Issues I've noted from my brief test:

1. Had some intermittent *AFORM problems, with it just hanging before starting formatting the first track

2. AFORM doesn't DISMOUNT the disc before formatting...

2. ADFS *CONFIG mappings are wonky on startup (drives 0-6 look fine, but drive 7=drive F, whatever that might mean)

Exciting action shot attached.

--Tom

P.S. my patched ROM has been working fine on its own on my B, but I've obviously broken something because it doesn't work properly in conjunction with the ADFS half: disc access no problem, but the RAM disc isn't initialised correctly.
IMG_20181110_151249855.jpg
Last edited by tom_seddon on Sat Nov 10, 2018 3:45 pm, edited 1 time in total.

User avatar
Pernod
Posts: 1315
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Opus Challenger disassembly + patched 2.00 ROM

Post by Pernod » Sun Nov 11, 2018 11:12 am

tom_seddon wrote:
Sat Nov 10, 2018 3:41 pm
Pernod wrote:
Mon Oct 08, 2018 3:20 pm
As MAME already supports the Challenger I tried the ROM in a Master configuration. It initialises ADFS and produces the 'Challenger ADFS 512K' banner but seems to get stuck in DFS.
I've had a chance to try this briefly on a real Master+Challenger now, and it seems that the original ROM pair does seem to work OK on a Master, to some extent. To try it out, load both halves into adjacent ROM slots, with CHADFS in the higher one and CH200 in the lower. *UNPLUG the onboard DFS and ADFS. It starts up in ADFS mode with the RAM disc initialised as ADFS.
I tried this again and can only assume I made a rookie Master/ADFS mistake by probably not unplugging the onboard DFS/ADFS for my previous tests.

If I don't have an ADFS floppy in the drive it sits trying to MOUNT 0, with floppy in drive it starts in ADFS and returns to BASIC prompt. Is this expected behaviour?

The DFS also seems to work, but to select DFS with D+BREAK I had to *CONFIGURE FILE <DFS slot(6)>. Is this also expected behaviour?
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

tom_seddon
Posts: 216
Joined: Mon Aug 29, 2005 11:42 pm
Contact:

Re: Opus Challenger disassembly + patched 2.00 ROM

Post by tom_seddon » Sun Nov 11, 2018 7:23 pm

Pernod wrote:
Sun Nov 11, 2018 11:12 am
If I don't have an ADFS floppy in the drive it sits trying to MOUNT 0, with floppy in drive it starts in ADFS and returns to BASIC prompt. Is this expected behaviour?
Good point - yes, if you have *CONFIGURE DIR set. I normally have *CONFIGURE NODIR, so I wasn't seeing this when I tried it before.
Pernod wrote:
Sun Nov 11, 2018 11:12 am
The DFS also seems to work, but to select DFS with D+BREAK I had to *CONFIGURE FILE <DFS slot(6)>. Is this also expected behaviour?
Yes, I get this on mine too.

I've still got it all plugged in so let me know if there's anything else I can try :)

--Tom

User avatar
Pernod
Posts: 1315
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Opus Challenger disassembly + patched 2.00 ROM

Post by Pernod » Sun Nov 11, 2018 7:41 pm

tom_seddon wrote:
Sun Nov 11, 2018 7:23 pm
Pernod wrote:
Sun Nov 11, 2018 11:12 am
If I don't have an ADFS floppy in the drive it sits trying to MOUNT 0, with floppy in drive it starts in ADFS and returns to BASIC prompt. Is this expected behaviour?
Good point - yes, if you have *CONFIGURE DIR set. I normally have *CONFIGURE NODIR, so I wasn't seeing this when I tried it before.
Pernod wrote:
Sun Nov 11, 2018 11:12 am
The DFS also seems to work, but to select DFS with D+BREAK I had to *CONFIGURE FILE <DFS slot(6)>. Is this also expected behaviour?
Yes, I get this on mine too.

I've still got it all plugged in so let me know if there's anything else I can try :)

--Tom
Thanks for the clarifications. As I've never really used a Master beyond it's default configuration I was unaware of NODIR. I'm now happy that the ROM is fully supported and working as expected in MAME :D
Last edited by Pernod on Sun Nov 11, 2018 7:42 pm, edited 1 time in total.
- Nigel

BBC Model B, ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

Post Reply