Jump to content
IGNORED

Wanted: Tool to copy XL OS to boot disk (or file)


Kyle22

Recommended Posts

I'm looking for a tool similar to the Homemade Translator, but for XL/XE OS. For example, if:

 

I have a custom OS in my computer.

I write a program that makes use of various features in that custom OS (OmniViewXL for example).

I give you that program, and you don't have the OS, you're out of luck.

 

If there is a tool somewhere that copies the OS to disk, then the disk can be booted and the OS installed before booting my program.

 

Does that make sense? (I hope).

 

The soft OS will need to allow a jump $E477 to boot a disk while remaining intact.

 

There must be an existing tool somewhere, but I can't find it.

 

Thanks in advance :)

 

 

Link to comment
Share on other sites

You can't just activate a Ram based OS and JMP $E477.

Problem 1, the Ram detect/clear will keep on going until $CFFF, wiping the bottom part of Rom.

Problem 2, in fact before that even happens, the OS will set PORTB such that the installed Rom is switched back in. And if the Rom is sufficiently different will probably crash at that point if the program flow doesn't go right.

 

What you'd need is a program that loads the image to low Ram then copies it up to high Ram.

Then clear low Ram as if a powerup has just occurred.

Then use a trick to get the new OS to boot a disk:

 

Set CASINI vector to point to your "booter" routine and the BOOT flag (location 9) to 2. Have your "booter" routine then set BOOT flag back to zero. Set COLDST flag to $FF, set the WARMST flag back to zero as well, then RTS.

At that point the OS warmstart continues but the way it works it will see WARMST=00 which will make it attempt a disk boot.

Edited by Rybags
Link to comment
Share on other sites

Thanks. I was hoping that someone had already designed a tool for that, but I may have to do it "the hard way".

 

It wouldn't even need to reboot, it could just load the soft-OS, activate it, then continue loading a binary file appended as another segment to the end of the OS loader. Or, even an AUTORUN.SYS that loads the soft-OS, and chains to a STARTUP.COM file, or something similar.

 

Edit: I admit I am a very slow coder, I have a hard time with debugging, and an existing tool would help a lot. :)

Edited by Kyle22
Link to comment
Share on other sites

A load, copy, activate new OS, contiue load - that would be potentially problematic.

The trouble with switching OS on the fly - stuff like Interrupt vectors in Ram will be different in many cases.

 

The preferred option as I see it - load the image, copy to Ram.

Then give the user the option to just warmstart or reboot.

 

Actually, the whole process is somewhat more complicated than what I posted before. The problem is your booter routine on warmstart has to switch the Ram-based OS back in.

The problem with vectors will be the case equally in that case.

You can't simply switch a Ram-based OS in and warmstart since it'll screw up your PORTB settings plus have problems determining true free Ram amount.

 

Bottom line is - you'd likely need to modify the Rom image somewhat to overcome those problems.

Link to comment
Share on other sites

I'm looking for a tool similar to the Homemade Translator, but for XL/XE OS. For example, if:

 

I have a custom OS in my computer.

I write a program that makes use of various features in that custom OS (OmniViewXL for example).

I give you that program, and you don't have the OS, you're out of luck.

 

If there is a tool somewhere that copies the OS to disk, then the disk can be booted and the OS installed before booting my program.

 

Does that make sense? (I hope).

 

The soft OS will need to allow a jump $E477 to boot a disk while remaining intact.

 

There must be an existing tool somewhere, but I can't find it.

 

Thanks in advance :)

 

 

Here's a link to XL copy os from pigwa.

It copies the xl os to a file suitable to burn an eprom of the xl os.

It doesn't actually make a boot disk of the os, like translator disk, but maybe could be modified.

What you trying to do?

 

 

http://ftp.pigwa.net/stuff/collections/holmes%20cd/Holmes%202/Sources/UTILITES/COPYOS/index.html

Edited by russg
Link to comment
Share on other sites

Here's a link to XL copy os from pigwa.

It copies the xl os to a file suitable to burn an eprom of the xl os.

It doesn't actually make a boot disk of the os, like translator disk, but maybe could be modified.

What you trying to do?

 

 

http://ftp.pigwa.net/stuff/collections/holmes%20cd/Holmes%202/Sources/UTILITES/COPYOS/index.html

 

He gave an example of distributing a software program that relies on a modified OS ROM to work correctly. Since it is not really possible to expect recipients of the software to burn new ROMs and install them in order to use the software program, he would like a way to load the modified OS into the RAM under the ROM temporarily so that his program will work as intended.

  • Like 1
Link to comment
Share on other sites

I posted a few translator goodies a while back to help people make their own translator disks and even demonstrated it would allow cartridges to run when hot swapped.... see if any of that is helpful as it should be..... you will have to adjust what it saves based on the length of the code in the rom..... good luck...

Link to comment
Share on other sites

I posted a few translator goodies a while back to help people make their own translator disks and even demonstrated it would allow cartridges to run when hot swapped.... see if any of that is helpful as it should be..... you will have to adjust what it saves based on the length of the code in the rom..... good luck...

Where'd you post the translator goodies?

I messed around. Using the 'copyos' program, I got $C000-$CFFF, $5000-$5700, $D800-$DFFF and $E000-$FFFF dumps of the XL OS.

It was too simple, but I made a binary load file that loaded the four OS sections into RAM. I don't know how to turn the OS off so this

might work. My .com I made, of course, crashes when I run it.

If I knew how to disable the OS, load in the four sections, and JMP $E477, uh. well.

I guess, if you totally disable the OS, nothing will load.

Here it is, it will just crash, but will try a little.

INPUTOS.zip

Edited by russg
Link to comment
Share on other sites

You'd probably get away without the Self-Test section. A potential problem in any case is that if the OS is disabled, switching in the self-test Rom won't work anyway.

Also in most cases you could go without the FP ROM (could test by checksum). Add to that both character sets which could be copied from the resident Rom to Ram.

That makes for an all up dump requirement of 10K. Of course the assumption is that the target machine has a factory OS or at least one with standard FP package.

 

I had a look at the XL OS. What is a right pain is that all OS versions have an actual vector that's called to initialize the interrupt system but all that does is set the default enable bits.

The vectors are already taken care of beforehand, and the program location that does it is undefined and could be anywhere.

 

What might work though is to also dump out some of that stuff when copying the Rom. The powerup magic numbers (should be the same globally but might be worth keeping) and the Ram-based Interrupt vectors.

All up, probably 50 bytes or so of extra information so not too much bloat.

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