Sideways RAM expansion

discuss both original and modern hardware for the bbc micro/electron
Post Reply
User avatar
SimonSideburns
Posts: 564
Joined: Mon Aug 26, 2013 9:09 pm
Location: Purbrook, Hampshire
Contact:

Sideways RAM expansion

Post by SimonSideburns » Wed Apr 29, 2020 1:27 pm

I was thinking about the use of RAM in the Sideways ROM area and I wonder if it was possible somehow to have a large paged RAM area at this location?

There would have to be a way to page in each section of RAM into the address space, and it would likely not take the full 16K as you'd need some code to handle the paging of RAM, so a possible size would be 8K of fixed ROM, 8K paged RAM area, pointing to a larger RAM space. No current software would be able to use it, and new software to use the RAM would have to be written. I suppose the only limit is on how much data or code that could be loaded in from floppy into this area. E.G. if you had 1Mb of RAM paged into that area, but only a 200K floppy drive, you'd have to do a bit of disk swapping to load all the resources for a game or utility prior to playing.

This begs the question: What could it be used for? How would it work? Is it worth it?

Your thoughts?
Just remember kids, Beeb spelled backwards is Beeb!

cmorley
Posts: 1317
Joined: Sat Jul 30, 2016 8:11 pm
Location: Oxford
Contact:

Re: Sideways RAM expansion

Post by cmorley » Wed Apr 29, 2020 1:47 pm

Technically possible. I have wondered the same for my next ROM/RAM board.

Since there is no software for such a beast there is little point in doing it though. No one will write software for it because it isn't common so no one will adopt it. Catch 22.

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

Re: Sideways RAM expansion

Post by 1024MAK » Wed Apr 29, 2020 2:14 pm

Hi Simon

I’ve split your post away from the thread you posted it in and created a new thread.

Before thinking about other possibilities, keep in mind that the existing sideways memory system allows for 16 lots of 16k byte slots. This gives a combined total of 256k of memory (some of which will be ROM, the rest can be RAM). You don’t have to use 16k byte chips. For example, a single 27512 or 27C512 EPROM can contain four 16k ROM images.

If all eights bits of the data-bus are latched instead of just four, it’s possible to have 256 lots of 16k byte slots. This gives a combined total of 4M bytes of memory. Is that enough for you? Of course, nothing much currently supports this, hence it’s also a Catch 22...

The largest DIP SRAM chip that I can find listed at Mouser is the AS6C4008-55PCN which is 512k bytes. That will give you 16 slots of 16k bytes. The top four pins of this chip will overhang the socket on a Beeb. Some other pins also will need to be bent up. Then on top you would have to wire in a latch chip to pick up the top four bits of the data bus (or all eight if you prefer). Then it’s just a case of wiring it all up.

If however someone wanted to produce a plug-in module, then SMD chips could be used, and this would result in a much neater installation.

If you are happy with a more normal amount of sideways RAM, consider the ‘Solderless 32kB Sideways RAM & 32kB ROM’ from here :wink:

Mark

Edit: Chris replied while I was writing.

User avatar
BigEd
Posts: 3423
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Sideways RAM expansion

Post by BigEd » Wed Apr 29, 2020 3:11 pm

Also worth noting, the 1MHz bus is there for large and super-large RAM disks... although again I think you do need some software to drive it.

User avatar
Lardo Boffin
Posts: 2169
Joined: Thu Aug 06, 2015 7:47 am
Contact:

Re: Sideways RAM expansion

Post by Lardo Boffin » Wed Apr 29, 2020 3:38 pm

The Opus Challenger 3 uses the 1MHz bus to send / receive data from its onboard RAM drive (either 256 or 512K).
Adventure Language on GitHub
Atom, issue 5
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA

User avatar
jgharston
Posts: 4118
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: Sideways RAM expansion

Post by jgharston » Wed Apr 29, 2020 3:50 pm

SimonSideburns wrote:
Wed Apr 29, 2020 1:27 pm
I was thinking about the use of RAM in the Sideways ROM area and I wonder if it was possible somehow to have a large paged RAM area at this location?
That's what the Advanced Quarter Meg RAM does. Within the sideways ROM "window" you have up to 16 banks, the AQR puts multiple pages within one of those banks:

