Difference between revisions of "Xi8088 Version 2.0"
Numberformat (talk | contribs) |
Numberformat (talk | contribs) |
||
(140 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | <span style="float:right;margin-left:1.5em">__TOC__</span> | ||
+ | |||
+ | == Introduction == | ||
+ | |||
+ | Xi 8088 IBM PC/XT compatible processor board. The information on this page is specific for the integrated circuit kit I sell online. Most information could be used at your own risk if you are sourcing your own chips. | ||
+ | |||
+ | == This Page Updates Often == | ||
+ | If you have received this page as a printout then please note that there may have been changes to the instructions below. In order to receive the most up to date information please visit https://wiki.noami.us | ||
+ | |||
+ | Keep this document around for future reference and troubleshooting. | ||
+ | |||
+ | == Features == | ||
+ | |||
+ | * ISA board form factor | ||
+ | * Support of PS/2 keyboard and mouse | ||
+ | * Built-in real time clock with NVRAM | ||
+ | |||
+ | == How to Purchase == | ||
+ | |||
+ | This kit is available on my eBay store https://www.ebay.com/usr/numberf55/ or for an additional discount contact me at support@noami.us or 1 347 604 2083 with your name and order details I will provide a total and instructions for payment by check. Once it clears the item will be sent out. | ||
+ | |||
+ | == Board Assembly == | ||
+ | |||
+ | Tips: | ||
+ | * Short components first then taller ones. | ||
+ | * Keep in mind to use the 510 ohm resistors in the crystal circuit and NOT the 33pf caps. | ||
+ | * The rest of the components should be placed based on the printed locations on the board. | ||
+ | * The notch on each IC should all be facing the same direction (left) | ||
+ | * The resistor packs have a dot on one side that is pin 1 location. | ||
+ | * One and only one switch in SW3 should be in the on position (Wait state 1 is good starting point) | ||
+ | * Check for shorts often for example: After soldering all the sockets and passive components and before and during the process of inserting the chips into their sockets. There have been times where a shorted chip made it into the mix and it makes finding the bad chip very difficult if you check for shorts after everything is installed. See troubleshooting below for corrective actions. | ||
+ | |||
+ | == Post Assembly & Cleaning == | ||
+ | |||
+ | Once you have your board assembled you will need to clean the flux off the board. Depending on the flux you used some flux can remain conductive and result in computer glitches. | ||
+ | |||
+ | I have found the following procedure to be very effective in cleaning the board of any type of solder flux. | ||
+ | |||
+ | # Tape the top of the PC speaker with scotch or packaging tape. | ||
+ | # Some flux are water soluble so just rinse the back side in the sink with some soapy water and an old tooth brush. Try not to get water on the front side. Little water is okay. | ||
+ | # If that doesn't work then Spray WD40 on the back of the board (not kidding). Then use dish washing detergent with the brush to remove the WD40. | ||
+ | # Perform the final rinse. | ||
+ | # Use a hair dryer to to dry the board and let it sit for few hours before proceeding to the next steps. | ||
+ | |||
+ | == Jumper Settings == | ||
+ | |||
+ | === P3 - Speaker === | ||
+ | |||
+ | To enable internal speaker connect a jumper across pins 1-2 | ||
+ | |||
+ | === J2 - Turbo Switch === | ||
+ | |||
+ | Jumper this if you want Turbo Enabled. Also check bios setting to enable Turbo | ||
+ | |||
+ | === J3 - IRQ12 Mouse Interrupt Support === | ||
+ | |||
+ | Position 1-2 (upper 2 pins) PS/2 mouse interrupt connected to the plug in the back of the card | ||
+ | |||
+ | Position 2-3 Mouse Interrupt connected to the ISA Bus | ||
+ | |||
+ | == Board Layout == | ||
+ | |||
+ | Click on any chip for more information. Most of the chips below lead to blank pages. I am working on populating them with more info but currently its a work in progress. | ||
+ | |||
<imagemap>Image:Xi_8088_-_Complete_Board.png| | <imagemap>Image:Xi_8088_-_Complete_Board.png| | ||
− | rect 134 27 214 54 [[74ALS175]] | + | rect 134 27 214 54 [[74ALS175|74ALS175 Quad D flip-flop]] |
+ | rect 1157 240 1214 317 [[PS2Connector|PS/2 Connector]] | ||
+ | rect 1163 164 1214 230 [[PS2Connector|PS/2 Connector]] | ||
+ | rect 1179 320 1214 357 [[ResetSwitch|Reset Switch]] | ||
+ | rect 1172 369 1215 395 [[BiLevelLED]] | ||
+ | circle 25 219 15 [[PN222A]] | ||
+ | rect 173 343 218 359 [[Crystal14.31818Mhz]] | ||
+ | circle 173 377 14 [[TrimmerCapacitor5-53pF]] | ||
+ | rect 229 345 283 388 [[DIPSwitch8Pin]] | ||
+ | rect 183 298 281 336 [[DIPSwitch12Pin]] | ||
+ | rect 7 144 60 199 [[PCSpeaker]] | ||
+ | rect 13 34 121 125 [[CellHolderCR2032]] | ||
+ | rect 65 392 152 448 [[Crystal24Mhz]] | ||
+ | rect 971 334 1149 397 [[29F010]] | ||
+ | rect 796 338 945 398 [[8259]] | ||
+ | rect 660 374 762 413 [[74F244]] | ||
+ | rect 660 326 763 355 [[74F573]] | ||
+ | rect 663 271 766 305 [[74F245]] | ||
+ | rect 414 355 628 427 [[i8087]] | ||
+ | rect 414 270 635 333 [[i8088]] | ||
+ | rect 299 399 387 435 [[74ALS175]] | ||
+ | rect 184 395 281 437 [[8284]] | ||
+ | rect 294 343 382 378 [[74ALS74]] | ||
+ | rect 293 293 378 322 [[74ALS04]] | ||
+ | rect 69 346 154 380 [[74ALS02]] | ||
+ | rect 67 296 161 326 [[74ALS74]] | ||
+ | rect 298 237 385 274 [[74ALS175]] | ||
+ | rect 177 238 264 277 [[74HCT11N]] | ||
+ | rect 67 240 151 272 [[74ALS00]] | ||
+ | rect 968 244 1150 311 [[AS6C4008]] | ||
+ | rect 794 250 948 314 [[8259]] | ||
+ | rect 658 219 766 251 [[74F245]] | ||
+ | rect 411 220 493 251 [[74ALS20]] | ||
+ | rect 299 183 379 219 [[74ALS00]] | ||
+ | rect 182 186 271 222 [[74ALS139]] | ||
+ | rect 71 190 155 220 [[74LS92]] | ||
+ | rect 970 166 1146 229 [[AS6C4008]] | ||
+ | rect 811 196 921 230 [[74F573]] | ||
+ | rect 664 163 761 198 [[74F573]] | ||
+ | rect 517 200 626 229 [[8288]] | ||
+ | rect 414 166 493 199 [[74ALS02]] | ||
+ | rect 297 130 388 171 [[74LS138]] | ||
+ | rect 180 133 270 167 [[74ALS139]] | ||
+ | rect 69 139 153 169 [[74ALS00]] | ||
+ | rect 1054 108 1136 146 [[74LS06]] | ||
+ | rect 948 111 1030 149 [[74ALS04]] | ||
+ | rect 818 112 896 149 [[74LS670]] | ||
+ | rect 662 115 763 144 [[74F245]] | ||
+ | rect 521 135 631 168 [[74F245]] | ||
+ | rect 415 118 496 147 [[74ALS32]] | ||
+ | rect 285 82 372 114 [[74ALS74]] | ||
+ | rect 181 81 261 114 [[74ALS32]] | ||
+ | rect 937 30 1155 90 [[VT82C42]] | ||
+ | rect 699 33 910 94 [[8237]] | ||
+ | rect 542 30 672 91 [[DS12885]] | ||
+ | rect 385 33 511 90 [[8254]] | ||
+ | rect 248 29 351 64 [[74F244]] | ||
</imagemap> | </imagemap> | ||
+ | |||
+ | |||
+ | == Memory Map == | ||
+ | |||
+ | [[File:Ibm_pc_memory_map.jpg|thumb|IBM PC Memory Map]] | ||
+ | |||
+ | The 20 bit address bus of the 8088/86 allows 1 Mb of memory space with address range from 00000-FFFFF. During the design phase of the first IBM PC, engineers had to decide the allocation of the 1-megabyte memory space to various sections of the PC. This memory allocation is called a memory map. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ Memory Map & Jumper Settings | ||
+ | |- | ||
+ | |Start Address | ||
+ | |End Address | ||
+ | |Size | ||
+ | |Purpose | ||
+ | |Comments | ||
+ | |- | ||
+ | |0x00000h | ||
+ | |0x9FFFFh | ||
+ | |640 KiB | ||
+ | |Base memory | ||
+ | | | ||
+ | |- | ||
+ | |0xA0000h | ||
+ | |0xBFFFFh | ||
+ | |128 KiB | ||
+ | |Display memory | ||
+ | | | ||
+ | |- | ||
+ | |0xC0000h | ||
+ | ! style="color:red" |0xEFFFFh | ||
+ | |192 KiB | ||
+ | |Upper memory blocks (UMB) and BIOS extension ROMs | ||
+ | |Consists of six 32 KiB user configurable blocks, can be either mapped to SRAM (to be used as UMB) or used for BIOS extension ROMs | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+SW2 - Memory Configuration Switches | ||
+ | |- | ||
+ | |Position | ||
+ | |Description | ||
+ | |- | ||
+ | |1 | ||
+ | |ON = Map 0xC0000-0xC7FFF to RAM - must be OFF when using VGA | ||
+ | |- | ||
+ | |2 | ||
+ | |ON = Map 0xC8000-0xCFFFF to RAM | ||
+ | |- | ||
+ | |3 | ||
+ | |ON = Map 0xD0000-0xD7FFF to RAM | ||
+ | |- | ||
+ | |4 | ||
+ | |ON = Map 0xD8000-0xDFFFF to RAM | ||
+ | |- | ||
+ | |5 | ||
+ | |ON = Map 0xE0000-0xE7FFF to RAM and 2.7 must be on | ||
+ | |- | ||
+ | |6 | ||
+ | |ON = Map 0xE8000-0xEFFFF to RAM and 2.7 must be on | ||
+ | |} | ||
+ | |||
+ | |- | ||
+ | ! style="color:green" |0xE0000h | ||
+ | ! style="color:red" |0xEFFFFh | ||
+ | |64 KiB | ||
+ | |On-board BIOS extension ROM | ||
+ | |This is the upper 64 KiB of the 192 KiB block seen above. System flash ROM can be mapped here, so it can be used for BIOS extensions | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+SW2 - Memory Configuration Switches | ||
+ | |- | ||
+ | |Position | ||
+ | |Description | ||
+ | |- | ||
+ | |7 | ||
+ | |OFF = 128 KiB ROM starting from 0xE0000 | ||
+ | |} | ||
+ | * SW2.7 must be ON if SW2.5 or SW2.6 are ON | ||
+ | |||
+ | |- | ||
+ | |0xF0000h | ||
+ | |0xFFFFFh | ||
+ | |64 KiB | ||
+ | |System BIOS | ||
+ | |Currently BIOS uses only top 32 KiB of this space (0xF8000h - 0xFFFFFh). The other 32 KiB part is mapped to the flash ROM and can be used for BIOS extensions | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+SW2 - Memory Configuration Switches | ||
+ | |- | ||
+ | |Position | ||
+ | |Description | ||
+ | |- | ||
+ | |7 | ||
+ | |ON = 64 KiB ROM starting from 0xF0000 | ||
+ | |} | ||
+ | |||
+ | |} | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+SW2 - Memory Configuration Switches | ||
+ | |- | ||
+ | |Position | ||
+ | |Description | ||
+ | |- | ||
+ | |8 | ||
+ | |ON = Monochrome display (MDA) | ||
+ | OFF = Color display (CGA) | ||
+ | |} | ||
+ | In summary if you have a VGA card in the system and 128Kb EEPROM chip and want to use the maximum amount of available memory then switch SW2.2,3,4 should be ON and the rest in the OFF position. | ||
+ | |||
+ | == Burning the BIOS onto 39SF010 128k EEPROM chip == | ||
+ | |||
+ | If you purchased this as a kit from my eBay store then the BIOS is already flashed so you can skip this section however you may want to return here if you are upgrading your firmware or installing it on a fresh chip. The latest source is available the following github page: https://github.com/numberformat/8088_bios but it does require compiling using NASM. See: [[Open-source_Development_for_16-bit_machines|Information on how to setup a 16-Bit software build environment]] | ||
+ | |||
+ | === Download the Latest BIOS === | ||
+ | |||
+ | If you prefer the latest version then see below. | ||
+ | |||
+ | Download the 128k BIOS [[File:Bios-xi8088.bin]]. This file was built using NASM 2.14.02 with the latest checked out version from the designer's GitHub page. You could compile the file yourself by following the instructions outlined on that page. | ||
+ | |||
+ | Burn the bios128k-2.0.hex/bin file using the following options: | ||
+ | File Format: Binary, To Region: Default, Load Mode: Normal, From Start Addr(Hex): 00000, Clear Buffer when loading the file: Clear buffer with 0xFF | ||
+ | |||
+ | If you inspected the BIOS binary image you may be wondering why the upper half of the ROM chip's address range is empty. The reason for this is the design of the board internally flips the A16 address line that is going to the ROM chip using an logic inverter (U40 pin 3,4). To the processor the lower half of the ROM's address range (0x00000) appears at the upper half (0x10000). | ||
+ | |||
+ | The position of the SW2.7 does not affect the boot up. The ROM chip will always respond to the 0xFxxxx address range and if you have SW2.7 in the OFF position this chip will also be active for the 0xExxxx address range thus utilizing the now inverted 64Kb bottom address range of the chip for any custom BIOS extension code you decide to put there. | ||
+ | |||
+ | During product testing the inexpensive TL866 II writer was used. These are available on Amazon or eBay. | ||
+ | |||
+ | == Boot Up and BIOS Settings == | ||
+ | |||
+ | [[File:Xi8088_post_success.jpg|thumb]] | ||
+ | |||
+ | Before plugging in the processor card into your backplane perform a final continuity check. The resistance should be above 4k Ohm. You can test this at the top left and bottom right pins of the math co-processor socket. | ||
+ | |||
+ | Once you turn on your machine it will go thru the POST sequence. Hopefully it does not find any issues. A screen similar to the one on the right will be displayed. Press F1 to enter BIOS Setup. You will need to setup the date and time and the default clock setting (Turbo / Non Turbo). Type h for the help menu and w to write to the CMOS and exit. If you made a mistake and system does not boot you can find the jumper to short and clear the CMOS settings its located close to the battery. If you notice post cod 60, 61 or 62 then boot in non turbo mode. See troubleshooting guide for more information on those codes. | ||
+ | |||
+ | == Installing support cards == | ||
+ | |||
+ | Video card. Popular choice is the [[https://en.wikipedia.org/wiki/Trident_Microsystems Trident Video cards]]. | ||
+ | |||
+ | Controller Cards: To run software on this computer you would need to install a floppy controller. There are many out there on eBay most will work just fine. Due to reliability concerns with mechanical floppy drives many people choose to purchase a [[http://www.gotekemulator.com/ Gotek USB floppy emulator]]. This allows you to simulate 100 floppy disk images onto a single thumb drive. | ||
+ | |||
+ | == Running Software == | ||
+ | |||
+ | Once you have the floppy drive create a DOS boot disk. MS DOS 6.22 is the last version that has been tested on this machine. Based on our understanding this is the last version that still supports the 8088 processor. FreeDOS works as well. | ||
+ | |||
+ | == Hard Drive Support == | ||
+ | |||
+ | This board works with the [[XT-CF-Lite V4 card]]. Please see the page dedicated to this card for more information. | ||
+ | |||
+ | == Mouse Support == | ||
+ | |||
+ | Please use the [[http://cutemouse.sourceforge.net/ cute mouse]] driver. Save it to a directory and just execute ctmouse.exe to load it. Open your favorite program that has mouse support to test. Example: edit.exe in MS-DOS 6.22 | ||
+ | |||
+ | === PS/2 Mouse === | ||
+ | |||
+ | This processor board supports a PS/2 mouse. There is a jumper setting on the board as described on this page to enable support for it. | ||
+ | |||
+ | === Serial Mouse === | ||
+ | |||
+ | Serial mouse was also tested and it worked fine. Please note you will need a serial mouse and an ISA card that supports serial communication. You can not use any old USB or PS/2 mouse with a USB or PS/2 to serial adapters. The cheap ones sold online only work if the mouse you have explicitly supports the conversion to serial. You can find these Mice still being sold today but they have become rare. I have a large stock of these I will be posting them shortly watch out for them. | ||
+ | |||
+ | == Software and Tools == | ||
+ | |||
+ | There are many resources online where you can download vintage software. Once such website is [[https://vetusware.com/ vetusware.com]] it has a very large selection of abandoned and vintage software and I encourage support their efforts by opening a premium account with them. | ||
+ | |||
+ | |||
+ | == Benchmarking == | ||
+ | |||
+ | CheckIt is a popular tool used for performance testing. | ||
+ | |||
+ | {|class="wikitable" | ||
+ | |Below is the results from a Intel 8088 running at 8 Mhz. | ||
+ | |Below is the results from a NEC V20 running at 8 Mhz. | ||
+ | |- | ||
+ | |[[File:Xi8088_cpu_benchmark.jpg|400px]] | ||
+ | |[[File:NECV20_checkit.jpg|400px]] | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |+Benchmarking & Demo Programs | ||
+ | |- | ||
+ | |Name | ||
+ | |Description | ||
+ | |- | ||
+ | |[https://archive.org/details/msdos_dazzle_shareware Dazzle] | ||
+ | |Shareware Screensaver with colorful effects works on EGA/VGA cards. Can be left running overnight for "burn in" testing. | ||
+ | |- | ||
+ | |[https://www.pouet.net/prod.php?which=65371 8088 MPH] | ||
+ | |DEMO works with only a PC Speaker but requires a CGA card. Displays on VGA but some screens don't look right. | ||
+ | |- | ||
+ | |[http://www.oldskool.org/pc/8088_Corruption 8088_Corruption/8088FLEX] | ||
+ | |Audio Video Demo Requires sound card. I have not tried it but it seems promising. | ||
+ | |} | ||
+ | |||
+ | == Troubleshooting == | ||
+ | |||
+ | Board layout and schematics are a must have reference. They are available at the designers website. The following section will try to address some of the common troubleshooting topics. | ||
+ | |||
+ | === Oops... I installed a chip upside down and now the system doesn't work === | ||
+ | |||
+ | The chip that is installed up-side-down is fried as well as all the chips it was connected to are partially or fully degraded. In my case I accidently put the 8284 clock generator chip U1 upside down and had to replace it. The system would boot and work in non-turbo mode but as soon as I switched on Turbo 8Mhz clock the system would freeze or become extremely unstable. In this case I had to look at the schematic and replace all the chips connected to U1 for example: U30,31,39,41. The system became stable and works fine now. | ||
+ | |||
+ | === Electrical short detected during continuity test === | ||
+ | |||
+ | If you have tested and found a short while assembling the board check for solder bridges. If none found then it is possible one of the chip is shorted. This has happened to me in the past. To find the bad chip just backtrack. Remove each chip in the order it was installed checking continuity after a few chips. Once the chip is found please contact me for a replacement. | ||
+ | |||
+ | === Does not boot === | ||
+ | |||
+ | [[File:4_77_Mhz_clock.jpg|thumb]] | ||
+ | There could be many reasons why its not booting. This section will grow as I get more feedback from others. | ||
+ | |||
+ | # But for now I noticed a common issue is burning the boot ROM in the wrong byte offset on the chip. The A16 line is inverted so the top half of the 128kb ROM chip appears in the bottom half of the address space. See my notes about burning the BIOS to the ROM chip above. | ||
+ | # Use 2 510 ohm resistors for the clock instead of the 2 33pF caps. An example of a clean clock signal (see image to the right). | ||
+ | # Other common issues include bad solder on pins. | ||
+ | # Off brand CPUs? The Harris Designed CP80C88 CPUs don't work with the machine. OKI M80C88 works fine. | ||
+ | |||
+ | === System does not run at 8Mhz === | ||
+ | |||
+ | If the system can not run at 8Mhz set the default system speed via BIOS setting and place a jumper on on J2. Make sure both are set. | ||
+ | |||
+ | === System runs at 8Mhz but is unstable === | ||
+ | There could be multiple issues. One could be the solder flux may be bridging the connections, slow (LS Series), bad or partially degraded chips. Ensure you source your components from reputable sellers. I have chips in stock from known good sources and offer money back guarantee please see my listings on eBay. | ||
+ | |||
+ | === Keyboard Error 60h or 61h === | ||
+ | |||
+ | These POST error codes occur on the first cold boot. This is normal. The current BIOS does not fully support the Intel P82c59A-2 interrupt controllers. These controllers were chosen for the kit because they are easier to source in large volumes and reduce the overall cost of the kit. Upgrading to the AMD P8259A controllers permanently fixes the problem however these chips are hard to come by and when they are available usually cost $9-10 for the pair. I will work on bringing this to the attention of the community so the BIOS can be fixed. Current workaround is to restart the computer on the first cold boot. | ||
+ | |||
+ | === No sound or continuous sound from speaker === | ||
+ | |||
+ | [[File:Xi8088_enable_internal_speaker.jpg|thumb|enable internal speaker by placing jumper here]] | ||
+ | |||
+ | To enable internal speaker connect a jumper across pins 1-2 of the speaker header pins. The speaker should sound the "intel inside" jingle when POST booting. If the speaker emits sound continuously then you need to order a "passive" speaker. | ||
+ | |||
+ | === Math Co-processor gets hot === | ||
+ | |||
+ | The Math co processor gets so hot that it's really uncomfortable to the touch. This is normal. | ||
+ | |||
+ | === POST codes (sent to port 80h during POST) === | ||
+ | |||
+ | The system writes post codes before operation is started. | ||
+ | |||
+ | <pre> | ||
+ | e_boot equ 00h ; Boot the OS | ||
+ | e_start equ 01h ; BIOS POST started | ||
+ | e_cpu_ok equ 02h ; CPU test passed | ||
+ | e_dmac_ok equ 03h ; DMAC initialized | ||
+ | e_low_ram_ok equ 04h ; low RAM test passed | ||
+ | e_int_ok equ 05h ; interrupt table initialized | ||
+ | e_pit_ok equ 06h ; PIT (timer) initialized | ||
+ | e_pic_ok equ 08h ; PIC initialized | ||
+ | e_kbd_ok equ 10h ; KBD test passed | ||
+ | e_video_bios_ok equ 11h ; Video BIOS found | ||
+ | e_video_init_ok equ 12h ; Video BIOS initialized | ||
+ | e_rtc_init_ok equ 20h ; RTC initialized | ||
+ | e_cpu_detect_ok equ 21h ; CPU type detected | ||
+ | e_fpu_detect_ok equ 22h ; FPU type detected | ||
+ | e_serial_ok equ 24h ; Serial port scan finished | ||
+ | e_parallel_ok equ 25h ; Parallel port scan finished | ||
+ | e_ram_start equ 30h ; RAM test start | ||
+ | e_ram_complete equ 31h ; RAM test completed | ||
+ | e_ram_esc equ 32h ; RAM test canceled | ||
+ | e_ext_start equ 40h ; Start BIOS extension ROM scan | ||
+ | e_ext_detect equ 41h ; BIOS extension ROM found | ||
+ | e_ext_init_ok equ 42h ; BIOS extension ROM initialized | ||
+ | e_ext_complete equ 43h ; BIOS extension scan complete | ||
+ | e_cpu_fail equ 52h ; CPU test failed | ||
+ | e_low_ram_fail equ 54h ; low RAM test failed | ||
+ | e_kbd_ctrl_fail equ 60h ; KBD test - unable to flush KBC output buffer | ||
+ | e_kbd_key_fail equ 61h ; Unable to send command to KBC | ||
+ | e_kbd_timeout equ 62h ; KBD timeout | ||
+ | e_kbd_int_fail equ 63h ; KBD test - interface test failed | ||
+ | e_ram_fail equ 80h ; RAM test failed | ||
+ | |||
+ | ;------------------------------------------------------------------------- | ||
+ | ; Minor numbers for keyboard errors | ||
+ | e_kbd_tout_fail equ 01h ; keyboard timeout sending command | ||
+ | e_kbd_resp_fail equ 02h ; keyboard no response | ||
+ | e_kbd_nack_fail equ 03h ; acknowledge response was expected | ||
+ | ; but keyboard have sent something else | ||
+ | e_kbd_rsp2_fail equ 04h ; keyboard no response byte 2 for BAT | ||
+ | e_kbd_nbat_fail equ 05h ; BAT OK response was expected | ||
+ | ; but keyboard have sent something else | ||
+ | e_kbd_test_fail equ 06h ; keyboard controller test failed | ||
+ | e_kbd_int_fail equ 07h ; keyboard interface test failed | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | === If All Else Fails === | ||
+ | |||
+ | If you purchased the kit from my eBay store then msg me with the issue and I will help resolve it. | ||
+ | |||
+ | == Storage == | ||
+ | |||
+ | If you don't plan on using the processor board for an extended period of time it is recommended to take out the button battery and store the board or entire computer in a dry place. Depending on where you live typically garages or basements are not dry places especially in the North East US. | ||
+ | |||
+ | == Next Steps == | ||
+ | |||
+ | Find software on places like [[https://vetusware.com/ vetusware.com]] or if you are good with programming read the page on [[Open-source_Development_for_16-bit_machines|16-bit Development Environment Setup]] this will show you how to setup your Windows 10 machines so you can write your own software to compile it for the 16-bit architecture of this processor board. I also have a page with assembly, C and low level hardware [[Quick_Reference_Utility | reference material]] describing features the IBM PC architecture. If you are interested in lower level hardware of the 8088 then watch videos from [[https://www.youtube.com/c/SladorSoft/videos Slador's YouTube channel]] | ||
+ | |||
+ | == Notices == | ||
+ | |||
+ | This computer kit is [[http://www.malinov.com/Home/sergeys-projects/xi-8088 designed by Sergey Kiselev]]. Parts are readily available from various online market places. I only make a small commission to offset the cost of online selling fees and time spent testing, assembling and providing support for this kit. |
Latest revision as of 10:43, 10 April 2022
Introduction
Xi 8088 IBM PC/XT compatible processor board. The information on this page is specific for the integrated circuit kit I sell online. Most information could be used at your own risk if you are sourcing your own chips.
This Page Updates Often
If you have received this page as a printout then please note that there may have been changes to the instructions below. In order to receive the most up to date information please visit https://wiki.noami.us
Keep this document around for future reference and troubleshooting.
Features
- ISA board form factor
- Support of PS/2 keyboard and mouse
- Built-in real time clock with NVRAM
How to Purchase
This kit is available on my eBay store https://www.ebay.com/usr/numberf55/ or for an additional discount contact me at support@noami.us or 1 347 604 2083 with your name and order details I will provide a total and instructions for payment by check. Once it clears the item will be sent out.
Board Assembly
Tips:
- Short components first then taller ones.
- Keep in mind to use the 510 ohm resistors in the crystal circuit and NOT the 33pf caps.
- The rest of the components should be placed based on the printed locations on the board.
- The notch on each IC should all be facing the same direction (left)
- The resistor packs have a dot on one side that is pin 1 location.
- One and only one switch in SW3 should be in the on position (Wait state 1 is good starting point)
- Check for shorts often for example: After soldering all the sockets and passive components and before and during the process of inserting the chips into their sockets. There have been times where a shorted chip made it into the mix and it makes finding the bad chip very difficult if you check for shorts after everything is installed. See troubleshooting below for corrective actions.
Post Assembly & Cleaning
Once you have your board assembled you will need to clean the flux off the board. Depending on the flux you used some flux can remain conductive and result in computer glitches.
I have found the following procedure to be very effective in cleaning the board of any type of solder flux.
- Tape the top of the PC speaker with scotch or packaging tape.
- Some flux are water soluble so just rinse the back side in the sink with some soapy water and an old tooth brush. Try not to get water on the front side. Little water is okay.
- If that doesn't work then Spray WD40 on the back of the board (not kidding). Then use dish washing detergent with the brush to remove the WD40.
- Perform the final rinse.
- Use a hair dryer to to dry the board and let it sit for few hours before proceeding to the next steps.
Jumper Settings
P3 - Speaker
To enable internal speaker connect a jumper across pins 1-2
J2 - Turbo Switch
Jumper this if you want Turbo Enabled. Also check bios setting to enable Turbo
J3 - IRQ12 Mouse Interrupt Support
Position 1-2 (upper 2 pins) PS/2 mouse interrupt connected to the plug in the back of the card
Position 2-3 Mouse Interrupt connected to the ISA Bus
Board Layout
Click on any chip for more information. Most of the chips below lead to blank pages. I am working on populating them with more info but currently its a work in progress.
Memory Map
The 20 bit address bus of the 8088/86 allows 1 Mb of memory space with address range from 00000-FFFFF. During the design phase of the first IBM PC, engineers had to decide the allocation of the 1-megabyte memory space to various sections of the PC. This memory allocation is called a memory map.
Start Address | End Address | Size | Purpose | Comments | ||||||||||||||
0x00000h | 0x9FFFFh | 640 KiB | Base memory | |||||||||||||||
0xA0000h | 0xBFFFFh | 128 KiB | Display memory | |||||||||||||||
0xC0000h | 0xEFFFFh | 192 KiB | Upper memory blocks (UMB) and BIOS extension ROMs | Consists of six 32 KiB user configurable blocks, can be either mapped to SRAM (to be used as UMB) or used for BIOS extension ROMs
| ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0xE0000h | 0xEFFFFh | 64 KiB | On-board BIOS extension ROM | This is the upper 64 KiB of the 192 KiB block seen above. System flash ROM can be mapped here, so it can be used for BIOS extensions
| ||||||||||||||
0xF0000h | 0xFFFFFh | 64 KiB | System BIOS | Currently BIOS uses only top 32 KiB of this space (0xF8000h - 0xFFFFFh). The other 32 KiB part is mapped to the flash ROM and can be used for BIOS extensions
|
Position | Description |
8 | ON = Monochrome display (MDA)
OFF = Color display (CGA) |
In summary if you have a VGA card in the system and 128Kb EEPROM chip and want to use the maximum amount of available memory then switch SW2.2,3,4 should be ON and the rest in the OFF position.
Burning the BIOS onto 39SF010 128k EEPROM chip
If you purchased this as a kit from my eBay store then the BIOS is already flashed so you can skip this section however you may want to return here if you are upgrading your firmware or installing it on a fresh chip. The latest source is available the following github page: https://github.com/numberformat/8088_bios but it does require compiling using NASM. See: Information on how to setup a 16-Bit software build environment
Download the Latest BIOS
If you prefer the latest version then see below.
Download the 128k BIOS File:Bios-xi8088.bin. This file was built using NASM 2.14.02 with the latest checked out version from the designer's GitHub page. You could compile the file yourself by following the instructions outlined on that page.
Burn the bios128k-2.0.hex/bin file using the following options: File Format: Binary, To Region: Default, Load Mode: Normal, From Start Addr(Hex): 00000, Clear Buffer when loading the file: Clear buffer with 0xFF
If you inspected the BIOS binary image you may be wondering why the upper half of the ROM chip's address range is empty. The reason for this is the design of the board internally flips the A16 address line that is going to the ROM chip using an logic inverter (U40 pin 3,4). To the processor the lower half of the ROM's address range (0x00000) appears at the upper half (0x10000).
The position of the SW2.7 does not affect the boot up. The ROM chip will always respond to the 0xFxxxx address range and if you have SW2.7 in the OFF position this chip will also be active for the 0xExxxx address range thus utilizing the now inverted 64Kb bottom address range of the chip for any custom BIOS extension code you decide to put there.
During product testing the inexpensive TL866 II writer was used. These are available on Amazon or eBay.
Boot Up and BIOS Settings
Before plugging in the processor card into your backplane perform a final continuity check. The resistance should be above 4k Ohm. You can test this at the top left and bottom right pins of the math co-processor socket.
Once you turn on your machine it will go thru the POST sequence. Hopefully it does not find any issues. A screen similar to the one on the right will be displayed. Press F1 to enter BIOS Setup. You will need to setup the date and time and the default clock setting (Turbo / Non Turbo). Type h for the help menu and w to write to the CMOS and exit. If you made a mistake and system does not boot you can find the jumper to short and clear the CMOS settings its located close to the battery. If you notice post cod 60, 61 or 62 then boot in non turbo mode. See troubleshooting guide for more information on those codes.
Installing support cards
Video card. Popular choice is the [Trident Video cards].
Controller Cards: To run software on this computer you would need to install a floppy controller. There are many out there on eBay most will work just fine. Due to reliability concerns with mechanical floppy drives many people choose to purchase a [Gotek USB floppy emulator]. This allows you to simulate 100 floppy disk images onto a single thumb drive.
Running Software
Once you have the floppy drive create a DOS boot disk. MS DOS 6.22 is the last version that has been tested on this machine. Based on our understanding this is the last version that still supports the 8088 processor. FreeDOS works as well.
Hard Drive Support
This board works with the XT-CF-Lite V4 card. Please see the page dedicated to this card for more information.
Mouse Support
Please use the [cute mouse] driver. Save it to a directory and just execute ctmouse.exe to load it. Open your favorite program that has mouse support to test. Example: edit.exe in MS-DOS 6.22
PS/2 Mouse
This processor board supports a PS/2 mouse. There is a jumper setting on the board as described on this page to enable support for it.
Serial Mouse
Serial mouse was also tested and it worked fine. Please note you will need a serial mouse and an ISA card that supports serial communication. You can not use any old USB or PS/2 mouse with a USB or PS/2 to serial adapters. The cheap ones sold online only work if the mouse you have explicitly supports the conversion to serial. You can find these Mice still being sold today but they have become rare. I have a large stock of these I will be posting them shortly watch out for them.
Software and Tools
There are many resources online where you can download vintage software. Once such website is [vetusware.com] it has a very large selection of abandoned and vintage software and I encourage support their efforts by opening a premium account with them.
Benchmarking
CheckIt is a popular tool used for performance testing.
Below is the results from a Intel 8088 running at 8 Mhz. | Below is the results from a NEC V20 running at 8 Mhz. |
Name | Description |
Dazzle | Shareware Screensaver with colorful effects works on EGA/VGA cards. Can be left running overnight for "burn in" testing. |
8088 MPH | DEMO works with only a PC Speaker but requires a CGA card. Displays on VGA but some screens don't look right. |
8088_Corruption/8088FLEX | Audio Video Demo Requires sound card. I have not tried it but it seems promising. |
Troubleshooting
Board layout and schematics are a must have reference. They are available at the designers website. The following section will try to address some of the common troubleshooting topics.
Oops... I installed a chip upside down and now the system doesn't work
The chip that is installed up-side-down is fried as well as all the chips it was connected to are partially or fully degraded. In my case I accidently put the 8284 clock generator chip U1 upside down and had to replace it. The system would boot and work in non-turbo mode but as soon as I switched on Turbo 8Mhz clock the system would freeze or become extremely unstable. In this case I had to look at the schematic and replace all the chips connected to U1 for example: U30,31,39,41. The system became stable and works fine now.
Electrical short detected during continuity test
If you have tested and found a short while assembling the board check for solder bridges. If none found then it is possible one of the chip is shorted. This has happened to me in the past. To find the bad chip just backtrack. Remove each chip in the order it was installed checking continuity after a few chips. Once the chip is found please contact me for a replacement.
Does not boot
There could be many reasons why its not booting. This section will grow as I get more feedback from others.
- But for now I noticed a common issue is burning the boot ROM in the wrong byte offset on the chip. The A16 line is inverted so the top half of the 128kb ROM chip appears in the bottom half of the address space. See my notes about burning the BIOS to the ROM chip above.
- Use 2 510 ohm resistors for the clock instead of the 2 33pF caps. An example of a clean clock signal (see image to the right).
- Other common issues include bad solder on pins.
- Off brand CPUs? The Harris Designed CP80C88 CPUs don't work with the machine. OKI M80C88 works fine.
System does not run at 8Mhz
If the system can not run at 8Mhz set the default system speed via BIOS setting and place a jumper on on J2. Make sure both are set.
System runs at 8Mhz but is unstable
There could be multiple issues. One could be the solder flux may be bridging the connections, slow (LS Series), bad or partially degraded chips. Ensure you source your components from reputable sellers. I have chips in stock from known good sources and offer money back guarantee please see my listings on eBay.
Keyboard Error 60h or 61h
These POST error codes occur on the first cold boot. This is normal. The current BIOS does not fully support the Intel P82c59A-2 interrupt controllers. These controllers were chosen for the kit because they are easier to source in large volumes and reduce the overall cost of the kit. Upgrading to the AMD P8259A controllers permanently fixes the problem however these chips are hard to come by and when they are available usually cost $9-10 for the pair. I will work on bringing this to the attention of the community so the BIOS can be fixed. Current workaround is to restart the computer on the first cold boot.
No sound or continuous sound from speaker
To enable internal speaker connect a jumper across pins 1-2 of the speaker header pins. The speaker should sound the "intel inside" jingle when POST booting. If the speaker emits sound continuously then you need to order a "passive" speaker.
Math Co-processor gets hot
The Math co processor gets so hot that it's really uncomfortable to the touch. This is normal.
POST codes (sent to port 80h during POST)
The system writes post codes before operation is started.
e_boot equ 00h ; Boot the OS e_start equ 01h ; BIOS POST started e_cpu_ok equ 02h ; CPU test passed e_dmac_ok equ 03h ; DMAC initialized e_low_ram_ok equ 04h ; low RAM test passed e_int_ok equ 05h ; interrupt table initialized e_pit_ok equ 06h ; PIT (timer) initialized e_pic_ok equ 08h ; PIC initialized e_kbd_ok equ 10h ; KBD test passed e_video_bios_ok equ 11h ; Video BIOS found e_video_init_ok equ 12h ; Video BIOS initialized e_rtc_init_ok equ 20h ; RTC initialized e_cpu_detect_ok equ 21h ; CPU type detected e_fpu_detect_ok equ 22h ; FPU type detected e_serial_ok equ 24h ; Serial port scan finished e_parallel_ok equ 25h ; Parallel port scan finished e_ram_start equ 30h ; RAM test start e_ram_complete equ 31h ; RAM test completed e_ram_esc equ 32h ; RAM test canceled e_ext_start equ 40h ; Start BIOS extension ROM scan e_ext_detect equ 41h ; BIOS extension ROM found e_ext_init_ok equ 42h ; BIOS extension ROM initialized e_ext_complete equ 43h ; BIOS extension scan complete e_cpu_fail equ 52h ; CPU test failed e_low_ram_fail equ 54h ; low RAM test failed e_kbd_ctrl_fail equ 60h ; KBD test - unable to flush KBC output buffer e_kbd_key_fail equ 61h ; Unable to send command to KBC e_kbd_timeout equ 62h ; KBD timeout e_kbd_int_fail equ 63h ; KBD test - interface test failed e_ram_fail equ 80h ; RAM test failed ;------------------------------------------------------------------------- ; Minor numbers for keyboard errors e_kbd_tout_fail equ 01h ; keyboard timeout sending command e_kbd_resp_fail equ 02h ; keyboard no response e_kbd_nack_fail equ 03h ; acknowledge response was expected ; but keyboard have sent something else e_kbd_rsp2_fail equ 04h ; keyboard no response byte 2 for BAT e_kbd_nbat_fail equ 05h ; BAT OK response was expected ; but keyboard have sent something else e_kbd_test_fail equ 06h ; keyboard controller test failed e_kbd_int_fail equ 07h ; keyboard interface test failed
If All Else Fails
If you purchased the kit from my eBay store then msg me with the issue and I will help resolve it.
Storage
If you don't plan on using the processor board for an extended period of time it is recommended to take out the button battery and store the board or entire computer in a dry place. Depending on where you live typically garages or basements are not dry places especially in the North East US.
Next Steps
Find software on places like [vetusware.com] or if you are good with programming read the page on 16-bit Development Environment Setup this will show you how to setup your Windows 10 machines so you can write your own software to compile it for the 16-bit architecture of this processor board. I also have a page with assembly, C and low level hardware reference material describing features the IBM PC architecture. If you are interested in lower level hardware of the 8088 then watch videos from [Slador's YouTube channel]
Notices
This computer kit is [designed by Sergey Kiselev]. Parts are readily available from various online market places. I only make a small commission to offset the cost of online selling fees and time spent testing, assembling and providing support for this kit.