-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is is possible to implement the solidisk sideways ram ? #70
Comments
In principle it can be implemented - I can give a few pointers if you're interested to work on it. Or do you have some links to documentation where I can find out more? |
Hi, |
So it seems BeebEm may already emulate the Solidisk Sideways RAM. The Help pages say this about the Hardware -> SW RAM Board On/Off menu option:
|
I think that Solidisk Sideways RAM might be implemented incorrectly. According to the manual, writes always go the bank selected by the User VIA, so that in particular one RAM can load software into another RAM, but current implementation of BeebWriteMem only uses &FE60 value if the bank selected by &FE30 is not writable. This doesn't allow software in one RAM bank to load contents into another bank. |
FYI, This all applies to the early Solidisk Sideways RAM, there later ones did it differently. |
Can you elaborate? |
This manual from 1986 still talks about &FE60 register: http://chrisacorns.computinghistory.org.uk/docs/Solidisk/Solidisk_SidewaysRAM_8609.pdf |
It took me a while to do some testing and in short: First, I don't know anything about the twomeg and the fourmeg expansions. It looks like something is not correctly implemented. Hope someone can advise me, or knows if this is still a bug ? |
Can you share the disk image you use? We could try testing it against the fix that @monkeyman79 has added: #91 |
Hi, |
Thank you! I think it's not working. In the ROM configuration, I set banks 0 to 10 to RAM, then boot the disk, press Ctrl+Break, then *ADE. At that point the cursor moves down the screen and it hangs. |
That is as far as I got. It should come with the option to set time, date or nothing, |
I have been using EXMON to edit memory locations in the real BBC with SWR128 AND in Beebem. |
Hi,
The solidisk sideways ram had a number of sw ram banks, which were selected by bits 3:0 of the user port B,
which was located in memory at address $FE60 ( DRB ) and address $FE62 DDRB.
By loading $0F in the DDRB register, the bits 3:0 were set to output .
By then setting the output register to x0, bank 0 was selected, setting to x1, bank 01 was selected,
and so on till $xF, which selected bank $0F ( if available ).
I had the ADE+ macro assembler and the MMU, memory management unit, both intended for use in SW Ram.
I loaded the 2 files in SW ram using a !Boot file like this:
?&FE62=15 -user via bit 3:0 = output
?&FE60=08 -select bank 8
*LOAD ADE+ 8000 -load desired rom
?&FE60=09 -select bank 9
*LOAD MMU 8000 -load the next rom
One could setup ADE+ to use more or less of the sw ram as buffer for the source file,
to handle large files, and / or use an amount as printerbuffer.
The MMU took care of this, using the user via to select the used sw bank.
At present, this is not possible.
Ofcourse I can load the rom images, using the rom config editor, but ADE cannot use the swr to its full extend.
Any ideas if and how this can be implemented?
The text was updated successfully, but these errors were encountered: