Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Carte Blanche Atto (CB for the IIc)

127 views
Skip to first unread message

Steve

unread,
Mar 27, 2011, 10:12:35 AM3/27/11
to
Hi All,

I havent had the chance to drop in much, but I have been busy
tinkering with II stuff in my spare time. Although its been at a
snails pace, I have managed to prepare a prototype of Carte Blanche
intended for the IIc (called CB Atto). Its a pretty tight fit and
seems to just clear at the moment. There's still a long way to go with
programming etc, but so far it feels like a good start and has passed
all of its tests. I hope to see if Alex has the time to port JAT over
to it at some point. Either way, its been an interesting experimental
board.

Anyway, as usual, open to any idea's.

http://www.applelogic.org/CarteBlancheAtto.html

Steve

Raymond Wiker

unread,
Mar 27, 2011, 10:22:01 AM3/27/11
to
Steve <srk...@gmail.com> writes:

Neat :-)

Will this work with the IIc+ as well as the IIc?

Raymond Wiker

unread,
Mar 27, 2011, 10:34:26 AM3/27/11
to
Raymond Wiker <r...@RAWMBP-2.local> writes:

Hmmm... Answering my own question: "No". Looks like the CB Atto
is meant to plug into a 40-pin DIL socket where the 6502 would normally
be found; the IIc+ has a 68-pin(?) PLCC version of the 6502.

I may have to try to get hold of a IIc (or a IIe/II+) at some
point, then :-)

a2retro

unread,
Mar 27, 2011, 10:46:27 AM3/27/11
to

The IIc+ uses a 65C02 processor in addition to the custom ASIC.
Compatibility aside, it remains to be seen if the socket for the ASIC
will cause any clearance issues.

Glenn

a2retro

unread,
Mar 27, 2011, 11:41:21 AM3/27/11
to

Hi Steve,

Was looking @ the pictures ... very cool ...

In the IIc pictures it looks like that the MicroSD slots would not be
easily accessible unless the base module was unplugged.

You might consider rotating the two outboard MicroSD sockets so that
they point out to the ends. I also suggested in an email to you that
it would be good to have the two inboard MicroSD sockets replaced with
a 16x8 SDRAM chip (provided there's enough i/o available).

Glenn

Raymond Wiker

unread,
Mar 27, 2011, 2:23:49 PM3/27/11
to
a2retro <a2retro...@gmail.com> writes:

Looks like I misread the wikipedia page on the IIc+ - the IIc+
has a 40-pin DIL version of the 6502. What I thought was the 6502 is the
accelerator ASIC.

magnusfalkirk

unread,
Mar 27, 2011, 4:38:56 PM3/27/11
to

Looks like something that might be a good addition to the //c. Of
course the next question is the price, but I'm willing to wait to find
out what it is.

Dean

Bill Garber

unread,
Mar 27, 2011, 5:16:43 PM3/27/11
to

"magnusfalkirk" <dean....@gmail.com> wrote in message
news:4a47119c-43af-4fe0...@a11g2000pri.googlegroups.com...

Looks like, from what I read on the site, it's a good addition
to all Apple IIs and IIIs, except the IIgs, of course, unless...
it can be adapted to plug into the 65816 socket. 8^)

Bill

mdj

unread,
Mar 27, 2011, 8:22:10 PM3/27/11
to
On Mar 28, 7:16 am, "Bill Garber" <willy4...@garberstreet.com> wrote:

> Looks like, from what I read on the site, it's a good addition
> to all Apple IIs and IIIs, except the IIgs, of course, unless...
> it can be adapted to plug into the 65816 socket.  8^)

Excepting the lack of a freely available 65816 core, I see no reason
why it wouldn't work just as well in a IIgs.

Also, this would make a perfect Zip Chip replacement should anyone add
the necessary cache logic between the 65C02 core and the signals.

Matt

Bill Garber

unread,
Mar 27, 2011, 9:22:12 PM3/27/11
to

"mdj" <mdj...@gmail.com> wrote in message news:0346b6a6-
d229-4811-b70...@x8g2000prh.googlegroups.com...

On Mar 28, 7:16 am, "Bill Garber" <willy4...@garberstreet.com> wrote:

>> Looks like, from what I read on the site, it's a good addition
>> to all Apple IIs and IIIs, except the IIgs, of course, unless...
>> it can be adapted to plug into the 65816 socket. 8^)

> Excepting the lack of a freely available 65816 core, I see
> no reason why it wouldn't work just as well in a IIgs.

I thought so, considering all I've read on using 65C816 in
a 65C02 based system.

> Also, this would make a perfect Zip Chip replacement should anyone
> add the necessary cache logic between the 65C02 core and the signals.

