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

  • fs5500
    replied
    This is screenshot of System Information for PC-TOOLS on IBM PC 5150

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

    Leave a comment:


  • fs5500
    replied
    Originally posted by fs5500 View Post


    I fixed the link.

    Leave a comment:


  • ropersonline
    replied
    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.

    Leave a comment:


  • fs5500
    replied
    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.

    Leave a comment:


  • fs5500
    replied
    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)

    Leave a comment:


  • sergey
    replied
    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.

    Leave a comment:


  • fs5500
    replied
    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.

    Leave a comment:


  • mbbrutman
    replied
    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

    Leave a comment:


  • GOLD CHIP
    replied
    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

    Leave a comment:


  • sergey
    replied
    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.

    Leave a comment:


  • GOLD CHIP
    replied
    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

    Leave a comment:


  • Chuck(G)
    replied
    Yeah, we "rediscovered" this 6300 quirk when trying to get the XT-CF going in 16-bit mode on a 6300--all the bytes were swapped. The answer was to conduct our 6300-to-CF traffic in 8 bit mode. Fortunately, 8 bit mode is a non-optional requirement for CF cards, unlike PATA drives.

    The 6300 bus converter logic is far from simple.

    Leave a comment:


  • yuhong
    replied
    Originally posted by sergey View Post
    I think I saw Olivetti M24 schematics on the net - and it is considerably more complicated than IBM PC one.
    And not exactly correct either:
    https://groups.google.com/d/msg/comp...8/S96D5XRLeRQJ

    Leave a comment:


  • Chuck(G)
    replied
    One other consideration--if you are set on using 16-bit cards, bear in mind that these come in two flavors.

    There are those that were made to function in either 8 or 16-bit slots (several NICs and display cards)--they're okay. Then there were those that would work in 16-bit slots only (e.g. disk adapters, SCSI cards, etc.) You'll find that very often, their extension ROMs use the 80186 instruction additions and that an 8086 won't execute the code. You can, however, substitute a NEC V30 to accommodate those.

    Leave a comment:


  • sergey
    replied
    Originally posted by GOLD CHIP View Post
    Hi all,

    I want to build 8086 based computer with 16-bit ISA bus, compatible with IBM 5150 or 5160. this is for educational purpose only.

    Reason, 8086 is 16-bit computer, so I want it build with 16 bit ROM and SRAM. I hate swapping 8-bit data around.

    This make the design straight forward.

    QUESTION:

    Can I read BIOS from original BIOS chip in IBM 5150 and insert it to 16-bit EEPROM.
    I have 2 IBM 5150, one with cassette port and the other doesn't have it.

    IF I can't do that, is there some free BIOS which I can program into 16-bit EEPROM.

    Thank you in advance
    First of all to answer your question, there is the XT BIOS by Anonymous, which is as far as I can tell is pretty popular for clone XT systems.
    I wrote my own BIOS, which is IBM PC compatible, but also supports many features from AT and PS/2 (RTC, AT keyboard, PS/2 mouse, support for HD/ED floppy drives). You can find the source code and binaries here. Note that this BIOS will not work on the original PC or XT, at least because it requires AT keyboard and doesn't configure DMA to perform DRAM refresh.

    Now I would like to question your idea of building 8086 based system

    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.

    So you have several choices here:
    - You can implement a non-IBM PC compatible 8086 system. But in this case I see little reason for using 8086 CPU (unless you happen to have one and really want to put it in use). You could use a 80186 instead, and enjoy multiple peripherals it has on the chip, or use 80286 (or perhaps even 386SX/386EX) and get a more speedy system. The IBM PC compatible BIOS will not work on such system, at least not without serious modifications.
    - You can implement an IBM PC compatible system, implementing bus steering logic (which is quite complex). There are a few IBM compatible PCs that have done that: Olivetti M24, ES1840/ES1841, IBM PS/2 models 25 and 30. I think I saw Olivetti M24 schematics on the net - and it is considerably more complicated than IBM PC one.
    - You can use 8088 processor, which makes building IBM PC compatible system much easier.

    In case you just want to build an x86 computer, you might want to check the following:
    - PC Retro kit. Basically a complete copy of an IBM PC
    - My Xi 8088 project.
    - SBC-188 project. Much more simple than previous two, yet partially IBM PC compatible (as long as the program uses BIOS/DOS API to access the hardware).
    Last edited by sergey; March 1, 2013, 12:20 PM.

    Leave a comment:

Working...
X