Atarimax Product Discussion Forums

SpartaDOS X /Diamond GOS /Express mod info
Page 1 of 2

Author:  TXG/MNX [ Tue Aug 12, 2003 8:58 am ]
Post subject:  SpartaDOS X /Diamond GOS /Express mod info

Hmm now that the cartridge can be programmed and switched on/off it would be cool to patch SpartaDOS X to run from this Flashcard.

1Mb Flash-cartridge:
The cart is easy to control like this:

D500 - D50F turn on bank 0-F at A000-BFFF
D510 turn off cartridge

You can read or write to these locations, both will work.

SpartaDOS X original cartridge:
Banks: Contain 8 8KB banks. Access to base+0-7 turns on banks 0-7 in $A000-$BFFF area.
Access to base+8-F turns the cart off.
SDX: Base is $D5E0.
Diamond: Base is $D5D0.
Express: Base is $D570.

Author:  classics [ Tue Aug 12, 2003 10:09 am ]
Post subject:  Re: SpartaDOS X /Diamond GOS /Express mod info

TXG/MNX wrote:
Hmm now that the cartridge can be programmed and switched on/off it would be cool to patch SpartaDOS X to run from this Flashcard.

Also the bank-select logic in the flash cartridge is different from the logic of those cartridges, so the banks would be out of order.

You could put the banks in the correct order with GNU split and the DOS copy command by:

split -b 8192 cartridge.rom

Which will give you 8 bank files. Glue them together in reverse order with the copy command.

copy /b xah+xag+xaf+xae+xad+xac+xab+xaa inverted.rom

Then you only need to modify the bank switching access in the inverted ROM to match the registers used in the flash cartridges.

There may also be some accesses in the original cartridge that mess up the bank switching registered used in the flash cartridge, those have to be changed or taken out too.

Author:  classics [ Tue Aug 12, 2003 5:25 pm ]
Post subject: 

Anyone actually have a working Express rom image?

Author:  TXG/MNX [ Wed Aug 13, 2003 11:53 am ]
Post subject: 

classics wrote:
Anyone actually have a working Express rom image?

Look in your mailbox haha

Author:  TXG/MNX [ Tue Aug 19, 2003 4:49 am ]
Post subject: 

Did you get the EXPRESS ROM already ? I didn't know which version it was but there seems to be 2 versions of this ROM. I only have 1.


Author:  classics [ Wed Aug 20, 2003 4:34 am ]
Post subject: 

TXG/MNX wrote:
Did you get the EXPRESS ROM already ? I didn't know which version it was but there seems to be 2 versions of this ROM. I only have 1.


Yes I converted it but it doesnt work. :cry:

It looks like Express runs in BASIC and there is some code in the tokenized BASIC that checksums the cartridge. It crashes the machine when the checksum is not correct.

Looks like its not nearly as easy to convert as Spartados X or Diamond. I'm not sure if the basic code could be detokenized or modified.

Author:  gozar [ Mon Aug 25, 2003 4:43 pm ]
Post subject:  Re: SpartaDOS X /Diamond GOS /Express mod info

TXG/MNX wrote:
Hmm now that the cartridge can be programmed and switched on/off it would be cool to patch SpartaDOS X to run from this Flashcard.

And does anyone have a working image of this?

Author:  classics [ Mon Oct 13, 2003 2:26 pm ]
Post subject: 

Here is the Spartados X 4.22 modified for use on the 1mbit Flash Cartridge. I dont remember who originally posted it previous to the board crash, sorry.

Spartados X is only half the size of the 1mbit cartridge. If anyone can figure out how the romdisk is stored we could make it 2-3x larger on a 1mbit cart, or even a huge one on a 8mbit cart.

Author:  classics [ Mon Oct 13, 2003 4:11 pm ]
Post subject: 

Diamond GOS Cartridge modified to run on a 1Mbit flash cartridge.

Author:  _The Doctor__ [ Sun Feb 05, 2006 1:51 am ]
Post subject: 

:wink: I have the actual express super cart how would I get an image off of it and to you from that? :wink:

I have only found my Express cart and rtime-8!
I can't find my Spartados X, Basic XE, or Diamond cart.... They seem to have grown legs and walked away! They should have all been packed Up together. Hmmm....

?>The images you have 'converted' are they complete? And Identical in function for let's say putting an A8 old style Atascii BBS back in action with let's say a lantronix adaptor? I can try to find the old full form factor seacrate er seagate drive From the old Starfleet BBS ((David N, Admiral Kirk where are you!) I need to know if you have a copy of the batch selector still cause the old one is toast and you said it was one of a kind!))God I wonder if it would still work or if it's dead? Jim?

Nostalgic memory trip! Operation in progress! :D

Author:  _The Doctor__ [ Sun Feb 05, 2006 1:54 am ]
Post subject: 

Is 4.22 y2k compatible, if not how hard to insert the newer and files in the image? I have used both and they work flawlessly! the right day and date! cool as heck!

Author:  classics [ Sun Feb 05, 2006 2:08 am ]
Post subject: 

I don't know what the Spartados X romdisk format is, but it would be really nice to find out.

In addition to replacing various programs we could expand it to fill an 8mbit cart. That would yield about 7.5mbit of space for files in the romdisk.


