Jump to content
IGNORED

SIC! Cart conversions


ivop

Recommended Posts

Perhaps we should start a thread for these? (i.e. games, utilities that do not work out of the box with a sic! cart)

 

Here's and .xex file which contains DOS 2.5 + Atmas II which can be used to boot both at once from a SIC! Cart.

 

This file can also be used to boot from several emulators (boot file/image) and other $700 based boot loaders. Aspeqt file loader works as well. DOS is loaded at $5700 and moved to $700 before initializing DOS and running the application, atmas 2 in this case.

atmas.xex

Link to comment
Share on other sites

Although I still don't have a v1.02 MAC/65 dump at my disposal, I investigated how it (and Action, Basic XL,XE) can be converted to a SIC! cart.

 

OSS carts use the address lines to do bank-switching, i.e. write something to $d500, $d501 or $d509 selects a different 4k bank at $a000-$afff ($b000-$bfff is a fixed bank)

 

SIC on the other hand uses the databus to do bank-switching, i.e. write $00, $01, $02, etc... to $d500. It can disable $8000-$9fff (which is off by default) so the amount of free RAM will be the same.

 

All of the above mentioned OSS carts use single store instructions to switch banks, which leaves all registers (A,X,Y) unchanged. Switching to a different SIC bank needs something like PHA, LDA #$02, STA $D500, PLA, which does not fit in the same space, so it should be put in a subroutine (jsr foo fits in place of sta foo). Sadly, there is no free ROM space in bank M to put three such routines, so that only leaves RAM. My idea is to use SIC bank0 to setup the switching routines at, let's say the bottom of the stack, then switch to bank 1 and run the cart which has all bank switching stores replaced by the corresponding jsr's.

 

OSS carts:

Physical order of banks: M, 0, 9, 1.

A3 A0 A000-AFFF B000-BFFF RD5	 Values
0 0 bank 0	 bank m	 1	 0,2,4,6	 $d500
0 1 bank 1	 bank m	 1	 1,3,5,7	 $d501
1 0 off		 off		 0	 8,A,C,E
1 1 bank 9	 bank m	 1	 9,B,D,F	 $d509

 

SIC! Cart:

Each bank is 16k

$00 bank 0:	 8k off	 8k init code, copy bankswitching code to bottom of stack, switch to $01 and run
$01 bank 1:	 8k off	 4k oss bank 0, 4k oss bank m
$02 bank 2:	 8k off	 4k oss bank 1, 4k oss bank m
$03 bank 3:	 8k off	 4k oss bank 9, 4k oss bank m

shortest code I can come up with: (18 bytes)

switch01:
pha
lda #$01
bpl switch
switch02:
pha
lda #$02
bpl switch
switch03:
pha
lda #$03
switch:
sta $d500
pla
rts

 

If this works, you can also put a menu in bank $00 (plenty of space) and select one of four carts and fill 4-6, 7-9 and 10-12 with the other three M019 OSS carts and run one of those instead :)

 

ATM I am busy with other stuff and I don't want to do too many things at once, but this should get you or anybody else started in porting these carts to a sic cart.

Link to comment
Share on other sites

  • 3 weeks later...

No. Turbo Basic is an application that runs partly from main RAM and large parts of the RAM under the OS ROM. There's no way it'll fit in 8kB, not even with compression. Code generally does not compress very well.

 

BTW The above does not turn a SIC cart into an instant Turbo Basic. It's just an exe file that can be loaded from a sicmenu, or any other $700-based loader for that matter. It's pretty fast though and IMHO it's cleaner than Nir Dary's (sp?) conversion.

 

On-topic again:

 

Any interest in a conversion of the Turbo Basic compiler, too?

Edited by ivop
Link to comment
Share on other sites

No. Turbo Basic is an application that runs partly from main RAM and large parts of the RAM under the OS ROM. There's no way it'll fit in 8kB, not even with compression. Code generally does not compress very well.

 

BTW The above does not turn a SIC cart into an instant Turbo Basic. It's just an exe file that can be loaded from a sicmenu, or any other $700-based loader for that matter. It's pretty fast though and IMHO it's cleaner than Nir Dary's (sp?) conversion.

 

On-topic again:

 

Any interest in a conversion of the Turbo Basic compiler, too?

slightly off-topic: this sounded so good I had to try it but I since don't own a SIC! cart I decided to install it on an Atarimax 8mbit flashcart. It worked but it wouldn't load a DOS (MyDOS 4.53/4, in my case) from a disk.

 

After playing around with the installer options for that cart and making no progress I wondered what if I boot a MyDOS disk with Turbo BASIC XL on it and make my own RAM dumps for $0000-$00FF and $0200-$37FF and rebuild the XEX.

 

This worked!

 

Of course, if there is no DUP.SYS on the disk that I happen to be using then I can't go to the DOS menu. However, I can at least access files on a disk now.

 

I was just wondering if there is more elegant way than what I did.

 

Thank for this, ivop!

 

I've been wanting a Turbo BASIC XL cartridge ever since I first read about Nir's build.

 

-SteveS

 

p.s. I vote for compiler conversion and if it's not to much to ask the linker would be great too. I believe it appends a compiled program to the runtime and makes it all run without prompting the user.

Edited by a8isa1
  • Like 1
Link to comment
Share on other sites

years and years ago there was a nice cart from the Stichting Atari Gebruikers (The Atari Foundation) in the Netherlands. It contained at least Dos 2.5 and TurboBasic. There was something else too on that cart, but I can not remember. It had to be plugged on the parallel expansion port (IIRC). If we knew how they pacted TurboBasic and Dos 2.5 on that cart, we might be able to do something like that too on the SIC. I think Guus Assmann can tell us more...

Link to comment
Share on other sites

Turbo Basic Compiler

 

BTW I noticed that data/sicmenu.obx that is distributed with sicmenu 0.61a does not work correctly. It crashes loading the compiler. If I assemble my own (mads sicmenu.asm) and use that one to build the cart image, everything works fine. (sicmenu 0.60a source code)

 

Right now I have a cart with DOS 2.5, TB and its compiler. Isn't that what you want/mean Marius?

 

Edit: I also notice that the 0.60a sicmenu loader is waaay faster than the 0.61a that I used to use before.

turboc.xex

turboc-source.zip

Edited by ivop
  • Like 1
Link to comment
Share on other sites

Here's a complete Turbo Basic development cart. It includes the following:

 

DOS 2.5

Turbo Basic XL 1.5

Turbo Basic XL Compiler 1.1

Turbo Basic XL Runtime

Turbo Basic XL Linker

 

The linker includes RUNTIME2.EXE, but only for a in single link "session". Also, do not forget to press ESC after linking, otherwise the file doesn't get closed.

 

If you just want to flash your SIC! cart with this, you need ...-atr.zip

If you want to use the binaries for, say, a MaxFlash cart, you need ...-binaries.zip

If you want to see how it's done or change/fix things, you need ...-sources.zip

 

Regards,

Ivo

turbo_basic_sic_cart-atr.zip

turbo_basic_sic_cart-binaries.zip

turbo_basic_sic_cart-source.zip

  • Like 6
Link to comment
Share on other sites

Here's a complete Turbo Basic development cart. It includes the following:

 

If you just want to flash your SIC! cart with this, you need ...-atr.zip

Regards,

Ivo

I have flashed this cart..Requires a 256k SicCart.. And also an origanal Dos 2.5 Diskette or Atr for booting Dos. Tested all of the options, interpreter, compiler, and linker..works good even if the linker files seem to be fairly large..

Link to comment
Share on other sites

Yes, a larger cart is no problem. It just flashes the first 16 banks and then quits. I only have 512kB here, too.

 

