Image Map Image Map
Page 4 of 4 FirstFirst 1234
Results 31 to 40 of 40

Thread: IBM PC 5150 BIOS Versions

  1. #31

    Default

    Quote 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 4th, 2013 at 01:06 AM. Reason: Xi 8088

  2. #32
    Join Date
    Jul 2010
    Location
    Silicon Forest, Oregon, USA
    Posts
    636

    Default

    Sorry, it took me some time to reply.

    Quote 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...]

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


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

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

  3. #33

    Default

    Quote 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

  4. #34

    Default

    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

  5. #35

    Default

    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 7th, 2013 at 08:04 AM.

  6. #36
    Join Date
    Jul 2010
    Location
    Silicon Forest, Oregon, USA
    Posts
    636

    Default

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

  7. #37

    Default

    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)

  8. #38

    Default

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

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

  9. Default

    Quote 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 18th, 2015 at 11:11 AM.

  10. #40

    Default

    Quote Originally Posted by fs5500 View Post


    I fixed the link.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •