Updating info a bit, removing obviously out-dated and confusing info.

This commit is contained in:
Rob Greene 2018-03-02 13:32:36 -06:00
parent 4541f38eb1
commit 93e7607541
12 changed files with 47 additions and 282 deletions

10
CONTRIB
View File

@ -1,10 +0,0 @@
AppleCommander - An Apple ][ image utility.
Copyright (C) 2002-2007 by Robert Greene and others
robgreene at users.sourceforge.net
Code contributed from:
* John B. Matthews M.D.
- many bug fixes
* Chris Sebrell
* Hans Otten
- information regarding Pascal text file format

17
CONTRIB.txt Normal file
View File

@ -0,0 +1,17 @@
AppleCommander - An Apple ][ image utility.
Copyright (c) 2002-2018 by Robert Greene and others
robgreene at users.sourceforge.net (should still be functional)
Note that user history was lost in the transition from CVS at SourceForge to Git at GitHub.
Entirely my fault. :-/
Code contributed from:
* John B. Matthews M.D.
- many bug fixes, enhancements, and brought us the `ac` goodness!
* Chris Sebrell
* Hans Otten
- information regarding Pascal text file format
* David Schmidt
* iKarith
* Lisias
- Infinite loop detection

View File

@ -2,6 +2,8 @@
AppleCommander has switched to using [Gradle](https://gradle.org/) for build and build dependencies.
There is still a bunch of ANT related build information around. They no longer apply and "should" get cleaned up over time.
## Tests
> Note that test currently fail due to dependencies on disk images not present in the repository.
@ -21,9 +23,17 @@ BUILD SUCCESSFUL in 2s
This will create the `build` directory and populate with an uber-jar.
To launch AppleCommander, use the following:
To run the command-line version of AppleCommander, use the following:
* All platforms:
`java -jar AppleCommander-ac-VERSION.jar`
To launch the GUI version of AppleCommander, use the following:
* Linux:
`java -jar AppleCommander-linux64-gtk-VERSION.jar`
* Windows:
`java -jar AppleCommander-win64-VERSION.jar`
* Mac OS X:
`java -XstartOnFirstThread -jar build/libs/AppleCommander.jar`
The build is currently only setup for Mac OS X.
`java -XstartOnFirstThread -jar build/libs/AppleCommander-macosx-VERSION.jar`

2
HEADER
View File

@ -2,7 +2,7 @@ Attach the following comment to the header of all source files.
/*
* AppleCommander - An Apple ][ image utility.
* Copyright (C) 2002-2007 by Robert Greene and others
* Copyright (C) 2002-2018 by Robert Greene and others
* robgreene at users.sourceforge.net
*
* This program is free software; you can redistribute it and/or modify it

14
README.md Normal file
View File

@ -0,0 +1,14 @@
# Overview
Contributions welcome!
Please see [AppleCommander site](https://applecommander.github.io) for more details.
[Developer information](DEVELOPER.md) has some details useful if you wish to update AppleCommander.
Some information is still out of date on the AppleCommander site...
* Obviously, we have moved to Github. :-)
* Binaries are in the release tab.
* Mac OS X users may want to visit [lifepillar's homebrew tap](https://github.com/lifepillar/homebrew-appleii) for retro goodness.
* Libary releases to the Maven repository are currently manual and may be a bit delayed.

8
TODO
View File

@ -2,17 +2,14 @@ THINGS TO DO
============
This is the internal list of items that need to be done.
-- 1.3.5 --
-- 1.4.0 --
* Migration to GitHub
* Update SWT libraries
--- FUTURE ---
o Add binaries to repository to simplify AC development and builds
o Create subdirectories as appropriate (ProDOS).
o Create reusable show dialog messages (they're scattered all over right now) to clean
up code a bit.
? Compile of BASIC programs
? Enhance the BASIC compiler with a few more commands...
o Improve file preview for Integer BASIC files.
o Improve file preview for AppleWorks Word Processor files (make implementation
generic to a Word Processor, if possible).
@ -26,9 +23,6 @@ o Change layout of DiskExplorer window to not be tabbed. Information could/shou
o Add RDOS writing capability.
o Add CP/M writing capability.
o Add drag-and-drop capability.
o Provide a Swing GUI so people are not "limited" to SWT. This may be tossed; although
it may side-step the MAC OS X issue with SWT not behaving properly. (Alright, with
AppleCommander not behaving correctly. Just wish I knew what the problem was!!)
o Add more information to About box including GPL, TODO, VERSIONS, etc.
o Change disk format.
o Sector/Block editor.

View File

@ -1,9 +0,0 @@
This zip file contains all the required files for AppleCommander.
Just unzip to a directory and double-click on AppleCommander.exe!
This has been tested only on Windows XP but should run on Windows 98,
Windows NT, Windows 2000, and Windows XP.
Have fun!
-RobGreene at users.sourceforge.net

View File

@ -1,63 +0,0 @@
If you install libswt-gtk using the distribution's package manager,
launch AppleCommander using a script such as this:
#!/bin/sh
java -Djava.library.path=/usr/lib/jni \
-cp /usr/lib/java/swt-gtk-3.5.1.jar:AppleCommander-1.3.5.11.jar \
com.webcodepro.applecommander.ui.AppleCommander -swt
This is a highly experimental Linux GTK compile of AppleCommander. This version does
not require Java nor does it require the SWT distribution - it is compiled into a
native Linux executable.
To launch AppleCommander:
$ cd <AppleCommander directory>
$ ./applecommander.sh
Let me know if this works for you.
Thanks!
RobGreene at users.sourceforge.net
Items of note:
1. The graphics libraries that AppleCommander use are either in a Sun JVM or
in JDK 1.4.x - neither of which GCJ supports. All graphics options are
disabled (if they aren't, they certainly won't do anything). Yes,
GraphicsFileFilter.java was hacked to bits for this part.
2. The libraries that GCJ requires are listed here. My Linux/Unix is rusty
enough that I have no clue if they are standard or not:
$ ldd AppleCommander
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40023000)
libgcj.so.3 => /usr/lib/libgcj.so.3 (0x4002c000)
libm.so.6 => /lib/i686/libm.so.6 (0x40612000)
libz.so.1 => /usr/lib/libz.so.1 (0x40634000)
libdl.so.2 => /lib/libdl.so.2 (0x40642000)
libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40645000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
3. I do not have the full GTK development environment. Thus, the two *.so
libraries that are distributed and the need to launch AppleCommander from
applecommander.sh to setup LD_LIBRARY_PATH.
4. For those interested, I have build files (not Makefiles) that will be
posted in the build subdirectory of the AppleCommander source files on
SourceForge.net. Note that the copy of SWT source that I obtained from
eclipse.org had pieces that would not compile -
* org.eclipse.swt.custom.DisplayRenderer.java
Added the following explicit import:
import org.eclipse.swt.custom.StyledText.LineCache;
Not sure - this may be a GCJ issue.
* org.eclipse.swt.custom.TableCursor.java
Changed "void traverse(...)" to "boolean traverse(...)" and added
returns to return the same value as "event.doit". This is because
the method that is over-ridden returns a boolean - so this class
could/should never have compiled before, right?
* org.eclipse.swt.internal.gtk.GtkSelectionData.java
* org.eclipse.swt.internal.gtk.GtkTargetEntry.java
Both of these classes were "mangled". I basically had to replace/fix
the newline character through the file.
*** END ***

View File

@ -1,27 +0,0 @@
#!/bin/bash
# This script will build the AppleCommander executable. Make sure that the
# SWT library (swt.a) is available - see build-swt-linux-gtk if this needs
# to be built.
# The SWT jar files are required as well as the AppleCommander jar file.
# Additionally, the SWT *.so files will be required to run AppleCommander.
# Last but not least, the image files are required by AppleCommander and
# are expected to be in the same directory as Java would expect them to
# be in - but you can remove all the other class or java files.
DIR=$(pwd)
CLASSPATH="$DIR/swt.jar:$DIR/swt-pi.jar:$DIR/AppleCommander-1.1.1b.jar"
FLAGS="-O3"
mkdir obj
cd obj
rm *.o
find ../com -name "*.java" -exec gcj --classpath=$CLASSPATH $FLAGS -c {} \;
cd $DIR
rm applecommander.a
ar r applecommander.a obj/*.o
gcj $FLAGS --main=com.webcodepro.applecommander.ui.AppleCommander \
-o AppleCommander applecommander.a swt.a

View File

@ -1,76 +0,0 @@
#!/bin/sh
exec >$0.log 2>&1
APPLECOMMANDER_FILES=$(cd com; \
find . -name "*.java" -not -name "*Test.java" -not -name "ImageIoImage.java" \
-not -name "SunJpegImage.java" -print |
sed 's#^\./#com/#')
OPTS="-static -O3 --no-bounds-checking -funroll-loops -finline-functions \
-fkeep-inline-functions -malign-double"
echo "**********************************************"
echo "** COMPILING **"
echo "**********************************************"
echo
for i in $APPLECOMMANDER_FILES
do
OBJ_FILE=$(echo $i | sed 's/\//_/g' | sed 's/\.java$/\.o/')
echo Compiling $i to $OBJ_FILE
gcj --classpath="AppleCommander.jar" $OPTS -g0 -c -o $OBJ_FILE $i
done
echo "**********************************************"
echo "** RESOURCES **"
echo "**********************************************"
echo
for i in $(ls com/webcodepro/applecommander/ui/images/*.gif \
com/webcodepro/applecommander/storage/*.dump \
com/webcodepro/applecommander/storage/os/prodos/*.properties)
do
FILENAME=$(basename $i)
OBJ=$FILENAME.o
echo Compiling resource $i
gcj -c --resource=$i -o $OBJ $i
done
echo "**********************************************"
echo "** BUILD EXE **"
echo "**********************************************"
echo
gcj -s -fjni -mwindows --classpath="AppleCommander.jar" $OPTS \
--main=com.webcodepro.applecommander.ui.AppleCommander \
-o AppleCommander *.o
echo "**********************************************"
echo "** CLEAN **"
echo "**********************************************"
echo
rm *.o
echo "**********************************************"
echo "** STRIPPING EXE **"
echo "**********************************************"
echo
strip -x AppleCommander.exe -o AppleCommander-strip.exe
# Only run UPX if it is on the command path:
UPX=$(type -p upx)
if [ "$UPX" ] && [ -x $UPX ]
then
echo "**********************************************"
echo "** PACKING EXE WITH UPX **"
echo "** (will need to choose the smallest exe..) **"
echo "**********************************************"
echo
upx --best --crp-ms=999999 --nrv2b -o AppleCommander-strip-nrv2b.exe AppleCommander-strip.exe
upx --best --crp-ms=999999 --nrv2d -o AppleCommander-strip-nrv2d.exe AppleCommander-strip.exe
upx --best --crp-ms=999999 -o AppleCommander-strip-upxbest.exe AppleCommander-strip.exe
upx -o AppleCommander-strip-upxdefault.exe AppleCommander-strip.exe
fi
echo "**********************************************"
echo "** DONE!! **"
echo "**********************************************"

View File

@ -1,61 +0,0 @@
#!/bin/sh
###############################################################################################
# Note: It is expected that the source tree has been unzipped.
# Note: swt.jar is required for the build. It also must be unzipped for the properties file.
###############################################################################################
# StyledText somehow confuses GCJ. According to the message discussion, moving
# StyledText.java out of the build path fixes everything.
# http://gcc.gnu.org/ml/java/2003-04/msg00270.html
# This copies StyledText out and compiles it independantly.
#
echo Performing special compile for StyledText.java ...
cp org/eclipse/swt/custom/StyledText.java StyledText.java
gcj -fjni -g0 -c --classpath=swt.jar StyledText.java
###############################################################################################
# We need to ensure the image-related stuff gets loaded.
#
echo >SWTImageLoaders.java <<EOF
package org.eclipse.swt.internal.image;
public class SWTImageLoaders
{
static
{
GIFFileFormat x = new GIFFileFormat();
PNGFileFormat y = new PNGFileFormat();
JPEGFileFormat z = new JPEGFileFormat();
WinBMPFileFormat q = new WinBMPFileFormat();
WinICOFileFormat p = new WinICOFileFormat();
}
}
EOF
gcj -fjni -g0 -c --classpath=swt.jar SWTImageLoaders.java
###############################################################################################
# Compile everything else...
#
SWT_SOURCE=$(find . -name "*.java" -not -name "StyledText.java" -print | sed 's/^\.\///')
for i in $SWT_SOURCE
do
OBJ_FILE=$(echo $i | sed 's/\//_/g' | sed 's/\.java$/\.o/')
echo Compiling $i to $OBJ_FILE
gcj -fjni -g0 -c -o $OBJ_FILE $i
done
gcj -c --resource=org.eclipse.swt.internal.SWTMessages \
-o SWTMessages.o org/eclipse/swt/internal/SWTMessages.properties
###############################################################################################
# Link it all and clean up.
#
echo Creating libswt.a
ar -rcs libswt.a *.o
ranlib libswt.a
echo Cleaning up
rm -f *.o
echo Done.

View File

@ -1,24 +0,0 @@
#!/bin/bash
# This script will build a static library of the SWT code. The shared object (*.so)
# files from the Eclipse distribution are still required, however.
# Note that there will likely be modifications required to the given Eclipse code.
DIR=$(pwd)
CLASSPATH="$DIR/swt.jar:$DIR/swt-pi.jar"
FLAGS="-O3"
mkdir obj
cd obj
rm *.o
find ../org -name "*.java" -exec gcj --classpath=$CLASSPATH $FLAGS -c {} \;
for FILE in Callback.java OS.java
do
find ../org -name "$FILE" -exec gcj --classpath=$CLASSPATH \
$FLAGS -fjni -c {} \;
done
cd $DIR
rm swt.a
ar r swt.a obj/*.o