Author:  _The Doctor__ [ Sun Feb 05, 2006 3:55 am ]
Post subject: 

Hi Classic,
Is there any reason these supercart images are gunzipped? .gz or is that a typo in the file name? Just curious...

Author:  _The Doctor__ [ Sun Feb 05, 2006 4:46 am ]
Post subject: 

Here is an absolutley free gzip unziper open source all many formats works on Windows 32 bit operating systems

Author:  _The Doctor__ [ Sat Feb 11, 2006 4:42 pm ]
Post subject:  Sparta Dos X RomDisk Directory layout

The SpartaDOS X Cartridge

SDX boots in bank 0 but normally works in bank 1 with one subroutine call back to bank 0 via low RAM which I suspect is used to load files from CAR: The cartridge contains eight different ROM banks (0 to 7), but I have not discovered any single location containing a bank identifier and I doubt there is one as its existence essentially would mean a "hole" in the middle of each ROMdisk bank. The control address for the X cartridge is $D5E0 used similarly to $D500 with an OSS cartridge.
The following code will leave the currently selected bank in the Y register with version 4.20. With other versions, you're on your own.

LDA $A004
LDY #7
LDY #$01 Can't figure, make it 1

.BYTE $32,$1F,$02,$1D
.BYTE $D4,$1C,$61,$56

The ROMdisk directory is at the beginning of bank 2 and follows normal Sparta format except that the address of the first sector map is the actual starting location in ROM of the stored program. The first two entries look like this:
.BYTE $08 Status: In use
.WORD 16384 Start: Bank 2 Offset 0
.WORD 598 Length
.BYTE 0 Length (high byte)
.BYTE 1,1,70 Date
.BYTE 251,0,0 Time
.BYTE $08 Status: In use
.WORD 16982 Start: Bank 2 Offset 598
.WORD 7288 Length
.BYTE 0 Length (high byte)
.BYTE 6,2,89 Date
.BYTE 15,28,40 Time

To convert the starting address to a bank and offset within the bank:
bank = int(address/$2000) and
offset = address-$2000*bank

CAR.COM uses the following combinations to control all three ROMs in the cartridge area. The values under "SDX" and "OSS" are offsets from $D5E0 and $D500 respectively and those under BAS are the value in bit 1 of PORTB. The "on" under the OSS column is the value found at $AFFF before the cartridge was last turned off and used to reenable it. The $0C value for SDX is what causes it to latch any cartridge off and the $08 makes it transparent so that the cartridge ROM is accessible.
$01 $08 1 in DOS or low RAM
$0C $08 1 in high RAM (X.COM)
$0C $08 0 in BASIC
$08 on 1 in cartridge

If you're going to play with SDX banks remember that any read or write to a $D5Ex address will affect an OSS cartridge and TRIG3. Since TRIG3 is affected, GINTLK and CARTCK also come into play. So the example given of how to access RAM under a cartridge needs to be modified if SDX is present.

Let's look at a subroutine to access RAM in the cartridge space taking in the possibility of the presence of BASIC, SDX, or an OSS cartridge.

ORA #$02 Any Basic rom off
LDA RAMTOP This might be easy
CMP #$A0+1
BCC NOLUCK Not quite.
PLA See note a. following
STA BASICF for an explanation

LDA TRIG3 Is a cart present?
BNE CART Yes, go.
JSR DOSTUFF Still fairly easy

PLA See note a. following
STA BASICF for an explanation.

SEI Kill stage 2 vblank
LDA $AFFF Get OSS bank number
PHA Save it
STA $D5E8 Turn off both carts

We know a cartridge was on. Now we have to restore it correctly.
PLA Recover bank number
CMP #$10 Valid for OSS? (note c.)
BCS SDX No, must be SDX
STA $D500,Y Restore OSS cart bank
BCC CARXIT Go always
STA $D5E1 Enable SDX normal bank
STA $D508 Kill OSS cart (note b.)

a. The reason for discarding the PORTB entry value is to allow for 512k+ RAM expansions. As mentionned previously, the OS doesn't know extra RAM exists and has no way of knowing BASIC may not exist on large upgrades. As a result, it sets PORTB and BASICF based solely on the Option key at boot and uses BASICF to determine which status to restore on a reset. On large RAM upgrades this leads to major problems for programs using extra RAM as the program can end up in the wrong 256k bank. Unless BASIC is actually on, it is always advisable to flag it off and to set its bit high in PORTB.

b. We knew a cartridge was on or we never would have got to that portion of the code. As it wasn't the OSS cartridge, it had to be SDX. But, because the dumb OSS cartridge reacts to the $D5E1 address, we had to turn it off again after enabling SDX. For the same reason, a single access of $D5E8 was sufficient to turn both off.

c. The comparison of the bank number to 16 to determine its validity as an OSS bank number is that used by ICD in the code for the RT8 handler. The test is, I believe, made on the assumption that the X cartridge is in bank 1 where the value at $AFFF is 87 for version 4.20. There are two SDX banks where values less than 16 are found at $AFFF, namely 0 (value 7) and 4 (value 3).

Sneaky isn't it?

Page 1 of 2 All times are UTC - 5 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group