August 31st, 2010

GSBarndoor accelerator update — beta within two months

Bill Martens posted the following to the csa2.announce group:

The following message came from the BrainSystems team this morning:

We are pleased to announce that the GSBarndoor team has been hard at work and is moving right along on the GSBarndoor accelerator project. Within the next two months, we will be contacting certain individuals within the Apple II community that have the technical expertise to Beta test our progress thus far. Stay tuned and be sure to check your email boxes, as it could be you. For more information on the project, check out

We checked the site and aside from the update we’ve reposted here, there isn’t anything obviously new — no information or pictures yet from the secretive, Wonka-esque development team.

August 30th, 2010

KFest 2011 – Go Back in Time

The Original Time Master ][ Revealed at KFest 2010

We made Contact. Come to Kansas City next July and Make 2011 become 20][ – Experience a Blast from the Past! – You never know what you’ll see.

KansasFest 2011 – You’ve got ][ Be there! – 19-24, July – 2011 – Rockhurst University, Kansas City.

August 27th, 2010

Datanetics Keyboard reproduction PCB announced

Prolific reproduction enthusiast Mike Willegal is bringing his talents to the Datanetics Keyboard. See Mike’s announcement (attached) for details.

The Datanetics keyboard was the most common keyboard used with an Apple 1. You can see several of them in photos of original Apple 1. I am working on a reproduction Datanetics PCB.

There were several versions of the Datanetics keyboard. In fact early Apple II keyboards were made by Datanetics and have basically the same design as the Datanetics keyboard. The version of the original Datanetics keyboard that I am working on is the Rev B.

This board has no solder mask or silkscreen, so it looks rather primitive. Parts are extremely hard to find, especially the MM5740/AAE keyboard encoder. Keyswitches are also nearly impossible to find, except by parting out early Apple II Plus keyboards. Keycaps are another problem, though the Apple II plus keyboards used similar keycaps. Because of this parts problem, I am planning on building only 1 batch of probably 10-20 PCBs. My current plan is to sell only bare PCBs, and the purchaser will have to deal with finding components.

If you are interested in obtaining one of these bare PCBs, let me know, The artwork for the PCB is nearly done, so I may be pulling the trigger on this batch fairly soon. What I can’t sell right away, I might possibly try moving on ebay. At this time, I’m thinking of a price of around $75 to $100 for one of these bare PCBs. This is subject to change.

A couple of things about this PCB:

1) there is an error on the original PCB, that requires a couple of cuts and a jumper. I’m leaving this error in my reproduction.

2) The matrix of vias in the upper left corner of the PCB should not have plated through holes. Plating some holes and not others results in a special order that costs extra time and money. In order to save money, I have decided to have the holes made plated and also drilled smaller than the original. In order to make this board work, the plating will need to be drilled out of these holes.

Speaking of components, the stiffeners are kind of a unique problem for me, because I haven’t had to deal with sheet metal fabrication, since junior high school. If one of you has experience with sheet metal fabrication, let me know — we can possibly work out some kind of special deal for you.

A picture of an original Rev B and some information about it, including schematics and the dimensions of the stiffeners can be seen on the datanetics keyboard page on my website.

If you are interesting in this project let me know, so I can build the right number of boards to suit demand.

Mike Willegal

August 24th, 2010

AppleWin 1.18.2 available

Wayne Arthurton noticed AppleWin 1.18.2 has been posted to the BerliOS developer site. AppleWin is the leading 8-bit Apple II emulator for Windows operating systems.

EDIT: we blinked, and suddenly AppleWin 1.19.0 was available.

August 20th, 2010

CFFA3000 second prototype assembled

Rich Dreher posted an 08/18/10 progress update on the CFFA3000. The news is excellent so far with the new card “working as expected”, but Rich says there’s more testing yet to done. The improved CFFA will add floppy disk emulation with disk image support for .nib, .dsk and .2mg currently in the works and other undisclosed “goodies”.


If you’re interested in the CFFA3000 (who wouldn’t be?), send Rich an e-mail so he can gauge the demand for this new card.

August 20th, 2010

A2RetroSystems Uthernet cards in stock

