Questions about Roms on a BBC Master...

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
Post Reply
BBCNoob
Posts: 71
Joined: Sun Feb 25, 2018 12:36 pm
Contact:

Questions about Roms on a BBC Master...

Post by BBCNoob » Sun Feb 25, 2018 3:28 pm

As my avatar name stats, I'm a complete noob to Beebs.

I've got a BBC Master with two ROMS taken up already.

A MultiOS - RetroClinic
and RamFS 1.04 - RetroClinic.

I'm wanting to install a VideoNuLA and a flashable EEPROM that can be flashed within the Beeb.

I've no real idea what Sideways RAM / ROM is when it comes to Beebs? I understand the actual differences between RAM/ROM/EPROM/EEPROM.

I know there's jumpers inside the Beeb, but don't really understand what they're for? I'm not sure if it's all going to mess up, if I try and put all four ROMS in?

I understand that the MultiOS would have to be raised up over the top of the Flashable EEPROM chip, and the VideoNuLA can sit in the lower of the slots, but will use up some sideways RAM.

Has anyone actually got this setup, or at least understand what it's all about and if I can actually do this?

Thanks!

Coeus
Posts: 1385
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: Questions about Roms on a BBC Master...

Post by Coeus » Sun Feb 25, 2018 6:39 pm

BBCNoob wrote:...I've no real idea what Sideways RAM / ROM is when it comes to Beebs? I understand the actual differences between RAM/ROM/EPROM/EEPROM...
Ok, so in brief part of the original design of the BBC micro was that software would be distributed on ROM, either a masked ROM for volume production or EPROM for a smaller run. This could be a language, an application, a filing system or other utilities (for example those to support NULA). The address space of 8000 to BFFF (hex) was set aside for such ROMs and a paging mechanism included to switch between multiple ROMs in the same address space.

Sideaways RAM puts RAM into that same address space, i.e. 8000 to BFFF, selectable in the same was as any of the ROMs. That means software that would have originally have been distributed on ROM can be loaded into the sideways RAM and run from there without having to physically install the ROM. Obviously RAM is volatile so the ROM image needs to be reloaded form the filing system if the machine has been powered off but equally you can try out a much larger range of ROMs than you could ever physically install so in that respect sideways RAM is useful. Also some games can make use of it for extra features.

So there are 16 virtual ROM slots (banks) available, i.e. sets of 4000 bytes that could be paged into the region 8000-BFFF and on the Master 7 of those banks are allocated to software contained in the OS ROM, though not all of it is really part of the OS, one slot is available as a physical ROM socket on the motherboard, which is the one I think you have already put a ROM in, 4 banks are sideways RAM and 4 banks are allocated to the cartridge slots, 2 to each one.

So, if you have extra ROMs you want to run but have run out of slots you have some options:

1. Move a jumper so that it reassigns some of the slots that is currently sideways RAM to being ROM. Then you can put the ROM into another socket on the motherboard. IIRC you can only do this to pairs of slots, i.e. 2 banks at a time.
2. Put the extra ROM you want to use into a cartridge and put it into a cartridge slot.
3. Replace one of the non-OS ROM images contained in the OS ROM chip with something you find more useful. AFAIK DFS and Terminal both contain parts of the OS, others could be replaced.
4. Just run the new ROM from sideways RAM - use the *SRLOAD to load it in when you need it.

User avatar
danielj
Posts: 7516
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: Questions about Roms on a BBC Master...

Post by danielj » Sun Feb 25, 2018 6:49 pm

Hello! Welcome to the forum.
(I wrote this at the same time as Coeus, so it repeats quite a bit of what he said!)

So, some quick definitions: ROM - Read Only Memory. In the beeb context, these are 16kb chunks that can be paged in and out of memory. The BBC and Master can work with up to 16 of these.

In the Master, ROMs 9-13 are already occupied. They're all stored in a single 128kb ROM along with the OS, which is always present in the memory space. JGH's website gives you an idea of what's in there:
http://mdfs.net/Info/Comp/BBC/SROMs/MegaROM.htm

