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

推荐订阅源

F
Full Disclosure
WordPress大学
WordPress大学
小众软件
小众软件
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
腾讯CDC
量子位
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Vulnerabilities – Threatpost
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Hacker News
The Hacker News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
Jina AI
Jina AI
Attack and Defense Labs
Attack and Defense Labs
S
SegmentFault 最新的问题
Simon Willison's Weblog
Simon Willison's Weblog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
Google Online Security Blog
Google Online Security Blog
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
罗磊的独立博客
L
LINUX DO - 最新话题
博客园 - Franky
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
The Last Watchdog
The Last Watchdog
J
Java Code Geeks
AI
AI
C
Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
Help Net Security
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
I
Intezer
S
Securelist

KittenLabs

Casiomania Marantz UD5007 power supply replacement AnotterKiosk GPD Pocket 4 Speaker DSP IP-over-Toslink FX3 LVDS Frame grabber 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 Router overclocking Real gaming router Manage RDP certificates on Windows using SSH 20 port USB-C charger Reviving a dead Gigabyte MJ11-EC1 mainboard NVMe BIOS Option ROM 2.5GbE PCIe NIC mod board Blinkekatze ThinkPad T41/T43 USB-C HomeSwitch 4 DC UPS (Lithium) OLED nametag Thermal camera macro LPT printer emulator PC104 ISA adapter Palm IIIc USB-C OtterCast Gigaset DECT debug adapter M.2 NVMe -> miniPCIe Analog floppy synthesizer Dead TROTEC PAC2000S air conditioner Typewriter Teletype SolarCamPi Palm IIIc LED backlight IrDA to RS232 RGB LED nametag PlutoSDR standalone ADS-B FR24 feeder Five meter LED wall ATAPI Audio-CD player TCP/IP for Casio calculators eMMC (micro)SD card ISA8019 NIC Programmable logic in PHP ISA-over-USB FlexibleLOM PCIe adapter Graphical 128x64px VFD GPIO PATA/IDE on Linux CMM2 PCB OpenWRT als WireGuard-Appliance NeonMatrix Pinebook Pro M.2 WiFi Environmental sensor GPS locked Raspberry Pi Es'hail-2 transceiver setup ThinkPad PowerSeries 820 PlutoSDR clock input WiFi over satellite TV coax Search Results
Micro8088 build log
By Manawyrm (@manawyrm@chaos.social) | Thursday, October 29, 202 · 2020-10-29 · via 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: