Sideways RAM Utilities

discussion of beeb/electron applications, languages, utils and educational s/w
SteveF
Posts: 438
Joined: Fri Aug 28, 2015 8:34 pm

Re: Sideways RAM Utilities

Postby SteveF » Sun May 07, 2017 4:29 pm

Coeus wrote:The gain from compressing is marginal.

Oh well, it was worth a try I guess. :-)

User avatar
fordp
Posts: 883
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England

Re: Sideways RAM Utilities

Postby fordp » Sun May 07, 2017 5:01 pm

sweh wrote:
sweh wrote:Let me work on a clean up of the build process. At the moment some of the code is duplicated from the HostFS:UPURS project (my Makefile literally copies the files over); it'd be good to have these things properly organised :-)

OK, I have the code in https://github.com/sweharris/ROM_Sources - hopefully this will be a good starting place for you.

Many thanks.
I have just been looking at the code, I have a lot to learn #-o
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

User avatar
sweh
Posts: 1842
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Sideways RAM Utilities

Postby sweh » Sun May 07, 2017 5:20 pm

fordp wrote:
sweh wrote:
sweh wrote:Let me work on a clean up of the build process. At the moment some of the code is duplicated from the HostFS:UPURS project (my Makefile literally copies the files over); it'd be good to have these things properly organised :-)

OK, I have the code in https://github.com/sweharris/ROM_Sources - hopefully this will be a good starting place for you.

Many thanks.
I have just been looking at the code, I have a lot to learn #-o

The RAM Manager code is not an example of clarity; I wrote it in the late 80s when 6502 coding tricks lived in my head. Re-reading it 30 years later... ouch! I've forgotten so much.
Rgds
Stephen

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

Re: Sideways RAM Utilities

Postby Coeus » Sun May 07, 2017 9:34 pm

SteveF wrote:I think you're talking about the byte at IIRC &2A1+bank, and that makes sense, but does it also make sense to zero the private workspace byte at &DF0+bank on SRLOAD? I haven't checked what your code or Acorn's code does, I just thought I'd ask.


The latest version at https://github.com/SteveFosdick/MMFS/tree/sf/sram clears the ROM type byte before overwriting with a new ROM. It will also skip over an 8000 specified between filename and ROM ID (but only 8000, not any other value) and accepts letter names as ROM IDs with Z being the highest numbered slot that does not contain MMFS SWRAM, which will itself always be in the highest numbered slot. Y is the next highest numbered slot etc.

Not sure if there will be enough space for an auto-allocate feature - there are 28 bytes left.

User avatar
fordp
Posts: 883
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England

Re: Sideways RAM Utilities

Postby fordp » Sun May 07, 2017 10:28 pm

Coeus wrote:
SteveF wrote:I think you're talking about the byte at IIRC &2A1+bank, and that makes sense, but does it also make sense to zero the private workspace byte at &DF0+bank on SRLOAD? I haven't checked what your code or Acorn's code does, I just thought I'd ask.


The latest version at https://github.com/SteveFosdick/MMFS/tree/sf/sram clears the ROM type byte before overwriting with a new ROM. It will also skip over an 8000 specified between filename and ROM ID (but only 8000, not any other value) and accepts letter names as ROM IDs with Z being the highest numbered slot that does not contain MMFS SWRAM, which will itself always be in the highest numbered slot. Y is the next highest numbered slot etc.

Not sure if there will be enough space for an auto-allocate feature - there are 28 bytes left.

Looks good, I would need a ROM copy routine to copy from the slots above 15 for MaxRAM. I can see where to extend the ROM number to 63. A couple other tweaks would be needed like adding 64 to the RAM bank to guarantee writeability.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

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

Re: Sideways RAM Utilities

Postby Coeus » Sun May 07, 2017 10:31 pm

Coeus wrote:Not sure if there will be enough space for an auto-allocate feature - there are 28 bytes left.


There was. I have also added the clearing of the workspace byte (&0df0+romid) for a rom being overwrittem or wiped.

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

Re: Sideways RAM Utilities

Postby Coeus » Sun May 07, 2017 10:43 pm

fordp wrote:Looks good, I would need a ROM copy routine to copy from the slots above 15 for MaxRAM. I can see where to extend the ROM number to 63. A couple other tweaks would be needed like adding 64 to the RAM bank to guarantee writeability.


There is a routine in MMFS bootstrap.asm that does ROM bank to SW RAM bank copy (as opposed to main RAM to SW RAM copy). That avoids lots of bank switches which were slower on the electron, by copy a page from the source ROM into low RAM, switching ROM bank, and the copying that page up to the destination bank.

mjf2708
Posts: 47
Joined: Sun Oct 07, 2012 8:37 am

Re: Sideways RAM Utilities

Postby mjf2708 » Thu May 25, 2017 11:17 am

sweh wrote:Check out my RAM Manager; https://sweh.spuddy.org/Beeb/2M128/

I've attached a relatively generic version with the following commands:
(snip)

Is this meant for a 'standard' Beeb? I get the following strange results in BeebEm:
Image
Without it I get:
Image

firthmj
Posts: 227
Joined: Tue May 26, 2009 8:37 am
Location: Ipswich, UK

Re: Sideways RAM Utilities

Postby firthmj » Thu May 25, 2017 12:27 pm

I'm not sure if any of the Solidisk detection code is still in that ROM.

At the Cambridge ABug, I had an issue with my utility ROM on flynnjs's Beeb, which has a 2M128 board in it too.

My ROM was looking for a B+, and changing the banner if so. The 2M128 board and the Solidisk support ROM seemed to really upset this detection.

So if there is some Solidisk stuff still in the ROM, then it may get upset by an emulator, especially if the emulator is not in "pure BBC B" mode.
Had fun at the
Image
Meeting 13th May 2017

mjf2708
Posts: 47
Joined: Sun Oct 07, 2012 8:37 am

Re: Sideways RAM Utilities

Postby mjf2708 » Thu May 25, 2017 1:57 pm

I've just installed it into EEPROM on my real Beeb, and I'm getting similar results:
- on power on / CTRL-BREAK:
BBC Computer _
(i.e., just hangs)
- on BREAK:
BBC Computer
RAM Manager
RAM Manager
No language environment
*

Issuing Manager's PROMS command, I discover that all my ROMs are disabled! :?
I'm now looking for a way to clear the EEPROM, and get back to where I was before! :cry: :cry:

EDIT: Done! :D
Last edited by mjf2708 on Thu May 25, 2017 2:20 pm, edited 1 time in total.

User avatar
MartinB
Posts: 4546
Joined: Mon Mar 31, 2008 9:04 pm
Location: Obscurity

Re: Sideways RAM Utilities

Postby MartinB » Thu May 25, 2017 2:17 pm

Is the eeprom a 28C256 as much used on this forum and did you fit a write-protect switch or clip-probe? If so and if you can boot the Beeb and run the disc-based eeprom utils (?), EEP16 (for 16k config) and EEP32 (for 32k config) have an OFF and an ERASE function to wipe the device. You will need to boot the Beeb in write-protect and then switch to write-enable to use ERASE.

mjf2708
Posts: 47
Joined: Sun Oct 07, 2012 8:37 am

Re: Sideways RAM Utilities

Postby mjf2708 » Thu May 25, 2017 2:32 pm

No, it's cmorley' s design - and no, I don't have a write-protect switch or clip-probes - I soldered the flying leads on. :oops: :oops:

I had his RTool utility on my Datacentre CF card, but couldn't access it, as (X)ADFS was disabled, and *INSERTing the ROM followed by BREAK caused it to be disabled again! I resorted to removing the EEPROM (*), starting the Beeb normally, and copying RTool to a USB stick. I then reinserted the EEPROM (*), and was able to run RTool from USB, and then erased the EEPROM! :roll: :roll:

(* switching off first, of course!)

All is now well again (I've restored the ROM images onto the EEPROM), but the RAM Manager ROM clearly doesn't work correctly.

User avatar
sweh
Posts: 1842
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Sideways RAM Utilities

Postby sweh » Fri May 26, 2017 11:40 pm

mjf2708 wrote:
sweh wrote:Check out my RAM Manager; https://sweh.spuddy.org/Beeb/2M128/

Is this meant for a 'standard' Beeb? I get the following strange results in BeebEm:
"Acorn OS 64K" implies you're not emulating a Model B. Is that emulating a B+? I've never tested on that. It was written for OS1.20 and may not work elsewhere 'cos it uses "unused" memory locations to store configuration

There's a configuration at the main site (https://sweh.spuddy.org/Beeb/2M128/ ) that works fine in BeebEm emulating a model B:

b1.PNG


b2.PNG
Last edited by sweh on Sat May 27, 2017 12:09 am, edited 1 time in total.
Rgds
Stephen

User avatar
sweh
Posts: 1842
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Sideways RAM Utilities

Postby sweh » Fri May 26, 2017 11:44 pm

mjf2708 wrote:Issuing Manager's PROMS command, I discover that all my ROMs are disabled! :?

Someone else reported that, once before, where the RAM wasn't being properly cleared on power up. Pressing T-BREAK should force the manager to reset the configurations (all ROMS inserted, features disabled, etc). It's also possible that ROMs such as ADT may be trying to use the same memory locations as my ROM :-)