As of August 19th, the popular A2RetroSystems Uthernet card is back in stock and available for ordering. Uthernet cards tend to sell out fast — if you want one (or two), I wouldn’t wait too long.

August 17th, 2010

Some Assembly Required: Incremental Progress

In this installment, we’re going to continue to learn more about the three primary registers in the 6502 processor (accumulator, X, and Y). We’ll also create our first simple subroutine.

You can [Download not found] for this program.


Before we do anything else, let’s take a moment to talk about comments. Comments are text in your source code that are human-readable, intended to help you remember what your code is doing (and so others can read your code more easily).

There are two formats for comments. Comments starting with a semicolon (“;”) can be placed stand-alone on a line of code, or can be at the end of any line of code. Comments starting with an asterisk (“*”) can only be placed on a line by themselves. In both cases, the comment extends from the character that starts the comment to the end of the line.

We’ve been using these already, but it just occurred to me that I haven’t actually talked about them yet, so there you go.

Our First Subroutine

Let’s start by creating our first subroutine. This simple routine just takes the value in the X register and prints it to the screen, followed by a carriage return. We’ve used the PRBYTE and CROUT firmware routines in the past, so we won’t dwell on them.

Let’s look at the code:

* xcr
* Prints the byte in X then a carriage return.
xcr      start
         txa                            ;Copy X to A
         jsr   PRBYTE                   ;Print the byte in A
         jsr   CROUT                    ;Print CR
         rts                            ;Return to caller

The first thing this code does is use the implied mode instruction TXA (Transfer X register to Accumulator) to copy the value in the X register into (believe it or not) the accumulator. We do this because the PRBYTE firmware routine prints the value in the accumulator, but we want to use the X register in this case.

Then we call CROUT to output a carriage return, and use RTS to return to the caller.

Incrementing and Decrementing

A very common operation is the need to add or subtract one from a number. For this reason, the 6502 has special instructions just for that purpose. This time, we’re going to look specifically at incrementing and decrementing the index registers.

The INX (INcrement X register) and INY (INcrement Y register) instructions add one to the value of the respective registers. Similarly, DEX (DEcrement X register) and DEY (DEcrement Y register) subtract one from these registers.

Let’s take a look at a code sample:

* Demo increment and decrement

         ldx   #$00                     ;Start with zero
         jsr   xcr                      ;Print it
         inx                            ;Increment X
         jsr   xcr                      ;Print it
         dex                            ;Decrement X
         jsr   xcr                      ;Print it
         dex                            ;Oooh, now what?
         jsr   xcr                      ;Print that

We start by setting the X register to zero and calling our xcr routine to print that value to the screen.

Then we increment X and print the resulting value (in this case, $01).

Then we decrement X and print the result again (this time, $00).

Now, let’s see what happens when you decrement the X register again. The result is $FF (255). That’s right, they wrap around. if you then incremented X again, the result would wrap back to $00.

This is called carry, and it’s similar to what you do when you’re doing addition and subtraction by hand. You have to carry the result from one column to the next when adding or subtracting by hand; similarly, when doing math byte by byte, you have to carry the result from one byte to the next.

We’ll be looking in more detail as to how the carry bit works and how to perform multi-byte mathematics later.

Next Time

Next time, we’re going to apply this knowledge about incrementing and decrementing values to build our first loop to repeat an operation several times until the desired result is achieved.

August 11th, 2010

Happy Birthday Steve Wozniak

Today, Apple co-founder, hacker, inventor and all-around good guy Steve Wozniak turns 60 years old.

Happy Birthday Woz!

August 9th, 2010

Treasure Chest Project returns

Willie Yeo announced via usenet group comp.sys.apple2, the recovery and ressurection of the Treasure Chest Project web site. The TCP is dedicated to finding copyright owners of vintage media and securing permission to legally distribute them again.

August 9th, 2010

T2A2: Apple II transputer interface

Axel Muhr wrote in to share information about his new Apple II transputer interface, T2A2. Axel has included a super fast Mandelbrot demonstration video, example code and other interesting bits. Check it out.

« Previous Entries | Next Page »