|
Post by rupert on May 30, 2008 12:58:41 GMT
Maxim - is soul bubbles out now (in the UK?) I think i'll buy it
|
|
|
Post by playgeneration on May 30, 2008 14:09:17 GMT
This latest update is a tough read, no offence to you Stan but your 'talky' way of explaining things can make it harder, as what could be one sentence ends up being several. Also a lot of the time you start describing something, then just stop and say "well you don't need to know about this", if its not important why mention it at all.
Why not just call the Z80 a CPU like everyone else, seeing MPU all the time is a bit distracting, as is your way of trying to make the text more fun by using words like "biatches".
Having to read off a computer screen, white text on black background with the limited fixed width and the resulting long paragraphs doesn't help either really. It think it would be helpful for you to focus less on making animated GIF's which are generally just annoying anyway, so you have more time to concentrate on the text. Your idea behind this was to explain everything so anyone could understand sms programming, but I think you've taken that too far and the result is an information overload thats going to take a lot of time and patience for anyone to trawl through and undertsand.
|
|
|
Post by Maxim on May 30, 2008 15:42:28 GMT
Maxim - is soul bubbles out now (in the UK?) It's out in 2 weeks (Friday 13th...) but you can preorder now. [/offtopic]
|
|
|
Post by Stan on May 30, 2008 15:56:08 GMT
Hmmm, I thought that I explained everything pretty well. Any time I mention issues that I only give you a piece of, I essentially can't get into them until the time comes, but they needed to be mentioned in some capacity. I'm not sure how to better write this section. I suppose it isn't essential, but I thought it would be a good idea, as Aypok suggested, to give the user an idea of how the hardware actually works. I can easily change the spiderpig with large eyes stuff, was just trying to make an otherwise very dry explanation a little more fun, but I guess it just ended up making it a bit stupid at that part. And it takes me like two seconds to make my annoying GIFs, I worked about six hours over a period of several days typing up that thing and getting the images together after collecting them, cutting them down, adjusting text, coloring them, coverting them and so forth. Guess I'll have to see how I can write it better. Anyone else have any thoughts on how it's been written? I'm going to get into programming after this, well assembly next, nothing really SMS specific yet. I'm not sure what sort of conceptual errors I may have made, so if you could point them out that would be good. Most likely, as before when Aypok looked around, I just wasn't specific enough about something. If you have any suggestions about how to rewrite parts, please, by all means, tell me what parts and how to change them. I was hoping more people would get involved anyway.
|
|
|
Post by rupert on May 30, 2008 16:05:11 GMT
Just a better use of paragraphs might help, I noticed lately you put everything you write as one big chunk. just in the post above you could have made that into 3 valid paragraphs, makes it nicer to read
|
|
|
Post by Stan on May 30, 2008 16:08:19 GMT
Okay, that's easy enough. So rups, what are you thoughts on it? Play seem to be offput, and that's not what I wanted. I wanted it to be easy to understand. You seem to indicate by that comment that it was fine for you. Maybe not interesting, but fine. Just went through and eliminated things that weren't necessary, as based on what play suggested. Should read a lot better now (the part I just showed you this time around, I need to go back through the other Z80 chapters).
|
|
|
Post by Maxim on May 30, 2008 17:12:31 GMT
Short paragraphs are good. If you have more than one basic concept/point in the paragraph, split it up. If you still have more then 3 or 4 sentences in a paragraph, you're probably using more words than are necessary.
Conceptual errors in the latest page:
- Use of the acronym "MPU" - none of the meanings on Wikipedia match. Let's assume it means "CPU". - "Most MPUs have similar systems, even today." Similar in that CPUs have registers and chunks of silicon performing operations, yes. In almost every other aspect, no. Modern CPUs are very different - pipelines, MMUs, CPU cache, multiple cores, out-of-order execution, speculative branch execution... - "there is only so much space we can utilize" - makes no sense to me. CPUs can get arbitrarily big, but that limits speed and has heat/power problems. Making the parts smaller avoids that but suffers from physical limits due to effects like electron tunnelling. Neither concept seems to match this phrase. - "your ears and eyes would bleed profusely" - my ears are generally unaffected by text/pictures. - "while programs are moving around" - generally my programs sit still - "The ALU also has the ability to shift and rotate bits" - while later you describe the "shifter" unit as being separate from the ALU. - "the leftmost or rightmost bit [...] is moved one position to the left or right, thus changing the value of all the other bits" - there is no "thus" about it. Moving (copying) one bit to another doesn't automatically cause the destination to be copied anywhere else. The operation is entirely controlled by the silicon on every bit. It chooses to do something sensible (shift all bits by 1) because it's designed to do that because that's a useful operation. - "because things can change or lead to errors" - you may as well have not written these words. How about "because those cases may need different handling in the code"? - "so you don't have to figure it out on your own" - the whole point of the flags is that they must be well-defined after every operation. Except for the undocumented ones... - Transgression on flip-flops: every bit in every byte of memory can be considered a flip-flop, ignoring complicating factors. Registers are just special memory locations inside the CPU, nothing more. They're typically more expensive, fast memory than general-purpose RAM and are of course not generally interchangeable (depending on the CPU architecture) to make the CPU architecture simpler. - Transgression on MOS: "charge of power" is a fun clashing of incompatible terms. You may as well say "speed of weight". MOS has no relevance. - "Registers are typically labeled from 0 to N" - no they're not. I see names like "a, b, c, d, e, h, l". - "they're called 'general purpose' because they don't come packaged with set data" - nope, general-purpose means you can do what you like with them, within the restrictions of the CPU architecture. Examples of non-general-purpose registers are SP and F. - "Registers are typically paired" - I think you mean the Z80's shadow registers. They're not a common CPU feature. - "Together, they can be used to store 16 bits, or 2 bytes" - using a register and its shadow to store a 16-bit number would be horribly inefficient. - "As you see in the diagram above, the general purpose registers have been separated to indicate pairs, connected by those little dots there" - no, the dots are indicating there are "many" registers (N+1, in fact) that are all the same as each other. - "These are 16-Bit registers for storing addresses (notice the number next to 'address bus'). Sometimes they're referred to as data counters or pointers." - SP and PC are 16-bit and their only sensible contents (usually) are addresses, hence why they're pulled out and linked to the address bus in the diagram. You'd very rarely use them as counters. Pointers are related but not really the same thing. Counters can be any bit width, and are often stored in RAM. Pointers are usually the same width as addresses but not necessarily so, depending on the programmer's idea of the concept (you might consider a page number + offset to form a 24-bit "full pointer", perhaps). - "Contents of these registers are loaded via the internal data bus." - but you just added the index register(s) into the mix. - "the Master System works on 8-Bits" - unusual syntax here. I might say "the Z80 has an 8 bit [wide] internal data bus" or "the Z80 is an 8 bit CPU". The Master System "works on" electricity. - "In order to differentiate between these 2 bytes, they are typically labeled as high or low" - not typically. Whenever there is more than one byte in question, we have to differentiate between them when we want to talk about one of them in particular. When there's two, "high" and "low" are one way to do that. - "This then can be used to indicate bits 0 through 7 and 8 through 15" - the high byte is bits 15 down to 8, the low byte is bits 7 down to 0. - "Every [CPU] has at least two address registers" - not true. - "multiplexer, it's a special device that enables the selection of high or low" - I don't think so. The end of the sentence seems more on track, but multiplexers are not something I know much about. - "First you have the index register, usually referred to as IX" - there's also IY; why suggest there isn't? - "the stack is the way data is organized for programs in the Z80" - no it isn't; it's a way of using memory to (usually) temporarily store ordered data, and is mainly used on the Z80 for function calls and register preservation. - "The PC contains the address of the next instruction as well as keeping programs running smoothly" - the "as well as" bit makes no sense at all. - "The memory then reads the data to know the address" - nope. The memory returns the data stored at that address. - "and sends a word back" - maybe, if you are using "word" in the context of "a block of data matching the CPU's data bus size". However, in modern usage it normally means "16 bits". Master System memory is strictly 8 bit. - "which is thus an example of what we call an instruction" - what? The byte read might be the first byte of an opcode, which might be an instruction, but the process itself is not an example of an instruction. - "The data moves into spiderpig with large eyes, takes the instruction DIE and places it into the MPU" - I think you mean "the CPU reads the data value DIE from memory address spiderpig with large eyes". - "to perform this particular function, which in this case we'll say is DIEBIATCH" - no, the "function" or "operation" is just "DIE". Using real numbers might be less funny but perhaps more insightful. "The CPU reads the data value $3C from memory address $1234, which corresponds to the opcode "inc a", which is an instruction that tells the CPU to add 1 to register A." This is the simple case of a 1-byte opcode, of course. - "Next, we need to move on to an explanation of the stack in order to understand how data is being moved around in the Z80" - the stack is important, but it's not a necessary prerequisite for very simple Z80 programming - code without CALL/RSTs or PUSH/POPs needs no stack. I've yet to see a useful description of a stack in a tutorial, avoid card analogies at all costs.
*sigh*
That was rather long, wasn't it? Apologies for excessive negativity.
|
|
|
Post by Stan on May 30, 2008 18:59:58 GMT
Awesome, thanks Maxim. Nope, just what I was looking for. There are some issues, like the IX IY business, that will be explained in a page or two later. I actually went through and deleted, altered a lot of the stuff you mentioned before I even read this response. I'll check everything you said and make the proper corrections or clarify what I need to. By the way, play, thanks for getting me on track. The more I thought about it, the more lame all that "cool" talk sounded. Just ended up being retarded and distracted from making it sound like a respectable tutorial. I eliminated most of it as well as the superfluous usage of ! and a few other things. Took out a lot of my parenthetical comments as well as cutting things down that I mention but then say yeah forget that. Should read a lot better now, and I agree, you're right, best to stick with CPU instead of MPU, just makes things confusing. Thanks again guys. Glancing at some of these comments, I just needed to be a bit more clear with my wording. This is the kind of feedback I need, brutal.
|
|
|
Post by Bock on May 30, 2008 23:21:48 GMT
Maxim - is soul bubbles out now (in the UK?) It's out in 2 weeks (Friday 13th...) but you can preorder now. [/offtopic] This kind of offtopic posting is highly appreciated! Yes please buy it and another copy for your wife and another for your mother.
|
|
|
Post by Stan on May 31, 2008 0:53:28 GMT
Looks awesome Bock, if I had a DS I'd be all over that.
|
|
|
Post by rupert on May 31, 2008 2:36:16 GMT
It's out in 2 weeks (Friday 13th...) but you can preorder now. [/offtopic] This kind of offtopic posting is highly appreciated! Yes please buy it and another copy for your wife and another for your mother. its my birthday a week after the release date so i got my mum to pre-order it on play.com sounds like just my type f game anyway so i'm more than happy to get in on it, Ive not used my DS for a wile but i plan on taking it on my holiday in July.
|
|
|
Post by Maxim on May 31, 2008 9:49:00 GMT
Looks awesome Bock, if I had a DS I'd be all over that. Who needs a DS? Just buy the cart and look at it!
|
|
|
Post by Stan on May 31, 2008 15:26:56 GMT
Oh, Maxim, what do you mean by the naming of registers up there? When I say 0 to N, I mean all Base-10 symbols and all letters from A to N. That includes what you mentioned, so unless I'm missing something I'm not sure what you meant.
|
|
|
Post by Bock on May 31, 2008 18:42:38 GMT
Registers on the Z80 are named a, b, c, d, e, h, l, ix, iy, sp and pc. There's no number and no "A to N" thing.
|
|
|
Post by Stan on May 31, 2008 19:03:12 GMT
I was talking more in general about registers in any CPU, and mainly the general purpose registers. I'll fix that bit.
|
|