Jump to content
IGNORED

Atari 800 64k Mosaic memory board?


griff3125

Recommended Posts

Is the Atari 800 Mosaic memory board used strictly for a ram drive and coding perks?

It's brings the 800 up to 64kb's of RAM, is there any way to use the full 64 to have xl games recognize it?

My gut feeling is no, and none of the docs suggest so, but it's a question that's always been nagging at me.

Thanks for any insight!

 

Edited by griff3125
Link to comment
Share on other sites

43 minutes ago, griff3125 said:

Is the Atari 800 Mosaic memory board used strictly for a ram drive and coding perks?

It's brings the 800 up to 64kb's of RAM, is there any way to use the full 64 to have xl games recognize it?

My gut feeling is no, and none of the docs suggest so, but it's a question that's always been nagging at me.

Thanks for any insight!

 

A primary use for the extra memory is as RAMdisk but there is software that can use it, Syncalc and Synfile+ come to mind. The top 16K can be used in BASIC as 4 selectable 4K banks as well. A "POKE 106,208" sets RAMTOP to 52K which allows BASIC to see the 4K bank, I don't recall how to select the active bank.

 

The 800 can actually use 3 of these for 192K total, and there are versions(IIRC all but the earliest ones) compatible with the 400 as well. I have a 400 that I had upgraded in early 1983. 

  • Thanks 2
Link to comment
Share on other sites

3 hours ago, BillC said:

A primary use for the extra memory is as RAMdisk but there is software that can use it, Syncalc and Synfile+ come to mind. The top 16K can be used in BASIC as 4 selectable 4K banks as well. A "POKE 106,208" sets RAMTOP to 52K which allows BASIC to see the 4K bank, I don't recall how to select the active bank.

You can't use the 52K that way with BASIC, because RAMTOP is usually just below the BASIC 8K ROM space. By setting it at the 52K mark, the screen will indeed be moved to that 4K space above the BASIC ROM, but you'd have to be very careful because your BASIC program "could" be allowed to grow into the BASIC ROM area that BASIC would think is a contiguous RAM block..

 

52K mode is safe without a cartridge installed through, and I believe the stock OS will detect that condition too? Or let BASIC place the RAMTOP under BASIC, then your programs can safely use the banked 4K above BASIC without risk.

 

Or just use the appropriate RAMDisk driver and keep extra data accessible using simple file I/O operations - then your program will work with any upgrade's via ramdisk. :)

 

4 hours ago, griff3125 said:

is there any way to use the full 64 to have xl games recognize it?

Mosaic extended memory & banking (4K banks @ $C000) is different than Axlon extended memory & banking (16K banks @ $4000) .

Which were both developed before the 1200XL 16K under the OS @ $C000, and the 130XE's additional 64K in 16K banks @ $4000 ) :)

So no.. they're not compatibile, unless software is written explicitly to support it.

 

  • Like 1
Link to comment
Share on other sites

Thank you all for the breakdown above, I figured as much but was secretly hoping there was a hack to make the banks accessible all at once for the games that require more memory.

Wishful thinking, thankfully I have a 1200xl for the other stuff, but I prefer my 800 :).

 

Happy Thanksgiving all!

 

Edited by griff3125
typo
Link to comment
Share on other sites

8 hours ago, Nezgar said:

You can't use the 52K that way with BASIC, because RAMTOP is usually just below the BASIC 8K ROM space.

Atari BASIC sets RAMTOP to 160/40K because the 400/800 were only designed for 48K RAM, with only 40K accessible in BASIC. With the MOSAIC 64K Select PCB the "POKE 106,208" sets RAMTOP to 52K, which gives access to the 4K bank just above the 8K cartridge region, with the ability to also select from 4 different banks.

 

Check out the following information I found at the Atari Museum, line 10 in the BASIC listing sets RAMTOP to 207(51-3/4K)

http://www.atarimuseum.com/computers/8BITS/3rdparty/ExpansionBoards/Memory/Mosiac/Mosaic64k-creative_atari.htm

  • Thanks 1
Link to comment
Share on other sites

17 minutes ago, BillC said:

Check out the following information I found at the Atari Museum, line 10 in the BASIC listing sets RAMTOP to 207(51-3/4K)

Yes... but as you see that program is careful to only use graphics 5+16 to keep the display under 4K and and allow the OS draw routines to work - and then bank swap after drawing to each bank, and page flip for animation... higher graphics modes would start showing the BASIC ROM at the top of the screen :)

 

Just saying technically with ramtop POKEd to 207, BASIC thinks there's actually 52K not 40K... so this small program will be fine but technically BASIC could try to grow into BASIC's ROM area from 40-48K in the memory map and corrupt the program listing...

Link to comment
Share on other sites

1 hour ago, Nezgar said:

Just saying technically with ramtop POKEd to 207, BASIC thinks there's actually 52K not 40K... so this small program will be fine but technically BASIC could try to grow into BASIC's ROM area from 40-48K in the memory map and corrupt the program listing...

I think that RAM in the 8K cartridge area is inaccessible and that only the additional 4K RAM bank is available, at least that's what I seem to remember. If I get this 400 out of storage I will check, I never really used the Mosaic features, the change from only 8K to 48K was enough at the time.  I also got an 800XL after prices dropped and I discovered that SpartaDOS 2.3 was compatible with more software than SpartaDOS 1.1.

Link to comment
Share on other sites

12 hours ago, Nezgar said:

52K mode is safe without a cartridge installed through, and I believe the stock OS will detect that condition too?

Yes, that's right, I made a Cart that fitted in the right slot with 4K SRAM in it, booting without BASIC had 52K less

whatever DOS used up, was very useful to have that extra when developing software and debugging using BUG65

which is relocatable, I could move it much higher to avoid running code and screens.

Link to comment
Share on other sites

I'm fairly sure setting RAMTOP to the 52K base can be dangerous as the early OSes have a bug where sometimes memory above that can get overwritten.

Not normally a problem since with 40 or 48K there's usually empty space or ROM at the location but at 52K is the hardware registers.

Link to comment
Share on other sites

@Rybags the RAM corruption bug in OSA/OSB shouldn't be an issue if RAMTOP is set at the 52K mark, because the the corruption affects memory just above RAMTOP - which is usually either the cartridge ROM above 40K normally with BASIC inserted, above 48K without a cartridge in a stock machine (48K-52K is neither RAM or ROM), or 52K in a mosaic-type upgrade - above 52K is the OS ROM. The issue is only if there is actually writable RAM above RAMTOP.

 

Disk-versions of assembler/ed, BASIC, etc that load into the usual cartridge address space, have to move RAMTOP another 4KB below the usual RAMTOP to protect against the issue you describe..

Link to comment
Share on other sites

4 hours ago, Rybags said:

52K ends just before $D000 which is the GTIA registers.

Good point... Sorry I missed that in your previous post. I wonder if anyone's actually seen effects of this if the screen editor writes there? It's just not something I've encountered or read about in my travels so far. Time to experiment. :)

 

Edit: Some quick testing in Altirra with 800 OSB in Memopad + 52K RAM - shows when issuing a clear screen the screen blanks briefly (but recovers) as well as a consol click. vs 48K just a screen clear. Interesting behaviour corroborating your statement.

 

And this from Mapping:

https://www.atariarchives.org/mapping/memorymap.php

     When you normally PRINT CHR$(125) (clear screen), Atari sends
     zeroes to the memory starting at locations 88 and 89. It continues to
     do this until it reaches one byte less than the contents of RAMTOP
     (location 106; $6A). Here is a potential source of conflict with your
     program, however: CHR$(125)--CLEAR SCREEN--and any
     GRAPHICS command actually continue to clear the first 64 ($40)
     bytes above RAMTOP!

     It would have no effect on BASIC since BASIC is a ROM
     cartridge. The OS Source Listing seems to indicate that it ends at
     RAMTOP, but Atari assumed that there would be nothing after
     RAMTOP, so no checks were provided. Don't reserve any data
     within 64 bytes of RAMTOP or else it will be eaten by the CLEAR
     SCREEN routine, or avoid using a CLEAR SCREEN or a
     GRAPHICS command. Scrolling the text window also clears 800
     bytes of memory above RAMTOP.

Edit 2: Also able able to reproduce with BASIC after POKE 106,208. ( ?FRE(0) reports 50190 in GR.0 heh) Notice the program in the Creative Computing Article BillC referenced uses 207 instead of 208 probably to protect against this bug...

10 POKE 106,207:REM RAISE RAMTOP

 

Link to comment
Share on other sites

I can recall having the issue when programming when I had my 400, though it was lower memory config and probably related to PMG data and asm routines being overwritten.

 

A flashing screen - probably indicates GTIA registers being overwritten.  In default Gr. 0 it'd likely recover but if stuff like PM graphics were in use the configuration would likely be corrupted.

Link to comment
Share on other sites

3 minutes ago, Rybags said:

In default Gr. 0 it'd likely recover but if stuff like PM graphics were in use the configuration would likely be corrupted.

Indeed... with POKE 106,208 prior to running this program also from Mapping, the leftover PMG's also get cleared with a clear screen, not so the normal 106,160 value...

10  POKE 53265,255: REM SHAPE START
20  POKE 623,1: REM SET PRIORITIES
30  FOR X = 1 TO 25
35  F = 50
40  FOR C = 704 TO 707: POKE C,F + X:F = F + 50: NEXT C: REM COLOURS
45  S = 100
50  FOR P = 53252 TO 53255: POKE P,S + X: S = S + 20: NEXT P : REM SCREEN POSITIONS
60  NEXT X
70  INPUT A,B: REM MISSILE SIZE AND SHAPES
80  POKE 53260,A: POKE 53265,B
100 GOTO 30

pmg.png.ed24b1d69904aacbac072490a60ac6b6.png

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.

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