The multios . has a few different versions of the megarom in it, and by twiddling the knob you can swap the 128kb of ROMs that are visible to the machine.

Next, the Master has a single ROM socket that can be used for another 16kb ROM (in position 8 ) - you've got RAMFS in this.

The Master 128 is called a Master 128 as it's got 128kb of RAM, 64k of which is generally configured as sideways RAM. Sideways RAM slots work exactly like ROMs, except you need to load the image you want to use, and it's lost when you turn the machine off. Positions 4, 5, 6 and 7 are sideways RAM by default in the Master. You can turn these off and use ROMs instead (those empty sockets below where RAMFS is plugged in, but you lose the RAM. This potentially stops you being able to run enhanced versions of games etc, and rather removes some of the benefits of having a Master 128!

Finally, sockets 0, 1, 2 and 3 are available to the cartridge sockets. You can buy a battery backed ram cartridge, or a ROM cartridge to sit in these slots, and plug whatever you like into it, and swap it for another without having to take the lid off your machine.

As to where you put the VideoNULA support ROM - it *doesn't* need to be in the machine the whole time - so you could just load the image from your datacentre when you want it. Alternatively, you can reprogram the EEPROM in the MultiOS to have the VideoNULA support ROM in there instead of something fairly useless like Viewsheet. You could buy a ROM or battery backed RAM cartridge from Dave Hitchins on this forum, and stick that in the cartridge socket with the VideoNULA ROM in it, or finally, you could sacrifice half of your sideways RAM and install it in one of the internal sockets. That really would be my last choice...

d.
Last edited by 1024MAK on Mon Feb 26, 2018 1:57 pm, edited 1 time in total.
Reason: Edited so that 8 ) shows as intended instead of a emoji...

crj
Posts: 846
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by crj » Sun Feb 25, 2018 7:01 pm

OK. First thing to explain is how paged ROMs work.

The 6502 has a 16-bit address space, so it can directly address 64Kbytes of memory. To see more memory than that, hardware has to "page" different pieces of memory into various parts of the address space, according to need. The BBC Master does a lot of quite sophisticated paging, but the paged ROM mechanism is shared with earlier machines.

16Kbytes of the address space, from &8000 to &BFFF (The "&" prefix denotes a hexadecimal number in the Acorn world, by the way - you may have seen "$" or "0x" in other contexts.) are for paged ROMs. The operating system supports 16 ROMs, giving each the opportunity to provide commands, filing systems, languages, support for new hardware, etc.

The BBC model B had five physical ROM sockets. One was for the operating system, and the other four were for paged ROMs. Although third-party products were available to extend this, normally that's your lot.

In the BBC master, things are a little more sophisticated. Those 16 pages map out like this:
  • F: Part of the 128Kbyte OS ROM (IC24)
  • E: Part of the 128Kbyte OS ROM (IC24)
  • D: Part of the 128Kbyte OS ROM (IC24)
  • C: Part of the 128Kbyte OS ROM (IC24)
  • B: Part of the 128Kbyte OS ROM (IC24)
  • A: Part of the 128Kbyte OS ROM (IC24)
  • 9: Part of the 128Kbyte OS ROM (IC24)
  • 8: A 16Kbyte ROM in socket IC27
  • 7: Either 16Kbytes of RAM (LK18 is West), or the top half of a 32Kbyte ROM in socket IC41 (LK18 is East)
  • 6: Either 16Kbytes of RAM (LK18 is West), or the bottom half of a 32Kbyte ROM in socket IC41 (LK18 is East)
  • 5: Either 16Kbytes of RAM (LK19 is West), or the top half of a 32Kbyte ROM in socket IC37 (LK19 is East)
  • 4: Either 16Kbytes of RAM (LK19 is West), or the bottom half of a 32Kbyte ROM in socket IC37 (LK19 is East)
  • 3: May be provided by the front cartridge
  • 2: May be provided by the front cartridge
  • 1: May be provided by the rear cartridge
  • 0: May be provided by the rear cartridge