Would this be possible while coding in 64K of the 1MB fast SRAM
or the 4MB Flash (Also used to store the FPGA's bit stream) to
use as the cache ram ???

Bill

Steven Hirsch

unread,
Mar 28, 2011, 8:09:16 AM3/28/11
to
On 03/27/2011 10:12 AM, Steve wrote:
> Hi All,
>
> I havent had the chance to drop in much, but I have been busy
> tinkering with II stuff in my spare time. Although its been at a
> snails pace, I have managed to prepare a prototype of Carte Blanche
> intended for the IIc (called CB Atto). Its a pretty tight fit and
> seems to just clear at the moment. There's still a long way to go with
> programming etc, but so far it feels like a good start and has passed
> all of its tests. I hope to see if Alex has the time to port JAT over
> to it at some point. Either way, its been an interesting experimental
> board.

Steve,

As always, you do great work!

However, (and please take this as constructive criticism) it would be very
helpful if some of that creative energy went into system documentation for the
original CB. In particular, it's very difficult for a beginner in the field
of HDL and FPGAs to get a foothold on the device. I'm sure all the details
are there, but I would love to see some more high-level discussion of the CB
architecture. For example:

- How does it map to the host bus and what would a basic interface scheme
"look" like in terms of mapping logic to the symbolic port connections?

- Maybe a raw beginner's project that does something simple like embed 6502
code in a ROM area on the FPGA and permit it to be switched in and executed
from the host.

- How does the ASIC adapter map to the FPGA? What would a "framework" that
ties in a device on a that board look like and how are the pin connections
referenced symbolically?

A lot of that information is probably implicit in Alex's designs, the
schematics and the Xilinx databooks, but for the uninitiated the initial
learning curve is quite steep. I've been sitting here with two boards for
over a year and have not been able to negotiate it. I do have a reasonable
amount of background in logic design, but it dates strictly from the TTL 74LS*
era. There are just too many pieces that need to get sewn together at present
for me to get a foothold, and I suspect it's been daunting for some others of
us as well.

Anyway, sorry to sound critical. Maybe it's just me that's dense :-).

Steve


a2retro

unread,
Mar 28, 2011, 9:26:36 AM3/28/11
to

Hi Steve,

I understand where you're coming from but maybe I am a little bit more
comfortable with things as I have dabbled with the xilinx tools for a
few CPLD projects. Logic design aside, the FPGA mounted on the
CarteBlanche is same as any other CPLD/FPGA trainer out there.

It' simply a FPGA that has it's i/o's prewired to various hardware
ports on the card. To understand how that relates to anything, you
really need to study the schematic. Start by finding the page with
host bus signals, follow them through the level translator chip to the
particular pin on the FPGA. In order to use that information you need
to make a UCF file (pin to signal map file) or ask someone who has
already made one to give you a copy. There will be some signals in
there that are constant (a2bus signals for example) and others that
will be project dependent.

Once you understand that much, then you can start to think about how
you might use those i/o's and the internal logic building blocks in a
simple project.

I think your suggestion of emulating the onboard ROM of a peripheral
card is a useful example and one that I want to know how to get
working. I can think of a simpler first step and that is emulating
registers for any peripheral card. So basically, be able to read data
from the a2 bus, store it in a buffer and write it back when
requested. Once you have that you can add ROM emulation. Take those
two pieces and generate addressing/chip enablement to the on board
SRAM and you have a 512K ram card.

If your game I'd be willing to work with you something like that (I've
done it with a CPLD using ABEL).

Glenn

rich12345

unread,
Mar 28, 2011, 12:27:34 PM3/28/11
to
On Mar 28, 5:26 am, a2retro <a2retrosyst...@gmail.com> wrote:
>. In order to use that information you need
> to make a UCF file (pin to signal map file) or ask someone who has
> already made one to give you a copy.

UCF for CB is available on the net somewhere... I have a copy. It
tells you what pin on FPGA goes to which pins on: Apple II slot
connector, IDE connector, video connector, etc.

Bill Garber

unread,
Mar 28, 2011, 12:40:14 PM3/28/11
to

"rich12345" <aiia...@gmail.com> wrote in message news:8db25c
65-774e-4828-87...@k3g2000prl.googlegroups.com...

Here is the CB.UCF file:

#NET "SDO" LOC = "P87" | IOSTANDARD = LVCMOS33 ;
#NET "SDI" LOC = "P61" | IOSTANDARD = LVCMOS33 ;
#NET "SCL" LOC = "P103" | IOSTANDARD = LVCMOS33 ;
#
# SPI devices
#
#PACE: Start of Constraints generated by PACE

