Bank Street Laboratory card for the Apple II

12 posts / 0 new
Last post
Offline
Last seen: 1 week 4 days ago
Joined: Nov 21 2008 - 17:41
Posts: 52
Bank Street Laboratory card for the Apple II

I own two revisions of the Bank Street Laboratory card for the Apple II. This card allowed elementary school students to plug in different probes to measure light, temperature and sound; to emit light and sound; and to record and play back an audio waveform.

 

It seems these devices are rare, and not very well documented. I'm wondering if there would be any interest or value in documenting them? If so, please let me know how I should go about it. I'm happy to provide as much info as I can, and I have a little contemporaneous documentation as well. (Ultimately I think it would be exciting to recreate the board with more modern technology so that anyone could build one.)

 

Also I'm hoping someone might have information about the card or the probes themselves. I'm missing the probes for one of them, and I'd like to recreate them in order to re-home it. The probes I have are sealed in resin or epoxy so I can't easily determine how they're assembled. If anyone has info or knowledge of how these are built, I'd appreciate any help—my minimal electronics knowledge is failing me at trying to figure out exactly what's going on inside!

 

Michael

 

Offline
Last seen: 1 month 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
The card looks pretty

The card looks pretty clonable.  It has several uncommon ICs on it but a quick googling shows that the only one that probably is difficult to find is the OKI M6203.   I see the big Hitachi HC46508P on eBay, the MC14xx chips and the LM324N  may even still be in production (show up on regular electronics parts web sites) and the 6522 and the 74LSxxx can be found.

 

The bottom version has a later (c) date so is probably a price reduced verson of the top one.  It looks like they did away with the ribbon cable connector and outside plug board and just wired the RJ cables directly ro the board, squashed the board size down some and eliminated some parts.

 

The top board looks like it would be easier to trace through to make a schematic but probably the bottom one would be a better option to clone from.  Far fewer parts to source and solder and all the harder to find ones are basically the same between the two boards.

 

As for modernizing it, you'd probably want to start by looking at the data sheets for all the specialized parts I mentioned above and see if there are modern equivalents to some of them, especially the harfer to find ones.  A lot of them might be possible to simulate using modern microcontrollers like the Atmega which have multiple analog and digital inputs as well as digital out and PWM to simulate analog outputs.

 

 

 

 

Online
Last seen: 1 hour 52 min ago
Joined: Feb 27 2021 - 18:59
Posts: 601
The bottom version has a

The bottom version has a later (c) date so is probably a price reduced verson of the top one.

No, if you look closely, the last digit in both is "5". The copyright date was not changed with the board design, as sometimes happens. The upper version certainly looks much newer and has newer dated components. Also, the label on the small box/probe in that picture is © 1990 so, if they came as a set, it can't be any older.

I'm really not sure what to make of the M6203. Some PLA or ROM?

Offline
Last seen: 1 week 4 days ago
Joined: Nov 21 2008 - 17:41
Posts: 52
Yes, I think the longer board

Yes, I think the longer board must be the newer one. The "Probe Interface" board goes inside the plastic box, and is connected to the card with a ribbon cable. Also I believe the device was originally sold as part of the Voyage of the Mimi software package and then spun off as its own product, and later released for Windows. (I'd like to see if I can get the card working on other 8-bit computers like the Commodore 64. It seems fairly self-contained, but that's probably a discussion for a new thread.)

 

All of the chips on the long board except the SN74LS112AN flip flop have counterparts on the short board. The short board uses probes with 4-wire RJ11 connectors (which I own but are in storage in another state) while the long board appears to use 8-wire RJ45 ethernet connectors. An RJ11 connector can plug into the RJ45 socket, but I'll need to go get my probes and test if they work with the long board. There may even have been additional probes developed for the RJ45 interface.

 

On the long board, the leftmost chip which can't be read is a (getting out my reading glasses...) It's a Texas Instruments LM324N.

 

Google doesn't seem to turn up any info about the M6203. The chip is described in an article about the Bank Street Laboratory:

"One of the project design goals was to be able to do real-time Fourier analysis. The fastest 256 Point Fourier Transform requires five seconds on an ordinary Apple. We were able to cut this down to 0.5 seconds with a hardware-multiplication chip: the 6203 from Oki Data Systems. Like the Hitachi ADC, the 6203 is new, inexpensive ($7.00 each), and attaches to the Apple I/O bus easily. Figure 2 shows how this can be done with one external gate."

"The OKI 6203 is an 8-bit unsigned multiplier and divider. It can produce a 16-bit product in just a little more than the time required to load the operands and read the results using 6502 machine-language. If you do the sequence right, one No-Op instruction wastes just the time required for the multiplier chip to develop a 16-bit product or quotient."

There's also a short program for the 6203 included with the article and a schematic. Here's the first part of the article for those curious:

PDF iconTinker's Toys-Lessons from Bank Street: Hardware.pdf

 

Long BoardQuantityShort BoardPurpose
LM324N LM324Nop amp
CD4066BEx2MC14066analog switch
65C22 SY6522VIA Versatile Interface Adapter
HD46508PA HD46508PADC Analog Data Acquisition Unit
SN74LS373N DM74LS373NOctal D-Type Transparent Latches and Edge-Triggered Flip-Flop
MC1408P8 MC1408L7DAC digital to analog converter
M6203 M6203multiplier/divider
SN74LS245N DM74LS245NTransceiver Non-Inverting , Bus Transceiver
SN74LS112AN  Flip Flop 2 Element
SN74LS00N MM74C00NLogic Gates Quad 2-In Pos NAND
SN74LS138N SN74LS138NDecoder/Demultiplexer 
Offline
Last seen: 1 month 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
Well, after looking at the

Well, after looking at the above points I think I agree about the longer board being the newer one.

 

The M6203 may be very difficult to find, but as I said the others are probably all obtainable.  The functions of the M6203 might be able to be duplicated by one of the tiny Arduinos.  Although if you are doing that, some of the better Arduinos can probably more or less emulate the entire card.

 

Offline
Last seen: 1 week 4 days ago
Joined: Nov 21 2008 - 17:41
Posts: 52
I'll just post any important

I'll just post any important findings here as I discover them, things which are otherwise impossible to find online.

With regards to the OKI 6203, a closer look at the boards and schematic confirms the following (incomplete) pinout:

  • 1. CLR
  • 2. clock in (connected to a 7Mhz clock signal on Apple II)
  • 3. Write
  • 4. Read
  • 5. unknown but used
  • 6. Chip Enable
  • 7. A1
  • 8. A0
  • 9. GND
  • 10. D7
  • 11. D6
  • 12. D5
  • 13. D4
  • 14. D3
  • 15. D2
  • 16. D1
  • 17. D0
  • 18. +5V
Offline
Last seen: 1 month 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
gmontag451 wrote:I'll just
gmontag451 wrote:

I'll just post any important findings here as I discover them, things which are otherwise impossible to find online.

With regards to the OKI 6203, a closer look at the boards and schematic confirms the following (incomplete) pinout:

  • 1. CLR
  • 2. clock in (connected to a 7Mhz clock signal on Apple II)
  • 3. Write
  • 4. Read
  • 5. unknown but used

     

 

Good work figuring out most of the pinout.  I looked for a data sheet for the Oki M6203 but didn't find one.  There has to be one out there somewhere though.  It might take some more serious digging since it seems to be a pretty obscure chip.  My guess is that the pin 5 must be something that either controls the operation, multiply or divide or something like that.  But that is a wild ass guess based on the chip being a multiply/divide math chip.

 

 

 

Online
Last seen: 1 hour 52 min ago
Joined: Feb 27 2021 - 18:59
Posts: 601
status

A chip implementing a function unit needs a status output, which so far is missing.

Control over the function performed (multiply/divide) can be achieved simply by the order of writes into registers.

For example, if the eight-bit registers addressed by A1,A0 are R3, R2, R1, and R0, then the multiplicands could be written into R1 and R0, with a multiplication triggered by every write into R0, and the result produced in R3,R2. Similarly, divide could be triggered by writes to R2, with the dividend in R3,R2 and divisor in R1, with quotient produced in R0 (and remainder could be produced in R1, smashing the divisor).

Offline
Last seen: 1 month 3 weeks ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
robespierre wrote:A chip
robespierre wrote:

