It is currently Thu Mar 28, 2024 3:56 am

All times are UTC - 5 hours




 Page 1 of 2 [ 16 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: SpartaDOS X /Diamond GOS /Express mod info
PostPosted: Tue Aug 12, 2003 8:58 am 
User avatar

Joined: Sun Aug 10, 2003 8:20 am
Posts: 33
Location: The Netherlands
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.


Offline
 Profile  
 
 Post subject: Re: SpartaDOS X /Diamond GOS /Express mod info
PostPosted: Tue Aug 12, 2003 10:09 am 
ERROR AT LINE 0
User avatar

Joined: Tue Aug 05, 2003 9:55 am
Posts: 1042
Location: Cleveland, Ohio
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.


Offline
 Profile  
 
 Post subject:
PostPosted: Tue Aug 12, 2003 5:25 pm 
ERROR AT LINE 0
User avatar

Joined: Tue Aug 05, 2003 9:55 am
Posts: 1042
Location: Cleveland, Ohio
Anyone actually have a working Express rom image?


Offline
 Profile  
 
 Post subject:
PostPosted: Wed Aug 13, 2003 11:53 am 
User avatar

Joined: Sun Aug 10, 2003 8:20 am
Posts: 33
Location: The Netherlands
classics wrote:
Anyone actually have a working Express rom image?


Look in your mailbox haha


Offline
 Profile  
 
 Post subject:
PostPosted: Tue Aug 19, 2003 4:49 am 
User avatar

Joined: Sun Aug 10, 2003 8:20 am
Posts: 33
Location: The Netherlands
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.

TXG/MNX


Offline
 Profile  
 
 Post subject:
PostPosted: Wed Aug 20, 2003 4:34 am 
ERROR AT LINE 0
User avatar

Joined: Tue Aug 05, 2003 9:55 am
Posts: 1042
Location: Cleveland, Ohio
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.

TXG/MNX


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.


Offline
 Profile  
 
 Post subject: Re: SpartaDOS X /Diamond GOS /Express mod info
PostPosted: Mon Aug 25, 2003 4:43 pm 

Joined: Fri Aug 22, 2003 3:00 pm
Posts: 24
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?


Offline
 Profile  
 
 Post subject:
PostPosted: Mon Oct 13, 2003 2:26 pm 
ERROR AT LINE 0
User avatar

Joined: Tue Aug 05, 2003 9:55 am
Posts: 1042
Location: Cleveland, Ohio
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.


There are images and/or files attached to this posting. You must be logged-in to view or download this content.


Offline
 Profile  
 
 Post subject:
PostPosted: Mon Oct 13, 2003 4:11 pm 
ERROR AT LINE 0
User avatar

Joined: Tue Aug 05, 2003 9:55 am
Posts: 1042
Location: Cleveland, Ohio
Diamond GOS Cartridge modified to run on a 1Mbit flash cartridge.


There are images and/or files attached to this posting. You must be logged-in to view or download this content.


Offline
 Profile  
 
 Post subject:
PostPosted: Sun Feb 05, 2006 1:51 am 
User avatar

Joined: Fri Feb 03, 2006 1:09 am
Posts: 128
Location: Galactic 0,0,0
: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



_________________
_The Doctor__
Offline
 Profile  
 
 Post subject:
PostPosted: Sun Feb 05, 2006 1:54 am 
User avatar

Joined: Fri Feb 03, 2006 1:09 am
Posts: 128
Location: Galactic 0,0,0
Is 4.22 y2k compatible, if not how hard to insert the newer tdline.com and 2tdline.com files in the image? I have used both and they work flawlessly! the right day and date! cool as heck!



_________________
_The Doctor__
Offline
 Profile  
 
 Post subject:
PostPosted: Sun Feb 05, 2006 2:08 am 
ERROR AT LINE 0
User avatar

Joined: Tue Aug 05, 2003 9:55 am
Posts: 1042
Location: Cleveland, Ohio
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.

Steve


Offline
 Profile  
 
 Post subject:
PostPosted: Sun Feb 05, 2006 3:55 am 
User avatar

Joined: Fri Feb 03, 2006 1:09 am
Posts: 128
Location: Galactic 0,0,0
Hi Classic,
Is there any reason these supercart images are gunzipped? .gz or is that a typo in the file name? Just curious...



_________________
_The Doctor__
Offline
 Profile  
 
 Post subject:
PostPosted: Sun Feb 05, 2006 4:46 am 
User avatar

Joined: Fri Feb 03, 2006 1:09 am
Posts: 128
Location: Galactic 0,0,0
Here is an absolutley free gzip unziper open source all many formats works on Windows 32 bit operating systems



_________________
_The Doctor__
Offline
 Profile  
 
 Post subject: Sparta Dos X RomDisk Directory layout
PostPosted: Sat Feb 11, 2006 4:42 pm 
User avatar

Joined: Fri Feb 03, 2006 1:09 am
Posts: 128
Location: Galactic 0,0,0
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
LOOP
CMP XBANK,Y
BEQ GOTIT
DEY
BPL LOOP
LDY #$01 Can't figure, make it 1
GOTIT
RTS

XBANK
.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 "MAIN "
.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 "SPARTA SYS"
.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.
SDX OSS BAS OPERATING CONDITION
$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.

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

NOLUCK
LDA TRIG3 Is a cart present?
BNE CART Yes, go.
JSR DOSTUFF Still fairly easy
PLA
STA PORTB
RTS

CART
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
JSR DOSTUFF

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
TAY
STA $D500,Y Restore OSS cart bank
BCC CARXIT Go always
SDX
STA $D5E1 Enable SDX normal bank
STA $D508 Kill OSS cart (note b.)
CARXIT
CLI
RTS

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?



_________________
_The Doctor__
Offline
 Profile  
 
Display posts from previous:  Sort by  
 Page 1 of 2 [ 16 posts ]  Go to page 1, 2  Next

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 58 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

cron