Jump to content
IGNORED

New Demo by BITS: 1504. For XL.


SoLo2

Recommended Posts

I retract my snarky comment, but this must be a regional thing. I still can't download the demo, either from clicking on the link or right-clicking and 'save as'. I had to go straight to their homepage to be able to download the file.

Edited by dwhyte
Link to comment
Share on other sites

Nevermind, I looked and the exe file is broken. The segment length is wrong and there is no init or run address in the file.

 

Here is a fixed EXE that will load on a real Atari.

 

Steve

Thanks!

 

The original worrked, in a fashion, but I had to use SDrive and relocate the boot loader to $4000.

 

OT: Anyone know if MyPicoDOS has a file loader that can be relocated?

Link to comment
Share on other sites

  • 2 weeks later...

I don't think it is even intended to be run on a real Atari. The "fixed segment" binary loads from $0400 to $2C0F. No DOS or any sane loader has a chance to load this.

 

 

Well,

 

one could try to use a program named "Super Copy" or just "Copy Programm" by an unknown author (attached here, so one does not have to search for it). This program can load single-stage boot disks and single-stage boot tapes and convert them to *.COM/*.XEX/*.EXE files. But it can also "relocate" the program if a) the program ends with a RUN adress, b) it has only one data segment and c) the program is no longer than 32kbytes. One can find work-arounds to these limitations (e.g. extract one data segment and relocate only this one), but you should know that this program is from 1984 and therefore has all these limitations...

 

Lets imagine, the demo has only one data segment and a RUN adress, then do the following:

1) binary load Super-Copy / Copy-Program without Basic (Basic off!) from a DOS 2.x

2) choose "1) LOAD"

3) choose "Von EXE-File" (load from *.EXE file)

4) type in the filename, e.g. D:BITS1504.XEX (note: use 8 chars. for the filename with D:, use only 7 or less chars with D1: - D9:)

5) when the program has fully loaded choose "2) SAVE"

6) now choose "4) Als FCopy File" (as FCopy file)

7) type in the filename just as you did in point 4); the program is now saved without any COM-headers;

8 ) now do the reverse, choose "1) LOAD"

9) then choose "4) Von FCopy File"

10) type in the filename

11) when the file has fully loaded, choose "2) SAVE"

12) now choose "3) Als EXE-File"

13) type in the filename

 

You may think, why should I first load the program as EXE file, then save as FCopy file, load this FCopy file and finally save as EXE-File again?!? Well, the reason is simple, saving as FCopy file removes the COM-headers and saving finally as EXE-File again, gives new ("relocated") COM-headers or better a new start, end and RUN adress. The start adress generated by Super-Copy is always $1F00, the end adress depends on the length of the program, the RUN adress generated by Super-Copy is always $1F3F - so one can easily load such a file from a DOS or a gamedos.

 

The above list (1-13) seems quite long and complicated at first, but believe me, once you do it, you see that it is really easy. I used and still use Super-Copy quite often when I had/have to relocate emulator files that e.g. use $0400-xxxx or $0700-xxxx and therefore did not work from any DOS or gamedos on the real A8. Quite a lot of files could be loaded successfully afterwards (but there are also cases where Super-Copy fails, maybe this demo is such a case)... just try it out !

 

-Andreas Koch.

 

P.S.: The program is named "SUPCOPY.COM" on the attached image, use joystick or keyboard to choose; START or fire-button to load it...

super_copy.zip

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

@CharlieChaplin: the program seems indeed useful, but, in this one particular case, I don't quite understand, why I have to take all the trouble, when the author didn't bother to make the program startable on Atari. This is the author's task to add the relocator. My task is to report the problem (as I have done above) and delete the binary, that does not work. ;)

Edited by drac030
Link to comment
Share on other sites

Yep correct in this case,

 

but if the author generally is too lazy to relocate a program so it can run on real A8 (e.g. he only uses emulators and does not care about real A8), then with Super-Copy you have a small chance to do it yourself.

 

I have "relocated" many dozens of programs with Super-Copy in the past. It would have been a shame if I always said "program does not run, delete it"; instead I searched for alternatives like a) Super-Copy or b) if that did not work, gently asked Fandal, Homesoft or other Atarians to patch/correct/relocate the program for me...

 

-Andreas Koch.

Edited by CharlieChaplin
Link to comment
Share on other sites

SuperPacker (BeWeSoft) is also useful for "load-first-and-then-copy-to-address" things :-)

 

 

Well,

 

maybe you can explain how that works to a lamer like me ?!? Let`s imagine we have a file that uses $0400 - $6B50 or $0700 - $6E50 and Run adress $0400 / $0700, what are the steps in Super Packer (Bewesoft) to relocate that data and/or the Run adress to another adress (that works with DOS or at least gamedos)...?!?

 

With Super-Copy it is easy, just follow the steps mentioned above (load 2x, save 2x) and you are done.

-Andreas Koch.

Link to comment
Share on other sites

It would have been a shame if I always said "program does not run, delete it"

 

In general case, correct. If a program looks useful, and it does not want to work for me for a decent reason (e.g. old, written for another DOS than I use), then it gets patched and most of the time I can do it myself.

 

But a recent program of the type you mention, i.e. "the author was too lazy" to make it run on almost any Atari, definitely deserves deletion. I think that the development should be painful enough for the author to make the program painless for the user. It is palpably not the case here.

 

Releasing a program which cannot be loaded, especially if it is a demo, i.e. it is not really useful for anyone, and especially if it is done as your hobby (i.e. work of love so to say), seems particularly ... uhm ... far from being morally indifferent.

 

Besides, if the author does not know such a basic thing, that DOS and loaders use the area, or (worse) he is not able himself to write such a simple copying loop, then it seems reasonable to expect, that the program itself is crap as well, right? Good programs usually need much author's experience to develop, and this, again, does not seem the case.

 

PS. I deleted the binary anyway ;) Will wait, not really breathless, for a fixed version.

Link to comment
Share on other sites

SuperPacker (BeWeSoft) is also useful for "load-first-and-then-copy-to-address" things :-)

 

 

Well,

 

maybe you can explain how that works to a lamer like me ?!? Let`s imagine we have a file that uses $0400 - $6B50 or $0700 - $6E50 and Run adress $0400 / $0700, what are the steps in Super Packer (Bewesoft) to relocate that data and/or the Run adress to another adress (that works with DOS or at least gamedos)...?!?

 

With Super-Copy it is easy, just follow the steps mentioned above (load 2x, save 2x) and you are done.

-Andreas Koch.

 

How it works? It's simple. It is packer (li9ke Flashpack, Code cruncher, exomizer etc.), so I when it packs the binary, it has to load somewhere else and then depack to original location and surely you can tell where it should load first (some safe area above $2000 for example).

Link to comment
Share on other sites

maybe you can explain how that works to a lamer like me ?!? Let`s imagine we have a file that uses $0400 - $6B50 or $0700 - $6E50 and Run adress $0400 / $0700, what are the steps in Super Packer (Bewesoft) to relocate that data and/or the Run adress to another adress (that works with DOS or at least gamedos)...?!?

 

I don't know if a lamer can understand this but I'm pretty sure you can!

 

-------------------------------------------

 

* Start-up DOS.

* Load SuperPacker.

* Load your binary (L:Load DOS file)

 

On the left, the loaded segments will appear, showing like:

 

Data 0400-6B50

RUN 0400

End

 

* Use the arrow-keys to select the first Data segment (in this case there's only one)

* Press [A] to Change address

 

The cursor appears at the first character of the address (the first "0" of "0400" in this example)

 

Start to type the (hex) address at where you want to load the binary. (we'll use $3400 so start typing "3400" and this will overwrite the 0400. When the 0400 is overwritten with 3400, press RETURN.

 

Now the first segment on the left will show "Data 3400-9B50".

 

* Use arrow-keys to position cursor to right below the Data segement (in this case "Run 0400" will be highlighted.

* Press [C] (Insert COPY) and a new line will be added right below the Data segment: Copy 0000-0000>0000

* Type the address' to copy.

 

In this case you'll need to end up with "Copy 3400-9B50>0400" so type "3400[RETURN]9B50[RETURN]0400[RETURN]".

 

No need to modify the RUN address as it's not changed.

 

 

On the left you should now have:

 

Data 3400-9B50

Copy 3400-9B50>0400

RUN 0400

End

 

 

* Press to Save and enter the new file name at the D1: prompt.

* Press [RETURN] and you're done.

 

-------------------------------------------

 

This was the most basic example as there was only one Data segment with a single RUN address and we didn't crunch the data. If there are multiple Data segments you need to do all above for every Segment that you want to copy. Place the Copy segments just before the RUN (or INIT) address to be safe.

 

Note 1: This way you can also easily copy data to the area under the O.S.

 

Note 2: In this example the address range conflicts with DOS so there is no way to return to DOS once the Copy routine in SuperPacker has been executed.

 

Note 3: Some binary file's exists of many small segments and sometimes there are too many to fit in SuperPacker. Those files needs some pre-work to patch. I use the SpartaDos commands LOAD, OFFLOAD and SAVE for this to make larger, but less, segments but there are other methods to do this.

 

Note 4: Use safe address' to load the data if it's software that requires DOS routines (usually utils that have load/save/directory features). Use $2000 as the absolute minimum but it's safer to keep that minimum to $2200 or $2400 if possible.

Also, the standard editor screen data resides from $BD00 -> $BFFF. Use $BCFF as maximum address to not scramble the screen. Use $BFFF as absolute maximum. (This is also the default area where SuperPacker has it's buffer located, hence the scrambled screen when a file is packed with SuperPacker using the default settings. As SuperPacker's Depack buffer is located at $0500->$06EF (default) it's not possible the pack our example without changing the default. If you want you can edit this (M:Packer setup) to a safe area, like 9C00-9DEF.

 

 

I hope this little description will do.

  • Like 1
Link to comment
Share on other sites

maybe you can explain how that works to a lamer like me ?!? Let`s imagine we have a file that uses $0400 - $6B50 or $0700 - $6E50 and Run adress $0400 / $0700, what are the steps in Super Packer (Bewesoft) to relocate that data and/or the Run adress to another adress (that works with DOS or at least gamedos)...?!?

 

I don't know if a lamer can understand this but I'm pretty sure you can! (snip!)

 

Yeah,

thank you very much for the detailed explanation, now I finally know how to relocate data-segments to another adress in SuperPacker. I knew there is a function like this implemented in SuperPacker, but I never knew before how to use it... thanks ! This will save me a lot of trouble in the future... -Andreas Koch.

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