#PACE: Start of PACE I/O Pin Assignments
NET "BUS_3M58" LOC = "P51" | IOSTANDARD = LVCMOS33 ;
NET "BUS_7M" LOC = "P80" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<0>" LOC = "P4" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<10>" LOC = "P36" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<11>" LOC = "P39" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<12>" LOC = "P40" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<13>" LOC = "P47" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<14>" LOC = "P48" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<15>" LOC = "P49" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<1>" LOC = "P8" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<2>" LOC = "P11" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<3>" LOC = "P9" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<4>" LOC = "P12" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<5>" LOC = "P31" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<6>" LOC = "P33" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<7>" LOC = "P30" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<8>" LOC = "P23" | IOSTANDARD = LVCMOS33 ;
NET "BUS_A<9>" LOC = "P22" | IOSTANDARD = LVCMOS33 ;
NET "BUS_D<0>" LOC = "P3" | IOSTANDARD = LVCMOS33 ;
NET "BUS_D<1>" LOC = "P5" | IOSTANDARD = LVCMOS33 ;
NET "BUS_D<2>" LOC = "P16" | IOSTANDARD = LVCMOS33 ;
NET "BUS_D<3>" LOC = "P19" | IOSTANDARD = LVCMOS33 ;
NET "BUS_D<4>" LOC = "P18" | IOSTANDARD = LVCMOS33 ;
NET "BUS_D<5>" LOC = "P29" | IOSTANDARD = LVCMOS33 ;
NET "BUS_D<6>" LOC = "P24" | IOSTANDARD = LVCMOS33 ;
NET "BUS_D<7>" LOC = "P35" | IOSTANDARD = LVCMOS33 ;
NET "BUS_DMA" LOC = "P41" | IOSTANDARD = LVCMOS33 ;
NET "BUS_DMAIN" LOC = "P72" | IOSTANDARD = LVCMOS33 ;
NET "BUS_DMAOUT" LOC = "P69" | IOSTANDARD = LVCMOS33 ;
NET "BUS_INH" LOC = "P45" | IOSTANDARD = LVCMOS33 ;
NET "BUS_INTIN" LOC = "P71" | IOSTANDARD = LVCMOS33 ;
NET "BUS_INTOUT" LOC = "P68" | IOSTANDARD = LVCMOS33 ;
NET "BUS_IOSTROBE" LOC = "P54" | IOSTANDARD = LVCMOS33 ;
NET "BUS_IRQ" LOC = "P63" | IOSTANDARD = LVCMOS33 ;
NET "BUS_NMI" LOC = "P65" | IOSTANDARD = LVCMOS33 ;
NET "BUS_PHASE0" LOC = "P20" | IOSTANDARD = LVCMOS33 ;
NET "BUS_PHASE1" LOC = "P26" | IOSTANDARD = LVCMOS33 ;
NET "BUS_Q3" LOC = "P43" | IOSTANDARD = LVCMOS33 ;
NET "BUS_R_W" LOC = "P50" | IOSTANDARD = LVCMOS33 ;
NET "BUS_RDY" LOC = "P42" | IOSTANDARD = LVCMOS33 ;
NET "BUS_RESET" LOC = "P60" | IOSTANDARD = LVCMOS33 | PULLUP ;
NET "BUS_SYNC" LOC = "P57" | IOSTANDARD = LVCMOS33 ;
NET "BUS_USER1" LOC = "P32" | IOSTANDARD = LVCMOS33 ;
NET "h_sync" LOC = "P89" | IOSTANDARD = LVCMOS33 ;
NET "IDE_ACT" LOC = "P189" | IOSTANDARD = LVCMOS33 | DRIVE = 2 ;
NET "IDE_CS1" LOC = "P187" | IOSTANDARD = LVCMOS33 ;
NET "IDE_D<0>" LOC = "P93" | IOSTANDARD = LVCMOS33 ;
NET "IDE_D<1>" LOC = "P78" | IOSTANDARD = LVCMOS33 ;
NET "IDE_D<2>" LOC = "P167" | IOSTANDARD = LVCMOS33 ;
NET "IDE_D<3>" LOC = "P165" | IOSTANDARD = LVCMOS33 ;
NET "IDE_D<4>" LOC = "P164" | IOSTANDARD = LVCMOS33 ;
NET "IDE_D<5>" LOC = "P168" | IOSTANDARD = LVCMOS33 ;
NET "IDE_D<6>" LOC = "P147" | IOSTANDARD = LVCMOS33 ;
NET "IDE_D<7>" LOC = "P133" | IOSTANDARD = LVCMOS33 ;
NET "IDE_RES" LOC = "P153" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "N_BUS_DEV_SEL" LOC = "P14" | IOSTANDARD = LVCMOS33 ;
NET "N_BUS_IO_SEL" LOC = "P204" | IOSTANDARD = LVCMOS33 ;
NET "RGB<0>" LOC = "P145" | IOSTANDARD = LVCMOS33 ;
NET "RGB<1>" LOC = "P146" | IOSTANDARD = LVCMOS33 ;
NET "RGB<2>" LOC = "P140" | IOSTANDARD = LVCMOS33 ;
NET "RGB<3>" LOC = "P144" | IOSTANDARD = LVCMOS33 ;
NET "RGB<4>" LOC = "P83" | IOSTANDARD = LVCMOS33 ;
NET "RGB<5>" LOC = "P150" | IOSTANDARD = LVCMOS33 ;
NET "SD_CS" LOC = "P62" | IOSTANDARD = LVCMOS33 ;
NET "SD_DET" LOC = "P58" | IOSTANDARD = LVCMOS33 ;
NET "SOFT_TCK" LOC = "P184" | IOSTANDARD = LVCMOS33 ;
NET "SOFT_TDI" LOC = "P159" | IOSTANDARD = LVCMOS33 ;
NET "SOFT_TDO" LOC = "P113" | IOSTANDARD = LVCMOS33 ;
NET "SOFT_TMS" LOC = "P154" | IOSTANDARD = LVCMOS33 ;
NET "spi_rom_cs" LOC = "P55" | IOSTANDARD = LVCMOS33 ;
NET "spi_sck" LOC = "P103" | IOSTANDARD = LVCMOS33 ;
NET "spi_sdi" LOC = "P61" | IOSTANDARD = LVCMOS33 ;
NET "spi_sdo" LOC = "P87" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<0>" LOC = "P206" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<10>" LOC = "P100" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<11>" LOC = "P102" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<12>" LOC = "P99" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<13>" LOC = "P134" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<14>" LOC = "P135" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<15>" LOC = "P138" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<16>" LOC = "P137" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<1>" LOC = "P126" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<2>" LOC = "P123" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<3>" LOC = "P122" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<4>" LOC = "P179" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<5>" LOC = "P84" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<6>" LOC = "P86" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<7>" LOC = "P197" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<8>" LOC = "P196" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_A<9>" LOC = "P186" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_D<0>" LOC = "P116" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_D<1>" LOC = "P163" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_D<2>" LOC = "P171" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_D<3>" LOC = "P90" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_D<4>" LOC = "P76" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_D<5>" LOC = "P120" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_D<6>" LOC = "P97" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_D<7>" LOC = "P129" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_NCS0" LOC = "P161" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_NCS1" LOC = "P119" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_NOE" LOC = "P127" | IOSTANDARD = LVCMOS33 ;
NET "SRAM_NWE" LOC = "P94" | IOSTANDARD = LVCMOS33 ;
NET "SYSCLK" LOC = "P183" | IOSTANDARD = LVCMOS33 ;
NET "v_sync" LOC = "P77" | IOSTANDARD = LVCMOS33 ;

#PACE: Start of PACE Area Constraints

#PACE: Start of PACE Prohibit Constraints

#PACE: End of Constraints generated by PACE

Followed by the Clock() add-on. These get inserted
into the above file as necessary:

# Generated by Xilinx Architecture Wizard
# --- UCF Template Only ---
# Cut and paste these attributes into the project's UCF file, if desired
INST DCM_SP_INST CLK_FEEDBACK = 1X;
INST DCM_SP_INST CLKDV_DIVIDE = 2.0;
INST DCM_SP_INST CLKFX_DIVIDE = 7;
INST DCM_SP_INST CLKFX_MULTIPLY = 25;
INST DCM_SP_INST CLKIN_DIVIDE_BY_2 = FALSE;
INST DCM_SP_INST CLKIN_PERIOD = 69.541;
INST DCM_SP_INST CLKOUT_PHASE_SHIFT = NONE;
INST DCM_SP_INST DESKEW_ADJUST = SYSTEM_SYNCHRONOUS;
INST DCM_SP_INST DFS_FREQUENCY_MODE = LOW;
INST DCM_SP_INST DLL_FREQUENCY_MODE = LOW;
INST DCM_SP_INST DUTY_CYCLE_CORRECTION = TRUE;
INST DCM_SP_INST FACTORY_JF = C080;
INST DCM_SP_INST PHASE_SHIFT = 0;
INST DCM_SP_INST STARTUP_WAIT = FALSE;

Charlie

unread,
Mar 28, 2011, 5:37:21 PM3/28/11
to

"Steven Hirsch" <snhi...@gmail.com> wrote in message
news:Yq2dnT-HBr7z5w3Q...@giganews.com...

> On 03/27/2011 10:12 AM, Steve wrote:
>> Hi All,
>>
>> I havent had the chance to drop in much, but I have been busy
>> tinkering with II stuff in my spare time. Although its been at a
>> snails pace, I have managed to prepare a prototype of Carte Blanche
>> intended for the IIc (called CB Atto). Its a pretty tight fit and
>> seems to just clear at the moment. There's still a long way to go with
>> programming etc, but so far it feels like a good start and has passed
>> all of its tests. I hope to see if Alex has the time to port JAT over
>> to it at some point. Either way, its been an interesting experimental
>> board.
>
> Steve,
>
> As always, you do great work!
>
> However, (and please take this as constructive criticism) it would be very
> helpful if some of that creative energy went into system documentation for
> the original CB. In particular, it's very difficult for a beginner in the
> field of HDL and FPGAs to get a foothold on the device. I'm sure all the
> details are there, but I would love to see some more high-level discussion
> of the CB architecture.

I too would like see more discussion. Sometimes I feel like I'm the only
one doing anything with the CB and much of the time I'm lost. Still I have
learned a little bit so maybe I can help.

> For example:
> - How does it map to the host bus and what would a basic interface scheme
> "look" like in terms of mapping logic to the symbolic port connections?

As Glenn mentioned, you start with the schematic (CBSCH01.pdf). Page 5 has
the Apple II slot
definition. If you follow any wire from the slot connector (yellow) to the
column on the right (blue) you will see the name for that wire in the
Carteblanche1 module. And as Glenn, Rich and Bill pointed out the names
used are defined in the UCF (user constraints file).
In the beginning of any module you write you enter the inputs and outputs by
the names defined. For instance in the cb1.v (Carteblanche main module) file
you have the "input BUS_3M58".
Looking at the UCF you'll see 'NET "BUS_3M58" LOC = P51;', meaning BUS_3M58
is connected to pin 51 on the FPGA. Again looking at the schematic you'll
see that BUS_3M58 is connected to pin 35 on the Apple II slot connector so
pin 35 on the Apple is connected to pin 51 on the FPGA. Much of the work has
already been done for you with the cb.ucf at least for the Apple II slot,
the RGB output, the SD, etc.

As far as mapping logic to the symbolic port connections here is trivial
Verilog example of what I think you mean:

/*---------------------------------------------*/
module test (input BUS_3M58, input BUS_PHASE0, input SYSCLK, output
IDE_ACT);
// SYSCLK is the onboard 14.31818MHZ oscillator
reg do_something; // create a register to hold our logic

always@(posedge SYSCLK) // everytime the clock goes high
begin
do_something <= BUS_3M58 & BUS_PHASE0; // 'and' the 2 inputs & store
result
end

assign IDE_ACT = do_something; // output result to pin 16 of IDE connector
endmodule
/*--------------------------------------------*/

Disclaimer: I haven't tried this. It's just to give you some idea of how
it works.

> - Maybe a raw beginner's project that does something simple like embed
> 6502 code in a ROM area on the FPGA and permit it to be switched in and
> executed from the host.

I've been thinking about doing something like this myself. I believe Alex
does this for the floppy disk and z80 code, so there should be some ideas
there.
Incidentally, its very easy with the existing CB code to add the ability to
*see* any peeks/pokes to any location in the IO area. This makes it nice to
play around with your logic by pokeing values into unused IO locations.

> - How does the ASIC adapter map to the FPGA? What would a "framework"
> that ties in a device on a that board look like and how are the pin
> connections referenced symbolically?

I'm assuming the ASIC adapter is what is referred to in the schematics (page
7) as the Peripheral BD Interface. If so I believe you would use the UCF
file to define the pins and symbols in the same way as the Slot connector is
done.

> A lot of that information is probably implicit in Alex's designs, the
> schematics and the Xilinx databooks, but for the uninitiated the initial
> learning curve is quite steep.

I agree, I have been muddling around with this myself, but you just have to
start with something and learn a little bit at a time.

> I've been sitting here with two boards for over a year and have not been
> able to negotiate it.

I started by studying Alex's code and tentatively trying to change things.
Most everything fails but occasionally I succeed and that feels good.

> I do have a reasonable amount of background in logic design, but it dates
> strictly from the TTL 74LS* era. There are just too many pieces that need
> to get sewn together at present for me to get a foothold, and I suspect
> it's been daunting for some others of us as well.

You're way ahead of me there. I have very little knowledge of logic design,
so I've had to try to learn that along with learning Verilog, FPGA's in
general, the Carteblanche in particular and Xilinx's overwhelming tools. I
also have found out that I know less about the hardware end of the Apple IIs
than I thought I did.

Anyway, if I can help you get started just ask. Either email me or better
yet ask here because I'm sure others will join in.

Charlie


Steven Hirsch

unread,
Mar 29, 2011, 7:46:40 AM3/29/11
to
On 03/28/2011 05:37 PM, Charlie wrote:

(snip)

> Anyway, if I can help you get started just ask. Either email me or better
> yet ask here because I'm sure others will join in.

Thanks for the kind offer, Charlie. I will try to screw up my courage to dive
into this again. I got so frustrated last time around that I put all the
pieces and docs away, so it will take a bit to get everything out, organized
and ready for more work.

I still think there's a burning need for a raw beginners project that
hand-holds the user all the way through - including basic negotiation of the
Xilinx ISE dialogs. Maybe I'm asking for too much, so I'll stop before I
sound like I'm whining :-).

One of my hopes was to synthesize a 6809 coprocessor board with the gen-u-ine
CPU in the ASIC adapter. Alex had suggested this early on as a good candidate
for schematic capture based synthesis. Not sure if he ever did it or not.

Steve

a2retro

unread,
Mar 29, 2011, 8:29:23 AM3/29/11
to

For anyone looking for beginner stuff, here are some other resources
for general FPGA programming information

1) http://www.digilentinc.com/classroom/realdigital/
2) http://www.digilentinc.com/nav1index.cfm?NavTop=95&DisplayBox=false
(Tutorials and VHDL section @ the bottom of the page)
3) PAID($18) - http://www.burched.com/index.php

Glenn

rich12345

unread,
Mar 29, 2011, 1:39:40 PM3/29/11
to
On Mar 29, 3:46 am, Steven Hirsch <snhir...@gmail.com> wrote:
> On 03/28/2011 05:37 PM, Charlie wrote:
>
> (snip)
>
> > Anyway, if I can help you get started just ask.  Either email me or better
> > yet ask here because I'm sure others will join in.
>
> Thanks for the kind offer, Charlie.  I will try to screw up my courage to dive
> into this again.  I got so frustrated last time around that I put all the
> pieces and docs away, so it will take a bit to get everything out, organized
> and ready for more work.
>
> I still think there's a burning need for a raw beginners project that
> hand-holds the user all the way through - including basic negotiation of the
> Xilinx ISE dialogs.  Maybe I'm asking for too much, so I'll stop before I
> sound like I'm whining :-).

libraries for schematic design:

http://www.downloads.reactivemicro.com/Public/Electronics/Xilinx%20ISE%20Stuff/Spartan-3E%20Libraries%20Guide%20for%20Schematic%20Designs.pdf

There are plenty of tutorials for Xilinx ISE. The interface looks
intimidating, but isn't once you watch the tutorials. Syntax of VHDL
and Verilog isn't intimidating either, once you learn the languages
(or just have a basic understanding of computer programming languages
and boolean logic). Error reports can be confusing, but the ISE will
search the web for a clear(er) description of errors.