So the first 16Kbyte ROM you want to plug in is easy: stick it in IC27.

If you want to add more, your best option is to get a cartridge. This can offer two more sockets for another two 16Kbyte ROMs. Alternatively, some have a single socket; if you want to provide two 16Kbyte ROMs using one of those, you have to burn both into a single 32Kbyte EPROM.

With a ROM in IC27 and two in each of the two cartridge slots, that lets you have five ROMs without losing any RAM. That's the setup in my own Master.

If you want even more ROMs, or for some reason cartridges aren't an option, you can instead use the mainboard sockets IC37 and IC41. But you lose 32Kbytes of RAM in each case, and again you have the problem that you can only plug one 16Kbyte ROM into each unless you burn two of them into a single 32Kbyte EPROM.

User avatar
1024MAK
Posts: 9238
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...
Contact:

Re: Questions about Roms on a BBC Master...

Post by 1024MAK » Sun Feb 25, 2018 7:30 pm

If you are staring at the basics of the memory arrangements in a Beeb, it's well worthwhile reading this page. The Master just expands on these concepts a bit.

Mark

BBCNoob
Posts: 71
Joined: Sun Feb 25, 2018 12:36 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by BBCNoob » Sun Feb 25, 2018 9:07 pm

Thank you for all the info everyone. That'll leave me scratching my head for a few days I think. :lol:

The EEPROM I have is an internal IFEL one. If that means anything to anyone?

It talks about that it has to use IC37 and making sure that the LK19 is the right. I haven't fitted it yet, because the RetroClinic MultiOS is covering that socket, and I need to rise the MultiOS up before I can do that (Planning on using 5 or 6 sockets)- plus I think the LK19 is currently to the left. I don't know if it has to stay to the left for the MultiOS?

The VideoNuLA talks about it's better to be put in the C37 or IC41. Either way two lots of 16KB sideways ram will be lost, and LK19 has to be to the right.

I understand that for the VideoNuLA, I can always just load the ROM in when needed. So, that can always solve that problem.

Hopefully after some more reading and head scratching I'll understand things more.

RobC
Posts: 2695
Joined: Sat Sep 01, 2007 9:41 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by RobC » Sun Feb 25, 2018 9:32 pm

BBCNoob wrote:The VideoNuLA talks about it's better to be put in the C37 or IC41. Either way two lots of 16KB sideways ram will be lost, and LK19 has to be to the right.

I understand that for the VideoNuLA, I can always just load the ROM in when needed. So, that can always solve that problem.
If you do want to install the ROM, the VideoNuLA manual suggests putting it in IC27 (if free) as this is a 16KB socket and does not overlap with sideways RAM.

Loading the ROM image into sideways RAM as and when it's needed is a good option though. And you can still use the board even if the ROM or image isn't present.

crj
Posts: 846
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by crj » Mon Feb 26, 2018 12:41 am

BBCNoob wrote:The EEPROM I have is an internal IFEL one. If that means anything to anyone?

It talks about that it has to use IC37 and making sure that the LK19 is the right.
It's quite likely that it will work fine if you instead put it in IC41 and set LK18 to the East, though it might be worth checking with IFEL.

I guess it's too chunky to fit in a cartridge? If you could shoehorn it into one, that would save you some RAM.

BBCNoob
Posts: 71
Joined: Sun Feb 25, 2018 12:36 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by BBCNoob » Mon Feb 26, 2018 7:09 am

RobC wrote:If you do want to install the ROM, the VideoNuLA manual suggests putting it in IC27 (if free) as this is a 16KB socket and does not overlap with sideways RAM.

Loading the ROM image into sideways RAM as and when it's needed is a good option though. And you can still use the board even if the ROM or image isn't present.
Sorry, I think I jumped a step when I mentioned what I did.

The RamFS 1.04 ROM is already sitting in that ICE27 spot, so that's why I'm left with IC37 or IC41. But since the IFEL EEPROM demans IC37, it leaves me with IC41
crj wrote:It's quite likely that it will work fine if you instead put it in IC41 and set LK18 to the East, though it might be worth checking with IFEL.

