Welcome, Guest. Please login or register.


Author Topic: Internal memory expansion (Read 72221 times)

Online gflorez

  • EP addict
  • *
  • Posts: 2974
  • Country: es
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 81.0 Firefox 81.0
    • View Profile
Re: Internal memory expansion
« Reply #330 on: 2020.October.16. 10:42:31 »
It would be very cool to see an Enterprise with the full 4Mb.  I still need to get my Enterprise motherboard working and wired up with a keyboard, maybe a project for after that...

It can be done, I have filled every single segment with Ram/Rom with the aid of the SymbiFace3 board. Amazingly, the system behaves the same as on a 128KB model, total stability.

.....But, there's no Enterprise-specific (i.e. EXOS) software that needs more than 512KB, is there?

Any there many (or any) EXOS programs that need more than 128KB?

On classic times coders took the 128KB Enterprise as an standard, and a lot of them didn't follow the official recommendations when programming. Then you find how some old programs take all available memory for its task(even on an 1MB or more, on an expanded EP) and don't release it at exit.... This is not a problem if you switch ON/OFF every time you run a program, but the Enterprise was created as a multi-session computer, even there are some tasks that can be stopped while doing others.

Other programs take the Ram without asking EXOS or use forbidden memory zones, making the system crash when the control is returned.

It has been only on actual times(quite some years now...) that Zozo has impulsed a standardization on programming, returning to the old official rules, what, added to his modified/fixed EXOS Roms, has brought us a more usable and enjoyable computer.

The previous chaos explains why there are only a few programs that can really benefit from more memory. But don't forget EXOS as the main beneficiary of more memory, because a lot of extensions can be loaded on Ram, better and bigger Ram Disks can be created, Roms can be emulated, etc.
« Last Edit: 2020.October.16. 10:53:09 by gflorez »

Offline elmer

  • User
  • *
  • Posts: 75
  • Country: us
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 81.0 Firefox 81.0
    • View Profile
Re: Internal memory expansion
« Reply #331 on: 2020.October.16. 18:08:08 »
I would be interest for one in case if remains, i do not want to stole the opportunity from others who really need the expansion.

It looks like over 30 EP64's have been sold by the Egyptian sellers on eBay recently, but I can't see anywhere near that many new users here.

I'll put you down for one of the boards! :)

Once I've sold my spares, I'll release the design files and final JLCPCB manufacturer-approved Gerbers so that anyone can place another order for more ... they were an easy company to deal with and their board quality and SMT manufacturing seems excellent (to me), and very affordable.


Are these the bare boards or are the surface mount components attached? My soldering skills are probably not up to soldering surface mount components.

The surface mount (SMT) compnents were all factory (i.e. robot) installed by the board manufacturer ... that is why I wanted to create a simple single-sided board design. I certainly couldn't solder those small components myself either!  ;)

The two 0.1" headers male headers for EXP1 and EXP2 do still need to be soldered onto each SRAM board by the purchaser.

25630-0


I tried to create contiguous memory. Is this the wrong approach and should I change the address range?
I think contiguous range is the best way, as i remember i worked with at least 1 program which searches the biggest contiguous memory ranges for use.

Keeping the memory contiguous might be the best for anyone that wants to maximize their Enterprise with external modules ... but what I have done doesn't seem like it would cause a problem in practice with any of the expansion hardware designs that currently exist (including the Symbiface3).


The simple 74HCT138 decoding scheme that I have used can fit up to 2.5MB of RAM into the Enterprise's address space, with 2MB of that being contiguous.

Using a GAL/CPLD/FPGA for decoding definitely allows more flexibility, but I think that it is worth pointing out that the Enterprise's designers expected discontiguous blocks of 64KB RAM memory ... the original external 64KB expansion module was mapped into one of six different 512k regions of address space, resulting in a maximum of 384KB+128KB of RAM on a fully-expanded Enterprise.


Now, it might not be too difficult to extend what I have done and make a 1.5MB internal RAM expansion board, which could then use an external Symbiface3 to give a full 4MB of memory (3.5MB RAM and 0.5MB ROM) ... but how many people would really want such a board?
« Last Edit: 2020.October.17. 03:05:12 by elmer »

Offline geco

  • EP addict
  • *
  • Posts: 5750
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 85.0.4183.127 Chrome 85.0.4183.127
    • View Profile
Re: Internal memory expansion
« Reply #332 on: 2020.October.17. 17:56:37 »
Thank you very much :-)
I created full 4mb  RAM config with sf3 for testing purpose, only 128 KB was ROM, worked without problem :-) , but memory test took quite long even with fast RAM test too, i think 512 kb RAM is enough nearly in all cases, as i remember 1 or 2 programs using the advantages of more RAM, but with SD card interface it does not matter, because both of them loads the whole program into memory if there is enough free memory.
Smaller portions of ranges can limit only 2 programs if i remember well.
The most important in all approach to include F8-FB segments nto the expansion, by this solution all non EXOS compatible programs will work too.