Code: Select all

\ Memory locations we use

srdata_status   = &37F  \ SRROM/SRDATA status
unplug_table    = &39F  \ + 3A0 - what ROMS should be unpluged
OldByteV        = &3A1  \ + 3A2 - Old OSBYTE vector
ramdisk_present = &3A3  \ 3 => present
extended_osbyte = &3A4  \ + 3A5 - Old extended OSBYTE vector (we store ROM
                        \ in our PrivateWorkspace variable DF0+ROM
status_byte     = &3A6  \ Status byte (see below for bitmap)
Rgds
Stephen

mjf2708
Posts: 47
Joined: Sun Oct 07, 2012 8:37 am

Re: Sideways RAM Utilities

Postby mjf2708 » Sat May 27, 2017 7:37 am

sweh wrote:"Acorn OS 64K" implies you're not emulating a Model B.

No, I was emulating a standard Model B - my second screenshot shows what I had without the Manager ROM (I'm using MacBeebEm ver 4.0a BTW).

It's also possible that ROMs such as ADT may be trying to use the same memory locations as my ROM

I've removed ADT, and I've only got OS1.20, BASIC, DFS2.26 and Manager installed; *PROMS only shows the Manager ROM installed (i.e., all other ROM locations show as '?').

User avatar
sweh
Posts: 1842
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Sideways RAM Utilities

Postby sweh » Sat May 27, 2017 2:23 pm

mjf2708 wrote:
sweh wrote:"Acorn OS 64K" implies you're not emulating a Model B.

No, I was emulating a standard Model B - my second screenshot shows what I had without the Manager ROM (I'm using MacBeebEm ver 4.0a BTW).

Well, _something_ was reporting that "Acorn OS 64K" line, and it's not my ROM :-)

It's also possible that ROMs such as ADT may be trying to use the same memory locations as my ROM

I've removed ADT, and I've only got OS1.20, BASIC, DFS2.26 and Manager installed; *PROMS only shows the Manager ROM installed (i.e., all other ROM locations show as '?').

Even after a T-BREAK ?

Basically the *PROMS routine looks at the ROM present flag table (in &2A1). If it's non-zero then it'll print the ROM name, using OSRDSC to read the contents.

If it's zero then it'll look to see if the bank has been used for *SRDATA (banks 4-7) then it'll print "Data", or if it's a Ramdisk (4-7,C-E) then "Ram drive", or if it's being used for Shadow RAM (E,F) then "Shadow Memory", otherwise if it's a Buffer (C,D) then it'll print "Buffer". The BeebEm image doesn't support those functions (they're part of the 2M128 functionality) so they shouldn't(!) trigger. Finally it'll check to see if the ROM was *UNPLUGed. If it was then it'll look for a (C) message from &8007 via OSRDSC and if that's looking good then it'll print the name of the ROM followed by (disabled).

So a "?" means that it didn't find a valid entry in &2A1 _and_it didn't think it'd unplugged it or it read anything via OSRDSC at &8007

What happens if you do a "*RINSERT F" and "*YESROM F" and then do a "*PROMS".

Now another oddity, here, is that you enter the "No Language Environment" (NLE). This should(!) never happen. At startup my ROM goes through the ROM status table at &2A1 and _removes_ the language bit from every language. So &C2 becomes &82. Every ROM looks just like a service ROM, now. We then call OSBYTE 187 to find what bank BASIC is in, and restore that entry back into the &2A1 table. So that means that only BASIC should ever show as a language to the OS and that'll be the language entered... even if there's another higher priority language. If we can't find BASIC via OSBYTE 187 then the ROM enables itself (the NLE) as an emergency fallback, so there's at least one langauge for the Beeb to enter.
The only time I've seen that happen on my Beeb in recent times is when one of the IFEL address decoder cables came loose and BASIC wasn't found, or if I deliberately *UNPLUG BASIC.
Rgds
Stephen

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

Re: Sideways RAM Utilities

Postby Coeus » Sun May 28, 2017 7:47 pm

sweh wrote:Well, _something_ was reporting that "Acorn OS 64K" line, and it's not my ROM :-)


DFS 2.26 contains the Acron sideways RAM utilities so maybe that is printing the message. Certainly there is code in there to count the sideways RAM banks and print a modified startup message.

mjf2708
Posts: 47
Joined: Sun Oct 07, 2012 8:37 am

Re: Sideways RAM Utilities

Postby mjf2708 » Mon May 29, 2017 2:09 pm

It seems somehow that DFS2.26 is causing the problem - in BeebEm, anyway.

If I have DFS1.20 or ADFS1.30 installed, along with the MANAGER ROM, I get:

BBC Computer 96K
Acorn DFS (or Acorn ADFS)
BASIC
>

- all appears OK (96k, as I've defined 4 sideways RAM banks).

However, if I install DFS2.26, I get this:
Image
All I'm doing is swapping DFS1.20 / ADFS1.30 / DFS2.26 in the same ROM bank; nothing else is installed apart from OS1.20 and BASIC2. I get the same thing if I do a T-BREAK.
If I do *RINSERT F followed by *YESROM F, then BASIC appears in the *PROMS table, and I can enter BASIC.

With the MANAGER ROM removed, I get this with DFS2.26 installed:

BBC Computer 32K
Acorn 1770 DFS
BASIC
>

Are the sideways RAM routines in the 2 ROMs conflicting with each other?

User avatar
sweh
Posts: 1842
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Sideways RAM Utilities

Postby sweh » Mon May 29, 2017 3:09 pm

It seems likely that DFS 2.26 (which came from the B+) might be using some of the same memory locations that my routines do. The Advanced User Guide said those locations were unused, but that was for the B; who knows what'll happen when you use B+ ROMs; they could easily have used those locations :-)

You _should_ just be able to edit the values in lines 44-50 of the source of my ROM to change locations... if you can find 5 bytes free, somewhere!

This memory collision is why I thought about creating a device that plugged into the 1Mhz bus that just had some NVRAM where I could store this data, but I never got around to finishing it.
Rgds
Stephen

mjf2708
Posts: 47
Joined: Sun Oct 07, 2012 8:37 am

Re: Sideways RAM Utilities

Postby mjf2708 » Mon May 29, 2017 3:27 pm

Thanks, Stephen. AIUI DFS2.26 was released by Acorn as part of their 1770 upgrade for the B.

I'll have a look at the lines in the source code you mentioned, but I'm happy to revert to DFS1.20 or ADFS1.30, as these seem to play nicely with MANAGER. (It just so happened that when I first tried your MANAGER ROM, I had DFS2.26 in BeebEm; if only I'd been using one of the other DFS's...)

User avatar
sweh
Posts: 1842
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Sideways RAM Utilities

Postby sweh » Mon May 29, 2017 4:35 pm

Definitely looks like DFS2.26 is using that memory. In BeebEm I replaced the DNFS ROM I had with the 2.26ROM from the B+ folder. It was in a lower priority slot than my Manager so the machine worked, but PROMS shows

Code: Select all

>*P.
0 (SL) 65C02 ASSEMBLER
1      ?
2 (S ) TOOLKIT PLUS
3 ( L) BASIC
4      ?
5      ?
6      ?
7      ?
8 (S ) DFS
9 (SL) VIEW
A (SL) EXMON
B (SL) RAM Manager
C      ?
D      ?
E      Shadow Memory
F      Shadow Memory

This indicates that DFS is, at the very least, mangling &3A6 and setting the shadow flags (P.?&3A6 returned 65, when it should be 0). That'll confuse things 'cos the residual routines will try to work with a non-existent ACCCON register. If DFS is in a higher slot than the Manager ROM then it's possible that a physical machine may not even complete startup!
Rgds
Stephen

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

Re: Sideways RAM Utilities

Postby Coeus » Tue May 30, 2017 11:07 am

mjf2708 wrote:Thanks, Stephen. AIUI DFS2.26 was released by Acorn as part of their 1770 upgrade for the B.

I'll have a look at the lines in the source code you mentioned, but I'm happy to revert to DFS1.20 or ADFS1.30, as these seem to play nicely with MANAGER. (It just so happened that when I first tried your MANAGER ROM, I had DFS2.26 in BeebEm; if only I'd been using one of the other DFS's...)


Doesn't DFS1.20 expect an 8271 and DFS 2.26 a 1770? It maybe worth checking out http://mdfs.net/System/ROMs/Filing/Disk/Acorn/ which has various other versions.

User avatar
flynnjs
Posts: 749
Joined: Tue Jul 06, 2010 9:33 pm

Re: Sideways RAM Utilities

Postby flynnjs » Tue May 30, 2017 1:32 pm

sweh wrote: If DFS is in a higher slot than the Manager ROM then it's possible that a physical machine may not even complete startup!


Welcome to my hour of headscratching at Cambridge the other weekend. I thought I'd killed my B somehow but I'd put 2.26 in above the standard STL manager 128 ROM.

On my todo list is to strip the STL ROM to the bare minimum and make it play nicely with 2.26.

EDIT: I just checked Manager ROM with DFS 2.10 (no SRAM utils ) and all seems OK regardless of priority.
So my todo list appears to be to make a Manager that plays nicely with SRAM utils rather than 1770 DFS itself.

User avatar
flynnjs
Posts: 749
Joined: Tue Jul 06, 2010 9:33 pm

Re: Sideways RAM Utilities

Postby flynnjs » Tue May 30, 2017 5:16 pm

Coeus wrote:I also have, though not on-line, a disassembly of the Acorn B+/master SRAM, i.e. that bundled into later version of DFS. I have 1.03 (DFS 2.23) and 1.05 (DFS 2.26) in which I have started to put names to the subroutines. This also includes a table giving corresponding addresses for the two version. Let me know if you want to look at that.


Yes please.

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

Re: Sideways RAM Utilities

Postby Coeus » Tue May 30, 2017 8:15 pm

I attach a ZIP file with what I have at the moment.

The final output is in the files sram103.dis and sram105.dis and dfs-addrs.txt is the table of corresponding addresses between the two DFS versions. If you're familiary with Makefile syntax that will document how the various other intermediate files are produced and how these are turned into the final output. Apart from the included Perl scripts the other tool used is a tracing 6502 disassembler which I modified to be able to output BeebAsm input format. which I posted about in viewtopic.php?f=12&t=12893
Attachments
sram-dis.zip
SRAM Utilities Disassembly
(101.85 KiB) Downloaded 9 times

User avatar
sweh
Posts: 1842
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Sideways RAM Utilities

Postby sweh » Wed May 31, 2017 11:01 am

flynnjs wrote:On my todo list is to strip the STL ROM to the bare minimum and make it play nicely with 2.26.

The STL ROM had so many bugs in it... that was the driver to create my own ROM.

The killer for me was:
*SHADOW
MODE 0
(do stuff that uses memory above &3000)
*SHADOW 1
MODE 7
(notice that stuff above &3000 didn't get copied back into main RAM; your data is now corrupted)

Once I started down that path then I just ended up pulling in lots of other random rubbish that seemed useful at the time :-)
Rgds
Stephen

User avatar
tricky
Posts: 1876
Joined: Tue Jun 21, 2011 8:25 am
Contact:

Re: Sideways RAM Utilities

Postby tricky » Tue Oct 10, 2017 6:31 pm

Maybe not the best thread, but here goes.
I would like a utility to load a chunk of memory into sideways RAM that is compatible with the various MMC devices/ROMS: TurboMMC, SmartSPI and MMFS.
My approach of ON ERROR seems OK, but it isn't very nice.
I was wondering about checking which ROM was the current filing system and if it is one of the MMC ones, check which discs are currently mounted (method to be decided), then after solidisc compatible SWRAM code do *MMFS, or whatever, then restore the drives with *DIN and continue.

This is all unnecessary, if someone knows of a disc based utility that can be used to detect/load SWRAM that is MMC compatible.

Any ideas?

User avatar
jgharston
Posts: 2727
Joined: Thu Sep 24, 2009 11:22 am
Location: Whitby/Sheffield

Re: Sideways RAM Utilities

Postby jgharston » Tue Oct 10, 2017 7:25 pm

sweh wrote:

Code: Select all

\ Memory locations we use
srdata_status   = &37F  \ SRROM/SRDATA status
unplug_table    = &39F  \ + 3A0 - what ROMS should be unpluged
OldByteV        = &3A1  \ + 3A2 - Old OSBYTE vector
ramdisk_present = &3A3  \ 3 => present
extended_osbyte = &3A4  \ + 3A5 - Old extended OSBYTE vector (we store ROM
                        \ in our PrivateWorkspace variable DF0+ROM
status_byte     = &3A6  \ Status byte (see below for bitmap)

Coming to this late, but...
unplug_table = &39F/&3A0 - what ROMS should be unplugged

You may as well use locations that other ROM managers use for an unplug bitmap.

Code: Select all

Electron ROM manager workspace &0D6C-&0D7F
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&0D6C Saved ROM paging semaphore when temporarily disabled
&0D6D Default language ROM if b7=0
&0D6E INSERT/UNPLUG bitmap 0-7, b7=7, 0=inserted, 1=unplugged
&0D6F INSERT/UNPLUG bitmap 8-15, b7=15, 0=inserted, 1=unplugged

OldByteV = &3A1/&3A2 - Old OSBYTE vector
extended_osbyte = &3A4/&3A5 - Old extended OSBYTE vector
This is part of saving BYTEV, WORDV, WRCHV and RDCHV, and you're using it because there's only three SPAREV vectors which you've stored WORDV, WRCHV and RDCHV in.

Do you need to be chaining WRCHV and RDCHV? Does your code absolutely have to continue via anybody else who may have happened to have claimed WRCHV and RDCHV? If not, that's what UnVectoredWRCH and UnVectoredRDCH are for. Instead of jumping through hoops to daisy-chain along previous claimants, if you know that your code is going to be the final claimant, exit by jumping to NVRDCH at &FFC8 or NVWRCH at &FFCB.

That leaves you with only needing to store WORDV and BYTEV, which you do need to daisy chain as there are other things can be in the chain between you and the system handler, such as a mouse driver. Plus there's no way to do a non-vectored jump to the system handler (other than fancy juggling fetching the default address at the default vector table pointed to by &FFB7/8)

That just leaves you with srdata_status, ramdisk_present, status_byte. The SRAM utilities that live in the DFS ROM steal 18 bytes from the DFS's private workspace at (&0DFX)00. Somewhere I noted down where the Master keeps the SROM/SDATA flags.

And remember, if you're implementing a *command (including *HELP, etc), and need transient workspace, &A8-&AF is specified for this use.

Code: Select all

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

User avatar
jgharston
Posts: 2727
Joined: Thu Sep 24, 2009 11:22 am
Location: Whitby/Sheffield

Re: Sideways RAM Utilities

Postby jgharston » Tue Oct 10, 2017 7:30 pm

tricky wrote:Maybe not the best thread, but here goes.
I would like a utility to load a chunk of memory into sideways RAM that is compatible with the various MMC devices/ROMS: TurboMMC, SmartSPI and MMFS.

What does the filing system have to do with a *SRWRITE-type command? - other than actually loading and running a transient *command. But if a filing system has been borked such that running *SRWRITE from disk, then it will bork trying to run any other *whatever from disk, and that bug would have been squashed flat long long ago early in development.

tricky wrote:This is all unnecessary, if someone knows of a disc based utility that can be used to detect/load SWRAM that is MMC compatible.

What do you mean by SWRAM that is MMC compatible?

Code: Select all

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

User avatar
sweh
Posts: 1842
Joined: Sat Mar 10, 2012 12:05 pm
Location: New York, New York
Contact:

Re: Sideways RAM Utilities

Postby sweh » Wed Oct 11, 2017 3:15 am

tricky wrote:Maybe not the best thread, but here goes.
I would like a utility to load a chunk of memory into sideways RAM that is compatible with the various MMC devices/ROMS: TurboMMC, SmartSPI and MMFS.
My approach of ON ERROR seems OK, but it isn't very nice.
I was wondering about checking which ROM was the current filing system and if it is one of the MMC ones, check which discs are currently mounted (method to be decided), then after solidisc compatible SWRAM code do *MMFS, or whatever, then restore the drives with *DIN and continue.

This is all unnecessary, if someone knows of a disc based utility that can be used to detect/load SWRAM that is MMC compatible.

Any ideas?

I was about to ask what the problem was... but then I had a stroke of inspiration...

Are you using the original Solidisk SWR that's based on the userport for selecting the writeable bank? So ?&FE62=15:?&FE60=bank is used to select the writeable bank, and that breaks the userport configuration used by the MMC filesystem...

Is that your problem?
Rgds
Stephen


Return to “software: other”

Who is online

Users browsing this forum: No registered users and 1 guest