Replica 1 TE

Replica 1 TE improvements (2008)

  • Apple 1 compatible 44 pin slot
  • Apple 1 compatible 44 pin edge connector
  • Bread board area for hobby experiments
  • Elimination of jumpers
  • Improved video display using Parallax Propeller (works with most TV’s and monitors)
  • No need for Apple 1 slot adapter because Apple 1 slot now onboard as well as original replica 1 connector
  • User firmware updates. User can download firmware updates and install. No need to send in for new chips.

The use of the Propeller instead of the ATMega IC’s makes the TE more compact, it handles video and PS/2 interfacing.

Replica 1 TE Setup and users Manual
Replica 1 TE schematic

Downloads:
Replica 1 TE CD


post

Another Junior build by Philippe Roca

Another Junior build! By philippe Roca. Faithful reproductions, including EPROM 2708 and PROM 82S33 programmers.

Photos and gerbers of some PCB. Work in progress, I hope to see more photos and Gerbers!

post

Junior by Philippe Roca

Philippe Roca sent me photos and Gerber PCB files from his Junior system.

From scratch, reading the original Elektor articles, he designed and built a complete Junior system.

Faithfull to the original and with even the ‘problem’ parts such as the 2708 EPROM on the main PCB and the 82S33 PROM on the interface card. For those devices he built programmers!

Still working on building and testing (January 2021), here photos and Gerbers of finished and working cards.

Junior


Interface card

Programmers

PCB’s

Gerbers download

Junior PCB gerber
Display print gerber
Power supply gerber


CFFA1

CFFA1 – CompactFlash Interface for Apple 1
R&D Automation

The CFFA1, designed and sold by Rich Dreher adds a mass storage device to the Apple 1, clones and the Replica’s. And also 32K SRAM storage is possible, which is meaningful for the Apple 1, the Replica’s have already RAM extended. The firmware is in a EEPROM which can be reprogrammed in place from the Apple 1. Check Rich Dreher’s site for availability.


CFFA1 Manual 1.0
CFFA1 Manual 1.1
CFFA1 QuickStart 1.0.pdf

Downloads:
CFFA1 cdrom V1.0: manuals, diskimages, firmware, utilities
CFFA1 cdrom v1.1
V1.0 Support such as Flash the EEPROM and the API source V1.0
ULTIMATE APPLE1 CFFA 3.2 disk image
ULTIMATE APPLE1 CFFA 3.3 disk image

Some disk images with Apple 1 software are in the CDROM archives.
The Ultimate disk images contain all knwon Apple 1 programs, basic programs, Applesoft for Apple 1, Forth, Microchess, EHBasic, Krusader and much more.
Reading and writing of disk images is possible with the excellent Ciderpress program.

The CFAA1 is accessed via a menu driven program or via an API.

9000R
9000: 4C

 CFFA1 MENU (1.0)
 ----------
 C - CATALOG      P - PREFIX
 L - LOAD         N - NEW DIRECTORY
 S - SAVE (BASIC) W - WRITE FILE
 R - RENAME       D - DELETE
^F - FORMAT       T - TERSE
 B - READ BLOCK   M - MEMORY DISPLAY
 Q - QUIT

CFFA1>

CFFA1 API (see the CDROM v1.1 for the V1.1 API)

]
;------------------------------------------------------------------------------
; CFFA1_API.s  Version 1.0 - 05/22/2007
;
; Equates for calling the CFFA1 API -- Firmware version 1.0 ($01)
;------------------------------------------------------------------------------

CFFA1_ID1           = $AFFC   ; contains $CF when CFFA1 card is present
CFFA1_ID2           = $AFFD   ; contains $FA when CFFA1 card is present

FirmwareVersion     = $01

;------------------------------------------------------------------------------
; Entry points to the CFFA1 firmware:
;
; MenuExitToMonitor
;   JMP here to display the CFFA1 menu.
;   Quit puts the user into the monitor.
;
; MenuExitToBASIC
;   JMP here to display the CFFA1 menu.
;   Quit puts the user into BASIC.
;
; Menu
;   JSR here to display the CFFA1 menu.
;   Quit returns control to your code.
;
; CFBlockDriver
;   JSR here to read or write a block, after setting up pdCommandCode
;   and other inputs (see below).
;   Result:  CLC, A = 0
;            SEC, A = error code
;
; CFFA1_API
;   JSR here to call one of many functions provided by the firmware.
;   See "Function selectors for CFFA1_API" below.
;
;------------------------------------------------------------------------------
MenuExitToMonitor   = $9000
MenuExitToBASIC     = $9003
Menu                = $9006
CFBlockDriver       = $9009
CFFA1_API           = $900C


;------------------------------------------------------------------------------
; Inputs for CFBlockDriver - ProDOS block interface locations
;------------------------------------------------------------------------------
pdCommandCode       = $42     ; see below
pdUnitNumber        = $43     ; always set this to 0 for firmware 1.0
pdIOBufferLow       = $44
pdIOBufferHigh      = $45
pdBlockNumberLow    = $46
pdBlockNumberHigh   = $47

;
; Values for pdCommandCode
;
PRODOS_STATUS       = $00
PRODOS_READ         = $01
PRODOS_WRITE        = $02
PRODOS_FORMAT       = $03


;------------------------------------------------------------------------------
; Function selectors for CFFA1_API.
;
; Load one of these values into X:
;
;    ldx #CFFA1_xxxxx
;    jsr API
;
; Result:  CLC, A = 0
;          SEC, A = error code
;
; Certain functions have additional outputs, as described below.
;
;------------------------------------------------------------------------------
;
; CFFA1_Version:
;   Output: X = current firmware version
;           Y = oldest compatible firmware version
;
; CFFA1_Menu:
;   Result: Runs the CFFA1 menu and returns when the user chooses Quit.
;
; CFFA1_DisplayError:
;   Input:  A = an error code
;   Result: Prints out a carriage return, the 2-digit hex error code,
;           and a description of that error, if available.
;
; CFFA1_OpenDir:
;   Input:  None (operates on the current prefix directory)
;   Result: Prepares for one or more calls to ReadDir.
;
; CFFA1_ReadDir:
;   Setup:  You have to call OpenDir before calling ReadDir.
;   Result: If no error, EntryPtr points to the next occupied directory entry.
;
; CFFA1_FindDirEntry:
;   Input:   Filename = name to search for
;   Result:  If no error, EntryPtr points at the found item's directory entry.
;
; CFFA1_WriteFile:
;   Input:  Filename = name for new file (will be replaced if it already exists)
;           Destination = starting address
;           FileSize = number of bytes to write
;           Filetype = type for new file
;           Auxtype = auxiliary type for new file
;
; CFFA1_ReadFile:
;   Input:  Filename = file to read into memory
;           Destination = starting address ($0000 to use the file's Auxtype value)
;
; CFFA1_SaveBASICFile:
;   Input:  Filename
;
; CFFA1_LoadBASICFile:
;   Input:  Filename
;
; CFFA1_Rename:
;   Input:  OldFilename = original name
;           Filename = new name
;
; CFFA1_Delete:
;   Input:  Filename = file or empty directory to delete
;
; CFFA1_NewDirectoryAtRoot:
;   Input:  Filename = name for new directory
;
; CFFA1_FormatDrive:
;   Input:  Filename = name for new volume
;           A = drive number (always set to 0 for firmware 1.0)
;           Y = $77 (just to help avoid accidental formatting)
;   Result: Disk volume is erased and given the specified name.
;
;------------------------------------------------------------------------------
CFFA1_Version            = $00
CFFA1_Menu               = $02
CFFA1_DisplayError       = $04

CFFA1_OpenDir            = $10
CFFA1_ReadDir            = $12
CFFA1_FindDirEntry       = $14

CFFA1_WriteFile          = $20
CFFA1_ReadFile           = $22
CFFA1_SaveBASICFile      = $24
CFFA1_LoadBASICFile      = $26
CFFA1_Rename             = $28
CFFA1_Delete             = $2A
CFFA1_NewDirectoryAtRoot = $2C
CFFA1_FormatDrive        = $2E


;------------------------------------------------------------------------------
; Zero-page inputs and results for API functions
;
; Filename and OldFilename point to strings that begin with a length byte (from
; 1 to 15), and each character must have its high bit off.  For example:
;
;    Filename   = $80     $280: 05  48  45  4C  4C  4F
;    Filename+1 = $02              'H'  'E' 'L' 'L' 'O'
;------------------------------------------------------------------------------
Destination         = $00                   ; 2 bytes
Filename            = Destination+2         ; 2 bytes
OldFilename         = Filename+2            ; 2 bytes
Filetype            = OldFilename+2         ; 1 byte
Auxtype             = Filetype+1            ; 2 bytes
FileSize            = Auxtype+2             ; 2 bytes
EntryPtr            = FileSize+2            ; 2 bytes


;------------------------------------------------------------------------------
;
; ProDOS low-level return codes
;
;------------------------------------------------------------------------------
PRODOS_NO_ERROR      = $00    ; No error
PRODOS_BADCMD        = $01    ; Bad Command (not implemented)
PRODOS_IO_ERROR      = $27    ; I/O error
PRODOS_NO_DEVICE     = $28    ; No Device Connected
PRODOS_WRITE_PROTECT = $2B    ; Write Protected
PRODOS_BADBLOCK      = $2D    ; Invalid block number requested
PRODOS_OFFLINE       = $2F    ; Device off-line
;
; High-level return codes
;
eBadPathSyntax       = $40
eDirNotFound         = $44
eFileNotFound        = $46
eDuplicateFile       = $47
eVolumeFull          = $48
eDirectoryFull       = $49
eFileFormat          = $4A
eBadStrgType         = $4B
eFileLocked          = $4E
eNotProDOS           = $52
eBadBufferAddr       = $56
eBakedBitmap         = $5A
eUnknownBASICFormat  = $FE
eUnimplemented       = $FF


;------------------------------------------------------------------------------
; ProDOS directory entry structure offsets
;------------------------------------------------------------------------------
oFiletype           = $10
oKeyBlock           = $11
oBlockCount         = $13
oFileSize           = $15
oCreateDateTime     = $18
oVersion            = $1C
oMinVersion         = $1D
oAccess             = $1E
oAuxtype            = $1F
oModDateTime        = $21
oHeaderPointer      = $25

oDirLinkPrevious    = $00
oDirLinkNext        = $02
oVolStorageType     = $04
oVolVersion         = $20
oVolAccess          = $22
oVolEntryLength     = $23
oVolEntriesPerBlock = $24
oVolFileCount       = $25
oVolBitmapNumber    = $27
oVolTotalBlocks     = $29

;
; ProDOS Storage types
;
kSeedling           = $10
kSapling            = $20
kTree               = $30
kExtended           = $50
kDirectory          = $D0
kSubdirHeader       = $E0
kVolume             = $F0
kStorageTypeMask    = $F0

;
; Filetypes
;
kFiletypeText       = $04
kFiletypeBinary     = $06
kFiletypeDirectory  = $0F
kFiletypeBASIC1     = $F1
kFiletypeBAS        = $FC
kFiletypeSYS        = $FF

;------------------------------------------------------------------------------
; end of CFFA1_API.s
;------------------------------------------------------------------------------

Replica 1 SE

The only Replica 1 I have is the 2006 Replica 1 SE.

This version is the Second Edition, a polished version of the original Replica 1.
Again with the ATX power connector, but also with alternative ways of power supply.
Note that using an Apple II keyabord requires power supply via the ATX method, due to +/- 12V required.
One Apple 1 slot in a 40 pin connector format.
In the 8K ROM the Apple 1 Integer Basic, the WOZ monitor and the Krusader assembler IDE is placed. Documentation and other files are supplied on CD again.

At this time the two slot expanders to real apple 1 slots were available, the slot expander has to be connected via a 40 pin flatcable.
The first card available (but withdrawn due to reliability problems) was the replica Apple 1 cassette board.
The second is the Multi I/O board.
The CFFA1 also appeared at this time, giving mass storage facilities.

Replica 1 SE Setup and Users Manual 2006
Replica 1 SE Setup and Users Manual 2007
Replica 1 SE Schematic
Replica 1 SE CD


Video on PAL monitorsThe Replica 1 SE might have trouble with some video monitors, especially in 50 Hz/Europe countries. Look with a scope at the composite video signal, it is much too low amplitude, a wonder the monitors did sync after all.
The video monitor has a 75 ohm load. In parallel with the 100 ohm R3 this was giving a too low amplitude to let the monitor sync fast enough.As a dirty hack clip the R3 resistor off and the video becomes stable on many monitors. But not on all!


post

A-ONE replica

I have a A-one extended. Beautiful system, well designed and build. A-ONE hardware design: Franz Achatz , Video controller Software: San Bergmans, Keyboard controller Software: Ben Zijlstra

SB-Projects, San Bergmans’ description of the working of the Apple 1 and all about the A-ONE

The A-ONE is a compact and high quality Apple 1 replica made and designed in the Netherlands by Achatz Electronics. Similar, but not identical to the Apple 1 Replica 1. Advantages are the small board size and low IC count,, 50 Hz and 60 Hz rock solid video, and the real Apple 1 slot.

Specifications:

  • CPU: MOS TECHNOLOGY 6502
  • System-Clock: 1 MHz
  • RAM Memory: 32KB SRAM
  • ROM Memory: 32KB (64KB EPROM, selectable are two banks)
  • Video: 40 Chars/line at 24 Video-lines 50Hz and 60Hz
  • Video Out: Composite positive Video, 75 Ohms
  • Keyboard: PS/1 Keyboard interface
  • RS232: 9-pin SubD Female, 2400 Bd
  • Expansion: 2×22 Edge Connector
  • Powersupply: recommended is single universal AC-DC Adapter
  • Voltage: DC 9-12VDC
  • Supply Current: 250 mA
  • PCB Size: 160 x 100mm

A-ONE Extended

The A-ONE Extended is a standard A-ONE with additional a large breadboard and three Apple 1 slots. Together with the breadboard prototype board this make it quite an impressive system to develop hardware for 6502 systems!

A-one

A-one extended

A-one extended


A-ONE manual 1.10
A-ONE manual 1.10
Elektuur announcement
A-ONE flyer
A-ONE terminal description by San Bergmans
Jumpers:
JP1: Video 50/60Hz
JP2: MemoryMap (see Manual)
JP3: H-A14 = 65C02 CPU
     A14-L = 6502 CPU

Downloads

A-ONE extensions

Since the Apple 1 slot is standard, it must be possible to use the Apple 1 and Replica 1 extensions, such as the CFFA1 and the multi-I/O board on the A-ONE. It will need a A-One slot to Apple 1 slot onnection, perhaps via one of the prototype boards.

Working with the A-ONE extended becomes even more a pleasure with the prototype boards sold by Achatz Electronics.

A-ONE

A-ONE

A-ONE information

The design of the A-ONE is well documented and open: see the excellent website of San Bergmans

Photos of my A-ONE Extended



Photos of the development


Replica 1, first version

The first Replica 1 is just called “Replica 1”.

The Replica 1 is as simple as can be, to make an Apple 1 look-a-like. CPU (65(C)02), SRAM (62256 32K), EEPROM 28C64 8K), clck (1 MHz can oscillator) is as expected, as is the 6821 PIA for I/O.
Keyboard input is original also, just an ASCII parallel keyboard, like the Apple 2 keyboard.

The video circuit, quite complicated in the original design, is replaced with a programmable ATMEGA8 with a 74LS166 shift register.

As an extra and optional a serial I/O board for Revision C  is used to also allow a PS/1 keyboard as keyboard input. Made with a ATMEGA8515. The serial I/O board can also be used on the original Apple 1! There was also a Revision B with the serial I/O integrated on the main PCB, see the photos below.


The Apple 1 expansion slot is replaced with a 40 pin connector, with the same signals at the same position but mechanically incompatible with the Apple 1.

The WOZmon monitor and Apple 1 Integer Basic are burned into the EEPROM.

The announcement by Vince Briel on Applefritter in 2005:

The Briel Computers Replica 1 is a fully functional clone of the Apple 1 © computer created by Steve Wozniak in 1976 that started Apple Computers ©. The Replica 1 is available as a kit that you solder all the components onto the circuit board, or preassembled.

A new circuit layout was done to implement a more simple circuit and replace older no longer available IC’s. This new design allows for a smaller board yet still gives all the functionality of the original design. Just like the Apple 1, the keyboard and power supply are not included. Simply add your own PC 386-Pentium© class power supply, a composite TV or monitor and a PS/2 keyboard or Apple II© style ASCII keyboard and you are set.

The serial I/O board is a unique design made to work with both the Replica I and the Apple 1. It is a piggy-back board that goes in the 6821 socket and is transparent to the computer. With this design anything that goes to the video display is sent to the serial I/O board and anything that comes in through the serial I/O is treated like a keystroke. This method reduces the speed of the I/O board to 2400bps but gives the advantage of being able to save BASIC programs as a text file. No setting switches or running software required. Just install it, set up Hyper Terminal, connector your serial cable (not included) and your all set.

Revision B

Replica 1 Setup and Users Manual
Revision C January 2005
Replica 1 Serial I/O board
Setup and Install Manual January 2004
Replica 1  Circuit Diagram
Replica 1 firmware source Replica 1  keyboard encoder
Video Rev C
Serial I/O

Hardware bug

There is a hardware bug that may occur on the replica 1 boards. It causes occasional dropped characters from the display. There is a fairly easy fix but it does require soldering.
Requirements: .01uF ceramic disc capacitor, soldering iron (25W preferred) and solder.
Locate the chip labeled 74LS04 on the circuit board. Pin 3 is on the side that is closer to the edge of the board. Pin 14 is on the other side of the chip top pin.
So, the pins are labeled as follows:

|(74LS00 is here on the board)
|
|
|74LS04
|
|__8_____7
|__9_____6
|_10_____5
|_11_____4
|_12_____3*
|_13_____2
|*14_____1
|
|----- this is the edge of the board
|
|----------- 6821 is here on the board
|

Pin 1 and 14 are closer to the 6821. Connect the ceramic capacitor on the bottom of the board to pins 3 and 14. Make sure the capacitor doesn’t touch any of the other pins on the chip. This will eliminate all dropped characters.

Revision B has the serial I/O on the main PCB

   

post

Replica 1 Briel

The beginnings
In 2003 Vince Briel, working with Tom Owad, got the idea to design an Apple 1 replica. He looked at the Apple 1 circuit and took the easy parts: the 6502 and 6821, RAM, ROM.
The dificult part is the video circuit with hard to get parts and replaced that with a ATMega processor. He also added a PS/1 keybaord input and combined that with the parallel keyboard input circuit. The result was a functional replica of the Apple 1 on real hardware.
Vince then started Biel computers elling Replica 1 kits and assembled boards. Many revisions followed, hundreds were sold. The latest incarnation, the Plus, is still for sale, not by Vince who stopped in 2015, but by ReactiveMicro. The Brielcomputers support website and forums are still online.
My experience with the Replica 1 begin with the Replica 1 SE in 2007, the same period Vince made the Micro-KIM

What you can find here:

Some photos of prototypes of the Replica 1:

Vince Briel looking proud of the working prototype!


Apple 1 Replica Creation Back to the Garage
Tom Owad’s book on the Apple 1, the Replica, electronics and much more.

You can read the book online at Applefritter or buy a cheap PDF version.

On the companion Cd you will find an early PCB design by Tom working with Vince. Here the circuit diagram.

Apple 1 Replica design by Vince, drawn by Tom Owad

Micro-KIM RAM, EPROM and Expansion boards

Optional add-ons to make the Micro-KIM a real KIM-1, with the second 6530/32 and a 32K RAM card to give enough RAM to run real programs like KB9 Basic.

The expansion connector is made for this. With the expansion board up to four cards can be added.

A 40 pins male connector. Pin 1 is labeled on the board and is near the edge at the upper-left corner
of the connector.

Here he description of the expansion connector. Also see the Circuit diagram.

1 and 40 two pins for ground to give proper grounding to optional expansion boards.
2 VCC, this is a 5V signal which powers the circuit
3-14, 31-38 CPU address lines A0-A15 used to address memory or devices
11 R/W read/write signal. Low when writing, high when reading memory
12-15, 26-29 CPU data bus. Used to transfer data to/from RAM/EPROM or devices
16 Sync. This signal goes high during when an instruction is being fetched for the CPU
17 NMI. Non-Maskable Interrupt signal to the CPU. Active low to generate
18 DEN, Onboard memory decode Enable line.
Control the enabling of the onboard memory
19 IO3 is the pre-decoded signal for the 2nd optional 6532.
Attach to CS1 pin 38 on 6532
20 PHI1 Phase 1 clock signal. 180 degrees from phase 2
21 IRQ Interrupt request signal. Active low generates an IRQ.
22 PB7 is I/O port pin PB7 from 6532 required to complete cassette interface
23 SST Single step signal used to control CPU with single step
24 TAPE this signal is used to complete the cassette interface.
25 RDY used to stop the CPU in single step circuit
30 PHI2 phase 2 main clock signal to the 6502
39 RESET 6502 RESET line, when pulled low will reset the 6502

32K RAM

Circuit diagram of memory expansion

Second EPROM
The Micro-KIM is already prepared for a second 6532. The ROM for it is in place, the address decoding is also available. This card brings the second 6532 with the free I/O and timers to connector.

The revision I have needs a wire to connect the missing ground line to the 74LS04 (tip from azog, Silent Q).

Expansion motherboard

With two expansion boards, both quite essential as shown above and one expansion connector, is not enough.
So the expansion board brings the expansion connector to four connectors, just one on one connected.
As you can see on the Cassette interface for the Micro-KIM page this makes for interesting additions.
The expansion board can be placed in two ways. The first way iverhanging the Micro-KIM for a compact solution. Or hanging outside, which makes attaching wires to expansion boards less risky. Always take care of the right orientation of the expansion boards, notice the ‘1’ on the baords and the exapnsion connector on the Micro-KIM.


post

Cassette interface for the Micro-KIM


(information and design by Norbert).

Cassette interface for the Micro-KIM.

With small changes Norbert took the circuit described in the 3rd book of Elektor Junior computer. The +12 V problem he solved taking a LT1073 dc/dc converter to generate this voltage. Everything is working fine: Micro-KIM is connected to the soundcard of the computer to store and reload programs.

N39 is needed because there is not a port present or reachable on the Micro-KIM board, so it takes 1/4 74LS01. With a pullup resistor of 3k9 connect the unused inputs to +5V, so the whole thing will not oscillate.
For the +12 V generation a LT1073 CN8-5 was used. The diagram is shown on page 12 of http://www.datasheetcatalog.com/datasheets_pdf/L/T/1/0/LT1073.shtml (5V to 15V Step-Up Converter). It is important to use exactly the values of the resistors (metal oxid series) shown there. The LT1073 CN8-5 is presently still available for 4,20? at www.reichelt.de . They also have got the LT1073 CN8, but it did not work in this context. The no-load voltage measured at the output of the LT1073 is much higher (arround +40V) than the desired +12V. But with load it reduces to about +11.8 V and remains constant there. A 12V/1W zener diode protects the 12V output of the LT1073.