From 999190e0dd5beca8cee765e52cd7fb6d4a260f4c Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Wed, 12 May 2010 23:33:15 +0200 Subject: system/atari800_os++: Added to 12.2 repository --- system/atari800_os++/README | 27 +++++++++++ system/atari800_os++/README.atari800 | 23 +++++++++ system/atari800_os++/atari800_os++.SlackBuild | 49 +++++++++++++++++++ system/atari800_os++/atari800_os++.info | 8 +++ system/atari800_os++/omit_checksum.diff | 70 +++++++++++++++++++++++++++ system/atari800_os++/slack-desc | 19 ++++++++ 6 files changed, 196 insertions(+) create mode 100644 system/atari800_os++/README create mode 100644 system/atari800_os++/README.atari800 create mode 100644 system/atari800_os++/atari800_os++.SlackBuild create mode 100644 system/atari800_os++/atari800_os++.info create mode 100644 system/atari800_os++/omit_checksum.diff create mode 100644 system/atari800_os++/slack-desc diff --git a/system/atari800_os++/README b/system/atari800_os++/README new file mode 100644 index 0000000000..c9ec751ac8 --- /dev/null +++ b/system/atari800_os++/README @@ -0,0 +1,27 @@ +OS++ is an Open Source rewrite of the ROM operating system for the Atari +XL/XE 8-bit computers, capable of running many games and other programs for +the Atari. + +OS++ also includes its own DOS, which is capable of running most +disk-based software that works with Atari DOS 2.0S. OS++ DOS is only +booted if the disk image in drive 1 is not bootable, so it won't conflict +with bootable DOS disks. + +OS++ is written in 6502 assembler. You will need cc65 installed to build +this package (though not to run it). cc65 is available at SlackBuilds.org + +This version of OS++ has been slightly modified to work with the Atari800 +emulator. See /usr/doc/os++-20070109/README.atari800 for more information. + +If you have the SlackBuilds.org atari800_roms and atari800_os++ packages +installed, you can adjust the symlink at /usr/share/atari800/atarixl.rom +to choose which OS will run (or, edit ~/.atari800.cfg, or run atari800 +with the -xlxe_rom option). + +Note: OS++ only replaces the OS ROM. If you want to run BASIC programs, +you will still need an Atari BASIC image, or a freeware/PD BASIC +interpreter such as Turbo BASIC XL. + +If you'd rather use the original ROMs, install atari800_roms instead +of this package (or in addition to it, and change the symlink at +/usr/share/atari800/atarixl.rom as desired). diff --git a/system/atari800_os++/README.atari800 b/system/atari800_os++/README.atari800 new file mode 100644 index 0000000000..1d03af498d --- /dev/null +++ b/system/atari800_os++/README.atari800 @@ -0,0 +1,23 @@ + +This copy of OS++ has been slightly modified to allow it to work with +the Atari800 emulator. Specifically, Atari800 patches the operating +system ROM to support high-speed emulated disk I/O. Unfortunately, +when this is done, OS++'s checksum routines correctly detect that the +ROM checksum doesn't match, and the OS doesn't start. + +The *correct* way to fix this is to make Atari800's ROM patch actually +update the stored checksum after patching. For Atari800 2.1.0 and +previous, the workaround is to replace OS++'s checksum calls with NOPs, +which is what's been done to this copy of OS++ (future versions of +Atari800 will hopefully have proper support for OS++) + +Note that OS++ only works correctly with Atari800 if the emulator's +high-speed SIO patch is enabled. Without the fast SIO patch, OS++ can't +read the emulated disk drives. Most likely, this is due to Atari800 not +emulating the hardware 100% perfectly. + +Also, this is documented elsewhere, but worth a mention here, too: OS++ +does not include BASIC! Machine language programs normally don't call +the BASIC cartridge, so they will be unaffected. If you want to be able +to run BASIC without using the copyrighted Atari BASIC ROM, try the +excellent public domain Turbo BASIC XL. diff --git a/system/atari800_os++/atari800_os++.SlackBuild b/system/atari800_os++/atari800_os++.SlackBuild new file mode 100644 index 0000000000..6716bac0cb --- /dev/null +++ b/system/atari800_os++/atari800_os++.SlackBuild @@ -0,0 +1,49 @@ +#!/bin/sh + +# Slackware build script for OS++ + +# Written by B. Watson (yalhcru@gmail.com) +# Modified by the SlackBuilds.org project. + +PRGNAM=atari800_os++ +VERSION=${VERSION:-20080924} +ARCH=noarch # actually it's m6502 :) +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +SRCNAM=os++ +PRGDIR=osrom + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGDIR +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $PRGDIR +chown -R root:root . + +patch -p1 < $CWD/omit_checksum.diff +make osdist OMIT_CHECKSUM=1 + +mkdir -p $PKG/usr/share/atari800/$PRGNAM +cp osdist $PKG/usr/share/atari800/$PRGNAM/os++.rom + +( cd $PKG/usr/share/atari800; ln -s $PRGNAM/os++.rom atarixl.rom ) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp README.* $PKG/usr/doc/$PRGNAM-$VERSION +cp $CWD/README.atari800 $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz diff --git a/system/atari800_os++/atari800_os++.info b/system/atari800_os++/atari800_os++.info new file mode 100644 index 0000000000..a5cca99e5c --- /dev/null +++ b/system/atari800_os++/atari800_os++.info @@ -0,0 +1,8 @@ +PRGNAM="atari800_os++" +VERSION="20080924" +HOMEPAGE="http://www.math.tu-berlin.de/~thor/atari++/" +DOWNLOAD="http://slackbuilds.org/sources/12.2/os++-20080924.tar.gz" +MD5SUM="5375b169767e930641e21d992c86ae21" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" +APPROVED="dsomero" diff --git a/system/atari800_os++/omit_checksum.diff b/system/atari800_os++/omit_checksum.diff new file mode 100644 index 0000000000..640f6a085e --- /dev/null +++ b/system/atari800_os++/omit_checksum.diff @@ -0,0 +1,70 @@ +diff -Naur osrom/makefile osrom.patched/makefile +--- osrom/makefile 2008-09-05 17:51:11.000000000 -0400 ++++ osrom.patched/makefile 2009-04-17 19:58:05.000000000 -0400 +@@ -23,6 +23,9 @@ + CC = cc + DIR = osrom/ + ++ifdef OMIT_CHECKSUM ++ AFLAGS+=-DOMIT_CHECKSUM ++endif + + OSSOURCES = charmap intlmap \ + kernel reset nmi irq diskinterf sio cio misc \ +@@ -43,7 +43,7 @@ + + rom850 : prehandlerrom1 prehandlerrom2 reloc loader + @ $(ECHO) "Preparing the loader relocatable" +- @ reloc prehandlerrom1 prehandlerrom2 relocation ++ @ ./reloc prehandlerrom1 prehandlerrom2 relocation + @ dd if=loader count=1 bs=256 conv=sync | cat - relocation > boot850 + @ rm loader relocation prehandlerrom2 + @ cp prehandlerrom1 rom850 +@@ -51,7 +51,7 @@ + osrom : prerom checksum + @ $(ECHO) "Combining ROM sources..." + @ cp prerom osrom +- @ checksum osrom ++ @ ./checksum osrom + + # + # Use the following make target for the official os++ distribution +@@ -59,7 +59,7 @@ + osdist : prerom checksum + @ $(ECHO) "Combining ROM sources..." + @ cp prerom osdist +- @ checksum osdist ++ @ ./checksum osdist + + prerom : $(OSOBJECTS) $(INCLUDES) $(OSCONFIG) + @ $(ECHO) "Linking..." +@@ -88,7 +88,7 @@ + %.dump : % bintohex + @ $(ECHO) "Converting" $* "to" $*.dump + @ echo "unsigned char" $*"[] = " >$*.dump +- @ bintohex <$* >>$*.dump ++ @ ./bintohex <$* >>$*.dump + + checksum: checksum.c + @ $(ECHO) "Compling the checksum program" +diff -Naur osrom/romtest.asm osrom.patched/romtest.asm +--- osrom/romtest.asm 2006-05-21 11:23:11.000000000 -0400 ++++ osrom.patched/romtest.asm 2009-04-17 19:58:54.000000000 -0400 +@@ -18,8 +18,17 @@ + + .segment "RomTest" + ++ .ifdef OMIT_CHECKSUM ++ nop ++ nop ++ nop ++ nop ++ nop ++ nop ++ .else + jmp RomSumLo + jmp RomSumHi ++ .endif + jmp VectorInit + + ;; imported for internal use only diff --git a/system/atari800_os++/slack-desc b/system/atari800_os++/slack-desc new file mode 100644 index 0000000000..eef5564cd4 --- /dev/null +++ b/system/atari800_os++/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +atari800_os++: atari800_os++ (open source replacement for Atari XL/XE OS) +atari800_os++: +atari800_os++: OS++ is an Open Source rewrite of the ROM operating system for the +atari800_os++: Atari XL/XE 8-bit computers, capable of running many games and other +atari800_os++: programs for the Atari. +atari800_os++: +atari800_os++: +atari800_os++: +atari800_os++: +atari800_os++: +atari800_os++: -- cgit v1.2.3