Jump to content

Photo

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

copy os rom bootable

9 replies to this topic

#1 Kyle22 OFFLINE  

Kyle22

    River Patroller

  • 4,097 posts
  • broadway1.lorexddns.net 10001
  • Location:McKees Rocks (Pittsburgh), PA

Posted Sun Feb 7, 2016 7:41 PM

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 :)

 

 



#2 Rybags OFFLINE  

Rybags

    Gridrunner

  • 16,144 posts
  • Location:Australia

Posted Sun Feb 7, 2016 8:51 PM

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, Sun Feb 7, 2016 8:52 PM.


#3 Kyle22 OFFLINE  

Kyle22

    River Patroller

  • Topic Starter
  • 4,097 posts
  • broadway1.lorexddns.net 10001
  • Location:McKees Rocks (Pittsburgh), PA

Posted Sun Feb 7, 2016 9:03 PM

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, Sun Feb 7, 2016 9:04 PM.


#4 Rybags OFFLINE  

Rybags

    Gridrunner

  • 16,144 posts
  • Location:Australia

Posted Sun Feb 7, 2016 9:18 PM

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.



#5 russg OFFLINE  

russg

    Stargunner

  • 1,648 posts
  • Location:Cleveland, Ohio

Posted Mon Feb 8, 2016 12:07 AM

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...PYOS/index.html


Edited by russg, Mon Feb 8, 2016 12:12 AM.


#6 fujidude OFFLINE  

fujidude

    Quadrunner

  • 5,217 posts
  • Location:United States of America

Posted Mon Feb 8, 2016 9:56 AM

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



#7 Kyle22 OFFLINE  

Kyle22

    River Patroller

  • Topic Starter
  • 4,097 posts
  • broadway1.lorexddns.net 10001
  • Location:McKees Rocks (Pittsburgh), PA

Posted Mon Feb 8, 2016 10:00 AM

I'm trying to make a bootable soft-OS OmniView.  If I can find an OmniView 800 ROM, that should work, although I'll probably have to modify a tool such as the homemade translator to include the $C000 block.



#8 _The Doctor__ OFFLINE  

_The Doctor__

    Flux Capacitor Master Craftsman

  • 6,937 posts
  • Location:10-0-11-00:02

Posted Mon Feb 8, 2016 10:10 AM

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



#9 russg OFFLINE  

russg

    Stargunner

  • 1,648 posts
  • Location:Cleveland, Ohio

Posted Mon Feb 8, 2016 5:57 PM

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.

Attached Files


Edited by russg, Mon Feb 8, 2016 6:09 PM.


#10 Rybags OFFLINE  

Rybags

    Gridrunner

  • 16,144 posts
  • Location:Australia

Posted Mon Feb 8, 2016 6:06 PM

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.







Also tagged with one or more of these keywords: copy, os, rom, bootable

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users