March 31st, 2010

Java for the Apple II, VM02 1.0 announced

After years of dedicated development and testing, David Schmenk announced the release of VM02 1.0 — a Java compatible VM for the Apple II series. With VM02, an entirely new and exciting frontier for application development has just opened up for the Apple II. David’s announcement is attached:

Announcing version 1.0 of VM02, the Java compatible VM for 6502 based Apple II computers. Running on the full line of Apple II computers, from the Rev0 Apple ][ with Integer Basic, to the last-of-the-line Apple //c+, and everything in-between. Most basic features of a Java VM are implemented to allow direct execution of standard Java class files.

Download here:

Screenshots here:

There are a number of packages available to suit different configurations. There are three ShrinkIt archives: the full version supporting floating point numbers and demand memory swapping, a minimal version without floating point or swapping to increase available RAM for machines without an adequate swap device, and a full version with debugging enabled for developers. There are also DSK images available to help with “sneaker-net” installation. VM02.EXTRAS.DO contains all the samples classes and the Character User Interface classes. There are then the 64K and the 128K versions. 140K is just too small to have a combined image, so they have been split apart. The VM02 version is for 64K machines, VM02E is for 128K IIe and IIc machines. These are meant to install on a larger drive, as no ProDOS is included on the image. Finally, there are the minimal versions of VM02 (VM02.MIN.DO) and VM02E (VM02E.MIN.DO) for booting and running on floppy-only machines (ProDOS included on the image). The only difference in these images are the actual VM image, the system classes are identical. To install on a hard drive simply copy the EXTRAS image and the appropriate VM02 image to the same directory.

In order to fit in the constraints of a 64K, 8 bit, 1 MHz computer, some aspects of a JVM have been reduced or removed.

What is missing:

  • 64 bit data types unimplemented
  • Standard class library missing or limited implementation
  • Lots of memory

What is implemented:

  • Standard Java class file loading and execution.
  • Full object inheritence
  • Pre-emptive multithreading (4 threads max by default)
  • Exception handling
  • Arrays up to 15 dimension
  • 32 bit integers and single precision floating point
  • Garbage collection
  • Demand memory swapping to RAM disk or other available volume
  • Finalizers
  • Software and hardware implemented timing
  • Device drivers for common hardware (80 col/mouse/serial/uthernet/graphics tablet)
  • 128K memory support for //e and //c
  • Full access to Apple II platform features

VM02 is implemented from scratch in 6502 assembly, optimized for the 6502 and Apple II platform. The entire VM fits in about 20K of RAM after initialization. This leaves about 30K of RAM available for data and code in the 64K version, or about 32K for data and 44K for bytecode in the 128K version. Not a lot, but Java was defined for small platforms so you can get some reasonable programs even in such a small space.

Performance is acceptable for a 1 MHz, 8 bit CPU; on par with the UCSD p-System VM used in Apple Pascal. As with any memory managed environment, garbage collection can really take its toll on the system. CUI (character user interface) programs will attempt to force some startup garbage collection and memory swapping to improve the initial response of these programs. Java can eat through 32K of RAM in no time. If you think the computer has locked up, a little patience will probably pay off with the resumption of execution. Demand memory swapping on an Apple II isn’t the most brisk operation it can perform; CF disks and RAM disk greatly aid the speed of swapping. Other garbage collection operations involve defragmenting RAM – an accelerator will improve this.

All features of the Apple II are made available through either specific classes, a low-level class that can access ROM routines and memory, or both. A high-resolution graphics page is available for use with small programs. There is a device driver architecture that currently supports 80 column cards, the Super Serial card, and the Apple Mouse card with preliminary support of the Uthernet card and Apple Graphics Tablet. Probing for the Uthernet card can cause problems in some machines with hardware VM02 doesn’t detect. If probing for the Uthernet card causes the machine to hang at VM02 init time, hold down the Open-Apple key (or PushButton 1) during initialization and the Uthernet probe will be skipped.

Swapping from main memory extends the available RAM, dependent on the swap volume. VM02 will automatically take advantage of large hard drives or RAM disks for swap volumes, giving precedence to RAM drives. If you have a RamWorks card, you must load the ProDrive RAM drives. If you have a RamWorks card, you must load the ProDrive RAM drive software before running VM02 in order to use the extra memory. “Slinky” style memory cards are automatically used. IIgs computers should have a RAM disk of 256K or greater to use for swapping. AUX memory in the IIe and IIc computers is used for storing the Java bytecodes, thus freeing up main memory for data.

Class filenames are missing the “.class” suffix due to filename limitations, however the file type of $ED is used to identify class files and are given the type identifier of JVM. System classes are in the JAVA/* subdirectories. Apple II specific classes are found in the APPLE2/ directory. VM02 specific classes are found in the ORG/VM02/* subdirectories.

Included with VM02 are sample classes that show off the capabilities of the environment. They can be executed from the samples disk or copied to another location.

HELLO – A simple text entry program
HELLOWORLD – sample multi-threaded program
MOIRE – Hires example, requires AppleSoft in ROM
HIRESDEMO – Another hires demo
RODSCOLORS – Lores demo
SIMPLEPONG – Lores demo with paddle input
TERMINAL – Simple terminal program using the SSC
VOLUMES – List online volumes
CATALOG – Catalog a directory
LIST – List a text file to the screen
STRESSMEM – Allocate 64K 2D array. Stresses swapping code
TESTSELECT – select() type call using mouse, keyboard, and timeouts
TESTCHAIN – Chain to another class passing parameters and exit status
TESTARP – Send ARP request from Uthernet card
TESTCUI – Show off the CUI’s controls (128K and hard drive install required)

With this release of version 1.0, a file launcher utilizing the character user-interface classes is included to navigate through volumes and directories and execute Java classes. Files of type $ED show up as JVM executable files. Requires 128K IIe or IIc.

You can find more information to read here:



Dave Schmenk
March 31st 2010, 11:59:59 PM

March 26th, 2010

15 years and counting, Juiced.GS still going strong

With the recent announcement of Volume 15, Issue 1 being sent to subscribers, it dawned on me that Juiced.GS has achieved a major milestone — 15 years of continuous print publication — the longest Apple II-centric publication run ever.

Not bad for a magazine dedicated to a vintage, decades-obsolete line of personal computers and the people that still use them. In the age of the Internet, a run like this is extraordinary. Congratulations Juiced.GS!

According to Dr. Steve Weyhrich’s Apple II History site, no other printed magazine or disk publication has made it this far.

14 years – Softdisk (1981-1995)
12 years – Call-A.P.P.L.E. (1978-1990)
12 years – Nibble (1980-1992)
10 years – inCider (1983-1993)
10 years – Open-Apple/A2-Central (1985-1995)
8 years – Apple Assembly Line (1980-1988)
8 years – Micro (1977-1985)
8 years – Softdisk G-S (1989-1997)
6 years – Softside (1978-1984)
6 years – A+ Magazine (1983-1989)
6 years – GS+ (1989-1995)
5 years – Apple IIGS Buyer’s Guide (1985-1990)
4 years – Softalk (1980-1984)
2 years – II Computing (1985-1987)

A2Central thanks the publisher, editors and writers of Juiced.GS for their hard work and dedication in service to the Apple II Community. We wish you many more years of publishing prosperity. Apple II Forever!

March 24th, 2010

Juiced.GS Volume 15, Issue 1 now available

Juiced.GS V15I1Volume 15, Issue 1 (March 2010) of Juiced.GS, the last remaining Apple II publication in print, shipped today to all subscribers. This 24-page issue features a review of the USB and Bluetooth expansion card known as the iDisk; the conclusion to Ivan Drucker’s tutorial on programming in Structured Applesoft; the first in a four-part series on transferring files between the Apple II and other computers; and much more! Also included is a four-page tribute to the late Joe Kohn, which is available online for free.

This is Juiced.GS‘s first quarterly issue of 2010. Annual subscriptions are available for $19 for United States customers and $26 for international customers.

March 24th, 2010

RetroMacCast interviews the Huston Brothers

RetroMacCast interviews the Huston Brothers, former Apple employees from ‘back in the day’ that have recently auctioned off a collection of early Apple prototype hardware and other rare, valuable memorabilia. The interview contains interesting historical anecdotes that may surprise Apple II aficionados — so we won’t spoil the podcast by revealing anything here.

March 19th, 2010

Silvern Castle 9.4 released

Jeff Fink has released version 9.4 of Silvern Castle, a free RPG similar to Wizardry and written almost entirely in Applesoft BASIC.

March 19th, 2010

DigiSoft Innovations releases Apple IIGS Music Collection

DigiSoft Innovations has released the Apple IIGS Music Collection, a free 5 CD compendium of SoundSmith, NoiseTracker and other music formats for your listening pleasure.

March 18th, 2010

Apple //e Functional Test Card

Now and then I come across a piece of Apple II hardware I haven’t seen before and want to learn more about, or an item so rare and interesting that you can’t help but appreciate for it’s historical or collectible value.

Today, courtesy of my friend James Littlejohn, we’re looking at the Apple //e Functional Test and Slot Test cards, circa 1982. They are a set, which included an assortment of cables and software that Apple service technicians used to test and diagnose Apple //e motherboards. The especially nice thing about this kit, is that it is complete; all the hardware, cables and a copy of the software and technical procedures are in the box.

Apple //e Functional Test Card

Apple //e Functional Test Card

Apple //e Slot Tester

Apple //e Slot Tester

I’m betting that even if the cards and software are still functional, they might be of limited use on any Apple II other than the original, un-enhanced Apple //e. The software would likely balk at the enhanced ROMs of a newer machine. Still, it might be fun to try them out and see what happens.

I’ve attached a PDF of the Technical Procedures (10 pages) for anyone curious about it.

March 18th, 2010

“Lost” Dharma II Plus replica on eBay

Take an otherwise unremarkable Apple II Plus, put some stickers on it that make it resemble the Dharma computer from the popular television series “Lost” and viola… you have the makings for a clever way to potentially get a little extra moolah out of that plain old machine.

March 17th, 2010

ADTPro 1.1.5 released

With the release of ADTPro 1.1.5, Laser 128 and Franklin 500 users get support for their built-in serial ports (among other enhancements). David Schmidt’s full announcement is attached:

A little help here for our clone friends: the Laser 128 can now go full throttle at 115.2kbps, and the Franklin Ace 500 correctly auto-selects its modem port. The included DOS ADT program is similarly enhanced, though experiments are still ongoing there for nibble copying. I also implemented the main idea behind Oliver Schmidt’s LOADER.SYSTEM to eliminate the need for a BASIC program selector, significantly speeding up boot and launch. Side benefit: Apple ][s with 64k and no Applesoft in ROM now run without any modification/renaming of files. I left BASIC.SYSTEM on the distribution diskette so as to not sentence everyone to ProDOS selector jail when you leave ADTPro.

Release 1.1.5 – March 17, 2010

New functionality:

* [Client] Implemented native assembly ProDOS selector/launcher eliminating the need for Applesoft; resulting in 30% faster booting and executing from floppy

* [Client] Laser 128 machines can now use their native modem port at 115.2kbps using the SSC port 2 setting

Bug fixes:

* [Client] Better automatic serial device detection for Franklin Ace 500 computers (select Modem vs. Printer port)

March 16th, 2010

Early Apple prototypes and products on eBay

Mike Willegal wrote in about Dick and Cliff Huston, two brothers who worked at Apple (employees 25 and 27) from 1977 to mid 1984. The Huston Brothers are auctioning off a collection of early prototypes on eBay. You can learn more about each item and it’s authenticity at Cliff Huston’s web site.

« Previous Entries | Next Page »