>
> One of my hopes was to synthesize a 6809 coprocessor board with the gen-u-ine
> CPU in the ASIC adapter.  Alex had suggested this early on as a good candidate
> for schematic capture based synthesis.  Not sure if he ever did it or not.
>

It should be. The schematic is fairly simple. Putting a 6809 on
board eliminates the need for a CPU IP core.

I think support/tutorial from Applelogic.org will never come, so we
have to figure it out for ourselves...

Would be nice to set up a SKYPE chat where we can share knowledge and
ideas.

http://tech.groups.yahoo.com/group/applefpga/


Charlie

unread,
Mar 29, 2011, 8:31:15 PM3/29/11
to

"a2retro" <a2retro...@gmail.com> wrote in message
news:8ef4e3bf-3f57-4573...@o21g2000prh.googlegroups.com...

> -------------------------

Thanks, I'll take a look at the digilent stuff.

Charlie


Charlie

unread,
Mar 29, 2011, 8:44:11 PM3/29/11
to

"Steven Hirsch" <snhi...@gmail.com> wrote in message
news:suWdncE-f-E8WwzQ...@giganews.com...

> On 03/28/2011 05:37 PM, Charlie wrote:
>
> (snip)
>
> I still think there's a burning need for a raw beginners project that
> hand-holds the user all the way through - including basic negotiation of
> the > Xilinx ISE dialogs. Maybe I'm asking for too much, so I'll stop
> before I sound like I'm whining :-).

I agree with you there is a need. With 50 CB cards sold and only a handfull
talking about it, I have to think there are many who don't know where to
begin.

Charlie


Nama

unread,
Mar 29, 2011, 10:02:26 PM3/29/11
to
I have the 250 version of the CB. I don't think I have the skill to
program it, but I'm very interested to try other peoples designs.
One thing I do find upsetting is that the downloads on the CB page are
different for the 500 and 250 variants...I can't help feel a little
stiffed for having the 250.

It would be great to see the beta release of Soft Z80 Card, 6809
System 09/FLEX and OS, frogger, scramble and others available for the
250 also.

I know this is a small thing, but it would be nice.

Phil

Charlie

unread,
Mar 29, 2011, 11:47:16 PM3/29/11
to

"Nama" <forum...@mac.com> wrote in message
news:60be64bb-2dde-4f12...@o21g2000prh.googlegroups.com...

>I have the 250 version of the CB. I don't think I have the skill to
> program it, but I'm very interested to try other peoples designs.
> One thing I do find upsetting is that the downloads on the CB page are
> different for the 500 and 250 variants...I can't help feel a little
> stiffed for having the 250.

Yeah, that's strange. I didn't know there were any 500s in the wild.

> It would be great to see the beta release of Soft Z80 Card, 6809
> System 09/FLEX and OS, frogger, scramble and others available for the
> 250 also.

If the source code was available maybe they could be ported to the 250.

Charlie


Steve

unread,
Apr 1, 2011, 6:57:24 AM4/1/11
to
Hi all,

Wow, thanks for the feedback. Ill go through and see what I can
answer;

--> Will this work with the IIc+ as well as the IIc?

The IIc+ had a PLCC socketed chip very close by, so I decided to
exlcuded the IIc+ version just for the moment as it meant a lot of
PCB mapping. But If a vote says the IIc+ must be included, I can come
up with a crafty method to squeeze it in.

--> In the IIc pictures it looks like that the MicroSD slots would not


be
easily accessible unless the base module was unplugged.

Yes, it is rather tight. I put four micro SD cards in as these are
pretty common and it was easy for me to do so. Giving better access
can be arranged.

--> You might consider rotating the two outboard MicroSD sockets so


that
they point out to the ends.

I agree. However, with a board shape that suits all the decided hosts,
this will determine what space is left. I dont want to design several
different versions. Just the one atto.

--> also suggested in an email to you that it would be good to have


the two inboard MicroSD sockets replaced with a 16x8 SDRAM chip
(provided there's enough i/o available).

The MicroSD's dont affect memory. The memory is located on the cheap
SODIMM FPGA module (these are current $60USD to have made in china) I
have started a version with a 32MBx16 DRAM, so its is on the cards.
The idea is to interchange to suit whats required. These modules are
being used in other products, so I am piggy backing off their
production.

--> Of course the next question is the price

I am targetting $170 for both boards.

--> except the IIgs, of course, unless... it can be adapted to plug
into the 65816 socket

Yes. Clocking routes have been provided for the extra 65C816 pins. I
havent got a core though.


--> Would this be possible while coding in 64K of the 1MB fast SRAM
to use as the cache ram.

Yes, If the 1MB SRAM was a 32MB DRAM, you could still use it as a
cache as the connection to the FPGA is private (its actually two 512k
x8 blocks with optional 16 bit access)

--> if some of that creative energy went into system documentation for
the original CB.

I did a ton of this for the Altium software I used to create the
original CB, but no one used it. Altium designer just isnt that
popular and I dont know ISE well enough to create the same sort of
docco and examples. All details an be download from the slow
applelogic site. I was hoping others might help here a bit.


--> It would be great to see the beta release of Soft Z80 Card, 6809


System 09/FLEX and OS, frogger, scramble and others available for the
250 also.

The Z80 i never finsihed - but ill post the source, however, its in
Altium designer. ALex gave me the source to the 09/FLEX. Ill ask if
its ok to post on the site. Ill see if I can round up the source to
the others (which I think is in ISE), which where done by Mark and Red
(The PACE guy's)

--> If the source code was available maybe they could be ported to the
250

I dont think so - the 250 lacks the internal SRAM if i recall
correctly. No one really contemplated putting an arcade machine in
carte blanche. The 250 can be upgraded to a 500 by simply replacing
the FPGA chip. I may offer to do this if there is enough interest.

The FPGA domain has so much capability, but there are very few people
who know it well enough or have the time to create some cool gear. Its
also hard getting groups working on the one project to finish
something. On the other hand there is an ample army of solo coders who
can write apple II code simulators on platforms like the PC and linux
boxes. So I created this little board as an experiment. An ARM
interfaced to a IIe.(.. or II/III anything) so I can execute an apple
II simulator inside the apple II.

http://www.applelogic.org/files/ARM7+A2E.JPG

Its a gumstix module (www.gumstix.com) that has its L3 to L4 front
side bus (AHB) interfaced to the Apple IIe as if it where the 6502
processor. With wait enabled, it operates at exactly 1.023MHz (gated
to apples sys clock), but can be tweeked to operated at up to 30MHz
(but things start to stop). The Processor is a 700MHZ texas
instruments OMAP 3530 apps processor with an ARM Cortex A8 CPU.
Although this seems just plane wrong, I wanted to start to experiment
with applications such as KEGS or Apple Win to see if this is a better
way to expand and add life to these great machines. Anyway, its only
an idea at this stage - and if I did it for a reason, it wouldnt be a
hobby. :)

Steve

Steven Hirsch

unread,
Apr 1, 2011, 8:10:13 AM4/1/11
to
On 04/01/2011 06:57 AM, Steve wrote:

> --> if some of that creative energy went into system documentation for
> the original CB.
>
> I did a ton of this for the Altium software I used to create the
> original CB, but no one used it. Altium designer just isnt that
> popular and I dont know ISE well enough to create the same sort of
> docco and examples. All details an be download from the slow
> applelogic site. I was hoping others might help here a bit.

It's not a matter of popular so much as a matter of "free" vs. huge bucks.
Altium looks terrific, but as a hobby I cannot rationalize the expense. ISE
is free-as-in-beer.

> --> If the source code was available maybe they could be ported to the
> 250
>
> I dont think so - the 250 lacks the internal SRAM if i recall
> correctly. No one really contemplated putting an arcade machine in
> carte blanche. The 250 can be upgraded to a 500 by simply replacing
> the FPGA chip. I may offer to do this if there is enough interest.

I would take you up on that service. Although I recently purchased a hot-air
rework station and have the correct nozzle for the FPGA chip, I'm a bit scared
to have at it with my limited experience. Probably better if I stick to
practicing on dead PC motherboards for the time being :-).

Steve

a2retro

unread,
Apr 1, 2011, 9:25:32 AM4/1/11
to
On Apr 1, 6:57 am, Steve <srk...@gmail.com> wrote:
> Hi all,
>
> Wow, thanks for the feedback. Ill go through and see what I can
> answer;
>
...

>
> --> You might consider rotating the two outboard MicroSD sockets so
> that
> they point out to the ends.
>
> I agree. However, with a board shape that suits all the decided hosts,
> this will determine what space is left. I dont want to design several
> different versions. Just the one atto.

That's understandable. :)

