Thursday 21 April 2005
Par Torlus,
Thursday 21 April 2005 à 23:23 :: FPGA
Here is the source code for both hardware and software.
It is, and will remain, totally undocumented. There are plenty of things I wanted to do on the processor design, but well, it will be much easier (and more realistic) to use an existing processor and its set of development tools. I received yesterday a Z80 MCU, and a ARM one is expected to knock at my door soon. It will hopefully lead to more serious stuff.
There are 3 directories in the archive :
- hw that contains VHDL files, UCF file for Xilinx tools, and some perl scripts to append PandaForth to the ROM file containinfg the design.
- forth that contains Java source that generates the PandaForth ROM. There are also some other sources to run PandaForth as an applet, through a serial port of a computer, as well as an outdated version of the emulator.
- emu that contains the C++ source of the emulator (as well as the Borland C++ Builder project, and gba-tt.exe, a tool to convert graphics for use in the system).
Download the archive here.
The processor core architecture is monolithic (and horrible), but the main ideas are there. I could have made a much better design by splitting the design in smaller parts (as it is the case in every processor design)...
Anyway, with a real CPU core, I'll be able to focus on more specific parts, like Graphics and Audio processors, etc... hopefully leading to something more interesting :)
EDIT : I updated the archive with a statically compiled version of BixEmu instead of the previous one that needed Borland runtimes. Thanks to skweek for pointing this out.
aucun commentaire
:: aucun trackback
Sunday 17 April 2005
Par Torlus,
Sunday 17 April 2005 à 21:37 :: Home
Here it is ! A first working version of my system, which is quite completed (at least for my first objectives).
With the simple SDK I wrote, I started to design a very original space shooter game, as you can see :)
I have in mind many hardware projects, around this current achivements or not... This means that in the next weeks, the FPGA section will still be alive.
Source for both software and hardware design will be available in the next weeks.
EDIT: The source is available now, see the FPGA section
aucun commentaire
:: aucun trackback
Par Torlus,
Sunday 17 April 2005 à 21:29 :: FPGA
As you can see in the Home section, I have now a very basic system (and set of tools) running. But although I am, in a way, satisfied of this achievement, on the other side, there are several issues, the main one being the performance...
The system is way too slow, the main reason being that I have not been able to implement the caching mecanism of CPU stacks, which is obviously dramatic for a stack-based processor :) I mean, the design has been done, but it won't fit in the 200Kgates Spartan-3 I currently use.
At this stage, I thought about many solutions, one of these being to purchase a bigger board that could handle an improved design. But as I plan do to many other hardware projects, I decided to purchase instead a bunch of components :
- Some DACs, both for Video and Audio.
- A Video Encoder (RGB to PAL/NTSC).
- Some MCUs : well-knows PICs but also some ARM and Z80 based ones.
- a USB controller, and some CPLDs.
With all that stuff, for less than the purchase of a new board, I'll be able to do things related to hardware emulation of old computers, as well as the design of an improved custom console (by moving some parts of the design into MCUs or CPLDs), and many other things I'm thinking about... I'll keep you informed about it. Stay tuned :)
aucun commentaire
:: aucun trackback
Thursday 14 April 2005
Par Torlus,
Thursday 14 April 2005 à 22:23 :: FPGA
I made some enhancements to both hardware and software :
- I added a new syscall to read vblank status.
- I rewrote my Emu/SDK in C++, it's now much faster (especially for Video emulation part). Its code name is now BixEmu.
- I managed to feature resource embedding from PandaForth running in BixEmu. It means that it's now quite easy to include graphics files, exported with some tools, as you usually do when developing for GBA, for instance.
With these new features, it will be easier to develop a game :)
aucun commentaire
:: aucun trackback
Tuesday 12 April 2005
Par Torlus,
Tuesday 12 April 2005 à 23:56 :: FPGA
Last night I spent some time building my joystick interface, and here is the result...
Yeah, it's rather ugly, but it works :)
Later, I'll probably make a simple PCB design, in order to have a proper board made by professionals (like Spark Fun, among others) that offer such service for hobbyists.
The PCB could handle joysticks interface, as well as a... MMC socket, who knows ? :)
aucun commentaire
:: aucun trackback
Thursday 7 April 2005
Par Torlus,
Thursday 7 April 2005 à 22:38 :: FPGA
I made a quick tool to build ROMs for my system and emulate it. Most of the work is based on first PandaForth implementation. See the screenshot below.
On the left, you have the PandaForth console, in which you can load source files, and on the right you can see the Video emulation. Wonderful isn't it ? :)
Oh, and as I was fed up to always talk about "my system", I decided to call it Bixente.
2 commentaires
:: aucun trackback
Tuesday 5 April 2005
Par Torlus,
Tuesday 5 April 2005 à 21:59 :: FPGA
Just a quick update to show you this picture, that looks more like the original than my previous attempt :) Colors are messed up, but I don't plan to use Spectrum-related stuff (see below).
At first, I had the idea to make my video ram layout compatible with the Speccy's one, but I quickly dropped the idea, as this layout is a nightmare : screen divided in 3 parts, interleaved lines... I designed a much more simple layout instead (here the conversion from SCR to my layout is done in the PandaForth generator in Java) .
Being back to work takes me much time and energy, so the project will slow down a bit. Next thing I plan to do is the Joysticks interface. Will be very easy to design, but it involves too some do-it-yourself stuff, at which I'm not good at all :) But well, some hours spent on a week-end should be enough.
aucun commentaire
:: aucun trackback
Par Torlus,
Tuesday 5 April 2005 à 00:05 :: FPGA
I started to work on my Video Interface (based on VGA).
I wanted to implement the following features :
- 320x240 resolution, 8 colors.
- Screen divided in squares of 8x8 pixels, each of these squares containing 2 colours out of the 8 available.
- With the help of previous color scheme, the whole screen is seen as a bitmap (1 bit per pixel).
Terrible specs, aren't they ? :) And you may have noticed that the video memory organisation is very close to the one of the Sinclair ZX Spectrum.
While working on this, I encountered the issue with design size again... Bad luck, so I decided to shrink down the screen size to... 256x192, yes, exactly what Sir Clive's Speccy provides :) It allows me to use .SCR files "as is".
Here is a picture of my Work In Progress... As you can see, some things need to be fixed, but that's not that bad for a few hours spent on it...

aucun commentaire
:: aucun trackback
Saturday 2 April 2005
Par Torlus,
Saturday 2 April 2005 à 17:58 :: FPGA
I made some improvements and bugfixes to both PandaForth and the CPU :
- The CPU now supports Exception handlers for stacks overflows/underflows, and unknown opcodes.
- I uploaded the new source of the Serial Controller.
- I added a System Interface function to display values on the 7-segments display of the board.
- Exceptions handlers installed by PandaForth "reset" its interpreter, so it is much more safe to use :)
aucun commentaire
:: aucun trackback
Par Torlus,
Saturday 2 April 2005 à 10:19 :: FPGA
I've been able to implement the full instruction set, and after some tweaks, here it is... The CPU is fully working, as well as the version of PandaForth designed for it.
This is the most significant part of the project, and now it's done. I'm quite happy with this, especially as the whole design process was a bit weird, as it was like building a tunnel by digging the both ends at the same time. PandaForth has been designed on a instruction set that changed many times, and I had also to build the CPU "from the ground up".
I was a bit "afraid" in the last days... I think that, like the case of the tunnel, even if your calculations are proven many times, you still wonder if at the end, both ends will meet :)
Here, everything went fine, so a big step in the whole design process has been achieved. And I'm quite happy I've been able to do that on the right time schedule (my week of vacation).
Now I know that the remaining parts should be easier to do, but will still provide a lot of fun :)
aucun commentaire
:: aucun trackback
Friday 1 April 2005
Par Torlus,
Friday 1 April 2005 à 23:20 :: Home
If you visited my website these last weeks, you may have noticed a lot of news related to PandaForth. This picture is showing PandaForth running on a very special platform...
Yes, it means that my own CPU prototype is up and running !!! The most important part of my custom console project (see FPGA section) is done.
I'll tell you more about it in the next days, but I must say that it's been a long time since I haven't be so pleased about one of my homebrew projects.
aucun commentaire
:: aucun trackback