Announcement

Collapse

Forum 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.


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.


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.



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.


"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.

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

IBM PC 5150 BIOS Versions

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #31
    Originally posted by sergey View Post

    It is completely possible to build a 8086-based system with 16-bit SRAM and ROM. The memory part is the least trouble just use 2 chips to get 16-bit data width. You can also put 8-bit I/O devices without using A0 address line (using A1) instead, and use only even addresses to access them.
    But it is impossible to implement an IBM PC compatible system without implementing proper data bus steering logic. That is because in IBM PC compatible systems:
    - All the on-board I/O (Keyboard/8255 PPI, 8259 PIC, 8237 DMA, and so on) is using 8-bit data bus and steering logic will be required to access odd I/O addresses.
    - ISA cards can have 8-bit memory, and many have 8-bit I/O.
    Sergey, your super, super kind thank you.

    I agree about the data bus thing, Its going to be more complicated than simple when using pure 16-bit bus.



    I will ask some VLSI guy whether they can burn this mess into a silicon. The plan is to put all chip except the micro and memory section on VLSI.
    So the layout on the PCB would be "microprocessor", Memory, and "glue chip" very simple.

    Since the RAM is using SRAM instead of DRAM, what kind of change do you thing it is appropriate?

    Its got to use AT or PS2 keyboard, its too damn difficult to get XT keyboard (I've got 2 of them but I don't lend them for school use hehe)

    I think I know the answer about the 8-bit ISA card, its strictly forbidden, its not pure 16-bit design.

    For now, I've got several tube of 8086, several 16-bit sRAM (left over from 68K project), CPLD chip and its programmer.

    BTW
    I've browse through the Xi 8088 project, its really awesome, where can I get that?
    Last edited by GOLD CHIP; March 4, 2013, 01:06 AM. Reason: Xi 8088

    Comment


      #32
      Sorry, it took me some time to reply.

      Originally posted by GOLD CHIP View Post
      I will ask some VLSI guy whether they can burn this mess into a silicon. The plan is to put all chip except the micro and memory section on VLSI.
      So the layout on the PCB would be "microprocessor", Memory, and "glue chip" very simple.
      While it is possible to implement all the glue logic, and possibly clock generator (8284) and bus controller (8288 ) in a CPLD, you still will need DMAC (8237), PIC (8259), PIT (8254), and keyboard controller ICs. They are way too complicated to be implemented in a CPLD. Of course you can do FPGA, but then why not implement the 8086 itself in the FPGA too?!
      [another question is where to get the VHDL implementation for all these ICs...]

      Originally posted by GOLD CHIP View Post
      Since the RAM is using SRAM instead of DRAM, what kind of change do you thing it is appropriate?
      Using SRAM makes things easier - you don't need to implement memory refresh and address multiplexing. Just connect it to the address / data bus. You can use a couple of 512 Kbit x 8 SRAMs (like this). With 16-bit you'll need to decode /BHE and A0 to generate /CS to one or both SRAMs.


      Originally posted by GOLD CHIP View Post
      Its got to use AT or PS2 keyboard, its too damn difficult to get XT keyboard (I've got 2 of them but I don't lend them for school use hehe)
      Two options here:
      1. Use an AT or PS/2 compatible keyboard controller - usually 8242 micro-controller with keyboard controller firmware or a specialized keyboard controller IC (e.g. VIA VT82C42N). PS/2 compatible controllers also provide mouse interface... You can refer to Xi 8088 schematic for such implementation. Note that it is not a 100% PC compatible (rather a 100% AT or PS/2 compatible), but it is compatible enough for most programs.
      2. Implement XT compatible keyboard interface and use XT2AT keyboard converter.

      Originally posted by GOLD CHIP View Post
      I've browse through the Xi 8088 project, its really awesome, where can I get that?
      I still have a few Xi 8088 PCBs left, they are $25 + shipping (something like $4 in US and $13 anywhere else). PM me if you want to purchase one.

      Comment


        #33
        Originally posted by sergey View Post
        Sorry, it took me some time to reply.
        It gives me time to think it over thoroughly.

        I want this project clean and pure 16-bit design. to do with that I need to get away from "IBM PC compatibility". Hmmm why can't I think of that many years ago. stupid me.

        ok.

        the spec. would be

        1. clean 16-bit design
        2. using 8086 micro (not FPGA clone hehe) // allready have 2 tube of 8086 chips.
        3. using 16-bit SRAM (I allready have the 16-bit SRAM chip)
        4. all those glue logic would be in FPGA.

        Question
        how do we design the easiest DMA, PIC, PIT, keyboard controller (using PS2 keyboard)?

        My guess is to design the address for each DMA, PIC, etc. and then call the FPGA guy to do the rest.

        Question again:
        How do we modified the BIOS to suit this new arrangement of glue chips.

        Thank you in advance

        Comment


          #34
          Guys,

          This thread is supposed to be a reference for BIOS versions. Please start another thread. (I will clean this thread up when that happens.)


          Mike

          Comment


            #35
            Here are all IBM PC 5150's ROM BIOS and checksum (verified)
            (Assume that segment of BIOS is F000. All checksum bytes are 00h)


            Revision 1 (Apr.24.1981) (with Revision A 16-64K motherboard / IBM Cassette BASIC C1.00)

            5700019.U29 (Size : 8192 / Area : 6000-7FFF / Checksum-32 : 000e2700 / CRC32 : b59e8f6c) - BASIC C1.00 (1/4)
            5700027.U30 (Size : 8192 / Area : 8000-9FFF / Checksum-32 : 000f2d00 / CRC32 : bfff99b - BASIC C1.00 (2/4)
            5700035.U31 (Size : 8192 / Area : A000-BFFF / Checksum-32 : 000e8900 / CRC32 : 9fe4ec11) - BASIC C1.00 (3/4)
            5700043.U32 (Size : 8192 / Area : C000-DFFF / Checksum-32 : 000ede00 / CRC32 : ea2794e6) - BASIC C1.00 (4/4)
            5700051.U33 (Size : 8192 / Area : E000-FFFF / Checksum-32 : 000e8600 / CRC32 : 12d33fb - BIOS (04/24/81, IBM Corp. 1981)


            Revision 2 (Oct.19.1981) (with Revision A 16-64K motherboard / IBM Cassette BASIC C1.00)

            5700019.U29 (Size : 8192 / Area : 6000-7FFF / Checksum-32 : 000e2700 / CRC32 : b59e8f6c) - BASIC C1.00 (1/4)
            5700027.U30 (Size : 8192 / Area : 8000-9FFF / Checksum-32 : 000f2d00 / CRC32 : bfff99b - BASIC C1.00 (2/4)
            5700035.U31 (Size : 8192 / Area : A000-BFFF / Checksum-32 : 000e8900 / CRC32 : 9fe4ec11) - BASIC C1.00 (3/4)
            5700043.U32 (Size : 8192 / Area : C000-DFFF / Checksum-32 : 000ede00 / CRC32 : ea2794e6) - BASIC C1.00 (4/4)
            5700671.U33 (Size : 8192 / Area : E000-FFFF / Checksum-32 : 000e8600 / CRC32 : b7d4ec46) - BIOS (10/19/81, IBM Corp. 1981)

            Revision 3 (Oct.27.1982) (with Revision A 16-64K motherboard / IBM Cassette BASIC C1.00) -- (by Upgrade Kit)

            5700019.U29 (Size : 8192 / Area : 6000-7FFF / Checksum-32 : 000e2700 / CRC32 : b59e8f6c) - BASIC C1.00 (1/4)
            5700027.U30 (Size : 8192 / Area : 8000-9FFF / Checksum-32 : 000f2d00 / CRC32 : bfff99b - BASIC C1.00 (2/4)
            5700035.U31 (Size : 8192 / Area : A000-BFFF / Checksum-32 : 000e8900 / CRC32 : 9fe4ec11) - BASIC C1.00 (3/4)
            5700043.U32 (Size : 8192 / Area : C000-DFFF / Checksum-32 : 000ede00 / CRC32 : ea2794e6) - BASIC C1.00 (4/4)
            1501476.U33 (Size : 8192 / Area : E000-FFFF / Checksum-32 : 000eb000 / CRC32 : e88792b3) - BIOS (10/27/82, IBM Corp. 1982)

            Revision 3 (Oct.27.1982) (with Revision B 64-256K motherboard / IBM Cassette BASIC C1.00)

            5700019.U29 (Size : 8192 / Area : 6000-7FFF / Checksum-32 : 000e2700 / CRC32 : b59e8f6c) - BASIC C1.00 (1/4)
            5700027.U30 (Size : 8192 / Area : 8000-9FFF / Checksum-32 : 000f2d00 / CRC32 : bfff99b - BASIC C1.00 (2/4)
            5700035.U31 (Size : 8192 / Area : A000-BFFF / Checksum-32 : 000e8900 / CRC32 : 9fe4ec11) - BASIC C1.00 (3/4)
            5700043.U32 (Size : 8192 / Area : C000-DFFF / Checksum-32 : 000ede00 / CRC32 : ea2794e6) - BASIC C1.00 (4/4)
            1501476.U33 (Size : 8192 / Area : E000-FFFF / Checksum-32 : 000eb000 / CRC32 : 9b791d3e) - BIOS (10/27/82, IBM Corp. 1981)


            Revision 3 (Oct.27.1982) (with Revision B 64-256K motherboard / IBM Cassette BASIC C1.10)

            5000019.U29 (Size : 8192 / Area : 6000-7FFF / Checksum-32 : 000e2e00 / CRC32 : 80d3cf5d) - BASIC C1.10 (1/4)
            5000021.U30 (Size : 8192 / Area : 8000-9FFF / Checksum-32 : 000f2d00 / CRC32 : 673a4acc) - BASIC C1.10 (2/4)
            5000022.U31 (Size : 8192 / Area : A000-BFFF / Checksum-32 : 000e9700 / CRC32 : aac3fc37) - BASIC C1.10 (3/4)
            5000023.U32 (Size : 8192 / Area : C000-DFFF / Checksum-32 : 000ef300 / CRC32 : 3062b3fc) - BASIC C1.10 (4/4)
            1501476.U33 (Size : 8192 / Area : E000-FFFF / Checksum-32 : 000eb000 / CRC32 : 9b791d3e) - BIOS (10/27/82, IBM Corp. 1981)


            Revision 3 (Oct.27.1982) (with Revision B 64-256K motherboard / IBM Cassette BASIC C1.10)

            5000019.U29 (Size : 8192 / Area : 6000-7FFF / Checksum-32 : 000e2e00 / CRC32 : 80d3cf5d) - BASIC C1.10 (1/4)
            5000021.U30 (Size : 8192 / Area : 8000-9FFF / Checksum-32 : 000f2d00 / CRC32 : 673a4acc) - BASIC C1.10 (2/4)
            5000022.U31 (Size : 8192 / Area : A000-BFFF / Checksum-32 : 000e9700 / CRC32 : aac3fc37) - BASIC C1.10 (3/4)
            5000023.U32 (Size : 8192 / Area : C000-DFFF / Checksum-32 : 000ef300 / CRC32 : 3062b3fc) - BASIC C1.10 (4/4)
            1501476.U33 (Size : 8192 / Area : E000-FFFF / Checksum-32 : 000eb000 / CRC32 : e88792b3) - BIOS (10/27/82, IBM Corp. 1982)
            Last edited by fs5500; March 7, 2013, 08:04 AM.

            Comment


              #36
              Originally posted by mbbrutman View Post
              Guys,

              This thread is supposed to be a reference for BIOS versions. Please start another thread. (I will clean this thread up when that happens.)


              Mike
              Agree, I created a new thread in the Vintage hardware sub-forum.

              Comment


                #37
                I've maid simple BIOS sum program on BASIC.

                10 CLS
                20 DEF SEG=&HF000
                30 FOR B=0 TO 7
                40 GOSUB 60
                50 NEXT:END
                60 A=0:FOR I=&H2000*B TO &H2000*(B+1)-1
                70 A=A+PEEK(I):NEXT
                80 PRINT "SUM";B;"=";A
                90 RETURN
                
                To check BIOS version, run this statement on BASIC

                PRINT "BIOS version is";:FOR I=0 TO 7:PRINT CHR$(PEEK(&HFFF5+I));:NEXT

                Normal value must be following

                SUM 0 = 2088960 (default, but variable, 0000-1FFF)
                SUM 1 = 2088960 (default, but variable, 2000-3FFF)
                SUM 2 = 2088960 (default, but variable, 4000-5FFF)
                SUM 3 = 927488 (BASIC C1.00, 6000-7FFF), SUM 3 = 929280 (BASIC C1.10, 6000-7FFF)
                SUM 4 = 994560 (BASIC C1.00 or C1.10, 8000-9FFF)
                SUM 5 = 952576 (BASIC C1.00, A000-BFFF), SUM 5 = 956160 (BASIC C1.10, A000-BFFF)
                SUM 6 = 974336 (BASIC C1.00, C000-DFFF), SUM 6 = 979712 (BASIC C1.10, C000-DFFF)
                SUM 7 = 951808 (BIOS version 04/24/81 or 10/19/81, E000-FFFF), SUM 7 = 962560 (BIOS version 10/27/82, E000-FFFF)

                Comment


                  #38
                  http://i150.photobucket.com/albums/s...ps01aad569.jpg

                  Now Rev.1 (04/24/84) is verified!
                  Last edited by fs5500; February 18, 2015, 04:23 AM.

                  Comment


                    #39
                    Originally posted by fs5500 View Post
                    I've [made a] simple BIOS sum program on BASIC.
                    Thank you very much for this; that's really useful, especially with a machine that may not have a functioning floppy, but that definitely has ROM BASIC.
                    Last edited by ropersonline; July 18, 2015, 10:11 AM.

                    Comment


                      #40
                      Originally posted by fs5500 View Post


                      I fixed the link.

                      Comment


                        #41
                        This is screenshot of System Information for PC-TOOLS on IBM PC 5150

                        5150-1.png
                        5150-2.png
                        5150-3.png

                        Comment

                        Working...
                        X