Jump to content

Geneve, accessing expanded memory from GPL


Recommended Posts

Thanks @FarmerPotato, the reason I was looking at that, is TheBF's VI editor works in GPL mode in 80-Columns. I feel eventually he will want to use expanded memory of some sort, and thinking/hoping it would be possible to have two different versions. Maybe one that used AMS expanded memory and one that used Geneve memory. I'm not sure the page size would be as critical if it's just storing text data, vs program code.


Have you seen actual code to do bank switching in GPL mode?

Link to comment
Share on other sites

When I look at the native Geneve memory map it looks like I could make a Forth kernel that lives in Low RAM and compile the vi99 on top of that.

Then there would be more than 16K of RAM for the text files. I have a bit of a learning curve to get Mame on my windows box and port Camel99 Forth but it's pretty clear path.

Link to comment
Share on other sites

29 minutes ago, TheBF said:

I have a bit of a learning curve to get Mame on my windows box


I can help with that having just been down that path.


Step 1, is to pull mame from whtech.



Here is an example of a working batch file for standard geneve emulation:

D:\mame>type grun.bat
mame genmod -bios 1.00 -peb:slot3 horizon -peb:slot5 tirs232 -peb:slot6 tipi -conn rpi. -peb:slot8 hfdc -peb:slot8:hfdc:h1 generic -peb:slot8:hfdc:h2 generic -peb:slot8:hfdc:h3 generic -peb:slot8:hfdc:f3 525dd -peb:slot8:hfdc:f4 525dd -hard1 genos7boot.HD -hard2 Bootdisk2.HD -hard3 Bootdisk3.HD -flop1 DSDD1.dsk -flop2 DSDD2.hfe -flop3 DSDD3.dsk -flop4 DSDD4.dsk -serl1 socket.localhost:10000


Next you can build a HD Image - with TI image tool, or if you can wait a couple of days, I can try to send you what I have.


At this point, it would be helpful if @9640News would ok me to release my update to the HD image he used to make available.


  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Apart from the fact that this line is a Genmod, not a Geneve emulation, once again I'd like to recommend including only those switches in the MAME command line that you really need. If it is working for you, OK, but that does not mean that it is the optimal way for other users.


Here is my line:

mame geneve -peb:slot5 speech -peb:slot8 hfdc -peb:slot8:hfdc:h1 generic -hard1 maindisk.hd

  • Like 1
Link to comment
Share on other sites

Accessing the system memory (i.e., non-VRAM) from GPL mode is possible but you need to set up the environment and do some legwork to request and use the memory.  Remember, GPL is "just" a task emulating the /4A, and that task is running from within the Geneve OS framework.  GPL versions 6.0 and later store GPL's task 0 page number at >8100 which can help to facilitate calling system XOPs.  GPL 1.9 saved the free memory pagelist for the programmer but this has not been replicated since GPL 2.x due to a problem releasing memory when GPL exited. I think the issue has been since been resolved but there hasn't been any demand for GPL-based paging, and the only program I know of that uses the XOPs from GPL is my BBS software (which has its own handlers and code).


Anyway, my suggestion for easy-to-use buffer space is to exploit the mostly-unused VRAM memory.  All Geneve systems have a minimum of 128K VRAM available in 16K pages.  The 9938 bank switch is simple:  write the bank number to video register 14.  If you discount VRAM page 0, the programmer has 128K-16K = 112K of memory to play with. Yes, you have to know which of the eight 16K banks you are using but that's standard fare for any banking mechanism.  The Funnelweb editor is a great example of how the VRAM can be used for file editing/buffers.   With TIMODE invoked to run GPL, you won't get much more CPU-based ram from a standard system anyway. ;) 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...