>
> -->  also suggested in an email to you that it would be good to have
> the two inboard MicroSD sockets replaced with a 16x8 SDRAM chip
> (provided there's enough i/o available).
>
> The MicroSD's dont affect memory. The memory is located on the cheap
> SODIMM FPGA module (these are current $60USD to have made in china)
> I have started a version with a 32MBx16 DRAM, so its is on the cards.
> The idea is to interchange to suit whats required. These modules are
> being used in other products, so I am piggy backing off their
> production.

I wasn't sure if you had designed the FPGA module or it was coming
from somewhere else. That's why I suggested replacing 2 of the MicroSd
slots with a SDRAM on the base board if you didn't have control over
the FPGA module. SDRAM on either board would be great.

Glenn

rich12345

unread,
Apr 1, 2011, 11:49:22 AM4/1/11
to
On Apr 1, 2:57 am, Steve <srk...@gmail.com> wrote:
>
> These modules are
> being used in other products, so I am piggy backing off their
> production.


very cool!

>
> --> Of course the next question is the price
>
> I am targetting $170 for both boards.

that's very reasonable


>
> --> except the IIgs, of course, unless... it can be adapted to plug
> into the 65816 socket
>
> Yes. Clocking routes have been provided for the extra 65C816 pins. I
> havent got a core though.

Might be a good group project. We have a handful of Apple II
hobbyists who know HDL, and another handful of those who know 65816
assembly.


>
> --> if some of that creative energy went into system documentation for
> the original CB.
>
> I did a ton of this for the Altium software I used to create the
> original CB, but no one used it.

I never saw this available... If I had I would have grabbed me a
*copy*


> I dont think so - the 250 lacks the internal SRAM if i recall
> correctly. No one really contemplated putting an arcade machine in
> carte blanche. The 250 can be upgraded to a 500 by simply replacing
> the FPGA chip. I may offer to do this if there is enough interest.

I think that was a bad decision (only a few 500's made)... They
should have all been the bigger chip!

I would pay you to solder a 500 onto my board.


> So I created this little board as an experiment. An ARM
> interfaced to a IIe.(.. or II/III anything) so I can execute an apple
> II simulator inside the apple II.
>
> http://www.applelogic.org/files/ARM7+A2E.JPG
>
> Its a gumstix module (www.gumstix.com) that has its L3 to L4 front
> side bus (AHB) interfaced to the Apple IIe as if it where the 6502
> processor. With wait enabled, it operates at exactly 1.023MHz (gated
> to apples sys clock), but can be tweeked to operated at up to 30MHz
> (but things start to stop). The Processor is a 700MHZ texas
> instruments OMAP 3530 apps processor with an ARM Cortex A8 CPU.
> Although this seems just plane wrong, I wanted to start to experiment
> with applications such as KEGS or Apple Win to see if this is a better
> way to expand and add life to these great machines. Anyway, its only
> an idea at this stage - and if I did it for a reason, it wouldnt be a
> hobby. :)


You have so many neat things going on, I wish you would post more! Do
you have a blog? Can you tell us more about your ARM project please.
An apple II simulator in an apple II.. So are you running ARM code
that simulates the 6502??

It looks like that gumstix module has some extreme features for what
you are using it for (and if you did it for a reason, it wouldn't be a
hobby :-)... There's enough cpu power and RAM to turn it into an
accelerator like the ZipChip


Rich

rich12345

unread,
Apr 1, 2011, 11:59:14 AM4/1/11
to
On Apr 1, 2:57 am, Steve <srk...@gmail.com> wrote:
> Hi all,
>
> Wow, thanks for the feedback. Ill go through and see what I can
> answer;


Hello,

Who do I talk to about this?

http://www.applelogic.org/CBAVI.html

"The small compact assembly is provided free to all Carte Blanche
owners."


I own a CB. I'd like to hear MB audio. Who do I call to get a CBAVI?


Rich

Charlie

unread,
Apr 1, 2011, 3:05:23 PM4/1/11
to

> Altium designer just isnt that
> popular and I dont know ISE well enough to create the same sort of
> docco and examples. All details an be download from the slow
> applelogic site.

> I was hoping others might help here a bit.

I'll try to put something on my site, maybe next week. It won't be as slick
looking as your Applelogic site but maybe it will help some ISE people to
get started.

Charlie


rich12345

unread,
Apr 2, 2011, 10:01:00 PM4/2/11
to
On Mar 28, 1:37 pm, "Charlie" <charlieD...@verEYEzon.net> wrote:
> As Glenn mentioned, you start with the schematic (CBSCH01.pdf).  

This seems to me like the wrong advice to give. You don't need to
reverse engineer the card.

The UCF includes everything you need. You can get it from the
schematic, but then you would have to type it into your own UCF.

I'm working on a tutorial using a parallel printer card as an
example.

It would be nice to create a library of 74XX parts, for schematic
entry.

Rich

Bill Garber

unread,
Apr 2, 2011, 10:15:08 PM4/2/11
to

"rich12345" <aiia...@gmail.com> wrote in message news:593066a1-4002-41c2...@f15g2000pro.googlegroups.com...

How's this? Verilog Integrated Circuits Macros.

http://www.garberstreet.com/VerilogMacro.rar

Bill

rich12345

unread,
Apr 7, 2011, 9:51:18 PM4/7/11
to
On Apr 1, 2:57 am, Steve <srk...@gmail.com> wrote:
>
> --> if some of that creative energy went into system documentation for
> the original CB.
>
> I did a ton of this for the Altium software I used to create the
> original CB, but no one used it. Altium designer just isnt that
> popular and I dont know ISE well enough to create the same sort of
> docco and examples. All details an be download from the slow
> applelogic site. I was hoping others might help here a bit.
>

Can you let us know where exactly this is located on the applelogic
site?

Rich

Steve Howell

unread,
Apr 11, 2011, 2:59:28 AM4/11/11
to

Hi Rich,

My getting started bit is under "Getting Started" (
http://www.applelogic.org/GettingStarted.html )
Again, its all Altium projects. You can download the projects from
Downloads.

Steve

rich12345

unread,
Apr 14, 2011, 1:49:30 PM4/14/11
to
On Mar 27, 7:12 am, Steve <srk...@gmail.com> wrote:
>
> Anyway, as usual, open to any idea's.
>
> http://www.applelogic.org/CarteBlancheAtto.html


That shiny new CB sure looks nice in that dusty old apple II :-)

Bill Garber

unread,
Apr 14, 2011, 5:56:13 PM4/14/11
to

"rich12345" <aiia...@gmail.com> wrote in message news:fe5dba
8f-4780-4331-9e...@l14g2000pre.googlegroups.com...

Same way shiny new stuff looks in my Apple IIe. ;)

And, my IIgs for that matter. ;)

Bill

0 new messages