A chip implementing a function unit needs a status output, which so far is missing.

Control over the function performed (multiply/divide) can be achieved simply by the order of writes into registers.

For example, if the eight-bit registers addressed by A1,A0 are R3, R2, R1, and R0, then the multiplicands could be written into R1 and R0, with a multiplication triggered by every write

Good points...  you are probably right.  For some things status out could be in the returned data, but I think maybe not here.

 

Offline
Last seen: 1 week 4 days ago
Joined: Nov 21 2008 - 17:41
Posts: 52
Some interesting ideas. The

Some interesting ideas. The PDF article linked in reply #4 may help to answer these questions. It has a schematic and a short program for the 6203. But it seems to be missing some basic info. (I started a seperate thread to sort that out, but if this is a better place to discuss it I'll delete it.)

 

The program stores four bytes at $C0A0-$C0A3, for slot one I believe. This seems to match what robespierre is describing:

  • Values to be multiplied are in $C0A0 and $C0A2. Result is in $C0A1-$C0A2 (hi-lo)
  • For division, divisor is in $C0A0 and dividend is in $C0A1-$C0A2 (hi-lo). Quotient returned in $C0A2, remainder returned in $C0A1.
  • $C0A3 tells the chip which procedure to perform (1=divide, 2=multiply) 

Note that the schematic and program are NOT how the Bank Street Laboratory card is designed. They are just an exercise to explain the 6203 chip.

Online
Last seen: 1 hour 52 min ago
Joined: Feb 27 2021 - 18:59
Posts: 601
makes sense

Well in that case, if there is a register for operation code, then writing into it is sufficient to send the chip a "start" signal. The same register can be used as a status output when read from (something like 0= operation complete, FF= busy). This probably makes more sense than my approach since it extends cleanly to more than 2 operations (you could also implement limited-precision transcendental functions, by adding operation codes).

The additional status line could be used to signal the operation is done, in case it makes sense to send an interrupt to the CPU.

The CE (chip enable) pin is decoded from the I/O address by glue logic on the card, and acts like a "handshake" so the chip knows it is being written to.

Offline
Last seen: 1 week 4 days ago
Joined: Nov 21 2008 - 17:41
Posts: 52
More 6203 info

Michael Hart, a friend who is working on emulating the Bank Street Laboratory, discovered inconsistencies in the program listing in the Tinker's Toy's article regarding slot number and addresses (posted in Reply #4). He also shared a short article from Apple Assembly Line about the OKI 6203:

 

I think I may have found the answer to the 6203 mystery. Apple Assembly Line has an extremely short but potentially insightful little piece on the chip. It looks like the base address should be $C080 + SLOT * $10 instead of $C090 like we see in the Tinker's Toys article. So presuming Slot 1, instead of $C0A0 it'd actually be at $C090. Here's the entire piece from AAL:

--------------------------------------------------------------------------------------------

"The Oki 6203 Multiply/Divide Chip" by Bob Sander-Cederlof

If you really need to multiply or divide in a hurry, the Oki 6203 may be the ticket. This device sells for about $7, and can be almost directly connected to the Apple bus. All you need is one inverter and a prototyping board.

Assuming you built a little card with the device on it, with its two address lines connected to Apple's A0 and A1 lines, you could multiply two 8-bit numbers for a 16-bit product like this:

MUL.6203 STA SLOT*16+$C080   1ST OPERAND
                STY SLOT*16+$C081   2ND OPERAND
                LDA #2              MULTIPLY COMMAND
                STA SLOT*16+$C083   COMMAND REGISTER
                NOP                 DELAY FOR RESULT
                LDA SLOT*16+$C081   HI-BYTE OF PRODUCT
                LDY SLOT*16+$C082   LO-BYTE OF PRODUCT
                RTS  

A very similar program can divide a 16-bit value by an 8-bit value, producing a quotient and remainder. The time for the multiply is only 22 cycles (plus the JSR and RTS if you make a subroutine), and 24 cycles for the divide.

(Please don't order the chip from us, because we don't sell chips.)

—Apple Assembly Line, March 1985, page 19

--------------------------------------------------------------------------------------------

Log in or register to post comments