Jump to content
MrGonker

Out of Memory when using nanopeb.

Recommended Posts

Hello, I am using my new nanopeb on my 4A and have been copying all my tape games in basic to disk, however when I try and run some games like apex sorcerers castle and virgin funpak game starship super nova I get an out of memory in line.... . I know it’s to do with the arrays in the game and the memory usage for the disk system but is there a way to get these games working without having to remove the nanopeb as it’s so much easier to have all my tape games as disks.

Thanks for any help.

 

  • Like 1

Share this post


Link to post
Share on other sites
Hello, I am using my new nanopeb on my 4A and have been copying all my tape games in basic to disk, however when I try and run some games like apex sorcerers castle and virgin funpak game starship super nova I get an out of memory in line.... . I know it’s to do with the arrays in the game and the memory usage for the disk system but is there a way to get these games working without having to remove the nanopeb as it’s so much easier to have all my tape games as disks.
Thanks for any help.
 
Try call files(1)

Sent from my LM-V600 using Tapatalk

Share this post


Link to post
Share on other sites

Hello :) MrGonker!
I am also discovered that it is almost impossible to load some programs if not in BASIC console without expansion. 
Sometime I can solve with CALL FILES (1), NEW and then load the game as also Greg suggested, but for the most I can just use emulator like Classic99 and CALL FILES (0).
If you can create also the .WAV file, you could also load it in MESS/MAME Emulator in a BASIC emulation without expansions mounted, I discovered that if you will save a new WAV file from MESS it can be loaded successfully into CLASSIC99 using CALL FILES (0) option and then you can save it digitally as FIAD file. I am using this method lately for some of the tapes. The saved MESS/MAME .WAV file is perfectly compatible with the Classic99 emulator.

 

But I still haven't found how to load on the real TI99 from floppy disk or with disk connected.

 

Another method to convert long programs into digital format, I use to load the program on a TI99 in stock configuration and the recorder connected. Once loaded the game I am deleting some of the first lines (20 lines at least) and save the game into a new empty cassette tape as PART1.
Then I load again the original program and once loaded deleting the final 20 lines of the program and save it into a new empty cassette tape as Part2.

Once done, I load the Part1 and the Part2 with Disk controller connected and save them as FIAD.
On the PC Using TIDIR I will merge the listing of the two parts into one only to have the complete game again. 😛 a bit crazy but works 😛


Maybe some features of the @RXB also could help on the real hardware, Rich?

 



 

Edited by ti99iuc
  • Like 3

Share this post


Link to post
Share on other sites

You could also try to load the program from disk with Winkler's Extended BASIC 3, as it sends everything directly to the memory expansion without the detour through VDP RAM. Then you can try to save it with a new name and see if it saves in INT/VAR 254 format. RXB may be able to perform similar magic, but it does still use the console load routines for PROGRAM files, so it may have the same CALL FILES issues Extended BASIC has. Note that RXB can save any PROGRAM file in INT/VAR 254 format once you do get it loaded though. I suggested XB3 as a test case here because of the different way it uses system memory.

  • Like 3

Share this post


Link to post
Share on other sites

Thank you all for the help, I will try call files(1). I have a finalgrom and will see if the other extended basics are on my sd card, I used the finalgrom file off the WHTECH site. I always just go straight for v1.10 extended basic and have never used any other type. Would be nice to not have to keep removing the nanopeb as it’s such a tight fit on the expansion port and don’t want to break the connector.

 

Share this post


Link to post
Share on other sites

Since the disk controller reserves some RAM, it is always possible to find a TI BASIC program that won't fit in just TI BASIC on a disk system. CALL FILES(1) reduces the disk memory as much as possible. CALL FILES(0) is a Classic99-specific thing that I added because you can't (and don't need to) turn off the disk controller in that emulator.

 

The difference in free VRAM from CALL FILES(1) and CALL FILES(0) is 1052 bytes - just over 1k - so if you can reduce the size of the TI BASIC program that's the most compatible approach. (CALL FILES(3), the default, is another 1036 bytes used). Most TI BASIC programs can be optimized to save that much memory.

 

 

  • Like 3

Share this post


Link to post
Share on other sites

Per the PHP-1240 manual, the base memory usage for the controller is 534 bytes, plus 518 bytes per file buffer.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, OLD CS1 said:

Per the PHP-1240 manual, the base memory usage for the controller is 534 bytes, plus 518 bytes per file buffer.

 

Kinda what @Tursi said (in a roundabout way, I suppose). Going from CALL FILES(1) to CALL FILES(3) adds 2 file buffers of 518 bytes each for the additional 1036 bytes. The initial 1052 bytes consumed by CALL FILES(1) is, indeed, 534 + 518 bytes. Well, now, I guess that horse is well and truly dead. :grin:

 

...lee

  • Like 1
  • Haha 1

Share this post


Link to post
Share on other sites
16 minutes ago, Lee Stewart said:

 

Kinda what @Tursi said (in a roundabout way, I suppose). Going from CALL FILES(1) to CALL FILES(3) adds 2 file buffers of 518 bytes each for the additional 1036 bytes. The initial 1052 bytes consumed by CALL FILES(1) is, indeed, 534 + 518 bytes. Well, now, I guess that horse is well and truly dead. :grin:

 

Not until it is well-basted and filleted!  I saw @Tursi's post as I was typing, but I demanded absolute pedantry with specificity :D  I had to take advantage of Classic99's CALL FILES(0) to get one of my programs to load because it needed that last 1k of VDP space to run.  The caveat is I had to load from CS1 via a good wav copy of the original cassette, which took a good amount of work.

  • Like 1
  • Haha 3

Share this post


Link to post
Share on other sites

I just used the debugger and did the math, I didn't worry about what the memory was being used for since it wasn't applicable to the issue. ;)

 

Setting top of VRAM to >37D7 (3 files)


Setting top of VRAM to >3BE3 (1 files)
Setting top of VRAM to >3FFF (CS1 MODE)

 

Now the details of WHY those bytes are used are saved for posterity, so that's also good!

 

  • Like 4

Share this post


Link to post
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.

Guest
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.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...