Announcement

Collapse

Forum Rules and Etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Rule 1: Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Rule 2: Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Rule 3: Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


Rule 4: "PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Rule 5: Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

new to the forum , discovered this existed from the retrobits podcast!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    new to the forum , discovered this existed from the retrobits podcast!

    hi

    I'm new to the form , what have i been up too! well in my spare time , i am trying to learn the 6502 assembly of things and other items ! , i have been on a mass buy up of 6502 books assembly language books i have collected devices such as c64 breadbin , and various VIC things. games the list goes on.

    my main interest is to learn how to program in assembly. so i have a base of understanding of how chips in general work and what makes then tick! , but i am having great difficulty in reading some of the books i have purchased i would either get stuck on a page and find no real answers which make sense , the book i have started reading again is the "an introduction to microcomputers" , the book is very dated compared to todays computers and hardware. but this is one of the reasons i bought it. , now i did read the first book of this series of books , which again very difficult to read and i realised quite quickly that i know very little about how a computer does what it is , it also doesn't help when i read in general i over think the information and believe it to be harder then it really is it is a very big burden i carry , not to mention my maths skills & English skills are awful.. but fear not i am learning.

    so back to the book an introduction to microcomputers"
    i have come to page 3-12 to 3-13
    these pages are explaining about " RAM and ROM addressing & memory size & chip select"


    i have read this pages alot! its making me dizzy just thinking about it, so the pages start explaining that each RAM chip holds 256(10) memory WORDS , then it leads to another exsplaintions regarding the largest amount of a memory chip which is about 16k i do believe , ( yes this book is old!) , then follows on , with a 2 hex digits of 00 , then follows on about chip select!

    right ok , this is where i am getting rather stuck , i have read this over and over and over , so am i correct in thinking this , the arbitrary information , what ever it might be , comes in and is ready to be stored in the ram , but its not stored in say RAM chip one , its spanned across say all 8 ram chips (in the example illustration ) , each piece of stored information has a chip select bit that selects the relevant chip with the correct piece of data. so it knows where it all is?


    am i close?

    You do not have permission to view this gallery.
    This gallery has 2 photos.

    #2
    Welcome to VCFED.

    What is described in the book are examples of memory chips of varying sizes...

    The bottom line is that a CPU (such as your 6502) has an 8-bit data bus and a 16-bit address bus - meaning it can (directly) address 1 of up to 65,536 memory addresses - with each address being 8 bits 'wide'.

    The address space will be split into multiple separate areas (e.g. ROM and RAM). Some of the RAM may be further subdivided into shared memory for a video screen (for example).

    The CPU will start executing instructions from a fixed memory location at power up or reset. It is vitally important that this is in the ROM (for obvious reasons). In the case of the 6502 CPU, the highest memory addresses contain the restart address.

    RAM devices come in different 'bit widths' (for example, 1-bit, 4-bits and 8-bits). Whatever chips are used - the result must be an 8-bit wide data bus; so:

    8 off 1-bit wide RAMs must be used or...
    2 off 4-bit wide RAMs must be used or...
    1 off 8-bit wide RAM must be used.

    The number of address lines that a RAM chip requires is directly proportional to the 'size' of the RAM chip itself. So if the RAM chip is 256*1 it has 256 internal locations each of 1 bit.

    Remember from above that we will require eight ( 8 ) of these in parallel to make up our 8-bit data bus.

    In terms of addresses, the RAM chips will require the lowest 8 bits (A7..A0) from the CPU to be fed directly to the pins of the RAM chip to decode the total contents of the RAM chip itself. 8 bits of address = 2^8 = 256 unique internal RAM addresses.

    Now, we have to decode the enabling of each 'bank' of RAM chips from the upper address lines ( A15..A8 ) in order to increase the 'size' of our total RAM (as far as the CPU sees it)

    You can buy (for example) a 32KBYTE SRAM chip these days and a 32KBYTE EPROM - in this case you would wire address lines A14..A0 from the CPU directly to the RAM and ROM and use address line A15 to decide which devices is enabled. A15=1 means enable the ROM (upper memory) and A15=0 means enable the RAM (lower memory). Of course, the ROM can only be read from (writing to ROM is not sensible and can cause problems). There are usually some control lines from the CPU to tell the address decoding logic when the address bus is actually valid so that data can actually be read and written at the correct time.

    Hope this makes more sense than the book - or did I confuse you more?

    Don't forget to add your location to your profile if you would like to.

    Dave
    Last edited by daver2; November 27, 2021, 01:25 PM.

    Comment


      #3
      We’re glad to have you here, oscilloscope! It’s great to hear that Earl Evan’s seminal podcast on all things retrocomputing is still bringing folks in. I listened to every episode of the podcast, and got a chance to meet Earl at KansasFest, a number of years ago.

      - Alex

      Comment


        #4
        ok so i have read what you have wrote quite slowly. , so I'm having a information over load right now... some of you're reply has got the me ticking , the fact the 6502 address locations A7-A0 , & the A15 - A1 is going in backwards . which is endianness , little endian. , << hopefully i am correct on that bit!

        right so I'm really struggling to understand 8bit part on the page 3-12 , where the 8 separate RAM chips which holds 1 bit in each RAM chip which if i am understanding this 1 WORD equates to 8bits. , and then it has 8 chip select bits? wires? locations ? chip select bits ? abit confusing , and then for some odd reason its saying its a 16bit address when there is only 8 bits of data being stored? , very confusing....then moving across too size of memory address : it has 256 ^10 = 256 separate bits/ WORD's , which would mean according to the example it would need 256 RAM chips to sort the 256 bits or memory WORD's confused ,, further down there is a brief explanation about the largest WORD address , which is 16.384 , then it moves on too the HEX digits.
        to say the least i am thoroughly confused.

        its taken me best part of an hour to type this to emphasis the confusion , and trying to make it coherent , i'll update my profile

        Comment


          #5
          ok so i have read the book very slowly. and i keep forgetting that book was written quite some years ago , and the size of the memory is not as big as i assume and it keeps throwing me off the learning curve. and the reason i bought the book is so i can learn about much older computers of things. well go figure aye!

          now i am trying to distinguish what a chip select actually means , and how a chip select is used when the 8 bits of data is used up with the data how is a chip select can be used with there is no room to use it.
          i kind of get the second page where it explains that if there is a 16bit address but only 14bits is used for the data then the last 2 bits would be used for the chip select. again I'm reading and its not really very clear what that means.

          maybe i should sleep on it i have been up since 3am sleepy brain

          Comment


            #6
            Ah, you are in my time zone!

            Anywhere near the M5 (Gloucester) to M6 (Lancaster)? I pass anywhere in between occasionally...

            You are still being moderated - so a sensible conversation is not really possible until you get to approximately 10 posts. Just plug away with it for the time being and you will get there...

            Forget big/little endian for the time being... That just confuses things. Let's concentrate on the basics.

            The 6502 CPU has an 8 bit data bus and a 16 bit address bus. The pins of the IC associated with the data bus are identified as D7, D6, ... , D1 and D0. D7 being the most significant bit and D0 being the least significant bit. The pins of the IC associated with the address bus are identified as A15, A14, ... , A1, A0. Again, A15 is the most significant bit and A0 being the least significant bit.

            In order to address memory location 0 (usually referred to in hexadecimal as $0000) all of the 16 address lines are logic '0'. To address other memory locations, the address bus is configured accordingly - so memory address $DEAD (in hex) is [A15..A0] = 1101 1110 1001 1101.

            If you are happy with this, we can move on to the next lesson.

            Perhaps for the next lesson (as a bit of homework) we will see how the chip selects (not that I have defined this term) work for a very simple 6502 system (see http://retro.hansotten.nl/wp-content....02-scaled.jpg).

            Dave
            Last edited by daver2; November 30, 2021, 09:27 AM.

            Comment


              #7
              There two different things you are mixing up. The 6502 is an 8 bit CPU and therefore needs to work with 8 bit data and instructions. (Software if you will) plus it is a hardware chip that needs external devices (more chips) to store data and instructions. The CPU doesn't care what hardware is used as long as it meets the needs of the CPU. Over the years the older hardware chips have been replaced with newer designs that are either larger in capacity or easier to work with when designing the circuit board. So early memory chips needed 2 or 3 voltage supplies and needed to have refresh cycles to maintain the data stored in them. As cost and chip design improved static ram became larger in capacity and less expensive that the early chips when designing a new board. However, as far as the 6502 CPU when you program it it makes zero difference. All the CPU needs is a boot program in ROM at the correct memory location and storage RAM filling all the other locations. Don't get all wrapped up with hardware talked about in old books that may or may not even be available or would be used on a new design these day.

              Some computer designs added external video memory while others shared some of the RAM memory with its programing memory. That was a design compromise either for cost or other other engineering reasons. Again, that has nothing to do with programing except knowing that some memory may have dual purposes due to a designers needs. You will run into this with every old computer you wish to write programs for, not because of the 6502, but due to the designer's limits on cost or board size when designing the computer. Today, a more modern CPU and chips can emulate the Apple, Commodore or other classic 6502 computers and fit onto a board the size of a desk of cards. Software wise it could be designed to act just like the original.
              Crazy old guy with a basement full of Pentium 1 laptops and parts

              Comment

              Working...
              X