惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
Webroot Blog
Webroot Blog
GbyAI
GbyAI
S
SegmentFault 最新的问题
Cyberwarzone
Cyberwarzone
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 【当耐特】
S
Secure Thoughts
酷 壳 – CoolShell
酷 壳 – CoolShell
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta
S
Security Affairs
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
Hugging Face - Blog
Hugging Face - Blog
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
T
Threatpost
Forbes - Security
Forbes - Security
C
Cisco Blogs
Scott Helme
Scott Helme
Attack and Defense Labs
Attack and Defense Labs
Simon Willison's Weblog
Simon Willison's Weblog
腾讯CDC
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
Last Week in AI
Last Week in AI
Recorded Future
Recorded Future
小众软件
小众软件
V
Vulnerabilities – Threatpost
美团技术团队
人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
Hacker News - Newest:
Hacker News - Newest: "LLM"
I
Intezer
月光博客
月光博客
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 司徒正美
C
Cybersecurity and Infrastructure Security Agency CISA
Martin Fowler
Martin Fowler
博客园 - 聂微东

Blog on KittenLabs

Marantz UD5007 power supply replacement GPD Pocket 4 Speaker DSP Extreme Pi Boot Optimization WiFi auth with OsmoHLR/SIM cards Windows 11 tweaks & usability improvements Using custom domains as a Fediverse redirect 25GBit/s on macOS & iOS Manage RDP certificates on Windows using SSH Reviving a dead Gigabyte MJ11-EC1 mainboard Dead TROTEC PAC2000S air conditioner PlutoSDR standalone ADS-B FR24 feeder OpenWRT als WireGuard-Appliance GPS locked Raspberry Pi Es'hail-2 transceiver setup ThinkPad PowerSeries 820 PlutoSDR clock input WiFi over satellite TV coax
Micro8088 build log
By Manawyrm (@manawyrm@chaos.social) | Thursday, October 29, 202 · 2020-10-29 · via Blog on KittenLabs

Overview

This is a build log of an IBM XT-compatible system called “Micro 8088”, designed by Sergey Kiselev.

micro8088 CPU card, sitting in a ISA backplane Side view onto full micro8088 setup, with sound and video cards

micro8088 CPU card specifications:

  • NEC V20 CPU (4.77 MHz, 7.16 MHz and 9.54 MHz CPU frequencies)
  • Faraday FE2010A chipset
  • 640 KiB RAM (+ XMS)
  • PS/2 keyboard interface
  • 8bit ISA interface

Other ISA cards in the system:

  • Trident TVGA9000 VGA card
  • XT-CF-Lite V4 card (XT-IDE ROM)
  • Game Blaster (clone) sound card
  • Aztech AZT2320 sound card
  • ISA8019 network card

In operation

Backplane

The ISA backplane was also designed by Sergey Kiselev. It connects eight 16bit ISA slots in parallel.
The backplane is microATX form factor-compatible, includes a POST-code display and a -5V voltage regulator.

Plain backplane PCBs, not yet populated ISA backplane PCB with components, POST display, ATX connector, ISA slots, etc.

micro8088 CPU card

PCBs were ordered from JLCPCB, using ENIG (gold plating) and 45° chamfering (to enable insertion into the ISA slots).
This very large bag of parts was ordered from Mouser:

Plain micro8088 and XT-CF-Lite PCBs Big plastic bag of components from Mouser

First parts, resistors, IC sockets and quarz crystals were installed:

Unpopulated micro8088 PCB micro8088 PCB with resistors and quartz

Resistor networks, PLCC sockets and decoupling capacitors:

micro8088 PCB with IC sockets micro8088 PCB with resistor networks and decoupling caps

DIP switches, piezo buzzer, PS/2 jack, reset switch:

micro8088 PCB with DIP-switches and buzzer micro8088 PCB side-view PS/2 connector Finished card, with chips and ROMs:

micro8088 with all ICs populated micro8088 PCB backside, solder joints visible

  • 2x 512 KiB SRAM
  • 128 KiB EEPROM (BIOS)
  • >640K memory handling and PC speaker are controlled by a ATF16V8
  • PIC12F629 converts PS/2 scancodes & protocol into regular PC XT scancodes

Chips were all programmed using a MiniPro TL866. All ROM files are present in the Git repo for micro8088.
Last thing to do was to set 2 jumpers, XSEL (28 MHz crystal) and one across the 4pin speaker header to enable the internal piezo buzzer.

