6809 experiments

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
User avatar
hoglet
Posts: 7632
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: 6809 experiments

Post by hoglet » Wed Oct 18, 2017 4:01 pm

dominicbeesley wrote: I've ordered that spartan board, I couldn't find much documentation about how the level shifter board works or how to map the pins onto that Spartan Board....no doubt I'll be back with questions when the parts arrive....
I don't think Jason ever posted the schematics.

Probably the best starting point is one of the existing .ucf files:
https://github.com/hoglet67/AtomBusMon/ ... /board.ucf
dominicbeesley wrote: Is there something Xilinx specific or would it just be the usual faff of setting up the project in Quartus instead of Xise?
It's mostly just the usual faff.

There is one large 512x72 FIFO (called WatchEvents) that was created using the Xilinx Core Gen tool, so that all that would need to be replaced.

The tool chain is a bit more complicated than a pure FPGA because the design includes a support processor (a soft AVR) whose C code needs to be compiled and converted to block RAM initialization data. I built a set of makefiles to do the C compile, the Xilinx compile, and then link everything together. It would be quite fiddly to add Altera into the mix, but possible if there was some interest.

Beeb FPGA actually embeds ICE T65 (with a pre-compiled version of the C code) in the Altera DE1 build, so it has been built on Altera. So all the bits exist.

I don't have a DE0 Nano myself, so it would be a bit hard for me to test this.

Dave

dominicbeesley
Posts: 654
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 6809 experiments

Post by dominicbeesley » Wed Oct 18, 2017 10:36 pm

Thanks Dave,

I wouldn't expect you to do any porting. I'll have a look when it all comes - I have a plan for an add on for the BBC that would plug into the CPU socket and this might be the way to do it, or at least to test the principle. I was thinking of the DE0 just for the on-board memory but I could probably make do with the block RAM on the Spartan 6.

I've ordered the board you recommended, I think I get the GODIL problem now, all the ones on offer are the DIL rather than DIP ones or am I missing something?

D

User avatar
hoglet
Posts: 7632
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: 6809 experiments

Post by hoglet » Thu Oct 19, 2017 7:19 am

dominicbeesley wrote: I've ordered the board you recommended, I think I get the GODIL problem now, all the ones on offer are the DIL rather than DIP ones or am I missing something?
Yes exactly, the only remaining stocks have 2x female DIL headers on the bottom, not the 40-pin DIP male header.

I don't think any more are being made.

Dave

dominicbeesley
Posts: 654
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 6809 experiments

Post by dominicbeesley » Thu Oct 26, 2017 1:56 pm

Straying slightly OT into VHDL, I'm trying to model the Mk.2 board before I commit to fabrication. I've swapped over to using TI 74CB3T6211 bidirectional level shifters instead of 74XX4245s. I'm not clear how to model them in VHDL. The naive 1st cut (delays not implemented yet) seems to work but I'm not sure it shouldn't be more nuanced for the situation where both A/B ports are being driven?

I tried to add check for both ports driven or either port=X giving X but that latched into X and stayed there!

This doesn't need to be synthesizable just to help me test out timing/sanity of my MEMC / VIDC ideas (and the general system busses). I've used a SYS09 core for the CPU and it will run code and exercise the MEMC and VIDC chips...

Any advice welcome!

Code: Select all

entity LEVELS is
	Generic (
		tprop			: time	:= 1 ns;
		toe			: time	:= 4 ns
	);
	Port (
		A				: inout	STD_LOGIC_VECTOR(7 downto 0);
		B				: inout	STD_LOGIC_VECTOR(7 downto 0)
	);
end LEVELS;

architecture Behavioral of LEVELS is
		
begin

		p_a2b: process (A)
		begin
			for i in A'low to A'high loop
				if A(i) = '0' then
					B(i) <= '0';
				else
					B(i) <= 'H';
				end if;
			end loop;
		end process;

		p_b2a: process (B)
		begin
			for i in B'low to B'high loop
				if B(i) = '0' then
					A(i) <= '0';
				else
					A(i) <= 'H';
				end if;
			end loop;
		end process;
	
	
end Behavioral;

gtoal
Posts: 5
Joined: Sat Nov 04, 2017 2:07 am
Contact:

Re: 6809 experiments

Post by gtoal » Sat Nov 04, 2017 7:03 am

I just found this forum and thought I should drop in and say hello. I built a 6809 second processor back when I worked at Acorn (and found it again a couple of days ago when tidying up my garden shed).

Anyway I noticed a comment on the lack of 6809 programmers nowadays, so I thought I should let you know that there's actually quite an active 6809 community still around, writing code for the Vectrex vector-based gaming console from the 80's.

We hang out at http://vectorgaming.proboards.com and http://atariage.com/forums/forum/182-vectrex/ - there are also some Coco coders around somewhere...

There are two usable (with a little effort) free C compilers for the 6809: CMOC and GCC - the latter comes packaged with an IDE called "Vide". And with a little searching there are lots of 6809 programming books still to be found on the net.


Graham
Last edited by 1024MAK on Sun Feb 25, 2018 1:48 pm, edited 1 time in total.
Reason: Tidy the URL links

User avatar
daveejhitchins
Posts: 4470
Joined: Wed Jun 13, 2012 5:23 pm
Location: Newton Aycliffe, County Durham
Contact:

Re: 6809 experiments

Post by daveejhitchins » Sat Nov 04, 2017 10:25 am

Welcome to the Forum, Graham . . . Enjoy . . .

Any stories from your time with Acorn? Love to hear them :D

Dave H :D
Parts: UM6502CE, GAL22V10D, GAL16V8D, AS6C62256A, TC514400AZ, WD1772, R6522, TMS27C512, AT28C256
Products: ARA II, ARA III, ABR, ATI, AP6, MGC, AP5 . . .
For a price list, contact me at: Retro Hardware AT dave ej hitchins DOT plus DOT com

gtoal
Posts: 5
Joined: Sat Nov 04, 2017 2:07 am
Contact:

Re: 6809 experiments

Post by gtoal » Sat Nov 04, 2017 9:55 pm

daveejhitchins wrote:Welcome to the Forum, Graham . . . Enjoy . . .

Any stories from your time with Acorn? Love to hear them :D
Perhaps in another thread on another day. And most of the best Acorn stories are not repeatable in public ;-)

G

User avatar
jgharston
Posts: 3249
Joined: Thu Sep 24, 2009 11:22 am
Location: Whitby/Sheffield
Contact:

Re: 6809 experiments

Post by jgharston » Sat Nov 04, 2017 11:47 pm

gtoal wrote:Perhaps in another thread on another day. And most of the best Acorn stories are not repeatable in public ;-)
Is it safe yet to recount my experiences at Watford Electronics? ;)

Most of my time at AFE Hong Kong, however, is entirely repeatable. I wish I'd taken photos as everything's in my head.

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.25
(C) Copyright J.G.Harston 1989,2005-2015
>_

crj
Posts: 834
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: 6809 experiments

Post by crj » Sun Nov 05, 2017 4:30 am

Wow, and there's a blast from the past!
gtoal wrote:Perhaps in another thread on another day. And most of the best Acorn stories are not repeatable in public ;-)
I heard about the taxi; tell them about the taxi!

dominicbeesley
Posts: 654
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 6809 experiments

Post by dominicbeesley » Sun Nov 05, 2017 5:37 pm

Thanks Graham,

I'll look around at the Vectrex forum, I will also see if I can track down any active Coco programmers at some point.

I'm sure Any stories you, or JGH have would be received with interest!

D

User avatar
myelin
Posts: 467
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: 6809 experiments

Post by myelin » Tue Nov 28, 2017 12:55 am

hoglet wrote:Yes exactly, the only remaining stocks have 2x female DIL headers on the bottom, not the 40-pin DIP male header.

I don't think any more are being made.
Time for us to make our own miniature FPGA board perhaps?

The XC6SLX9-2CSG225 is 13x13mm, which will (just) fit between two rows of 15.24mm pins. Also requires config flash, 1.2V power, and level shifting, so it's going to be tight, but probably in line with the original GODIL.
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

crj
Posts: 834
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: 6809 experiments

Post by crj » Tue Nov 28, 2017 1:36 am

The Preci-dip 350-80-1nn-01-899101 header looks extremely interesting: it mounts via large surface-mount pads instead of through-hole, which means you have some extra space on the other side of the board.

Meanwhile, the Altera Max 10 FPGA range in 169-pin UBGA is 11mm * 11mm, small enough to fit between the rows of pins in a 0.6" DIL package. It runs from a single 3.3V supply and has integrated flash with a startup time in the low milliseconds.

How do I know this? Well... it's possible we should be avoiding duplication of effort!

User avatar
myelin
Posts: 467
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: 6809 experiments

Post by myelin » Tue Nov 28, 2017 1:49 am

crj wrote:How do I know this? Well... it's possible we should be avoiding duplication of effort!
Excellent... I'll stop thinking about this one and concentrate on finishing the six or so things I'm already pottering around on!
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most popular: fast serial port, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

dominicbeesley
Posts: 654
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 6809 experiments

Post by dominicbeesley » Sun Feb 25, 2018 1:23 pm

I've made some progress this past few weeks.

1) Sent off a board for fabrication
This is a proof of concept testing board, it plugs into the Beeb's cpu socket and hosts a MachXO3 breakout board as a mezzanine. It also has 1MB SRAM, 512K ROM a battery backup function. This is all completely OTT but should allow me to get further with my blitter etc testing but it also has another trick. There's a pass-thru connector to the original CPU but I've wired a second socket that will take a 6809 (not at the same time as a 6502). The plan is to have jumpers to select which host (Beeb/Master/Elk etc) and jumpers to select which cpu (6502,65c02,65816 or 6809/6309). This 1st cut board will only work in a Model B (probably) as I didn't bother to check it would physically fit in a Master or Elk. If I do another iteration I'll probably try and make it smaller and fit in any machine by using smaller surface mount components - the current one is large, to fit the 3"x3" fpga board and also uses DIP packages for the RAM, mainly for ease of testing/bodging/upgrading

2) Tweaked the 6809 MOS ROM
This was mainly tweaking for the hardware addresses is the Beeb instead of those on my original 6809 boards and adding lots of IFDEFS around 6309/6809/hardware specific code.

3) More BBC BASIC development
Now supports arrays and so will run more software...still far from finished but is still probably more useful than the average MS BASIC I used to have to work with.

4) Made a mock up so I've got some known good software to test the new board
In preparation of thrown together a mock up using a DE0 nano and xeropage level shifter board to mimic a 6809 in the
I finally got the machine to boot into BASIC just now (after a lot of head scratching I'd stupidly held the FIRQ line high not remembering that the cpu09l core has positive active irq/firq/nmi doh!)
This isn't that much use as there are no filing systems etc yet so I will need to port something - I did a USBFS for the original machine that was based on MMFS but used a Vinculum VDIP2 as the medium as it does a lot of work for you) so I'll either have a look at porting that FS to the datacentre or add in the SD card code for MMFS...

I really love the challenge of starting with almost nothing and getting it to do something...even if, in the end, it's not that useful!

D
Attachments
20180225_125618-s.jpg
20180225_125614-s.jpg

dominicbeesley
Posts: 654
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 6809 experiments

Post by dominicbeesley » Wed Feb 28, 2018 4:40 pm

I've spent the last few evenings (into the early hours) making a start on porting the bare-bones of HostFS to the 6809, I've got it to the point where it boots, selects the FS (anything further tends to crash the machine). I then spent some time on making the NoICE mos rom work better when debugging ROMs/SWRAMs. Then I managed to snap the usb connector off the pro-micro on Myelin's fast serial card so I'm a bit stuck for debugging host FS until another arrives as I need two serial ports.

I've also reworked the build system (not wholly successfully) to output binaries suitable for all the combinations of hardware I have on the go i.e. 6809/6309 and BBC B/Chipkit 1/Chipkit 2 and options for the mos to have a NoICE debugger built in or not (I will move NoICE into its own ROM at some point but that would make debugging other ROMs a challenge!)

In the meantime the latest board has arrived, I've just dug the car out of the snow and collected my SMD solder station and am in the process of setting up a new work area (the toddler is not going to be happy as she thinks that that is her "colouring desk"). I wonder if this board will work...
20180228_161207-s.jpg
I don't remember ordering red with gold finish! Too much?

D

IBM portable PC
Posts: 151
Joined: Mon Apr 01, 2013 9:48 pm
Location: Melbourne, Australia
Contact:

Re: 6809 experiments

Post by IBM portable PC » Thu Mar 01, 2018 8:27 am

Any thoughts of porting the Microware OS/9 os? This would create the first multitasking and multiuser BEEB!
WISH LIST: Acornsoft C Compiler PDF manual, Anything 68008/68000 related, LVL Upgrade manual/ROMS, Watford Floppy Drive Selector, Commodore (CBM) PET ROM/S for CST Procyon IEEE-488 Interface", Beeb on a Eurocard systems

dominicbeesley
Posts: 654
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 6809 experiments

Post by dominicbeesley » Thu Mar 01, 2018 2:21 pm

I've had a look at the NitrOs9 version, which is still on SourceForge, it's on the round-tuits pile at the moment. What with porting the MOS, MMFS, USBFS, HostFS, BASIC to 6809 and then finishing off blitter/sound/dma for 6809 and 6502 and designing the new motherboard it is somewhere near the back of the queue...it does look interesting though I'm not sure how actively it is being developed/supported.

Today I are been mostly trying to fix my Windows 10 machine which is used for "Real Work" and FPGA development, just as I sat down to start porting the 6809 test to my new hardware last night I got a BSOD. Now 50+ reboots later I can still get no further than Safe Mode...very frustrating. What's worse is that it is snowing so I can't just nip out and buy another machine or parts, nor order them as it doesn't look like we'll be getting anything delivered for a couple of days!

D

dominicbeesley
Posts: 654
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 6809 experiments

Post by dominicbeesley » Sat Mar 03, 2018 11:12 pm

In between re, re, re, re-installing Win 10 I've managed to get a few minutes to look at the new board. It now will run a John Kent vhdl 6809 and boot into the MOS and the bottom SRAM is acting as a big sideways RAM with HostFS loaded into bank 0. Apart from resoldering the reset line it's been pretty much plain sailing so far.

I need more wine and sleep but hope to have ROM, RAM, battery backup and a _real_ 6809/6309 soon. Then I'll switch me ROMs back and have a go at 6502/65c02/65816 and then the blitter. Then I need to look at how/if I can make this all work with jumpers to select the different physical processors or whether I will just need to do different builds.

D
Attachments
20180303_224516-s.jpg
20180303_224509-s.jpg

Post Reply