For saving files, you need an empty DOS 2.5 floppy. If you do not want to reset your computer to start the DUP, you can put DUP.SYS on it and if you want to be able to link multiple programs without resetting the computer (which means power-cycling if you do not have a reset button on your cart) you can put RUNTIME2.EXE on it as well.

 

Personally, I prefer resetting and running DUP from cart. It's also faster.

Link to comment
Share on other sites

Hello Marius (And others of course)

 

What I made in that time, was connected to the cartridge port.

It was an Eprom disk with also one page of Ram.

And it worked as follows: From the Rom, a program was started that copied an image of Dos 2.5 to the same place it would normally load to.

Then, the Eproms were checked for programs and a "magic word". In the Ram, a directory was created consisting of all program images that where found in Eprom.

A call to Dup would also get this from Eprom. For this, the dos was patched just enough. A call to D2 would still go to a floppy drive.

This was mainly similar to the CAR: device in Sparta-Dos-X.

 

As for developmet tools and Mac65, my ideal solution is the Freezer 2005.

This emulates the Mac65 and Bug65. (Or Basic XL/XE) and also has the freeze function to aid in bug-hunting.

And it's Ram can be used as a Ramdisk. That can also be battery-backuped.

 

BR/ Guus

Edited by guus.assmann
Link to comment
Share on other sites

Option 'B' return to cart/basic will return to Turbo basic if previously loaded and not corrupt.

 

I don't think we need a new cart for that. I looked into it and it's just a small patch to make 'B' do the same as 'M' 2080. You can just put his DUP.SYS on your working disk and write MEM.SAV. After that, if you go to DOS from the cart's Turbo Basic, that particular DUP will be read. You can also use an unmodified DUP and do M 2080 to return to Turbo Basic.

  • Like 3
Link to comment
Share on other sites

  • 2 years later...

Hello folks,

 

yesterday my younger kid lost a tooth (normal in his age!) and some time later the kids complained that they wanted to play a certain Atari game (Thera-med, unbelievable, but true). And I thought, hey, why not create a "Kidscart" with many educational and some non-educational games for them ? So I started downloading many games from Fandal`s webpage and tested them on the emulator. Knowing that my kids do not understand english, I had to exclude some games from the collection and ended up with 25 programs (some of them use german language).

 

And then I started to flash a 256k SIC cart. for the first time. The ATR image and BIN/ROM was created on the PC with SICgen, but after flashing the cart. on the A8 many games did not work, even one of the games which they like very much (Sumator, yes my older kid loves this game!) did not work. To my surprise even the 1k games Superfly 1k and Superfly 1k+ did not work. Today I created a new ATR image using SICmenu and SICmenuFE and now these games all work fine, huh ?!?

 

Okay, I did not have the time to test all games yet (since my kids wanted to play) but here are some screenshots showing the program list and attached you will find the ATR-image and the BIN/ROM image which should be burned onto a 256k SIC cart...

 

post-3782-0-33353900-1440677269_thumb.jpg

post-3782-0-78761800-1440677287_thumb.jpg

post-3782-0-81817900-1440677298_thumb.jpg

 

Guess in the future I will have to create more Kids carts. with more and more non-educational games, until my kids are too old and more interested in "modern" games... ;-)

 

Suggestions to the SIC creators:

 

- please, please make a Reset-button (reset to menu) standard for a SIC cart ! Its always needed if you want to change games (otherwise you always have to switch off your A8 and back on again). Okay, you can add such a switch yourself, but it would be good if it becomes a standard for future SIC carts...

 

- it would be nice if we could have a menu with two columns (or even three columns, when just showing the filenames without extender)...

 

 

P.S.: Thera-med is menu-option A in the first screenshot (does not show here)... Superminer 2 requires some time for initializing (press the Break key and you can see why)...

kidscart.zip

Edited by CharlieChaplin
  • Like 3
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...