mirror of
https://github.com/Alex-Kw/Brain-Board-II.git
synced 2024-12-22 08:29:33 +00:00
263 lines
13 KiB
HTML
263 lines
13 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<html>
|
||
<head>
|
||
<!-- saved from url=(0035)http://www.willegal.net/appleii.htm -->
|
||
<title>Brain Board</title>
|
||
<meta http-equiv="Content-Type" content="text/html;
|
||
charset=windows-1252">
|
||
</head>
|
||
<body>
|
||
<h1 align="center">The Brain Board with Wozanium Pack</h1>
|
||
<h1 align="center"><a
|
||
href="file:///Users/mwillega/Documents/personal/web/willegal.net/appleii/Brainboard-assembled.jpg"><img
|
||
style="border: 0px solid ; width: 800px; height: 554px;"
|
||
alt="The Brainboard" src="Brainboard-assembled.jpg"
|
||
hspace="10" width="800" height="554" vspace="10" border="0"></a></h1>
|
||
<h3>The Brain Board</h3>
|
||
See my <a href="appleii-fwboard.htm">firmware board page</a> for
|
||
information on a prototype version of this board.<br>
|
||
<br>
|
||
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.<br>
|
||
<br>
|
||
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.<br>
|
||
<br>
|
||
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:<br>
|
||
<ul>
|
||
<li>a switch for enable/disable</li>
|
||
<li>a software controlled switch (soft switch) for changing
|
||
between motherboard ROMs</li>
|
||
<li>firmware board ROMs jumper for enabling monitor ROM F8 - this
|
||
was a solder pad jumper in the Apple design </li>
|
||
<li>daisy chain enable functionality via DMA bus connections for
|
||
multiple card support</li>
|
||
</ul>
|
||
In addition, I have added several enhancements in order to maximize
|
||
usefulness of the board.<br>
|
||
<ul>
|
||
<li>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.</li>
|
||
<li>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.</li>
|
||
<li>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.<br>
|
||
</li>
|
||
</ul>
|
||
<div style="text-align: center;"><big><br>
|
||
</big>
|
||
<h3 style="text-align: left;">Wozanium Pack</h3>
|
||
</div>
|
||
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.<br>
|
||
<br>
|
||
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.<span style="font-weight:
|
||
bold;"><br>
|
||
<br>
|
||
</span>
|
||
<h3><span style="font-weight: bold;">Example Wozanium Pack - User
|
||
Driver</span></h3>
|
||
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 <a
|
||
href="serial6000.605BR_6000R.aif">AIF encoded version</a> of this
|
||
driver ready for loading onto your digital music player. <br>
|
||
<br>
|
||
<small><small> PROCESSOR 6502<br>
|
||
LIST ON<br>
|
||
ACIASTAT EQU $C0A9<br>
|
||
ACIADATA EQU $C0A8<br>
|
||
ACIACMD EQU $C0AA<br>
|
||
ACIACTRL EQU $C0AB<br>
|
||
<br>
|
||
READVECTOR EQU $BC02<br>
|
||
WRITEVECTOR EQU $BC04<br>
|
||
RETTOMON EQU $FF1F<br>
|
||
<br>
|
||
ORG $6000<br>
|
||
<br>
|
||
INIT<br>
|
||
LDA #$2B
|
||
;ODD PARITY, NO ECHO, RTS LOW/W NO INT, IRQ DISABLED, DTR LOW<br>
|
||
STA
|
||
ACIACMD ;<br>
|
||
<br>
|
||
LDA #$3E
|
||
;1 STOP BIT, 7 DATA BITS, 9600 BAUD<br>
|
||
STA
|
||
ACIACTRL ;<br>
|
||
<br>
|
||
;SAVE OLD VECTORS<br>
|
||
LDA READVECTOR<br>
|
||
STA READRET<br>
|
||
LDA READVECTOR+1<br>
|
||
STA READRET+1<br>
|
||
<br>
|
||
LDA WRITEVECTOR<br>
|
||
STA WRITERET<br>
|
||
LDA WRITEVECTOR+1<br>
|
||
STA WRITERET+1<br>
|
||
<br>
|
||
;OVERWRITE VECTORS WITH NEW FUNCTIONS<br>
|
||
LDA #<READ<br>
|
||
STA READVECTOR<br>
|
||
<br>
|
||
LDA #>READ<br>
|
||
STA READVECTOR+1<br>
|
||
<br>
|
||
LDA #<WRITE<br>
|
||
STA WRITEVECTOR<br>
|
||
<br>
|
||
LDA #>WRITE<br>
|
||
STA WRITEVECTOR+1<br>
|
||
JMP RETTOMON<br>
|
||
<br>
|
||
WRITE:<br>
|
||
PHA
|
||
;SAVE BYTE TO WRITE<br>
|
||
WRITE2:<br>
|
||
LDA
|
||
ACIASTAT ;READ STATUS REGISTER<br>
|
||
AND #$10
|
||
;TRANSMIT REGISTER EMPTY?<br>
|
||
BEQ
|
||
WRITE2 ;WAIT FOR EMPTRY<br>
|
||
PLA
|
||
;CHARACTER TO WRITE<br>
|
||
STA ACIADATA ;WRITE IT<br>
|
||
; RTS
|
||
; RETURN, WITHOUT DISPLAY<br>
|
||
JMP (WRITERET) ; RETURN,
|
||
AND DISPLAY<br>
|
||
<br>
|
||
READ2<br>
|
||
JMP
|
||
(READRET) ;ALLOW KEYBOARD INPUT TO OCCUR<br>
|
||
READ<br>
|
||
LDA ACIASTAT ;READ STATUS
|
||
REGISTER<br>
|
||
AND #$08
|
||
;READ READISTER FULL<br>
|
||
BEQ READ2
|
||
;NO, WAIT FOR CHAR TO ARRIVE<br>
|
||
LDA
|
||
ACIADATA ;FETCH CHARACTER<br>
|
||
ORA #$80
|
||
;SET MS BIT - APPLE 1 ASSUMES THIS<br>
|
||
READ3<br>
|
||
RTS
|
||
;RETURN<br>
|
||
<br>
|
||
WRITERET DC.W 1<br>
|
||
READRET DC.W 1</small></small>
|
||
<h3 style="text-align: left;">Video Demo of the Wozanium Pack</h3>
|
||
See the first public demo of the "BRAIN BOARD" on my video
|
||
podcast #24<br>
|
||
<a href="http://www.willegal.net/feed.xml">http://www.willegal.net/feed.xml</a><br>
|
||
<br>
|
||
<h3>Follow My Blog Posts Related to the Brain Board/Wozanium Pack</h3>
|
||
<a href="http://www.willegal.net/blog/?cat=14">http://www.willegal.net/blog/?cat=14</a><br>
|
||
<br>
|
||
<h3 style="text-align: left;">Brain Board with Wozanium Pack
|
||
Assembly and Operations Guide</h3>
|
||
Click <a href="bb-v5_3.1.pdf">here</a> to download Version 5.3.1 of
|
||
the manual in PDF format.<br>
|
||
<br>
|
||
<h3 style="text-align: left;">Wozanium Pack Source Code</h3>
|
||
Build with the 6502 DASM cross assembler.<br>
|
||
Use the following command line:dasm a2a1emulv5_1.asm -DBLD4ROMBD=0
|
||
-DHUSTNBASIC=0 -oa2a1rbh.o -la2a1rbh.lst<br>
|
||
Included in this zip is<br>
|
||
<ul>
|
||
<li>a1basic-universal.asm - Apple 1 BASIC modified to
|
||
run on Brainboard/Wozanium (note copyright at beginning of this
|
||
file)</li>
|
||
<li>COPYING.txt - GNU lincense</li>
|
||
<li>a2a1emulv5_1.asm - Wozanium source code</li>
|
||
<li>a2a1emulv5_1.lst - Listing</li>
|
||
<li>a2a1emulv5_1.o - Object file</li>
|
||
<li>a2a1emulv5_1.rom - 12K rom file that can be used with A2
|
||
emulators, such as Virtual II.</li>
|
||
</ul>
|
||
Click <a href="a2a1emulv5_1.zip">a2a1emulv5_1.zip</a> to download
|
||
Version 5.1.<br>
|
||
<br>
|
||
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.<br>
|
||
<h3>Obtaining Your Own Brain Board Kit</h3>
|
||
I no longer sell Brain Board kits, but you can get your own boards
|
||
made with the design files that can be downloaded. I will
|
||
assume no liability for any use of the files. You are on your
|
||
own. Do be aware of <a
|
||
href="http://www.willegal.net/blog/?p=1880">this grounding issue</a>
|
||
which I never resolved.<br>
|
||
<a href="brainboard-rcva31.zip">download Gerber Files</a><br>
|
||
<a href="brainboardva31.osm">download Osmond PCB Fil</a>e<br>
|
||
<br>
|
||
<br>
|
||
<span style="font-weight: bold;"></span>
|
||
<hr style="width: 100%; height: 2px;"><br>
|
||
<div align="center"><font size="+2"><font size="+2"><a
|
||
href="../../index.htm" target="_top">Back to Mike's Hobby
|
||
Home Page</a> </font></font></div>
|
||
</body>
|
||
</html>
|