[Tech] Simple single board computer

LukeWells

Active member
Credits
334CR
[ukvac] [Tech] Simple single board computer
I want to build a simple single board computer that can output to an arcade monitor.

Basically I need a cpu/ram/rom ..... do I need a dedicated crt controller or can the sync and video be output directly from a cpu (via amplification)

Can someone point me to some good resources on the web, and or recommend some ready built solutions or recommend a cpu/microcontroller thats easy to code for.

I can do a bit of pic programming, but I don't see a pic being powerful enough to do the graphics I want to do.

I know that velleman make a kit using a pic that plays pong on your TV, I think I might buy one to see how that works.

Alternativly ....... are there any cheap arcade games that are single board with a simple layout, that are easy to write for so I could start out attempting to get my own software running on.

Gauntlet manual provides quite a bit of information on the hardware including all the memory maps and signal information but its a bit of a complex board to start work on.

Any info would be great.

Thanks

Luke
 
A

andrewhannay

Guest
RE: [ukvac] [Tech] Simple single board computer
> I know that velleman make a kit using a pic that plays pong
> on your TV, I think I might buy one to see how that works.
>
I would go with this route.

> Alternativly ....... are there any cheap arcade games that
> are single board with a simple layout, that are easy to write
> for so I could start out attempting to get my own software
> running on.
If they are on a single board then they probably have custom chips
but that shouldn't be a problem. If you download the MAME source
and checkout the drivers directory then there is loads of info
on games memory maps. Makes quite interesting reading (sad, I know)

Andrew
 

LukeWells

Active member
Credits
334CR
Re: [ukvac] [Tech] Simple single board computer
> > I know that velleman make a kit using a pic that plays pong
> > on your TV, I think I might buy one to see how that works.
> >
> I would go with this route.

Well it's probably a good starting point, try and modify the code, get it to
do something different. But somehow I don't think that velleman provide any
technical information other then where to solder the components do they ?

>
>
> > Alternativly ....... are there any cheap arcade games that
> > are single board with a simple layout, that are easy to write
> > for so I could start out attempting to get my own software
> > running on.
> If they are on a single board then they probably have custom chips
> but that shouldn't be a problem. If you download the MAME source
> and checkout the drivers directory then there is loads of info
> on games memory maps. Makes quite interesting reading (sad, I know)

Yes I did this a few weeks ago, loads of information in the drivers, very
handy!

Anywhere else anyone can think of for info ?

> Andrew
>
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
 
A

andrewhannay

Guest
RE: [ukvac] [Tech] Simple single board computer
> But somehow I don't think that velleman provide any
> technical information other then where to solder the
> components do they ?
No they don't. If you can upload the code from the IC and disassemble it
it's a start.

Andrew



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
 

Adrian Purser

Moderator
Staff member
vacBacker
Feedback
2 (100%)
Credits
213CR
Re: [ukvac] [Tech] Simple single board computer

> Basically I need a cpu/ram/rom ..... do I need a dedicated crt controller
or can the sync and video be output directly from a cpu (via amplification)

I've seen Atmels AVR micro used before to generate video but only very
blocky stuff. It's really only suited to applications like pattern
generators etc.
There are several other CPUs that have graphics controllers built in such as
the arm based CPU that is used in the bush internet TV box (These are quite
cheap and probably aren't difficult to figure out if you fancied writing
some code for one).

If you're up for building your own circuit there are quite a few graphics
chips available.

On my early graphics controllers I used a 6545 CRT controller chip. This
interfaces to CPU's like the 6502 and takes advantage of the unused cpu
clock phase to provide transparent memory access for the video refresh.
These are a little old now but can still provide a good basis for a simple
graphics generator.

On more recent projects I have used a CPLD (programmable logic device) to
generate all of the video timing etc that I have needed. I have a simple
design for a CPLD that generates H & V sync and address signals to display a
static image from an eprom if that would be any use.

Another approach would be to use a PC motherboard with built in graphics
card and program it to generate standard video timing.

Cheers

Ade



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
 

d-type

Active member
vacBacker
Credits
172CR
[ukvac] Re: [Tech] Simple single board computer
If you don't want to fiddle with hardware design (recommended),
simply use an old classic PCB.

Step 1) Choose your favorite processor type - Z80 or 6502 or 6809.
Step 2) Choose your programming language - High Level:'C', Medium
Level:Forth, Low Level:Assembly. (Or perhaps something else?)
Step 3) Get yourself a cross compiler for 'C'/Forth or an assembler
for Assembly.
Step 4) Get the memory map sorted out for the cross complier from
whatever docs you can find on the net (this is the best bit about
classics - the docs are all out there).
Step 5) Write some simple code, cross compile, download, test, code,
cross......

Best of all, you can use MAME so you don't even need any hardware to
begin with.

I've done this with a Galaxian PCB with MPE's Multi-tasking Forth83
and also with Centipede with MPE's single tasking Forth79. Works a
treet.

Alternatively, if you just want a display and keybaord (not
necessarily an arcade monitor), you could consider adding some simple
com port hardware on an embedded PCB and then implementing a terminal
driver.

You can then use a PC running HyperTerminal or Procomm or such like
as a terminal with keyboard. I've done this for VT100 using Forth as
the environment gives you an interactive terminal as standard.

When multitasking, this allows you to see what all the other
processes are doing whilst they are doing it and allows you to change
stuff whilst it's running. Even better, you can even change the
programs whilst they're running!

For LOADS of Forth compilers, mostly public domain,
http://www.forth.org/compilers.html

There's several links with circuits/parts lists etc. there too for
people who've made their own Single Board Computer with not just
Forth as the OS. I got my Forth environment working in about 1/2 an
hour.

Perhaps if I get around to it, at the next meet I'll bring along a
classic PCB running a Forth interactive environment with some demo
programs (Sine wave generator, Conway's Life etc.) for anyone to have
a play with and show you how it's done. Anyone intersted?

Can't help you with 'C' resource, I'm afraid. Life's just too short
for developing in 'C', not to mention the memory requirements...

D-Type
 
A

andrewhannay

Guest
RE: [ukvac] [Tech] Simple single board computer
> I've seen Atmels AVR micro used before to generate video but only very
> blocky stuff. It's really only suited to applications like pattern
> generators etc.

Being a minimilist I'm sure I could use a 1k PIC (16C84) to generate
a simple test pattern. All you need to do is output the sync pulse and
the video. Just get the timings right.
Keep it simple to start with then move on from there.
Might have a go of that sometime.
 

LukeWells

Active member
Credits
334CR
Re: [ukvac] [Tech] Simple single board computer
> There are several other CPUs that have graphics controllers built in such
as
> the arm based CPU that is used in the bush internet TV box (These are
quite
> cheap and probably aren't difficult to figure out if you fancied writing
> some code for one).

i'll have to see what resources i can find on that, sounds interesting, i
know alot of the fancier new mp3 players use arm processors and there its
lots of source for these on sourceforge

> On more recent projects I have used a CPLD (programmable logic device) to
> generate all of the video timing etc that I have needed. I have a simple
> design for a CPLD that generates H & V sync and address signals to display
a
> static image from an eprom if that would be any use.

I would be very interested to see this, everything adds to the learning
process!

> Another approach would be to use a PC motherboard with built in graphics
> card and program it to generate standard video timing.

I know there is software (like arcadeos) that does this.

(1) has anyone had experience in modifying the bios for a motherboard (or
seperate graphics card) to make it so that it boots up with the correct
timings for an arcade monitor.

(2) could the bios be modified to skip all the pre/post boot checks, skip
displaying the diagnostic text etc, and go straight into the program?

(3) can the rom on a pc motherboard be extended so additional roms can be
added (i am aware of ide flash drives, these are an option). There is also
some limited space in the bios roms normally, could this be utilised

> Ade

Cheers for taking the time to reply

Luke
 

LukeWells

Active member
Credits
334CR
Re: [ukvac] Re: [Tech] Simple single board computer
> Best of all, you can use MAME so you don't even need any hardware to
> begin with.

all I can say here is DOH! seen as I have been taking a good look into
mames drivers are source recently. I should have already thought of that. I
think this is going to be the first step I take (althought I have ordered
one of them pong things from maplin as well :)

After I manage to get everything working in mame I'm going to have to select
my hardware. Anyone care to name a cheap common game with lots of info
available that no one likes and wont mind me hacking :) Too bad I have not
yet found the memory maps for warp warp :-D

> Perhaps if I get around to it, at the next meet I'll bring along a
> classic PCB running a Forth interactive environment with some demo
> programs (Sine wave generator, Conway's Life etc.) for anyone to have
> a play with and show you how it's done. Anyone intersted?

hmmmmm yes but that would mean I'll actually have to go to a meet :-D

> Can't help you with 'C' resource, I'm afraid. Life's just too short
> for developing in 'C', not to mention the memory requirements...

How easy is forth to get into. I have no experience in it whatso ever, or is
it one of these languages that you have no chance unless you did programming
at school 20 years ago :p Too bad you can't cross from pascal, i've been
fluent in that for years. Maybe I should have words with the free pascal
team :)

> D-Type
>
 
A

andrewhannay

Guest
RE: [ukvac] Re: [Tech] Simple single board computer
> > Can't help you with 'C' resource, I'm afraid. Life's just too short
> > for developing in 'C', not to mention the memory requirements...

There's nothing wrong with 'C'. All my embedded programming is in C and it's
OK.
I've looked at some of the assembly it creates and it's fine.
Addmitadly C or C++ compiled for a PC geberates loads of code but
simple embedded compilers work great.
Mind you, I don't like including loads of external libraries as that does
bulk up the code.
Andrew
 

d-type

Active member
vacBacker
Credits
172CR
[ukvac] Re: [Tech] Simple single board computer
Forth is a PIECE OF PISS if you have a reasonable idea of how
microprocessor hardware works in general and you understand what a
stack is. Even if you don't, it's still easy.

Best of all, all of the old 8-bit micros have several implementations
of Forth on them, which all have manuals. Pick on up from eBay for
buttons, or download one from an emulation site. ( I've picked up 3
in the last few months to rip the Forth OS from them, as it can
easily be transplanted onto another piece of hardware!)

There is a site which shows you how to create a Jupiter Ace which was
a native Forth computer. There is a copy of the original manuals for
that on there, as well as links to Jupiter Ace emulators. In fact
this is probably your easiest and best way of learing Forth on an 8-
bit. I think it has some smaple programs as well.

The forth.org site also has lots of Forths for PC's many of which
have tutorials. I recommend F-PC for DOS, it's extremely powerful and
has context sensitive help etc.

I've never seen Forth taught in schools, you only get to know about
it if you've a personal telescope control system, you work for NASA,
you use Sun Workstations or was just 'fortunate'.

(Sun Worksatation boot loader is written in Forth - try it, instead
of typing 'boot', try 'words' or 'vlist' - it'll shoe you all the
words available in the Forth kernal. You can run any of them!)

Forth is your friend :)

D-Type
 

d-type

Active member
vacBacker
Credits
172CR
[ukvac] Re: [Tech] Simple single board computer
You've just verified what I said :)

Unless you go out of your way, you end up with loads of unnecessary
crap from libraries that are not needed.

It's also very time consuming to debug an embedded application as it
has no interactive facilities for memory dumping/editing and defining
new code etc.

Ever tried compiling a multi-tasking interactive OS with 'C' in 8k
ROM and 1/2k or RAM? In Forth, no problem!

C is great (especially the type checking), but for tiny embedded
(e.g. classic PCB) it can't touch Forth or assembly.

That's why Atari and several others created 8-bit multi-tasking Forth
systems with a windowed video monitor output in the early 80's for
developing their games on. They nearly sold the system as a home
computer, WAY before Apple did a multi-tasking OS.

You lot don't know what you're missing... ;-)

D-Type
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,058CR
RE: [ukvac] Re: [Tech] Simple single board computer
> After I manage to get everything working in mame I'm going to
> have to select my hardware. Anyone care to name a cheap
> common game with lots of info available that no one likes and
> wont mind me hacking :) Too bad I have not yet found the
> memory maps for warp warp :-D

One that springs to mind is Mr Do. Although it has a custom chip, all
this does is ensure the screen is cleared at the start of a new game, so
you either get hold of a bootleg, that doesn't have the custom, or if
you're feeling flush, use an original one, remove the custom and burn a
new rom which doesn't access it.

I do know which rom it is as I had to remove the custom on my bootleg
(which strangely still has the custom) just lately. I don't know which
one off the top of my head, but I can soon look for you.

Bear in mind that you will be reprogramming the roms anyway, this isn't
an issue, so I don't know what I'm waffling on about!

I may be wrong, but off the top of my head, I thought Mr Do also uses
Z80(s) which have gotta be easy (don't they?).

Obviously I could be spouting crap here as I'm just a lowly C coder who
doesn't unfortunately (yet) understand the workings of game hardware
even if I do know the concepts of a stack. :O)

Hope it helps, but it probably won't!

Guddler.



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
 
A

andrewhannay

Guest
RE: [ukvac] Re: [Tech] Simple single board computer
> You lot don't know what you're missing... ;-)

Admittedly I haven't programmed any multitasking OS, I'm a bit scared by it.
My programming background is Assembly.
I bow to your greater knowledge Oh Forth Master. :-o
I'm going to check out some Forth sites now.
Thank you for enlightening me.
Andrew



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
 

Macro

Active member
vacBacker
Feedback
4 (100%)
Credits
1,999CR
RE: [ukvac] Re: [Tech] Simple single board computer
There is a web page on writing your own stuff for Pacman, mentions C
compilers, hardware maps etc.

http://www.csh.rit.edu/~jerry/arcade/pacman/

personally, when I write things for running on arcade boards, I just use
assembler, but then I've always been an assembler addict!

Galaxian PCB's are easy to program on, and if you can handle the idea of
writing code for 3 CPU's then WC90's are reasonable too (and cheap -
although Mame misses out several important features should you want to trial
your code in Mame first for this one)

*****************************************************************************
This document originates from within the Bounty Group of Companies.
Whilst we have taken steps to control the spread of viruses on our
systems, we cannot guarantee that this file is virus free.

This message, together with any associated files, is intended only for
the use of the individual or entity to which it is addressed and may
contain information that is confidential, subject to copyright or
constitutes a trade secret. If you are not the intended recipient of
this communication you are hereby notified that any dissemination,
copying or distribution of this message, or of any files associated
with this message, is strictly prohibited. If you have received this
message in error, please notify us at once.

*****************************************************************************
Please visit us on the web - at www.bounty.com or www.diss.net
*****************************************************************************



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
 

d-type

Active member
vacBacker
Credits
172CR
[ukvac] Re: [Tech] Simple single board computer
Now this is getting interesting! Which hardware do we use?

Well, if you want power and ease of programming, how about a 6809
Defender boardset - they're well powerful. Or, depending on what you
want to display, you might want to use the Star Wars PCB set for it's
Vector output :)

Alternatively, you might just want something that's cheap, easy to
get and has no customs so it's easy to fix, so Galaxian for Z80 or
Pacman is your kiddy. Or perhaps Centipde for it's 6502 ease of
simplicity or Missile Command if you want bitmap graphics and 6502.

If you need lots of code & graphics, you'll need lots of ROM space.
So a scroller with lots of background ROMs? GnG?

If you want to code in Forth for lots of platforms, without changing
compiler, CamelForth has a version for Z80, 6809 and several others,
so you options there too.

Now i've just remembered C's advantage :), a bit more portable?
Well, for these sorts of platforms, probably not, as you'll still
need to write your own graphics/sound drivers.

So many choices!!! I'd so glad I prefer early 80's stuff, and not
early 90's.

So, get looking through your MAME sources and see which platform will
offer you the facilities that you require for the cheapest cost.

A Mike said, WC90 would be a good value PCB. You could also consider
a Dig-Dug/Galaga if you want to get yourself confused with multi-
processors (hardware multi-tasking?).
 

LukeWells

Active member
Credits
334CR
Re: [ukvac] Re: [Tech] Simple single board computer
Incase anyone else is interested

http://www.home-micros.freeserve.co.uk/JupiterAce/JupiterAce.html
is for building your own jupiter ace

http://www.home-micros.freeserve.co.uk/uk101/uk101.html#Introduction
is very interesting to me .... its a build your own uk101 system using a
serial port to control the unit via hyper terminal etc. A very simple 6502
based system which is very interesting, might be the one for me to start on

oh and
http://www.home-micros.freeserve.co.uk/zx80/zx80.html
build your own zx80/81 (although using todays components it will be 100
times more reliable :)
 

John Bennett

Senior Member
vacBacker
Feedback
10 (100%)
Credits
5,270CR
Re: [ukvac] Re: [Tech] Simple single board computer
Luke Wells wrote:
> http://www.home-micros.freeserve.co.uk/uk101/uk101.html#Introduction
> is very interesting to me .... its a build your own uk101 system using a
> serial port to control the unit via hyper terminal etc. A very simple 6502
> based system which is very interesting, might be the one for me to start on
>

I used to have a UK101 - it was a monster ... unfortunately I dropped it
out of the loft hatch and down the stairs. There were too many peices to
count... :-(

Nige



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

DATA Imported from archives: originally posted by Nige (nigel.scott@rdel.co.uk)
 
Top