The Brain Board with Wozanium Pack

The Brain Board
See
my firmware board page
for information on a prototype version of this board.
The
brain board is a firmware board for your Apple II/Apple II plus or
Apple IIe computer. The board uses inexpensive and readily available
27c128 or 27c256 PROMs. Because of the denser PROMs used, 6 sockets
are
replaced with one and the resulting size of the board is reduced to
under 3 by 4 inches. The original Apple firmware board was able to
replace motherboard ROM functionality with it’s own
ROM’s.
This allowed an Apple II to have Applesoft in ROM or an Apple II
plus
to have Integer basic in ROM. A softswitch (flip-flop) is included
which allows for switching between the firmware card and motherboard
ROMs through software control. The board also includes a little
known
and seldom used capability that allows multiple firmware cards to
coexist in the same system as long as they are in adjacent slots.
Firmware cards were normally located in slot 0, but they could be
located in any slot.
Later on in time, a 16K ram
(language) card
was developed that had the same functionality, except the
appropriate
BASIC was loaded into the language card from disk when DOS was
booted.
The multiple card support was dropped.
The base
design of the
Brain Board includes all the capability of the Applesoft/Integer
Basic
Firmware ROM board that Apple Computer released around 1978
including:
- a
switch for enable/disable
- a software controlled
switch (soft switch) for changing between motherboard ROMs
- firmware
board ROMs jumper for enabling monitor ROM F8 - this was a
solder pad
jumper in the Apple design
- daisy chain enable
functionality via DMA bus connections for multiple card support
In
addition, I have added several enhancements in order to maximize
usefulness of the board.
- The
modified design will allow booting a ROM-less motherboard into
DOS,
which is not possible with the original firmware board 27C256
PROMs
allow support of two complete ROM images on the Brain Board.
Images of
both Applesoft and Integer BASIC with matching monitors could be
installed and used from the single PROM.
- An extra
soft switch
is used to select whether the high or low half of the PROM is in
use.
This soft switch can be configured by external switch, through
software
control or by jumper.
- The Apple II peripheral bus
I/O select
signal is connected to the lowest 256 bytes of the PROM bank
that is
currently selected by the bank select flip flop. I/O select is
connected to a different address depending upon the slot the
board is
located in. Slot 0 does not have a I/O select signal, so this
feature
cannot be used if the Brain Board is installed in slot 0. The
starting
address for these 256 bytes is computed by multiplying 0x100 by
the
slot number and adding 0xC000. Thus slot 1 is 0xC100, slot 2 is
0xC200,
etc.
Wozanium Pack
The
low bank of the PROM provided with the Brain Board optionally
includes
a special program that will transform your Apple II into a operating
facsimile of an original Apple 1 with 16K of expanded memory. This
expanded memory was an authentic modification made to a number of
original Apple 1s. If the Brain Board is installed in slot 1, you
will
also obtain access to an authentic Apple Cassette Interface (ACI)
driver located at address C100, just like the original Apple 1.
Input
and output to your transformed Apple is now limited to the keyboard,
video and cassette interfaces, also just like an original Apple 1.
Software in PROM is limited to a ported version of the orignal Apple
1
monitor and the latest known version of Apple 1 BASIC (the so called
Huston Basic) which is located at the same address in memory (E000)
as
it would be located at, in an actual Apple 1.
Your
transformed
Apple will be able to run most original Apple 1 assembly and BASIC
programs. Programs must either be keyed in through the monitor or
loaded via the ACI (Apple Cassette Interface). No other options are
standard, though you could add drivers for serial ports or other
expansion cards, if you wished to. More details are provided in the
manual.
Example Wozanium Pack - User
Driver
The
Wozanium Pack provides a capability for user device drivers
for
input and output. Applications that directly access the Apple
1
PIA for keyboard input may or may not access the hooks that are used
to
enable these drivers depending upon how they are implemented.
Here is a simple example driver for the Super
Serial Board
(slot 2 only). This driver should be loaded into locations
6000.
605B using the cassette interface. Once loaded type 6000R to
initialize the driver. Here is an AIF encoded version
of this driver ready for loading onto your digital music player.
PROCESSOR 6502
LIST ON
ACIASTAT
EQU $C0A9
ACIADATA
EQU $C0A8
ACIACMD
EQU $C0AA
ACIACTRL
EQU $C0AB
READVECTOR
EQU $BC02
WRITEVECTOR
EQU $BC04
RETTOMON
EQU $FF1F
ORG $6000
INIT
LDA #$2B
;ODD PARITY, NO ECHO, RTS LOW/W NO INT, IRQ DISABLED, DTR LOW
STA ACIACMD
;
LDA #$3E
;1 STOP BIT, 7 DATA BITS, 9600 BAUD
STA
ACIACTRL ;
;SAVE OLD VECTORS
LDA
READVECTOR
STA READRET
LDA READVECTOR+1
STA READRET+1
LDA WRITEVECTOR
STA WRITERET
LDA WRITEVECTOR+1
STA WRITERET+1
;OVERWRITE VECTORS WITH NEW FUNCTIONS
LDA #<READ
STA READVECTOR
LDA #>READ
STA
READVECTOR+1
LDA
#<WRITE
STA WRITEVECTOR
LDA #>WRITE
STA
WRITEVECTOR+1
JMP RETTOMON
WRITE:
PHA
;SAVE BYTE TO WRITE
WRITE2:
LDA
ACIASTAT ;READ STATUS REGISTER
AND #$10
;TRANSMIT REGISTER EMPTY?
BEQ WRITE2
;WAIT FOR EMPTRY
PLA
;CHARACTER TO WRITE
STA ACIADATA ;WRITE IT
;
RTS
; RETURN, WITHOUT DISPLAY
JMP (WRITERET) ; RETURN, AND DISPLAY
READ2
JMP
(READRET) ;ALLOW KEYBOARD INPUT TO OCCUR
READ
LDA ACIASTAT ;READ STATUS REGISTER
AND #$08
;READ READISTER FULL
BEQ READ2
;NO, WAIT FOR CHAR TO ARRIVE
LDA
ACIADATA ;FETCH CHARACTER
ORA #$80
;SET MS BIT - APPLE 1 ASSUMES THIS
READ3
RTS
;RETURN
WRITERET DC.W 1
READRET
DC.W 1
Video Demo of the Wozanium Pack
See
the first public demo of the "BRAIN BOARD" on my video
podcast #24
http://www.willegal.net/feed.xml
Follow
My Blog Posts Related to the Brain Board/Wozanium Pack
http://www.willegal.net/blog/?cat=14
Brain Board with Wozanium Pack
Assembly and Operations Guide
Click here
to download Version 5.3.1 of the manual in PDF format.
Wozanium Pack Source Code
Build with the 6502 DASM cross assembler.
Use the following command line:dasm a2a1emulv5_1.asm -DBLD4ROMBD=0
-DHUSTNBASIC=0 -oa2a1rbh.o -la2a1rbh.lst
Included
in this zip is
- a1basic-universal.asm
- Apple 1 BASIC modified to run on
Brainboard/Wozanium (note
copyright at beginning of this file)
- COPYING.txt - GNU lincense
- a2a1emulv5_1.asm - Wozanium source code
- a2a1emulv5_1.lst - Listing
- a2a1emulv5_1.o - Object file
- a2a1emulv5_1.rom - 12K rom file that can be used with A2
emulators, such as Virtual II.
Click
a2a1emulv5_1.zip to
download Version 5.1.
Also
included in this zip package, is a ROM file suitable for emulators,
such as Virtual II. This allows you to run and debug Apple 1
software
in the Apple II emulator environment. Just select the .ROM file as
the
ROM for your machine and reset your virtual machine. Just as in the
Brain Board, right arrow will clear the screen. Using the
emulated cassette interface built into Virtual II, you can download
AIF
files of A1 basic and assembly language programs and run them in
your
emulated Apple II. Note that this ROM version does not include
the ACI driver at C100, so you must enter the cassette driver by
entering “D000R”, instead.
Obtaining
Your Own Brain Board Kit
Sorry, but all the Brain Boards have been sold and I don't intend to
make more. You can use the schematics and firmware listing to
make your own with almost any Apple II prototyping board.