Updating info a bit, removing obviously out-dated and confusing info.
This commit is contained in:
parent
4541f38eb1
commit
93e7607541
10
CONTRIB
10
CONTRIB
|
@ -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
|
|
|
@ -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
|
18
DEVELOPER.md
18
DEVELOPER.md
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
AppleCommander has switched to using [Gradle](https://gradle.org/) for build and build dependencies.
|
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
|
## Tests
|
||||||
|
|
||||||
> Note that test currently fail due to dependencies on disk images not present in the repository.
|
> 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.
|
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:
|
* Mac OS X:
|
||||||
`java -XstartOnFirstThread -jar build/libs/AppleCommander.jar`
|
`java -XstartOnFirstThread -jar build/libs/AppleCommander-macosx-VERSION.jar`
|
||||||
|
|
||||||
The build is currently only setup for Mac OS X.
|
|
||||||
|
|
2
HEADER
2
HEADER
|
@ -2,7 +2,7 @@ Attach the following comment to the header of all source files.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* AppleCommander - An Apple ][ image utility.
|
* 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
|
* robgreene at users.sourceforge.net
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
|
|
@ -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
8
TODO
|
@ -2,17 +2,14 @@ THINGS TO DO
|
||||||
============
|
============
|
||||||
This is the internal list of items that need to be done.
|
This is the internal list of items that need to be done.
|
||||||
|
|
||||||
-- 1.3.5 --
|
-- 1.4.0 --
|
||||||
* Migration to GitHub
|
* Migration to GitHub
|
||||||
* Update SWT libraries
|
* Update SWT libraries
|
||||||
|
|
||||||
--- FUTURE ---
|
--- FUTURE ---
|
||||||
o Add binaries to repository to simplify AC development and builds
|
|
||||||
o Create subdirectories as appropriate (ProDOS).
|
o Create subdirectories as appropriate (ProDOS).
|
||||||
o Create reusable show dialog messages (they're scattered all over right now) to clean
|
o Create reusable show dialog messages (they're scattered all over right now) to clean
|
||||||
up code a bit.
|
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 Integer BASIC files.
|
||||||
o Improve file preview for AppleWorks Word Processor files (make implementation
|
o Improve file preview for AppleWorks Word Processor files (make implementation
|
||||||
generic to a Word Processor, if possible).
|
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 RDOS writing capability.
|
||||||
o Add CP/M writing capability.
|
o Add CP/M writing capability.
|
||||||
o Add drag-and-drop 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 Add more information to About box including GPL, TODO, VERSIONS, etc.
|
||||||
o Change disk format.
|
o Change disk format.
|
||||||
o Sector/Block editor.
|
o Sector/Block editor.
|
||||||
|
|
|
@ -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
|
|
|
@ -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 ***
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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 "**********************************************"
|
|
|
@ -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.
|
|
|
@ -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
|
|
||||||
|
|
Loading…
Reference in New Issue