I guess it's too chunky to fit in a cartridge? If you could shoehorn it into one, that would save you some RAM.
The IFEL EEPROM, actually has wires coming from it, that link up to local chips that allow for the flashing it, within the BBC Master itself.

A direct quote from its manual...
The EEPROM module can only be used in the socket marked IC37, the one
immediately ‘south’ of the OS ROM. Any existing ROM will need to be removed.
Make sure that LK19 is set to the right (‘east’). LK19 is just to the left of IC37.

User avatar
danielj
Posts: 7516
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: Questions about Roms on a BBC Master...

Post by danielj » Mon Feb 26, 2018 9:06 am

Using the ifel eeprom sounds like it's going to stop your m128 being an m128 :?. Just having read the ebay blurb on it, it would seem to be the case.

I'd personally put it to one side, there are better solutions as discussed above.

d.

crj
Posts: 846
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by crj » Mon Feb 26, 2018 3:07 pm

BBCNoob wrote:
crj wrote:It's quite likely that it will work fine if you instead put it in IC41 and set LK18 to the East, though it might be worth checking with IFEL.[...]
The IFEL EEPROM, actually has wires coming from it, that link up to local chips that allow for the flashing it, within the BBC Master itself.

A direct quote from its manual...
The EEPROM module can only be used in the socket marked IC37, the one
immediately ‘south’ of the OS ROM. Any existing ROM will need to be removed.
Make sure that LK19 is set to the right (‘east’). LK19 is just to the left of IC37.
Is that manual available online anywhere? The two sockets are very nearly equivalent; unless the software has bank numbers hard-coded somewhere that's not trivial to patch, you'd have to go out of your way to make something which cared.

(I keep getting a slightly bad vibe about IFEL. Although their products look quite good, they seem very secretive in a way that, for example, is right now preventing us from being as helpful as we'd like about how to get them working well with other expansions. Plus, they seem to put a little too much energy into casting aspersions about their "competition".)

BBCNoob
Posts: 71
Joined: Sun Feb 25, 2018 12:36 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by BBCNoob » Mon Feb 26, 2018 3:25 pm

Not to worry about the IFEL, chip. I've decided to send it back. It looks like it's going to be more hassle than I'm willing to bother with.

Thank you everyone for your help.

So, on to having fun trying to install the VideoNuLA. I'll start a new thread if I start having problems with that.

crj
Posts: 846
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by crj » Mon Feb 26, 2018 3:30 pm

BBCNoob wrote:So, on to having fun trying to install the VideoNuLA.
I trust you're already aware that, unlike in the model B, the ULA isn't socketed in the Master, so you have to be confident desoldering a 40-pin IC?

BBCNoob
Posts: 71
Joined: Sun Feb 25, 2018 12:36 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by BBCNoob » Mon Feb 26, 2018 3:32 pm

Yeah, I've already desoldered it. I've got it installed now. But I'm getting cyan as a default colour, and no red in mode 7. (Maybe others) I haven't changed any of its settings yet.

Apart from that, the image is clear etc. Just the colours are wrong. I've contacted the maker, in hopes of figuring out what's going on.

RobC
Posts: 2695
Joined: Sat Sep 01, 2007 9:41 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by RobC » Mon Feb 26, 2018 7:58 pm

crj wrote:
BBCNoob wrote:So, on to having fun trying to install the VideoNuLA.
I trust you're already aware that, unlike in the model B, the ULA isn't socketed in the Master, so you have to be confident desoldering a 40-pin IC?
Not that it makes any difference to your point but, for the sake of clarity and so there's no confusion for others, the Video ULA is a 28-pin IC.

crj
Posts: 846
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: Questions about Roms on a BBC Master...

Post by crj » Tue Feb 27, 2018 2:09 am

Gosh, now you mention it, you're right of course.

I'd never noticed that the Video ULA and Serial ULA were smaller devices; I'm used to the Master and second-processor ones.

(This despite measuring clearance around the Video ULA's heatsink only the other day. D'oh!)

Post Reply