Welcome to GordonJ's BBC in
Please feel free to contact me at firstname.lastname@example.org
To find out about the latest mess developments go to http://mess.emuverse.com
|Hi, if you are interested the idea of open source BBC Emulator Development, then you just found the right place to be.
Please contact me if you feel you can contribute, Here are a few things I would really like to get working in this emulator:
The BBC Master.
BBC B solidisc sideways RAM (128K top 8 banks, mapped in with the userport as the rom select)
BBC B oversized ROMS (a number of companies released 32K 64K and even 128K roms that would get paged into 16K rom sockets)
BBC B Opus Chanenger (an external disc drive with up to 512K of ram disc)
BBC B speech hardware
Cassette Loading support
BBC Master Second processor support (6502, Z80 and maybe even the 80286).
I would like to get a group together to make some of these things happen.
If you can help please contact me at email@example.com
|OK... So it has been a very very long time, life has taken over all my coding time.....
So the split mode support is still not been fully added, Instead I have gone back to really work on the core of the video code, this new video core will be included in the next mess release, but still not yet with split screen support.
I have made a status file which should let you know exactly what is working on what is not. You can get it here
ELITEI have started adding the split mode timing support and Elite is now looking real cool. The code is not finished yet but the timing does work great, I did not have to fudge the timing at all to get the elite screen to work. I think I will try Revs next.. hmmm. now what other games used split mode stuff???
|I took a bit of a side step in the last week and started looking into something a little different.
It all came about from the fact that I had never really understood how shadow video ram was mapped into the memory and how the hardware controlled read and writes to shadow ram or normal ram, and so it was bugging me that I did not know how this stuff worked and had never had a machine with shadow ram to work this stuff out, so there was one way for me to work this one out, and what is more I don't think I have seen any other BBC emulators that does this bit (but I could be wrong).. What am I going on about?
MESS now has BBC B Plus support.
Yes, those strange machines that where just sort of released as a stop gap until the BBC master was release are now emulated in MESS.
there are two new drivers added:
The BBCBP emulates a BBC B+ with the normal 64K of memory and a WD1770 disc controller
The BBCBP128 emulated a BBC B+ with the memory upgrade giving a total of 128K of memory and also has the WD1770
The extra 64K of ram in the BBC B+ 128K was just mapped in as 4 banks of sideways ram in bank 0,1,C and D. I guess I should really add some sideways ram to the BBC B driver at some point soon.
So anyway... look out for the next MESS release and have fun with the shadow and sideways ram.
PS. I am going to try to spend a bit more time getting the BBC B drivers a little more complete before I start looking at adding BBC Master support.
|Well Kev has been at it again and now both the 8271 and the WD1770 work in the BBC driver. So now the BBCB driver uses the 8271 and the new clone BBCB1770 uses the WD1770. One other quick point to note is that very basic printer support has just been added to MESS so I will soon have a quick look to see if I can get that hooked up and working. (OK so the MODE 7 cursor is still not fixed, but I am working on that area right now.)
|A Big thanks to Kev for getting disc drive support working, now I can get all my old software loaded to test out the rest of the emulator. So he has got me back developing the rest of the machine again. Right now I am working on the MODE 7 teletext support. It is already starting to look very good, but does need a little more work yet to get it complete. Here are a few more pictures from the latest driver, this teletext support will be in the next release.
Kev is now also working on WD1770 disc support so that should be working real soon now too.
After I am happy with the Teletext support joystick support will be next up.
|Quick update just to say: look out for the next mess release as the BBC driver now have 8271 disc support!!!!! (read only) A big thanks to Kev Thacker for getting this working.
|I have made up a detailed report of where exactly the BBC driver for MESS is at, look at the picture at the bottom of this page to understand the colour information.
|After one very late night of coding (3am), and some really great help and some very cool code from Lee Ward, followed by a bit of head scratching when it just did not want to work. We finally got there!! and so now the BBC Mess driver has working Cassette support!!!!
The code is a really messy hack at the moment, but it should be straight forward from here getting it all cleaned up, and with a bit of luck it should be ready for the next beta release.
|Well there is lots of fun stuff happening in this driver at the moment,the latest BBC code made it into MESS 37 Beta4 :o) but there is still no disc support:o( but anyway I have changed a few colours on the diagram below.
The first change is the Video ULA going from being worked on (Cyan) to working but room for improvement(Yellow). It is working very well now, just missing a flashing cursor, and may need a little bit of work to interface with the teletext chip when I get that working better.
The teletext processor is not really developed yet, there is just a hacked teletext display put in, just to get mode 7 working, it only displays white text at the moment.
I have changed the disc drive from red to cyan, as it is now being worked on by Kev Thacker, so a big thanks goes out to him, also I am having a go at adding a WD1770 emulation as it is already in MESS, but neither are working at all yet.:o(
The final strange thing that I am now looking at is cassette emulation!!!! I really want to get some files into this emulator, and as I am not getting anywhere fast with the disc drive, the tape was the next best thing, and it looks like it may even get added in time for the next beta release. :o)
I think I am going to have to write a program that turns BBC files back into cassette wave files, it is all a little bit mad but I am having lots of fun getting this one working, I will keep you posted on how it is coming along.
Bye for now, GordonJ.
|The 6845 emulator is working so well that I have started adding the last few little bits it was missing, so it now has basic cursor support (does not flash yet) but it all slotted in to place very nicely. :o) Still got to add display blanking delay and cursor display delay and also have a look at interlacing (I need this all working to get MODE 7 working correctly) none of this should be to hard to add and will not slow it down noticeable.
|I have been having some fun with the Video emulation code, just to see how well it stands up, and it is looking good.
|The 6845 is now in and working very cleanly, so it is now being shown in yellow on the diagram below, (there are still a few more things like cursor control that need to be added.) Just doing a bit more work on cleaning up and optimising the Video ULA and that should be going yellow before to long too. Then I will get back to either the Teletext or maybe have another look at the disc drive controller.
|MESS 0.37Beta3 is out and the BBC driver has been switched no, so go try it out. It still has the old video emulation in it, so look out for 0.37Beta4 which should have all the new stuff working.
|Look Out, Here is comes...........:o)
The 6845 code is now working well, Just a little slow as I have not optimised it at all yet, as a result it will not be in the up-coming release.
I got a bit stuck on the 1770 emulator, if anybody has a 1770 upgrade board and lives in the London area or anybody has any information on the extra latch chip please let me know.
|Well, I have had a bit of a break from my MESS BBC driver over the last couple of months. (I think I just got a bit bogged down with the 6845 and 8271 drivers and just did not find the time needed to make any progress with them). So now the BBC project is not dead just sleeping a little, I hope to get back to it next week, and am looking at adding disc drive support with the already emulated WD179X disc controller, (this should work like the WD1770 as used in the DDFS BBC systems.) So stay tuned over the next few weeks to see if anything start to happen again.
|I now have a very complete 6845 emulator working (outside of mess), I just need to clean it up a bit and then plug it into the MESS BBC driver.
You may have noticed that development has slowed a little over the last week or two. Well this is where it is at:
I am trying to get the video display really accurate (so that split mode screens and palette switching stuff will work). My first video display code did a good fast job of drawing the screens mode 0 to 6, But was not really a very accurate emulation of the BBC hardware, it was more of a simulation of the video hardware, as are a lot of video hardware drivers in mame (you always have to draw the line somewhere.) This means that it would not be at all easy to add the cursor and the split mode code without things getting really messy. So I took a step back and started really looking into the video circuitry of the BBC micro. So I now have a really good understanding of the 6845 CRTC and the video ULA, so then I start thinking about how to emulate everything. So I start to build a really accurate 6845 emulator with it controlling the position on the emulated screen that the graphics should be draw, that then calls up some Video ULA emulation to actually put the pixels on the screen, but then I start to think that really the Video ULA is clocking the 6845 so it should be the Video ULA that is in control and that it is clocking the 6845. The next realisations was that really you should have the video ULA in control calling the 6845 every clock cycle and then you need TV emulation code to take the pulses from the 6845 and the Video ULA and it should be this that finally makes the picture on the PC screen. By this time I start having brain melt down.
So that is where I am right now, I am back to the idea of having the 6845 in control passing its address and screen position on to the Video ULA emulation, which then passes this on to some code which is effectivity a TV emulator.
The code will I hope now be a very accurate emulation of the real BBC micro hardware, but is getting very slow.
So I will get it all working some time soon, and then will spend lots of time trying to optimise it all.
P.S. anybody out there want to try and add the 8271 disc drive controller emulation????
All the modes from 0 to 6 now work really nice. Mode 8 also works, as do some really strange effects you can get by sending some silly values to the ULA registers. I just included them in the emulator for completeness.
There is a small problem with some optimisation code I have added if you select way out of range 6845 register values that can crash the emulator, but I will sort these out very soon.
Now I will start to work on the teletext mode 7.
Also I have added a bit at the bottom of this page that lists what is still to be done.
Well I just tracked down the 6522 bug, it was not an interrupt problem but a timer control problem.
And I did clean up the interrupt handling a bit while I was at it.
so look what works now:o)
Modes 0,1,2 & 3 now work really well,(none standard sizes of these modes also work),
Modes 4,5 & 6 (Also mode 8, 16 colour 10 characters wide) are next to be added, and should be just a small rewrite of the mode 0,1,2 & 3 code.
I think there is now a problem with the user 6522 interrupts.(DOH)
As soon as all the modes start to work I will make a beta release available.
After all the modes are working, the disc drive support is next.
(There is also work going on to add cassette support to mess, it works in one or two drivers already, so I may take a look at this soon.)