6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Tue Jun 25, 2024 5:47 am

All times are UTC




Post new topic Reply to topic  [ 72 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
PostPosted: Sun Apr 29, 2012 7:20 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8460
Location: Southern California
Yes, maybe later I'll do a follow-up for the '816, but for getting newbies into building and programming, I had to resist the constant urge to tell how much better the '816 is, since it again gets that deer-in-the-headlights look and shoos them away unintentionally.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 12:46 am 
Offline

Joined: Wed May 20, 2009 1:06 pm
Posts: 491
GARTHWILSON wrote:
Near the bottom of my home page it says,
New (4/27/12): 6502 PRIMER: Building your own 6502 computer
I'll go put the link in the head post of the topic now.


This is great. Thank you. I'll leave it up to you if you want to post it on Hackaday because it will bring you a lot of traffic. The do it yourself crowd has forums at Sparkfun, Parallax, Hackaday, Dangerousprototypes, Make and Adafruit. I'm sure they would blog about your article which would be good but the traffic part is the board owner's decision because Hackaday's blog alone could bring you over 1,000 visitors in a week.

I'm still reading your instructions and the only question which I have is how to bootstrap the 6502 and I would probably need help with bootstrapping a 65C816S as well. Maybe I didn't recognise how to do it or maybe you are still working on it?


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 12:49 am 
Offline

Joined: Wed May 20, 2009 1:06 pm
Posts: 491
BigEd wrote:
Garth - good work! You've pulled together lots of useful experience and references there.

Dajgoro - Jeff Tranter wrote a couple of articles about cc65 bringup on his replica1 recently which might help you.

Cheers
Ed


I was reading his blog about the Cardiac Computer which was a cardboard computer from Bell Laboratories and I ordered one from Edmund Scientific. I don't think they have many left.


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 8:57 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8460
Location: Southern California
ChuckT wrote:
This is great. Thank you. I'll leave it up to you if you want to post it on Hackaday because it will bring you a lot of traffic. The do-it-yourself crowd has forums at Sparkfun, Parallax, Hackaday, Dangerousprototypes, Make and Adafruit. I'm sure they would blog about your article which would be good but the traffic part is the board owner's decision because Hackaday's blog alone could bring you over 1,000 visitors in a week.

Wow, if it promotes our interest, 1K visitors per week would be outstanding!! The articles have lots of links to this forum and related topics. I'd be glad to have everyone spread the word in whatever other related groups you're in. I'll post on the Yahoo forum, but first wanted to figure out some html problems the W3C html page checker reports. It's so frustrating. It gives error messages saying I lack this or that, and sometimes directly contradicts the html lessons websites I've been using, and yet things show up as intended on my screen except that efforts to change the font for the phi go ignored. I would be interested to know if everyone else is getting the different font sizes, all the pictures are loading, you're getting the overlines for negative logic signals like RST\, and so on. Any problems? I'm using firefox.

Quote:
I'm still reading your instructions and the only question which I have is how to bootstrap the 6502 and I would probably need help with bootstrapping a 65C816S as well. Maybe I didn't recognise how to do it or maybe you are still working on it?

I resisted the urge to say much about the '816, because it seems to scare beginners away more, even though I actually find programming it to be easier than programming the 6502. As for how to bootstrap either one, I take that to mean how to have the computer, soon after it comes out of reset, read a mass storage medium of some kind, put the program material into RAM, and start it running. It could also refer to going basically ROMless and pre-loading RAM including the vectors before letting the processor out of reset. Those might be material for another article (which could be linked), as it's beyond the basics and would depend on what the mass storage is and how it needs to be read with the particular I/O you have on your creation. Is this what you mean? Otherwise, section 18, about 2/3 of the way down the page, shows an example of the starting of the reset routine, with setting up the ACIA which could later be used to feed in the program if it came in over RS-232 instead of a flash memory or similar.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 9:09 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10834
Location: England
For the 816, I'd restrict yourself, at most, to an appendix pointing out that it's a CPU with a lot of extra features. At power-up it runs in an emulation mode which gives it some extra features which are useful, but otherwise is highly compatible. If you make use of the extra instructions your software is of course no longer able to run on a 65C02. It's a good CPU to choose if you want to address more than 64k of memory with a minimum of effort. Then refer to a fuller document about the '816. (Edit: for a programmer perspective, "A 65816 Primer" is good.)

As you say, if you bring it to the forefront it all becomes too scary. Pacing is important!

(On bootstrapping, I see you have some words here about the vectors and initialising the hardware as the first actions in a ROM. Maybe there could be a section header to make it stand out more.)

(On the HTML: I'm seeing the overbars, on Chrome.)

Cheers
Ed


Last edited by BigEd on Mon Apr 30, 2012 9:40 am, edited 2 times in total.

Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 9:29 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10834
Location: England
On the subject of the Phi symbols, I used the HTML entity codes Φ and φ to get the upper and lower case phi characters - instead of pasting them directly into the source, as you have them - and the result is like this:

(the processor having the Φ2 output that feeds the φ2 inputs of all the I/O chips)

[That's text, so it will display in a browser as it would for your page.]

See also image attached, which is how it shows in my browser.

For the benefit of readers not familiar with the Greek alphabet, I recommend you spell out that the signal and pin are pronounced Phi2, if you don't already.

Cheers
Ed


Attachments:
phi.png
phi.png [ 4.36 KiB | Viewed 994 times ]
Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 6:53 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8230
Location: Midwestern USA
BigEd wrote:
(Edit: for a programmer perspective, "A 65816 Primer" is good.)

Actually, I'd have to mildly disagree. :D I took a quick look at "A 65816 Primer" and it took me under a minute of skimming to find some significant errors. From the intro section:

    Additionally, the 65816 offers full 6502 emulation, new addressing modes,
    full 16 bit user registers, and dozens of new instructions.

Full 6502 emulation? Ain't no such a thing!

In emulation mode, the W65C816S is approximately a 65C02, not a 6502. I say "approximately" because all 256 opcodes perform valid operations regardless of processor mode, hence all of the illegal opcodes that exist in the NMOS 6502, as well as the 65C02, map to valid '816 instructions. Therefore, emulation mode in the '816 is definitely not like the operation of the NMOS 6502. This mistake is not good when you consider the above statement is right near the beginning of the primer. It conceivably could lead a beginner to erroneously believe that in emulation mode the '816 behaves just like the NMOS 6502.

Here's another one:

    Two other new registers are the Data Bank Register and the Program Bank
    register. The Program Bank Register functionally extends the program
    counter out to 24 bits, while the Data Bank register allows code flow
    control to branch or jump to points outside of the 6502's 64k address
    space.

The statement about the program bank register (PB) is misleading, while the one about the data bank register (DB) is completely wrong.

While PB does permit code execution to occur in any of the 256 possible memory banks that can exist in the 16 MB environment, it doesn't "extend" the program counter (PC). If PC is $FFFF and a one byte instruction is executed, PC will wrap to $0000, but PB will not autoincrement. Hence if PB contains $4A the successive execution addresses would be $4AFFFF and $4A0000, limiting the program to a 64K address space, same as the 65(c)02. Only the "long" jump and JSR instructions allow execution to be diverted to a different bank. Relative branches cannot occur outside the current bank. It is possible to manipulate PB via stack acrobatics, but is not something a beginner should be trying.

DB has nothing to do with program flow control at all. DB determines from which bank a load, store or read-modify-write instruction will access data. The instruction itself is retrieved from the bank defined by PB. However, bank boundaries can be crossed by load, store and read-modify-write operations. For example:

Code:
          SEP #%00110000          ;8 bit registers
          LDX #$00
          LDA $FFFF,X
          INX
          STA $FFFF,X

The location affected by the STA instruction will occur in the next bank. Despite this feature, the read/write range with any fixed address ($FFFF in this case) is always limited to 64K, assuming the index registers are set to 16 bits.

In a system with more than 64 KB of addressable RAM, understanding the effects of these registers is fundamental to successfully writing '816 code, so the above errors are not good at all.

Yet another:

    Here is a run down of some of the new fun stuff:

    * XYA registers can be 16 or 8 bits wide.
    * Wow, two actual Block Move Memory instructions.
    * New push/pull instructions phx,plx,phy,ply.
    [Editor: These exist in the 65C02, so they aren't new.]
    * New xfer instructions tyx,txy.
    * Set or Reset any memory bit without loading the accumulator.
    [Editor: Wrong. A mask has to be in the accumulator so the '816 knows which bit(s) to twiddle.]
    * INC and DEC the accumulator.
    * JSR indirect, Branch Always, or Branch Long to 64k.
    [Editor: Wrong regarding branch long—it's a ±32K branch, not a 64K one.]
    * Zero Page has been renamed to Direct Page...

My point is not to denigrate the author—he does have plenty of good stuff in his article—but highlight the fact that many of these primers are not a good thing to direct to the attention of a newbie. They are sometimes written by newbies who don't fully understand the subject and thus misinterpret what they have read from other sources. The above examples speak for themselves.

I've thought about writing a "Getting Started with the 65C816" article—I do have more than a little experience with the processor. :) However, as I'm sure Garth would quickly point out, writing beginners' articles in a clear and understandable manner, proof-reading and fact-checking, and then polishing the presentation so one won't later wince when s/he sees it in lights on the Internet is a painstaking and time-consuming process. Perhaps when I am fully retired I might undertake such an article. For now, I already have far more to work on than I can manage.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Last edited by BigDumbDinosaur on Mon Apr 30, 2012 10:04 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 7:27 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10834
Location: England
Fair enough(*). I've bookmarked it as good place to find a summary, but I am already familiar. I think the point is well made by your critique (and by Bruce's work in progress) that there are a wealth of devilish details.

Edit: Sorry, I didn't mean "Fair enough" - I meant some variation on "I don't wish to argue with you at this time". An unfortunate word choice, because I can't let it stand - I don't think your critique is altogether fair. I think the document is, broadly, well done. One would use it as a primer, not to replace the datasheet. You are right to point out the error about the Data Bank Register. The author clearly understands the machine, and should have said that the Address Bus is extended to 24 bits, by means of two registers, one for program accesses and one for data accesses. (I've come across this thinko before, to confuse PC with the Address Bus.) As we know, there are also stack and direct page accesses, and vector accesses - the '816 is a wealth of details which defy simple glosses. It is not a beginner's machine unless one allows for some staged introduction of truths.

I can't agree with your opening comment about full 6502 emulation - in the context of the Primer, the author clarifies what he means beyond his opening remarks, as is appropriate. But as I say, I have no appetite for a point-by-point.

(I'll PM you so this after-the-fact edit isn't secret)

Cheers
Ed


Last edited by BigEd on Tue May 01, 2012 4:31 am, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 8:17 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8460
Location: Southern California
BigDumbDinosaur wrote:
Full 6502 emulation? Ain't no such a thing!

In emulation mode, the W65C816S is approximately a 65C02, not a 6502. I say "approximately" because all 256 opcodes perform valid operations regardless of processor mode, hence all of the illegal opcodes that exist in the NMOS 6502, as well as the 65C02, map to valid '816 instructions. Therefore, emulation mode in the '816 is definitely not like the operation of the NMOS 6502. This mistake is not good when you consider the above statement is right near the beginning of the primer. It conceivably could lead a beginner to erroneously believe that in emulation mode the '816 behaves just like the NMOS 6502.

They would be disappointed if they tried to run a program with the NMOS illegal op codes (but maybe the author didn't even know about those); but they probably won't be dropping an '816 (or even the rare '802) into a 6502 socket in a vintage computer, let alone the C64's 6510 space. A few vintage ones used the 65c02 like the Apple IIe and IIc, but I don't know how commonly the BBS, BBR, SMB, and RMB instructions got used in those, which would not work with the '816. I wish those were not limited to ZP, since they're most useful in I/O which is seldom in ZP.

Quote:
* Wow, two actual Block Move Memory instructions.

which can also be used to fill

Quote:
* Set or Reset any memory bit without loading the accumulator. [Editor: Wrong. A mask has to be in the accumulator so the '816 knows which bit(s) to twiddle.]

He probably meant that the number you're setting or clearing the bits in doesn't need to be brought in. It makes more difference if you want to toggle the same bit(s) repeatedly as you would in some I/O situations, or if you want to do two or more locations using the same mask since the mask is not destroyed each time. He's referring to TSB and TRB though, which are not new for the '816, since they are also in the 65c02 which he does not seem to be very aware of.

Quote:
* INC and DEC the accumulator.

also in the 65c02

Quote:
I've thought about writing a "Getting Started with the 65C816" article—I do have more than a little experience with the processor. :) However, as I'm sure Garth would quickly point out, writing beginners' articles in a clear and understandable manner, proof-reading and fact-checking, and then polishing the presentation so one won't later wince when s/he sees it in lights on the Internet is a painstaking and time-consuming process.

You're not kidding, and I can now appreciate the time the author of the '816 article put into it. I did most of the actual writing for mine about nine years ago, but now I had to scan old photos, take new ones, edit them (sharpen, fix contrast, size, etc.), draw and process diagrams, get links, html-ize, etc.. Then you go over it a hundred times and keep finding things that need fixing, and, when others finally see it, they'll point out a lot of things you didn't catch before, and they're usually right. I couldn't have gotten it done except that work has been super slow for nearly the last month. Actually, I'm still not done, but I'm awfully tired of it and want to move on to other projects.

A non-trivial part of writing is making it so you get the reader's interest immediately. Otherwise they will probably move on even if your article is full of gems. Even wording a title that attracts the reader can take a lot of time.

In an '816 primer, I would want to point out, up front, that the '816 gives a ton of benefits even if you only use the first 64K of memory map, that you don't have to latch, decode, or use the upper 8 address bits to run it, and that especially if you frequently handle 16-bit values, the '816 is much easier to program.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 30, 2012 10:00 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8230
Location: Midwestern USA
GARTHWILSON wrote:
Quote:
* Wow, two actual Block Move Memory instructions.

which can also be used to fill

Yeppers. I use them in my POC's M/L monitor to handle the F (fill memory) and T (copy memory) features. Both are ridiculously fast, even at low Ø2 rates.

Quote:
Quote:
* Set or Reset any memory bit without loading the accumulator. [Editor: Wrong. A mask has to be in the accumulator so the '816 knows which bit(s) to twiddle.]

He probably meant that the number you're setting or clearing the bits in doesn't need to be brought in. It makes more difference if you want to toggle the same bit(s) repeatedly as you would in some I/O situations, or if you want to do two or more locations using the same mask since the mask is not destroyed each time. He's referring to TSB and TRB though, which are not new for the '816, since they are also in the 65c02 which he does not seem to be very aware of.

I'm not sure what was meant by "not loading the accumulator." Some kind of a mask is required, so at some point immediately before executing TRB or TSB, a load does have to occur. You're correct, of course, that the accumulator is preserved, so bit toggling (e.g., strobing a port's handshake line) would be pretty convenient.

Quote:
Quote:
* INC and DEC the accumulator.

also in the 65c02

Righto. It's apparent, as you noted, that the author was not familiar with the 65C02 and did not know that many supposedly new '816 instructions were actually retained from its older cousin.

Quote:
Quote:
However, as I'm sure Garth would quickly point out, writing beginners' articles in a clear and understandable manner, proof-reading and fact-checking, and then polishing the presentation so one won't later wince when s/he sees it in lights on the Internet is a painstaking and time-consuming process.

You're not kidding, and I can now appreciate the time the author of the '816 article put into it. I did most of the actual writing for mine about nine years ago, but now I had to scan old photos, take new ones, edit them (sharpen, fix contrast, size, etc.), draw and process diagrams, get links, html-ize, etc.. Then you go over it a hundred times and keep finding things that need fixing, and, when others finally see it, they'll point out a lot of things you didn't catch before, and they're usually right. I couldn't have gotten it done except that work has been super slow for nearly the last month. Actually, I'm still not done, but I'm awfully tired of it and want to move on to other projects.

Kind of like writing a non-trivial piece of software, eh? :lol:

Quote:
A non-trivial part of writing is making it so you get the reader's interest immediately. Otherwise they will probably move on even if your article is full of gems. Even wording a title that attracts the reader can take a lot of time.

You are so very right. The reader's interest should be captured in the first sentence. Starting an article with:

    The W65C816S is an upgrade of the 6502.

probably wouldn't attract much interest—there's nothing quite like stating the obvious to turn off the reader. On the other hand:

    The W65C816S will enable you to write shorter, faster and more elegant programs than possible with the 6502—and with less difficulty.

probably would pique the reader's curiosity. Of course, the following content would have to accurate and well organized. :wink:

Quote:
In an '816 primer, I would want to point out, up front, that the '816 gives a ton of benefits even if you only use the first 64K of memory map, that you don't have to latch, decode, or use the upper 8 address bits to run it, and that especially if you frequently handle 16-bit values, the '816 is much easier to program.

That's very true. My POC unit doesn't use or even refer to the multiplexed A16-A23 address component at all—I didn't want to complicate this first-try design. Yet in the realm of things like arithmetic and load-store operations, the '816's 16 bit operations shrank both the code and the time required to execute it. Plus the '816's stack instructions reduce the memory footprint and make subroutine and interrupt re-entrancy a simple matter. MVN and MVP reduced the monitor copy and fill functions to vanishingly small code, as a single move instruction does what multiple lines of code previously had to do (with an 8 MHz Ø2 clock, copying an 8 KB memory segment occurs in a hair more than 7 miliseconds).

As I developed the POC's BIOS ROM I retained all the old versions, and looking back at them, I can see where I could not have fit the entire BIOS plus the machine language monitor plus the Motorola S-record loader into the 8 KB ROM space had I stuck with "traditional" 6502 coding styles. In particular, the SCSI host adapter device driver (which is full of bit twiddling), along with the code that enumerates the SCSI bus and attempts an ISL from the boot disk, simply wouldn't have fit.

So there are significant advantages to using the '816 in native mode, even without taking advantage of the extended memory addressing. Once one gets over the initial hurdle of understanding the effects of 8 versus 16 bit operation, writing '816 code becomes substantially easier than accomplishing the same tasks solely with 8 bit operations.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Tue May 01, 2012 3:41 pm 
Offline

Joined: Wed May 20, 2009 1:06 pm
Posts: 491
GARTHWILSON wrote:
ChuckT wrote:
This is great. Thank you. I'll leave it up to you if you want to post it on Hackaday because it will bring you a lot of traffic. The do-it-yourself crowd has forums at Sparkfun, Parallax, Hackaday, Dangerousprototypes, Make and Adafruit. I'm sure they would blog about your article which would be good but the traffic part is the board owner's decision because Hackaday's blog alone could bring you over 1,000 visitors in a week.

Wow, if it promotes our interest, 1K visitors per week would be outstanding!! The articles have lots of links to this forum and related topics. I'd be glad to have everyone spread the word in whatever other related groups you're in.


I think you would have 1,000 visits the first week. I'm sure you would have some visits after the first week but I haven't calculated how many one user's post had in the past but the visits would drop off. I use to run a website and I would get views every day from just posting on the web. I think the users that would join are the ones who would have an interest. If there was a product based on your articles, even more might be interested. If you put your articles into an Amazon Kindle download and if you submitted a post to Hackaday, there would be a few that would download your Amazon book for convenience if you timed it just right. If you posted your article on "Make" then you would have even more people interested.


Top
 Profile  
Reply with quote  
PostPosted: Thu May 10, 2012 5:55 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8460
Location: Southern California
Chuck (and anyone else), the initial barage of corrections after publication seems to be over, so it would be great if you would tell the other forums you're on about the articles.

Now I'm working on the EPROMs for the big look-up tables for 16-bit math, the multiplication, inversion, log & trig functions, etc.. I can't believe I calculated the Intel Hex files 11 years ago! They've just been collecting dust all this time. It would not be hard to provide EPROMs for anyone who wants them, so I've just ordered some 1Mx8 ones that I think my old programmer can handle, and I'm trying to figure it out again, then I'll build up and actual circuit and check them to make sure I didn't take a left turn into the weeds someplace. Of course as we all know, EPROMs are slow, but the plan is to also put the Intel Hex files on my website (along with the HP-71 programs I used to calculate the numbers and form the files), so the reader can also have a way to load them into RAM from serial flash, or whatever. I will offer the programmed EPROMs too. If you want to do a lot of scaled-integer math, looking up answers, correct to all 16 bits (or in the case of inverses, all 32 bits!), will be extremely fast compared to actually calculating them.

I've kept thinking about how to make an article attract the reader. For some future ones, I want to instantly spark the imagination of what could be done with these techniques/circuits/programs/etc. if the reader were to go for it. I should still try to find at least a good picture or two to put in the introduction to my "Building Your Own 6502" articles. Even the front page of a data sheet is kind of a sales job, trying to grab your attention immediately with "Why you want this IC!" The disclaimers, copyrights, licenses, contact info, errata, etc. go near the end.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Thu May 10, 2012 3:11 pm 
Offline

Joined: Wed May 20, 2009 1:06 pm
Posts: 491
GARTHWILSON wrote:
Chuck (and anyone else), the initial barage of corrections after publication seems to be over, so it would be great if you would tell the other forums you're on about the articles.


http://hackaday.com/2012/05/10/your-gui ... -computer/

You currently have 23 or 24 people viewing the forums here.


Top
 Profile  
Reply with quote  
PostPosted: Thu May 10, 2012 4:26 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8460
Location: Southern California
Thanks. I had to resist the urge to answer Mr. nes's comment there and tell why the 65816 is way better than his 6809. :lol:

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Thu May 10, 2012 4:52 pm 
Offline

Joined: Mon Mar 02, 2009 7:27 pm
Posts: 3258
Location: NC, USA
I'm sure he would appreciate the education.

_________________
65Org16:https://github.com/ElEctric-EyE/verilog-6502


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 72 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

All times are UTC


Who is online

Users browsing this forum: AndrewP and 29 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: