Hi Simon, thanks a lot for the reply.
simonsunnyboy wrote:Well most autobooting demos and games do that. Use TOS as a simple BIOS to load the first bootsector and user whatever code from that to boot a custom kernel to takeover the machine.
Yes, I thought it myself, but this means that the TOS is still loaded, right? I mean, my friend was "challenging" with the idea of using the machine with a complete different OS. Like if TOS wasn't there at all. Like if somebody stole your TOS chips
A normal PC comes with the BIOS in ROM. Whit the BIOS routines the OS is loaded. This can be MS DOS 3.30, windows 95, Windows XP, Linux, Free BSD etc.
The first ST had also only BIOS in ROM, the rest of the OS was loaded from floppy. See this thread: http://www.atari-forum.com/viewtopic.php?f=8&t=18457
. The modern ST's have the complete OS in ROM but you can still boot a new OS from a floppy, like MiNT of Magic or Linux on Falcon or TT. Also most demos completely bypass all ROM OS routines after the boot sector is executed. When TOS tests for an executable bootsector only the BIOS is active, just like on a PC. You can actually remove 4 from the 6 ROM chips and the Atari can still execute the boot sector. You can not remove all ROM chips but neither can you do so on a PC. The BIOS is essential for booting.
However it is not too hard to rewrite everything on an Atari ST, including the BIOS. That would be like replacing the standard ROM with some new ones you created yourself. To do that on a PC would be a lot harder because you need to know about the chip set that is used on the motherboard. Compared to that the hardware of the ST is very well documented.
Making a bootable floppy disk is a bit harder on the ST. Instead of ending with $55 $AA a bootable disk on the Atari has a check sum of $1234. Just add all 256 words of the boot disk and make sure their sum is $1234. To make the same boot sector as in your example you need to do:
Code: Select all
bra.s hang will compile into $60FE. $60FE + $B136 = $1234.
Normally the last two bytes are filled with the value $1234 - SUM(other 255 words) to make the boot sector executable. But you can put this fix value at any position you like except for the first word.