Online emptiness

  • Newbie
  • Posts: 24
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 81.0 Firefox 81.0
    • View Profile
Re: Internal memory expansion
« Reply #333 on: 2020.October.17. 19:53:45 »
The surface mount (SMT) compnents were all factory (i.e. robot) installed by the board manufacturer ... that is why I wanted to create a simple single-sided board design. I certainly couldn't solder those small components myself either!  ;)

The two 0.1" headers male headers for EXP1 and EXP2 do still need to be soldered onto each SRAM board by the purchaser.

Excellent! Please sign me up for one. I've no problem soldering non-SMT stuff.

Now, it might not be too difficult to extend what I have done and make a 1.5MB internal RAM expansion board, which could then use an external Symbiface3 to give a full 4MB of memory (3.5MB RAM and 0.5MB ROM) ... but how many people would really want such a board?

Hmmmm :ds_icon_cheesygrin:

Online emptiness

  • Newbie
  • Posts: 24
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 81.0 Firefox 81.0
    • View Profile
Re: Internal memory expansion
« Reply #334 on: 2020.October.17. 19:56:23 »
the Enterprise was created as a multi-session computer, even there are some tasks that can be stopped while doing others.

The more I learn about the Enterprise the more impressed I become. The hardware and solftware feel in a different league from the likes of the ZX Spectrum (the computer I grew up with).

Online gflorez

  • EP addict
  • *
  • Posts: 2974
  • Country: es
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 81.0 Firefox 81.0
    • View Profile
Re: Internal memory expansion
« Reply #335 on: 2020.October.18. 01:23:08 »
I don't only want to throw words as true: on the emulator or on the real machine, if you have a SD cartridge or a floppy controller you can try this:

-Write a one program line, for example 10 REM.
-Execute LIST to see you program list....
-Execute :EXDOS . This will open you an EXDOS screen where you can for example do a DIR.
-Press the ESC key. The EP will freeze, but if you press once the reset key you are again on Basic.
-Execute LIST.

You can also do the same with the included word processor:
-Execute :WP on the Basic editor. This will open the word processor.
-Write some random text
-Press F8 and execute EXDOS+Enter
-Again the EXDOS screen will open. Make a DIR.
-Press the ESC key. This time the EP has not freezed, and you have returned safely to the text edition.

---------------

Basic itself is multisession, you can edit several programs at the same time, even jump between them while on execution.

-Write this program:
10 TEXT
20 CHAIN 1
-Execute this command: CHAIN 1
-Insert these lines:
10 print "HELLO"
20 CHAIN 0
-Execute this command: CHAIN 0

-You now see a flashing HELLO.

The CHAIN command not only swaps programs, also executes them.

-------

Another proof that the EP is multisession: almost all programs and some games have a clean exit to EXOS:

-Basic has the ":"
-WP has the F8 key
-EXDOS has its prompt.
-Try to search the exit on other languages or utilities, like Hisoft-Pascal, Lisp, Forth, Epdos, EGI, PaintBox, IS-Chess, etc

--------

The main tool to make this possible is an efficient management of memory. Every program will ask EXOS the necessary amount of memory, and at exit they have to free it, returning the memory to EXOS.
« Last Edit: 2020.October.18. 11:33:13 by gflorez »

Offline BruceTanner

  • EP lover
  • *
  • Posts: 525
  • Country: gb
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 81.0 Firefox 81.0
    • View Profile
Re: Internal memory expansion
« Reply #336 on: 2020.October.18. 09:54:41 »
-Write a one program line, for example 10 REM.
-Execute LIST to see you program list....
-Execute :EXDOS . This will open you a EXDOS screen where you can for example do a DIR.
-Press the ESC key. The EP will freeze, but if you press once the reset key you are again on Basic.
-Execute LIST.
It hasn't actually frozen, but it has failed to restore the text screen correctly. If you type (blind) TEXT 40 it will reset the screen without rebooting. I think this is a bug in EXDOS :oops:

Online gflorez

  • EP addict
  • *
  • Posts: 2974
  • Country: es
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 81.0 Firefox 81.0
    • View Profile
Re: Internal memory expansion
« Reply #337 on: 2020.October.18. 11:38:03 »
Ah, yes... I have only repeated what you pointed some time ago.... but I didn't remember about executing TEXT blindly.

Thanks.

Offline dangerman

  • User
  • *
  • Posts: 77
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 81.0 Firefox 81.0
    • View Profile
Re: Internal memory expansion
« Reply #338 on: 2020.October.19. 22:31:15 »
If you type (blind) TEXT 40 it will reset the screen without rebooting.

To avoid blind typing, by default you can press F5 for "TEXT" or even SHIFT F5  which will redisplay an existing text screen.

I think this is a bug in EXDOS :oops:

I'm not sure it's a bug as such. EXDOS has no easy way of knowing what was previously displayed.