Using more than 64k on the MTX

Post Reply
Martin A
Posts: 447
Joined: 09 Nov 2013 21:03

Using more than 64k on the MTX

Post by Martin A » 23 Jan 2020 12:13

A question was posted on Facebook about using the extra sockets on a Memotech RAM expansion board.

So, that leads to the question: What software is there that CAN use more than 64k on the MTX?

I've come up with very little

Early Software:
MTX BASIC
Andy's RAM Drive

Modern Software:
Bill's Z machine conversion

I'm not sure how big a BASIC program could grow before running out of line numbers, but editing something with thousands of lines would be "inconvenient" to say the least!

Of those 3 the only one that would be realistic for 32k or 64k extra ram would be BASIC.

I'm not counting the silicon disc as you can't run code from that, it's totally separate from the Z80's memory.

User avatar
thewiz
Posts: 126
Joined: 12 Aug 2012 16:08

Re: Using more than 64k on the MTX

Post by thewiz » 24 Jan 2020 14:27

Another modern one is Fuzix.
THIS is what Memotech is doing now.

Bill B
Posts: 230
Joined: 26 Jan 2014 16:31

Re: Using more than 64k on the MTX

Post by Bill B » 24 Jan 2020 21:34

I suspect that with MTX Basic, the main use of more than 64K would be for large data arrays rather than just for code. If I remember correctly, simple variables are stored in common RAM above 48K and are limited to less than 16K. Arrays (and strings), however, are stored immediately after the Basic code (and Noddy pages).

What I would be interested in is how a program could tell whether the high RAM is being used by a RAM disk.

Martin A
Posts: 447
Joined: 09 Nov 2013 21:03

Re: Using more than 64k on the MTX

Post by Martin A » 25 Jan 2020 09:38

Bill B wrote:
24 Jan 2020 21:34
What I would be interested in is how a program could tell whether the high RAM is being used by a RAM disk.
From what I could tell when setting up the source code for the MTXplus builds, the system ROMs use LSTPG (64122) to work out where memory "ends". I've a feeling that they also assume the last page is a half page at #8000, which could be an issues with large arrays on a 512-S2 where there isn't a half page, just 4 pages of 32k. It's not something I've been able to test though.

Interestingly, each individual array seems to be limited to 64k, even though they're fitted into 32k wide pages. Because numbers are stored as 5 bytes, DIM A(10000) is allowed, DIM A(20000) isn't even if you have the memory.

Bill B
Posts: 230
Joined: 26 Jan 2014 16:31

Re: Using more than 64k on the MTX

Post by Bill B » 25 Jan 2020 15:42

Martin,

I was more thinking of detecting a RAM disk from CP/M. Specifically, enabling M576ZVM to warn the user that their RAM disk is about to be clobbered :)

I suspect that part of the reason that there is little software making use of more than 64K is that there were very few machines back in the day with more than 64K to run the software on. A chicken and egg situation.

Martin A
Posts: 447
Joined: 09 Nov 2013 21:03

Re: Using more than 64k on the MTX

Post by Martin A » 25 Jan 2020 22:26

In CPM, the RAM drive would be drive F:.

The physical dives are B: to E: so they're not going to get in the way.

A silicon drive could also be present as an F: drive, but they all have type codes #4x where Andy has used #5x for the ram drives.

There's probably a "proper" way to determine the configured type of a drive, but maybe cheating and looking in the drive config table might be enough. As far as I know all the "disc" systems keep the table at #FFC8 so drive F would be at #FFCC.

Bill B
Posts: 230
Joined: 26 Jan 2014 16:31

Re: Using more than 64k on the MTX

Post by Bill B » 25 Jan 2020 22:42

I have never been sure whether the RAM disk has to be F, or whether it could be G, H, or I.

But to search the drive type table for type 51 would probably work, thanks.

User avatar
1024MAK
Posts: 578
Joined: 24 Dec 2012 03:01
Location: Looking forward to summer, in Somerset, UK

Re: Using more than 64k on the MTX

Post by 1024MAK » 26 Jan 2020 12:41

Bill B wrote:
25 Jan 2020 15:42
I suspect that part of the reason that there is little software making use of more than 64K is that there were very few machines back in the day with more than 64K to run the software on. A chicken and egg situation.
Same problem with a lot of 80s micros. There is not much software from back then that needed more than 16K for the ZX81, even though various 32K and 64K expansion RAM packs were available (and you could stack a 16K RAM pack into the back of a Memotech RAM pack giving at least 32K).

Even with the 128K ZX Spectrum machines, the extra RAM was often only used for extra graphic data, sound data, or to reduce a multi-load game to requiring only one load operation. And it was ages before any ‘128K’ software titles become available.

In the Acorn world, Acorn released the B+ which had 64K of RAM. 20K was used for the screen data freeing up main RAM. But very little software was written to take advantage of this. Similar story with the Master 128 (which extended RAM to 128K by providing ‘sideways’ RAM banks).

Mark

Post Reply