Code: Select all

Pages are different areas of memory that are switched into
banks of memory, as with the Advanced Quartermeg RAM where
multiple pages of memory can be switched into a bank of
sideways ROM/RAM.
                                 ___
                                /  /|
                               /  / |
                              /__/  |
                             /  /|  |
                            /  / |  /
           +------+        /__/  | /
           |      |       /  /|  |/
           |      |      /  / |  / pages
           |      |     /__/  | /
           |      |    /  /|  |/
           |      |   /  / |  /
           +------+--+--+--+--+--+
           |      |  |  |  |  |  |
    window |      |  |  |  |  |  |
           |      |  |  |  |  |  |
           +------+--+--+--+--+--+ 
           |      |     banks
           |      |
           |      |
           |      |
           |      |
           +------+
            memory
 
The *AQRPAGE <page> command selects a /page/ of AQR RAM to appear
in the sideways bank that it is plugged into.

The *SRPAGE <bank> <page> command selects a /page/ of ROM/RAM to appear
in the specified sideways ROM/RAM /bank/.
(Aside: grrr why isn't there a monospaced font option that can be used without having to use a code block.)

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.32
(C) Copyright J.G.Harston 1989,2005-2020
>_

User avatar
jgharston
Posts: 4118
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: Sideways RAM expansion

Post by jgharston » Wed Apr 29, 2020 3:51 pm

cmorley wrote:
Wed Apr 29, 2020 1:47 pm
Technically possible. I have wondered the same for my next ROM/RAM board.

Since there is no software for such a beast there is little point in doing it though. No one will write software for it because it isn't common so no one will adopt it. Catch 22.
The software exists, the *AQRPAGE and *SRPAGE commands in the AP6 support ROM and the ROM/RAM Utils based on it.

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.32
(C) Copyright J.G.Harston 1989,2005-2020
>_

Coeus
Posts: 1816
Joined: Mon Jul 25, 2016 12:05 pm
Contact:

Re: Sideways RAM expansion

Post by Coeus » Wed Apr 29, 2020 4:50 pm

Lardo Boffin wrote:
Wed Apr 29, 2020 3:38 pm
The Opus Challenger 3 uses the 1MHz bus to send / receive data from its onboard RAM drive (either 256 or 512K).
The scheme described in the Advanced User Guide for JIM of using a paging register in the last byte of FRED (&FCFF) seems to offer only 256 x 256-byte pages, i.e. a total of 64K half of which is reserved for Acorn. I am sure I read, probably on here, of an extended scheme whereby the register at &FCFF is treated as a "vendor number" and the immediately preceeding address (&FCCE) is then used to select a page within that vendor ID. As the last block of FRED is documented as "user applications" it would be possible to use as many bytes as needed.

It would interesting to know what existing RAMDISKs did. As well as the Opus one, I am pretty sure Solidisk did one.

Coeus
Posts: 1816
Joined: Mon Jul 25, 2016 12:05 pm
Contact:

Re: Sideways RAM expansion

Post by Coeus » Wed Apr 29, 2020 4:54 pm

jgharston wrote:
Wed Apr 29, 2020 3:50 pm
The *AQRPAGE <page> command selects a /page/ of AQR RAM to appear
in the sideways bank that it is plugged into.

The *SRPAGE <bank> <page> command selects a /page/ of ROM/RAM to appear
in the specified sideways ROM/RAM /bank/
So is it documented where they have put the extra paging register. We could always discover by tracing the command if not already known. If someone is designing new hardware there would be an advantage to using an established scheme with software already written.

User avatar
Lardo Boffin
Posts: 2169
Joined: Thu Aug 06, 2015 7:47 am
Contact:

Re: Sideways RAM expansion

Post by Lardo Boffin » Wed Apr 29, 2020 4:57 pm

This is from the Challenger manual:
7B537444-949E-4209-80D4-6110F630486A.jpeg
Adventure Language on GitHub
Atom, issue 5
Elk
A number of econetted (is that a word?) Beebs
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA

User avatar
jgharston
Posts: 4118
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: Sideways RAM expansion

Post by jgharston » Thu Apr 30, 2020 1:38 am

Coeus wrote:
Wed Apr 29, 2020 4:54 pm
jgharston wrote:
Wed Apr 29, 2020 3:50 pm
The *AQRPAGE <page> command selects a /page/ of AQR RAM to appear
in the sideways bank that it is plugged into.

The *SRPAGE <bank> <page> command selects a /page/ of ROM/RAM to appear
in the specified sideways ROM/RAM /bank/
So is it documented where they have put the extra paging register. We could always discover by tracing the command if not already known. If someone is designing new hardware there would be an advantage to using an established scheme with software already written.
Yep.

Code: Select all

FCFC  AQR Bank select

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.32
(C) Copyright J.G.Harston 1989,2005-2020
>_

User avatar
jgharston
Posts: 4118
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: Sideways RAM expansion

Post by jgharston » Thu Apr 30, 2020 1:41 am

Coeus wrote:
Wed Apr 29, 2020 4:50 pm
It would interesting to know what existing RAMDISKs did. As well as the Opus one, I am pretty sure Solidisk did one.
Existing systems that page more than 64K into JIM extend the paging register downwards, so:
&FCFF: b8-b15
&FCFE: b16-b23
&FCFD: b24-b31
See RAMCard and JIMAddrs.

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.32
(C) Copyright J.G.Harston 1989,2005-2020
>_

dominicbeesley
Posts: 1162
Joined: Tue Apr 30, 2013 12:16 pm
Contact:

Re: Sideways RAM expansion

Post by dominicbeesley » Thu Apr 30, 2020 12:39 pm

Coeus wrote:
Wed Apr 29, 2020 4:50 pm
Lardo Boffin wrote:
Wed Apr 29, 2020 3:38 pm
The Opus Challenger 3 uses the 1MHz bus to send / receive data from its onboard RAM drive (either 256 or 512K).
The scheme described in the Advanced User Guide for JIM of using a paging register in the last byte of FRED (&FCFF) seems to offer only 256 x 256-byte pages, i.e. a total of 64K half of which is reserved for Acorn. I am sure I read, probably on here, of an extended scheme whereby the register at &FCFF is treated as a "vendor number" and the immediately preceeding address (&FCCE) is then used to select a page within that vendor ID. As the last block of FRED is documented as "user applications" it would be possible to use as many bytes as needed.

It would interesting to know what existing RAMDISKs did. As well as the Opus one, I am pretty sure Solidisk did one.
Here you go viewtopic.php?f=3&t=17222

I can confirm that I've had an m500 (unmodified), DataCentre (modified RAMFS and firmware to confirm to the spec), Blitter and Paula emulation all running together nicely.

The page-wide ram works quite well for filing systems and access to other system's RAM for transfer but not so well for running code (1Mhz is a bit slow and 256 bytes at a time a bit cumbersome).

So a paged sideways RAM (longways RAM?) slot is not a bad idea. To make it work well a system much like that outlined above might be developed. Having the longways-sideways-ram paging register being read/write would also reduce the need for an extra save register (&EE in the above).

There would need to be a way to programmatically:
- detect which sideways bank(s) contains the longways banks
- detect how many lognways banks in the sideways bank

Possible scheme:
- top byte of the sideways bank is a read/write paging register
- reading byte returns the inverse of the last write, except write FF returns size

Detect code might be something like this, which looks for first sideways bank containing a long-ways with at least 4 pages

Code: Select all

	lda	&F4
	pha
	ldx	#&F
.lp:	stx	&F4
	stx	&FE30
	lda	#&AA
	jsr	checkInv
	bne	next
	lda	#&AA
	jsr	checkInv
	bne	next
	lda	#&FF
	sta	&BFFF
	lda	&BFFF
	cmp	#4
	bcc	next
.exit:	pla
	sta	&F4
	sta	&FE30
	rts		; exit with X = rom Cy=1 for ok, Cy=0 for not found
.next:	dex
	bpl	lp
	clc
	bmi	exit
.checkInv:
	sta	&BFFF
	eor	&BFFF
	rts
* warning top-of-the-head code may contain bugs

dp11
Posts: 1199
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Sideways RAM expansion

Post by dp11 » Thu Apr 30, 2020 1:40 pm

Pi1MHz with a PiZero supports 480Mbytes of RAM on a beeb. This RAM can be preloaded from a file on the SDCARD if required.

User avatar
KenLowe
Posts: 1369
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Sideways RAM expansion

Post by KenLowe » Thu Apr 30, 2020 3:30 pm

BigEd wrote:
Wed Apr 29, 2020 3:11 pm
Also worth noting, the 1MHz bus is there for large and super-large RAM disks... although again I think you do need some software to drive it.
dp11 wrote:
Thu Apr 30, 2020 1:40 pm
Pi1MHz with a PiZero supports 480Mbytes of RAM on a beeb. This RAM can be preloaded from a file on the SDCARD if required.
Is there any existing software that can make use of this 480Mbytes of RAM?

User avatar
KenLowe
Posts: 1369
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Sideways RAM expansion

Post by KenLowe » Thu May 07, 2020 6:32 pm

KenLowe wrote:
Thu Apr 30, 2020 3:30 pm
BigEd wrote:
Wed Apr 29, 2020 3:11 pm
Also worth noting, the 1MHz bus is there for large and super-large RAM disks... although again I think you do need some software to drive it.
dp11 wrote:
Thu Apr 30, 2020 1:40 pm
Pi1MHz with a PiZero supports 480Mbytes of RAM on a beeb. This RAM can be preloaded from a file on the SDCARD if required.
Is there any existing software that can make use of this 480Mbytes of RAM?
Answering my own question here, but acknowledge BeebMaster for pointing me in the right direction. Sprows RAMFS1.20 seems to do the trick. It reports &2000k RAM on a RPi 3B, which I appears to be the full 8MB that the RAMFS supports.

One thing I have noticed, though, is that the RAM Disk seems to be cleared on [BREAK]. I'm guessing it shouldn't do that. And a *SAVE to the RAM Disk is causing noise to be generated at the speaker. I'm guessing that's somehow linked to Music5000. I'll check both these points with dp11.

dp11
Posts: 1199
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Sideways RAM expansion

Post by dp11 » Thu May 07, 2020 7:03 pm

I can't obviously see why the RAM disk would be cleared on BREAK.
The noise might just be because there is more activity on the 1MHz bus.

User avatar
KenLowe
Posts: 1369
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Sideways RAM expansion

Post by KenLowe » Thu May 07, 2020 7:14 pm

The noise persists after the disk access is complete. I need to do a reset to stop the noise.

dp11
Posts: 1199
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Sideways RAM expansion

Post by dp11 » Thu May 07, 2020 8:44 pm

Are if you are using the same area of RAM as the MUSIC5000 it might start making a noise.

User avatar
KenLowe
Posts: 1369
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Sideways RAM expansion

Post by KenLowe » Thu May 07, 2020 9:57 pm

dp11 wrote:
Thu May 07, 2020 7:03 pm
I can't obviously see why the RAM disk would be cleared on BREAK.
I've been pointed to them manual which states the following:
The Manual wrote:Note that a hard or power on reset has the effect of 'formatting' the disc and all information will be lost, this is also the only time the presence and size of the disc is evaluated.
So if a hard reset is achieved by pressing [BREAK], then I guess that's why it's being cleared on [BREAK].
dp11 wrote:
Thu May 07, 2020 8:44 pm
If you are using the same area of RAM as the MUSIC5000 it might start making a noise.
I suspect that may well be what's happening.

Coeus
Posts: 1816
Joined: Mon Jul 25, 2016 12:05 pm
Contact:

Re: Sideways RAM expansion

Post by Coeus » Fri May 08, 2020 12:00 am

KenLowe wrote:
Thu May 07, 2020 9:57 pm
So if a hard reset is achieved by pressing [BREAK], then I guess that's why it's being cleared on [BREAK].
But Break on its own is usually considered a soft reset. I wonder what use cases they had in mind for this RAM disc if it so easily loses its contents.

Or do we have someone who is just in the habit of doing Ctrl -Break?

User avatar
KenLowe
Posts: 1369
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Sideways RAM expansion

Post by KenLowe » Fri May 08, 2020 12:11 am

Coeus wrote:
Fri May 08, 2020 12:00 am
But Break on its own is usually considered a soft reset. I wonder what use cases they had in mind for this RAM disc if it so easily loses its contents.

Or do we have someone who is just in the habit of doing Ctrl -Break?
Good point. I do have a habit of not distinguishing between Break and Ctrl-Break :roll: . So, you are indeed correct; a Break on it's own does't clear the disk. Only a Ctrl-Break. Does anyone actually just press Break on its own :-k :-k.

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

Re: Sideways RAM expansion

Post by 1024MAK » Fri May 08, 2020 1:13 am

KenLowe wrote:
Fri May 08, 2020 12:11 am
Does anyone actually just press Break on its own :-k :-k.
Yes.

‘Cuz otherwise I have to use both hands... :lol:

Mark

User avatar
KenLowe
Posts: 1369
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Sideways RAM expansion

Post by KenLowe » Fri May 08, 2020 1:17 am

1024MAK wrote:
Fri May 08, 2020 1:13 am
KenLowe wrote:
Fri May 08, 2020 12:11 am
Does anyone actually just press Break on its own :-k :-k.
Yes. ‘Cuz OLD does not work otherwise :lol:

Mark
Hmmm. It does on my beebs. I do it all the time. If you do a *FX200,3 then a CTRL-Break, then perhaps OLD won't work.

For me, pressing Break on it's own is like pressing Alt-Del on a PC :lol: :lol: :lol:

User avatar
KenLowe
Posts: 1369
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Sideways RAM expansion

Post by KenLowe » Fri May 08, 2020 1:18 am

1024MAK wrote:
Fri May 08, 2020 1:13 am
KenLowe wrote:
Fri May 08, 2020 12:11 am
Does anyone actually just press Break on its own :-k :-k.
Yes.

‘Cuz otherwise I have to use both hands... :lol:

Mark
Haha. I see you've updated your post just as I was posting :lol: :lol: :lol:
Last edited by KenLowe on Fri May 08, 2020 1:19 am, edited 1 time in total.

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

Re: Sideways RAM expansion

Post by 1024MAK » Fri May 08, 2020 1:19 am

KenLowe wrote:
Fri May 08, 2020 1:18 am
1024MAK wrote:
Fri May 08, 2020 1:13 am
KenLowe wrote:
Fri May 08, 2020 12:11 am
Does anyone actually just press Break on its own :-k :-k.
Yes.

‘Cuz otherwise I have to use both hands... :lol:

Mark
Haha. I see you've updated your post :lol: :lol: :lol:
That’s because after hitting submit, I thought, hang on, that’s not right :lol:

Mark

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

Re: Sideways RAM expansion

Post by 1024MAK » Fri May 08, 2020 1:25 am

Never listen to someone who is being kept awake at 01:20 in the morning by the young foxes making all kinds of weird and eerie screams (they are either in our garden, the neighbours garden or in the cemetery next to the house)....

Mark

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

Re: Sideways RAM expansion

Post by 1024MAK » Fri May 08, 2020 1:27 am

KenLowe wrote:
Fri May 08, 2020 1:17 am
For me, pressing Break on it's own is like pressing Alt-Del on a PC :lol: :lol: :lol:
The best button on a machine running Windows is the reset button on the main case :P

Mark

User avatar
DutchAcorn
Posts: 2287
Joined: Fri Mar 21, 2014 9:56 am
Location: Maarn, Netherlands
Contact:

Re: Sideways RAM expansion

Post by DutchAcorn » Fri May 08, 2020 5:40 am

jgharston wrote:
Wed Apr 29, 2020 3:51 pm
cmorley wrote:
Wed Apr 29, 2020 1:47 pm
Technically possible. I have wondered the same for my next ROM/RAM board.

Since there is no software for such a beast there is little point in doing it though. No one will write software for it because it isn't common so no one will adopt it. Catch 22.
The software exists, the *AQRPAGE and *SRPAGE commands in the AP6 support ROM and the ROM/RAM Utils based on it.
Using the Advanced 1770 DFS you can use the AQR as a RAM disc. With the option of installing a solid state disk drive emulation imo there is not much practical use to this option.

You could argue that there is software already that would benefit from this added memory; any software depending on disc access.

But it is not the continuous internal memory that the OP seems to mean.
3E9F821D-2F5F-4F79-BD30-00CA54C74607.jpeg
Paul

Image

Post Reply

Return to “8-bit acorn hardware”