griff3125 Posted November 26, 2020 Share Posted November 26, 2020 (edited) 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 November 26, 2020 by griff3125 Quote Link to comment Share on other sites More sharing options...
BillC Posted November 26, 2020 Share Posted November 26, 2020 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. 2 Quote Link to comment Share on other sites More sharing options...
+Nezgar Posted November 26, 2020 Share Posted November 26, 2020 [deleted] erg.duplicate post.. Quote Link to comment Share on other sites More sharing options...
+Nezgar Posted November 26, 2020 Share Posted November 26, 2020 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. 1 Quote Link to comment Share on other sites More sharing options...
griff3125 Posted November 26, 2020 Author Share Posted November 26, 2020 (edited) 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 November 26, 2020 by griff3125 typo Quote Link to comment Share on other sites More sharing options...
+MrFish Posted November 27, 2020 Share Posted November 27, 2020 (edited) 2 hours ago, griff3125 said: ...but I prefer my 800. The hack you want is called Incognito. Edited November 27, 2020 by MrFish 1 Quote Link to comment Share on other sites More sharing options...
BillC Posted November 27, 2020 Share Posted November 27, 2020 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 1 Quote Link to comment Share on other sites More sharing options...
+Nezgar Posted November 27, 2020 Share Posted November 27, 2020 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... Quote Link to comment Share on other sites More sharing options...
BillC Posted November 27, 2020 Share Posted November 27, 2020 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. Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted November 27, 2020 Share Posted November 27, 2020 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. Quote Link to comment Share on other sites More sharing options...
Rybags Posted November 27, 2020 Share Posted November 27, 2020 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. Quote Link to comment Share on other sites More sharing options...
+Nezgar Posted November 27, 2020 Share Posted November 27, 2020 @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.. Quote Link to comment Share on other sites More sharing options...
Rybags Posted November 28, 2020 Share Posted November 28, 2020 52K ends just before $D000 which is the GTIA registers. 2 Quote Link to comment Share on other sites More sharing options...
+Nezgar Posted November 28, 2020 Share Posted November 28, 2020 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 Quote Link to comment Share on other sites More sharing options...
Rybags Posted November 28, 2020 Share Posted November 28, 2020 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. Quote Link to comment Share on other sites More sharing options...
+Nezgar Posted November 28, 2020 Share Posted November 28, 2020 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.