Jump to content
IGNORED

On DOS & how to start executables?


jowi

Recommended Posts

Hi!

 

That is amazing, if i look at that topic, you replied to my question before i even asked it.

Sorry if my reply looked harsh, no bad feelings were intended :) . I remembered the same questions was asked before, and just added the link.

 

Perhaps would be better to modify the AtariWiki site so that the fixed versions are available.

 

Have Fun!

Link to comment
Share on other sites

Hi,

 

If you are loading the Assembler/Editor from disk, you could also load another assembler - I used to use Mac65/Bug65, which I found much better than the Atari Assembler/Editor. There are also other assemblers, though I haven't used those.

 

If you are using RespeQt, I think you can use Wudsn on the machine running RespeQt (unless it is a Raspberry Pi), do all the assembly/editing on that machine, and access the assembled files using RespeQt.

 

When I am doing Atari 6502 programming I do the coding in Wudsn/Atasm on Linux, copy it to a raspberry pi running SIO2BSD, and load it on a real 8-bit to test it. As a bonus, I get to use the Mac65 macro libraries, as they seem to work nicely with Atasm. I want to make sure all of my finished code will also work with Mac65, but I haven't put a lot of effort into actually making this happen (I'm hoping it's just a matter of setting up the right .includes, etc).

 

Hope this helps.

Link to comment
Share on other sites

To successfully run any cart image you need to do a few things for it to survive a system reset - for games it doesn't matter so much as you often want a coldstart anyway but for languages it's essential.

 

Protect the top 1K otherwise the screen might overwrite it. With the AsmEd I did this is accomplished by leaving Basic enabled then a stub of warmstart code switches it out if it is in use. I put the code stub just under the DList which is sort of out of the way but can easily get overwritten if you open a graphics mode that uses more than 1K in either Basic or the AsmEd.

The alternate to this, and required if using a 16K image is to keep a backup copy of the relevant 1K area somewhere and restore it during each warmstart.

 

Also a method to switch between Basic and the AsmEd is nice. I use Shift-Reset which is OK on real hardware but can be tricky in emulation since that's usually the coldstart hotkey combo. You can get around it by pressing F5 then hold shift at the right time interval afterwards.

 

This is the AsmEd executable I use in the day - in theory the image part of the file could be swapped out with another 8K language to allow switching between the two. Note that switching languages forces a NEW/coldstart of the language since they use the same memory areas for pointers and the source and can't otherwise live together.

 

asm.zip

 

I use it with Dos 2.5 - how successful it is with other Doses or emulated HDD, unknown.

Another note - I'm not sure it works properly if your initial bootup is with Basic disabled.

Edited by Rybags
Link to comment
Share on other sites

Hi!

 

To successfully run any cart image you need to do a few things for it to survive a system reset - for games it doesn't matter so much as you often want a coldstart anyway but for languages it's essential.

 

Protect the top 1K otherwise the screen might overwrite it. With the AsmEd I did this is accomplished by leaving Basic enabled then a stub of warmstart code switches it out if it is in use. I put the code stub just under the DList which is sort of out of the way but can easily get overwritten if you open a graphics mode that uses more than 1K in either Basic or the AsmEd.

The alternate to this, and required if using a 16K image is to keep a backup copy of the relevant 1K area somewhere and restore it during each warmstart.

My loader does the same, installing a resident handler at MEMTOP that switches off basic and reloads the cartridge. Also, it install a handler for DOSVEC that uninstall itself (restoring MEMTOP) when you return to DOS, without this you could crash after going to DOS and pressing RESET:

 

Also, the loader detects if the computer is XL or not, installing the handler only if it is, and properly handling the bug in OSA/B that overwrites the memory just above the screen, and prints an error if there is less than 48K of RAM.

 

I use it with Dos 2.5 - how successful it is with other Doses or emulated HDD, unknown.

Another note - I'm not sure it works properly if your initial bootup is with Basic disabled.

I tested my loader with DOS2, DOS2.5, MyDOS, SpartaDOS X amd BW-DOS, BASIC enabled or disabled on run.

 

I think the "go to BASIC on SHIFT-REST" is useful, but I normally use BW-DOS, where I can do "BASIC ON" and then "CAR" to run basic.

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