DIP switches on SW2 were set to ON, ON, ON, to configure VGA graphics and E0 scancode passthrough.
The second DIP switch (responsible for memory mapping above 640K) was set to 0xC8000, so SW3.2 = ON.

XT-CF card (XT-IDE)

The XT-CF Lite v4 card uses a CF card socket, directly screwed to the PCB using M2 bolts and nuts. This also makes alignment of the SMD pins very easy. After that, some decoupling caps were installed.

Close-up of SMD CF card connector XT-CF PCB with only caps populated

IC sockets, resistors and DIP switches followed:

XT-CF PCB with IC sockets and DIP switches XT-CF PCB backside, solder joints visible

The card was then ultrasonically cleaned to get rid of any flux (from the CF card socket).
The XT-IDE Option ROM was programmed onto the EEPROM using a MiniPro again.

Ultrasonic cleaning bath, 50 degC temperature setpoint, 15:00 minutes timer ThinkPad laptop with MiniPro TL866 programmer attached. DIP EEPROM is inserted in the programmer.

Finished card, installed into an ISA slot:

XT-CF with ICs populated XT-CF installed into an ISA slot

DIP switches were configured to:

  • I/O address 0x300
  • EEPROM active
  • EEPROM write inactive
  • BIOS address 0xD0000

Testing the card individually (in a more modern Pentium/Socket 7 mainboard) shows that both the card itself and the XTIDE BIOS are working correctly:

Monitor, showing PC boot with XTIDE BIOS reporting a SanDisk card

Game Blaster (MUS-1099) clone sound card

After watching a YouTube video by “Necroware” about a SoundBlaster 2.0 Game Blaster retrofit, I looked for a stand-alone Game Blaster clone project.
I found the MUS-1099 card on GitHub and ordered some PCBs. This was done before the Micro8088 project itself, which is why the PCB color and surface finish are different:

Unpopulated MUS-1099 PCB Unpopulated MUS-1099 PCB backside

Assembly started with resistors and decoupling caps again:

MUS-1099 PCB with resistors added MUS-1099 PCB with capacitors added

DIP IC sockets and resistor networks were installed.
I also went overboard by installing solid polymer capacitors for the audio circuitry. That isn’t required at all, significantly more expensive than electrolytic capacitors and won’t really have any benefit other than long life/stability.
Still: They look pretty and I had them at hand.

MUS-1099 PCB with DIP sockets added MUS-1099 PCB with solid polymer caps

The (rather unusual) stereo potentiometer for volume control and the 3.5mm audio jack were then installed.
The 74-series logic ICs were also inserted into the PCB.

MUS-1099 PCB with volume pot and 3.5mm jack MUS-1099 PCB with ICs added

After installing the SAA1099 synthesizer chips and testing the card inside the Micro8088, I noticed that the audio levels were extremely high. Even with the volume potentiometer turned all the way down, I was getting a lot of hiss/noise and the audio level was way to high for my active speakers. I then removed and bridged the TEA2025 amplifier IC:

MUS-1099 installed in an ISA slot MUS-1099 with amplifier IC bridged

The sound card in action (playing Monkey Island 1):

I also tested Arkanoid 2 and Leasure Suit Larry 3 succesfully. Moving the CMS.DRV file from LSL3 to Space Quest 3 did not work.

ISA8019 prototype

To get network access without having an actual ISA network card around, a prototype ISA card was wired up to a RC2014 (Z80 minicomputer) network card. PHPPLD was used to generate a bitstream of the ISA bus address decoding EEPROM/PLA.

Protoboard setup, flying wires, RTL8019 Ethernet card on an ISA card adapter ISA prototype setup, backside, flying wires everywhere RTL8019 ISA prototype card installed in an ISA slot on a system

Altough the card could be initialized and configured right away, all network packets sent were corrupted. Every odd byte in packets was 0xFF, resulting in totally broken Ethernet frames (and no connectivity, of course). After double and triple-checking the card itself, I noticed that the NE2000 packet driver by Crynwr Software was trying to do 16bit bus accesses.

After finding and installing a modified version by user profdc9, packets were sent/received properly and the card could be used.

A proper (8/16-bit capable, PXE ROM, configurable) ISA card was designed later as the ISA8019 project.

Here’s the micro8088 computer with RC2014-to-ISA NIC, going online to download a tracker module and chatting on IRC: