<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.lo-tech.co.uk/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=James</id>
	<title>Lo-tech Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.lo-tech.co.uk/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=James"/>
	<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/wiki/Special:Contributions/James"/>
	<updated>2026-04-04T03:14:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Tuning_the_RaspberryPi_Zero2W_for_Minimum_Power_Consumption&amp;diff=1578</id>
		<title>Tuning the RaspberryPi Zero2W for Minimum Power Consumption</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Tuning_the_RaspberryPi_Zero2W_for_Minimum_Power_Consumption&amp;diff=1578"/>
		<updated>2026-02-22T11:06:13Z</updated>

		<summary type="html">&lt;p&gt;James: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide summarises simple, effective steps to reduce power usage on a Raspberry Pi Zero 2 W. The focus is on headless and always-on use-cases.&lt;br /&gt;
&lt;br /&gt;
Baseline Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Headless system (no HDMI display)&lt;br /&gt;
* Raspberry Pi OS Lite&lt;br /&gt;
* SSH access available&lt;br /&gt;
&lt;br /&gt;
== Disabling Unused Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== HDMI ===&lt;br /&gt;
Disable HDMI output to save ~20–30 mA.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hdmi_blanking=2&lt;br /&gt;
hdmi_force_hotplug=0&lt;br /&gt;
hdmi_ignore_hotplug=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
Disable the activity and power LEDs if not required.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtparam=act_led_trigger=none&lt;br /&gt;
dtparam=act_led_activelow=on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reducing CPU Power ==&lt;br /&gt;
&lt;br /&gt;
=== Limit CPU Frequency ===&lt;br /&gt;
Lower the maximum CPU clock to reduce both idle and load power.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt; (minimum is 600MHz):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arm_freq=600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Limiting Active CPU Cores ===&lt;br /&gt;
&lt;br /&gt;
All Raspberry Pi boards except the Zero(W) and original Raspberry Pi have quad-core CPUs. For many low-power workloads, the system can be limited to two or even one core, so reducing the peak power demand especially during boot.&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;/boot/firmware/cmdline.txt&amp;lt;/code&amp;gt; (keep everything on a single line):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maxcpus=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reducing Bluetooth and WiFi Power Consumption ==&lt;br /&gt;
&lt;br /&gt;
=== Wi-Fi ===&lt;br /&gt;
To disable at boot, add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtoverlay=disable-wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
To disable at boot, add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtoverlay=disable-bt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tuning the Pi for &amp;lt;b&amp;gt;autostream&amp;lt;/b&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Lo-tech &amp;lt;b&amp;gt;[https://www.lo-tech.co.uk/autostream/ autostream]&amp;lt;/b&amp;gt; is a locally installed service that connects HiFi separates to AirPlay and AirPlay 2 speakers, as is designed around the Pi Zero 2W. To minimise peak and average power consumption in this application:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/boot/firmware/cmdline.txt&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Append (keep everything on a single line):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maxcpus=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Replace the whole file with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[all]&lt;br /&gt;
# Enable system watchdog&lt;br /&gt;
dtparam=watchdog=on&lt;br /&gt;
&lt;br /&gt;
# Disable bluetooth&lt;br /&gt;
dtoverlay=disable-bt&lt;br /&gt;
&lt;br /&gt;
# Disable on-board audio&lt;br /&gt;
dtparam=audio=off&lt;br /&gt;
&lt;br /&gt;
# Disable camera and DSI display autodetection&lt;br /&gt;
camera_auto_detect=0&lt;br /&gt;
display_auto_detect=0&lt;br /&gt;
&lt;br /&gt;
# Automatically load initramfs files, if found&lt;br /&gt;
auto_initramfs=1&lt;br /&gt;
&lt;br /&gt;
# Run in 64-bit mode&lt;br /&gt;
arm_64bit=1&lt;br /&gt;
&lt;br /&gt;
# Fully power down HDMI&lt;br /&gt;
hdmi_blanking=2&lt;br /&gt;
hdmi_force_hotplug=0&lt;br /&gt;
hdmi_ignore_hotplug=1&lt;br /&gt;
disable_overscan=1&lt;br /&gt;
&lt;br /&gt;
# Minimum GPU RAM for headless&lt;br /&gt;
gpu_mem=16&lt;br /&gt;
&lt;br /&gt;
# Underclock CPU&lt;br /&gt;
arm_freq=700&lt;br /&gt;
arm_boost=0&lt;br /&gt;
force_turbo=0&lt;br /&gt;
&lt;br /&gt;
# Slight undervolt (safe range is usually -2 to -4)&lt;br /&gt;
over_voltage=-2&lt;br /&gt;
&lt;br /&gt;
# Zero2Go PSU board parameters&lt;br /&gt;
# If you are not using the Zero2Go PSU board, comment these four lines&lt;br /&gt;
enable_uart=1&lt;br /&gt;
dtparam=i2c1=on&lt;br /&gt;
dtparam=i2c_arm=on&lt;br /&gt;
dtoverlay=miniuart-bt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Changes to configuration files require a reboot to take affect&lt;br /&gt;
* Test stability if lowering CPU voltage&lt;br /&gt;
* If the Pi cannot boot after editing config.txt or cmdline.txt, those files on the SD card can be accessed directly using a Windows PC (or Mac) by connecting the micro-SD card via a USB adapter.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[https://www.lo-tech.co.uk/autostream/ autostream (product page)]&lt;br /&gt;
*[https://www.lo-tech.co.uk/add-airplay-to-a-vintage-cd-player/ Adding AirPlay to a Vintage CD Player (blog post)]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Tuning_the_RaspberryPi_Zero2W_for_Minimum_Power_Consumption&amp;diff=1577</id>
		<title>Tuning the RaspberryPi Zero2W for Minimum Power Consumption</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Tuning_the_RaspberryPi_Zero2W_for_Minimum_Power_Consumption&amp;diff=1577"/>
		<updated>2026-02-22T10:52:33Z</updated>

		<summary type="html">&lt;p&gt;James: /* Limiting Active CPU Cores */ Added configuration for Zero2Go PSU board in autostream config.txt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide summarises simple, effective steps to reduce power usage on a Raspberry Pi Zero 2 W. The focus is on headless and always-on use-cases.&lt;br /&gt;
&lt;br /&gt;
Baseline Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Headless system (no HDMI display)&lt;br /&gt;
* Raspberry Pi OS Lite&lt;br /&gt;
* SSH access available&lt;br /&gt;
&lt;br /&gt;
== Disabling Unused Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== HDMI ===&lt;br /&gt;
Disable HDMI output to save ~20–30 mA.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hdmi_blanking=2&lt;br /&gt;
hdmi_force_hotplug=0&lt;br /&gt;
hdmi_ignore_hotplug=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
Disable the activity and power LEDs if not required.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtparam=act_led_trigger=none&lt;br /&gt;
dtparam=act_led_activelow=on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reducing CPU Power ==&lt;br /&gt;
&lt;br /&gt;
=== Limit CPU Frequency ===&lt;br /&gt;
Lower the maximum CPU clock to reduce both idle and load power.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt; (minimum is 600MHz):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arm_freq=600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Limiting Active CPU Cores ===&lt;br /&gt;
&lt;br /&gt;
All Raspberry Pi boards except the Zero(W) and original Raspberry Pi have quad-core CPUs. For many low-power workloads, the system can be limited to two or even one core, so reducing the peak power demand especially during boot.&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;/boot/firmware/cmdline.txt&amp;lt;/code&amp;gt; (keep everything on a single line):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maxcpus=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reducing Bluetooth and WiFi Power Consumption ==&lt;br /&gt;
&lt;br /&gt;
=== Wi-Fi ===&lt;br /&gt;
To disable at boot, add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtoverlay=disable-wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
To disable at boot, add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtoverlay=disable-bt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tuning the Pi for &amp;lt;b&amp;gt;autostream&amp;lt;/b&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Lo-tech &amp;lt;b&amp;gt;[https://www.lo-tech.co.uk/autostream/ autostream]&amp;lt;/b&amp;gt; is a locally installed service that connects HiFi separates to AirPlay and AirPlay 2 speakers, as is designed around the Pi Zero 2W. To minimise peak and average power consumption in this application:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/boot/firmware/cmdline.txt&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Append (keep everything on a single line):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maxcpus=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Replace the whole file with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[all]&lt;br /&gt;
# Enable system watchdog&lt;br /&gt;
dtparam=watchdog=on&lt;br /&gt;
&lt;br /&gt;
# Disable bluetooth&lt;br /&gt;
dtoverlay=disable-bt&lt;br /&gt;
&lt;br /&gt;
# Disable on-board audio&lt;br /&gt;
dtparam=audio=off&lt;br /&gt;
&lt;br /&gt;
# Disable camera and DSI display autodetection&lt;br /&gt;
camera_auto_detect=0&lt;br /&gt;
display_auto_detect=0&lt;br /&gt;
&lt;br /&gt;
# Automatically load initramfs files, if found&lt;br /&gt;
auto_initramfs=1&lt;br /&gt;
&lt;br /&gt;
# Run in 64-bit mode&lt;br /&gt;
arm_64bit=1&lt;br /&gt;
&lt;br /&gt;
# Fully power down HDMI&lt;br /&gt;
hdmi_blanking=2&lt;br /&gt;
hdmi_force_hotplug=0&lt;br /&gt;
hdmi_ignore_hotplug=1&lt;br /&gt;
disable_overscan=1&lt;br /&gt;
&lt;br /&gt;
# Minimum GPU RAM for headless&lt;br /&gt;
gpu_mem=16&lt;br /&gt;
&lt;br /&gt;
# Underclock CPU&lt;br /&gt;
arm_freq=700&lt;br /&gt;
arm_boost=0&lt;br /&gt;
force_turbo=0&lt;br /&gt;
&lt;br /&gt;
# Slight undervolt (safe range is usually -2 to -4)&lt;br /&gt;
over_voltage=-2&lt;br /&gt;
&lt;br /&gt;
# Zero2Go PSU board parameters&lt;br /&gt;
# If you are not using the Zero2Go PSU board, comment these four lines&lt;br /&gt;
enable_uart=1&lt;br /&gt;
dtparam=i2c1=on&lt;br /&gt;
dtparam=i2c_arm=on&lt;br /&gt;
dtoverlay=miniuart-bt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Changes to configuration files require a reboot to take affect&lt;br /&gt;
* Test stability if lowering CPU voltage&lt;br /&gt;
* If the Pi cannot boot after editing config.txt or cmdline.txt, those files on the SD card can be accessed directly using a Windows PC (or Mac) by connecting the micro-SD card via a USB adapter.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[https://www.lo-tech.co.uk/autostream/ autostream]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Tuning_the_RaspberryPi_Zero2W_for_Minimum_Power_Consumption&amp;diff=1576</id>
		<title>Tuning the RaspberryPi Zero2W for Minimum Power Consumption</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Tuning_the_RaspberryPi_Zero2W_for_Minimum_Power_Consumption&amp;diff=1576"/>
		<updated>2026-02-20T18:37:26Z</updated>

		<summary type="html">&lt;p&gt;James: /* /boot/firmware/cmdline.txt */ Corrected cmdline parameter to limit CPU cores.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide summarises simple, effective steps to reduce power usage on a Raspberry Pi Zero 2 W. The focus is on headless and always-on use-cases.&lt;br /&gt;
&lt;br /&gt;
Baseline Assumptions:&lt;br /&gt;
&lt;br /&gt;
* Headless system (no HDMI display)&lt;br /&gt;
* Raspberry Pi OS Lite&lt;br /&gt;
* SSH access available&lt;br /&gt;
&lt;br /&gt;
== Disabling Unused Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== HDMI ===&lt;br /&gt;
Disable HDMI output to save ~20–30 mA.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hdmi_blanking=2&lt;br /&gt;
hdmi_force_hotplug=0&lt;br /&gt;
hdmi_ignore_hotplug=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
Disable the activity and power LEDs if not required.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtparam=act_led_trigger=none&lt;br /&gt;
dtparam=act_led_activelow=on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reducing CPU Power ==&lt;br /&gt;
&lt;br /&gt;
=== Limit CPU Frequency ===&lt;br /&gt;
Lower the maximum CPU clock to reduce both idle and load power.&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt; (minimum is 600MHz):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arm_freq=600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Limiting Active CPU Cores ===&lt;br /&gt;
&lt;br /&gt;
All Raspberry Pi boards except the Zero(W) and original Raspberry Pi have quad-core CPUs. For many low-power workloads, the system can be limited to two or even one core, so reducing the peak power demand especially during boot.&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;/boot/firmware/cmdline.txt&amp;lt;/code&amp;gt; (keep everything on a single line):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maxcores=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reducing Bluetooth and WiFi Power Consumption ==&lt;br /&gt;
&lt;br /&gt;
=== Wi-Fi ===&lt;br /&gt;
To disable at boot, add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtoverlay=disable-wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
To disable at boot, add to &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dtoverlay=disable-bt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tuning the Pi for &amp;lt;b&amp;gt;autostream&amp;lt;/b&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Lo-tech &amp;lt;b&amp;gt;[https://www.lo-tech.co.uk/autostream/ autostream]&amp;lt;/b&amp;gt; is a locally installed service that connects HiFi separates to AirPlay and AirPlay 2 speakers, as is designed around the Pi Zero 2W. To minimise peak and average power consumption in this application:&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/boot/firmware/cmdline.txt&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Append (keep everything on a single line):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maxcpus=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;/boot/firmware/config.txt&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Replace the whole file with this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Disable on-board audio &lt;br /&gt;
dtparam=audio=off&lt;br /&gt;
&lt;br /&gt;
# Disable camera and DSI display autodetection&lt;br /&gt;
camera_auto_detect=0&lt;br /&gt;
display_auto_detect=0&lt;br /&gt;
&lt;br /&gt;
# Automatically load initramfs files, if found&lt;br /&gt;
auto_initramfs=1&lt;br /&gt;
&lt;br /&gt;
# Run in 64-bit mode&lt;br /&gt;
arm_64bit=1&lt;br /&gt;
&lt;br /&gt;
# Disable compensation for displays with overscan&lt;br /&gt;
disable_overscan=1&lt;br /&gt;
&lt;br /&gt;
# Enable system watchdog&lt;br /&gt;
dtparam=watchdog=on&lt;br /&gt;
&lt;br /&gt;
# Disable bluetooth and UART&lt;br /&gt;
dtoverlay=disable-bt&lt;br /&gt;
enable_uart=0&lt;br /&gt;
&lt;br /&gt;
# Fully power down HDMI&lt;br /&gt;
hdmi_blanking=2&lt;br /&gt;
hdmi_force_hotplug=0&lt;br /&gt;
hdmi_ignore_hotplug=1&lt;br /&gt;
&lt;br /&gt;
# Underclock CPU&lt;br /&gt;
arm_freq=700&lt;br /&gt;
arm_boost=0&lt;br /&gt;
force_turbo=0&lt;br /&gt;
&lt;br /&gt;
# Minimum GPU RAM for headless&lt;br /&gt;
gpu_mem=16&lt;br /&gt;
&lt;br /&gt;
# Slight undervolt (safe range is -2 to -4)&lt;br /&gt;
over_voltage=-2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Changes to configuration files require a reboot to take affect&lt;br /&gt;
* Test stability if lowering CPU voltage&lt;br /&gt;
* If the Pi cannot boot after editing config.txt or cmdline.txt, those files on the SD card can be accessed directly using a Windows PC (or Mac) by connecting the micro-SD card via a USB adapter.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[https://www.lo-tech.co.uk/autostream/ autostream]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_CompactFlash_Adapter_revision_2b&amp;diff=1572</id>
		<title>Lo-tech ISA CompactFlash Adapter revision 2b</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_CompactFlash_Adapter_revision_2b&amp;diff=1572"/>
		<updated>2026-01-24T20:06:20Z</updated>

		<summary type="html">&lt;p&gt;James: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The [[Lo-tech ISA CompactFlash Adapter revision 2b]] is a bootable storage adapter for IBM PC, PC/XT, PC/AT and compatible hardware - essentially any PC with an ISA slot. The card enables the use of:&lt;br /&gt;
&lt;br /&gt;
*Standard CompactFlash cards, via any low-cost CompactFlash to IDE adapter&lt;br /&gt;
*SD-Cards, via an FC1306T based SD to IDE adapter&lt;br /&gt;
*ATA-2 compliant hard disks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:ISA-CompactFlash-Adapter-PCB-Front-r2b.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-front-assembled.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-back.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-back-assembled.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For help getting this kit running, please see the [[Lo-tech ISA CompactFlash Adapter FAQ]] or [{{SERVER}}/get-in-touch/ Get In touch].&lt;br /&gt;
&lt;br /&gt;
The BIOS ROM on the card enables the host PC to boot from storage presented by the adapter, which appears in DOS as an ordinary fixed disk (i.e. drive C, D, etc). No DOS drivers are needed.&lt;br /&gt;
&lt;br /&gt;
The PCB itself is a through-hole, small form factor 8-bit ISA adapter. No slot bracket is needed, due to the small size. The design provides:&lt;br /&gt;
&lt;br /&gt;
*Bootable storage adapter for 8-bit PCs&lt;br /&gt;
*Ease of home assembly, by use of only through-hole components for basic operation&lt;br /&gt;
*Small form-factor, to enable use in machines with limited expansion slot space such as the Tandy 1000HX, Sinclair PC200 and Amstrad PC-20&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility (with optional SMD components mounted on rear of PCB)&lt;br /&gt;
*5V supply to IDE header key-pin, for cable-less operation of CompactFlash and SD-Card adapters supporting this power option&lt;br /&gt;
*Selectable BIOS address - C800h or D800h&lt;br /&gt;
&lt;br /&gt;
The board is programatically identical to the [[XT-CF-lite]] and uses the [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS], provided through an in-system re-programmable 32KB flash-based ROM. Since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable - the board can therefore function as a universal ROM board.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please note that ATA and SATA hard drives cannot be used with this adapter, except ATA-2 compliant drives. The [[Lo-tech 8-bit IDE Adapter]] is compatible with standard ATA and SATA drives.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To buy this and other PCBs, please visit [{{SERVER}}/shop the lo-tech shop].&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit ISA card with 40-pin IDE header for attachment to:&lt;br /&gt;
**IDE to CompactFlash adapter&lt;br /&gt;
**FC1306T based IDE to SD Card adapter&lt;br /&gt;
**ATA-2 compliant drives&lt;br /&gt;
*5V power supply:&lt;br /&gt;
**to IDE header key-pin (can drive micro-drives, CompactFlash adapters and SD Card adapters without any external power connection)&lt;br /&gt;
**holes for attachment of peripheral power cable (for use where target host has no available peripheral power cables)&lt;br /&gt;
*Basic functionality is dependent only on through-hole components&lt;br /&gt;
*Optional SMT components provide additional functionality:&lt;br /&gt;
**Line driver for external activity LEDs (12mA power budget for external LED)&lt;br /&gt;
**[[IBM Personal Computer XT System Board Slot 8]] compatibility&lt;br /&gt;
*Low-cost flash memory chip for boot ROM, with 32KB usable&lt;br /&gt;
*Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)&lt;br /&gt;
*Utilises [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS] (adapter type: &#039;XT-CF&#039;)&lt;br /&gt;
*Resource requirements:&lt;br /&gt;
**IO ports 300-31Fh&lt;br /&gt;
**ROM: 32KB at C800h or D800h&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-ISA-CompactFlash-Adapter-rev2b-Schematic.png&lt;br /&gt;
File:ISA-CompactFlash-Adapter-PCB-Front-r2b.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-back.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-front-assembled.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2013,2016 Peacon Ltd (now Lo-tech Systems Limited).&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
=== Core Components ===&lt;br /&gt;
&lt;br /&gt;
Basic functionality requires only through-hole components. JP2 must be closed, and ROM address will be fixed at C800h.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC3 || 74HCT688N || DIP-20 || 2 || 382504 || 771-74HCT688N&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || SST39SF010A-70-4C-PHE || DIP-32 || 1 || 1896595 || 804-39SF010A7CPHE&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || 74HCT139N || DIP-16 || 1 || 382036 || 595-SN74HCT139N&lt;br /&gt;
|-&lt;br /&gt;
|IC5 || 74HCT245N || DIP-20 || 1 || 9591931 || 595-SN74HCT245N&lt;br /&gt;
|-&lt;br /&gt;
|RN1 || 4-element Isolated Resistor Network, 10k || SIP-8 || 1 || 9356525 || 652-4608X-2LF-10K&lt;br /&gt;
|-&lt;br /&gt;
|C1..5 || 0.1uF Ceramic Capacitor || C025-030X050 || 5 || 2112751 || 581-SR205E104MAR or &amp;lt;br&amp;gt;581-SR205C104KAR&lt;br /&gt;
|-&lt;br /&gt;
|C6 || 10uF Electrolytic Capacitor || E2-5  || 1 || 8767084 || 647-UVR1C100MDD&lt;br /&gt;
|-&lt;br /&gt;
|C8 || 2.2uF Tanalum Capacitor || - || 1 || DNP* || DNP*&lt;br /&gt;
|-&lt;br /&gt;
|HD1 || T821140A1S100CEU || 2x20 Pin Header, 2.54mm spacing || 1 || 2215314 || 517-30340-6002&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP32) || - || DIL32 || 1 || 1654375 || 571-1-2199300-2&amp;lt;br&amp;gt;517-4832-6000-CP&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP20) || - || DIL20 || 3 || 1101349 || 571-1-2199298-6&amp;lt;br&amp;gt;649-DILB20P-223TLF&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP16) || - || DIL16 || 1 || 1101347 || 571-1-2199298-4&amp;lt;br&amp;gt;649-DILB16P-223TLF&lt;br /&gt;
|-&lt;br /&gt;
|JP1, JP2, JP3 || - || 1x2 Pin Header || 3 || 1593411 || 855-M20-9990246&amp;lt;br&amp;gt;653-XG8S-0231&lt;br /&gt;
|-&lt;br /&gt;
| - || - || 2-pin jumper || 2 || 2396301 || 806-SX1100-A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of a range of DIP-32 flash chips (1, 2 or 4Mb):&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/SST/SST39SF0x0.pdf SST39SF0x0A] (SST39SF010A, SST39SF020A, SST39SF040A)&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/AMIC/AMIC-A29010.pdf AMIC A29010]&lt;br /&gt;
**AMIC chips appear to have been discontinued (as as Nov-13)&lt;br /&gt;
*Regardless of the chip used, 32KB is presented at C800h (JP2 closed) or D800h (JP2 open and R4 fitted)&lt;br /&gt;
*DNP = Do Not Populate&lt;br /&gt;
&lt;br /&gt;
=== Enhanced Functionality ===&lt;br /&gt;
&lt;br /&gt;
Additional components are required for:&lt;br /&gt;
&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility (also provides enhanced read performance for PC/AT systems)&lt;br /&gt;
*Device activity LED&lt;br /&gt;
*ROM address selection (C800h/D800h)&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|U1 || SN74LS33D || SOIC-14 || 1 || 1752958 || 595-SN74LS33D&lt;br /&gt;
|-&lt;br /&gt;
|R1, R2, R4 || RESISTOR, 10K, 125MW || 0805 || 3 || 1612522 || 71-CRCW0805J-10K-E3&lt;br /&gt;
|-&lt;br /&gt;
|R3 || RESISTOR, 0.125W 1% 270R || 0805 || 1 || 1652970 || 71-CRCW0805270RJNEA&lt;br /&gt;
|-&lt;br /&gt;
|C7 || CAPACITOR, 0.1UF, 50V || 0805 || 1 || 1612208 || VJ0805V104MXBPW1BC&lt;br /&gt;
|-&lt;br /&gt;
|LED || - || 1x2 Pin Header || 1 || 1593411 || 855-M20-9990246&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that when assembling SMT components, additional flux will also be needed (such as Edsyn FL22, Farnell order code 3059091).&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*JP1: ROM enable (closed = enabled)&lt;br /&gt;
*JP2: ROM Address Selection - closed = C800h, open (and R4 fitted) = D800h&lt;br /&gt;
*JP3: Slot-8/ZWS Function (closed = enabled) - requires SMT components&lt;br /&gt;
&lt;br /&gt;
An external LED can be attached to the 2-pin LED header only if the optional components (on the rear of the PCB) are populated. Current limit for LED is 12mA.&lt;br /&gt;
&lt;br /&gt;
The IO port address (300h - 31Fh) is fixed.&lt;br /&gt;
&lt;br /&gt;
== Build &amp;amp; Test ==&lt;br /&gt;
&lt;br /&gt;
For additional help, please email me via [{{SERVER}}/get-in-touch/ the site blog].&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
This project is available in [{{SERVER}}/shop the Lo-tech store] as [{{SERVER}}/product/lo-tech-isa-compactflash-pcb/ a Bare PCB] - components from the Bill of Materials above must be sourced separately for example from Farnell, Newark, Mouser, DigiKey or other electronic component supplier.  Farnell and Newark part numbers are provided above for convenience.&lt;br /&gt;
&lt;br /&gt;
An appropriate media adapter and storage device must be purchased separately (i.e. and IDE to CompactFlash adapter and a CompactFlash card).&lt;br /&gt;
&lt;br /&gt;
A temperature controlled soldering iron is highly recommended for assembly. Tin-lead solder is generally easier to use than lead-free. A quality syringe flux is also recommended and is essential for the optional SMT parts (see [[SMT Soldering Notes]]). Before construction, the PCB should be cleaned in isopropynol.&lt;br /&gt;
&lt;br /&gt;
=== Construction ===&lt;br /&gt;
&lt;br /&gt;
*Find a suitable work surface with plenty of light.  I find a car-cleaning sponge useful to rest the PCB on since components are held nicely in place under the PCB by the soft surface, which can also be easily turned around as a whole with components not yet soldered&lt;br /&gt;
*Start with the least tall components, so that they are held full in place with the solder side up&lt;br /&gt;
*When soldering IC sockets or ICs, ensure the notches are at the correct end as indicated by the PCB silkscreen&lt;br /&gt;
*If using a shrouded 40-pin header, observe correct orientation as indicated by the silkscreen.  The key pin can be removed from the header with a small pair of thin-nose pliers before placement (though note that the key pin can be used to supply 5V to the required CompactFlash adapter if left in-place)&lt;br /&gt;
*Note the correct orientation of the polarised capacitors C6 and C8. C8 positive leg is closest to C3.&lt;br /&gt;
*Wash all flux residues off once complete using isopropynol (for example with a toothbrush)&lt;br /&gt;
*Check closely with a magnifying glass all joints.  Check especially for bridges between SMT pins&lt;br /&gt;
&lt;br /&gt;
=== BIOS Flashing (Programming) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The following assumes JP2 is closed, providing the ROM at C800h&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*The board is powered by the [[XTIDE Universal BIOS]] and features a 32KB in-system re-programmable flash chip&lt;br /&gt;
*XTIDE Universal BIOS build R560 or newer is recommended (v2 beta 3 is much older)&lt;br /&gt;
**[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/xtide-r566-xt-cf-master-slave.zip Pre-configured BIOS based on R566 - BIOS at C800h]&lt;br /&gt;
**[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/offr566.zip Pre-configured BIOS based on R566 - FFh padded with BIOS at CC00h] - see [[Lo-tech_ISA_CompactFlash_Adapter_FAQ#What_BIOS_does_the_Card_Use.3F|FAQ]] for more information&lt;br /&gt;
*The flash chip is programmed with the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
*Select the appropriate ROM image:&lt;br /&gt;
**IDE_XT.BIN for Intel 8088 and 8086 CPUs&lt;br /&gt;
**IDE_XTP.BIN for NEC V20, V30, and Intel 80286 CPUs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: The late initialisation module in the XTIDE Universal BIOS should only be included in the BIOS build for systems that require this.  The module can cause the BIOS to hang after initialisation on other systems.  The BIOS build above excludes this module.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To program the board, make a DOS boot disk (utilities have been tested on MS-DOS 2.11, 3.3 and 6.22) and add the BIOS binary file and the flash utility.  Install the Lo-tech ISA CompactFlash Adapter in the machine and boot from the floppy, then flash the ROM thus:&lt;br /&gt;
&lt;br /&gt;
 A:\&amp;gt;flash ide_xt.bin c800 &lt;br /&gt;
&lt;br /&gt;
Note that should a board containing the IDE_XTP.BIN image be moved to an Intel 8088/8086 PC, the BIOS image will cause the machine to hang during the POST.  To resolve this, either re-flash the board with the IDE_XT.BIN image before moving, or disable the ROM during the POST via JP1.  JP1 can be closed once the machine has booted, so enabling the ROM for programming (provided there is no other ROM at C800h).&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
In addition to the board configurable options, the XTIDE Universal BIOS provides several transfer modes for [[Lo-tech XT-CF Boards]].  The [[Lo-tech ISA CompactFlash Adapter revision 2]] supports two modes (PIO and BIU), which can be changed on-the-fly with the [[Lo-tech XTCFMODE Utility]].  The default mode, set when the BIOS is initialised (i.e. when the machine is powered-on or rebooted), is set within the BIOS via the XTIDE Universal BIOS &amp;lt;tt&amp;gt;xtidecfg.com&amp;lt;/tt&amp;gt; utility.&lt;br /&gt;
&lt;br /&gt;
Since the transfer mode reverts at every reboot to the mode set in the BIOS, to permanently set the transfer mode it should be configured accordingly within the BIOS.  Alternatively, [[XTCFMODE]] can be included in &amp;lt;tt&amp;gt;AUTOEXEC.BAT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For PC/AT class hardware, the use of BIU mode and enabling slot-8/ZWS function (requires optional SMT components and JP3 closed), read performance of up to 1MB/s can be achieved.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech ISA CompactFlash Adapter FAQ]]&lt;br /&gt;
*[[lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_GPIO_Interface_Board_rev.2&amp;diff=1571</id>
		<title>Lo-tech GPIO Interface Board rev.2</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_GPIO_Interface_Board_rev.2&amp;diff=1571"/>
		<updated>2026-01-24T20:06:05Z</updated>

		<summary type="html">&lt;p&gt;James: /* Schematic &amp;amp; Application Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-gpio-interface-board-rev2-on-RP2.JPG|right|300px]]&lt;br /&gt;
The [[Lo-tech GPIO Interface Board rev.2]] enables the connection of the RaspberryPi Model A+/B+/2B/3/4 to the outside world, featuring:&lt;br /&gt;
&lt;br /&gt;
*4x opto-isolated inputs (3.3 ~ 30V)&lt;br /&gt;
*8x open-collector outputs (3.3 ~ 30V, 200mA) with inductive drive capability&lt;br /&gt;
*Maxim 1-wire bus connection (eg for temperature sensor)&lt;br /&gt;
*Fused 5V power header (for powering the Raspberry Pi)&lt;br /&gt;
&lt;br /&gt;
The board has been designed to fit directly on top of the RaspberryPi Model B+ following the HAT physical dimensions (this board does not however provide the I2C EEPROM function required for HAT auto-configuration), and is FCC Class A compliant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please [{{SERVER}}/get-in-touch/ get in touch.] for a quote for this product.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
*Small form-factor:&lt;br /&gt;
**Mounts directly to RaspberryPi device and fits within device footprint (65x56mm)&lt;br /&gt;
**2.8mm mounting holes aligned with RaspberryPi device mounting holes&lt;br /&gt;
**11mm spacing between boards (use 11mm standoff)&lt;br /&gt;
*Power Options:&lt;br /&gt;
**Power from GPIO header - no separate power connection required; entire device powered via micro-USB on Raspberry Pi&lt;br /&gt;
**5V DC provided to screw-terminals on GPIO board - no separate power connection required to the Raspberry Pi. Polyfuse protection is provided (900mA).&lt;br /&gt;
*Inputs:&lt;br /&gt;
**Four independent opto-isolated inputs with screw terminals&lt;br /&gt;
**Input levels: 3.3 ~ 30V&lt;br /&gt;
*Outputs:&lt;br /&gt;
**Eight Open-Collector outputs with screw terminals&lt;br /&gt;
**Optional pull-up resistor on outputs (can be set to 3.3V, 5V, or to external supply via COM terminal)&lt;br /&gt;
**Inductive Drive Capable&lt;br /&gt;
**Maximum operating frequency: 2MHz&lt;br /&gt;
*Maxim 1-wire Bus IO (screw terminals)&lt;br /&gt;
*Power LED&lt;br /&gt;
*Total assembled weight: 40g (80g, excluding screws, total when mounted on a Raspberry Pi 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;150px&amp;quot; heights=&amp;quot;125px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-gpio-interface-board-front-rev2.jpg&lt;br /&gt;
File:lo-tech-gpio-interface-board-front-assembled-rev2.JPG&lt;br /&gt;
File:lo-tech-gpio-interface-board-back-rev2.jpg&lt;br /&gt;
File:lo-tech-gpio-interface-board-back-assembled-rev2.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: this board does not provide the auto-configuration capabilities defined in the [http://www.raspberrypi.org/introducing-raspberry-pi-hats/ RaspberryPi HAT specification]; GPIOs must be manually configured during program initialisation.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;GPIO numbering follows the BCM numbering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The board provides four inputs (GPIOs 22, 23, 24, and 27), each interfaced through [http://www.farnell.com/datasheets/1874889.pdf H11L1M opto-isolators], which feature Schmitt Trigger outputs. The inputs require 2mA drive, which should be set via appropriate value of RN1. Inputs can be up to 30V. Inputs are initialised by setting GPIOs 22, 23, 24 and 27 to input mode with pull-up. RN2 provides in-line protection to the GPIO pins.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!RN1 Value !!Suggested Voltage Range !!Opto Switch-On Voltage (typical) !!Opto Switch-Off Voltage (typical)&lt;br /&gt;
|-&lt;br /&gt;
|10k || 24 - 30V || 11.3V || 8.9V&lt;br /&gt;
|-&lt;br /&gt;
|6K8 || 14 - 24V || 8.1V || 6.3V&lt;br /&gt;
|-&lt;br /&gt;
|3K3 || 7 - 14V || 4.5V || 3.5V&lt;br /&gt;
|-&lt;br /&gt;
|1K5 || 5 - 7V || 2.6V || 2.2V&lt;br /&gt;
|-&lt;br /&gt;
|1K || &amp;lt;5V || 2.1V || 1.8V&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RN1 is Bourns 4608X-102 type (isolated, 8-pin 4-element)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note that this board does not provide transient spike protection - inputs must not exceed 30V. When using pre-production samples, do not set the input channels to output mode with this board connected, as damage to the Raspberry Pi may occur.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;GPIO numbering follows the BCM numbering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The board outputs are driven by a [http://www.ti.com/lit/ds/symlink/uln2803a.pdf ULN2803A Darlington Transistor Array], which is able to drive inductive loads directly and suppress the kick-back voltage via the internal free wheeling diodes (requires connection of COM terminal to external supply). Initialisation the outputs is achieved by setting GPIOs 5, 6, 12, 13, 16, 19. 20, 21, 26 to output mode.&lt;br /&gt;
&lt;br /&gt;
The eight open-collector outputs are provided via screw terminals, along with GND and COM connections. Should a pull-up be required, RN3 and can added and configured via JP1 to be:&lt;br /&gt;
&lt;br /&gt;
*1-2: 3V3&lt;br /&gt;
*2-3: 5V&lt;br /&gt;
*Open: when COM is connected.&lt;br /&gt;
&lt;br /&gt;
JP1 &#039;&#039;&#039;must&#039;&#039;&#039; be open if external supply is connected to COM terminal - Raspberry Pi will be damaged if this is not observed. When JP1 is not open, pull-up current will be sourced from the Raspberry Pi 5V or 3V3 rails, a high value or RN3 should therefore b0e used (typically 10K).&lt;br /&gt;
&lt;br /&gt;
Each output can sink 200mA; however total sink current should not exceed 600mA. ULN2803A power dissipation rules should also be observed (see [http://www.ti.com/lit/ds/symlink/uln2803a.pdf ULN2803a Datasheet]).&lt;br /&gt;
&lt;br /&gt;
When driving inductive loads, external supply should be connected to COM terminal to enable internal free wheeling diodes to suppress kick-back voltage. Operating voltage should also be de-rated to ensure the maximum voltage does not exceed 30V.&lt;br /&gt;
&lt;br /&gt;
== Maxim 1-wire Bus ==&lt;br /&gt;
&lt;br /&gt;
The board 1-wire bus IO is directly connected to GPIO 4, along with a 4K7 pull-up. Connected temperature sensor(s) can be automatically detected by Linux with appropriate kernel modules installed. When devices are cabled, Cat5e cable is recommended.&lt;br /&gt;
&lt;br /&gt;
=== Raspbian Kernel Configuration ===&lt;br /&gt;
&lt;br /&gt;
For 3.18 kernel and newer, a kernel option must be added to &amp;lt;tt&amp;gt;/boot/config.txt&amp;lt;/tt&amp;gt; due to change introduced with the Device Tree system (see [http://www.raspberrypi.org/forums/viewtopic.php?t=99263&amp;amp;p=691623 this RaspberyPi Forum Post]). Add this line to the end of the file, and reboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 dtoverlay=w1-gpio&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once restarted, kernel modules &amp;lt;tt&amp;gt;w1-gpio&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;w1-therm&amp;lt;/tt&amp;gt; need to be installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
pi@raspberrypi ~ $ sudo modprobe w1-gpio&lt;br /&gt;
pi@raspberrypi ~ $ sudo modprobe w1-therm&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be made persistent by adding these module names to &amp;lt;tt&amp;gt;/etc/modules&amp;lt;/tt&amp;gt;. Sensor data is then available via &amp;lt;tt&amp;gt;/sys/bus/w1&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
pi@raspberrypi /sys/bus/w1 $ find .&lt;br /&gt;
.&lt;br /&gt;
./devices&lt;br /&gt;
./devices/28-000006991886&lt;br /&gt;
./devices/w1_bus_master1&lt;br /&gt;
./drivers&lt;br /&gt;
./drivers/w1_master_driver&lt;br /&gt;
./drivers/w1_master_driver/bind&lt;br /&gt;
./drivers/w1_master_driver/w1_bus_master1&lt;br /&gt;
./drivers/w1_master_driver/uevent&lt;br /&gt;
./drivers/w1_master_driver/unbind&lt;br /&gt;
./drivers/w1_slave_driver&lt;br /&gt;
./drivers/w1_slave_driver/bind&lt;br /&gt;
./drivers/w1_slave_driver/28-000006991886&lt;br /&gt;
./drivers/w1_slave_driver/uevent&lt;br /&gt;
./drivers/w1_slave_driver/unbind&lt;br /&gt;
./uevent&lt;br /&gt;
./drivers_probe&lt;br /&gt;
./drivers_autoprobe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf Dallas 18B20 temperature sensors], &amp;lt;tt&amp;gt;28-000006991886&amp;lt;/tt&amp;gt; represents the serial-number of the device (also shown in &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;), and the current reading is available in &amp;lt;tt&amp;gt;w1_slave&amp;lt;/tt&amp;gt; (28812 in this example is 28.812°C):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
pi@raspberrypi /sys/bus/w1/devices/28-000006991886 $ cat name&lt;br /&gt;
28-000006991886&lt;br /&gt;
pi@raspberrypi /sys/bus/w1/devices/28-000006991886 $ cat w1_slave &lt;br /&gt;
cd 01 4b 46 7f ff 03 10 4a : crc=4a YES&lt;br /&gt;
cd 01 4b 46 7f ff 03 10 4a t=28812&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| C1..C5 || 0.1uF (100nF) || Ceramic Capacitor || THT || 5 || 2112751 || 581-SR205E104MAR&lt;br /&gt;
|-&lt;br /&gt;
| C6..C7 || 10uF || Electrolytic Capacitor || E2-5 || 2 || 8767084 || 647-UVR1C100MDD&lt;br /&gt;
|-&lt;br /&gt;
| C8 || Application Dependent || Electrolytic Capacitor || E2-5 || 1 || 8767084 (10uF) || 647-UVR1C100MDD (10uF)&lt;br /&gt;
|-&lt;br /&gt;
| HD1, HD2 || 10-way screw terminal (3.81mm) || FCI 20020327-D101B01LF or &amp;lt;br&amp;gt;Kobiconn 158-P02EK381V10-E or &amp;lt;br&amp;gt;Multicomp MC000024 || THT || 2 || 2007993 || 649-220327-D101B01LF or &amp;lt;br&amp;gt;158-P02EK381V10-E&lt;br /&gt;
|-&lt;br /&gt;
| HD3 || 3-way screw terminal (3.81mm) || FCI 220327-D031B01LF or &amp;lt;br&amp;gt;Kobiconn 158-P02EK381V3-E or &amp;lt;br&amp;gt;Multicomp MC000019 || THT || 1 || 2007986 || 649-220327-D031B01LF or &amp;lt;br&amp;gt;158-P02EK381V3-E&lt;br /&gt;
|-&lt;br /&gt;
| F1 || LITTELFUSE  30R135UU.  POLYFUSE, PTC, 30V, RADIAL, 900MA || 30R090UU || THT || 1 || 1822234 || 576-30R135UU&lt;br /&gt;
|-&lt;br /&gt;
| IC1..IC4 || - || H11L1M Optocoupler, Schmitt Trigger || DIP-6 || 4 || 1021127 || 512-H11L1M&lt;br /&gt;
|-&lt;br /&gt;
| IC5 || - || ULN2803A Darlington Array || DIP-18 || 1 || 1094428 || 511-ULN2803A&lt;br /&gt;
|-&lt;br /&gt;
| JP1 || - || Pin Header, 1x3 || - || 1 || 1593412 || 855-M20-9990346&lt;br /&gt;
|-&lt;br /&gt;
| LED || - || 3mm LED || THT || 1 || 1581112 || 645-521-9432F (red)&amp;lt;br&amp;gt;859-LTL-2231AT (green)&lt;br /&gt;
|-&lt;br /&gt;
| P1 || - || SOCKET, PCB, 0.1&amp;quot;, 20+20WAY || THT || 1 || 7992033 || 855-M20-7832046&lt;br /&gt;
|-&lt;br /&gt;
| R1 || 270R || 125mW Carbon Film Resistor || THT || 1 || 2329504 || 299-270-RC or &amp;lt;br&amp;gt;660-CFS1/4CT52R271G&lt;br /&gt;
|-&lt;br /&gt;
| R2 || 4k7 || 125mW Carbon Film Resistor || THT || 1 || 2329534 || 279-CFR16J4K7&lt;br /&gt;
|-&lt;br /&gt;
| RN1 || See table* || SIL-8 Resistor Network (Bournes 4608X-102 type) || THT || 1 || See tables || See tables&lt;br /&gt;
|-&lt;br /&gt;
| RN2** || 1k || 4608X-102-102LF || THT || 1 || 9356517 || 652-4608X-2LF-1K&lt;br /&gt;
|-&lt;br /&gt;
| RN3 || 10k || SIL-9 Resistor Network (Bournes 4609X-101 type) || THT || 1 || See tables || See tables&lt;br /&gt;
|-&lt;br /&gt;
| DIL Socket, 8-pin || - || SOCKET, VERTICAL, 1ROW, 8WAY || THT || 1&amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt; || 3419101 || 571-215297-8 or&amp;lt;br&amp;gt;571-829265-8&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket (DIP18) || - || - || DIL18 || 1 || 2445623 || 571-1-2199298-5&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket (DIP6) || - || - || DIL6 || 4 || 1077343 || 571-1-2199298-1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt;SIL sockets enable RN1 and RN3 values to be interchanged as required after construction.&lt;br /&gt;
&amp;lt;tt&amp;gt;**&amp;lt;/tt&amp;gt;Pre-production (engineering sample) boards have RN2 unpopulated.&lt;br /&gt;
&lt;br /&gt;
For values of RN1, see the table in Inputs sections. RN1 component options:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Part !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| 1k || 4608X-102-102LF || 9356517 || 652-4608X-2LF-1K&lt;br /&gt;
|-&lt;br /&gt;
| 1k5 || 4608X-102-152LF || 9356568 || 652-4608X-2LF-1.5K&lt;br /&gt;
|-&lt;br /&gt;
| 3k3 || 4608X-102-332LF || 9356673 || 652-4608X-2LF-3.3K&lt;br /&gt;
|-&lt;br /&gt;
| 6k8 || 4608X-102-682LF || 2321777 || 652-4608X-2LF-6.8K&lt;br /&gt;
|-&lt;br /&gt;
| 10k || 4608X-102-103LF || 9356525 || 652-4608X-2LF-10K&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RN3 typically 10K where fitted; other values:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Part !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| 1k || 4609X-101-102LF || 9356800 || 652-4609X-1LF-1K&lt;br /&gt;
|-&lt;br /&gt;
| 1k5 || 4609X-101-152LF || 9356851 || 652-4609X-1LF-1.5K&lt;br /&gt;
|-&lt;br /&gt;
| 3k3 || 4609X-101-332LF || 9356983 || 652-4609X-1LF-3.3K&lt;br /&gt;
|-&lt;br /&gt;
| 6k8 || 4609X-101-682LF || 2321778 || 652-4609X-1LF-6.8K&lt;br /&gt;
|-&lt;br /&gt;
| 10k || 4609X-101-103LF || 9356819 || 652-4609X-1LF-10K&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Schematic &amp;amp; Application Notes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;300px&amp;quot; heights=&amp;quot;225px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-GPIO-Interface-r02-Schematic.png&lt;br /&gt;
File:lo-tech-GPIO-Interface-r02-Application-Notes.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2014,2015 Peacon Ltd (now Lo-tech Systems Limited).&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Any library suitable for use with the Raspberry Pi (models with 40-pin GPIO header) can be used, for example [http://wiringpi.com/ WiringPi]. The module is compatible with quad-core Pi2. The GPIO channels used are:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!BCM GPIO !! Purpose !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|4 || Maxim 1-wire Bus || Screw terminals&lt;br /&gt;
|-&lt;br /&gt;
|5 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|6 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|12 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|13 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|16 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|19 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|20 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|22 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|23 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|24 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|26 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|27 || Input || See note&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The specified H11L1M opto-isolator has an LED forward voltage of 1.2V and requires 2mA drive.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.farnell.com/datasheets/1874889.pdf H11L1M Datasheet]&lt;br /&gt;
*[http://www.ti.com/lit/ds/symlink/uln2803a.pdf ULN2803a Datasheet]&lt;br /&gt;
*[[RaspberryPi Boards]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=XT-CF-lite_rev.2&amp;diff=1570</id>
		<title>XT-CF-lite rev.2</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=XT-CF-lite_rev.2&amp;diff=1570"/>
		<updated>2026-01-24T20:05:46Z</updated>

		<summary type="html">&lt;p&gt;James: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:XT-CF-lite-rev2-1536px.jpg|right|300px|Lo-tech XT-CF-lite rev.2, Assembled]]&lt;br /&gt;
&lt;br /&gt;
The lo-tech [[XT-CF-lite rev.2]] is an 8-bit ISA CompactFlash adapter, providing bootable solid-state storage for any IBM compatible PC, including the original [[IBM Personal Computer 5150]]. The board supersedes the [[XT-CF-lite rev.1]].&lt;br /&gt;
&lt;br /&gt;
The CompactFlash card is accessible through a custom-made, 3D printed ISA expansion slot bracket, so it can be exchanged without opening the PC. The slot bracket includes CompactFlash specification guide rails for easy insertion and has a cutout to accommodate both Type I and Type II cards.&lt;br /&gt;
&lt;br /&gt;
The board is based on SOIC 74xx series logic and utilises the 3M N7E50-Q516xx-50 CompactFlash socket, and has been tested with both CompactFlash cards and the Seagate ST1 microdrive.&lt;br /&gt;
&lt;br /&gt;
The board is powered by the [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS], provided through an in-system re-programmable 32KB (addressible) flash-based ROM. Since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable.&lt;br /&gt;
&lt;br /&gt;
This PCB is available now in the [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
*Bootable 8-bit ISA Storage Adapter with header for single type I or type II CompactFlash or Microdrive media&lt;br /&gt;
*Provides fast, fixed-disk storage for 8-bit ISA slot equipped IBM compatible PCs&lt;br /&gt;
*Low power consumption and no external power connection required&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatible&lt;br /&gt;
*Header for external device activity LED (12mA)&lt;br /&gt;
*Low-cost flash memory chip for boot ROM, 32KB usable (24KB available once boot ROM is installed)&lt;br /&gt;
*Configurable ROM base address - C800h or D800h&lt;br /&gt;
*Configurable IO Port base address - 300h or 320h (change require BIOS flash)&lt;br /&gt;
*Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)&lt;br /&gt;
*Utilises [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS] (adapter type: &#039;XT-CF&#039;)&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-xt-cf-lite-rev2-schematic.png&lt;br /&gt;
File:lo-tech-xt-cf-lite-rev2-pcb.JPG&lt;br /&gt;
File:XT-CF-lite-rev2-1536px.jpg&lt;br /&gt;
File:Lo-tech-ISA-Slot-Bracket-Type-2-Guide-Detail.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. The design is Copyright (c) 2014 Peacon Ltd (now Lo-tech Systems Limited).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For general help with this kit, please see the [[XT-CF-lite FAQ]].&lt;br /&gt;
&lt;br /&gt;
=== Bill of Materials ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Package !! Qty !! Farnell !! Mouser !! Digikey&lt;br /&gt;
|-&lt;br /&gt;
|C1..6 || 0.1uF C-EUC0603 || C0603 || 6 || 1414610 || 963-UMK107BJ104KAHT ||&lt;br /&gt;
|-&lt;br /&gt;
|C7 || 1uF C-EUC0805 || C0805 || 1 ||  || 581-0805YD105K ||&lt;br /&gt;
|-&lt;br /&gt;
|C8 || 22uF CPOL-EUE2-5 || E2-5  || 1 ||  || 647-UVR1C220MDD1TD ||&lt;br /&gt;
|-&lt;br /&gt;
|CF1 || N7E50-Q516xx-50 || N7E50-Q516xx-50 || 1 || 1267444 || 517-N7E50-Q516B-50-W || 3M5456CT-ND&lt;br /&gt;
|-&lt;br /&gt;
|JP1 || PINHD-2X04_2.54-S || 2X04-S || 1 ||  || 571-5-146256-4 ||&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC2 || 74HCT688DW || SO20W || 2 || 1085321 || 771-74HCT688D-T ||&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || SN74LS33D || SOIC-14 || 1 || 1752958 || 595-SN74LS33D ||&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || 74ACT245DW || SO20W || 1 ||  || 595-SN74ACT245DWR ||&lt;br /&gt;
|-&lt;br /&gt;
|IC5 || 74HCT139D || SOIC-16 || 1 ||  || 595-SN74HCT139DR ||&lt;br /&gt;
|-&lt;br /&gt;
|IC6 || SST39SF0x0A || DIP32 || 1 || 1896595 || 804-39SF010A7CPHE ||&lt;br /&gt;
|-&lt;br /&gt;
|R1 || 270R R-EU_R0603 || R0603 || 1 ||  || 71-CRCW0603-270-E3 ||&lt;br /&gt;
|-&lt;br /&gt;
|RN1, RN2 || RESISTOR NETWORK, 10K, ± 2% || 1206 || 2 || 1770137 || 652-CAY16-103J4LF ||&lt;br /&gt;
|-&lt;br /&gt;
|Socket || || DIL32 || 1 || 1654375 || 517-4832-6000-CP ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of a range of DIP-32 flash chips or 1, 2 or 4Mb:&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/SST/SST39SF0x0.pdf SST39SF0x0A] (SST39SF010A, SST39SF020A, SST39SF040A)&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/AMIC/AMIC-A29010.pdf AMIC A29010]&lt;br /&gt;
*Regardless of the chip used, the first 32KB only will be mapped into the PC address space&lt;br /&gt;
*Base address configuration per [[#Board Configuration|JP1]]&lt;br /&gt;
&lt;br /&gt;
=== Logic ===&lt;br /&gt;
&lt;br /&gt;
The board logic provides three distinct functions:&lt;br /&gt;
&lt;br /&gt;
#ROM Function:&lt;br /&gt;
#*IC2 matches the address bus to the selected base address&lt;br /&gt;
#*JP1 position 3 being closed, the select signal is fed to the flash-ROM IC6&lt;br /&gt;
#CompactFlash interface via IC1, IC4 and IC5&lt;br /&gt;
#*IC1 matches the address bus to the selected base address&lt;br /&gt;
#*IC4 provides the data bus buffering, to ensure strong signal is driven onto the ISA bus&lt;br /&gt;
#*IC5 provides CS0 and CS1 generation based on A4 (alternate status register is at Base+10h) and Reset signal&lt;br /&gt;
#Slot-8 Card Select Signal and activity LED drive are generated by IC3&lt;br /&gt;
#*R1, RN2 and IC3 can be left unpopulated if slot-8 function and activity LED are not required&lt;br /&gt;
&lt;br /&gt;
=== BIOS Flashing (Programming) ===&lt;br /&gt;
&lt;br /&gt;
*The board is powered by the [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS] and features a 32KB in-system re-programmable flash chip&lt;br /&gt;
*XTIDE Universal BIOS build R560 or newer is recommended (v2 beta 3 is much older)&lt;br /&gt;
**[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/xtide-r566-xt-cf-master-slave.zip Pre-configured BIOS based on R566 - BIOS at C800h or D800h]&lt;br /&gt;
**[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/offr566.zip Pre-configured BIOS based on R566 - FFh padded with BIOS at CC00h or DC00h] - see [[Lo-tech_ISA_CompactFlash_Adapter_FAQ#What_BIOS_does_the_Card_Use.3F|FAQ]] for more information&lt;br /&gt;
*The flash chip is programmed with the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
*Select the appropriate ROM image:&lt;br /&gt;
**IDE_XT.BIN for Intel 8088 and 8086 CPUs&lt;br /&gt;
**IDE_XTP.BIN for NEC V20, V30, and Intel 80286 CPUs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: The late initialisation module in the XTIDE Universal BIOS should only be included in the BIOS build for systems that require this.  The module can cause the BIOS to hang after initialisation on other systems.  The BIOS build above excludes this module.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To program the board, make a DOS boot disk (utilities have been tested on MS-DOS 2.11, 3.3 and 6.22) and add the BIOS binary file and the flash utility.  Install the Lo-tech ISA CompactFlash Adapter in the machine and boot from the floppy, then flash the ROM thus (assuming JP1 position 1 is closed, so setting the ROM base address to C800h):&lt;br /&gt;
&lt;br /&gt;
 A:\&amp;gt;flash ide_xt.bin c800 &lt;br /&gt;
&lt;br /&gt;
Note that should a board containing the IDE_XTP.BIN image be moved to an Intel 8088/8086 PC, the BIOS image will cause the machine to hang during the POST.  To resolve this, either re-flash the board with the IDE_XT.BIN image before moving, or disable the ROM during the POST by opening JP1 position 3.  JP1 position 3 can be closed once the machine has booted, so enabling the ROM for programming (provided there is no other ROM at the selected address).&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
Uses [[Lo-tech_ISA_Slot_Brackets#Type_2|Lo-tech ISA Slot Bracket Type 2]].&lt;br /&gt;
&lt;br /&gt;
== Board Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[File:XT-CF-lite-rev2-JP1.png|right|thumb]]&lt;br /&gt;
JP1 provides the ROM and IO port base address selection, ROM enable, and LED output.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Position (per silkscreen)&lt;br /&gt;
!Function&lt;br /&gt;
!Open&lt;br /&gt;
!Closed&lt;br /&gt;
|-&lt;br /&gt;
|1 || ROM Base Address || D800h || C800h&lt;br /&gt;
|-&lt;br /&gt;
|2 || IO Port Base Address || 320h || 300h&lt;br /&gt;
|-&lt;br /&gt;
|3 || ROM Function || Disabled || Enabled&lt;br /&gt;
|-&lt;br /&gt;
|4 || Activity LED || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Default settings are ROM enabled, IO port 300h and ROM base address C800h.&lt;br /&gt;
&lt;br /&gt;
Note that the IO base address is set within the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS] ROM image via the [http://code.google.com/p/xtideuniversalbios/wiki/Manual_v2_0_0#Using_XTIDECFG.COM_(XTIDE_Universal_BIOS_configuration_and_flash Universal BIOS Configuration and Flashing utility].  The IO address set within that utility must match that configured on the card via the DIP switches.  Should the IO port address be changed for any reason, the BIOS must be updated and re-flashed (using the [[lo-tech XT-CF flash utility]]).&lt;br /&gt;
&lt;br /&gt;
Device activity LED output is provided at JP1 position 4. Do not short the output. Observe polarity (&#039;+&#039; side is noted on board silkscreen). The LED output is provided through a 270R resistor (R1), providing approx. 12mA.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[XT-CF-lite Technical Reference]]&lt;br /&gt;
*[[lo-tech XT-CF Boards]]&lt;br /&gt;
*[[XT-CF-lite FAQ]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_GPIO_Interface_Board&amp;diff=1569</id>
		<title>Lo-tech GPIO Interface Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_GPIO_Interface_Board&amp;diff=1569"/>
		<updated>2026-01-24T20:05:31Z</updated>

		<summary type="html">&lt;p&gt;James: /* Schematic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-gpio-interface-board-mounted-on-RaspberryPi-Bplus.JPG|right|300px]]&lt;br /&gt;
The [[Lo-tech GPIO Interface Board]] enables the connection of the RaspberryPi Model B+ to the outside world, with 4 inputs and 8 outputs. The board has been designed to fit directly on top of the RaspberryPi Model B+ and features low power consumption, being powered directly from the RaspberryPi.&lt;br /&gt;
&lt;br /&gt;
== Specifications == &lt;br /&gt;
&lt;br /&gt;
*Small form-factor:&lt;br /&gt;
**Mounts directly to RaspberryPi device and fits within device footprint (65x56mm)&lt;br /&gt;
**2.8mm mounting holes aligned with RaspberryPi device mounting holes&lt;br /&gt;
**11mm spacing between boards (use 11mm standoff)&lt;br /&gt;
*Powered entirely from GPIO header - no separate power connection required&lt;br /&gt;
*Inputs:&lt;br /&gt;
**Four independent opto-isolated inputs with screw terminals&lt;br /&gt;
**Recommended input levels: 3.3V to 15V&lt;br /&gt;
*Outputs:&lt;br /&gt;
**Four 5V TTL outputs with screw terminals&lt;br /&gt;
**Four on-board LEDs (2-pin headers can be mounted in place of LEDs, if required)&lt;br /&gt;
*Single control GPIO control to enable/disable all outputs&lt;br /&gt;
*Total assembled weight: 34g (about 85g including RaspberryPi B+ and screws)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;150px&amp;quot; heights=&amp;quot;125px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-gpio-interface-board-front.JPG&lt;br /&gt;
File:lo-tech-gpio-interface-board-front-assembled.JPG&lt;br /&gt;
File:lo-tech-gpio-interface-board-back.JPG&lt;br /&gt;
File:lo-tech-gpio-interface-board-back-assembled.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: this board does not provide the auto-configuration capabilities defined in the [http://www.raspberrypi.org/introducing-raspberry-pi-hats/ RaspberryPi HAT specification]; GPIOs must be manually configured during program initialisation. Pull-ups are provided where necessary to prevent spurious output values.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: GPIO numbering follows the BCM numbering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The board provides four inputs (GPIOs 22, 23, 24, and 27), each interfaced through an H11L1M opto-isolator. The inputs require 2mA drive, which should be set via appropriate value of RN1. It is therefore possible to use inputs from almost any low-voltage source (note: never connect mains voltage to this board).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Input Logic Level !!RN1 Value&lt;br /&gt;
|-&lt;br /&gt;
|15V || 6K8&lt;br /&gt;
|-&lt;br /&gt;
|12V || 4K7&lt;br /&gt;
|-&lt;br /&gt;
|9V || 3K3&lt;br /&gt;
|-&lt;br /&gt;
|6V || 2K2&lt;br /&gt;
|-&lt;br /&gt;
|5V || 1K5&lt;br /&gt;
|-&lt;br /&gt;
|3.3V || 1K&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RN1 is Bourns 4608X-102 type (isolated, 8-pin 4-element)&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: GPIO numbering follows the BCM numbering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The board outputs are driven by a 74ACT245N Octal Bus Transceiver. The transceiver gate is controlled by GPIO 21; initialisation process for outputs is:&lt;br /&gt;
&lt;br /&gt;
#Set GPIOs 5, 6, 12, 13, 16, 19. 20, 21, 26 to output mode&lt;br /&gt;
#Output value 0 (or 1, as required) to the output channels 5, 6, 12, 13, 16, 19, 20, 26&lt;br /&gt;
#Output value 0 to GPIO 21 to enable the bus transceiver&lt;br /&gt;
&lt;br /&gt;
The eight 5V TTL outputs divided into:&lt;br /&gt;
&lt;br /&gt;
*four outputs via screw terminals, for connection to external devices - GPIOs 5, 6, 12, 13&lt;br /&gt;
*four outputs to on-board LEDs - GPIOs 16, 19, 20, 26&lt;br /&gt;
&lt;br /&gt;
The total draw across all outputs should not exceed 180mA, and note that power for the outputs is sourced from the RaspberryPi 5V rail.&lt;br /&gt;
&lt;br /&gt;
*Choose RN3 value to match required output impedance (i.e. 100-Ohm)&lt;br /&gt;
*Choose RN4 value to provide appropriate current through attached LEDs&lt;br /&gt;
*Ensure total current draw will not exceed 180mA&lt;br /&gt;
*RN3 and RN4 are Bourns 4608X-102 type (isolated, 8-pin 4-element)&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| C1..C5 || 0.1uF (100nF) || Ceramic Capacitor || THT || 4 || 2112751 || 594-K104K15X7RF5UH5&lt;br /&gt;
|-&lt;br /&gt;
| C6, C7 || 10uF || Electrolytic Capacitor || E2-5 || 2 || 8767084 || 647-UVR1C100MDD&lt;br /&gt;
|-&lt;br /&gt;
| HD1, HD2, HD5 (Farnell parts) || 1x2 Screw Terminal || MULTICOMP MC000045 || THT || 3 || 2008016 || -&lt;br /&gt;
|-&lt;br /&gt;
| HD3, HD4 (Farnell parts) || 1x2 Screw Terminal || MULTICOMP MC000044 || THT || 2 || 2008015 || -&lt;br /&gt;
|-&lt;br /&gt;
| HD1, HD2, HD3 (Mouser parts) || 8-way screw terminal (3.81mm) || FCI 20020327-D081B01LF || THT || 1 || - || 649-220327-D081B01LF&lt;br /&gt;
|-&lt;br /&gt;
| HD4, HD5 (Mouser parts) || 5-way screw terminal (3.81mm) || 20020327-D051B01LF || THT || 1 || - || 649-220327-D051B01LF&lt;br /&gt;
|-&lt;br /&gt;
| IC1..IC4 || - || H11L1M Optocoupler, Schmitt Trigger || DIP-6 || 4 || 1021127 || 512-H11L1M&lt;br /&gt;
|-&lt;br /&gt;
| IC5 || - || 74ACT245N Octal Bus Transceiver || DIP-20 || 1 || 1739622 || 595-SN74ACT245N&lt;br /&gt;
|-&lt;br /&gt;
| LED1..LED5 || - || 3mm LED || THT || 5 || 1581112 || 645-521-9432F (red)&amp;lt;br&amp;gt;859-LTL-2231AT (green)&lt;br /&gt;
|-&lt;br /&gt;
| P1 || - || SOCKET, PCB, 0.1&amp;quot;, 20+20WAY || THT || 1 || 7992033 || 855-M20-7832046&lt;br /&gt;
|-&lt;br /&gt;
| R1 || 270R || 125mW Carbon Film Resistor || THT || 1 || 2329504 || 299-270-RC &lt;br /&gt;
|-&lt;br /&gt;
| R2 || 10k || 125mW Carbon Film Resistor || THT || 1 || 9342419 || 299-10K-RC&lt;br /&gt;
|-&lt;br /&gt;
| RN1, RN3, RN4 || See table* || SIL-8 Resistor Network (Bournes 4608X-102 type) || THT || 3 || See table* || See table*&lt;br /&gt;
|-&lt;br /&gt;
| RN2 || 10k || Bournes 4605X-101-103LF || THT || 1 || 9356061 || 652-4605X-1LF-10K&lt;br /&gt;
|-&lt;br /&gt;
| DIL Socket, 8-pin || - || SOCKET, VERTICAL, 1ROW, 8WAY || THT || 1&amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt; || 3419101 || 571-215297-8&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket (DIP20) || - || - || DIL20 || 1 || 1101349 || 571-1-2199298-6&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket (DIP6) || - || - || DIL6 || 4 || 1077343 || 571-1-2199298-1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;For values of RN1, RN3 and RN4, see tables in Inputs and Outputs sections. Three components are needed for each board, with values chosen to match the desired input voltage levels and output drive current. These components can be changed after construction if SIL-8 sockets are mounted to the board (one socket is specified in the above component list for RN1, since this value is most likely to be changed to interface to different input voltage levels). Component options are:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Part !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| 100R || 4608X-102-101LF || 9356509 || 652-4608X-2LF-100&lt;br /&gt;
|-&lt;br /&gt;
| 270R || 4608X-102-271LF || 9356622 || 652-4608X-2LF-270&lt;br /&gt;
|-&lt;br /&gt;
| 1k || 4608X-102-102LF || 9356517 || 652-4608X-2LF-1K&lt;br /&gt;
|-&lt;br /&gt;
| 1k5 || 4608X-102-152LF || 9356568 || 652-4608X-2LF-1.5K&lt;br /&gt;
|-&lt;br /&gt;
| 2k2 || 4608X-102-222LF || 9356592 || 652-4608X-2LF-2.2K&lt;br /&gt;
|-&lt;br /&gt;
| 3k3 || 4608X-102-332LF || 9356673 || 652-4608X-2LF-3.3K&lt;br /&gt;
|-&lt;br /&gt;
| 4k7 || 4608X-102-472LF || 9356703 || 652-4608X-2LF-4.7K&lt;br /&gt;
|-&lt;br /&gt;
| 6k8 || 4608X-102-682LF || 2321777 || 652-4608X-2LF-6.8K&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;300px&amp;quot; heights=&amp;quot;225px&amp;quot; perrow=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-GPIO-Interface-r01-Schematic.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2014 Peacon Ltd (now Lo-tech Systems Limited).&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Any library suitable for use with the Raspberry Pi Model B+ can be used, for example [http://wiringpi.com/ WiringPi]. The GPIO channels used are:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!BCM GPIO !! Purpose !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|5 || Output (5V TTL) || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|6 || Output (5V TTL) || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|12 || Output (5V TTL) || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|13 || Output (5V TTL) || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|16 || Output || Onboard LED&lt;br /&gt;
|-&lt;br /&gt;
|19 || Output || Onboard LED&lt;br /&gt;
|-&lt;br /&gt;
|20 || Output || Onboard LED&lt;br /&gt;
|-&lt;br /&gt;
|21 || Output Control || Output 0 to enable all other outputs; Output 1 to set high-Z state&lt;br /&gt;
|-&lt;br /&gt;
|22 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|23 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|24 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|26 || Output || Onboard LED&lt;br /&gt;
|-&lt;br /&gt;
|27 || Input || See note&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The specified H11L1M opto-isolator has an LED forward voltage of 1.2V and requires 2mA drive.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[RaspberryPi Boards]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_8-bit_IDE_Adapter_rev.3&amp;diff=1568</id>
		<title>Lo-tech 8-bit IDE Adapter rev.3</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_8-bit_IDE_Adapter_rev.3&amp;diff=1568"/>
		<updated>2026-01-24T20:05:17Z</updated>

		<summary type="html">&lt;p&gt;James: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:lo-tech-8-bit-ide-adapter-rev3-front.jpg|right|300px|Lo-tech 8-bit IDE Adapter rev.3]]&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech 8-bit IDE Adapter rev.3]] is a bootable storage adapter for IBM PC, PC/XT, PC/AT and compatible hardware - essentially any PC with an ISA slot. The card enables the use of standard IDE (ATA) and SATA hard drives (via a SATA to IDE bridge).&lt;br /&gt;
&lt;br /&gt;
The BIOS ROM on the card enables the host PC to boot from storage presented by the adapter, which appears in DOS as an ordinary fixed disk (i.e. drive C, D, etc). No DOS drivers are needed.&lt;br /&gt;
&lt;br /&gt;
The PCB itself is a through-hole, 8-bit ISA adapter providing a 40-pin IDE header suitable for connection to one or two disk devices. The design goals were:&lt;br /&gt;
&lt;br /&gt;
*Bootable storage adapter for 8-bit PCs using standard hard disks&lt;br /&gt;
*Ease of home assembly, by use of only through-hole components for basic operation&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility (with optional SMD components mounted on rear of PCB)&lt;br /&gt;
*5V supply to IDE header key-pin, for cable-less operation of Disk-On-Module devices and SATA to IDE Adapters that support this power option&lt;br /&gt;
*Equal read and write speed&lt;br /&gt;
*Utilise Keystone 9202 ISA slot bracket&lt;br /&gt;
&lt;br /&gt;
The board uses the same ATA register mapping as other Lo-tech XT-CF boards and uses the [http://www.xtideuniversalbios.org/ XT-IDE Universal BIOS] adapter type &#039;XT-CF (PIO with BIU Offload)&#039; (XT-CF BIU). Note that currently, a specific BIOS build is used, pending integration of changes back into the XTIDE Universal BIOS source. The BIOS is provided through an in-system re-programmable 32KB flash-based ROM operating at either C800h or D800h (user selectable). Since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable - the board can therefore function as a universal ROM board.&lt;br /&gt;
&lt;br /&gt;
This PCB is available now in the [{{SERVER}}/product/8-bit-ide-adapter-kit/ Lo-tech PCB Store].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If only CompactFlash or SD Card storage is required, the [[Lo-tech ISA CompactFlash Adapter revision 2|Lo-tech ISA CompactFlash Adapter]] offers equivalent functionality with a lower component count. This board supercedes the [[Lo-tech 8-bit IDE Adapter rev.2]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Jumper Settings &amp;amp; System Resources ==&lt;br /&gt;
&lt;br /&gt;
*ROM BIOS - 32KB at:&lt;br /&gt;
**JP1 Closed, JP2 Closed: C800h&lt;br /&gt;
**JP1 Closed, JP2 Open: D800h&lt;br /&gt;
*ROM BIOS can be disabled (for example, if a bad flash causes system hang at startup) by opening JP1.&lt;br /&gt;
*IO Ports:&lt;br /&gt;
**JP3 Closed: 300 to 31Fh&lt;br /&gt;
**JP3 Open: 320 to 33Fh&lt;br /&gt;
&lt;br /&gt;
== ROM BIOS &amp;amp; BIOS Flashing ==&lt;br /&gt;
&lt;br /&gt;
*The board is powered by the [http://www.xtideuniversalbios.org/ XT-IDE Universal BIOS] and features a 32KB in-system re-programmable flash chip.&lt;br /&gt;
*[{{SERVER}}/downloads/XT-IDE/r567-8-bit-ide-adapter.zip Pre-configured BIOS files] based on XTIDE Universal BIOS R567. Note that this BIOS has been modified for the 8-bit IDE Adapter by disabling the 8-bit media set function (&amp;lt;tt&amp;gt;AH9h_Enable8bitModeForDevice8bitAta&amp;lt;/tt&amp;gt;) and is configured for operation with the board configured at 300h.&lt;br /&gt;
*The flash chip is programmed with the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
*Select the appropriate ROM image:&lt;br /&gt;
**IDE_XT.BIN for Intel 8088 and 8086 CPUs&lt;br /&gt;
**IDE_XTP.BIN for NEC V20, V30, and Intel 80286 CPUs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: The late initialisation module in the XTIDE Universal BIOS should only be included in the BIOS build for systems that require this.  The module can cause the BIOS to hang after initialisation on other systems.  The BIOS build above excludes this module.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To program the board, make a DOS boot disk (utilities have been tested on MS-DOS 2.11, 3.3 and 6.22) and add the BIOS binary files and the flash utility from the download.  Install the Lo-tech 8-bit IDE Adapter in the machine and boot from the floppy, then flash the ROM thus:&lt;br /&gt;
&lt;br /&gt;
 A:\&amp;gt;flash ide_xt.bin c800 &lt;br /&gt;
&lt;br /&gt;
Note that should a board containing the IDE_XTP.BIN image be moved to an Intel 8088/8086 PC, the BIOS image will cause the machine to hang during the POST.  To resolve this, either re-flash the board with the IDE_XT.BIN image before moving, or disable the ROM during the POST via JP1.  JP1 can be closed once the machine has booted, so enabling the ROM for programming (provided there is no other ROM at the address selected with JP2).&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| C1 – C14 || 0.1uF Ceramic Capacitor || C025-030X050 || 14 || 2112751 || 581-SR205E104MAR&lt;br /&gt;
|-&lt;br /&gt;
| C15, C16 || 22uF Electrolytic Capacitor || E2-5 || 2 || 9451064 || 647-UVR1C220MDD&lt;br /&gt;
|-&lt;br /&gt;
| HD1 || T821140A1S100CEU || 2x20 Pin Header, 2.54mm spacing || 1 || 2215314 || 517-30340-6002&lt;br /&gt;
|-&lt;br /&gt;
| IC1, IC3 || 74HCT688N || DIL20 || 2 || 382504 || 771-74HCT688N&lt;br /&gt;
|-&lt;br /&gt;
| IC2 || SST39SF010ADIP32 || DIL32 || 1 || 1896595 || 804-39SF010A7CPHE&lt;br /&gt;
|-&lt;br /&gt;
| IC4 || 74HCT139N || DIL16 || 1 || 382036 || 595-SN74HCT139N&lt;br /&gt;
|-&lt;br /&gt;
| IC5, IC8, IC9 || 74HCT245N || DIL20 || 3 || 9591931 || 595-SN74HCT245N&lt;br /&gt;
|-&lt;br /&gt;
| IC6, IC7 || 74HCT573N || DIL20 || 2 || 9592091 || 595-SN74HCT573N&lt;br /&gt;
|-&lt;br /&gt;
| IC10, IC12 || 74HCT32N || DIL14 || 2 || 9591982 || 595-SN74HCT32N&lt;br /&gt;
|-&lt;br /&gt;
| IC11 || 74HCT02N || DIL14 || 1 || 1740019 || 595-SN74HCT02N&lt;br /&gt;
|-&lt;br /&gt;
| IC13 || 74HCT04N || DIL14 || 1 || 9591770 || 595-SN74HCT04N&lt;br /&gt;
|-&lt;br /&gt;
| IC14 || 74LS04N || DIL14 || 1 || 1106072 || 595-SN74LS04N&lt;br /&gt;
|-&lt;br /&gt;
| JP1, JP2, JP3, LED || PINHD-1X2 || 1X02 || 4 || 1593411 || 855-M20-9990246&lt;br /&gt;
|-&lt;br /&gt;
| R1, R2, R4, R9 || RESISTOR, 10K, 125MW || 0204/7 || 4 || 9342419 || 270-10K-RC&lt;br /&gt;
|-&lt;br /&gt;
| R3 || RESISTOR, 1K, 125MW || 0204/7 || 1 || - || 270-1K-RC&lt;br /&gt;
|-&lt;br /&gt;
| R5 || RESISTOR, 5K6, 125MW || 0204/7 || 1 || - || 270-5.6K-RC&lt;br /&gt;
|-&lt;br /&gt;
| R6 || RESISTOR, 0.125W 1% 270R || 0204/7 || 1 || 2329504 || 270-270-RC&lt;br /&gt;
|-&lt;br /&gt;
| R7, R8 || RESISTOR, 10K, 125MW || 0805 || 2 || 1612522 || 71-CRCW0805J-10K-E3&lt;br /&gt;
|-&lt;br /&gt;
| U1 || 74LS33D || SOIC-14 || 1 || 1752958 || 595-SN74LS33D&lt;br /&gt;
|-&lt;br /&gt;
| C17 || CAPACITOR, 0.1UF, 50V || 0805 || 1 || 1612208 || VJ0805V104MXBPW1BC&lt;br /&gt;
|-&lt;br /&gt;
| DIP-14 Socket || - || - || 5 || 1101346 || 571-1-390261-3&lt;br /&gt;
|-&lt;br /&gt;
| DIP-16 Socket || - || - || 1 || 1101347 || 571-1-390261-4&lt;br /&gt;
|-&lt;br /&gt;
| DIP-20 Socket || - || - || 7 || 1101349 || 571-1-390261-6&lt;br /&gt;
|-&lt;br /&gt;
| DIP-32 Socket || - || - || 1 || 1654375 || 571-1-2199300-2&lt;br /&gt;
|-&lt;br /&gt;
| 2.54mm 2-pin Jumper || - || - || 3 || 1654800 || -&lt;br /&gt;
|-&lt;br /&gt;
| Keystone 9202 ISA Slot Bracket || - || - || 1 || - || 534-9202&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-8-bit-ide-adapter-rev3-schematic.png&lt;br /&gt;
File:lo-tech-8-bit-ide-adapter-rev3-front.jpg&lt;br /&gt;
File:Lo-tech-8-bit-ide-adapter-rev3-back.JPG&lt;br /&gt;
File:lo-tech-8-bit-ide-adapter-rev3-assembled.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. The design, including the 8- to 16-bit MUX, is Copyright (c) 2015,2016 Peacon Ltd (now Lo-tech Systems Limited).&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
Uses the Keystone 9202 ISA Slot bracket.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board&amp;diff=1567</id>
		<title>Lo-tech 2MB EMS Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board&amp;diff=1567"/>
		<updated>2026-01-24T20:05:00Z</updated>

		<summary type="html">&lt;p&gt;James: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-2MB-EMS-Board-assembled-r02.jpg|right|300px|Lo-tech 2MB EMS Board (r02), Assembled]]&lt;br /&gt;
The [[Lo-tech 2MB EMS Board]] is an 8-bit ISA expansion card providing up to 2MB of EMS for [[IBM Personal Computer 5150|IBM compatible PCs]]. The small form factor makes the board suitable for the [[IBM Portable Computer 5155]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This board can now provide XMS for XT class machines&#039;&#039;&#039; using [https://mateusz.fr/exms86/ EXMS86, a TSR that provides XMS 2.0 memory services by leveraging an EMS 3.2 source written by Mateusz Viste]. With the authors kind permission, v0.9.7 is also available for download here as [https://lo-tech.co.uk/downloads/exms86/exms86-0.9.7.zip Binaries] and [https://www.lo-tech.co.uk/downloads/exms86/exms86-0.9.7-source.zip Source]. &lt;br /&gt;
&lt;br /&gt;
To purchase this board, please visit [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
Revision History:&lt;br /&gt;
&lt;br /&gt;
*R01 - Prototype. See [[Lo-tech 2MB EMS Board (prototype) Resources]].&lt;br /&gt;
*R02 - First production release.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech 2MB EMS Board]] utilises up to four [{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM chips] to provide up to 16Mb (=2MB) total RAM capacity, buffered via a 74ACT245 to ensure compatibility with TTL logic levels, on an 8-bit ISA expansion card. For applications that support EMS, this provides a way to install more than the 1MB total address capacity of the 8086 and 8088 processors.&lt;br /&gt;
&lt;br /&gt;
Following the LIM EMS specification, physical RAM is divided into 16KB pages and addressed via a single 64KB window (the &#039;page frame&#039;) in the [http://en.wikipedia.org/wiki/Upper_memory_area upper memory]. The pages presented within the window are determined by the value set in four page registers, which are programmed through IO ports. A jumper block enables the page frame IO port base addresses to configured to match the system requirements.&lt;br /&gt;
&lt;br /&gt;
For operation, the EMS board requires a LIM memory manager driver, [[LTEMM.EXE]]. This driver provides LIM 4 compatibility.&lt;br /&gt;
&lt;br /&gt;
== XMS Capability ==&lt;br /&gt;
The following is included with the kind permission of Mateusz Viste.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;It is a common misconception that XMS is only possible on 386+ machines. XMS (v2.0) is fundamentally a memory-copying API. Applications using XMS do not care where the memory comes from. While XMS is commonly associated with RAM located above the 1 MB boundary (often called &amp;quot;extended memory&amp;quot;) on 386+ PCs, that&#039;s a historical convention, not a technical requirement. Hence it is perfectly possible for a driver to expose memory via the XMS API even if said memory is not part of the system&#039;s RAM - like memory from an EMS board.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Source: [https://mateusz.fr/exms86/ EXMS86 (EMS-backed XMS)]&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:2MB-EMS-Board-r02-schematic.png&lt;br /&gt;
File:2MB-EMS-Board-r02-front.png&lt;br /&gt;
File:Lo-tech-2MB-EMS-Board-assembled-r02.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM datasheet]&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2013,2014 Peacon Ltd (now Lo-tech Systems Limited).&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
&lt;br /&gt;
This PCB makes use of SMT components:&lt;br /&gt;
&lt;br /&gt;
*SOIC chips have a pitch of 1.27mm&lt;br /&gt;
*0603 package capacitors and resistors&lt;br /&gt;
&lt;br /&gt;
Assembly requires flux and a temperature controlled soldering station.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|C1..C15 || 0.1uF || X7R Ceramic Capacitor || 0603 || 15 || 1414610 || 80-C0603C104K4R&lt;br /&gt;
|-&lt;br /&gt;
|C16 || 10uF || 16V Electrolytic || E2-5 || 1 || 9451056 || 140-REA100M1CBK0511P&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC5 || - || 74HCT688DW || SOIC-20 || 2 || 1085321 || 771-HCT688D652 or 595-CD74HCT688M&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || - || 74HCT139D || SOIC-16 || 1 || 1085308 || 771-74HCT139D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || - || 74HCT04D || SOIC-14 || 1 || 1085299 || 595-SN74HCT04D&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || - || 74HCT32D || SOIC-14 || 1 || 1201305 || 771-74HCT32D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC6..IC9 || - || 74HCT573D || SOIC-20 || 4 || 1201309 || 771-74HCT573D&lt;br /&gt;
|-&lt;br /&gt;
|IC10 || - || 74HCT245DW || SOIC-20 || 1 || 1085315 || 771-74HCT245D&lt;br /&gt;
|-&lt;br /&gt;
|IC11 || - || 74HCT138D || SOIC-16 || 1 || 1201307 || 771-74HCT138D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC12..IC15 || - || AS6C4008-55SIN 4Mb SRAM || SOIC-32 || 4 || 1562901 || 913-AS6C4008-55SIN&lt;br /&gt;
|-&lt;br /&gt;
|JP1 || - || PINHD-2X4 || - || 1 || 1593441 || 649-77313-101-08LF&lt;br /&gt;
|-&lt;br /&gt;
|RN1..RN3 || 10k || RESISTOR, ARRAY-4, 10K, 1206 || 1206 || 3 || 1770137 || 652-CAY16-103J4LF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Only one SRAM chip is required to build a functioning board (populate SRAM chips in order from IC12).&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
Uses [[Lo-tech_ISA_Slot_Brackets#Type_3|Lo-tech ISA Slot Bracket Type 3]].&lt;br /&gt;
&lt;br /&gt;
== JP1: Board Configuration ==&lt;br /&gt;
&lt;br /&gt;
The board is configured via four jumpers on the pin-header JP1 (O=open, C=closed, position 1 is furthest from IC11 (74LS138D)):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Page Frame Base Address !!IO Port Base Address&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (1,2) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || C000h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || D000h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || E000h&lt;br /&gt;
|-&lt;br /&gt;
| O,O || (invalid)&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (3,4) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || 260-263h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || 264-267h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || 268-26Bh&lt;br /&gt;
|-&lt;br /&gt;
| O,O || 26C-26Fh&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*The recommended configuration is E000h and 260h, being C,O,C,C.&lt;br /&gt;
*The [{{SERVER}}/downloads/2MB-EMS-Board/testems.zip Lo-tech EMS Board Test Utility] can assist with hardware testing after build.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech Memory Boards]]&lt;br /&gt;
*[[Lo-tech Memory Board FAQ]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board_(prototype)_Resources&amp;diff=1566</id>
		<title>Lo-tech 2MB EMS Board (prototype) Resources</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board_(prototype)_Resources&amp;diff=1566"/>
		<updated>2026-01-24T20:04:14Z</updated>

		<summary type="html">&lt;p&gt;James: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Resources on this page are for the Lo-tech 2MB EMS Board (prototype).&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-2MB-EMS-Board-schematic.png&lt;br /&gt;
File:Lo-tech-2MB-EMS-board-pcb.JPG&lt;br /&gt;
File:Lo-tech-2MB-EMS-Board-assembled.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM datasheet]&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;.  Copyright (c) 2013 Peacon Ltd (now Lo-tech Systems Limited).&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|C1..C15 || 0.1uF || X7R Ceramic Capacitor || 0603 || 15 || 1414610 || -&lt;br /&gt;
|-&lt;br /&gt;
|C16 || 10uF || 16V Electrolytic || E2-5 || 1 || 9451056 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC5 || - || 74HCT688DW || SOIC-20 || 2 || 1085321 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || - || 74HCT139D || SOIC-16 || 1 || 1085308 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || - || 74HCT04D || SOIC-14 || 1 || 1085299 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || - || 74HCT32D || SOIC-14 || 1 || 1201305 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC6..IC9 || - || 74HCT573D || SOIC-20 || 4 || 1201309 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC10 || - || 74HCT245DW || SOIC-20 || 1 || 1085315 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC11 || - || 74HCT138D || SOIC-16 || 1 || 1201307 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC12..IC15 || - || AS6C4008-55SIN 4Mb SRAM || SOIC-32 || 4 || 1562901 || -&lt;br /&gt;
|-&lt;br /&gt;
|JP1 || - || PINHD-2X4 || - || 1 || 1593441 || -&lt;br /&gt;
|-&lt;br /&gt;
|RN1 || 10k || BOURNS 4609X-101-103LF || SIL-9 || 1 || 2112931 || -&lt;br /&gt;
|-&lt;br /&gt;
|RN2 || 10k || BOURNS 4605X-101-103LF || SIL-5 || 1 || 9356061 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== JP1: Board Configuration ==&lt;br /&gt;
&lt;br /&gt;
The board is configured via four jumpers on the pin-header JP1 (O=open, C=closed, position 1 is furthest from IC11 (74LS138D)):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Page Frame Base Address !!IO Port Base Address&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (1,2) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || C000h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || D000h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || E000h&lt;br /&gt;
|-&lt;br /&gt;
| O,O || F000h&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (3,4) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || 040-043h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || 060-063h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || 240-243h&lt;br /&gt;
|-&lt;br /&gt;
| O,O || 260-263h&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The recommended configuration is E000h and 260h, being C,O,O,O. Note that F000h cannot be used due to the system BIOS occupying this physical segment.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech 2MB EMS Board]] (current version)&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_Yamaha_C1_Music_Computer_IDE_Adapter&amp;diff=1565</id>
		<title>Lo-tech Yamaha C1 Music Computer IDE Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_Yamaha_C1_Music_Computer_IDE_Adapter&amp;diff=1565"/>
		<updated>2026-01-24T20:04:00Z</updated>

		<summary type="html">&lt;p&gt;James: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Yamaha-C1-IDE-Assembled-Front.jpg|right|300px|Lo-tech Yamaha C1 IDE Adapter]]&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech Yamaha C1 Music Computer IDE Adapter]] is a bootable storage adapter specifically for the Yamaha C1 music computer. The product consists of a specific disk controller PCB, pictured, and a patched system ROM provided as a pair of 27C256 ROM images, including the [[XTIDE Universal BIOS]].&lt;br /&gt;
&lt;br /&gt;
This adapter is a 16-bit IDE interface and is compatible with all 16-bit ATA devices (standard hard drives, SD-Cards or SATA drives via an adapter, or CompactFlash).&lt;br /&gt;
&lt;br /&gt;
The C1 was supplied either with dual floppy drives, or one floppy and an MFM HDD. The PCB itself is a through-hole design and replaces the Yamaha MFM controller daughter board (fitted in HDD equipped models).&lt;br /&gt;
&lt;br /&gt;
The board uses standard ATA register mapping and uses the [http://www.xtideuniversalbios.org/ XT-IDE Universal BIOS] configured for  generic 16-bit IDE controller at 1F0h. The XTIDE Universal BIOS itself has been integrated into the custom system ROM images provided below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This PCB is available to order from [https://texelec.com/product/lo-tech-yamaha-c1-music-computer-ide-adapter/ TexElec].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Jumper Settings &amp;amp; System Resources ==&lt;br /&gt;
&lt;br /&gt;
*ROM BIOS - integrated into Yamaha system ROM (see [[#Downloads|Downloads]], below):&lt;br /&gt;
*IO Ports: Standard IDE port mapping, 1F0h.&lt;br /&gt;
&lt;br /&gt;
=== Jumper Settings ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Jumper&lt;br /&gt;
!Description&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
| JP1 || Enables disk in use signal generation when closed. Required to light C1 HDD activity LED. || Closed&lt;br /&gt;
|-&lt;br /&gt;
| JP2 || Generates IDE Reset from host when closed. || Closed&lt;br /&gt;
|-&lt;br /&gt;
| JP3 || Source for IDE Reset signal - 1-2 = ISA Reset, 2-3 = Powerfail || 2-3&lt;br /&gt;
|-&lt;br /&gt;
| JP4 || Enable IDE Pin-20 Power || Open&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== System ROM BIOS &amp;amp; BIOS Flashing ==&lt;br /&gt;
&lt;br /&gt;
The board is powered by the [http://www.xtideuniversalbios.org/ XT-IDE Universal BIOS] via integration with a custom system ROM available from the [[#Downloads|Downloads]] section below. The system BIOS chips cannot be programmed in-system; the two 27C256 chips (IC39 and IC40) must be removed from the system for programming (or replaced with ready-programmed chips).&lt;br /&gt;
&lt;br /&gt;
The custom BIOS includes the XTIDE Universal BIOS in free space. The built-in option ROM scan has been extended into the F segment to provide initialisation.&lt;br /&gt;
&lt;br /&gt;
Due to the 16-bit architecture of the machine, the ROM image is stored byte-interleaved between the two chips.&lt;br /&gt;
&lt;br /&gt;
== Yamaha C1 System Board Configuration ==&lt;br /&gt;
&lt;br /&gt;
The Yamaha C1 has two DIP switch blocks - Switch block 1, on the rear panel of the machine and Switch block 2, on the system board under the keyboard. Use of this adapter requires that Switch Block 2 is configured as for the HDD model. Switch Block 2 is documented in the service manual on page 7: &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Switch&lt;br /&gt;
!Function&lt;br /&gt;
!On&lt;br /&gt;
!Off&lt;br /&gt;
|-&lt;br /&gt;
| 1 ||  FDD-Selects the floppy disk or the Hard disk model. || Floppy Disk Model || Hard Disk Model&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HDD-Selects the floppy disk or the Hard disk model. || Hard Disk Model || Floppy Disk Model&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Bit 6 of the system configuration information. || N/A || Default (Yamaha C1)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Bit 7 of the system configuration information || N/A || Default (Yamaha C1)&lt;br /&gt;
|}&lt;br /&gt;
== Installation Procedure ==&lt;br /&gt;
&lt;br /&gt;
#Open the machine and remove the keyboard, being careful to avoid damage to the clear plastic ribbon connectors under the numeric keypad&lt;br /&gt;
#Remove the factory RLL controller and hard disk, if fitted&lt;br /&gt;
#Remove the second floppy disk drive (the lower drive) if fitted. The remaining floppy drive must be connected on the twisted connector at the end of the floppy cable&lt;br /&gt;
#Remove the system ROM chips C39 and C40 (under the keyboard), and re-flash or replace with the system specific code provided.&lt;br /&gt;
#Re-fit the system ROM chips&lt;br /&gt;
#Note the positions of switches on Switch Block 2 for future reference.&lt;br /&gt;
#Set on Switch Block 2: 1=off, 2=on, 3=off, 4=off&lt;br /&gt;
#Attach the IDE ribbon cable to the Lo-tech adapter, and set the jumpers as required&lt;br /&gt;
#Install the adapter and route the IDE cable as required&lt;br /&gt;
#Install an IDE HDD or other storage (CompactFlash etc) as required, and connect to the adapter and to power&lt;br /&gt;
#Re-assemble the machine&lt;br /&gt;
#Power-on the machine, enter the BIOS configuration utility (CTRL-ALT-S)&lt;br /&gt;
##Set the fixed disk type to &amp;quot;Not Installed&amp;quot;&lt;br /&gt;
##Set the second floppy drive to &amp;quot;Not Installed&amp;quot;&lt;br /&gt;
#Boot the machine from an MS-DOS boot disk and proceed with Hard Disk configuration (FDISK, FORMAT etc)&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-Yamaha-C1-HDD-Schematic-r01.png&lt;br /&gt;
File:Yamaha-C1-HDD-PCB-r01.png&lt;br /&gt;
File:Yamaha-C1-IDE-Assembled-Front.jpg&lt;br /&gt;
File:Yamaha-C1-IDE-Assembled-Back.jpg&lt;br /&gt;
File:C1-XUB-Boot.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. The design is Copyright (c) 2019,2022 Peacon Ltd (now Lo-tech Systems Limited). Assembled board images are Copyright (c) 2019, TexElec.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
*[https://www.lo-tech.co.uk/downloads/Yamaha-C1/Yamaha-C1-ROMs.zip System ROM binaries]&lt;br /&gt;
*[{{SERVER}}/downloads/Yamaha-C1/Yamaha_C1_Service_Manual.pdf Yamaha C1 Service Manual]&lt;br /&gt;
*[https://www.lo-tech.co.uk/downloads/Yamaha-C1/Yamaha_C1_Operating_Manual.pdf Yamaha C1 Operating Manual]&lt;br /&gt;
*[https://www.lo-tech.co.uk/downloads/Yamaha-C1/schematic_sections_opt.pdf Yamaha C1 Schematics]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech XT-CF Boards]]&lt;br /&gt;
*[[Main Page]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_1MB_RAM_Board&amp;diff=1564</id>
		<title>Lo-tech 1MB RAM Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_1MB_RAM_Board&amp;diff=1564"/>
		<updated>2026-01-24T20:03:33Z</updated>

		<summary type="html">&lt;p&gt;James: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-1MB-RAM-Board-assembled-r02.jpg|right|300px|Lo-tech 1MB RAM Board (r02), Assembled]]&lt;br /&gt;
The [[Lo-tech 1MB RAM Board]] is an 8-bit ISA expansion card providing up to 1MB of system RAM to [[IBM Personal Computer 5150|IBM compatible PCs]]. The small form factor makes the board suitable for the [[IBM Portable Computer 5155]].&lt;br /&gt;
&lt;br /&gt;
This board can be purchased online via [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
Revision History:&lt;br /&gt;
&lt;br /&gt;
*R01 - Prototype. See [[Lo-tech 1MB RAM Board (prototype) Resources]].&lt;br /&gt;
*R02 - First production release.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech 1MB RAM Board]] utilises two [{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM chips] to provide 8Mb (=1MB) total RAM capacity, buffered via a 74HCT245 to ensure compatibility with TTL logic levels, on an 8-bit ISA expansion card.&lt;br /&gt;
&lt;br /&gt;
DIP switches enable each 64KB physical page to be independently enabled, so making possible RAM expansion of all systems to the maximum 640KB, regardless of the size of the system board RAM fitted. To extend compatibility further, the first 16KB can be excluded, so providing compatibility with the [[IBM Personal Computer 5150]] when the system board is populated with the minimum 16KB RAM.&lt;br /&gt;
&lt;br /&gt;
The board can also provide [http://en.wikipedia.org/wiki/Upper_memory_area upper memory] (between 640KB and 1MB) that, whilst not generally used by MS-DOS in an XT class machine, can be used for specific purposes such as TSRs, disk cache and print spoolers. Any complete unused physical pages can be populated by the RAM board for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-1MB-RAM-Board-schematic-r02.png&lt;br /&gt;
File:1MB-RAM-Board-r02-Top.png&lt;br /&gt;
File:Lo-tech-1MB-RAM-Board-assembled-r02.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM datasheet]&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2013,2014 Peacon Ltd (now Lo-tech Systems Limited).&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
&lt;br /&gt;
This PCB makes use of SMT components:&lt;br /&gt;
&lt;br /&gt;
*SOIC chips have a pitch of 1.27mm&lt;br /&gt;
*0603 package capacitors and resistors&lt;br /&gt;
&lt;br /&gt;
Assembly requires flux and a temperature controlled soldering station.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|C1..C9 || 0.1uF || X7R Ceramic Capacitor || 0603 || 9 || 1414610 || C0603C104K4RACTU&lt;br /&gt;
|-&lt;br /&gt;
|C10 || 10uF || 16V Electrolytic || E2-5 || 1 || 9451056 || 140-REA100M1CBK0511P&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC2 || - || AS6C4008-55SIN 4Mb SRAM || SOIC-32 || 2 || 1562901 || 913-AS6C4008-55SIN&lt;br /&gt;
|-&lt;br /&gt;
|IC3, IC4 || - || 74HCT138D || SOIC-16 || 2 || 1201307 || 771-74HCT138D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC5, IC6 || - || 74HCT30D || SOIC-20 || 2 || 1085303 || 771-HCT30D652&lt;br /&gt;
|-&lt;br /&gt;
|IC7 || - || 74HCT245DW || SOIC-20 || 1 || 1085315 || 771-74HCT245D&lt;br /&gt;
|-&lt;br /&gt;
|IC8 || - || 74LS05D || SOIC-14 || 1 || 9592164 || 595-SN74LS05D&lt;br /&gt;
|-&lt;br /&gt;
|IC9 || - || 74HCT02D || SOIC-14 || 1 || 1085298 || 595-SN74HCT02D&lt;br /&gt;
|-&lt;br /&gt;
|RN1..RN5 || 10k || RESISTOR, ARRAY-4, 10K, 1206 || 1206 || 5 || 1770137 || 652-CAY16-103J4LF&lt;br /&gt;
|-&lt;br /&gt;
|SW1, SW2 || - || MULTICOMP MCNDS-08-V || DIP-16 || 2 || 9471596 || 774-2068&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
Uses [[Lo-tech_ISA_Slot_Brackets#Type_3|Lo-tech ISA Slot Bracket Type 3]].&lt;br /&gt;
&lt;br /&gt;
== DIP Switch Settings ==&lt;br /&gt;
&lt;br /&gt;
The board is configured via two banks of DIP switches, which control whether each physical segment (=64KB) is active on the memory board.&lt;br /&gt;
&lt;br /&gt;
Switch position ON enables the corresponding page:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Sw1 !!Sw2&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Position !!Page !! Memory Range&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 0000h || 0-64KB (16-64KB when Sw2.8 ON)&lt;br /&gt;
|-&lt;br /&gt;
| 1.2 || 1000h || 64-128KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.3 || 2000h || 128-192KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 || 3000h || 192-256KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.5 || 4000h || 256-320KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.6 || 5000h || 320-384KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.7 || 6000h || 384-448KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.8 || 7000h || 448-512KB&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Position !!Page !! Memory Range&lt;br /&gt;
|-&lt;br /&gt;
| 2.1 || 8000h || 512-576KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.2 || 9000h || 576-640KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.3 || A000h || 640-704KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.4 || B000h || 704-768KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.5 || C000h || 768-832KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.6 || D000h || 832-896KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.7 || E000h || 896-960KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.8 || - || Disables 0-16KB (when Sw1.1 ON)&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Note that when used with IBM 5150 16-64KB system board, the system board should be populated with 64KB to avoid bus contention.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech Memory Boards]]&lt;br /&gt;
*[[Lo-tech Memory Board FAQ]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Terms_and_Conditions&amp;diff=1563</id>
		<title>Terms and Conditions</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Terms_and_Conditions&amp;diff=1563"/>
		<updated>2026-01-24T19:57:49Z</updated>

		<summary type="html">&lt;p&gt;James: Updated to reflect change of company name.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensed Use: Web Content and Downloads ==&lt;br /&gt;
&lt;br /&gt;
Web Content available via &#039;&#039;&#039;lo-tech.co.uk&#039;&#039;&#039; is provided for non-commercial use with the license as set out as follows.&lt;br /&gt;
&lt;br /&gt;
; Owner :The &#039;&#039;&#039;lo-tech&#039;&#039;&#039; and &#039;&#039;&#039;lo-tech.co.uk&#039;&#039;&#039; brands are trading names of [[Lo-tech Systems Limited]]. The use of the &#039;&#039;&#039;Lo-tech&#039;&#039;&#039; and &#039;&#039;&#039;Lo-tech.co.uk&#039;&#039;&#039; brands are restricted by [[Copyrights|Copyright]].&lt;br /&gt;
;Restriction Of Use:&#039;&#039;&#039;Lo-tech.co.uk&#039;&#039;&#039; designs (both hardware and software) are intended to provide interesting insight into electronics and the workings of computers. They are not fault tolerant and are not designed or intended for use in control equipment in hazardous environments requiring fail-safe performance, such as industrial machinery, in which the failure of such components could lead to death or personal injury. Product-specific and general [[Warnings]] should be observed.&lt;br /&gt;
;Commercial Use Limitation:Where &#039;&#039;&#039;Lo-tech.co.uk&#039;&#039;&#039; designs (both hardware and software) are provided in source-code format (i.e. &#039;Open Source&#039;), this material is provided for the benefit of the hobbyist end-user, and must not be used in a way that competes with products or services provided via Lo-tech.co.uk. Circuit schematics, whether provided in a CAD software native format or as an image file, are considered to be Open Source in this context. [[Copyrights]] should also be observed.&lt;br /&gt;
;Indemnity&lt;br /&gt;
:The user will indemnify and hold [[Lo-tech Systems Limited]] and its related companies harmless for, from and against, any claims or liabilities, including without limitation product liability claims, arising out of the use, reproduction or distribution of Software, Hardware, Documentation, and parts thereof.&lt;br /&gt;
; Limited Warranty and Limited Liability:Where software, hardware, or documentation is provided free of charge, it is provided “as is” without warranty of any kind, either express or implied, including without limitation, any warranties of merchantability, fitness for a particular purpose, and non-infringement. [[Lo-tech Systems Limited]] disclaims all responsibility for the accuracy or reliability of the software, hardware, and documentation and does not warrant they will meet licensee’s requirements, be uninterrupted or error-free, or that any defects in the software will be corrected. The entire risk arising out of use or performance of the software, hardware, and documentation provided under this agreement is assumed by the user. In no event shall [[Lo-tech Systems Limited]] (or its related companies) be liable for any incidental, special, indirect or consequential damages, lost profits or lost data, cost of procurement of substitute goods, technology or services, any claims by third parties (including but not limited to any defense thereof), any claims for indemnity or contribution, or other similar costs, whether asserted on the basis of contract, tort (including negligence), breach of warranty, or otherwise. In any event, [[Lo-tech Systems Limited]]&#039;s liability under this agreement and for the software, hardware, and documentation is limited to the amount licensee paid to [[Lo-tech Systems Limited]] for the software, hardware, and/or documentation.&lt;br /&gt;
&lt;br /&gt;
==Online Sales ==&lt;br /&gt;
&lt;br /&gt;
The Terms and Conditions applied to online sales made via &#039;&#039;&#039;Lo-tech.co.uk&#039;&#039;&#039; are as follows.&lt;br /&gt;
&lt;br /&gt;
=== Physical Items ===&lt;br /&gt;
#In this document the following words shall have the following meanings:&lt;br /&gt;
##“The Purchaser” means the legal entity who buys The Goods and whose details are registered with PayPal.&lt;br /&gt;
##“The Goods” means the articles listed in the order received by The Seller from PayPal for which physical order fulfillment is provided.&lt;br /&gt;
##“The Seller” and means Lo-tech Systems Limited.&lt;br /&gt;
# The order and these Terms and Conditions shall apply to The Goods only to the exclusion of all other terms and no variation to it can apply unless such variation is agreed in writing by The Seller. The Seller shall not be bound by any oral condition, warranty, guarantee or representation given or made unless the same is in writing, nor by any implied condition. All implied conditions and warranties whether as to quality, fitness or purpose or otherwise and whether arising by implication of law or to be implied from circumstances are hereby expressly excluded. The order shall not be binding upon The Seller unless or until specifically accepted by The Seller.&lt;br /&gt;
#All amounts are listed as and payable in UK pounds sterling. Payment is due at the time of order.&lt;br /&gt;
#Title to and property in The Goods shall not pass to The Purchaser until The Seller has been paid in full for The Goods.&lt;br /&gt;
#The Purchaser has certain rights in UK Law, including the right to return The Goods.&lt;br /&gt;
##Some products, such as unpopulated PCBs, are components and not complete products, and as such these can only be returned where in their original, as-shipped condition.&lt;br /&gt;
##Some products can be customised as part of the order process, and these goods are considered tailor-made or personalised for the purposes of the Consumer Contracts Regulations and acceptance of the order by The Seller is therefore final. As such The Purchaser will accept The Goods without any right to return The Goods except to the extent permitted by The Purchaser’s statutory rights or as provided for herein.&lt;br /&gt;
##The Purchaser must notify The Seller in writing by email of any intention to return goods for any reason.&lt;br /&gt;
## Except where returns are made due to breach of warranty (as defined below):&lt;br /&gt;
###The Purchaser is responsible for return postage costs; and&lt;br /&gt;
###The Purchaser assumes all responsibility for and hereby indemnifies The Seller against all import duties, taxes, customs fees, and all other third party charges arising.&lt;br /&gt;
#The Purchaser assumes all responsibility for any compliance related issues in the use of or performance of or decommissioning of The Goods, such as (but not limited to) electromagnetic radiation and environmental disposal costs.&lt;br /&gt;
#The Purchaser warrants to the Seller that:&lt;br /&gt;
##They agree to be bound by these Terms and Conditions and;&lt;br /&gt;
##The Goods will not be used, either directly or via any third party to which they are knowingly re-sold, in any way that could change the classification of The Goods in the context of the UK Strategic Export Control Lists (including but not limited to the Dual-Use Lists);&lt;br /&gt;
##The Goods will not be shipped onto any Country or location to which the sale would have been restricted due to trade embargo or similar restrictions; and&lt;br /&gt;
#The Seller provides the following as sole and exclusive warranty with The Goods:&lt;br /&gt;
##The Goods will be, on arrival, as described and function as described in documentation made available to the Purchaser prior to order;&lt;br /&gt;
##Product specific warranties as stated in the [[Compliance]] information for the particular product or product class at time of order;&lt;br /&gt;
##Any defects under these warranties must be notified in writing with 30 days of receipt.&lt;br /&gt;
#The Seller does not accept waste electrical items and is not a registered waste carrier, and as such cannot accept the return of waste electrical items ([[WEEE]]). The Seller fulfils its legal [[WEEE]] requirements, when arising due to the provision of in-scope products, by financially supporting the national network of [[WEEE]] recycling centres established by local authorities, achieved through membership of the national Distributor Take-back scheme (DTS).&lt;br /&gt;
#Time of dispatch and/or delivery of the Goods shall not be deemed to be of the essence of the contract. The Seller shall endeavour to meet the dispatch and/or delivery estimates quoted to the Purchaser. The Seller does not guarantee such dates. The Seller shall not be liable for any claims or liabilities arising out of late delivery of The Goods.&lt;br /&gt;
# Risk in The Goods shall pass on delivery but The Seller shall not be liable in respect of any damage to or loss of The Goods in transit and The Purchaser assumes all responsibility for and hereby indemnifies The Seller against all import duties, taxes, customs fees, and all other third party charges arising on the delivery of The Goods, and thereafter in relation to those Goods.&lt;br /&gt;
#Any claims for damage in transit shall be notified to The Seller by The Purchaser within 30 days of receipt and settled by way of refund to The Purchaser of the unit price paid for each item affected, upon receipt by The Seller of such affected items.&lt;br /&gt;
#The Purchaser shall indemnify The Seller and its related companies against any claims, loss, damage or other liability or expense incurred (including legal costs on a full indemnity basis) arising directly or indirectly out of the state, condition or use of The Goods, or in any way arising out of having entered into this Agreement, including without limitation product liability claims, or claims arising out of the use, reproduction or distribution of products and any associated software, hardware, documentation, and parts thereof (except in the case of death or personal injury caused by the Seller’s negligence).&lt;br /&gt;
#The Goods are not fault tolerant and are not designed, manufactured, or intended for use in control equipment in hazardous environments requiring fail-safe performance, such as industrial machinery, in which the failure of such components could lead to death or personal injury.&lt;br /&gt;
#The general and product specific [[Warnings]] provided must be observed both in the initial deployment and throughout the lifecycle of The Goods.&lt;br /&gt;
#Except in the case of death or personal injury caused by The Seller’s negligence, The Seller is not liable for any loss, injury or damage (including consequential or financial loss), due to any defect in The Goods.&lt;br /&gt;
#Except in the case of death or personal injury caused by The Seller’s negligence, under no circumstances will The Seller’s liability exceed the total of payments received by The Seller.&lt;br /&gt;
#If any term or provision of these Terms and Conditions is held invalid, illegal or unenforceable, in whole or in part for any reason by any Court, such part shall be deemed not to form part of the Terms and Conditions but the legality, validity or enforceability of the remainder of the Terms and Conditions shall not be affected.&lt;br /&gt;
#This sale of The Goods is considered to be executed in the United Kingdom and this Agreement shall be governed by and construed in accordance with the laws of England. Any dispute will be subject to the jurisdiction of the English Courts.&lt;br /&gt;
&lt;br /&gt;
=== Downloads ===&lt;br /&gt;
&lt;br /&gt;
#In this document the following words shall have the following meanings:&lt;br /&gt;
##“The Licensee” means the legal entity who buys a License to use The Downloads and whose details are registered with PayPal.&lt;br /&gt;
##&amp;quot;The Downloads&amp;quot; means the articles listed in the order received by The Licensor from PayPal for which digital order fulfillment is provided.&lt;br /&gt;
## &amp;quot;The Licensor&amp;quot; means Lo-tech Systems Limited.&lt;br /&gt;
# These license terms are an agreement between you and Lo-tech Systems Limited (or one of its affiliates). They apply to any items purchased with digital delivery through lo-tech.co.uk. IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY ACCESSING THE DOWNLOADS, YOU ACCEPT THESE TERMS.&lt;br /&gt;
#USE RIGHTS. The Licensee grants The Licensor with continuous, non-expiring rights to use The Downloads for non-commercial purposes.&lt;br /&gt;
# DATA COLLECTION. The Downloads may contain unique identifiers that tie The Download to The Licensee via the sales order records.&lt;br /&gt;
# SCOPE OF LICENSE. The Downloads are licensed, not sold. Lo-tech Systems Limited reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to):&lt;br /&gt;
##Work around any technical limitations that allow use only in certain ways;&lt;br /&gt;
##Remove, minimize, block, or modify any notices or logos of Lo-tech Systems Limited, Lo-tech, Lo-tech.co.uk, or its suppliers;&lt;br /&gt;
##Use The Downloads in any way that is against the law or to create or propagate malware; or&lt;br /&gt;
##Share, publish, distribute, or lend The Downloads (except for any distributable code included therein), provide access to The Downloads for others to use, or transfer The Downloads or this agreement to any third party.&lt;br /&gt;
#EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to The Downloads, which include restrictions on destinations, end users, and end use. &lt;br /&gt;
# SUPPORT SERVICES. Lo-tech Systems Limited is not obligated under this agreement to provide any support services for The Downloads. Any support provided is “as is”, “with all faults”, and without warranty of any kind.&lt;br /&gt;
# Access to The Downloads is provided by email on receipt of payment. By accessing The Downloads, The Licensee consents to waiving of rights to the 14-day cooling-off period defined in the Distance Selling Regulations in exchange for immediate access.&lt;br /&gt;
#There is no right to return or refund except to the extent permitted by The Licensees statutory rights or as provided for herein.&lt;br /&gt;
# This sale of License for the use of The Downloads is considered to be executed in the United Kingdom and this Agreement shall be governed by and construed in accordance with the laws of England. Any dispute will be subject to the jurisdiction of the English Courts.&lt;br /&gt;
# The order shall not be binding upon The Licensee unless or until specifically accepted by The Licensee.&lt;br /&gt;
# All amounts are listed as and payable in UK pounds sterling (GBP). Payment is due at the time of order.&lt;br /&gt;
# Access to The Downloads will be provided by email within 72 hours of order and shall expire 72 hours after access has been granted.&lt;br /&gt;
# The general and product specific [[Warnings]] provided must be observed in the use of The Downloads.&lt;br /&gt;
#ENTIRE AGREEMENT. This agreement, and any other terms Lo-tech Systems Limited may provide for supplements, updates, or third-party components, is the entire agreement for The Downloads.&lt;br /&gt;
# DISCLAIMER OF WARRANTY. THE DOWNLOADS ARE LICENSED “AS IS.” THE LICENSEE BEARS THE RISK OF USING IT. Lo-tech Systems Limited GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, Lo-tech Systems Limited EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.&lt;br /&gt;
# LIMITATION ON AND EXCLUSION OF DAMAGES:&lt;br /&gt;
## IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM Lo-tech Systems Limited ONLY DIRECT DAMAGES UP TO GBP £5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES.&lt;br /&gt;
## This limitation applies to (a) anything related to The Downloads; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law.&lt;br /&gt;
## It also applies even if Lo-tech Systems Limited knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
*[[About]]&lt;br /&gt;
*[[Copyrights]]&lt;br /&gt;
*[[Warnings]]&lt;br /&gt;
*[[Compliance]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_Systems_Limited&amp;diff=1562</id>
		<title>Lo-tech Systems Limited</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_Systems_Limited&amp;diff=1562"/>
		<updated>2026-01-24T19:56:07Z</updated>

		<summary type="html">&lt;p&gt;James: Redirected page to About&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[About]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Compliance&amp;diff=1561</id>
		<title>Compliance</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Compliance&amp;diff=1561"/>
		<updated>2026-01-24T19:55:16Z</updated>

		<summary type="html">&lt;p&gt;James: Updated to reflect change of company name.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Unpopulated PCBs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;lo-tech.co.uk&#039;&#039;&#039; un-populated PCBs are intended for use for ENGINEERING DEVELOPMENT, DEMONSTRATION, or EVALUATION PURPOSES ONLY and are not considered by [[lo-tech.co.uk:About|Lo-tech Systems Limited]] to be finished end-products fit for general consumer use. Persons handling the product(s) must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards.&lt;br /&gt;
&lt;br /&gt;
These products do not fall within the scope of the European Union directives regarding electromagnetic compatibility, restricted substances (RoHS), recycling ([[WEEE]]), FCC, CE or UL, and therefore may not meet the technical requirements of these directives or other related directives, unless otherwise stated.&lt;br /&gt;
&lt;br /&gt;
Should an un-populated PCB not meet the specifications provided on this site, the board may be returned within 30 days from the date of delivery for a full refund. THE FOREGOING WARRANTY IS THE EXCLUSIVE WARRANTY MADE BY SELLER TO BUYER AND IS IN LIEU OF ALL OTHER WARRANTIES, EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE.&lt;br /&gt;
&lt;br /&gt;
The user assumes all responsibility and liability for proper and safe handling of the goods. Further, the user indemnifies [[lo-tech.co.uk:About|Lo-tech Systems Limited]] from all claims arising from the handling or use of the goods. Due to the open construction of the products once assembled, it is the user’s responsibility to take any and all appropriate precautions with regard to electrostatic discharge.&lt;br /&gt;
&lt;br /&gt;
EXCEPT TO THE EXTENT OF THE INDEMNITY SET FORTH ABOVE, NEITHER PARTY SHALL BE LIABLE TO THE OTHER FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES.&lt;br /&gt;
&lt;br /&gt;
== Digital Downloads ==&lt;br /&gt;
&#039;&#039;&#039;lo-tech.co.uk&#039;&#039;&#039; digitally delivered products (i.e. [[Terms and Conditions#Downloads|downloads]]) are intended for use for ENGINEERING DEVELOPMENT, DEMONSTRATION, or EVALUATION PURPOSES ONLY and are not considered by [[lo-tech.co.uk:About|Lo-tech Systems Limited]] to be or to be used to create finished products fit for general consumer use. Persons making licensed use of these product(s) must have electronics training and observe good engineering practice standards. As such, the designs provided within these products are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards.&lt;br /&gt;
&lt;br /&gt;
These products do not fall within the scope of the European Union directives regarding electromagnetic compatibility, restricted substances (RoHS), recycling ([[WEEE]]), FCC, CE or UL, and therefore may not meet the technical requirements of these directives or other related directives, unless otherwise stated. It is the Licensee&#039;s responsibility to ensure compliance with all local requirements accordingly.&lt;br /&gt;
&lt;br /&gt;
== Lo-tech GPIO Interface Board rev.2 (Assembled Version) ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech GPIO Interface Board rev.2]] (Assembled Version) complies with the relevant provisions of the RoHS Directive for the European Union. In common with all Electrical and Electronic Equipment (EEE) the device should not be disposed of as household waste (see [[WEEE]]). Alternative arrangements may apply in other jurisdictions.&lt;br /&gt;
&lt;br /&gt;
=== Electromagnetic Compatibility (EMC) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: EMC Performance of the Raspberry Pi is influenced greatly by the attached power supply and casing design. A properly grounded enclosure and a compliant power supply must be used with this product in order to meet FCC emission limits.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; European Compliance Statement : This product is in conformity with the protection requirements of EU Council Directive 2004/108/EC on the approximation of the laws of the Member States relating to electromagnetic compatibility. This product has been tested and found to comply with the limits for Class B Information Technology Equipment according to the European Standard.&lt;br /&gt;
&lt;br /&gt;
; Federal Communications Commission (FCC) Emissions Compliance Statement : Note: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the product documentation, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference, in which case the user will be required to correct the interference at his own expense.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;PLo-tech Systems Limited is not responsible for any radio or television interference caused by operating device under conditions other than recommended or by unauthorised changes or modifications to this equipment. Unauthorised changes or modifications could void the user&#039;s authority to operate the equipment.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;This device complies with Part 15 of the FCC rules. Operation is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Responsible Party: [[Lo-tech Systems Limited]]&lt;br /&gt;
&lt;br /&gt;
== Lo-tech Raspberry Pi VGA Interface (Assembled Version) ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech RPi VGA Adapter]] (Assembled Version) complies with the relevant provisions of the RoHS Directive for the European Union. In common with all Electrical and Electronic Equipment (EEE) the device should not be disposed of as household waste (see [[WEEE]]). Alternative arrangements may apply in other jurisdictions.&lt;br /&gt;
&lt;br /&gt;
=== Electromagnetic Compatibility (EMC) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: EMC Performance of the Raspberry Pi is influenced greatly by the attached power supply and casing design. A compliant power supply must be used with this product in order to meet FCC emission limits.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; European Compliance Statement : This product is in conformity with the protection requirements of EU Council Directive 2004/108/EC on the approximation of the laws of the Member States relating to electromagnetic compatibility. This product has been tested and found to comply with the limits for Class B Information Technology Equipment according to the European Standard.&lt;br /&gt;
&lt;br /&gt;
; Federal Communications Commission (FCC) Emissions Compliance Statement : Note: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the product documentation, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference, in which case the user will be required to correct the interference at his own expense.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Lo-tech Systems Limited is not responsible for any radio or television interference caused by operating device under conditions other than recommended or by unauthorised changes or modifications to this equipment. Unauthorised changes or modifications could void the user&#039;s authority to operate the equipment.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;This device complies with Part 15 of the FCC rules. Operation is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Responsible Party: [[Lo-tech Systems Limited]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[lo-tech.co.uk:General_disclaimer|Terms and Conditions]]&lt;br /&gt;
*[[WEEE]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Copyrights&amp;diff=1560</id>
		<title>Copyrights</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Copyrights&amp;diff=1560"/>
		<updated>2026-01-24T19:46:36Z</updated>

		<summary type="html">&lt;p&gt;James: /* Lo-tech Brand and Logo */ Updated to reflect change of company name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Lo-tech Brand and Logo ==&lt;br /&gt;
&lt;br /&gt;
[[File:Lotech-logo-thumbnail-r01.png|thumb|right|Lo-tech Brand Logo]]&lt;br /&gt;
The words &amp;quot;Lo-tech&amp;quot; and &amp;quot;Lo-tech.co.uk&amp;quot; and the Lo-tech logo (right) are collectively the &#039;&#039;&#039;Lo-tech&#039;&#039;&#039; Brand Identifiers. &#039;&#039;&#039;Lo-tech&#039;&#039;&#039; is a trading name of [[lo-tech.co.uk:About|Lo-tech Systems Limited]].&lt;br /&gt;
&lt;br /&gt;
The brand identifiers may only be used:&lt;br /&gt;
&lt;br /&gt;
#to refer to or describe genuine &#039;&#039;&#039;Lo-tech&#039;&#039;&#039; products or services; or&lt;br /&gt;
#to state or indicate that another product is compatible with, works with, or can be used with, &#039;&#039;&#039;Lo-tech&#039;&#039;&#039; products.&lt;br /&gt;
&lt;br /&gt;
When used in this way on a website, these should link to http://www.lo-tech.co.uk/&lt;br /&gt;
&lt;br /&gt;
These brand identifiers may not be used:&lt;br /&gt;
&lt;br /&gt;
#as part of a company name, company logo or product name;&lt;br /&gt;
#as part of a domain name;&lt;br /&gt;
#in a way that creates a false impression that a product or business is endorsed by, sponsored by, or associated with &#039;&#039;&#039;Lo-tech&#039;&#039;&#039;;&lt;br /&gt;
#in a way that shows &#039;&#039;&#039;Lo-tech&#039;&#039;&#039;, [[lo-tech.co.uk:About|Lo-tech Systems Limited]], or its products or services in a false or derogatory light;&lt;br /&gt;
#in connection with fake or counterfeit products;&lt;br /&gt;
#in a way that will damage our goodwill in any way.&lt;br /&gt;
&lt;br /&gt;
== Third Party Materials ==&lt;br /&gt;
&lt;br /&gt;
In general, information provided on this website is of historic interest and in some cases includes third-party supporting documentation and software for the express purpose of the preservation of associated hardware that is dependent on that documentation and software.&lt;br /&gt;
&lt;br /&gt;
In some cases the original copyright owner is defunct, whilst in other cases there is no commercial reason for the original copyright holder to make such documentation and software available, but it should be noted that those third parties retain the copyright in such materials regardless, and that their permission may be required to use those materials.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[About]]&lt;br /&gt;
*[[Terms and Conditions]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=About&amp;diff=1559</id>
		<title>About</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=About&amp;diff=1559"/>
		<updated>2026-01-24T19:45:33Z</updated>

		<summary type="html">&lt;p&gt;James: /* Legal bits */ Updated to reflect change of company name.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;lo-tech.co.uk is home to a range of retro computing and RaspberryPi projects.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
lo-tech has been developing assemble-yourself expansion boards for retro IBM and retro Tandy PCs since 2012, the range currently consisting of memory boards, storage boards, sound boards, and some diagnostics related products. The lo-tech product range as covers Raspberry Pi modules with a GPIO interface module, 24-bit VGA adapter, and an interface to Rollertec garage door controllers.&lt;br /&gt;
&lt;br /&gt;
In additional to downloadable designs, Lo-tech boards are available through our authorised distributor, [https://texelec.com/product-tag/lo-tech/ TexElec].&lt;br /&gt;
&lt;br /&gt;
If you have an idea for a Lo-tech PCB, please [https://www.lo-tech.co.uk/get-in-touch/ Get In Touch]!&lt;br /&gt;
&lt;br /&gt;
== Legal bits ==&lt;br /&gt;
&lt;br /&gt;
*Lo-tech and Lo-tech.co.uk are trading names of Lo-tech Systems Limited.&lt;br /&gt;
*Lo-tech Systems Limited is registered in England and Wales, company registration number 06648822.&lt;br /&gt;
*Hardware and software are provided under [[Terms and Conditions|a simple license]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Copyrights]]&lt;br /&gt;
*[[Terms and Conditions]]&lt;br /&gt;
*[[Privacy policy]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board&amp;diff=1558</id>
		<title>Lo-tech 2MB EMS Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board&amp;diff=1558"/>
		<updated>2025-08-31T09:02:43Z</updated>

		<summary type="html">&lt;p&gt;James: Added narrative about how XMS words from https://mateusz.fr/exms86/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-2MB-EMS-Board-assembled-r02.jpg|right|300px|Lo-tech 2MB EMS Board (r02), Assembled]]&lt;br /&gt;
The [[Lo-tech 2MB EMS Board]] is an 8-bit ISA expansion card providing up to 2MB of EMS for [[IBM Personal Computer 5150|IBM compatible PCs]]. The small form factor makes the board suitable for the [[IBM Portable Computer 5155]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This board can now provide XMS for XT class machines&#039;&#039;&#039; using [https://mateusz.fr/exms86/ EXMS86, a TSR that provides XMS 2.0 memory services by leveraging an EMS 3.2 source written by Mateusz Viste]. With the authors kind permission, v0.9.7 is also available for download here as [https://lo-tech.co.uk/downloads/exms86/exms86-0.9.7.zip Binaries] and [https://www.lo-tech.co.uk/downloads/exms86/exms86-0.9.7-source.zip Source]. &lt;br /&gt;
&lt;br /&gt;
To purchase this board, please visit [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
Revision History:&lt;br /&gt;
&lt;br /&gt;
*R01 - Prototype. See [[Lo-tech 2MB EMS Board (prototype) Resources]].&lt;br /&gt;
*R02 - First production release.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech 2MB EMS Board]] utilises up to four [{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM chips] to provide up to 16Mb (=2MB) total RAM capacity, buffered via a 74ACT245 to ensure compatibility with TTL logic levels, on an 8-bit ISA expansion card. For applications that support EMS, this provides a way to install more than the 1MB total address capacity of the 8086 and 8088 processors.&lt;br /&gt;
&lt;br /&gt;
Following the LIM EMS specification, physical RAM is divided into 16KB pages and addressed via a single 64KB window (the &#039;page frame&#039;) in the [http://en.wikipedia.org/wiki/Upper_memory_area upper memory]. The pages presented within the window are determined by the value set in four page registers, which are programmed through IO ports. A jumper block enables the page frame IO port base addresses to configured to match the system requirements.&lt;br /&gt;
&lt;br /&gt;
For operation, the EMS board requires a LIM memory manager driver, [[LTEMM.EXE]]. This driver provides LIM 4 compatibility.&lt;br /&gt;
&lt;br /&gt;
== XMS Capability ==&lt;br /&gt;
The following is included with the kind permission of Mateusz Viste.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;It is a common misconception that XMS is only possible on 386+ machines. XMS (v2.0) is fundamentally a memory-copying API. Applications using XMS do not care where the memory comes from. While XMS is commonly associated with RAM located above the 1 MB boundary (often called &amp;quot;extended memory&amp;quot;) on 386+ PCs, that&#039;s a historical convention, not a technical requirement. Hence it is perfectly possible for a driver to expose memory via the XMS API even if said memory is not part of the system&#039;s RAM - like memory from an EMS board.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Source: [https://mateusz.fr/exms86/ EXMS86 (EMS-backed XMS)]&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:2MB-EMS-Board-r02-schematic.png&lt;br /&gt;
File:2MB-EMS-Board-r02-front.png&lt;br /&gt;
File:Lo-tech-2MB-EMS-Board-assembled-r02.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM datasheet]&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2013,2014 Peacon Ltd.&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
&lt;br /&gt;
This PCB makes use of SMT components:&lt;br /&gt;
&lt;br /&gt;
*SOIC chips have a pitch of 1.27mm&lt;br /&gt;
*0603 package capacitors and resistors&lt;br /&gt;
&lt;br /&gt;
Assembly requires flux and a temperature controlled soldering station.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|C1..C15 || 0.1uF || X7R Ceramic Capacitor || 0603 || 15 || 1414610 || 80-C0603C104K4R&lt;br /&gt;
|-&lt;br /&gt;
|C16 || 10uF || 16V Electrolytic || E2-5 || 1 || 9451056 || 140-REA100M1CBK0511P&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC5 || - || 74HCT688DW || SOIC-20 || 2 || 1085321 || 771-HCT688D652 or 595-CD74HCT688M&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || - || 74HCT139D || SOIC-16 || 1 || 1085308 || 771-74HCT139D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || - || 74HCT04D || SOIC-14 || 1 || 1085299 || 595-SN74HCT04D&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || - || 74HCT32D || SOIC-14 || 1 || 1201305 || 771-74HCT32D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC6..IC9 || - || 74HCT573D || SOIC-20 || 4 || 1201309 || 771-74HCT573D&lt;br /&gt;
|-&lt;br /&gt;
|IC10 || - || 74HCT245DW || SOIC-20 || 1 || 1085315 || 771-74HCT245D&lt;br /&gt;
|-&lt;br /&gt;
|IC11 || - || 74HCT138D || SOIC-16 || 1 || 1201307 || 771-74HCT138D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC12..IC15 || - || AS6C4008-55SIN 4Mb SRAM || SOIC-32 || 4 || 1562901 || 913-AS6C4008-55SIN&lt;br /&gt;
|-&lt;br /&gt;
|JP1 || - || PINHD-2X4 || - || 1 || 1593441 || 649-77313-101-08LF&lt;br /&gt;
|-&lt;br /&gt;
|RN1..RN3 || 10k || RESISTOR, ARRAY-4, 10K, 1206 || 1206 || 3 || 1770137 || 652-CAY16-103J4LF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Only one SRAM chip is required to build a functioning board (populate SRAM chips in order from IC12).&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
Uses [[Lo-tech_ISA_Slot_Brackets#Type_3|Lo-tech ISA Slot Bracket Type 3]].&lt;br /&gt;
&lt;br /&gt;
== JP1: Board Configuration ==&lt;br /&gt;
&lt;br /&gt;
The board is configured via four jumpers on the pin-header JP1 (O=open, C=closed, position 1 is furthest from IC11 (74LS138D)):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Page Frame Base Address !!IO Port Base Address&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (1,2) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || C000h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || D000h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || E000h&lt;br /&gt;
|-&lt;br /&gt;
| O,O || (invalid)&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (3,4) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || 260-263h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || 264-267h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || 268-26Bh&lt;br /&gt;
|-&lt;br /&gt;
| O,O || 26C-26Fh&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*The recommended configuration is E000h and 260h, being C,O,C,C.&lt;br /&gt;
*The [{{SERVER}}/downloads/2MB-EMS-Board/testems.zip Lo-tech EMS Board Test Utility] can assist with hardware testing after build.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech Memory Boards]]&lt;br /&gt;
*[[Lo-tech Memory Board FAQ]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board&amp;diff=1557</id>
		<title>Lo-tech 2MB EMS Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board&amp;diff=1557"/>
		<updated>2025-08-31T08:02:50Z</updated>

		<summary type="html">&lt;p&gt;James: Corrected link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-2MB-EMS-Board-assembled-r02.jpg|right|300px|Lo-tech 2MB EMS Board (r02), Assembled]]&lt;br /&gt;
The [[Lo-tech 2MB EMS Board]] is an 8-bit ISA expansion card providing up to 2MB of EMS for [[IBM Personal Computer 5150|IBM compatible PCs]]. The small form factor makes the board suitable for the [[IBM Portable Computer 5155]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This board can now provide XMS for XT class machines&#039;&#039;&#039; using [https://mateusz.fr/exms86/ EXMS86, a TSR that provides XMS 2.0 memory services by leveraging an EMS 3.2 source written by Mateusz Viste]. With the authors kind permission, v0.9.7 is also available for download here as [https://lo-tech.co.uk/downloads/exms86/exms86-0.9.7.zip Binaries] and [https://www.lo-tech.co.uk/downloads/exms86/exms86-0.9.7-source.zip Source]. &lt;br /&gt;
&lt;br /&gt;
To purchase this board, please visit [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
Revision History:&lt;br /&gt;
&lt;br /&gt;
*R01 - Prototype. See [[Lo-tech 2MB EMS Board (prototype) Resources]].&lt;br /&gt;
*R02 - First production release.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech 2MB EMS Board]] utilises up to four [{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM chips] to provide up to 16Mb (=2MB) total RAM capacity, buffered via a 74ACT245 to ensure compatibility with TTL logic levels, on an 8-bit ISA expansion card. For applications that support EMS, this provides a way to install more than the 1MB total address capacity of the 8086 and 8088 processors.&lt;br /&gt;
&lt;br /&gt;
Following the LIM EMS specification, physical RAM is divided into 16KB pages and addressed via a single 64KB window (the &#039;page frame&#039;) in the [http://en.wikipedia.org/wiki/Upper_memory_area upper memory]. The pages presented within the window are determined by the value set in four page registers, which are programmed through IO ports. A jumper block enables the page frame IO port base addresses to configured to match the system requirements.&lt;br /&gt;
&lt;br /&gt;
For operation, the EMS board requires a LIM memory manager driver, [[LTEMM.EXE]]. This driver provides LIM 4 compatibility.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:2MB-EMS-Board-r02-schematic.png&lt;br /&gt;
File:2MB-EMS-Board-r02-front.png&lt;br /&gt;
File:Lo-tech-2MB-EMS-Board-assembled-r02.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM datasheet]&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2013,2014 Peacon Ltd.&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
&lt;br /&gt;
This PCB makes use of SMT components:&lt;br /&gt;
&lt;br /&gt;
*SOIC chips have a pitch of 1.27mm&lt;br /&gt;
*0603 package capacitors and resistors&lt;br /&gt;
&lt;br /&gt;
Assembly requires flux and a temperature controlled soldering station.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|C1..C15 || 0.1uF || X7R Ceramic Capacitor || 0603 || 15 || 1414610 || 80-C0603C104K4R&lt;br /&gt;
|-&lt;br /&gt;
|C16 || 10uF || 16V Electrolytic || E2-5 || 1 || 9451056 || 140-REA100M1CBK0511P&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC5 || - || 74HCT688DW || SOIC-20 || 2 || 1085321 || 771-HCT688D652 or 595-CD74HCT688M&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || - || 74HCT139D || SOIC-16 || 1 || 1085308 || 771-74HCT139D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || - || 74HCT04D || SOIC-14 || 1 || 1085299 || 595-SN74HCT04D&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || - || 74HCT32D || SOIC-14 || 1 || 1201305 || 771-74HCT32D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC6..IC9 || - || 74HCT573D || SOIC-20 || 4 || 1201309 || 771-74HCT573D&lt;br /&gt;
|-&lt;br /&gt;
|IC10 || - || 74HCT245DW || SOIC-20 || 1 || 1085315 || 771-74HCT245D&lt;br /&gt;
|-&lt;br /&gt;
|IC11 || - || 74HCT138D || SOIC-16 || 1 || 1201307 || 771-74HCT138D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC12..IC15 || - || AS6C4008-55SIN 4Mb SRAM || SOIC-32 || 4 || 1562901 || 913-AS6C4008-55SIN&lt;br /&gt;
|-&lt;br /&gt;
|JP1 || - || PINHD-2X4 || - || 1 || 1593441 || 649-77313-101-08LF&lt;br /&gt;
|-&lt;br /&gt;
|RN1..RN3 || 10k || RESISTOR, ARRAY-4, 10K, 1206 || 1206 || 3 || 1770137 || 652-CAY16-103J4LF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Only one SRAM chip is required to build a functioning board (populate SRAM chips in order from IC12).&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
Uses [[Lo-tech_ISA_Slot_Brackets#Type_3|Lo-tech ISA Slot Bracket Type 3]].&lt;br /&gt;
&lt;br /&gt;
== JP1: Board Configuration ==&lt;br /&gt;
&lt;br /&gt;
The board is configured via four jumpers on the pin-header JP1 (O=open, C=closed, position 1 is furthest from IC11 (74LS138D)):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Page Frame Base Address !!IO Port Base Address&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (1,2) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || C000h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || D000h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || E000h&lt;br /&gt;
|-&lt;br /&gt;
| O,O || (invalid)&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (3,4) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || 260-263h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || 264-267h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || 268-26Bh&lt;br /&gt;
|-&lt;br /&gt;
| O,O || 26C-26Fh&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*The recommended configuration is E000h and 260h, being C,O,C,C.&lt;br /&gt;
*The [{{SERVER}}/downloads/2MB-EMS-Board/testems.zip Lo-tech EMS Board Test Utility] can assist with hardware testing after build.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech Memory Boards]]&lt;br /&gt;
*[[Lo-tech Memory Board FAQ]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board&amp;diff=1556</id>
		<title>Lo-tech 2MB EMS Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_2MB_EMS_Board&amp;diff=1556"/>
		<updated>2025-08-31T08:02:03Z</updated>

		<summary type="html">&lt;p&gt;James: Added EXMS86 info and download links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-2MB-EMS-Board-assembled-r02.jpg|right|300px|Lo-tech 2MB EMS Board (r02), Assembled]]&lt;br /&gt;
The [[Lo-tech 2MB EMS Board]] is an 8-bit ISA expansion card providing up to 2MB of EMS for [[IBM Personal Computer 5150|IBM compatible PCs]]. The small form factor makes the board suitable for the [[IBM Portable Computer 5155]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This board can now provide XMS for XT class machines&#039;&#039;&#039; using [https://mateusz.fr/exms86/ EXMS86, a TSR that provides XMS 2.0 memory services by leveraging an EMS 3.2 source written by Mateusz Viste]. With the authors kind permission, v0.9.7 is also available for download here as [http://lo-tech.co.uk/downloads/exms86/exms86-0.9.7.zip Binaries] and [https://www.lo-tech.co.uk/downloads/exms86/exms86-0.9.7-source.zip Source]. &lt;br /&gt;
&lt;br /&gt;
To purchase this board, please visit [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
Revision History:&lt;br /&gt;
&lt;br /&gt;
*R01 - Prototype. See [[Lo-tech 2MB EMS Board (prototype) Resources]].&lt;br /&gt;
*R02 - First production release.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech 2MB EMS Board]] utilises up to four [{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM chips] to provide up to 16Mb (=2MB) total RAM capacity, buffered via a 74ACT245 to ensure compatibility with TTL logic levels, on an 8-bit ISA expansion card. For applications that support EMS, this provides a way to install more than the 1MB total address capacity of the 8086 and 8088 processors.&lt;br /&gt;
&lt;br /&gt;
Following the LIM EMS specification, physical RAM is divided into 16KB pages and addressed via a single 64KB window (the &#039;page frame&#039;) in the [http://en.wikipedia.org/wiki/Upper_memory_area upper memory]. The pages presented within the window are determined by the value set in four page registers, which are programmed through IO ports. A jumper block enables the page frame IO port base addresses to configured to match the system requirements.&lt;br /&gt;
&lt;br /&gt;
For operation, the EMS board requires a LIM memory manager driver, [[LTEMM.EXE]]. This driver provides LIM 4 compatibility.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:2MB-EMS-Board-r02-schematic.png&lt;br /&gt;
File:2MB-EMS-Board-r02-front.png&lt;br /&gt;
File:Lo-tech-2MB-EMS-Board-assembled-r02.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM datasheet]&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2013,2014 Peacon Ltd.&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
&lt;br /&gt;
This PCB makes use of SMT components:&lt;br /&gt;
&lt;br /&gt;
*SOIC chips have a pitch of 1.27mm&lt;br /&gt;
*0603 package capacitors and resistors&lt;br /&gt;
&lt;br /&gt;
Assembly requires flux and a temperature controlled soldering station.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|C1..C15 || 0.1uF || X7R Ceramic Capacitor || 0603 || 15 || 1414610 || 80-C0603C104K4R&lt;br /&gt;
|-&lt;br /&gt;
|C16 || 10uF || 16V Electrolytic || E2-5 || 1 || 9451056 || 140-REA100M1CBK0511P&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC5 || - || 74HCT688DW || SOIC-20 || 2 || 1085321 || 771-HCT688D652 or 595-CD74HCT688M&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || - || 74HCT139D || SOIC-16 || 1 || 1085308 || 771-74HCT139D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || - || 74HCT04D || SOIC-14 || 1 || 1085299 || 595-SN74HCT04D&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || - || 74HCT32D || SOIC-14 || 1 || 1201305 || 771-74HCT32D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC6..IC9 || - || 74HCT573D || SOIC-20 || 4 || 1201309 || 771-74HCT573D&lt;br /&gt;
|-&lt;br /&gt;
|IC10 || - || 74HCT245DW || SOIC-20 || 1 || 1085315 || 771-74HCT245D&lt;br /&gt;
|-&lt;br /&gt;
|IC11 || - || 74HCT138D || SOIC-16 || 1 || 1201307 || 771-74HCT138D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC12..IC15 || - || AS6C4008-55SIN 4Mb SRAM || SOIC-32 || 4 || 1562901 || 913-AS6C4008-55SIN&lt;br /&gt;
|-&lt;br /&gt;
|JP1 || - || PINHD-2X4 || - || 1 || 1593441 || 649-77313-101-08LF&lt;br /&gt;
|-&lt;br /&gt;
|RN1..RN3 || 10k || RESISTOR, ARRAY-4, 10K, 1206 || 1206 || 3 || 1770137 || 652-CAY16-103J4LF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Only one SRAM chip is required to build a functioning board (populate SRAM chips in order from IC12).&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
Uses [[Lo-tech_ISA_Slot_Brackets#Type_3|Lo-tech ISA Slot Bracket Type 3]].&lt;br /&gt;
&lt;br /&gt;
== JP1: Board Configuration ==&lt;br /&gt;
&lt;br /&gt;
The board is configured via four jumpers on the pin-header JP1 (O=open, C=closed, position 1 is furthest from IC11 (74LS138D)):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Page Frame Base Address !!IO Port Base Address&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (1,2) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || C000h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || D000h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || E000h&lt;br /&gt;
|-&lt;br /&gt;
| O,O || (invalid)&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Value (3,4) !!Base Address&lt;br /&gt;
|-&lt;br /&gt;
| C,C || 260-263h&lt;br /&gt;
|-&lt;br /&gt;
| O,C || 264-267h&lt;br /&gt;
|-&lt;br /&gt;
| C,O || 268-26Bh&lt;br /&gt;
|-&lt;br /&gt;
| O,O || 26C-26Fh&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*The recommended configuration is E000h and 260h, being C,O,C,C.&lt;br /&gt;
*The [{{SERVER}}/downloads/2MB-EMS-Board/testems.zip Lo-tech EMS Board Test Utility] can assist with hardware testing after build.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech Memory Boards]]&lt;br /&gt;
*[[Lo-tech Memory Board FAQ]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_flash_utility&amp;diff=1554</id>
		<title>Lo-tech XT-CF flash utility</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_flash_utility&amp;diff=1554"/>
		<updated>2024-08-26T20:11:29Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Lo-tech XT-CF flash utility is a simple DOS program that writes a binary input file to the ROM on the [[Lo-tech XT-CF Boards]] and [[Lo-tech 8-bit ROM Board]], both of which use ST39SF0x0 or AMIC A29010 flash chips.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
 flash [image-file] [base-address]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;[image-file]&amp;lt;/tt&amp;gt; is the name of the binary file to load&lt;br /&gt;
*&amp;lt;tt&amp;gt;[base-address]&amp;lt;/tt&amp;gt; is the base address of the chip, for example &amp;lt;tt&amp;gt;D000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since the boards have 32 or 64KB available, multiple ROM binaries can be written out by appending them into a single file ensuring images are 2KB aligned; however note that the entire flash chip is erased before programming.&lt;br /&gt;
&lt;br /&gt;
== Sample Output ==&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt;flash&lt;br /&gt;
 Lo-tech XT-CF and 8-bit ROM Board Flash Programmer, version 1.4&lt;br /&gt;
 Supports SST 29xE010/39SF0x0, and AMIC A29010 flash chips.&lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
 &lt;br /&gt;
 Write an image file to the ROM.  The ROM is completely&lt;br /&gt;
 erased, then the file copied.  Can be used with ROMs&lt;br /&gt;
 between 2KB and 64KB. Note: Checksum is not calculated.&lt;br /&gt;
 &lt;br /&gt;
 eg: flash [image-file] [base-address]&lt;br /&gt;
 &lt;br /&gt;
 [image-file]   - ROM image&lt;br /&gt;
 [base-address] - hex ROM window base address, i.e. D000&lt;br /&gt;
                  must be A000-F800&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-IDE/lo-tech-Flash-utility.zip Flash utility executable and source (ZIP file)]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech XT-CF flash utility source]]&lt;br /&gt;
*[[Lo-tech 8-bit ROM Board]]&lt;br /&gt;
*[[Lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_flash_utility&amp;diff=1553</id>
		<title>Lo-tech XT-CF flash utility</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_flash_utility&amp;diff=1553"/>
		<updated>2024-08-26T20:09:58Z</updated>

		<summary type="html">&lt;p&gt;James: Updated sample output to reflect version 1.4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Lo-tech XT-CF flash utility is a simple DOS program that writes a binary input file to the ROM on the [[Lo-tech XT-CF Boards]] and [[Lo-tech 8-bit ROM Board]], both of which use ST39SF0x0 or AMIC A29010 flash chips.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
 flash [image-file] [base-address]&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;tt&amp;gt;[image-file]&amp;lt;/tt&amp;gt; is the name of the binary file to load&lt;br /&gt;
*&amp;lt;tt&amp;gt;[base-address]&amp;lt;/tt&amp;gt; is the base address of the chip, for example &amp;lt;tt&amp;gt;D000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since the boards have 32 or 64KB available, multiple ROM binaries can be written out by appending them into a single file ensuring images are 2KB aligned; however note that the entire flash chip is erased before programming.&lt;br /&gt;
&lt;br /&gt;
== Sample Output ==&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt;flash&lt;br /&gt;
 Lo-tech XT-CF and 8-bit ROM Board Flash Programmer.  Usage:&lt;br /&gt;
 &lt;br /&gt;
 Write an image file to the ROM.  The ROM is completely&lt;br /&gt;
 erased, then the file copied.  Can be used with ROMs&lt;br /&gt;
 between 2KB and 64KB. Note: Checksum is not calculated.&lt;br /&gt;
 &lt;br /&gt;
 eg: flash [image-file] [base-address]&lt;br /&gt;
 &lt;br /&gt;
 [image-file]   - ROM image&lt;br /&gt;
 [base-address] - hex ROM window base address, i.e. D000&lt;br /&gt;
                  must be A000-F800&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-IDE/lo-tech-Flash-utility.zip Flash utility executable and source (ZIP file)]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech XT-CF flash utility source]]&lt;br /&gt;
*[[Lo-tech 8-bit ROM Board]]&lt;br /&gt;
*[[Lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_flash_utility_source&amp;diff=1552</id>
		<title>Lo-tech XT-CF flash utility source</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_flash_utility_source&amp;diff=1552"/>
		<updated>2024-08-26T19:55:51Z</updated>

		<summary type="html">&lt;p&gt;James: /* Code */ Updated to version 1.4 - resolves long-standing bug preventing programming of ROMs that are exactly 64KB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Source code for a simple [[lo-tech XT-CF flash utility]], which can be compiled using [[Turbo Pascal]] 6.  Compiled code can be downloaded [{{SERVER}}/downloads/XT-IDE/lo-tech-Flash-utility.zip here].&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
Program Flash;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
Simple utility to read or write ROM images to or from SST39SF or AMIC A29010&lt;br /&gt;
flash chips, as used by the lo-tech XT-CF and Universal ROM Boards.&lt;br /&gt;
&lt;br /&gt;
See http://www.lo-tech.co.uk/wiki/XT-CF-Boards&lt;br /&gt;
&lt;br /&gt;
Written by:   James Pearce&lt;br /&gt;
Last Updated: 01-Aug-24&lt;br /&gt;
&lt;br /&gt;
VERSION HISTORY:&lt;br /&gt;
&lt;br /&gt;
0.1 - Initial beta&lt;br /&gt;
0.2 - Added custom delay routines, to make it work on Pentium and higher&lt;br /&gt;
0.3 - Corrected maximum delay loop setting&lt;br /&gt;
1.0 - Initial &#039;finished&#039; release for Peacon XT-CF board:&lt;br /&gt;
      - removed ROM size parameter (as ROM is hard-wired to be 32KB)&lt;br /&gt;
1.1 - Updated release to support Peacon 8-Bit ROM Board:&lt;br /&gt;
      - Included prompt to confirm writing&lt;br /&gt;
      - Added (back) ROMSIZE parameter, as it could be 32 or 64KB&lt;br /&gt;
      - Added ability to merge code&lt;br /&gt;
1.2 - Rebranded to lo-tech&lt;br /&gt;
      Added support for AMIC A29010A 1Mb flash chip&lt;br /&gt;
      ROMSIZE parameter removed (again) as not needed; just use an image &amp;gt; 32K&lt;br /&gt;
1.3 - Added support for SST29EE010 and SST29LE010 flash chips&lt;br /&gt;
      Corrected usDelayLoop (was calibrated at 500uS instead of 125uS)&lt;br /&gt;
1.4 - Corrected bug writing 64K ROMs; removed interactive mode placeholder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
COMMAND LINE USAGE:&lt;br /&gt;
&lt;br /&gt;
flash [image-file] [chip-base-address]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
1. To overwrite the entire chip whose base address is D000, with the&lt;br /&gt;
   contents of an image file of between 2KB and 64KB:&lt;br /&gt;
&lt;br /&gt;
   flash xtide.bin D000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In all cases, the ROM is completely erased and reprogrammed, regardless&lt;br /&gt;
of the size of the image file.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
uses dos, crt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CONST&lt;br /&gt;
  FLASH_OK      :   BOOLEAN = TRUE;&lt;br /&gt;
  FLASH_ERROR   :   BOOLEAN = FALSE;&lt;br /&gt;
  RES_OK        :   Byte = 0;&lt;br /&gt;
  RES_UNDER     :   Byte = 1;&lt;br /&gt;
  RES_OVER      :   Byte = 2;&lt;br /&gt;
  VERSION       :   String = &#039;1.4&#039;;&lt;br /&gt;
&lt;br /&gt;
  CHIP_UNKNOWN  :   String = &#039;Unknown&#039;;&lt;br /&gt;
  SST29EE010    :   String = &#039;SST 29EE010&#039;;&lt;br /&gt;
  SST29LE010    :   String = &#039;SST 29LE010&#039;;&lt;br /&gt;
  SST512Kb      :   String = &#039;SST 512Kb&#039;;&lt;br /&gt;
  SST1Mb        :   String = &#039;SST 1Mb&#039;;&lt;br /&gt;
  SST2Mb        :   String = &#039;SST 2Mb&#039;;&lt;br /&gt;
  SST4Mb        :   String = &#039;SST 4Mb&#039;;&lt;br /&gt;
  AMIC1Mb       :   String = &#039;AMIC A29010&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TYPE&lt;br /&gt;
  PByte         =   ^BYTE;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VAR&lt;br /&gt;
  {global variables for the delay routines}&lt;br /&gt;
  DelayCounter  :  LongInt;&lt;br /&gt;
  Hr, Mn,&lt;br /&gt;
  Sec, S100     :  Word;&lt;br /&gt;
&lt;br /&gt;
  {global variables recording chip type}&lt;br /&gt;
  ChipType     :   String;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure start_clock;&lt;br /&gt;
{stores the current system clock time in static globals, which&lt;br /&gt;
 can then be used as a time base by function stop_clock at some&lt;br /&gt;
 later point}&lt;br /&gt;
begin&lt;br /&gt;
  GetTime(Hr,Mn,Sec,S100);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function stop_clock : longint;&lt;br /&gt;
{returns number of miliseconds since start_clock was called,&lt;br /&gt;
 assuming the day remains the same that is}&lt;br /&gt;
var h, m, s, cs : word;&lt;br /&gt;
begin&lt;br /&gt;
  GetTime(h,m,s,cs);&lt;br /&gt;
  stop_clock := ((h*3600000)+(m*60000)+(s*1000)+(cs*10)) -&lt;br /&gt;
                ((Hr*3600000)+(Mn*60000)+(Sec*1000)+(S100*10));&lt;br /&gt;
end;{function stop_clock}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure delayLoop( ms : word );&lt;br /&gt;
{creates a delay of ms miliseconds (once calibrated) by running&lt;br /&gt;
 some DIV instructions}&lt;br /&gt;
var&lt;br /&gt;
  a, b, c  : word;&lt;br /&gt;
  x	   : word;&lt;br /&gt;
  y        : LongInt;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  {first check if the in-built delay can be used}&lt;br /&gt;
  if DelayCounter &amp;lt; 1 then Delay(ms)&lt;br /&gt;
  else begin&lt;br /&gt;
    c := WORD(DelayCounter AND $FFFF);&lt;br /&gt;
    for x := 1 to ms do&lt;br /&gt;
    begin&lt;br /&gt;
      for y := 1 to DelayCounter do&lt;br /&gt;
      begin&lt;br /&gt;
        a := b div c;&lt;br /&gt;
        inc(b);&lt;br /&gt;
      end;{for}&lt;br /&gt;
    end;{for x}&lt;br /&gt;
  end;{if/else}&lt;br /&gt;
end;{procedure}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure usdelayLoop( count : word );&lt;br /&gt;
{creates a delay of count x 125 microseconds (once calibrated) by running&lt;br /&gt;
 some DIV instructions}&lt;br /&gt;
var&lt;br /&gt;
  a, b, c  : word;&lt;br /&gt;
  x	   : word;&lt;br /&gt;
  y, ShortWait : LongInt;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  c := WORD(DelayCounter AND $FFFF);&lt;br /&gt;
  ShortWait := DelayCounter SHR 3; {ms to 125us}&lt;br /&gt;
  for x := 1 to count do&lt;br /&gt;
  begin&lt;br /&gt;
    for y := 1 to ShortWait do&lt;br /&gt;
    begin&lt;br /&gt;
      a := b div c;&lt;br /&gt;
      inc(b);&lt;br /&gt;
    end;{for}&lt;br /&gt;
  end;{for x}&lt;br /&gt;
end;{procedure}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function test_delay : byte;&lt;br /&gt;
var&lt;br /&gt;
  interval : longint;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  start_clock;&lt;br /&gt;
  delayLoop(110); {testing for 110ms delay}&lt;br /&gt;
  interval := stop_clock;&lt;br /&gt;
  if interval &amp;lt; 110 then test_delay := RES_UNDER&lt;br /&gt;
  else if interval &amp;gt; 110 then test_delay := RES_OVER&lt;br /&gt;
  else test_delay := RES_OK;&lt;br /&gt;
end;{function test_delay}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure calibrate_delay;&lt;br /&gt;
var&lt;br /&gt;
  res       :  byte;&lt;br /&gt;
  interval  :  LongInt;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  {first check if the in-built delay procedure can be used.  Otherwise&lt;br /&gt;
   an XT will take a long time calibrating, for no purpose}&lt;br /&gt;
  start_clock;&lt;br /&gt;
  delayLoop(110); {testing for 110ms delay}&lt;br /&gt;
  interval := stop_clock;&lt;br /&gt;
{  if interval = 110 then&lt;br /&gt;
    DelayCounter := -1 {built-in procedure will be used}&lt;br /&gt;
{  else}&lt;br /&gt;
  begin&lt;br /&gt;
    {calibration required.}&lt;br /&gt;
    {div is c.80 clocks on an 8088 =&amp;gt; ~60 divs per ms}&lt;br /&gt;
    DelayCounter := 30;&lt;br /&gt;
    res := RES_UNDER;&lt;br /&gt;
    while res &amp;lt;&amp;gt; RES_OK do&lt;br /&gt;
    begin&lt;br /&gt;
      res := test_delay;&lt;br /&gt;
      if DelayCounter &amp;gt;= $40000000 then&lt;br /&gt;
      begin&lt;br /&gt;
        {we can&#039;t calibrate properly as we&#039;re about to overflow}&lt;br /&gt;
        RES := RES_OK; {end the loop}&lt;br /&gt;
        DelayCounter := $7FFFFFFF; {maximum value as it&#039;s signed}&lt;br /&gt;
      end else&lt;br /&gt;
      begin&lt;br /&gt;
        if res = RES_UNDER then DelayCounter := DelayCounter * 2; {we need more delay}&lt;br /&gt;
        if res = RES_OVER then DelayCounter := DelayCounter * 2 div 3; {we&#039;ve overshot}&lt;br /&gt;
      end;{if/else}&lt;br /&gt;
    end;{while}&lt;br /&gt;
  end;{if interval/else}&lt;br /&gt;
end;{procedure calibrate_delay}&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
function HexToWord( s : string ) : word;&lt;br /&gt;
{converts the hex represented by the string, to a WORD}&lt;br /&gt;
var&lt;br /&gt;
  i     :  Byte;&lt;br /&gt;
  Wd    :  Word;&lt;br /&gt;
  Digit :  Byte;&lt;br /&gt;
  Error :  Boolean;&lt;br /&gt;
begin&lt;br /&gt;
  Wd := 0; Error := False;&lt;br /&gt;
  if (length(s) &amp;lt;= 4) then begin&lt;br /&gt;
    for i := 1 to length(s) do begin&lt;br /&gt;
      case s[i] of&lt;br /&gt;
        &#039;0&#039;..&#039;9&#039; : Digit := BYTE(s[i]) - 48;&lt;br /&gt;
        &#039;A&#039;..&#039;F&#039; : Digit := 10 + (BYTE(s[i]) - 65);&lt;br /&gt;
        &#039;a&#039;..&#039;f&#039; : Digit := 10 + (BYTE(s[i]) - 97);&lt;br /&gt;
      else Error := True;&lt;br /&gt;
      end;{case}&lt;br /&gt;
      if Error then i := length(s)&lt;br /&gt;
      else Wd := (Wd SHL 4) + Digit;&lt;br /&gt;
    end;{for}&lt;br /&gt;
  end;{if}&lt;br /&gt;
  if Error then HexToWord := 0&lt;br /&gt;
  else HexToWord := Wd;&lt;br /&gt;
end;{function HexToWord}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function WordToHex( Wd : word ) : string;&lt;br /&gt;
{converts a word to ASCII hex}&lt;br /&gt;
var&lt;br /&gt;
  Digit, i   :  Byte;&lt;br /&gt;
  AsciiDigit :  Char;&lt;br /&gt;
  s          :  string;&lt;br /&gt;
begin&lt;br /&gt;
  BYTE(s[0]) := 4; {set string length}&lt;br /&gt;
  for i := 4 downto 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    {get the low 4 bits of Wd to Digit, and SHR Wd 4}&lt;br /&gt;
    asm&lt;br /&gt;
      mov    ax, Wd&lt;br /&gt;
      mov    bx, ax&lt;br /&gt;
      and    bl, $0F&lt;br /&gt;
      cmp    bl, 10&lt;br /&gt;
      jb     @ZeroToNine&lt;br /&gt;
      add    bl, 17&lt;br /&gt;
      @ZeroToNine:&lt;br /&gt;
      add    bl, 48&lt;br /&gt;
      mov    AsciiDigit, bl&lt;br /&gt;
      shr    ax, 1&lt;br /&gt;
      shr    ax, 1&lt;br /&gt;
      shr    ax, 1&lt;br /&gt;
      shr    ax, 1&lt;br /&gt;
      mov    Wd, ax&lt;br /&gt;
    end;{asm}&lt;br /&gt;
    s[i] := AsciiDigit;&lt;br /&gt;
  end;{for i}&lt;br /&gt;
  WordToHex := s;&lt;br /&gt;
end;{function WordToHex}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function Caps( s : string ) : string;&lt;br /&gt;
{returns string capitalised}&lt;br /&gt;
var&lt;br /&gt;
  i       : byte;&lt;br /&gt;
  tempstr : string;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  BYTE(TempStr[0]) := BYTE(s[0]); {set length}&lt;br /&gt;
  for i := 1 to 255 do&lt;br /&gt;
    TempStr[i] := UpCase(s[i]); {copy all chars}&lt;br /&gt;
  Caps := TempStr;&lt;br /&gt;
end;{function Caps}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function FlashType( baseaddr : word ) : Boolean;&lt;br /&gt;
{Attempts to determine flash chip type from supported types.&lt;br /&gt;
 Returns FLASH_OK if determined properly, FLASH_ERROR otherwise.&lt;br /&gt;
 Result itself is stored in global variable ChipType}&lt;br /&gt;
var&lt;br /&gt;
  Location  : ^byte;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  ChipType := CHIP_UNKNOWN;&lt;br /&gt;
&lt;br /&gt;
  {First check for SST39SF chips}&lt;br /&gt;
  {ChipID routine entry...}&lt;br /&gt;
  Location := ptr( baseaddr, $5555 );&lt;br /&gt;
  Location^ := $AA;&lt;br /&gt;
  Location := ptr( baseaddr, $2AAA );&lt;br /&gt;
  Location^ := $55;&lt;br /&gt;
  Location := ptr( baseaddr, $5555 );&lt;br /&gt;
  Location^ := $90;&lt;br /&gt;
&lt;br /&gt;
  {check what&#039;s there}&lt;br /&gt;
  {v1.3 - added 125uS delay, required by SST29EE010 before polling chip ID}&lt;br /&gt;
  usdelayLoop(1);&lt;br /&gt;
&lt;br /&gt;
  Location := ptr( baseaddr, 0 );&lt;br /&gt;
  If Location^ = $BF then&lt;br /&gt;
  begin&lt;br /&gt;
    Location := ptr( baseaddr, 1 );&lt;br /&gt;
    case Location^ of&lt;br /&gt;
      $07 : ChipType := SST29EE010;&lt;br /&gt;
      $08 : ChipType := SST29LE010;&lt;br /&gt;
      $B4 : ChipType := SST512Kb;&lt;br /&gt;
      $B5 : ChipType := SST1Mb;&lt;br /&gt;
      $B6 : ChipType := SST2Mb;&lt;br /&gt;
      $B7 : ChipType := SST4Mb;&lt;br /&gt;
    end; {case}&lt;br /&gt;
    {Exit ChipID routine...}&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AAA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $F0;&lt;br /&gt;
    usdelayLoop(1); {125uS delay; required by SST29EE010}&lt;br /&gt;
  end {if SST chip detected}&lt;br /&gt;
  else&lt;br /&gt;
  begin&lt;br /&gt;
    {SST not detected; check now for AMIC A29010}&lt;br /&gt;
    {Autoselect mode routine entry...}&lt;br /&gt;
    Location := ptr( baseaddr, $555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $555 );&lt;br /&gt;
    Location^ := $90;&lt;br /&gt;
    &lt;br /&gt;
    {check what&#039;s there}&lt;br /&gt;
    Location := ptr( baseaddr, 0 );&lt;br /&gt;
    If Location^ = $37 then&lt;br /&gt;
    begin&lt;br /&gt;
      Location := ptr( baseaddr, 1 );&lt;br /&gt;
      case Location^ of&lt;br /&gt;
        $A4 : ChipType := AMIC1Mb;&lt;br /&gt;
      end;{case}&lt;br /&gt;
      {Exit Autoselect mode by issuing reset...}&lt;br /&gt;
      Location^ := $F0;&lt;br /&gt;
    end;{if AMIC chip detected}&lt;br /&gt;
  end;{if/else}&lt;br /&gt;
&lt;br /&gt;
  {return result}&lt;br /&gt;
  If ChipType = CHIP_UNKNOWN then&lt;br /&gt;
    FlashType := FLASH_ERROR&lt;br /&gt;
  else&lt;br /&gt;
    FlashType := FLASH_OK;&lt;br /&gt;
end;{function FlashType}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function eraseChip( baseaddr : word ) : boolean;&lt;br /&gt;
{erases the entire chip; returns FLASH_OK if successful}&lt;br /&gt;
var&lt;br /&gt;
  Location   : ^byte;&lt;br /&gt;
  DQ7        : Byte;&lt;br /&gt;
  Done       : Boolean;&lt;br /&gt;
  Error      : Boolean;&lt;br /&gt;
  LoopCount,&lt;br /&gt;
  LoopMax    : Word;&lt;br /&gt;
  DivRes     : Byte;&lt;br /&gt;
  lastToggle,&lt;br /&gt;
  thisToggle : Byte;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  {Route depends on the chip type}&lt;br /&gt;
  If (ChipType = AMIC1Mb) or (ChipType = CHIP_UNKNOWN) then&lt;br /&gt;
  begin&lt;br /&gt;
    {AMIC A29010 erase command sequence}&lt;br /&gt;
    Location := ptr( baseaddr, $555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $555 );&lt;br /&gt;
    Location^ := $80;&lt;br /&gt;
    Location := ptr( baseaddr, $555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $555 );&lt;br /&gt;
    Location^ := $10;&lt;br /&gt;
    LoopMax := 1875; {set timeout to 75s (1875 x 40ms)}&lt;br /&gt;
  end else begin&lt;br /&gt;
    {SST39SF and SST29xx erase command code...}&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AAA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $80;&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AAA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $10;&lt;br /&gt;
    LoopMax := 25; {set timeout to 1s (25 x 40ms)}&lt;br /&gt;
  end;{Chip specific erase command entry select}&lt;br /&gt;
&lt;br /&gt;
  {then wait}&lt;br /&gt;
  Done := False;&lt;br /&gt;
  Error := False;&lt;br /&gt;
  LoopCount := 0;&lt;br /&gt;
  Location := ptr( baseaddr, 0 ); {we&#039;ll poll address 0 to check when done}&lt;br /&gt;
&lt;br /&gt;
  if (ChipType = SST29EE010) or (ChipType = SST29LE010) then&lt;br /&gt;
  begin&lt;br /&gt;
    usDelayLoop(2); {250uS delay before we can poll}&lt;br /&gt;
    {SST29xE010 provides a busy toggle bit (DQ6) that must be polled}&lt;br /&gt;
    lastToggle := Location^ AND $80; {get DQ6 from device}&lt;br /&gt;
    while (not done) and (not error) do&lt;br /&gt;
    begin&lt;br /&gt;
      inc(LoopCount);&lt;br /&gt;
      delayLoop(40); {40ms delay}&lt;br /&gt;
      thisToggle := Location^ AND $80; {get DQ6 from device}&lt;br /&gt;
      if (thisToggle = lastToggle) then Done := true;&lt;br /&gt;
      lastToggle := thisToggle;&lt;br /&gt;
      if LoopCount mod 100 = 0 then write(&#039;.&#039;); {provide an indication things are still running}&lt;br /&gt;
      if (LoopCount = LoopMax) or KeyPressed then Error := true; {trap timeout based on chip type}&lt;br /&gt;
    end;{while}&lt;br /&gt;
    if (Done) then begin&lt;br /&gt;
      {erase seemed to succeed, so enable SDP}&lt;br /&gt;
      Location := ptr( baseaddr, $5555 );&lt;br /&gt;
      Location^ := $AA;&lt;br /&gt;
      Location := ptr( baseaddr, $2AAA );&lt;br /&gt;
      Location^ := $55;&lt;br /&gt;
      Location := ptr( baseaddr, $5555 );&lt;br /&gt;
      Location^ := $A0;&lt;br /&gt;
    end;{enable SDP}&lt;br /&gt;
  end else begin&lt;br /&gt;
    {other chips are handled with data polling}&lt;br /&gt;
    while (not done) and (not error) do&lt;br /&gt;
    begin&lt;br /&gt;
      inc(LoopCount);&lt;br /&gt;
      delayLoop(40); {40ms delay}&lt;br /&gt;
      if Location^ = $FF then Done := true;&lt;br /&gt;
      if LoopCount mod 100 = 0 then write(&#039;.&#039;); {provide an indication things are still running}&lt;br /&gt;
      if (LoopCount = LoopMax) or KeyPressed then Error := true; {trap timeout based on chip type}&lt;br /&gt;
    end;{while}&lt;br /&gt;
  end;{if/else}&lt;br /&gt;
&lt;br /&gt;
  If Error then&lt;br /&gt;
  begin&lt;br /&gt;
    If KeyPressed then write(&#039;Interrupted by keypress.&#039;)&lt;br /&gt;
    else begin&lt;br /&gt;
      WriteLn(&#039;** Timeout **&#039;);&lt;br /&gt;
      Write(&#039;Expected FFh, but found &#039;,WordToHex(Location^),&#039;h.&#039;);&lt;br /&gt;
    end;{else}&lt;br /&gt;
    eraseChip := FLASH_ERROR;&lt;br /&gt;
  end else eraseChip := FLASH_OK;&lt;br /&gt;
end;{function eraseChip}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function writeByte( baseaddr : word; offset : word; b : byte ) : BOOLEAN;&lt;br /&gt;
{writes byte b to baseaddr:offset, returns FLASH_OK if successful}&lt;br /&gt;
var&lt;br /&gt;
  Location   : ^byte;&lt;br /&gt;
  DQ7        : Byte;&lt;br /&gt;
  Done       : Boolean;&lt;br /&gt;
  Error      : Boolean;&lt;br /&gt;
  DivRes     : byte;&lt;br /&gt;
  usDelay,&lt;br /&gt;
  LoopCount,&lt;br /&gt;
  LoopMax    : Word;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  {Routine depends on the chip type}&lt;br /&gt;
  If (ChipType = AMIC1Mb) or (ChipType = CHIP_UNKNOWN) then&lt;br /&gt;
  begin&lt;br /&gt;
    {AMIC A29010 erase command sequence}&lt;br /&gt;
    Location := ptr( baseaddr, $555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $555 );&lt;br /&gt;
    Location^ := $A0;&lt;br /&gt;
    Location := ptr( baseaddr, offset );&lt;br /&gt;
    Location^ := b;&lt;br /&gt;
    usDelay := 1; {1 = 125us delay per byte}&lt;br /&gt;
    LoopMax := 3; {timeout after 375us (3x125)}&lt;br /&gt;
  end else begin&lt;br /&gt;
    {SST39SF byte program command sequence}&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AAA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $A0;&lt;br /&gt;
    Location := ptr( baseaddr, offset );&lt;br /&gt;
    Location^ := b;&lt;br /&gt;
    usDelay := 1; {1 = 125us delay per byte}&lt;br /&gt;
    LoopMax := 2; {timeout after 250us (2x125)}&lt;br /&gt;
  end;{if/else}&lt;br /&gt;
&lt;br /&gt;
  {then wait}&lt;br /&gt;
  Done := False;&lt;br /&gt;
  Error := False;&lt;br /&gt;
  LoopCount := 0;&lt;br /&gt;
  while (not done) and (not error) do&lt;br /&gt;
  begin&lt;br /&gt;
    inc(LoopCount);&lt;br /&gt;
    usdelayLoop(usDelay);&lt;br /&gt;
    if Location^ = b then Done := true;&lt;br /&gt;
    if (LoopCount = LoopMax) or KeyPressed then Error := true;&lt;br /&gt;
  end;{while}&lt;br /&gt;
&lt;br /&gt;
  If Error then writeByte := FLASH_ERROR&lt;br /&gt;
  else writeByte := FLASH_OK;&lt;br /&gt;
end;{function writeByte}&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
function writePage( baseaddr, pageaddr : word; var PageData : PByte ) : BOOLEAN;&lt;br /&gt;
{writes a 128 byte page to the device, returns FLASH_OK if successful}&lt;br /&gt;
{baseaddr = ROM chip base address&lt;br /&gt;
 pageaddr = offset of page to be programmed (0, 128, 256...)&lt;br /&gt;
 pagedata = pointer to 128 bytes of data to be programmed.}&lt;br /&gt;
var&lt;br /&gt;
  Location   : ^byte;&lt;br /&gt;
  DQ7        : Byte;&lt;br /&gt;
  Done       : Boolean;&lt;br /&gt;
  Error      : Boolean;&lt;br /&gt;
  DivRes     : byte;&lt;br /&gt;
  usDelay,&lt;br /&gt;
  LoopCount,&lt;br /&gt;
  LoopMax    : Word;&lt;br /&gt;
  i          : byte;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Error := True;&lt;br /&gt;
  {Routine depends on the chip type}&lt;br /&gt;
  if (ChipType = SST29EE010) or (ChipType = SST29LE010) then&lt;br /&gt;
  begin&lt;br /&gt;
    Location := ptr( baseaddr, 0 );&lt;br /&gt;
    asm cli end; {clear interrupts - each bytes has to be sent within 100uS}&lt;br /&gt;
    {SST29xE page SDP unlock sequence}&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $AA;&lt;br /&gt;
    Location := ptr( baseaddr, $2AAA );&lt;br /&gt;
    Location^ := $55;&lt;br /&gt;
    Location := ptr( baseaddr, $5555 );&lt;br /&gt;
    Location^ := $A0;&lt;br /&gt;
&lt;br /&gt;
    {device should now (immediately) accept 128 bytes of data}&lt;br /&gt;
    Location := ptr( baseaddr, pageaddr );&lt;br /&gt;
    for i := 1 to 128 do&lt;br /&gt;
    begin&lt;br /&gt;
      Location^ := PageData^;&lt;br /&gt;
      inc(Location);&lt;br /&gt;
      inc(PageData);&lt;br /&gt;
    end;{for}&lt;br /&gt;
&lt;br /&gt;
    {data sent to buffer - now wait for data to be ingested}&lt;br /&gt;
    asm sti end; {re-enable interupts}&lt;br /&gt;
    usdelayLoop(2); {250uS delay before we can check}&lt;br /&gt;
&lt;br /&gt;
    {then wait}&lt;br /&gt;
    Done := False;&lt;br /&gt;
    Error := False;&lt;br /&gt;
    LoopCount := 0;&lt;br /&gt;
    usDelay := 4; {4 = 500us delay per byte}&lt;br /&gt;
    LoopMax := 20; {timeout after 10ms (20 x 500us)}&lt;br /&gt;
&lt;br /&gt;
    while (not done) and (not error) do&lt;br /&gt;
    begin&lt;br /&gt;
      inc(LoopCount);&lt;br /&gt;
      usdelayLoop(usDelay);&lt;br /&gt;
      if Location^ = PageData^ then Done := true;&lt;br /&gt;
      if (LoopCount = LoopMax) or KeyPressed then Error := true;&lt;br /&gt;
    end;{while}&lt;br /&gt;
&lt;br /&gt;
  end;{if/else}&lt;br /&gt;
  If Error then writePage := FLASH_ERROR&lt;br /&gt;
  else writePage := FLASH_OK;&lt;br /&gt;
end;{function writePage}&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
procedure FlashChip( imagefile, baseaddr : string );&lt;br /&gt;
{called once parameters are validated; this does the work!}&lt;br /&gt;
{$R- disable range checking, as the ROM is directly accessed and could be&lt;br /&gt;
     64K exactly}&lt;br /&gt;
type&lt;br /&gt;
  TRomImage   =  array[0..31767] of byte;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  RomImage1,&lt;br /&gt;
  RomImage2   :  ^TRomImage;&lt;br /&gt;
  Rom         :  ^TRomImage; {used to compare}&lt;br /&gt;
  CurrentPage :  PByte;&lt;br /&gt;
  RomFile     :  File;&lt;br /&gt;
  BytesRead   :  Longint;&lt;br /&gt;
  BytesRead1,&lt;br /&gt;
  BytesRead2,&lt;br /&gt;
  CurrentPos  :  word;&lt;br /&gt;
  Res         :  Integer;&lt;br /&gt;
  RomBaseAddr :  word;&lt;br /&gt;
  Error       :  Boolean;&lt;br /&gt;
  X, Y        :  Byte;&lt;br /&gt;
  UpdateInt   :  word;&lt;br /&gt;
  UpdateCount :  word;&lt;br /&gt;
  Percent     :  Byte;&lt;br /&gt;
  Ch          :  Char;&lt;br /&gt;
  CurrentByte :  Byte;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  {load the ROM image file}&lt;br /&gt;
  write(&#039;Opening ROM image... &#039;);&lt;br /&gt;
  new(RomImage1); new(RomImage2);&lt;br /&gt;
  assign(RomFile,imagefile);&lt;br /&gt;
  {$I- disable IO error checking}&lt;br /&gt;
  reset(RomFile,1);&lt;br /&gt;
  {$I+ }&lt;br /&gt;
  if IOResult &amp;lt;&amp;gt; 0 then&lt;br /&gt;
  begin&lt;br /&gt;
    WriteLn(&#039;Unable to open file.&#039;);&lt;br /&gt;
    Exit;&lt;br /&gt;
  end;{if}&lt;br /&gt;
  if (FileSize(RomFile) &amp;lt; 2048) or (FileSize(RomFile) &amp;gt; 65536) then&lt;br /&gt;
  begin&lt;br /&gt;
    {ROM file too small or too large}&lt;br /&gt;
    WriteLn(&#039;ROM file must be between 2 and 64K.&#039;);&lt;br /&gt;
    Close(RomFile);&lt;br /&gt;
    Exit;&lt;br /&gt;
  end else WriteLn(&#039;OK&#039;);&lt;br /&gt;
&lt;br /&gt;
  {get chip base address}&lt;br /&gt;
  RomBaseAddr := HexToWord( baseaddr ); {starting location of ROM}&lt;br /&gt;
&lt;br /&gt;
  {Display detected flash type}&lt;br /&gt;
  If FlashType(RomBaseAddr) = FLASH_OK then&lt;br /&gt;
    WriteLn( &#039;Detected &#039;, ChipType, &#039; Flash Chip at &#039;, baseaddr, &#039;h&#039; )&lt;br /&gt;
  else&lt;br /&gt;
    WriteLn( &#039;Unable to determine flash chip type.  Attempting JDEC programming.&#039;);&lt;br /&gt;
&lt;br /&gt;
  {read the file}&lt;br /&gt;
  Write(&#039;Reading... &#039;);&lt;br /&gt;
  BytesRead2 := 0;&lt;br /&gt;
  BlockRead(RomFile,RomImage1^,32768,BytesRead1);&lt;br /&gt;
  if not EoF(RomFile) then&lt;br /&gt;
    BlockRead(RomFile,RomImage2^,32768,BytesRead2);&lt;br /&gt;
  BytesRead := Longint(BytesRead1) + Longint(BytesRead2);&lt;br /&gt;
  WriteLn( BytesRead, &#039; bytes read OK.&#039;);&lt;br /&gt;
  Close(RomFile);&lt;br /&gt;
&lt;br /&gt;
  {erase the chip}&lt;br /&gt;
  Write(&#039;Erasing &#039; );&lt;br /&gt;
  if (eraseChip(RomBaseAddr) = FLASH_OK) then&lt;br /&gt;
  begin&lt;br /&gt;
    {erase was successful; write out new code}&lt;br /&gt;
    writeLn(&#039;OK&#039;);&lt;br /&gt;
    Error := False;&lt;br /&gt;
&lt;br /&gt;
    If BytesRead &amp;gt; 0 then&lt;br /&gt;
    begin&lt;br /&gt;
      WriteLn(&#039;Programming... &#039;);&lt;br /&gt;
      UpdateCount := 0;&lt;br /&gt;
      Percent := 0;&lt;br /&gt;
      X := WhereX;&lt;br /&gt;
      Y := WhereY;&lt;br /&gt;
      write( &#039;0%&#039; );&lt;br /&gt;
&lt;br /&gt;
      if (ChipType = SST29EE010) or (ChipType = SST29LE010) then&lt;br /&gt;
      begin&lt;br /&gt;
        {page-mode programming}&lt;br /&gt;
        while CurrentPos &amp;lt; Pred(BytesRead) do&lt;br /&gt;
        begin&lt;br /&gt;
          if CurrentPos &amp;lt; 32768 then&lt;br /&gt;
            CurrentPage := Addr(RomImage1^[CurrentPos])&lt;br /&gt;
          else&lt;br /&gt;
            CurrentPage := Addr(RomImage2^[CurrentPos-32768]);&lt;br /&gt;
          if (writePage(RomBaseAddr,CurrentPos,CurrentPage) = FLASH_ERROR) then&lt;br /&gt;
          begin&lt;br /&gt;
            GotoXY(X,Y);&lt;br /&gt;
            Writeln(&#039;Failed writing at page &#039;,(CurrentPos div 128));&lt;br /&gt;
            CurrentPos := Pred(BytesRead); {terminate loop}&lt;br /&gt;
            Error := TRUE; {record error state}&lt;br /&gt;
          end else begin&lt;br /&gt;
            {programming that page succeeded - update screen and counters}&lt;br /&gt;
            CurrentPos := CurrentPos + 128; {advance to the next page}&lt;br /&gt;
            Percent    := (CurrentPos*100) div BytesRead;&lt;br /&gt;
            GotoXY(X,Y);&lt;br /&gt;
            write(Percent,&#039;%&#039;);&lt;br /&gt;
          end;{if (writePage...}&lt;br /&gt;
        end;{while}&lt;br /&gt;
      end else begin&lt;br /&gt;
        {byte-mode programming}&lt;br /&gt;
        UpdateInt := BytesRead div 100;&lt;br /&gt;
        for CurrentPos := 0 to Pred(BytesRead) do&lt;br /&gt;
        begin&lt;br /&gt;
          inc(UpdateCount);&lt;br /&gt;
          if (UpdateCount = UpdateInt) then&lt;br /&gt;
          begin&lt;br /&gt;
            {update percentage displayed on-screen}&lt;br /&gt;
            GotoXY(X,Y);&lt;br /&gt;
            inc(Percent);&lt;br /&gt;
            write(Percent,&#039;%&#039;);&lt;br /&gt;
            UpdateCount := 0;&lt;br /&gt;
          end;{screen update}&lt;br /&gt;
          if CurrentPos &amp;lt; 32768 then&lt;br /&gt;
            CurrentByte := RomImage1^[CurrentPos]&lt;br /&gt;
          else&lt;br /&gt;
            CurrentByte := RomImage2^[CurrentPos-32768];&lt;br /&gt;
          if (writeByte(RomBaseAddr,CurrentPos,CurrentByte) = FLASH_ERROR) then&lt;br /&gt;
          begin&lt;br /&gt;
            GotoXY(X,Y);&lt;br /&gt;
            Writeln(&#039;Failed writing at byte &#039;,CurrentPos);&lt;br /&gt;
            CurrentPos := Pred(BytesRead); {terminate loop}&lt;br /&gt;
            Error := TRUE; {record error state}&lt;br /&gt;
          end;{if}&lt;br /&gt;
        end;{for}&lt;br /&gt;
      end;{if ChipType.../else}&lt;br /&gt;
&lt;br /&gt;
      if Not Error then begin&lt;br /&gt;
        {write was OK; now check what&#039;s there}&lt;br /&gt;
        GotoXY(X,Y);&lt;br /&gt;
        WriteLn(&#039;OK  &#039;);&lt;br /&gt;
        Write(&#039;Comparing... &#039;);&lt;br /&gt;
        Rom := Ptr( RomBaseAddr, 0 ); {access the ROM directly}&lt;br /&gt;
        for CurrentPos := 0 to Pred(BytesRead) do&lt;br /&gt;
        begin&lt;br /&gt;
          if CurrentPos &amp;lt; 32768 then&lt;br /&gt;
            CurrentByte := RomImage1^[CurrentPos]&lt;br /&gt;
          else&lt;br /&gt;
            CurrentByte := RomImage2^[CurrentPos-32768];&lt;br /&gt;
          if Rom^[CurrentPos] &amp;lt;&amp;gt; CurrentByte then&lt;br /&gt;
          begin&lt;br /&gt;
            Error := True;&lt;br /&gt;
            WriteLn(&#039;Error at offset &#039;, WordToHex(CurrentPos), &#039;h&#039;);&lt;br /&gt;
            CurrentPos := Pred(BytesRead);&lt;br /&gt;
          end;{if}&lt;br /&gt;
        end;{for}&lt;br /&gt;
        If Not Error then WriteLn(&#039;OK!&#039;);&lt;br /&gt;
      end;{if not error / else}&lt;br /&gt;
    end;{if BytesRead &amp;gt; 0}&lt;br /&gt;
  end {if eraseChip}&lt;br /&gt;
  else&lt;br /&gt;
    {chip erase failed}&lt;br /&gt;
    WriteLn(&#039;Erase operation FAILED.&#039;);&lt;br /&gt;
  Dispose(RomImage1); Dispose(RomImage2);&lt;br /&gt;
end;{procedure FlashChip}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function BaseOK( s : string ) : Boolean;&lt;br /&gt;
{checks that the base address i:&lt;br /&gt;
  - in the correct range, A000 - F000&lt;br /&gt;
  - 4K aligned&lt;br /&gt;
}&lt;br /&gt;
var&lt;br /&gt;
  BaseAddr : Word;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  BaseAddr := HexToWord( s );&lt;br /&gt;
  if ((BaseAddr AND $FF) = 0) and (BaseAddr &amp;gt;= $A000) and&lt;br /&gt;
     (BaseAddr &amp;lt;= $F000) then&lt;br /&gt;
    BaseOK := True&lt;br /&gt;
  else&lt;br /&gt;
    BaseOK := False;&lt;br /&gt;
end;{function BaseOK}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function ParamSpecified(s : string) : boolean;&lt;br /&gt;
{checks all command line arguments for s, returning true if found}&lt;br /&gt;
var i : word; found : boolean;&lt;br /&gt;
begin&lt;br /&gt;
  found := false;&lt;br /&gt;
  for i := 1 to ParamCount do&lt;br /&gt;
    if Copy(ParamStr(i),1,Length(s)) = s then found := true;&lt;br /&gt;
  ParamSpecified := found;&lt;br /&gt;
end;{function ParamSpecified}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Function ParamsOK( P1, P2 : string ) : Boolean;&lt;br /&gt;
{checks parameters, returns true if look OK}&lt;br /&gt;
var&lt;br /&gt;
  f : file;&lt;br /&gt;
  OK  :  Boolean;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  OK := True;&lt;br /&gt;
  assign(f,P1);&lt;br /&gt;
  {$i- } reset(f); {$i+ }&lt;br /&gt;
  if IOResult &amp;lt;&amp;gt; 0 then begin&lt;br /&gt;
    OK := False;&lt;br /&gt;
    WriteLn(&#039;Couldn&#039;&#039;t open file &#039;, P1, &#039;.&#039;);&lt;br /&gt;
  end else begin&lt;br /&gt;
    {found file OK}&lt;br /&gt;
    close(f);&lt;br /&gt;
    if not BaseOK(P2) then OK := False;&lt;br /&gt;
  end;&lt;br /&gt;
  if OK then&lt;br /&gt;
  begin&lt;br /&gt;
    {parameters suggest we&#039;re good to go - calibrate the timing loops}&lt;br /&gt;
    write(&#039;Calibrating delay loops...&#039;);&lt;br /&gt;
    calibrate_delay;&lt;br /&gt;
    writeLn(&#039; calibration factor is &#039;, DelayCounter, &#039;.&#039;);&lt;br /&gt;
  end;{if OK}&lt;br /&gt;
  ParamsOK := OK;&lt;br /&gt;
end;{function ParamsOK}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Procedure DisplayHelp;&lt;br /&gt;
begin&lt;br /&gt;
  WriteLn(&#039;Supports SST 29xE010/39SF0x0, and AMIC A29010 flash chips.&#039;);&lt;br /&gt;
  WriteLn;&lt;br /&gt;
  WriteLn(&#039;Usage:&#039;);&lt;br /&gt;
  WriteLn;&lt;br /&gt;
  WriteLn(&#039;Write an image file to the ROM.  The ROM is completely&#039;);&lt;br /&gt;
  WriteLn(&#039;erased, then the file copied.  Can be used with ROMs&#039;);&lt;br /&gt;
  WriteLn(&#039;between 2KB and 64KB. Note: Checksum is not calculated.&#039;);&lt;br /&gt;
  WriteLn;&lt;br /&gt;
  WriteLn(&#039;eg: flash [image-file] [base-address]&#039;);&lt;br /&gt;
  WriteLn;&lt;br /&gt;
  WriteLn(&#039;  [image-file]   - ROM image, i.e. xtide.bin&#039;);&lt;br /&gt;
  WriteLn(&#039;  [base-address] - hex ROM window base address, i.e. D000&#039;);&lt;br /&gt;
  WriteLn(&#039;                   must be A000-F800&#039;);&lt;br /&gt;
  WriteLn;&lt;br /&gt;
end;{procedure DisplayHelp}&lt;br /&gt;
&lt;br /&gt;
var Ch : Char;&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
  WriteLn(&#039;Lo-tech XT-CF and 8-bit ROM Board Flash Programmer, version &#039;,VERSION);&lt;br /&gt;
  If ParamsOK( ParamStr(1), ParamStr(2) ) then&lt;br /&gt;
  begin&lt;br /&gt;
    FlashChip( ParamStr(1), ParamStr(2) );&lt;br /&gt;
    WriteLn;&lt;br /&gt;
    WriteLn(&#039;If BIOS images currently in use have been updated, you MUST&#039;);&lt;br /&gt;
    WriteLn(&#039;now reboot.&#039;);&lt;br /&gt;
    WriteLn;&lt;br /&gt;
    Write(&#039;Press any key to return to DOS, or CTRL-ALT-DEL to restart.&#039;);&lt;br /&gt;
    {clear keyboard buffer, in case user interrupted the process}&lt;br /&gt;
    while keypressed do Ch := ReadKey;&lt;br /&gt;
    {now pause}&lt;br /&gt;
    repeat until keypressed;&lt;br /&gt;
    if keypressed then Ch := Readkey;  &lt;br /&gt;
  end&lt;br /&gt;
  else DisplayHelp;&lt;br /&gt;
END.{program}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_1MB_RAM_Board&amp;diff=1551</id>
		<title>Lo-tech 1MB RAM Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_1MB_RAM_Board&amp;diff=1551"/>
		<updated>2023-01-14T10:07:54Z</updated>

		<summary type="html">&lt;p&gt;James: /* DIP Switch Settings */ Amended to reflect bus contention issue with 5150 16-64KB system board.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-1MB-RAM-Board-assembled-r02.jpg|right|300px|Lo-tech 1MB RAM Board (r02), Assembled]]&lt;br /&gt;
The [[Lo-tech 1MB RAM Board]] is an 8-bit ISA expansion card providing up to 1MB of system RAM to [[IBM Personal Computer 5150|IBM compatible PCs]]. The small form factor makes the board suitable for the [[IBM Portable Computer 5155]].&lt;br /&gt;
&lt;br /&gt;
This board can be purchased online via [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
Revision History:&lt;br /&gt;
&lt;br /&gt;
*R01 - Prototype. See [[Lo-tech 1MB RAM Board (prototype) Resources]].&lt;br /&gt;
*R02 - First production release.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech 1MB RAM Board]] utilises two [{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM chips] to provide 8Mb (=1MB) total RAM capacity, buffered via a 74HCT245 to ensure compatibility with TTL logic levels, on an 8-bit ISA expansion card.&lt;br /&gt;
&lt;br /&gt;
DIP switches enable each 64KB physical page to be independently enabled, so making possible RAM expansion of all systems to the maximum 640KB, regardless of the size of the system board RAM fitted. To extend compatibility further, the first 16KB can be excluded, so providing compatibility with the [[IBM Personal Computer 5150]] when the system board is populated with the minimum 16KB RAM.&lt;br /&gt;
&lt;br /&gt;
The board can also provide [http://en.wikipedia.org/wiki/Upper_memory_area upper memory] (between 640KB and 1MB) that, whilst not generally used by MS-DOS in an XT class machine, can be used for specific purposes such as TSRs, disk cache and print spoolers. Any complete unused physical pages can be populated by the RAM board for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-1MB-RAM-Board-schematic-r02.png&lt;br /&gt;
File:1MB-RAM-Board-r02-Top.png&lt;br /&gt;
File:Lo-tech-1MB-RAM-Board-assembled-r02.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/1MB-RAM-Board/AS6C4008.pdf AS6C4008-55SIN 4Mb static RAM datasheet]&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2013,2014 Peacon Ltd.&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
&lt;br /&gt;
This PCB makes use of SMT components:&lt;br /&gt;
&lt;br /&gt;
*SOIC chips have a pitch of 1.27mm&lt;br /&gt;
*0603 package capacitors and resistors&lt;br /&gt;
&lt;br /&gt;
Assembly requires flux and a temperature controlled soldering station.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|C1..C9 || 0.1uF || X7R Ceramic Capacitor || 0603 || 9 || 1414610 || C0603C104K4RACTU&lt;br /&gt;
|-&lt;br /&gt;
|C10 || 10uF || 16V Electrolytic || E2-5 || 1 || 9451056 || 140-REA100M1CBK0511P&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC2 || - || AS6C4008-55SIN 4Mb SRAM || SOIC-32 || 2 || 1562901 || 913-AS6C4008-55SIN&lt;br /&gt;
|-&lt;br /&gt;
|IC3, IC4 || - || 74HCT138D || SOIC-16 || 2 || 1201307 || 771-74HCT138D-T&lt;br /&gt;
|-&lt;br /&gt;
|IC5, IC6 || - || 74HCT30D || SOIC-20 || 2 || 1085303 || 771-HCT30D652&lt;br /&gt;
|-&lt;br /&gt;
|IC7 || - || 74HCT245DW || SOIC-20 || 1 || 1085315 || 771-74HCT245D&lt;br /&gt;
|-&lt;br /&gt;
|IC8 || - || 74LS05D || SOIC-14 || 1 || 9592164 || 595-SN74LS05D&lt;br /&gt;
|-&lt;br /&gt;
|IC9 || - || 74HCT02D || SOIC-14 || 1 || 1085298 || 595-SN74HCT02D&lt;br /&gt;
|-&lt;br /&gt;
|RN1..RN5 || 10k || RESISTOR, ARRAY-4, 10K, 1206 || 1206 || 5 || 1770137 || 652-CAY16-103J4LF&lt;br /&gt;
|-&lt;br /&gt;
|SW1, SW2 || - || MULTICOMP MCNDS-08-V || DIP-16 || 2 || 9471596 || 774-2068&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
Uses [[Lo-tech_ISA_Slot_Brackets#Type_3|Lo-tech ISA Slot Bracket Type 3]].&lt;br /&gt;
&lt;br /&gt;
== DIP Switch Settings ==&lt;br /&gt;
&lt;br /&gt;
The board is configured via two banks of DIP switches, which control whether each physical segment (=64KB) is active on the memory board.&lt;br /&gt;
&lt;br /&gt;
Switch position ON enables the corresponding page:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Sw1 !!Sw2&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Position !!Page !! Memory Range&lt;br /&gt;
|-&lt;br /&gt;
| 1.1 || 0000h || 0-64KB (16-64KB when Sw2.8 ON)&lt;br /&gt;
|-&lt;br /&gt;
| 1.2 || 1000h || 64-128KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.3 || 2000h || 128-192KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 || 3000h || 192-256KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.5 || 4000h || 256-320KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.6 || 5000h || 320-384KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.7 || 6000h || 384-448KB&lt;br /&gt;
|-&lt;br /&gt;
| 1.8 || 7000h || 448-512KB&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Position !!Page !! Memory Range&lt;br /&gt;
|-&lt;br /&gt;
| 2.1 || 8000h || 512-576KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.2 || 9000h || 576-640KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.3 || A000h || 640-704KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.4 || B000h || 704-768KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.5 || C000h || 768-832KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.6 || D000h || 832-896KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.7 || E000h || 896-960KB&lt;br /&gt;
|-&lt;br /&gt;
| 2.8 || - || Disables 0-16KB (when Sw1.1 ON)&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Note that when used with IBM 5150 16-64KB system board, the system board should be populated with 64KB to avoid bus contention.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech Memory Boards]]&lt;br /&gt;
*[[Lo-tech Memory Board FAQ]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_CompactFlash_Adapter_revision_2b&amp;diff=1550</id>
		<title>Lo-tech ISA CompactFlash Adapter revision 2b</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_CompactFlash_Adapter_revision_2b&amp;diff=1550"/>
		<updated>2022-08-19T07:04:33Z</updated>

		<summary type="html">&lt;p&gt;James: /* BIOS Flashing (Programming) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The [[Lo-tech ISA CompactFlash Adapter revision 2b]] is a bootable storage adapter for IBM PC, PC/XT, PC/AT and compatible hardware - essentially any PC with an ISA slot. The card enables the use of:&lt;br /&gt;
&lt;br /&gt;
*Standard CompactFlash cards, via any low-cost CompactFlash to IDE adapter&lt;br /&gt;
*SD-Cards, via an FC1306T based SD to IDE adapter&lt;br /&gt;
*ATA-2 compliant hard disks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:ISA-CompactFlash-Adapter-PCB-Front-r2b.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-front-assembled.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-back.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-back-assembled.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For help getting this kit running, please see the [[Lo-tech ISA CompactFlash Adapter FAQ]] or [{{SERVER}}/get-in-touch/ Get In touch].&lt;br /&gt;
&lt;br /&gt;
The BIOS ROM on the card enables the host PC to boot from storage presented by the adapter, which appears in DOS as an ordinary fixed disk (i.e. drive C, D, etc). No DOS drivers are needed.&lt;br /&gt;
&lt;br /&gt;
The PCB itself is a through-hole, small form factor 8-bit ISA adapter. No slot bracket is needed, due to the small size. The design provides:&lt;br /&gt;
&lt;br /&gt;
*Bootable storage adapter for 8-bit PCs&lt;br /&gt;
*Ease of home assembly, by use of only through-hole components for basic operation&lt;br /&gt;
*Small form-factor, to enable use in machines with limited expansion slot space such as the Tandy 1000HX, Sinclair PC200 and Amstrad PC-20&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility (with optional SMD components mounted on rear of PCB)&lt;br /&gt;
*5V supply to IDE header key-pin, for cable-less operation of CompactFlash and SD-Card adapters supporting this power option&lt;br /&gt;
*Selectable BIOS address - C800h or D800h&lt;br /&gt;
&lt;br /&gt;
The board is programatically identical to the [[XT-CF-lite]] and uses the [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS], provided through an in-system re-programmable 32KB flash-based ROM. Since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable - the board can therefore function as a universal ROM board.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please note that ATA and SATA hard drives cannot be used with this adapter, except ATA-2 compliant drives. The [[Lo-tech 8-bit IDE Adapter]] is compatible with standard ATA and SATA drives.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To buy this and other PCBs, please visit [{{SERVER}}/shop the lo-tech shop].&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit ISA card with 40-pin IDE header for attachment to:&lt;br /&gt;
**IDE to CompactFlash adapter&lt;br /&gt;
**FC1306T based IDE to SD Card adapter&lt;br /&gt;
**ATA-2 compliant drives&lt;br /&gt;
*5V power supply:&lt;br /&gt;
**to IDE header key-pin (can drive micro-drives, CompactFlash adapters and SD Card adapters without any external power connection)&lt;br /&gt;
**holes for attachment of peripheral power cable (for use where target host has no available peripheral power cables)&lt;br /&gt;
*Basic functionality is dependent only on through-hole components&lt;br /&gt;
*Optional SMT components provide additional functionality:&lt;br /&gt;
**Line driver for external activity LEDs (12mA power budget for external LED)&lt;br /&gt;
**[[IBM Personal Computer XT System Board Slot 8]] compatibility&lt;br /&gt;
*Low-cost flash memory chip for boot ROM, with 32KB usable&lt;br /&gt;
*Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)&lt;br /&gt;
*Utilises [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS] (adapter type: &#039;XT-CF&#039;)&lt;br /&gt;
*Resource requirements:&lt;br /&gt;
**IO ports 300-31Fh&lt;br /&gt;
**ROM: 32KB at C800h or D800h&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-ISA-CompactFlash-Adapter-rev2b-Schematic.png&lt;br /&gt;
File:ISA-CompactFlash-Adapter-PCB-Front-r2b.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-back.JPG&lt;br /&gt;
File:lo-tech-isa-compactflash-adapter-revision-2b-front-assembled.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2013,2016 Peacon Ltd.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
=== Core Components ===&lt;br /&gt;
&lt;br /&gt;
Basic functionality requires only through-hole components. JP2 must be closed, and ROM address will be fixed at C800h.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC3 || 74HCT688N || DIP-20 || 2 || 382504 || 771-74HCT688N&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || SST39SF010A-70-4C-PHE || DIP-32 || 1 || 1896595 || 804-39SF010A7CPHE&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || 74HCT139N || DIP-16 || 1 || 382036 || 595-SN74HCT139N&lt;br /&gt;
|-&lt;br /&gt;
|IC5 || 74HCT245N || DIP-20 || 1 || 9591931 || 595-SN74HCT245N&lt;br /&gt;
|-&lt;br /&gt;
|RN1 || 4-element Isolated Resistor Network, 10k || SIP-8 || 1 || 9356525 || 652-4608X-2LF-10K&lt;br /&gt;
|-&lt;br /&gt;
|C1..5 || 0.1uF Ceramic Capacitor || C025-030X050 || 5 || 2112751 || 581-SR205E104MAR or &amp;lt;br&amp;gt;581-SR205C104KAR&lt;br /&gt;
|-&lt;br /&gt;
|C6 || 10uF Electrolytic Capacitor || E2-5  || 1 || 8767084 || 647-UVR1C100MDD&lt;br /&gt;
|-&lt;br /&gt;
|C8 || 2.2uF Tanalum Capacitor || - || 1 || DNP* || DNP*&lt;br /&gt;
|-&lt;br /&gt;
|HD1 || T821140A1S100CEU || 2x20 Pin Header, 2.54mm spacing || 1 || 2215314 || 517-30340-6002&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP32) || - || DIL32 || 1 || 1654375 || 571-1-2199300-2&amp;lt;br&amp;gt;517-4832-6000-CP&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP20) || - || DIL20 || 3 || 1101349 || 571-1-2199298-6&amp;lt;br&amp;gt;649-DILB20P-223TLF&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP16) || - || DIL16 || 1 || 1101347 || 571-1-2199298-4&amp;lt;br&amp;gt;649-DILB16P-223TLF&lt;br /&gt;
|-&lt;br /&gt;
|JP1, JP2, JP3 || - || 1x2 Pin Header || 3 || 1593411 || 855-M20-9990246&amp;lt;br&amp;gt;653-XG8S-0231&lt;br /&gt;
|-&lt;br /&gt;
| - || - || 2-pin jumper || 2 || 2396301 || 806-SX1100-A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of a range of DIP-32 flash chips (1, 2 or 4Mb):&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/SST/SST39SF0x0.pdf SST39SF0x0A] (SST39SF010A, SST39SF020A, SST39SF040A)&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/AMIC/AMIC-A29010.pdf AMIC A29010]&lt;br /&gt;
**AMIC chips appear to have been discontinued (as as Nov-13)&lt;br /&gt;
*Regardless of the chip used, 32KB is presented at C800h (JP2 closed) or D800h (JP2 open and R4 fitted)&lt;br /&gt;
*DNP = Do Not Populate&lt;br /&gt;
&lt;br /&gt;
=== Enhanced Functionality ===&lt;br /&gt;
&lt;br /&gt;
Additional components are required for:&lt;br /&gt;
&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility (also provides enhanced read performance for PC/AT systems)&lt;br /&gt;
*Device activity LED&lt;br /&gt;
*ROM address selection (C800h/D800h)&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|U1 || SN74LS33D || SOIC-14 || 1 || 1752958 || 595-SN74LS33D&lt;br /&gt;
|-&lt;br /&gt;
|R1, R2, R4 || RESISTOR, 10K, 125MW || 0805 || 3 || 1612522 || 71-CRCW0805J-10K-E3&lt;br /&gt;
|-&lt;br /&gt;
|R3 || RESISTOR, 0.125W 1% 270R || 0805 || 1 || 1652970 || 71-CRCW0805270RJNEA&lt;br /&gt;
|-&lt;br /&gt;
|C7 || CAPACITOR, 0.1UF, 50V || 0805 || 1 || 1612208 || VJ0805V104MXBPW1BC&lt;br /&gt;
|-&lt;br /&gt;
|LED || - || 1x2 Pin Header || 1 || 1593411 || 855-M20-9990246&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that when assembling SMT components, additional flux will also be needed (such as Edsyn FL22, Farnell order code 3059091).&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*JP1: ROM enable (closed = enabled)&lt;br /&gt;
*JP2: ROM Address Selection - closed = C800h, open (and R4 fitted) = D800h&lt;br /&gt;
*JP3: Slot-8/ZWS Function (closed = enabled) - requires SMT components&lt;br /&gt;
&lt;br /&gt;
An external LED can be attached to the 2-pin LED header only if the optional components (on the rear of the PCB) are populated. Current limit for LED is 12mA.&lt;br /&gt;
&lt;br /&gt;
The IO port address (300h - 31Fh) is fixed.&lt;br /&gt;
&lt;br /&gt;
== Build &amp;amp; Test ==&lt;br /&gt;
&lt;br /&gt;
For additional help, please email me via [{{SERVER}}/get-in-touch/ the site blog].&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
This project is available in [{{SERVER}}/shop the Lo-tech store] as [{{SERVER}}/product/lo-tech-isa-compactflash-pcb/ a Bare PCB] - components from the Bill of Materials above must be sourced separately for example from Farnell, Newark, Mouser, DigiKey or other electronic component supplier.  Farnell and Newark part numbers are provided above for convenience.&lt;br /&gt;
&lt;br /&gt;
An appropriate media adapter and storage device must be purchased separately (i.e. and IDE to CompactFlash adapter and a CompactFlash card).&lt;br /&gt;
&lt;br /&gt;
A temperature controlled soldering iron is highly recommended for assembly. Tin-lead solder is generally easier to use than lead-free. A quality syringe flux is also recommended and is essential for the optional SMT parts (see [[SMT Soldering Notes]]). Before construction, the PCB should be cleaned in isopropynol.&lt;br /&gt;
&lt;br /&gt;
=== Construction ===&lt;br /&gt;
&lt;br /&gt;
*Find a suitable work surface with plenty of light.  I find a car-cleaning sponge useful to rest the PCB on since components are held nicely in place under the PCB by the soft surface, which can also be easily turned around as a whole with components not yet soldered&lt;br /&gt;
*Start with the least tall components, so that they are held full in place with the solder side up&lt;br /&gt;
*When soldering IC sockets or ICs, ensure the notches are at the correct end as indicated by the PCB silkscreen&lt;br /&gt;
*If using a shrouded 40-pin header, observe correct orientation as indicated by the silkscreen.  The key pin can be removed from the header with a small pair of thin-nose pliers before placement (though note that the key pin can be used to supply 5V to the required CompactFlash adapter if left in-place)&lt;br /&gt;
*Note the correct orientation of the polarised capacitors C6 and C8. C8 positive leg is closest to C3.&lt;br /&gt;
*Wash all flux residues off once complete using isopropynol (for example with a toothbrush)&lt;br /&gt;
*Check closely with a magnifying glass all joints.  Check especially for bridges between SMT pins&lt;br /&gt;
&lt;br /&gt;
=== BIOS Flashing (Programming) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The following assumes JP2 is closed, providing the ROM at C800h&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*The board is powered by the [[XTIDE Universal BIOS]] and features a 32KB in-system re-programmable flash chip&lt;br /&gt;
*XTIDE Universal BIOS build R560 or newer is recommended (v2 beta 3 is much older)&lt;br /&gt;
**[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/xtide-r566-xt-cf-master-slave.zip Pre-configured BIOS based on R566 - BIOS at C800h]&lt;br /&gt;
**[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/offr566.zip Pre-configured BIOS based on R566 - FFh padded with BIOS at CC00h] - see [[Lo-tech_ISA_CompactFlash_Adapter_FAQ#What_BIOS_does_the_Card_Use.3F|FAQ]] for more information&lt;br /&gt;
*The flash chip is programmed with the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
*Select the appropriate ROM image:&lt;br /&gt;
**IDE_XT.BIN for Intel 8088 and 8086 CPUs&lt;br /&gt;
**IDE_XTP.BIN for NEC V20, V30, and Intel 80286 CPUs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: The late initialisation module in the XTIDE Universal BIOS should only be included in the BIOS build for systems that require this.  The module can cause the BIOS to hang after initialisation on other systems.  The BIOS build above excludes this module.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To program the board, make a DOS boot disk (utilities have been tested on MS-DOS 2.11, 3.3 and 6.22) and add the BIOS binary file and the flash utility.  Install the Lo-tech ISA CompactFlash Adapter in the machine and boot from the floppy, then flash the ROM thus:&lt;br /&gt;
&lt;br /&gt;
 A:\&amp;gt;flash ide_xt.bin c800 &lt;br /&gt;
&lt;br /&gt;
Note that should a board containing the IDE_XTP.BIN image be moved to an Intel 8088/8086 PC, the BIOS image will cause the machine to hang during the POST.  To resolve this, either re-flash the board with the IDE_XT.BIN image before moving, or disable the ROM during the POST via JP1.  JP1 can be closed once the machine has booted, so enabling the ROM for programming (provided there is no other ROM at C800h).&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
In addition to the board configurable options, the XTIDE Universal BIOS provides several transfer modes for [[Lo-tech XT-CF Boards]].  The [[Lo-tech ISA CompactFlash Adapter revision 2]] supports two modes (PIO and BIU), which can be changed on-the-fly with the [[Lo-tech XTCFMODE Utility]].  The default mode, set when the BIOS is initialised (i.e. when the machine is powered-on or rebooted), is set within the BIOS via the XTIDE Universal BIOS &amp;lt;tt&amp;gt;xtidecfg.com&amp;lt;/tt&amp;gt; utility.&lt;br /&gt;
&lt;br /&gt;
Since the transfer mode reverts at every reboot to the mode set in the BIOS, to permanently set the transfer mode it should be configured accordingly within the BIOS.  Alternatively, [[XTCFMODE]] can be included in &amp;lt;tt&amp;gt;AUTOEXEC.BAT&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For PC/AT class hardware, the use of BIU mode and enabling slot-8/ZWS function (requires optional SMT components and JP3 closed), read performance of up to 1MB/s can be achieved.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech ISA CompactFlash Adapter FAQ]]&lt;br /&gt;
*[[lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_USB_Adapter&amp;diff=1549</id>
		<title>Lo-tech ISA USB Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_USB_Adapter&amp;diff=1549"/>
		<updated>2022-08-18T12:35:18Z</updated>

		<summary type="html">&lt;p&gt;James: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-ISA-USB-Adapter-PCB-Front.JPG|right|300px|Lo-tech ISA USB Adapter PCB]]&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech ISA USB Adapter]] is a bootable storage adapter for IBM PC, PC/XT, PC/AT and compatible hardware - essentially any PC with an ISA slot, enabling a standard USB flash drive to be used. This eliminates the dependence on ageing hard disks and floppy disks, and makes data exchange with a modern PC easy. The design is based on the CH375 USB chip and is a development of the [[Lo-tech ISA CompactFlash Adapter revision 2b]].&lt;br /&gt;
&lt;br /&gt;
The BIOS ROM used by the card (available [https://gitlab.com/hakfoo1/v40-bios/-/tree/CH375-Workarounds/ here]) enable the host PC to boot from storage presented by the adapter, which appears in DOS as an ordinary fixed disk (i.e., drive C, D, etc). No DOS drivers are needed. Note that the maximum partition size under MS-DOS is 2GB, meaning a total of 8GB can be accessed and the current BIOS provides up to 504MB. For users not requiring ROM boot, a CONFIG.SYS driver will also be available soon.&lt;br /&gt;
&lt;br /&gt;
The PCB itself is a 4-layer, small form factor 8-bit ISA adapter. Building this PCB requires some surface-mount (SMT) components, the smallest being 0603 capacitors. Mounting holes are provided for a custom ISA slot bracket, which can be 3D printed in plastic at home, or from commercial vendors in various metals.&lt;br /&gt;
&lt;br /&gt;
The design provides:&lt;br /&gt;
&lt;br /&gt;
*Bootable storage adapter for 8-bit PCs&lt;br /&gt;
*Small form-factor, to enable use in machines with limited expansion slot space such as the Tandy 1000HX, Sinclair PC200 and Amstrad PC-20&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility&lt;br /&gt;
*Selectable BIOS address - C800h or D800h&lt;br /&gt;
&lt;br /&gt;
The BIOS is provided through an in-system re-programmable 32KB flash-based ROM, and since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable - the board can therefore function as a universal ROM board.&lt;br /&gt;
&lt;br /&gt;
The board uses the CH375 USB interface and provides optimised transfer speed for PC/XT class machines by using shifted port mapping, so enabling 16-bit instructions. This improves the performance to about 170KB/s at 4.77MHz.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit ISA card with standard USB socket for connection of USB flash drive&lt;br /&gt;
*Line driver for external activity LEDs (12mA power budget)&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility&lt;br /&gt;
*Low-cost flash memory chip for boot ROM, with 32KB usable&lt;br /&gt;
*Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)&lt;br /&gt;
*Resource requirements:&lt;br /&gt;
**IO ports 2C0-2C8h&lt;br /&gt;
**ROM: 32KB at C800h or D800h&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-ISA-USB-adapter-schematic.png&lt;br /&gt;
File:Lo-tech-ISA-USB-Adapter-PCB-Front.JPG&lt;br /&gt;
File:Lo-tech-ISA-USB-Adapter-PCB-Back.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC3 || 74HCT688N || DIP-20 || 2 || 382504 || 771-74HCT688N&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || SST39SF010A-70-4C-PHE || DIP-32 || 1 || 1896595 || 804-39SF010A7CPHE&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || CH375 || SOIC-28 || 1 || - || -&lt;br /&gt;
|-&lt;br /&gt;
|IC5 || 74HCT245N || DIP-20 || 1 || 9591931 || 595-SN74HCT245N&lt;br /&gt;
|-&lt;br /&gt;
|C1-3, C5 || 0.1uF Ceramic Capacitor || C025-030X050 || 4 || 2112751 || 581-SR205E104MAR or &amp;lt;br&amp;gt;581-SR205C104KAR&lt;br /&gt;
|-&lt;br /&gt;
|C6 || 10uF Electrolytic Capacitor || E2-5  || 1 || 8767084 || 647-UVR1C100MDD&lt;br /&gt;
|-&lt;br /&gt;
|C7 || CAPACITOR, 0.1UF, 50V || 0805 || 2 || 1612208 || VJ0805V104MXBPW1BC&lt;br /&gt;
|-&lt;br /&gt;
|C9 || 0.01uF Ceramic || 0603 || 1 || - || 963-UMK107B7103KAHT&lt;br /&gt;
|-&lt;br /&gt;
|C10 || 0.1uF Ceramic || 0603 || 2 || - || 963-UMK107BJ104KAHT&lt;br /&gt;
|-&lt;br /&gt;
|C12-13 || 15-30pF Ceramic || 0603 || 2 || || 581-06035C220JAT2A&lt;br /&gt;
|-&lt;br /&gt;
|C14, C15 || 100uF Electrolytic Capacitor || E2-5 || 1 || - || 647-UVR1A101MDD&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP32) || - || DIL32 || 1 || 1654375 || 571-1-2199300-2&amp;lt;br&amp;gt;517-4832-6000-CP&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP20) || - || DIL20 || 3 || 1101349 || 571-1-2199298-6&amp;lt;br&amp;gt;649-DILB20P-223TLF&lt;br /&gt;
|-&lt;br /&gt;
|JP1, JP2, JP3, LED || - || 1x2 Pin Header || 4 || 1593411 || 855-M20-9990246&amp;lt;br&amp;gt;653-XG8S-0231&lt;br /&gt;
|-&lt;br /&gt;
|JP4 || - || 2x2 Pin Header || 1 || - || 517-9612046804AR&lt;br /&gt;
|-&lt;br /&gt;
| - || - || 2-pin jumper || 4 || 2396301 || 806-SX1100-A&lt;br /&gt;
|-&lt;br /&gt;
|U1 || SN74LS33D || SOIC-14 || 1 || 1752958 || 595-SN74LS33D&lt;br /&gt;
|-&lt;br /&gt;
|R1, R2, R4 || RESISTOR, 10K, 125MW || 0805 || 3 || 1612522 || 71-CRCW0805J-10K-E3&lt;br /&gt;
|-&lt;br /&gt;
|R3 || RESISTOR, 0.125W 1% 270R || 0805 || 1 || 1652970 || 71-CRCW0805270RJNEA&lt;br /&gt;
|-&lt;br /&gt;
|R5 || RESISTOR, 0.125W 1% 2R || 0805 || 1 || 1652970 || 71-CRCW08052R00FKEA&lt;br /&gt;
|-&lt;br /&gt;
|R6 || RESISTOR, 10K, 125MW || 0204/7 || 1 || 9342419 || 270-10K-RC&lt;br /&gt;
|-&lt;br /&gt;
|X1 || HC49 Crystal, 12MHz ±0.4‰ || - || 1 || - || 774-ATS12A-E&lt;br /&gt;
|-&lt;br /&gt;
|HD1 || USB Connectors RA USB A || - || 1 || - || 523-UE27AC5410H&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of a range of DIP-32 flash chips (1, 2 or 4Mb):&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/SST/SST39SF0x0.pdf SST39SF0x0A] (SST39SF010A, SST39SF020A, SST39SF040A)&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/AMIC/AMIC-A29010.pdf AMIC A29010]&lt;br /&gt;
**AMIC chips appear to have been discontinued (as as Nov-13)&lt;br /&gt;
*Regardless of the chip used, 32KB is presented at C800h (JP2 closed) or D800h (JP2 open and R4 fitted)&lt;br /&gt;
&lt;br /&gt;
Note that when assembling SMT components, additional flux will also be needed (such as Edsyn FL22, Farnell order code 3059091).&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*JP1: ROM enable (closed = enabled)&lt;br /&gt;
*JP2: ROM Address Selection - closed = C800h, open (and R4 fitted) = D800h&lt;br /&gt;
*JP3: Slot-8/ZWS Function (closed = enabled) - requires SMT components&lt;br /&gt;
*JP4: Port mode&lt;br /&gt;
**Std - 8-bit transfers, registers mapped at 2C0h, 2C1h&lt;br /&gt;
**Fast - 16-bit transfers, registers mapped at 2C0h, 2C2h (not supported by alpha BIOS)&lt;br /&gt;
&lt;br /&gt;
An external LED can be attached to the 2-pin LED header only if the optional components (on the rear of the PCB) are populated. Current limit for LED is 12mA.&lt;br /&gt;
&lt;br /&gt;
The IO port address (2C0h - 2C8h) is fixed.&lt;br /&gt;
&lt;br /&gt;
== Build &amp;amp; Test ==&lt;br /&gt;
&lt;br /&gt;
For additional help, please [{{SERVER}}/get-in-touch/ send an email].&lt;br /&gt;
&lt;br /&gt;
=== Construction ===&lt;br /&gt;
&lt;br /&gt;
*Find a suitable work surface with plenty of light.  A car-cleaning sponge is useful to rest the PCB on since components are held nicely in place under the PCB by the soft surface, which can also be easily turned around as a whole with components not yet soldered&lt;br /&gt;
*Start with the SMT components, then proceed with the least tall components, so that they are held full in place with the solder side up&lt;br /&gt;
*When soldering IC sockets or ICs, ensure the notches are at the correct end as indicated by the PCB silkscreen&lt;br /&gt;
*Note the correct orientation of the polarised capacitors C6, C14 and C15.&lt;br /&gt;
*Wash all flux residues off once complete using isopropynol (for example with a toothbrush)&lt;br /&gt;
*Check closely with a magnifying glass all joints.  Check especially for bridges between SMT pins&lt;br /&gt;
&lt;br /&gt;
=== BIOS Flashing (Programming) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The following assumes JP2 is closed, providing the ROM at C800h&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The flash chip is programmed with the [[Lo-tech XT-CF flash utility]]. To program the board, make a DOS boot disk (utilities have been tested on MS-DOS 2.11, 3.3 and 6.22) and add the BIOS binary file and the flash utility.  Install the Lo-tech ISA CompactFlash Adapter in the machine and boot from the floppy, then flash the ROM thus:&lt;br /&gt;
&lt;br /&gt;
 A:\&amp;gt;flash v40-bios.bin c800 &lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The silkscreen incorrectly documents the fixed IO port range as 260-26Fh; the CH375 is at 2C0h.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
*[https://gitlab.com/hakfoo1/v40-bios Boot ROM by Hakfoo]&lt;br /&gt;
*[{{SERVER}}/downloads/isa-usb/CH375-datasheet.pdf CH375 datasheet]&lt;br /&gt;
&lt;br /&gt;
Config.sys driver (for non-bootable use) coming soon.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech ISA USB Adapter FAQ]]&lt;br /&gt;
*[[lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_Slot_Brackets&amp;diff=1548</id>
		<title>Lo-tech ISA Slot Brackets</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_Slot_Brackets&amp;diff=1548"/>
		<updated>2022-08-18T06:45:50Z</updated>

		<summary type="html">&lt;p&gt;James: Added STL file download links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Custom designed ISA slot brackets for Lo-tech PCBs:&lt;br /&gt;
&lt;br /&gt;
== Type 1 ==&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:peacon-xt-cf-bracket.png&lt;br /&gt;
File:xt-cf-isa-slot-bracket-1.jpg&lt;br /&gt;
File:xt-cf-isa-slot-bracket-2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Used by: [[XT-CF]], [[XT-CFv2]], [[XT-CFv3]], [[XT-CF-lite]]&lt;br /&gt;
*[{{SERVER}}/downloads/ISA-Slot-Brackets/XT-CF-Bracket-Type-1-r01.stl Type 1 Bracket STL Design File]&lt;br /&gt;
&lt;br /&gt;
== Type 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-isa-slot-bracket-type-2-design.png&lt;br /&gt;
File:Lo-tech-ISA-Slot-Bracket-Type-2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
*Used by: [[XT-CF-lite rev.2]]&lt;br /&gt;
*[{{SERVER}}/downloads/ISA-Slot-Brackets/XT-CF-Bracket-Type-2-r04.stl Type 2 Bracket STL Design File]&lt;br /&gt;
&lt;br /&gt;
== Type 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:RAM-and-EMS-Board-Slot-Bracket-r01.png&lt;br /&gt;
File:Lo-tech-ISA-Slot-Bracket-Type-3-Design.png&lt;br /&gt;
File:Lo-tech-ISA-Slot-Bracket-Type-3.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Used by: [[Lo-tech 8-bit IDE Adapter|8-bit IDE Adapter]], [[Lo-tech 1MB RAM Board|1MB RAM Board]], [[Lo-tech 2MB EMS Board|2MB EMS Board]]&lt;br /&gt;
*[{{SERVER}}/downloads/ISA-Slot-Brackets/XT-CF-Bracket-Type-3-r02.stl Type 3 Bracket STL Design File]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Main Page]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=CompactFlash_Adapter_for_Tandy_1400_Laptops&amp;diff=1547</id>
		<title>CompactFlash Adapter for Tandy 1400 Laptops</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=CompactFlash_Adapter_for_Tandy_1400_Laptops&amp;diff=1547"/>
		<updated>2022-08-17T18:06:00Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:CompactFlash-Adapter-for-Tandy-1400-Laptops-assembled.JPG|right|300px|CompactFlash Adapter for Tandy 1400 Laptops]]&lt;br /&gt;
&lt;br /&gt;
The [[CompactFlash Adapter for Tandy 1400 Laptops]] is a system specific [[Lo-tech XT-CF Boards|XT-CF]] variant for [[Tandy 1400 Series Laptops]]:&lt;br /&gt;
&lt;br /&gt;
*[[Tandy 1400LT]] models using BIOS version 2.51, and&lt;br /&gt;
*[[Tandy 1400FD|Tandy 1400FD/HD]] models using BIOS version 1.04&lt;br /&gt;
&lt;br /&gt;
The board is programatically identical to the [[XT-CF-lite]] and is therefore powered by the [[XTIDE Universal BIOS]], provided through an in-system re-programmable 32KB (addressible) flash-based ROM. Since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable.&lt;br /&gt;
&lt;br /&gt;
Note: It is not currently known whether the 2.51 BIOS version can be used in earlier 1400LT models. The BIOS image is however [{{SERVER}}/downloads/BIOS/Tandy/LT1400_BIOS_2.51.70.zip available for download here].&lt;br /&gt;
&lt;br /&gt;
To buy this and other PCBs, please visit [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit [[Tandy_1400_Series_Expansion_Slots#Expansion_Slot|Tandy 1400 Series Expansion Slot Card]] with CompactFlash header&lt;br /&gt;
*Entirely 5V CMOS logic&lt;br /&gt;
*Low-cost flash memory chip for boot ROM, with 32KB usable&lt;br /&gt;
*Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)&lt;br /&gt;
*Utilises [[XTIDE Universal BIOS]] (XTplus build; adapter type: &#039;XT-CF&#039;)&lt;br /&gt;
*Fixed resource allocation - IO ports 300-31Fh, ROM 32KB at C800h&lt;br /&gt;
*Compatible with any CompactFlash card (microdrives are not supported due to power budget limitation from the Tandy 1400 expansion slot)&lt;br /&gt;
&lt;br /&gt;
== PCB ==&lt;br /&gt;
&lt;br /&gt;
[[File:CompactFlash-Adapter-for-Tandy-1400-Laptops-pcb.jpg|right|300px|CompactFlash Adapter for Tandy 1400 Laptops PCB]]&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC2 || 74HCT688D || SOIC-20W || 2 || 1085321 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || 74HCT139D || SOIC-16 || 1 || 9591834 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || AMIC - A29010-70F || DIP-32 || 1 || 1907092 || -&lt;br /&gt;
|-&lt;br /&gt;
|R1, R2, R4 || 10k Resistor || 0603 || 3 || 1469748 || -&lt;br /&gt;
|-&lt;br /&gt;
|R3 || Do not populate || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|R5* || 1k6 Resistor || 0603 || 1 || 2138367 || -&lt;br /&gt;
|-&lt;br /&gt;
|C1..5 || 0.1uF Ceramic Capacitor || 0603 || 5 || 1414610 || -&lt;br /&gt;
|-&lt;br /&gt;
|C6 || 10uF Electrolytic Capacitor || E2-5  || 1 || 8767084 || -&lt;br /&gt;
|-&lt;br /&gt;
|CF1 || 3M NE750-Q516RB-50 CompactFlash Header || - || 1 || 1267444 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket || - || DIL32 || 1 || 1654375 || 571-1-390263-2&lt;br /&gt;
|-&lt;br /&gt;
|JP1, LED* || AMP - 826629-2 || 1x2 Pin Header || 2 || 3418285 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Components only needed if activity LED is required&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of a range of DIP-32 flash chips (1, 2 or 4Mb):&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/SST/SST39SF0x0.pdf SST39SF0x0A] (SST39SF010A, SST39SF020A, SST39SF040A)&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/AMIC/AMIC-A29010.pdf AMIC A29010]&lt;br /&gt;
*Regardless of the chip used, 32KB is presented commencing C800h&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*JP1: ROM enable (closed = enabled)&lt;br /&gt;
*An external LED can be attached to the 2-pin LED header, but a low-current type must be used (approx. 2mA available).&lt;br /&gt;
*The IO port address (300h - 31Fh) is fixed, as is the ROM address (32KB at C800h) - note therefore the board cannot co-exist with the [[Tandy 1400HD]] MFM disk controller&lt;br /&gt;
*Pre-configured BIOS based on XTIDE Universal BIOS r567 is available [{{SERVER}}/downloads/XT-CF/ISA-CF-BIOS-r567-late-init.zip here]&lt;br /&gt;
*The flash ROM can be programmed with the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[lo-tech XT-CF Boards]]&lt;br /&gt;
*[[Tandy 1400 Series Laptops]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=CompactFlash_Adapter_for_Tandy_1400_Laptops&amp;diff=1546</id>
		<title>CompactFlash Adapter for Tandy 1400 Laptops</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=CompactFlash_Adapter_for_Tandy_1400_Laptops&amp;diff=1546"/>
		<updated>2022-08-17T17:57:05Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:CompactFlash-Adapter-for-Tandy-1400-Laptops-assembled.JPG|right|300px|CompactFlash Adapter for Tandy 1400 Laptops]]&lt;br /&gt;
&lt;br /&gt;
The [[CompactFlash Adapter for Tandy 1400 Laptops]] is a system specific [[Lo-tech XT-CF Boards|XT-CF]] variant for [[Tandy 1400 Series Laptops]]:&lt;br /&gt;
&lt;br /&gt;
*[[Tandy 1400LT]] models using BIOS version 2.51, and&lt;br /&gt;
*[[Tandy 1400FD|Tandy 1400FD/HD]] models using BIOS version 1.04&lt;br /&gt;
&lt;br /&gt;
The board is programatically identical to the [[XT-CF-lite]] and is therefore powered by the [[XTIDE Universal BIOS]], provided through an in-system re-programmable 32KB (addressible) flash-based ROM. Since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable.&lt;br /&gt;
&lt;br /&gt;
Note: It is not currently known whether the 2.51 BIOS version can be used in earlier 1400LT models. The BIOS image is however [{{SERVER}}/downloads/BIOS/Tandy/LT1400_BIOS_2.51.70.zip available for download here].&lt;br /&gt;
&lt;br /&gt;
To buy this and other PCBs, please visit [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit [[Tandy_1400_Series_Expansion_Slots#Expansion_Slot|Tandy 1400 Series Expansion Slot Card]] with CompactFlash header&lt;br /&gt;
*Entirely 5V CMOS logic&lt;br /&gt;
*Low-cost flash memory chip for boot ROM, with 32KB usable&lt;br /&gt;
*Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)&lt;br /&gt;
*Utilises [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS] (XTplus build; adapter type: &#039;XT-CF&#039;)&lt;br /&gt;
*Fixed resource allocation - IO ports 300-31Fh, ROM 32KB at C800h&lt;br /&gt;
*Compatible with any CompactFlash card (microdrives are not supported due to power budget limitation from the Tandy 1400 expansion slot)&lt;br /&gt;
&lt;br /&gt;
== PCB ==&lt;br /&gt;
&lt;br /&gt;
[[File:CompactFlash-Adapter-for-Tandy-1400-Laptops-pcb.jpg|right|300px|CompactFlash Adapter for Tandy 1400 Laptops PCB]]&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC2 || 74HCT688D || SOIC-20W || 2 || 1085321 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || 74HCT139D || SOIC-16 || 1 || 9591834 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || AMIC - A29010-70F || DIP-32 || 1 || 1907092 || -&lt;br /&gt;
|-&lt;br /&gt;
|R1, R2, R4 || 10k Resistor || 0603 || 3 || 1469748 || -&lt;br /&gt;
|-&lt;br /&gt;
|R3 || Do not populate || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|R5* || 1k6 Resistor || 0603 || 1 || 2138367 || -&lt;br /&gt;
|-&lt;br /&gt;
|C1..5 || 0.1uF Ceramic Capacitor || 0603 || 5 || 1414610 || -&lt;br /&gt;
|-&lt;br /&gt;
|C6 || 10uF Electrolytic Capacitor || E2-5  || 1 || 8767084 || -&lt;br /&gt;
|-&lt;br /&gt;
|CF1 || 3M NE750-Q516RB-50 CompactFlash Header || - || 1 || 1267444 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket || - || DIL32 || 1 || 1654375 || 571-1-390263-2&lt;br /&gt;
|-&lt;br /&gt;
|JP1, LED* || AMP - 826629-2 || 1x2 Pin Header || 2 || 3418285 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Components only needed if activity LED is required&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of a range of DIP-32 flash chips (1, 2 or 4Mb):&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/SST/SST39SF0x0.pdf SST39SF0x0A] (SST39SF010A, SST39SF020A, SST39SF040A)&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/AMIC/AMIC-A29010.pdf AMIC A29010]&lt;br /&gt;
*Regardless of the chip used, 32KB is presented commencing C800h&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*JP1: ROM enable (closed = enabled)&lt;br /&gt;
*An external LED can be attached to the 2-pin LED header, but a low-current type must be used (approx. 2mA available).&lt;br /&gt;
*The IO port address (300h - 31Fh) is fixed, as is the ROM address (32KB at C800h) - note therefore the board cannot co-exist with the [[Tandy 1400HD]] MFM disk controller&lt;br /&gt;
*Pre-configured BIOS based on XTIDE Universal BIOS r567 is available [{{SERVER}}/downloads/XT-CF/ISA-CF-BIOS-r567-late-init.zip here]&lt;br /&gt;
*The flash ROM can be programmed with the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[lo-tech XT-CF Boards]]&lt;br /&gt;
*[[Tandy 1400 Series Laptops]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=CompactFlash_Adapter_for_Tandy_1400_Laptops&amp;diff=1545</id>
		<title>CompactFlash Adapter for Tandy 1400 Laptops</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=CompactFlash_Adapter_for_Tandy_1400_Laptops&amp;diff=1545"/>
		<updated>2022-08-17T17:55:55Z</updated>

		<summary type="html">&lt;p&gt;James: Added LT compatibility node&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:CompactFlash-Adapter-for-Tandy-1400-Laptops-assembled.JPG|right|300px|CompactFlash Adapter for Tandy 1400 Laptops]]&lt;br /&gt;
&lt;br /&gt;
The [[CompactFlash Adapter for Tandy 1400 Laptops]] is a system specific [[Lo-tech XT-CF Boards|XT-CF]] variant for [[Tandy 1400 Series Laptops]]:&lt;br /&gt;
&lt;br /&gt;
*1400LT models using BIOS version 2.51, and&lt;br /&gt;
*1400FD/HD models using BIOS version 1.04&lt;br /&gt;
&lt;br /&gt;
The board is programatically identical to the [[XT-CF-lite]] and is therefore powered by the [[XTIDE Universal BIOS]], provided through an in-system re-programmable 32KB (addressible) flash-based ROM. Since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable.&lt;br /&gt;
&lt;br /&gt;
Note: It is not currently known whether the 2.51 BIOS version can be used in earlier 1400LT models. The BIOS image is however [{{SERVER}}/downloads/BIOS/Tandy/LT1400_BIOS_2.51.70.zip available for download here].&lt;br /&gt;
&lt;br /&gt;
To buy this and other PCBs, please visit [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit [[Tandy_1400_Series_Expansion_Slots#Expansion_Slot|Tandy 1400 Series Expansion Slot Card]] with CompactFlash header&lt;br /&gt;
*Entirely 5V CMOS logic&lt;br /&gt;
*Low-cost flash memory chip for boot ROM, with 32KB usable&lt;br /&gt;
*Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)&lt;br /&gt;
*Utilises [http://code.google.com/p/xtideuniversalbios/ XT-IDE Universal BIOS] (XTplus build; adapter type: &#039;XT-CF&#039;)&lt;br /&gt;
*Fixed resource allocation - IO ports 300-31Fh, ROM 32KB at C800h&lt;br /&gt;
*Compatible with any CompactFlash card (microdrives are not supported due to power budget limitation from the Tandy 1400 expansion slot)&lt;br /&gt;
&lt;br /&gt;
== PCB ==&lt;br /&gt;
&lt;br /&gt;
[[File:CompactFlash-Adapter-for-Tandy-1400-Laptops-pcb.jpg|right|300px|CompactFlash Adapter for Tandy 1400 Laptops PCB]]&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC2 || 74HCT688D || SOIC-20W || 2 || 1085321 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC3 || 74HCT139D || SOIC-16 || 1 || 9591834 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || AMIC - A29010-70F || DIP-32 || 1 || 1907092 || -&lt;br /&gt;
|-&lt;br /&gt;
|R1, R2, R4 || 10k Resistor || 0603 || 3 || 1469748 || -&lt;br /&gt;
|-&lt;br /&gt;
|R3 || Do not populate || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|R5* || 1k6 Resistor || 0603 || 1 || 2138367 || -&lt;br /&gt;
|-&lt;br /&gt;
|C1..5 || 0.1uF Ceramic Capacitor || 0603 || 5 || 1414610 || -&lt;br /&gt;
|-&lt;br /&gt;
|C6 || 10uF Electrolytic Capacitor || E2-5  || 1 || 8767084 || -&lt;br /&gt;
|-&lt;br /&gt;
|CF1 || 3M NE750-Q516RB-50 CompactFlash Header || - || 1 || 1267444 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket || - || DIL32 || 1 || 1654375 || 571-1-390263-2&lt;br /&gt;
|-&lt;br /&gt;
|JP1, LED* || AMP - 826629-2 || 1x2 Pin Header || 2 || 3418285 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Components only needed if activity LED is required&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of a range of DIP-32 flash chips (1, 2 or 4Mb):&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/SST/SST39SF0x0.pdf SST39SF0x0A] (SST39SF010A, SST39SF020A, SST39SF040A)&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/AMIC/AMIC-A29010.pdf AMIC A29010]&lt;br /&gt;
*Regardless of the chip used, 32KB is presented commencing C800h&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*JP1: ROM enable (closed = enabled)&lt;br /&gt;
*An external LED can be attached to the 2-pin LED header, but a low-current type must be used (approx. 2mA available).&lt;br /&gt;
*The IO port address (300h - 31Fh) is fixed, as is the ROM address (32KB at C800h) - note therefore the board cannot co-exist with the [[Tandy 1400HD]] MFM disk controller&lt;br /&gt;
*Pre-configured BIOS based on XTIDE Universal BIOS r567 is available [{{SERVER}}/downloads/XT-CF/ISA-CF-BIOS-r567-late-init.zip here]&lt;br /&gt;
*The flash ROM can be programmed with the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[lo-tech XT-CF Boards]]&lt;br /&gt;
*[[Tandy 1400 Series Laptops]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Tandy_1400LT&amp;diff=1544</id>
		<title>Tandy 1400LT</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Tandy_1400LT&amp;diff=1544"/>
		<updated>2022-08-17T17:51:57Z</updated>

		<summary type="html">&lt;p&gt;James: Added link to LT BIOS that supports the Lo-tech XT-CF for 1400s&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[file:tandy-1400lt.jpg|200px|right|thumb|Tandy 1400LT]]&lt;br /&gt;
The Tandy 1400LT was a [[Tandy 1400 Series Laptops|Tandy 1400 Series]] computer with an [[NEC V20]] CPU, two 720K floppy drives, and 768KB RAM.&lt;br /&gt;
&lt;br /&gt;
The system was superceded by the similar [[Tandy 1400FD|1400FD]].&lt;br /&gt;
&lt;br /&gt;
[[file:Tandy-1400LT-Catalogue-Page-1988.jpg|200px|right|thumb|Tandy 1400LT Catalogue Page]]&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/manuals/tandy/Tandy_1400LT_Quick_Reference_Guide.pdf Tandy 1400LT Quick Reference Guide]&lt;br /&gt;
*[[Tandy 1400 Series Expansion Slots]]&lt;br /&gt;
*[{{SERVER}}/downloads/manuals/tandy/Tandy_1400LT_Service_Manual.pdf Tandy 1400LT Service Manual] (large file; please be patient)&lt;br /&gt;
*[{{SERVER}}/downloads/BIOS/Tandy/LT1400_BIOS_2.51.70.zip Tandy 1400LT BIOS version 2.51.70] - the [[CompactFlash Adapter for Tandy 1400 Laptops]] can be used in 1400LT machines with this BIOS&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Tandy 1400 Series Laptops]]&lt;br /&gt;
*[[CompactFlash Adapter for Tandy 1400 Laptops]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_Board&amp;diff=1543</id>
		<title>Lo-tech XT-CF Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_Board&amp;diff=1543"/>
		<updated>2022-08-17T17:41:16Z</updated>

		<summary type="html">&lt;p&gt;James: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Peacon-xt-cf-assembled.JPG|right|300px|Lo-tech XT-CF Board Assembled (first prototype)]]&lt;br /&gt;
The [[lo-tech XT-CF Board]] is a bootable 8-bit ISA card with a CompactFlash header mounted so that the CF card is accessible through a [[#ISA Bracket|custom ISA expansion slot bracket]].  This card has been designed for use in IBM PC/XT, PC/AT and all compatible systems.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: the current iteration of this card is the [[XT-CFv3]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Key Features:&lt;br /&gt;
&lt;br /&gt;
*Replace dead MFM or RLL hard disks (and their controllers) with a cheap CompactFlash or microdrive media&lt;br /&gt;
*Easy to access CompactFlash card without opening the PC&lt;br /&gt;
*Reduce system power consumption (and hence load on the PSU) by as much as 30W&lt;br /&gt;
*Uses the [https://xtideuniversalbios.org/ XT-IDE Universal BIOS] (adapter type &#039;lo-tech XT-CF&#039;)&lt;br /&gt;
*Increase system performance - offers 5x the throughput of an [[ST-412]]&lt;br /&gt;
*32K in-system re-programmable ROM (24K free for any other ROM code)&lt;br /&gt;
&lt;br /&gt;
The board is derived from the [[Dangerous Prototypes XT-IDE Boards | Dangerous Prototypes V2 board]], and uses the same Xilinx XC9572XL CPLD.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit ISA card with header for type-I or type-II CompactFlash media&lt;br /&gt;
*CompactFlash header configured to operate media in true-IDE mode&lt;br /&gt;
*500mA 3.3V regulator can drive microdrive or CompactFlash cards without any external power connection (330mA power budget for microdrives)&lt;br /&gt;
*Line driver for on-card and external activity LEDs (30mA power budget for external LED)&lt;br /&gt;
*Low-cost SMT Flash memory chip with 32K usable&lt;br /&gt;
*JTAG header for CPLD programming&lt;br /&gt;
&lt;br /&gt;
=== Modes of Operation ===&lt;br /&gt;
&lt;br /&gt;
*8-bit Port-mapped IO&lt;br /&gt;
*16-but Port-mapped IO (supported on most systems; provides a performance advantage with 8088 and 8086 CPUs)&lt;br /&gt;
&lt;br /&gt;
Operating mode is configured in the BIOS and can be switched on-the-fly between modes using the [[lo-tech XT-CF Configuration Utility]]. The board is functionality identical to the [[XT-CF-lite]], and with one jumper-wire fitted can also implement ISA B8 line functionality of the XT-CFv2, allowing use in [[IBM Personal Computer XT System Board Slot 8]].&lt;br /&gt;
&lt;br /&gt;
== PCB ==&lt;br /&gt;
&lt;br /&gt;
[[File:Peacon-xt-cf.JPG|right|300px|Lo-tech XT-CF Board]]&lt;br /&gt;
&lt;br /&gt;
=== Boardhouse Requirements ===&lt;br /&gt;
&lt;br /&gt;
*8 mils clearances and minimum track width&lt;br /&gt;
*0.4mm minimum hole size&lt;br /&gt;
*Can be manufactured on a 100x100mm board&lt;br /&gt;
*Gold fingers are preferable but not required&lt;br /&gt;
&lt;br /&gt;
=== Assembly Notes ===&lt;br /&gt;
&lt;br /&gt;
*Thoroughly wash the PCB before assembly with Isopropynol&lt;br /&gt;
*Place the CF socket, CPLD and flash chip first&lt;br /&gt;
*Next place the VRM, LED driver and resistor networks&lt;br /&gt;
*Then place LEDs, resistors and SMT capacitors&lt;br /&gt;
*Next thoroughly wash the board using a toothbrush to ensure flux is removed from between SMT pins&lt;br /&gt;
*Next add the through-hole components (DIP switch, headers and 47uF capacitor), then wash again&lt;br /&gt;
*Before use inspect all connections with a magnifying glass to ensure there are no shorts between pins.  Inspect the CF header leads as solder can sometimes flow up the leads during assembly causing a short away from the PCB itself.&lt;br /&gt;
&lt;br /&gt;
=== Bill Of Materials ===&lt;br /&gt;
&lt;br /&gt;
[http://www.farnell.com Farnell] Parts List:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Part(s)&lt;br /&gt;
!Description&lt;br /&gt;
!Package&lt;br /&gt;
!Value&lt;br /&gt;
!Qty Required&lt;br /&gt;
!Farnell Code&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || XC9572 72-cell 3.3v CPLD || TQFP100 || -  || 1 || 1193233&lt;br /&gt;
|-&lt;br /&gt;
| IC2 || SST39SF0x0A Flash || TSOP32 (8x14mm) || 1, 2 or 4Mb || 1 || 1829977&lt;br /&gt;
|-&lt;br /&gt;
| IC3 || SCHMITT TRIG, INV GATE 74LVC1G14 || SOT-25 || - || 1 || 1893833&lt;br /&gt;
|-&lt;br /&gt;
| VR1 || SPX3819M5-L-3-3 - LDO, 500MA, 3.3V, LOW NOISE || SOT-23-5 || - || 1 || 1831949&lt;br /&gt;
|-&lt;br /&gt;
| C1 || Low-ESR Electrolytic Capacitor || Radial, 5mm pitch, 10mm max diameter || 47uF to 100uF, 10V+ || 1 || 1692338 (future: SMD 1850100)&lt;br /&gt;
|-&lt;br /&gt;
| C2, C14 || Ceramic Capacitor (X5R or X7R) || 0805 || 10uF, 10V+ || 2 || 1833812&lt;br /&gt;
|-&lt;br /&gt;
| C12..13 || Ceramic Capacitor (X5R or X7R) || 0603 || 1uF, 10V+ || 2 || 1828801&lt;br /&gt;
|-&lt;br /&gt;
| C3..11 || Ceramic Capacitor (X5R or X7R) || 0603 || 0.1uF, 10V+ || 9 || 1414610&lt;br /&gt;
|-&lt;br /&gt;
| R1..2  || Resistor || 0603 || RESISTOR, 10K, 0.1W || 2 || 1469748&lt;br /&gt;
|-&lt;br /&gt;
| R3, R5  || Resistor || 0603 || RESISTOR, 1K, 0.1W  || 2 || 2008355 or 1652848&lt;br /&gt;
|-&lt;br /&gt;
| R4  || Resistor || 0603 || RESISTOR, 270R, 0.1W || 1 || 2059585&lt;br /&gt;
|-&lt;br /&gt;
| R6  || Resistor || 0603 || RESISTOR, 5K6, 0.1W || 1 || 1739171&lt;br /&gt;
|-&lt;br /&gt;
| RN1, RN2 || Resistor Network || 1206 || RESISTOR NETWORK, 10K, ± 2% || 2 || 1770137&lt;br /&gt;
|-&lt;br /&gt;
| LED1 || Low-current LED || 0805 || LED, SMD || 1 || 1685055&lt;br /&gt;
|-&lt;br /&gt;
| DIP_SW || 9-way DIP switch || DIL || SWITCH, DIL, 9WAY || 1 || 1255227&lt;br /&gt;
|-&lt;br /&gt;
| CF1 || 3M N7E50-Q516 Compact Flash Header || - || 3M N7E50-Q516xx-x0 || 1 || 1267444&lt;br /&gt;
|-&lt;br /&gt;
| EXT.LED || 2-pin Header || - || HEADER, 1ROW, 2WAY || 1 || 3418285&lt;br /&gt;
|-&lt;br /&gt;
| JP1 || 3-pin Header || - || HEADER, 1ROW, 3WAY || 1 || 3418297&lt;br /&gt;
|-&lt;br /&gt;
| JTAG || 6-pin Header || - || HEADER, 2ROW, 6WAY || 1 || 3418492&lt;br /&gt;
|-&lt;br /&gt;
| - || Jumper for CF Card Voltage Selection || - || - || 1 || 1740370&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*EXT.LED and R4 can be omited if external activity LED is not required&lt;br /&gt;
*LED and R5 can be omited if on-board activity LED is not required&lt;br /&gt;
*IC3, R4, R5, LED and EXT.LED can be omited if no activity LEDs are required&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
[[file:peacon-xt-cf-bracket.png|200px|right|thumb|XT-CF Adapter ISA Bracket]]&lt;br /&gt;
*ISA Bracket Design per sketch&lt;br /&gt;
*To minimise production cost, design has no threaded holes (simple nut-and-bolt required)&lt;br /&gt;
&lt;br /&gt;
== CPLD Logic ==&lt;br /&gt;
&lt;br /&gt;
=== Downloads ===&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/v1/XT-CFv1-r100-xsvf.zip CPLD XSVF File]&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/v1/XT-CFv1-r100-ISE-Source.zip CPLD ISE Source Code]&lt;br /&gt;
&lt;br /&gt;
=== Programming the CPLD ===&lt;br /&gt;
&lt;br /&gt;
See [[lo-tech XT-CF CPLD Programming Guide]].&lt;br /&gt;
&lt;br /&gt;
== ROM &amp;amp; BIOS ==&lt;br /&gt;
&lt;br /&gt;
=== ROM ===&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of [http://www.sst.com/dotAsset/40746.pdf SST39SF0x0A flash chips] (TSOP32, 8x14mm) of 1Mb, 2Mb or 4Mb capacity&lt;br /&gt;
*Regardless of the chip used, the first 32KB only will be mapped into the PC address space&lt;br /&gt;
*Base address configuration per [[#DIP Switch Settings|DIP Switch Settings]]&lt;br /&gt;
&lt;br /&gt;
=== BIOS ===&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/xtide-r566-xt-cf-master-slave.zip XT-CF Family BIOS] (configured for 300h)&lt;br /&gt;
*The BIOS should be configured using the (BIOS supplied) &amp;lt;tt&amp;gt;xtidecfg.com&amp;lt;/tt&amp;gt; utility, then written out to the XT-CF adapter using the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
*For BIOS sources, see the [https://xtideuniversalbios.org/ XTIDE Universal BIOS Site]&lt;br /&gt;
&lt;br /&gt;
== Compatibility and Interoperability ==&lt;br /&gt;
&lt;br /&gt;
=== Use with Other Cards ===&lt;br /&gt;
&lt;br /&gt;
*The IO port address set via the DIP switches must match that set in the XTIDE Universal BIOS configuration utility&lt;br /&gt;
*The BIOS address can be changed via the DIP switches without changing the BIOS itself&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
&lt;br /&gt;
*All CompactFlash media can be used.  Media supporting multi-sector transfers will provide a performance advantage.&lt;br /&gt;
*The adapter can be used in any system supporting 8-bit ISA&lt;br /&gt;
*8-bit Port-mapped IO transfer mode is slowest but most compatible&lt;br /&gt;
*16-bit Port-mapped IO (BIU offload mode) is not supported on some early PC/XT clones, due to system logic errors&lt;br /&gt;
*ROM shadowing will offer significant performance gains on newer hardware, since the flash ROM is 8-bit so BIOS instructions can be fetched much more efficiently from system RAM&lt;br /&gt;
&lt;br /&gt;
== DIP Switch Settings ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Switch&lt;br /&gt;
!Function&lt;br /&gt;
!On&lt;br /&gt;
!Off&lt;br /&gt;
|-&lt;br /&gt;
|1 || ROM Enable || Enabled || Disabled&lt;br /&gt;
|-&lt;br /&gt;
|2 || ROM Base Address || C800h || D000h&lt;br /&gt;
|-&lt;br /&gt;
|3 || IO Port Address || 300h || 320h&lt;br /&gt;
|-&lt;br /&gt;
|4** || ISA B8 Enable || Enabled || Disabled&lt;br /&gt;
|-&lt;br /&gt;
|5** || ISA B8 Function Type (if enabled) || PC-AT (Zero-wait-state) || PC-XT Slot 8&lt;br /&gt;
|-&lt;br /&gt;
|6* || Not used || - || -&lt;br /&gt;
|-&lt;br /&gt;
|7* || ISA B8 Output** || - || -&lt;br /&gt;
|-&lt;br /&gt;
|8* || Not used || - || -&lt;br /&gt;
|-&lt;br /&gt;
|9 || ROM Write Enable || Enabled || Disabled (ROM cannot be written)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Switches 6-8 must be OFF.  Switch 9 can be left ON, since the flash chip includes Software Data Protection that prevents accidental corruption or overwriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;To use the ISA B8 function, wire a jumper from Sw7 resistor-side to ISA B8 pad (see [[:File:XT-CF-ISA-B8-Jumper-Wire.jpg|photo]]).&lt;br /&gt;
&lt;br /&gt;
Default settings: ROM enabled, IO port 300h, ROM base C800h:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!1 !!2 !!3 !!4 !!5 !!6 !!7 !!8 !!9&lt;br /&gt;
|-&lt;br /&gt;
| ON || ON || ON || OFF || OFF || OFF || OFF || OFF || ON&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the IO base address is set within the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS] ROM image via the [http://code.google.com/p/xtideuniversalbios/wiki/Manual_v2_0_0#Using_XTIDECFG.COM_(XTIDE_Universal_BIOS_configuration_and_flash Universal BIOS Configuration and Flashing utility].  The IO address set within that utility must much that configured on the card.  Should the IO port address be changed for any reason, the BIOS must be updated and re-flashed to the XT-CF card (using the [[lo-tech XT-CF flash utility]]).&lt;br /&gt;
&lt;br /&gt;
The BIOS address is determined at boot time by the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS].  Since the code has been designed to be relocatable, the BIOS base address can be changed without the need to reconfigure the Universal BIOS.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
*Activity LED is lit when a CF card isn&#039;t inserted.  Could be resolved by adding a 50k PU to /PDIAG.&lt;br /&gt;
*47uF through-hole capacitor holes are placed too wide (spaced for ~100V capacitors).&lt;br /&gt;
*Switch numbers are reversed in the schematic&lt;br /&gt;
*ISA B8 isn&#039;t connected, hence card cannot be used in slot 8 of IBM PC/XT (see note above)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CFv2_Board&amp;diff=1542</id>
		<title>Lo-tech XT-CFv2 Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CFv2_Board&amp;diff=1542"/>
		<updated>2022-08-17T17:40:27Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:lo-tech-xt-cfv2-prototype.JPG|right|300px|lo-tech XT-CFv2 Board]]&lt;br /&gt;
A development of the [[lo-tech XT-CF Board]], the [[lo-tech XT-CFv2 Board]] has improved functionality and performance, and is slightly cheaper to make.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This board was superceded by the [[lo-tech XT-CFv3 Board]], but ultimately these CPLD based cards were discontinued due to lack of CPLD availability. The below content is provided for reference only.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== General Description ==&lt;br /&gt;
&lt;br /&gt;
The [[lo-tech XT-CFv2 Board]] is a bootable 8-bit ISA to Compact Flash adapter for XT and AT class IBM compatible PCs.  Like the original [[lo-tech XT-CF Board]], the board offers a number of benefits:&lt;br /&gt;
&lt;br /&gt;
*Replace dead MFM or RLL hard disks with a cheap compact-flash card or microdrive&lt;br /&gt;
*Easy to access compact-flash card (without opening the PC)&lt;br /&gt;
*Reduce system power consumption (and hence load on the PSU) by as much as 30W&lt;br /&gt;
*Uses the standard XT-IDE Universal BIOS (adapter type is &#039;lo-tech XT-CF&#039;)&lt;br /&gt;
*Increase system performance - offers 5x the throughput of an [[ST-412]]&lt;br /&gt;
*32K in-system re-programmable ROM (with 24K free for any other ROM code)&lt;br /&gt;
&lt;br /&gt;
In addition, the [[lo-tech XT-CFv2 Board]] also:&lt;br /&gt;
&lt;br /&gt;
*Can be used in [[IBM Personal Computer XT System Board Slot 8]]&lt;br /&gt;
*Has reduced wait-state operation in PC/AT and newer hardware&lt;br /&gt;
*Provides the highest possible throughput in PC/XT class hardware via DMA mode operation&lt;br /&gt;
&lt;br /&gt;
== Developments from the [[lo-tech XT-CF Board]] ==&lt;br /&gt;
&lt;br /&gt;
*Added CPLD connections to:&lt;br /&gt;
**ISA B8, to support PC/XT slot-8 and PC/AT zero-wait-state operation&lt;br /&gt;
**ISA DRQ3, DACK3, and TC, to support DMA transfers via channel 3&lt;br /&gt;
**ISA IORDY, to enable bus cycle extension should a CF card require it&lt;br /&gt;
**CF header IORDY, as above&lt;br /&gt;
*Reduced DIP switch to 8-way an eliminated switchable flash chip write enable line, due to software data-protection mechanisms included in the SST39SF series flash chips&lt;br /&gt;
*Changed 47uF capacitor (C1) hole spacing for cheaper 16V capacitors&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit ISA card with header for type-I or type-II compact-flash media&lt;br /&gt;
*Compact-flash header configured to operate media in true-IDE mode&lt;br /&gt;
*500mA 3.3V regulator can drive micro-drives or compact-flash cards without any external power connection (330mA power budget for micro-drives)&lt;br /&gt;
*Line driver for on-card and external activity LEDs (30mA power budget for external LED)&lt;br /&gt;
*Low-cost SMT Flash memory chip with 32K usable&lt;br /&gt;
*JTAG header for CPLD programming&lt;br /&gt;
&lt;br /&gt;
=== Modes of Operation ===&lt;br /&gt;
&lt;br /&gt;
*Port-mapped IO&lt;br /&gt;
*Memory-mapped IO&lt;br /&gt;
*DMA, via channel 3&lt;br /&gt;
&lt;br /&gt;
Operating mode defaults to port-mapped IO, but can be switched on-the-fly between modes using the [[lo-tech XT-CF Configuration Utility]].&lt;br /&gt;
&lt;br /&gt;
== PCB ==&lt;br /&gt;
&lt;br /&gt;
[[File:Peacon-xt-cfv2-pcb.JPG|right|300px|lo-tech XT-CFv2 PCB]]&lt;br /&gt;
&lt;br /&gt;
=== Boardhouse Requirements ===&lt;br /&gt;
&lt;br /&gt;
*8 mils clearances and minimum track width&lt;br /&gt;
*0.4mm minimum hole size&lt;br /&gt;
*Can be manufactured on a 100x100mm board&lt;br /&gt;
*Gold fingers are preferable but not required&lt;br /&gt;
&lt;br /&gt;
Prototyping is being undertaken using [http://www.seeedstudio.com/depot/fusion-pcb-service-p-835.html SeeedStudio Fusion PCB Service].&lt;br /&gt;
&lt;br /&gt;
=== Assembly Notes ===&lt;br /&gt;
&lt;br /&gt;
*Thoroughly wash the PCB before assembly with Isopropynol&lt;br /&gt;
*Place the CF socket, CPLD and flash chip first&lt;br /&gt;
*Next place the VRM, LED driver and resistor networks&lt;br /&gt;
*Then place LEDs, resistors and SMT capacitors&lt;br /&gt;
*Next thoroughly wash the board using a toothbrush to ensure flux is removed from between SMT pins&lt;br /&gt;
*Next add the through-hole components (DIP switch, headers and 47uF capacitor), then wash again&lt;br /&gt;
*Before use inspect all connections with a magnifying glass to ensure there are no shorts between pins.  Inspect the CF header leads as solder can sometimes flow up the leads during assembly causing a short away from the PCB itself.&lt;br /&gt;
&lt;br /&gt;
=== Programming the CPLD ===&lt;br /&gt;
&lt;br /&gt;
See [[lo-tech XT-CF CPLD Programming Guide]].&lt;br /&gt;
&lt;br /&gt;
== ROM &amp;amp; BIOS ==&lt;br /&gt;
&lt;br /&gt;
=== ROM ===&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of [http://www.sst.com/dotAsset/40746.pdf SST39SF0x0A flash chips] (TSOP32, 8x14mm) of 1Mb, 2Mb or 4Mb capacity&lt;br /&gt;
*Regardless of the chip used, the first 32KB only will be mapped into the PC address space&lt;br /&gt;
*Base address configuration per [[#DIP Switch Settings|DIP Switch Settings]]&lt;br /&gt;
&lt;br /&gt;
=== BIOS ===&lt;br /&gt;
&lt;br /&gt;
This card was supported by the [[XTIDE Universal BIOS]].&lt;br /&gt;
&lt;br /&gt;
== Bill Of Materials ==&lt;br /&gt;
&lt;br /&gt;
[http://www.farnell.com Farnell] Parts List:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Part(s)&lt;br /&gt;
!Description&lt;br /&gt;
!Package&lt;br /&gt;
!Value&lt;br /&gt;
!Qty Required&lt;br /&gt;
!Farnell Code&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || XC9572 72-cell 3.3v CPLD || TQFP100 || -  || 1 || 1193233&lt;br /&gt;
|-&lt;br /&gt;
| IC2 || SST39SF0x0A Flash || TSOP32 (8x14mm) || 1, 2 or 4Mb || 1 || 1829977&lt;br /&gt;
|-&lt;br /&gt;
| IC3 || SCHMITT TRIG, INV GATE 74LVC1G14 || SOT-25 || - || 1 || 1893833&lt;br /&gt;
|-&lt;br /&gt;
| VR1 || SPX3819M5-L-3-3 - LDO, 500MA, 3.3V, LOW NOISE || SOT-23-5 || - || 1 || 1831949&lt;br /&gt;
|-&lt;br /&gt;
| C1 || Electrolytic Capacitor || Radial, 2mm pitch, 5mm diameter || 47uF to 100uF, 10V+ || 1 || 8767114&lt;br /&gt;
|-&lt;br /&gt;
| C2, C14 || Ceramic Capacitor (X5R or X7R) || 0805 || 10uF, 10V+ || 2 || 1833812&lt;br /&gt;
|-&lt;br /&gt;
| C12..13 || Ceramic Capacitor (X5R or X7R) || 0603 || 1uF, 10V+ || 2 || 1828801&lt;br /&gt;
|-&lt;br /&gt;
| C3..11 || Ceramic Capacitor (X5R or X7R) || 0603 || 0.1uF, 10V+ || 9 || 1414610&lt;br /&gt;
|-&lt;br /&gt;
| R2  || Resistor || 0603 || RESISTOR, 10K, 0.1W || 1 || 1469748&lt;br /&gt;
|-&lt;br /&gt;
| R3, R5  || Resistor || 0603 || RESISTOR, 1K, 0.1W  || 2 || 2008355 or 1652848&lt;br /&gt;
|-&lt;br /&gt;
| R4  || Resistor || 0603 || RESISTOR, 270R, 0.1W || 1 || 2059585&lt;br /&gt;
|-&lt;br /&gt;
| R6  || Resistor || 0603 || RESISTOR, 5K6, 0.1W || 1 || 1739171&lt;br /&gt;
|-&lt;br /&gt;
| RN1, RN2 || Resistor Network || 1206 || RESISTOR NETWORK, 10K, ± 2% || 2 || 1770137&lt;br /&gt;
|-&lt;br /&gt;
| LED1 || Low-current LED || 0805 || LED, SMD || 1 || 1685055&lt;br /&gt;
|-&lt;br /&gt;
| SW1 || 8-way DIP switch || DIL || SWITCH, DIL, 8WAY || 1 || 9471596&lt;br /&gt;
|-&lt;br /&gt;
| CF1 || 3M N7E50-Q516 Compact Flash Header || - || 3M N7E50-Q516xx-x0 || 1 || 1267444&lt;br /&gt;
|-&lt;br /&gt;
| EXT.LED || 2-pin Header || - || HEADER, 1ROW, 2WAY || 1 || 3418285&lt;br /&gt;
|-&lt;br /&gt;
| JP1 || 3-pin Header || - || HEADER, 1ROW, 3WAY || 1 || 3418297&lt;br /&gt;
|-&lt;br /&gt;
| JTAG || 6-pin Header || - || HEADER, 2ROW, 6WAY || 1 || 3418492&lt;br /&gt;
|-&lt;br /&gt;
| - || Jumper for CF Card Voltage Selection || - || - || 1 || 1740370&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*EXT.LED and R4 can be omited if external activity LED is not required&lt;br /&gt;
*LED and R5 can be omited if on-board activity LED is not required&lt;br /&gt;
*IC3, R4, R5, LED and EXT.LED can be omited if no activity LEDs are required&lt;br /&gt;
*There is no &#039;R1&#039;&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
[[file:peacon-xt-cf-bracket.png|200px|right|thumb|XT-CF Adapter ISA Bracket]]&lt;br /&gt;
*ISA Bracket Design per sketch&lt;br /&gt;
*To minimise production cost, design has no threaded holes (simple nut-and-bolt required)&lt;br /&gt;
*Production likely to also exclude bending&lt;br /&gt;
*CAM Files: (in development)&lt;br /&gt;
&lt;br /&gt;
== Compatibility and Interoperability ==&lt;br /&gt;
&lt;br /&gt;
=== Use with Other Cards ===&lt;br /&gt;
&lt;br /&gt;
*The card can be configured to use DMA Ch.3 or not to - see [[XT-CFv2#DIP_Switch_Settings|DIP Switch Settings]]&lt;br /&gt;
*The IO port address set via the DIP switches must match that set in the XTIDE Universal BIOS configuration utility&lt;br /&gt;
*The BIOS address can be changed via the DIP switches without changing the BIOS itself&lt;br /&gt;
&lt;br /&gt;
=== Media Compatibility ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Media&lt;br /&gt;
!Type&lt;br /&gt;
!Capacity&lt;br /&gt;
!At 3.3V&lt;br /&gt;
!At 5V&lt;br /&gt;
!Tester&lt;br /&gt;
|-&lt;br /&gt;
| Extreme CF Adapter || SD to Type II CF Adapter || Dependent on SD Card || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| Kingston CF/128 || CF || 128MB || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| PQI Industrial || CF || 1 GB || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk Ultra II || CF || 2 GB || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| SanDisk Ultra (30MB/s) || CF || 4 GB || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| Seagate ST1 || Microdrive || 5 GB || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| VERBATIM 44039 || CF || 4 GB || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Systems Compatibility ===&lt;br /&gt;
&lt;br /&gt;
System compatibility has determined using the [[DOS Disk Tester]] utility with a pattern test of at least 10 passes of 4MB (the default).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!System&lt;br /&gt;
!CPU&lt;br /&gt;
!Status&lt;br /&gt;
!Disk Tester Version&lt;br /&gt;
!Tester&lt;br /&gt;
|-&lt;br /&gt;
| [[IBM Personal Computer 5150|IBM PC 5150]] || [[Intel 8088]] || - || 2.3 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[IBM Portable Computer 5155|IBM Portable PC 5155]] || [[Intel 8088]] || -  || 2.3 || -&lt;br /&gt;
|-&lt;br /&gt;
| [[IBM Personal Computer XT 5160|IBM PC/XT 5160]] || [[NEC V20]] || - || 2.3 || -&lt;br /&gt;
|-&lt;br /&gt;
| Chaintech 5SIM || IDT WinChip P200 || - || 2.3 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
=== Factors Affecting Performance ===&lt;br /&gt;
&lt;br /&gt;
*The host CPU speed&lt;br /&gt;
*The system type (PC/XT vs PC/AT)&lt;br /&gt;
*For PC/AT and newer systems, whether the BIOS can be shadowed in system RAM or not&lt;br /&gt;
*The operating mode (IO-mapped, memory-mapped or DMA)&lt;br /&gt;
*The multi-sector transfer support in the media&lt;br /&gt;
&lt;br /&gt;
Many Compact Flash cards support only single-sector transfers, which results in increased BIOS overhead, particularly in DMA transfer mode (since the DMA controller must be programmed for each sector).&lt;br /&gt;
&lt;br /&gt;
=== General Performance Notes ===&lt;br /&gt;
&lt;br /&gt;
*IO-mapped transfer mode is slowest on all platforms but needs the least resources and has the best compatibility&lt;br /&gt;
*Memory-mapped transfer mode (enabled once DOS has booted with the [[lo-tech XT-CF Configuration Utility]]) offers increased performance but needs a 4KB transfer block available, for example at D800h.&lt;br /&gt;
**On PC/AT and newer systems, this (combined with ZWS configuration) will offer highest throughput&lt;br /&gt;
**This mode makes use of the bus interface logic by using 16-bit instructions (&amp;lt;tt&amp;gt;rep movsw&amp;lt;/tt&amp;gt;), and therefore depends on proper implementation of that logic to work (some machines may not support this mode)&lt;br /&gt;
*DMA transfer mode (enabled once DOS has booted with the [[lo-tech XT-CF Configuration Utility]]) is fastest on PC/XT class hardware, but needs DMA Ch.3 available, so cannot be used if another device is using DMA Ch.3 (such as an MFM disk controller)&lt;br /&gt;
*ROM shadowing will offer significant performance gains on newer hardware, since the flash ROM is both 8-bit and ISA bus speed limited (BIOS code will be fetched much more efficiently from system RAM)&lt;br /&gt;
&lt;br /&gt;
=== Sample System Measured Throughput ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!System !!CPU !!Transfer Mode !!Media type !!Throughput&lt;br /&gt;
|-&lt;br /&gt;
|IBM PC/XT ||4.77MHz 8088 ||IO-mapped ||CF card supporting single-sector transfers ||150KB/s&lt;br /&gt;
|-&lt;br /&gt;
|IBM PC/XT ||4.77MHz 8088 ||DMA ||CF card supporting multi-sector transfers ||500KB/s&lt;br /&gt;
|-&lt;br /&gt;
|Amstrad PC2086 ||12.5MHz 80286 ||Memory-mapped ZWS ||CF card supporting multi-sector transfers ||1MB/s&lt;br /&gt;
|-&lt;br /&gt;
|Generic Pentium ||200MHz Pentium ||Memory-mapped ZWS ||CF card supporting multi-sector transfers ||1.6MB/s&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DIP Switch Settings ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Switch&lt;br /&gt;
!Function&lt;br /&gt;
!On&lt;br /&gt;
!Off&lt;br /&gt;
|-&lt;br /&gt;
|1 || IO Port A8 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|2 || IO Port A6 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|3 || ISA B8 / DMA Functions || ISA B8 Enabled || DMA Ch.3 Enabled&lt;br /&gt;
|-&lt;br /&gt;
|4 || ISA B8 Function Type (if enabled) || PC-AT (Zero-wait-state) || PC-XT Slot 8&lt;br /&gt;
|-&lt;br /&gt;
|5 || ROM A17 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|6 || ROM A16 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|7 || ROM A15 || 1 || 0&lt;br /&gt;
|-&lt;br /&gt;
|8 || ROM Enable || Enabled || Disabled&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Default settings are:&lt;br /&gt;
&lt;br /&gt;
*IO port 300h&lt;br /&gt;
*DMA Operation Enabled and ISA B8 function disabled&lt;br /&gt;
*ROM base address D000h&lt;br /&gt;
*ROM enabled&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!1 !!2 !!3 !!4 !!5 !!6 !!7 !!8&lt;br /&gt;
|-&lt;br /&gt;
|ON || OFF || OFF || OFF || OFF || ON || OFF || ON &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== IO Range ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!IO Port Base Address&lt;br /&gt;
!Sw1&lt;br /&gt;
!Sw2&lt;br /&gt;
|-&lt;br /&gt;
|200h || OFF || OFF&lt;br /&gt;
|-&lt;br /&gt;
|240h || OFF || ON&lt;br /&gt;
|-&lt;br /&gt;
|300h (Default) || ON || OFF&lt;br /&gt;
|-&lt;br /&gt;
|340h || ON || ON&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the IO base address is set within the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS] ROM image via the [http://code.google.com/p/xtideuniversalbios/wiki/Manual_v2_0_0#Using_XTIDECFG.COM_(XTIDE_Universal_BIOS_configuration_and_flash Universal BIOS Configuration and Flashing utility].  The IO address set within that utility must much that configured on the card via switches 1 and 2.  Should the IO port address be changed for any reason, the BIOS must be updated and re-flashed to the XT-CFv2 card (using the [[lo-tech XT-CF flash utility]]).&lt;br /&gt;
&lt;br /&gt;
=== ROM Base Address ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!ROM Base Address&lt;br /&gt;
!Sw5&lt;br /&gt;
!Sw6&lt;br /&gt;
!Sw7&lt;br /&gt;
|-&lt;br /&gt;
|C000h || OFF || OFF || OFF&lt;br /&gt;
|-&lt;br /&gt;
|C800h || OFF || OFF || ON&lt;br /&gt;
|-&lt;br /&gt;
|D000h (Default) || OFF || ON || OFF&lt;br /&gt;
|-&lt;br /&gt;
|D800h || OFF || ON || ON&lt;br /&gt;
|-&lt;br /&gt;
|E000h || ON || OFF || OFF&lt;br /&gt;
|-&lt;br /&gt;
|E800h || ON || OFF || ON&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The BIOS address is determined at boot time by the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS].  Since the code has been designed to be relocatable, the BIOS base address can be changed with switches 5-7 without the need to reconfigure the Universal BIOS.&lt;br /&gt;
&lt;br /&gt;
Note that the BIOS base address is not related to the memory-mapped IO transfer address, except that the two ranges cannot overlap - see the [[lo-tech XT-CF Configuration Utility]].&lt;br /&gt;
&lt;br /&gt;
=== ISA B8 and DMA Function ===&lt;br /&gt;
&lt;br /&gt;
ISA B8 in the PC/XT [[IBM Personal Computer XT System Board Slot 8|was used as a card select line to read from a card physically in the ISA slot closest to the CPU (known as slot 8)]], and has no function in other slots in the PC/XT.  Preliminary research has shown that it&#039;s also unconnected in PC/XT clones (including, for example, the Tandy 1000TL despite that being an [[Intel 80286]] based machine).  In PC/AT and above, the line was used instead to shorten card access cycles by eliminating wait-states. &lt;br /&gt;
&lt;br /&gt;
The logic design of the PC/XT system board prevents DMA transfers being performed from slot 8, so slot 8 function and DMA are mutually exclusive.  Also note that memory-mapped transfers, that benefit from reduced wait states, are faster for PC/AT class hardware.  Therefore, switch 3 switches between DMA or slot 8 / reduced wait states.&lt;br /&gt;
&lt;br /&gt;
However, for the XT-CFv2 card to co-exist in a system with an MFM controller or other device that requires DMA Ch.3, DMA must be disabled by setting switch 3 to ON.  The card doesn&#039;t though need to be in slot 8, since the line serves no purpose in the other slots.&lt;br /&gt;
&lt;br /&gt;
Sample switch positions:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Card Placement !! DMA function !! Sw3 !! Sw4&lt;br /&gt;
|-&lt;br /&gt;
|PC/XT or clone || Enabled || OFF || OFF&lt;br /&gt;
|-&lt;br /&gt;
|PC/XT or clone || Disabled || ON || OFF&lt;br /&gt;
|-&lt;br /&gt;
|PC/XT slot-8 || Disabled || ON || OFF&lt;br /&gt;
|-&lt;br /&gt;
|PC/AT or newer || Disabled || ON || ON&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
*Activity LED is lit when a CF card isn&#039;t inserted.  Could be resolved by adding a 50k PU to /PDIAG.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[XT-IDE]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CFv3_Board&amp;diff=1541</id>
		<title>Lo-tech XT-CFv3 Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CFv3_Board&amp;diff=1541"/>
		<updated>2022-08-17T17:38:25Z</updated>

		<summary type="html">&lt;p&gt;James: Redirected page to XT-CFv3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[XT-CFv3]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_Board_Technical_Reference&amp;diff=1540</id>
		<title>Lo-tech XT-CF Board Technical Reference</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_Board_Technical_Reference&amp;diff=1540"/>
		<updated>2022-08-17T17:36:36Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Technical Reference manual for the [[lo-tech XT-CF Board]].&lt;br /&gt;
&lt;br /&gt;
== CPLD Code Design ==&lt;br /&gt;
&lt;br /&gt;
The CPLD code has been developed using Xilinx ISE version 13, using schematics, for the XC9572XL CPLD device.  The starting point was the code generated by Dangerous Prototypes forum member Pietja, for use with the [[Dangerous_Prototypes_XT-IDE_Boards#Version_2|Dangerous Prototypes XT/IDE v2 board]].&lt;br /&gt;
&lt;br /&gt;
=== ROM_DECODER Module ===&lt;br /&gt;
&lt;br /&gt;
The ROM decoder matches the PC address bus against the configuration of appropriate DIP switches, providing an asserted (low) signal output when a match is found, that signal being used to enabled the board ROM.  It is a direct transcription of a 74521 or 74688 chip, output being disabled when AEN is asserted.&lt;br /&gt;
&lt;br /&gt;
Once enabled, data is transferred from the ROM itself under the control of /MEMR and /MEMW and the low 14-bits of the PC address bus.&lt;br /&gt;
&lt;br /&gt;
=== IDE_DECODER Module ===&lt;br /&gt;
&lt;br /&gt;
The IDE decoder matches the PC address bus against two address locations:&lt;br /&gt;
&lt;br /&gt;
*For port-based IO, A5..8 are matched to the configuration set by the DIP switches on the board (by default, base is 300h), A9 being high and A19 being low&lt;br /&gt;
*For memory-mapped IO, A12..19 (the upper 8 bits) are matched to the value stored in the memory-mapped IO register (a latch), output being asserted also only if A19 in the latch has been set to 1.  A10 and A11 must also be low.&lt;br /&gt;
*In both cases, AEN suppresses output when asserted.&lt;br /&gt;
&lt;br /&gt;
If either are matched, CS_IDE is asserted (low).  Additionally, CS_IDE_MEM is asserted (low) if the memory-mapped IO address is matched.&lt;br /&gt;
&lt;br /&gt;
Other outputs generate control information, for example to enable the IDE_MUX to provide the controller ID byte when a read to the controller ID port is made.&lt;br /&gt;
&lt;br /&gt;
The decoder also provides mapping of PC address bus lines to the IDE interface address lines, DA0..2, according to the &#039;[http://www.vintage-computer.com/vcforum/showthread.php?23971 Chuck Mod]&#039; logic, whereby IDE DA0 is connected to PC address bus A3 (instead of A0, as might be expected):&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!PC Address Line !!IDE Address Line&lt;br /&gt;
|- &lt;br /&gt;
|A0 || -&lt;br /&gt;
|-&lt;br /&gt;
|A1 || DA1&lt;br /&gt;
|-&lt;br /&gt;
|A2 || DA2&lt;br /&gt;
|-&lt;br /&gt;
|A3 || DA0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This presentation leaves A0 free to be used to switch between low and high bytes of each 16-bit word, thereby enabling faster transfers via word instructions.  Otherwise, for example if A3 were used to switch bytes, individual byte transfers and XOR instructions with a bit-mask would be needed, which reduces throughput (significantly).&lt;br /&gt;
&lt;br /&gt;
Note that when CS_IDE is asserted based on memory-mapped IO address match, DA0..2 are held low; because of this the memory-mapped function can be used only for sector data transfers.&lt;br /&gt;
&lt;br /&gt;
=== IDE_MUX Module ===&lt;br /&gt;
&lt;br /&gt;
The IDE mux module provides the interface between the 8-bit PC bus, PCBD(7:0), and the 16-bit IDE bus, presented in two 8-bit components as IDE_DH(7:0) and IDE_DL(7:0).  The mux works by storing a byte in a latch when required, then subsequently presenting that byte either to the PC data bus (for reads) or the IDE interface (for writes, concurrently with the data from the PC data bus to make up the required 16-bits).&lt;br /&gt;
&lt;br /&gt;
The mux component also provides the logic to present the device ID byte (via port Base+0Fh) and a latch that can be loaded with the memory-mapped IO base address (also via port Base+0Fh).&lt;br /&gt;
&lt;br /&gt;
The mux is enabled by IDE_DECODER module output CS_IDE, being asserted if either memory-mapped or port-mapped addresses match the configured ranges.&lt;br /&gt;
&lt;br /&gt;
Since IO operations are addressed by A0..A9 and memory operations are addressed with A0..A19, use of the /MEMR and /MEMW signals (for memory-mapped IO) must be checked against the memory mapped base address specifically (given by CS_IDE_MEM).  Without this check, a memory read matching the IO port range in A0..A9 could trigger some IDE function.   The reverse test is not necessary for /IOR and /IOW, since A10..A19 will always be low during IO operation, hence the CS_IDE_MEM signal could not be asserted concurrently.&lt;br /&gt;
&lt;br /&gt;
== Port Based IO ==&lt;br /&gt;
&lt;br /&gt;
The base port address (Base) is configured via the [[lo-tech_XT-CF_Board#DIP_Switch_Settings|DIP switches]].  Since the logic uses A0..A4, 32 consecutive ports are used (Base+00h to Base+1Fh).&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Base+ !! Function&lt;br /&gt;
|-&lt;br /&gt;
|00h || Sector transfer (read low-byte)&lt;br /&gt;
|-&lt;br /&gt;
|01h || Sector transfer (read high-byte)&lt;br /&gt;
|-&lt;br /&gt;
|02h to 0Eh || IDE functions (note address line mapping)&lt;br /&gt;
|-&lt;br /&gt;
|0Fh || Read controller ID byte or set memory-mapped IO base address&lt;br /&gt;
|-&lt;br /&gt;
|10h || Sector transfer (write low-byte)&lt;br /&gt;
|-&lt;br /&gt;
|11h || Sector transfer (write high-byte)&lt;br /&gt;
|-&lt;br /&gt;
|12h to 1Fh || IDE control register access (note address line mapping)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The controller uses A0 to determine if the low or high order byte is being transferred, and A4 to determine if the operation is read or write:&lt;br /&gt;
&lt;br /&gt;
*For reads, A0 inverts IDE /CS0 and /CS1, such that the read command is driven on to the IDE bus only when accessing port Base+00h.  When A0 is asserted, the two CS lines are switched, the three IDE lines DA0..2 remaining low, yielding a no-op as viewed by the IDE device.  This allows the high order byte to be transferred from the latch to the PC data bus.&lt;br /&gt;
*For writes, the operation of the IDE /CS0 and /CS1 inversion based on A0 is itself inverted by A3 being asserted.  That is, the IDE device sees the write to port Base+10h as a no-op, allowing the low order byte to be stored in the latch, and the write to port Base+11h as a valid write.  The IDE word write will consist of IDE_DL(7:0), being presented from the latch, and IDE_DH(7:0), being presented from the byte on the PC data bus.&lt;br /&gt;
&lt;br /&gt;
Controller specific functions:&lt;br /&gt;
&lt;br /&gt;
*Reading from port Base+0Fh returns the controller ID byte, a fixed value coded into the CPLD logic:&lt;br /&gt;
**03h = Port-based &#039;enhanced&#039; operation (word-transfer logic)&lt;br /&gt;
**04h = As type 03h, but also with memory-mapped CPLD logic&lt;br /&gt;
**The original board and the &#039;standard&#039; CPLD code do not return a specific value from this port&lt;br /&gt;
*Memory-mapped IO is enabled by setting the high 8-bits of the required memory-mapped base address via writing to port Base+0Fh, and disabled by writing a value of 0 to the same port.  The function is disabled at power-up, and can be enabled and disabled on-the-fly.&lt;br /&gt;
&lt;br /&gt;
== Memory Mapped IO ==&lt;br /&gt;
&lt;br /&gt;
Memory mapped IO is a method of transferring data from a device as though it were system memory (so using A0..19 and /MEMR and /MEMW signals, instead of the /IOR and /IOW signals used for port-based IO).  This technique offers a performance advantange on the 8088 CPU, since &amp;lt;tt&amp;gt;rep movsw&amp;lt;/tt&amp;gt; can be used (25 cycles/word) instead of seperate load, store and loop instructions (30 to 48 cycles/word, depending on loop unrolling).  (Note that 8-bit ISA bus timing is the same for both methods.)&lt;br /&gt;
&lt;br /&gt;
IDE control and enquiry functions are always completed through the IO ports as detailed above, but sector data can be transferred by either port-based or memory-mapped IO (provided the controller ID port returns 04h).&lt;br /&gt;
&lt;br /&gt;
To enable memory-mapped IO, the high 8-bits of the required memory-mapped base address are loaded through port Base+0Fh, noting that the MSB must be asserted.  The card will then enable transfers through that base address in two ranges within a 4KB aligned 1KB block:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Base+ !! Function&lt;br /&gt;
|-&lt;br /&gt;
|0000h to 01FFh || Read window&lt;br /&gt;
|-&lt;br /&gt;
|0200h to 03FFh || Write window&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Only the transfer of sector data can be performed; IDE DA0..DA2 are held low during such IO.  The transfer must be made in asceding sequence since words will be committed to (or read from) the IDE interface synchronously (the card buffer is only one byte, in the IDE_MUX module).&lt;br /&gt;
&lt;br /&gt;
*As with port-based IO, the controller uses A0 to determine if the low or high byte is being transferred&lt;br /&gt;
*A9 is used to determine if the operation is read or write&lt;br /&gt;
*A1..A8 are not monitored, allowing the CPU to cycle though the 512 bytes in asceding order starting at zero, using &amp;lt;tt&amp;gt;rep movsw&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if the IO transfer window is to be D800:0000, send D8h to port Base+0Fh.  Data can then be read from D800:0000-01FF, or written to D800:0200-03FF.&lt;br /&gt;
&lt;br /&gt;
Once the transfer has been completed, memory-mapped IO function can be disabled by writing zero to port Base+0Fh.  Note that port-based IO can be used regardless of whether memory-mapped IO is enabled or not.&lt;br /&gt;
&lt;br /&gt;
== Programming Examples ==&lt;br /&gt;
&lt;br /&gt;
The following code examples illustrate block-mode transfers (i.e. of 1 to 128 sectors) for either port-mapped or memory-mapped controllers.  For the sake of simplicity, the memory-mapped base address is hard-coded where required.&lt;br /&gt;
&lt;br /&gt;
=== Block Read Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
	; Block read routine, with memory-mapped IO if supported&lt;br /&gt;
	; On-entry:&lt;br /&gt;
	; 	DX    : IDE controller base port (low 4-bits always zero)&lt;br /&gt;
	; 	CX    : sector count (max 128)&lt;br /&gt;
	; 	ES:DI : target memory buffer address&lt;br /&gt;
	; &lt;br /&gt;
	; Corrupts: AX, CX, DX&lt;br /&gt;
 &lt;br /&gt;
	or		dl, 0x0f	; set DX to conntroller ID port (base+0Fh)&lt;br /&gt;
	in		al, dx		; get controller type&lt;br /&gt;
	cmp		al, 4		; 4 = memory-mapped capable&lt;br /&gt;
	jne	.PortBasedRead		; use port-based IO if not type 4&lt;br /&gt;
	mov		al, 0xd8	; set AL to high 8-bits of mem-mapped IO base...&lt;br /&gt;
	out		dx, al		; ... send high 8-bits of segment address to controller ID port ...&lt;br /&gt;
	xor		ah, ah		; ... and clear AH ...&lt;br /&gt;
	xchg		al, ah		; ... and swap AL/AH - AX now contains base address for reads&lt;br /&gt;
	push		ds		;&lt;br /&gt;
	push		si		; save DS:SI&lt;br /&gt;
	mov		ds, ax		; move segment address in AX to DS&lt;br /&gt;
	mov		ax, cx		; store total sector count in AX&lt;br /&gt;
	xor		cx, cx		; clear CX&lt;br /&gt;
.ReadTransferLoop:			; sector-by-sector transfer loop (256 words each iteration)&lt;br /&gt;
					; note CX is zero at start of each iteration&lt;br /&gt;
	mov		si, cx		; clear SI; DS:SI now has mem-mapped IO base address&lt;br /&gt;
	inc		ch		; memory-mapped window is 512 bytes, CX now has 256 (words)&lt;br /&gt;
	rep		movsw		; do the transfer from [DS:SI] to [ES:DI], count in CX (256)&lt;br /&gt;
	dec		ax		; reduce number of sectors still to get&lt;br /&gt;
	jnz	.ReadTransferLoop	; repeat, if there&#039;s more to do (zero flag set by dec)&lt;br /&gt;
	out		dx, al		; we&#039;re done; disable memory-mapped IO (AL will be zero)&lt;br /&gt;
	pop		si&lt;br /&gt;
	pop		ds		; restore register values&lt;br /&gt;
	ret&lt;br /&gt;
.PortBasedRead:&lt;br /&gt;
	xchg		cl, ch		; Sectors to words (SHL 8)&lt;br /&gt;
	and		dl, 0xf0	; restore value in DX (the read IO port)&lt;br /&gt;
	shr		cx, 1		; &lt;br /&gt;
	shr		cx, 1		; &lt;br /&gt;
	shr		cx, 1		; words to octa-words (16 bytes - shr 3)&lt;br /&gt;
.ReadNextOctaword:			; port-based IO code follows, unrolling improves throughput&lt;br /&gt;
	in		ax, dx		; Read 1st word&lt;br /&gt;
	stosw				; Store 1st word to [ES:DI]&lt;br /&gt;
	in		ax, dx&lt;br /&gt;
	stosw				; 2nd&lt;br /&gt;
	in		ax, dx&lt;br /&gt;
	stosw				; 3rd&lt;br /&gt;
	in		ax, dx&lt;br /&gt;
	stosw				; 4th&lt;br /&gt;
	in		ax, dx		; &lt;br /&gt;
	stosw				; 5th&lt;br /&gt;
	in		ax, dx&lt;br /&gt;
	stosw				; 6th&lt;br /&gt;
	in		ax, dx&lt;br /&gt;
	stosw				; 7th&lt;br /&gt;
	in		ax, dx&lt;br /&gt;
	stosw				; 8th	&lt;br /&gt;
	loop	.ReadNextOctaword	; 17 clocks on 8088 hence unrolling&lt;br /&gt;
	ret&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Block Write Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
	; Block write routine, with memory-mapped IO if supported&lt;br /&gt;
	; On-entry:&lt;br /&gt;
	; 	DX    : IDE controller base port (low 4-bits always zero)&lt;br /&gt;
	; 	CX    : sector count (max 128)&lt;br /&gt;
	; 	ES:SI : source memory buffer address&lt;br /&gt;
	; &lt;br /&gt;
	; Corrupts: AX, CX, DX&lt;br /&gt;
 &lt;br /&gt;
	push		ds		; save DS&lt;br /&gt;
	mov		ax, es		;&lt;br /&gt;
	mov		ds, ax		; move ES to DS via AX; DS:SI now pointer to source memory buffer&lt;br /&gt;
	or		dl, 0x0f	; set DX to conntroller ID port (base+0Fh)&lt;br /&gt;
	in		al, dx		; get controller type&lt;br /&gt;
	cmp		al, 4		; 4 = memory-mapped capable&lt;br /&gt;
	jne	.PortBasedWrite		; use port-based IO if not type 4&lt;br /&gt;
	mov		al, 0xd8	; set AL to high 8-bits of mem-mapped IO base...&lt;br /&gt;
	out		dx, al		; ,.. send high 8-bits of segment address to controller ID port ...&lt;br /&gt;
	mov		ah, al		; ... mov AL to AH ...&lt;br /&gt;
	mov		al, 0x20	; ... and set AL to write offset.  AX now contains write base address&lt;br /&gt;
	push		es		;&lt;br /&gt;
	push		di		; save ES:DI&lt;br /&gt;
	mov		es, ax		; move segment address in AX to ES&lt;br /&gt;
	mov		ax, cx		; store total word count in AX&lt;br /&gt;
	xor		cx, cx		; clear CX&lt;br /&gt;
.WriteTransferLoop:			; sector-by-sector transfer loop (256 words each iteration)&lt;br /&gt;
					; note CX is zero at start of each iteration&lt;br /&gt;
	mov		di, cx		; clear DI - ES:DI now has mem-mapped IO write base address&lt;br /&gt;
	inc		ch		; memory-mapped window is 512 bytes, CX now has 256 (words)&lt;br /&gt;
	rep		movsw		; do the transfer from [DS:SI] to [ES:DI], count in CX (256)&lt;br /&gt;
	dec		ax		; reduce number of sectors still to write&lt;br /&gt;
	jnz	.WriteTransferLoop	; repeat, if there&#039;s more to do (zero flag set by dec)&lt;br /&gt;
	out		dx, al		; disable memory-mapped IO (AL will be 0)&lt;br /&gt;
	pop		di		;&lt;br /&gt;
	pop		es		;&lt;br /&gt;
	pop		ds		; restore register values&lt;br /&gt;
	ret&lt;br /&gt;
.PortBasedWrite:			; Port-based IO routine follows&lt;br /&gt;
	xchg		cl, ch		; Sectors to words (SHL 8)&lt;br /&gt;
	shr		cx, 1		; &lt;br /&gt;
	shr		cx, 1		; &lt;br /&gt;
	shr		cx, 1		; words to octa-words (16 bytes - shr 3)&lt;br /&gt;
	xor		dl, 0x1f	; restore value in DX to Base+10h&lt;br /&gt;
.WriteNextOctaword:			; port-based IO code follows, unrolling improves throughput&lt;br /&gt;
	lodsw				; Load 1st word from [DS:SI]&lt;br /&gt;
	out		dx, ax		; Write 1st word&lt;br /&gt;
	lodsw&lt;br /&gt;
	out		dx, ax		; 2nd&lt;br /&gt;
	lodsw&lt;br /&gt;
	out		dx, ax		; 3rd&lt;br /&gt;
	lodsw&lt;br /&gt;
	out		dx, ax		; 4th&lt;br /&gt;
	lodsw				; &lt;br /&gt;
	out		dx, ax		; 5th&lt;br /&gt;
	lodsw&lt;br /&gt;
	out		dx, ax		; 6th&lt;br /&gt;
	lodsw&lt;br /&gt;
	out		dx, ax		; 7th&lt;br /&gt;
	lodsw&lt;br /&gt;
	out		dx, ax		; 8th&lt;br /&gt;
	loop	.WriteNextOctaword	; 17 clocks on 8088, hence unrolling&lt;br /&gt;
	pop		ds		; restore DS to entry state&lt;br /&gt;
	ret&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[lo-tech XT-CF Board]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Tandy_1400_Series_Expansion_Slots&amp;diff=1539</id>
		<title>Tandy 1400 Series Expansion Slots</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Tandy_1400_Series_Expansion_Slots&amp;diff=1539"/>
		<updated>2022-08-17T17:35:28Z</updated>

		<summary type="html">&lt;p&gt;James: /* Expansion Slot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Tandy 1400 Series Laptops]] included a two expansion slots on a riser card under the right-hand drive bay:&lt;br /&gt;
&lt;br /&gt;
*Expansion slot - all variants&lt;br /&gt;
*Memory Expansion slot - [[Tandy 1400LT]]&lt;br /&gt;
*Hard Disk Controller slot - [[Tandy 1400FD]] and [[Tandy 1400HD]]&lt;br /&gt;
&lt;br /&gt;
The memory fitted to the memory expansion slot in the 1400LT was included on the FD/HD motherboard - all machines had 768KB RAM.&lt;br /&gt;
&lt;br /&gt;
== Expansion Slot ==&lt;br /&gt;
&lt;br /&gt;
=== Mechanical Drawing ===&lt;br /&gt;
&lt;br /&gt;
From the [{{SERVER}}/downloads/manuals/tandy/Tandy_1400LT_Service_Manual.pdf 1400LT Service Manual] (page 4-66):&lt;br /&gt;
&lt;br /&gt;
[[file:Tandy-1400-Expansion-Slot-PCB-Mechanical-Drawing.png]]&lt;br /&gt;
&lt;br /&gt;
=== Pinout ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin !!Signal !!Notes&lt;br /&gt;
|-&lt;br /&gt;
| P1 || N/C || -&lt;br /&gt;
|-&lt;br /&gt;
| P2 || 5V || 200mA max&lt;br /&gt;
|-&lt;br /&gt;
| P3 || /ENABLE || -&lt;br /&gt;
|-&lt;br /&gt;
| P4 || N/C || -&lt;br /&gt;
|-&lt;br /&gt;
| P5 || N/C || -&lt;br /&gt;
|-&lt;br /&gt;
| P6 || /DACK0 || System RAM refresh&lt;br /&gt;
|-&lt;br /&gt;
| P7 || IRQ3 || -&lt;br /&gt;
|-&lt;br /&gt;
| P8 || N/C || -&lt;br /&gt;
|-&lt;br /&gt;
| P9 || GND || -&lt;br /&gt;
|-&lt;br /&gt;
| P10 || A0 || -&lt;br /&gt;
|-&lt;br /&gt;
| P11 || A1 || -&lt;br /&gt;
|-&lt;br /&gt;
| P12 || A2 || -&lt;br /&gt;
|-&lt;br /&gt;
| P13 || A3 || -&lt;br /&gt;
|-&lt;br /&gt;
| P14 || A4 || -&lt;br /&gt;
|-&lt;br /&gt;
| P15 || A5 || -&lt;br /&gt;
|-&lt;br /&gt;
| P16 || A6 || -&lt;br /&gt;
|-&lt;br /&gt;
| P17 || A7 || -&lt;br /&gt;
|-&lt;br /&gt;
| P18 || GND || -&lt;br /&gt;
|-&lt;br /&gt;
| P19 || A8 || -&lt;br /&gt;
|-&lt;br /&gt;
| P20 || A9 || -&lt;br /&gt;
|-&lt;br /&gt;
| P21 || A10 || -&lt;br /&gt;
|-&lt;br /&gt;
| P22 || A11 || -&lt;br /&gt;
|-&lt;br /&gt;
| P23 || A12 || -&lt;br /&gt;
|-&lt;br /&gt;
| P24 || A13 || -&lt;br /&gt;
|-&lt;br /&gt;
| P25 || A14 || -&lt;br /&gt;
|-&lt;br /&gt;
| P26 || A15 || -&lt;br /&gt;
|-&lt;br /&gt;
| P27 || GND || -&lt;br /&gt;
|-&lt;br /&gt;
| P28 || A16 || -&lt;br /&gt;
|-&lt;br /&gt;
| P29 || A17 || -&lt;br /&gt;
|-&lt;br /&gt;
| P30 || A18 || -&lt;br /&gt;
|-&lt;br /&gt;
| P31 || A19 || -&lt;br /&gt;
|-&lt;br /&gt;
| P32 || D0 || -&lt;br /&gt;
|-&lt;br /&gt;
| P33 || D1 || -&lt;br /&gt;
|-&lt;br /&gt;
| P34 || D2 || -&lt;br /&gt;
|-&lt;br /&gt;
| P35 || D3 || -&lt;br /&gt;
|-&lt;br /&gt;
| P36 || GND || -&lt;br /&gt;
|-&lt;br /&gt;
| P37 || D4 || -&lt;br /&gt;
|-&lt;br /&gt;
| P38 || D5 || -&lt;br /&gt;
|-&lt;br /&gt;
| P39 || D6 || -&lt;br /&gt;
|-&lt;br /&gt;
| P40 || D7 || -&lt;br /&gt;
|-&lt;br /&gt;
| P41 || /EMW || -&lt;br /&gt;
|-&lt;br /&gt;
| P42 || /EMR || -&lt;br /&gt;
|-&lt;br /&gt;
| P43 || GND || -&lt;br /&gt;
|-&lt;br /&gt;
| P44 || /EIW || -&lt;br /&gt;
|-&lt;br /&gt;
| P45 || /EIR || -&lt;br /&gt;
|-&lt;br /&gt;
| P46 || /TC || Active low (opposite to ISA bus)&lt;br /&gt;
|-&lt;br /&gt;
| P47 || ALE || -&lt;br /&gt;
|-&lt;br /&gt;
| P48 || /BRST || Active low (opposite to ISA bus)&lt;br /&gt;
|-&lt;br /&gt;
| P49 || /DACK1 || -&lt;br /&gt;
|-&lt;br /&gt;
| P50 || IRQ2 || -&lt;br /&gt;
|-&lt;br /&gt;
| P51 || GND || -&lt;br /&gt;
|-&lt;br /&gt;
| P52 || 5V || 200mA max&lt;br /&gt;
|-&lt;br /&gt;
| P53 || ECLK || 50% duty cycle CPU clock&lt;br /&gt;
|-&lt;br /&gt;
| P54 || IRQ5 || -&lt;br /&gt;
|-&lt;br /&gt;
| P55 || DRQ3 || -&lt;br /&gt;
|-&lt;br /&gt;
| P56 || /DACK3 || -&lt;br /&gt;
|-&lt;br /&gt;
| P57 || BEN || -&lt;br /&gt;
|-&lt;br /&gt;
| P58 || DRQ1 || -&lt;br /&gt;
|-&lt;br /&gt;
| P59 || IOREADY || -&lt;br /&gt;
|-&lt;br /&gt;
| P60 || N/C || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[CompactFlash Adapter for Tandy 1400 Laptops]]&lt;br /&gt;
*[[Tandy 1400 Series Laptops]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Dangerous_Prototypes_XT-IDE_Boards&amp;diff=1538</id>
		<title>Dangerous Prototypes XT-IDE Boards</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Dangerous_Prototypes_XT-IDE_Boards&amp;diff=1538"/>
		<updated>2022-08-17T17:34:55Z</updated>

		<summary type="html">&lt;p&gt;James: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Dangerous Prototypes &#039;V1&#039; boards took the [[Vintage-Computer XT-IDE Board | original XT-IDE design]] and ported some of the functionality into a small [http://www.xilinx.com/support/documentation/data_sheets/DS063.pdf Xilinx 9500 series CPLD].  Because of short supply of 5V parts, the design was modified to use a 3.3V CPLD experimentally, and after successful testing of this the design was then ported to an entirely 3.3V CPLD based implementation with the V2.&lt;br /&gt;
&lt;br /&gt;
The CPLD reduces the component count (and hence cost), but many home assemblers are likely to be put off by the SMT components, although they are manageable with [[SMT Soldering Notes|only basic tools]].&lt;br /&gt;
&lt;br /&gt;
== BIOS ==&lt;br /&gt;
&lt;br /&gt;
Any of the standard [[XT-IDE#BIOS |XT-IDE BIOS&#039;s]] can be used.  Testing has been performed using the [http://code.google.com/p/xtideuniversalbios/ XTIDE universal BIOS], V1.15.&lt;br /&gt;
&lt;br /&gt;
== Varients ==&lt;br /&gt;
&lt;br /&gt;
*V1 - XC9572 CPLD with some 74LS series ICs, all SMT&lt;br /&gt;
*V1a - Revised to use XC9572XL (3.3V); has errors&lt;br /&gt;
*V1b - Corrected V1a; works well&lt;br /&gt;
*V2 - TQFP-100 XC9572XL CPLD with no other ICs.  See [[Dangerous Prototypes V2 Compatibility Notes]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
*[http://dangerousprototypes.com/docs/XT_IDE_disk_controller Project Home Page]&lt;br /&gt;
*[http://dangerous-prototypes-open-hardware.googlecode.com/svn/trunk/XTIDE_CPLD/ Code Repository]&lt;br /&gt;
&lt;br /&gt;
== Version 1 ==&lt;br /&gt;
&lt;br /&gt;
*The original cersion was never built, since the 5V XC9572 was discontinued before the board was finished&lt;br /&gt;
*The v1 board was made, but wasn&#039;t cut correctly&lt;br /&gt;
*The v1a board has a number of design errors, including 5 missing traces&lt;br /&gt;
*The v1b board is sound.  When constructed, a minor change to the CSEL header pin (pin 28) should be made to ensure drive compatibility.&lt;br /&gt;
&lt;br /&gt;
=== v1a ===&lt;br /&gt;
&lt;br /&gt;
[[file:dp-xtide-v1a.jpg|300px|right]]&lt;br /&gt;
[http://www.farnell.com Farnell] BoM:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Part(s)&lt;br /&gt;
!Description&lt;br /&gt;
!Package&lt;br /&gt;
!Value&lt;br /&gt;
!Qty Required&lt;br /&gt;
!Farnell Code&lt;br /&gt;
|-&lt;br /&gt;
| C1,C3,C4,C5,C7 || Ceramic Capacitor || C 0603 || 0.1uF || 5 || 1833863&lt;br /&gt;
|-&lt;br /&gt;
| C2 || Ceramic Capacitor || Case C || 47uF || 1 || 9695664&lt;br /&gt;
|-&lt;br /&gt;
| C6 || Ceramic Capacitor || C 0603 || 1uF || 10 || 1828801&lt;br /&gt;
|-&lt;br /&gt;
| DIP_SW || 8-way DIP switch || DIL || SWITCH, DIL, 8WAY || 1 || 9471596&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket || IC Socket || DIP-28 || SOCKET IC, DIL, 28WAY || 1 || 1077330&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || EEPROM (64k as 8K x8) || DIL-28 || 28C64 || 1 || 1095784&lt;br /&gt;
|-&lt;br /&gt;
| IC2 || 74HC688DW || SOIC-20 || 74HC688DW || 1 || 1740268&lt;br /&gt;
|-&lt;br /&gt;
| IC3, IC4 || 74HCT573D || SOIC-20 || 74HCT573D || 2 || 1201309&lt;br /&gt;
|-&lt;br /&gt;
| IC5 || 74HCT245DW || SOIC-20 || 74HCT245DW || 1 || 9591923&lt;br /&gt;
|-&lt;br /&gt;
| IC6 || XC9572 72-cell 3.3v CPLD || VQ44 || XC9572XL-10VQG44C || 1 || 1605849&lt;br /&gt;
|-&lt;br /&gt;
| IDE1 || 40-pin IDE Header || MA20-2 || HEADER, 2.54MM, BOXED, 2X20WAY || 1 || 8395977&lt;br /&gt;
|-&lt;br /&gt;
| JP1, JP2, JP3, JP7 || 16-pin Jumper Header (cut for each) || 2.54mm pitch || HEADER, 2ROW, 16WAY || 1 || 3418546&lt;br /&gt;
|-&lt;br /&gt;
| JP4 || 3-pin Jumper Header || 2.54mm pitch || HEADER, 1ROW, 3WAY || 1 || 3417657&lt;br /&gt;
|-&lt;br /&gt;
| JP6 || 6-pin Jumper Header || 2.54mm pitch || HEADER, 1ROW, 6WAY || 1 || 1187827&lt;br /&gt;
|-&lt;br /&gt;
| LED1 || Activity LED || 0805 || LED, SMD, RED || 1 || 1226389&lt;br /&gt;
|-&lt;br /&gt;
| R1,R2,R3,R4,R5,R6,R7 || Resistor || 0603 || RESISTOR, 10KR, 0.1W, 5% || 7 || 1469749&lt;br /&gt;
|-&lt;br /&gt;
| RN1, RN2 || Resistor Network || SIL9 || RESISTOR NETWORK, 10K, ± 2% || 2 || 9356819&lt;br /&gt;
|-&lt;br /&gt;
| VR1 || Voltage Regulator || SOT-23-5 || MIC5205-3.3YM5 || 1 || 1663083&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== v1b ===&lt;br /&gt;
&lt;br /&gt;
[[file:dp-xtide-v1b.jpg|300px|right]]&lt;br /&gt;
Enhancements over v1a:&lt;br /&gt;
&lt;br /&gt;
*Missing traces fixed&lt;br /&gt;
*Seperate resistor for on-board and header-attached activity LED&lt;br /&gt;
*Jumper to enable 5V CPLD to be used&lt;br /&gt;
*Jumper header to enable connection of IDE Pin 20 to VCC for Disk-On-Module use&lt;br /&gt;
*SMT resistor networks&lt;br /&gt;
&lt;br /&gt;
[http://www.farnell.com Farnell] BoM:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Part(s)&lt;br /&gt;
!Description&lt;br /&gt;
!Package&lt;br /&gt;
!Value&lt;br /&gt;
!Qty Required&lt;br /&gt;
!Farnell Code&lt;br /&gt;
|-&lt;br /&gt;
| C1,C3,C4,C5,C7 || Ceramic Capacitor || C 0603 || 0.1uF || 5 || 1833863&lt;br /&gt;
|-&lt;br /&gt;
| C2 || Electrolytic Capacitor || Case C || 47uF || 1 || 1973276&lt;br /&gt;
|-&lt;br /&gt;
| C6 || Ceramic Capacitor || C 0603 || 1uF || 1 || 1828801&lt;br /&gt;
|-&lt;br /&gt;
| DIP_SW || 8-way DIP switch || DIL || SWITCH, DIL, 8WAY || 1 || 9471596&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket || IC Socket || DIP-28 || SOCKET IC, DIL, 28WAY || 1 || 1077330 or 1103852&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || EEPROM (64k as 8K x8) || DIL-28 || 28C64 || 1 || 1095784&lt;br /&gt;
|-&lt;br /&gt;
| IC2 || 74HC688DW || SOIC-20 || 74HC688DW || 1 || 1740268&lt;br /&gt;
|-&lt;br /&gt;
| IC3, IC4 || 74HCT573D || SOIC-20 || 74HCT573D || 2 || 9592083&lt;br /&gt;
|-&lt;br /&gt;
| IC5 || 74HCT245DW || SOIC-20 || 74HCT245DW || 1 || 9591923&lt;br /&gt;
|-&lt;br /&gt;
| IC6 || XC9572 72-cell 3.3v CPLD || VQ44 || XC9572XL-10VQG44C || 1 || 1605849&lt;br /&gt;
|-&lt;br /&gt;
| IDE1 || 40-pin IDE Header || MA20-2 || HEADER 40WAY || 1 || 1099261&lt;br /&gt;
|-&lt;br /&gt;
| JP1, JP2, JP5, JP6, JP7 || Jumper Header (cut for each) || 2.54mm pitch || HEADER, 1ROW, 14WAY || 1 || 3418376 (10-pin) 3418303 (4-pin)&lt;br /&gt;
|-&lt;br /&gt;
| LED1 || Activity LED || 0805 || LED, SMD, RED || 1 || 1226389&lt;br /&gt;
|-&lt;br /&gt;
| R1,R2,R3,R4,R5, R7,R8,R9,R10 || Resistor || 0603 || RESISTOR, 10KR, 0.1W, 5% || 9 || 1469749&lt;br /&gt;
|-&lt;br /&gt;
| RN1, RN2 || Resistor Network || 0603 || RESISTOR NETWORK, 10K, ± 2% || 2 || 2060107&lt;br /&gt;
|-&lt;br /&gt;
| VR1 || Voltage Regulator || SOT-23-5 || MIC5205-3.3YM5 || 1 || 1663083&lt;br /&gt;
|-&lt;br /&gt;
| - || Jumpers || - || - || 2 || 1740370&lt;br /&gt;
|-&lt;br /&gt;
| - || ISA Bracket || - || Keystone 9202 || 1 || 4567699&lt;br /&gt;
|-&lt;br /&gt;
| - || Panhead screws || - || SCREW MACHINE PHILLIPS 4-40X1/4 || 2 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*JP4 and R6 aren&#039;t required; short IDE header pins 28 and 30&lt;br /&gt;
*JP5 is needed only if a Disk-On-Module is likely to be used (to provide power via the header)&lt;br /&gt;
*JP3 (IRQ) is not needed&lt;br /&gt;
*R7 and the LED1 are needed only if activity indication on-board is required&lt;br /&gt;
*R10 and associated 2-pin header JP7 are needed only if remote activity indication is required&lt;br /&gt;
*SJ1 should be soldered closed if a 5V CPLD is used, otherwise left open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 2 ==&lt;br /&gt;
&lt;br /&gt;
[[file:dp-xtide-v2.jpg|300px|right]]&lt;br /&gt;
The version 2 board is a sound design, with no modifications needed during construction.&lt;br /&gt;
&lt;br /&gt;
[http://www.farnell.com Farnell] BoM:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Part(s)&lt;br /&gt;
!Description&lt;br /&gt;
!Package&lt;br /&gt;
!Value&lt;br /&gt;
!Qty Required&lt;br /&gt;
!Farnell Code&lt;br /&gt;
|-&lt;br /&gt;
| C1,C3..4,C7..11 || Ceramic Capacitor X7R || 0603 || 0.1uF || 8 || 1759123&lt;br /&gt;
|-&lt;br /&gt;
| C2 || Electrolytic Capacitor || Case C || 47uF || 1 || 1973276&lt;br /&gt;
|-&lt;br /&gt;
| C6 || Ceramic Capacitor || 0603 || 1uF || 1 || 1833809&lt;br /&gt;
|-&lt;br /&gt;
| DIP_SW || 8-way DIP switch || DIL || SWITCH, DIL, 8WAY || 1 || 9471596&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket || IC Socket || DIP-28 || SOCKET IC, DIL, 28WAY || 1 || 1103852&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || EEPROM (64k as 8K x8) || DIL-28 || 28C64 || 1 || 1095784&lt;br /&gt;
|-&lt;br /&gt;
| IC7 || XC9572 72-cell 3.3v CPLD || TQFP100 || XC9572XL || 1 || 1193233&lt;br /&gt;
|-&lt;br /&gt;
| IDE1 || 40-pin IDE Header || MA20-2 || HEADER 40WAY || 1 || 1099261&lt;br /&gt;
|-&lt;br /&gt;
| JP1, JP2, JP6 || Jumper Header (cut for each) || 2.54mm pitch || HEADER, 1ROW, 10WAY || 1 || 3418376&lt;br /&gt;
|-&lt;br /&gt;
| LED1 || Activity LED || 0805 || LED, SMD, RED || 1 || 1686066&lt;br /&gt;
|-&lt;br /&gt;
| R2..4 || Resistor || 0603 || RESISTOR, 10KR, 0.1W, 5% || 3 || 2008360&lt;br /&gt;
|-&lt;br /&gt;
| R6, R7 || Resistor || 0603 || RESISTOR, 270R, 0.1W, 1%, 250mW || 2 || 1738897&lt;br /&gt;
|-&lt;br /&gt;
| RN3, RN4 || Resistor Network || 1206 || RESISTOR ARRAY, 10K || 2 || 1770137&lt;br /&gt;
|-&lt;br /&gt;
| VR1 || Voltage Regulator || SOT-23-5 || MIC5205-3.3YM5 || 1 || 1663083&lt;br /&gt;
|-&lt;br /&gt;
| - || Jumpers || - || - || 2 || 1740370&lt;br /&gt;
|-&lt;br /&gt;
| - || ISA Bracket || - || Keystone 9202 || 1 || 4567699&lt;br /&gt;
|-&lt;br /&gt;
| - || Panhead screws || - || SCREW MACHINE PHILLIPS 4-40X1/4 || 2 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*JP5 is needed only if a Disk-On-Module is likely to be used (to provide power via the header)&lt;br /&gt;
*JP3 (IRQ) is not needed&lt;br /&gt;
*R7 and the LED1 are needed only if activity indication on-board is required&lt;br /&gt;
*R10 and associated 2-pin header JP7 are needed only if remote activity indication is required&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Dangerous Prototypes V2 Compatibility Notes]]&lt;br /&gt;
*[[XT-IDE]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_Board&amp;diff=1537</id>
		<title>Lo-tech XT-CF Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_Board&amp;diff=1537"/>
		<updated>2022-08-17T16:10:01Z</updated>

		<summary type="html">&lt;p&gt;James: /* BIOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Peacon-xt-cf-assembled.JPG|right|300px|Lo-tech XT-CF Board Assembled (first prototype)]]&lt;br /&gt;
The [[lo-tech XT-CF Board]] is a bootable 8-bit ISA card with a CompactFlash header mounted so that the CF card is accessible through a [[#ISA Bracket|custom ISA expansion slot bracket]].  This card has been designed for use in IBM PC/XT, PC/AT and all compatible systems.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: the current iteration of this card is the [[XT-CFv3]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Key Features:&lt;br /&gt;
&lt;br /&gt;
*Replace dead MFM or RLL hard disks (and their controllers) with a cheap CompactFlash or microdrive media&lt;br /&gt;
*Easy to access CompactFlash card without opening the PC&lt;br /&gt;
*Reduce system power consumption (and hence load on the PSU) by as much as 30W&lt;br /&gt;
*Uses the [https://xtideuniversalbios.org/ XT-IDE Universal BIOS] (adapter type &#039;lo-tech XT-CF&#039;)&lt;br /&gt;
*Increase system performance - offers 5x the throughput of an [[ST-412]]&lt;br /&gt;
*32K in-system re-programmable ROM (24K free for any other ROM code)&lt;br /&gt;
&lt;br /&gt;
The board is derived from the [[Dangerous Prototypes XT-IDE Boards | Dangerous Prototypes V2 board]], and uses the same Xilinx XC9572XL CPLD.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit ISA card with header for type-I or type-II CompactFlash media&lt;br /&gt;
*CompactFlash header configured to operate media in true-IDE mode&lt;br /&gt;
*500mA 3.3V regulator can drive microdrive or CompactFlash cards without any external power connection (330mA power budget for microdrives)&lt;br /&gt;
*Line driver for on-card and external activity LEDs (30mA power budget for external LED)&lt;br /&gt;
*Low-cost SMT Flash memory chip with 32K usable&lt;br /&gt;
*JTAG header for CPLD programming&lt;br /&gt;
&lt;br /&gt;
=== Modes of Operation ===&lt;br /&gt;
&lt;br /&gt;
*8-bit Port-mapped IO&lt;br /&gt;
*16-but Port-mapped IO (supported on most systems; provides a performance advantage with 8088 and 8086 CPUs)&lt;br /&gt;
&lt;br /&gt;
Operating mode is configured in the BIOS and can be switched on-the-fly between modes using the [[lo-tech XT-CF Configuration Utility]]. The board is functionality identical to the [[XT-CF-lite]], and with one jumper-wire fitted can also implement ISA B8 line functionality of the XT-CFv2, allowing use in [[IBM Personal Computer XT System Board Slot 8]].&lt;br /&gt;
&lt;br /&gt;
== PCB ==&lt;br /&gt;
&lt;br /&gt;
[[File:Peacon-xt-cf.JPG|right|300px|Lo-tech XT-CF Board]]&lt;br /&gt;
&lt;br /&gt;
=== Boardhouse Requirements ===&lt;br /&gt;
&lt;br /&gt;
*8 mils clearances and minimum track width&lt;br /&gt;
*0.4mm minimum hole size&lt;br /&gt;
*Can be manufactured on a 100x100mm board&lt;br /&gt;
*Gold fingers are preferable but not required&lt;br /&gt;
&lt;br /&gt;
=== Assembly Notes ===&lt;br /&gt;
&lt;br /&gt;
*Thoroughly wash the PCB before assembly with Isopropynol&lt;br /&gt;
*Place the CF socket, CPLD and flash chip first&lt;br /&gt;
*Next place the VRM, LED driver and resistor networks&lt;br /&gt;
*Then place LEDs, resistors and SMT capacitors&lt;br /&gt;
*Next thoroughly wash the board using a toothbrush to ensure flux is removed from between SMT pins&lt;br /&gt;
*Next add the through-hole components (DIP switch, headers and 47uF capacitor), then wash again&lt;br /&gt;
*Before use inspect all connections with a magnifying glass to ensure there are no shorts between pins.  Inspect the CF header leads as solder can sometimes flow up the leads during assembly causing a short away from the PCB itself.&lt;br /&gt;
&lt;br /&gt;
=== Bill Of Materials ===&lt;br /&gt;
&lt;br /&gt;
[http://www.farnell.com Farnell] Parts List:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Part(s)&lt;br /&gt;
!Description&lt;br /&gt;
!Package&lt;br /&gt;
!Value&lt;br /&gt;
!Qty Required&lt;br /&gt;
!Farnell Code&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || XC9572 72-cell 3.3v CPLD || TQFP100 || -  || 1 || 1193233&lt;br /&gt;
|-&lt;br /&gt;
| IC2 || SST39SF0x0A Flash || TSOP32 (8x14mm) || 1, 2 or 4Mb || 1 || 1829977&lt;br /&gt;
|-&lt;br /&gt;
| IC3 || SCHMITT TRIG, INV GATE 74LVC1G14 || SOT-25 || - || 1 || 1893833&lt;br /&gt;
|-&lt;br /&gt;
| VR1 || SPX3819M5-L-3-3 - LDO, 500MA, 3.3V, LOW NOISE || SOT-23-5 || - || 1 || 1831949&lt;br /&gt;
|-&lt;br /&gt;
| C1 || Low-ESR Electrolytic Capacitor || Radial, 5mm pitch, 10mm max diameter || 47uF to 100uF, 10V+ || 1 || 1692338 (future: SMD 1850100)&lt;br /&gt;
|-&lt;br /&gt;
| C2, C14 || Ceramic Capacitor (X5R or X7R) || 0805 || 10uF, 10V+ || 2 || 1833812&lt;br /&gt;
|-&lt;br /&gt;
| C12..13 || Ceramic Capacitor (X5R or X7R) || 0603 || 1uF, 10V+ || 2 || 1828801&lt;br /&gt;
|-&lt;br /&gt;
| C3..11 || Ceramic Capacitor (X5R or X7R) || 0603 || 0.1uF, 10V+ || 9 || 1414610&lt;br /&gt;
|-&lt;br /&gt;
| R1..2  || Resistor || 0603 || RESISTOR, 10K, 0.1W || 2 || 1469748&lt;br /&gt;
|-&lt;br /&gt;
| R3, R5  || Resistor || 0603 || RESISTOR, 1K, 0.1W  || 2 || 2008355 or 1652848&lt;br /&gt;
|-&lt;br /&gt;
| R4  || Resistor || 0603 || RESISTOR, 270R, 0.1W || 1 || 2059585&lt;br /&gt;
|-&lt;br /&gt;
| R6  || Resistor || 0603 || RESISTOR, 5K6, 0.1W || 1 || 1739171&lt;br /&gt;
|-&lt;br /&gt;
| RN1, RN2 || Resistor Network || 1206 || RESISTOR NETWORK, 10K, ± 2% || 2 || 1770137&lt;br /&gt;
|-&lt;br /&gt;
| LED1 || Low-current LED || 0805 || LED, SMD || 1 || 1685055&lt;br /&gt;
|-&lt;br /&gt;
| DIP_SW || 9-way DIP switch || DIL || SWITCH, DIL, 9WAY || 1 || 1255227&lt;br /&gt;
|-&lt;br /&gt;
| CF1 || 3M N7E50-Q516 Compact Flash Header || - || 3M N7E50-Q516xx-x0 || 1 || 1267444&lt;br /&gt;
|-&lt;br /&gt;
| EXT.LED || 2-pin Header || - || HEADER, 1ROW, 2WAY || 1 || 3418285&lt;br /&gt;
|-&lt;br /&gt;
| JP1 || 3-pin Header || - || HEADER, 1ROW, 3WAY || 1 || 3418297&lt;br /&gt;
|-&lt;br /&gt;
| JTAG || 6-pin Header || - || HEADER, 2ROW, 6WAY || 1 || 3418492&lt;br /&gt;
|-&lt;br /&gt;
| - || Jumper for CF Card Voltage Selection || - || - || 1 || 1740370&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*EXT.LED and R4 can be omited if external activity LED is not required&lt;br /&gt;
*LED and R5 can be omited if on-board activity LED is not required&lt;br /&gt;
*IC3, R4, R5, LED and EXT.LED can be omited if no activity LEDs are required&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
[[file:peacon-xt-cf-bracket.png|200px|right|thumb|XT-CF Adapter ISA Bracket]]&lt;br /&gt;
*ISA Bracket Design per sketch&lt;br /&gt;
*To minimise production cost, design has no threaded holes (simple nut-and-bolt required)&lt;br /&gt;
&lt;br /&gt;
== CPLD Logic ==&lt;br /&gt;
&lt;br /&gt;
=== Downloads ===&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/v1/XT-CFv1-r100-xsvf.zip CPLD XSVF File]&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/v1/XT-CFv1-r100-ISE-Source.zip CPLD ISE Source Code]&lt;br /&gt;
&lt;br /&gt;
=== Programming the CPLD ===&lt;br /&gt;
&lt;br /&gt;
See [[lo-tech XT-CF CPLD Programming Guide]].&lt;br /&gt;
&lt;br /&gt;
== ROM &amp;amp; BIOS ==&lt;br /&gt;
&lt;br /&gt;
=== ROM ===&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of [http://www.sst.com/dotAsset/40746.pdf SST39SF0x0A flash chips] (TSOP32, 8x14mm) of 1Mb, 2Mb or 4Mb capacity&lt;br /&gt;
*Regardless of the chip used, the first 32KB only will be mapped into the PC address space&lt;br /&gt;
*Base address configuration per [[#DIP Switch Settings|DIP Switch Settings]]&lt;br /&gt;
&lt;br /&gt;
=== BIOS ===&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/xtide-r566-xt-cf-master-slave.zip XT-CF Family BIOS] (configured for 300h)&lt;br /&gt;
*The BIOS should be configured using the (BIOS supplied) &amp;lt;tt&amp;gt;xtidecfg.com&amp;lt;/tt&amp;gt; utility, then written out to the XT-CF adapter using the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
*For BIOS sources, see the [https://xtideuniversalbios.org/ XTIDE Universal BIOS Site]&lt;br /&gt;
&lt;br /&gt;
== Compatibility and Interoperability ==&lt;br /&gt;
&lt;br /&gt;
=== Use with Other Cards ===&lt;br /&gt;
&lt;br /&gt;
*The IO port address set via the DIP switches must match that set in the XTIDE Universal BIOS configuration utility&lt;br /&gt;
*The BIOS address can be changed via the DIP switches without changing the BIOS itself&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
&lt;br /&gt;
*All CompactFlash media can be used.  Media supporting multi-sector transfers will provide a performance advantage.&lt;br /&gt;
*The adapter can be used in any system supporting 8-bit ISA&lt;br /&gt;
*8-bit Port-mapped IO transfer mode is slowest but most compatible&lt;br /&gt;
*16-bit Port-mapped IO (BIU offload mode) is not supported on some early PC/XT clones, due to system logic errors&lt;br /&gt;
*ROM shadowing will offer significant performance gains on newer hardware, since the flash ROM is 8-bit so BIOS instructions can be fetched much more efficiently from system RAM&lt;br /&gt;
&lt;br /&gt;
== DIP Switch Settings ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Switch&lt;br /&gt;
!Function&lt;br /&gt;
!On&lt;br /&gt;
!Off&lt;br /&gt;
|-&lt;br /&gt;
|1 || ROM Enable || Enabled || Disabled&lt;br /&gt;
|-&lt;br /&gt;
|2 || ROM Base Address || C800h || D000h&lt;br /&gt;
|-&lt;br /&gt;
|3 || IO Port Address || 300h || 320h&lt;br /&gt;
|-&lt;br /&gt;
|4** || ISA B8 Enable || Enabled || Disabled&lt;br /&gt;
|-&lt;br /&gt;
|5** || ISA B8 Function Type (if enabled) || PC-AT (Zero-wait-state) || PC-XT Slot 8&lt;br /&gt;
|-&lt;br /&gt;
|6* || Not used || - || -&lt;br /&gt;
|-&lt;br /&gt;
|7* || ISA B8 Output** || - || -&lt;br /&gt;
|-&lt;br /&gt;
|8* || Not used || - || -&lt;br /&gt;
|-&lt;br /&gt;
|9 || ROM Write Enable || Enabled || Disabled (ROM cannot be written)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Switches 6-8 must be OFF.  Switch 9 can be left ON, since the flash chip includes Software Data Protection that prevents accidental corruption or overwriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;To use the ISA B8 function, wire a jumper from Sw7 resistor-side to ISA B8 pad (see [[:File:XT-CF-ISA-B8-Jumper-Wire.jpg|photo]]).&lt;br /&gt;
&lt;br /&gt;
Default settings: ROM enabled, IO port 300h, ROM base C800h:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!1 !!2 !!3 !!4 !!5 !!6 !!7 !!8 !!9&lt;br /&gt;
|-&lt;br /&gt;
| ON || ON || ON || OFF || OFF || OFF || OFF || OFF || ON&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the IO base address is set within the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS] ROM image via the [http://code.google.com/p/xtideuniversalbios/wiki/Manual_v2_0_0#Using_XTIDECFG.COM_(XTIDE_Universal_BIOS_configuration_and_flash Universal BIOS Configuration and Flashing utility].  The IO address set within that utility must much that configured on the card.  Should the IO port address be changed for any reason, the BIOS must be updated and re-flashed to the XT-CF card (using the [[lo-tech XT-CF flash utility]]).&lt;br /&gt;
&lt;br /&gt;
The BIOS address is determined at boot time by the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS].  Since the code has been designed to be relocatable, the BIOS base address can be changed without the need to reconfigure the Universal BIOS.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
*Activity LED is lit when a CF card isn&#039;t inserted.  Could be resolved by adding a 50k PU to /PDIAG.&lt;br /&gt;
*47uF through-hole capacitor holes are placed too wide (spaced for ~100V capacitors).&lt;br /&gt;
*Switch numbers are reversed in the schematic&lt;br /&gt;
*ISA B8 isn&#039;t connected, hence card cannot be used in slot 8 of IBM PC/XT (see note above)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[lo-tech XT-CF Technical Reference]]&lt;br /&gt;
*[[Lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_Board&amp;diff=1536</id>
		<title>Lo-tech XT-CF Board</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_XT-CF_Board&amp;diff=1536"/>
		<updated>2022-08-17T16:09:17Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Peacon-xt-cf-assembled.JPG|right|300px|Lo-tech XT-CF Board Assembled (first prototype)]]&lt;br /&gt;
The [[lo-tech XT-CF Board]] is a bootable 8-bit ISA card with a CompactFlash header mounted so that the CF card is accessible through a [[#ISA Bracket|custom ISA expansion slot bracket]].  This card has been designed for use in IBM PC/XT, PC/AT and all compatible systems.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: the current iteration of this card is the [[XT-CFv3]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Key Features:&lt;br /&gt;
&lt;br /&gt;
*Replace dead MFM or RLL hard disks (and their controllers) with a cheap CompactFlash or microdrive media&lt;br /&gt;
*Easy to access CompactFlash card without opening the PC&lt;br /&gt;
*Reduce system power consumption (and hence load on the PSU) by as much as 30W&lt;br /&gt;
*Uses the [https://xtideuniversalbios.org/ XT-IDE Universal BIOS] (adapter type &#039;lo-tech XT-CF&#039;)&lt;br /&gt;
*Increase system performance - offers 5x the throughput of an [[ST-412]]&lt;br /&gt;
*32K in-system re-programmable ROM (24K free for any other ROM code)&lt;br /&gt;
&lt;br /&gt;
The board is derived from the [[Dangerous Prototypes XT-IDE Boards | Dangerous Prototypes V2 board]], and uses the same Xilinx XC9572XL CPLD.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit ISA card with header for type-I or type-II CompactFlash media&lt;br /&gt;
*CompactFlash header configured to operate media in true-IDE mode&lt;br /&gt;
*500mA 3.3V regulator can drive microdrive or CompactFlash cards without any external power connection (330mA power budget for microdrives)&lt;br /&gt;
*Line driver for on-card and external activity LEDs (30mA power budget for external LED)&lt;br /&gt;
*Low-cost SMT Flash memory chip with 32K usable&lt;br /&gt;
*JTAG header for CPLD programming&lt;br /&gt;
&lt;br /&gt;
=== Modes of Operation ===&lt;br /&gt;
&lt;br /&gt;
*8-bit Port-mapped IO&lt;br /&gt;
*16-but Port-mapped IO (supported on most systems; provides a performance advantage with 8088 and 8086 CPUs)&lt;br /&gt;
&lt;br /&gt;
Operating mode is configured in the BIOS and can be switched on-the-fly between modes using the [[lo-tech XT-CF Configuration Utility]]. The board is functionality identical to the [[XT-CF-lite]], and with one jumper-wire fitted can also implement ISA B8 line functionality of the XT-CFv2, allowing use in [[IBM Personal Computer XT System Board Slot 8]].&lt;br /&gt;
&lt;br /&gt;
== PCB ==&lt;br /&gt;
&lt;br /&gt;
[[File:Peacon-xt-cf.JPG|right|300px|Lo-tech XT-CF Board]]&lt;br /&gt;
&lt;br /&gt;
=== Boardhouse Requirements ===&lt;br /&gt;
&lt;br /&gt;
*8 mils clearances and minimum track width&lt;br /&gt;
*0.4mm minimum hole size&lt;br /&gt;
*Can be manufactured on a 100x100mm board&lt;br /&gt;
*Gold fingers are preferable but not required&lt;br /&gt;
&lt;br /&gt;
=== Assembly Notes ===&lt;br /&gt;
&lt;br /&gt;
*Thoroughly wash the PCB before assembly with Isopropynol&lt;br /&gt;
*Place the CF socket, CPLD and flash chip first&lt;br /&gt;
*Next place the VRM, LED driver and resistor networks&lt;br /&gt;
*Then place LEDs, resistors and SMT capacitors&lt;br /&gt;
*Next thoroughly wash the board using a toothbrush to ensure flux is removed from between SMT pins&lt;br /&gt;
*Next add the through-hole components (DIP switch, headers and 47uF capacitor), then wash again&lt;br /&gt;
*Before use inspect all connections with a magnifying glass to ensure there are no shorts between pins.  Inspect the CF header leads as solder can sometimes flow up the leads during assembly causing a short away from the PCB itself.&lt;br /&gt;
&lt;br /&gt;
=== Bill Of Materials ===&lt;br /&gt;
&lt;br /&gt;
[http://www.farnell.com Farnell] Parts List:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Part(s)&lt;br /&gt;
!Description&lt;br /&gt;
!Package&lt;br /&gt;
!Value&lt;br /&gt;
!Qty Required&lt;br /&gt;
!Farnell Code&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || XC9572 72-cell 3.3v CPLD || TQFP100 || -  || 1 || 1193233&lt;br /&gt;
|-&lt;br /&gt;
| IC2 || SST39SF0x0A Flash || TSOP32 (8x14mm) || 1, 2 or 4Mb || 1 || 1829977&lt;br /&gt;
|-&lt;br /&gt;
| IC3 || SCHMITT TRIG, INV GATE 74LVC1G14 || SOT-25 || - || 1 || 1893833&lt;br /&gt;
|-&lt;br /&gt;
| VR1 || SPX3819M5-L-3-3 - LDO, 500MA, 3.3V, LOW NOISE || SOT-23-5 || - || 1 || 1831949&lt;br /&gt;
|-&lt;br /&gt;
| C1 || Low-ESR Electrolytic Capacitor || Radial, 5mm pitch, 10mm max diameter || 47uF to 100uF, 10V+ || 1 || 1692338 (future: SMD 1850100)&lt;br /&gt;
|-&lt;br /&gt;
| C2, C14 || Ceramic Capacitor (X5R or X7R) || 0805 || 10uF, 10V+ || 2 || 1833812&lt;br /&gt;
|-&lt;br /&gt;
| C12..13 || Ceramic Capacitor (X5R or X7R) || 0603 || 1uF, 10V+ || 2 || 1828801&lt;br /&gt;
|-&lt;br /&gt;
| C3..11 || Ceramic Capacitor (X5R or X7R) || 0603 || 0.1uF, 10V+ || 9 || 1414610&lt;br /&gt;
|-&lt;br /&gt;
| R1..2  || Resistor || 0603 || RESISTOR, 10K, 0.1W || 2 || 1469748&lt;br /&gt;
|-&lt;br /&gt;
| R3, R5  || Resistor || 0603 || RESISTOR, 1K, 0.1W  || 2 || 2008355 or 1652848&lt;br /&gt;
|-&lt;br /&gt;
| R4  || Resistor || 0603 || RESISTOR, 270R, 0.1W || 1 || 2059585&lt;br /&gt;
|-&lt;br /&gt;
| R6  || Resistor || 0603 || RESISTOR, 5K6, 0.1W || 1 || 1739171&lt;br /&gt;
|-&lt;br /&gt;
| RN1, RN2 || Resistor Network || 1206 || RESISTOR NETWORK, 10K, ± 2% || 2 || 1770137&lt;br /&gt;
|-&lt;br /&gt;
| LED1 || Low-current LED || 0805 || LED, SMD || 1 || 1685055&lt;br /&gt;
|-&lt;br /&gt;
| DIP_SW || 9-way DIP switch || DIL || SWITCH, DIL, 9WAY || 1 || 1255227&lt;br /&gt;
|-&lt;br /&gt;
| CF1 || 3M N7E50-Q516 Compact Flash Header || - || 3M N7E50-Q516xx-x0 || 1 || 1267444&lt;br /&gt;
|-&lt;br /&gt;
| EXT.LED || 2-pin Header || - || HEADER, 1ROW, 2WAY || 1 || 3418285&lt;br /&gt;
|-&lt;br /&gt;
| JP1 || 3-pin Header || - || HEADER, 1ROW, 3WAY || 1 || 3418297&lt;br /&gt;
|-&lt;br /&gt;
| JTAG || 6-pin Header || - || HEADER, 2ROW, 6WAY || 1 || 3418492&lt;br /&gt;
|-&lt;br /&gt;
| - || Jumper for CF Card Voltage Selection || - || - || 1 || 1740370&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
*EXT.LED and R4 can be omited if external activity LED is not required&lt;br /&gt;
*LED and R5 can be omited if on-board activity LED is not required&lt;br /&gt;
*IC3, R4, R5, LED and EXT.LED can be omited if no activity LEDs are required&lt;br /&gt;
&lt;br /&gt;
== ISA Bracket ==&lt;br /&gt;
&lt;br /&gt;
[[file:peacon-xt-cf-bracket.png|200px|right|thumb|XT-CF Adapter ISA Bracket]]&lt;br /&gt;
*ISA Bracket Design per sketch&lt;br /&gt;
*To minimise production cost, design has no threaded holes (simple nut-and-bolt required)&lt;br /&gt;
&lt;br /&gt;
== CPLD Logic ==&lt;br /&gt;
&lt;br /&gt;
=== Downloads ===&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/v1/XT-CFv1-r100-xsvf.zip CPLD XSVF File]&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/v1/XT-CFv1-r100-ISE-Source.zip CPLD ISE Source Code]&lt;br /&gt;
&lt;br /&gt;
=== Programming the CPLD ===&lt;br /&gt;
&lt;br /&gt;
See [[lo-tech XT-CF CPLD Programming Guide]].&lt;br /&gt;
&lt;br /&gt;
== ROM &amp;amp; BIOS ==&lt;br /&gt;
&lt;br /&gt;
=== ROM ===&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of [http://www.sst.com/dotAsset/40746.pdf SST39SF0x0A flash chips] (TSOP32, 8x14mm) of 1Mb, 2Mb or 4Mb capacity&lt;br /&gt;
*Regardless of the chip used, the first 32KB only will be mapped into the PC address space&lt;br /&gt;
*Base address configuration per [[#DIP Switch Settings|DIP Switch Settings]]&lt;br /&gt;
&lt;br /&gt;
=== BIOS ===&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-CF/xtide-r566-xt-cf-master-slave.zip XT-CF Family BIOS] (configured for 300h)&lt;br /&gt;
*The BIOS should be configured using the (BIOS supplied) &amp;lt;tt&amp;gt;xtidecfg.com&amp;lt;/tt&amp;gt; utility, then written out to the XT-CF adapter using the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
*For BIOS sources, see the [https://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS Google Code Home]&lt;br /&gt;
&lt;br /&gt;
== Compatibility and Interoperability ==&lt;br /&gt;
&lt;br /&gt;
=== Use with Other Cards ===&lt;br /&gt;
&lt;br /&gt;
*The IO port address set via the DIP switches must match that set in the XTIDE Universal BIOS configuration utility&lt;br /&gt;
*The BIOS address can be changed via the DIP switches without changing the BIOS itself&lt;br /&gt;
&lt;br /&gt;
=== Compatibility ===&lt;br /&gt;
&lt;br /&gt;
*All CompactFlash media can be used.  Media supporting multi-sector transfers will provide a performance advantage.&lt;br /&gt;
*The adapter can be used in any system supporting 8-bit ISA&lt;br /&gt;
*8-bit Port-mapped IO transfer mode is slowest but most compatible&lt;br /&gt;
*16-bit Port-mapped IO (BIU offload mode) is not supported on some early PC/XT clones, due to system logic errors&lt;br /&gt;
*ROM shadowing will offer significant performance gains on newer hardware, since the flash ROM is 8-bit so BIOS instructions can be fetched much more efficiently from system RAM&lt;br /&gt;
&lt;br /&gt;
== DIP Switch Settings ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Switch&lt;br /&gt;
!Function&lt;br /&gt;
!On&lt;br /&gt;
!Off&lt;br /&gt;
|-&lt;br /&gt;
|1 || ROM Enable || Enabled || Disabled&lt;br /&gt;
|-&lt;br /&gt;
|2 || ROM Base Address || C800h || D000h&lt;br /&gt;
|-&lt;br /&gt;
|3 || IO Port Address || 300h || 320h&lt;br /&gt;
|-&lt;br /&gt;
|4** || ISA B8 Enable || Enabled || Disabled&lt;br /&gt;
|-&lt;br /&gt;
|5** || ISA B8 Function Type (if enabled) || PC-AT (Zero-wait-state) || PC-XT Slot 8&lt;br /&gt;
|-&lt;br /&gt;
|6* || Not used || - || -&lt;br /&gt;
|-&lt;br /&gt;
|7* || ISA B8 Output** || - || -&lt;br /&gt;
|-&lt;br /&gt;
|8* || Not used || - || -&lt;br /&gt;
|-&lt;br /&gt;
|9 || ROM Write Enable || Enabled || Disabled (ROM cannot be written)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Switches 6-8 must be OFF.  Switch 9 can be left ON, since the flash chip includes Software Data Protection that prevents accidental corruption or overwriting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt;To use the ISA B8 function, wire a jumper from Sw7 resistor-side to ISA B8 pad (see [[:File:XT-CF-ISA-B8-Jumper-Wire.jpg|photo]]).&lt;br /&gt;
&lt;br /&gt;
Default settings: ROM enabled, IO port 300h, ROM base C800h:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!1 !!2 !!3 !!4 !!5 !!6 !!7 !!8 !!9&lt;br /&gt;
|-&lt;br /&gt;
| ON || ON || ON || OFF || OFF || OFF || OFF || OFF || ON&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the IO base address is set within the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS] ROM image via the [http://code.google.com/p/xtideuniversalbios/wiki/Manual_v2_0_0#Using_XTIDECFG.COM_(XTIDE_Universal_BIOS_configuration_and_flash Universal BIOS Configuration and Flashing utility].  The IO address set within that utility must much that configured on the card.  Should the IO port address be changed for any reason, the BIOS must be updated and re-flashed to the XT-CF card (using the [[lo-tech XT-CF flash utility]]).&lt;br /&gt;
&lt;br /&gt;
The BIOS address is determined at boot time by the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS].  Since the code has been designed to be relocatable, the BIOS base address can be changed without the need to reconfigure the Universal BIOS.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
*Activity LED is lit when a CF card isn&#039;t inserted.  Could be resolved by adding a 50k PU to /PDIAG.&lt;br /&gt;
*47uF through-hole capacitor holes are placed too wide (spaced for ~100V capacitors).&lt;br /&gt;
*Switch numbers are reversed in the schematic&lt;br /&gt;
*ISA B8 isn&#039;t connected, hence card cannot be used in slot 8 of IBM PC/XT (see note above)&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[lo-tech XT-CF Technical Reference]]&lt;br /&gt;
*[[Lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_CompactFlash_Adapter_FAQ&amp;diff=1535</id>
		<title>Lo-tech ISA CompactFlash Adapter FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_CompactFlash_Adapter_FAQ&amp;diff=1535"/>
		<updated>2022-08-17T10:42:29Z</updated>

		<summary type="html">&lt;p&gt;James: /* What BIOS does the Card Use? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What Does It Do? ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech ISA CompactFlash Adapter revision 2|Lo-tech ISA CompactFlash Adapter]] is a bootable storage adapter for IBM PC, PC/XT, PC/AT and compatible hardware - the board acts as a fixed disk controller, able to replace an aging MFM hard drive and controller. Thanks to the [http://code.google.com/p/xtideuniversalbios/ XTIDE Universal BIOS], the device can provide the maximum 8GB storage that is accessible by MS-DOS from a single solid-state storage media card (either CompactFlash or SD-Card).&lt;br /&gt;
&lt;br /&gt;
== It&#039;s called &#039;ISA CompactFlash Adapter - Where&#039;s the CompactFlash Card Slot? ==&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech ISA CompactFlash Adapter revision 2|Lo-tech ISA CompactFlash Adapter]] has been designed as a home-assembly electronics kit for the hobbyist and so uses only through-hole components for the basic functionality. The 40-pin IDE header enables the connection of low-cost and readily-available IDE to CompactFlash adapters, so avoiding the use of a fiddly surface-mount header and saving PCB space.&lt;br /&gt;
&lt;br /&gt;
== Can SD Cards be used? ==&lt;br /&gt;
&lt;br /&gt;
Yes, when used with an adapter based on the &#039;FC1306T (GP)&#039; chip. See [{{SERVER}}/isa-compactflash-adapter-and-sd-cards/ blog entry] for more information.&lt;br /&gt;
&lt;br /&gt;
== Are the Surface Mount Components Needed? ==&lt;br /&gt;
&lt;br /&gt;
The design requires only through-hole components to work. Surface mount components on the solder side provide additional functionality:&lt;br /&gt;
&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility&lt;br /&gt;
*Device activity LED drive&lt;br /&gt;
*Selectable ROM address (rev.2b PCB)&lt;br /&gt;
&lt;br /&gt;
Without these components, these functions cannot be used. The device activity signal provided by CompactFlash cards is typically too weak to power an LED directly, hence an otherwise unused gate in the optional SMT &#039;LS33 is used as an amplifier.&lt;br /&gt;
&lt;br /&gt;
Some machines are known to be incompatible with the card select signal, including the Tandy 1000 series and the IBM PS/2 Model 30-286. In such machines:&lt;br /&gt;
&lt;br /&gt;
*for rev.2 board, SMT components should &#039;&#039;&#039;not&#039;&#039;&#039; be populated&lt;br /&gt;
*for rev.2b board, components can be populated but JP3 should be left open&lt;br /&gt;
&lt;br /&gt;
== Assembly ==&lt;br /&gt;
&lt;br /&gt;
Start with the smallest components first; a suggested soldering order is:&lt;br /&gt;
&lt;br /&gt;
#SMT components, if being fitted (note IC orientation; the bevelled edge is indicated on the silk-screen)&lt;br /&gt;
#Capacitors C1-C5&lt;br /&gt;
#C8 (note orientation; C8 positive leg is closest to C3)&lt;br /&gt;
#Resistor network (pin 1, marked with a dot, goes nearest IC1)&lt;br /&gt;
#IC sockets (note orientation; the notch is printed on the silkscreen)&lt;br /&gt;
#2-pin headers&lt;br /&gt;
#40-pin header&lt;br /&gt;
#Capacitor C6&lt;br /&gt;
&lt;br /&gt;
The board should be cleaned before capacitor C6 is fitted.&lt;br /&gt;
&lt;br /&gt;
== BIOS, Flashing and Reflashing ==&lt;br /&gt;
&lt;br /&gt;
=== Is an EEPROM Programmer Needed? ===&lt;br /&gt;
&lt;br /&gt;
No, the board ROM can be flashed in the host system from DOS using the [[Lo-tech XT-CF flash utility]].&lt;br /&gt;
&lt;br /&gt;
=== What BIOS does the Card Use? ===&lt;br /&gt;
&lt;br /&gt;
The card uses the [https://xtideuniversalbios.org/ XTIDE Universal BIOS], from R566.&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/xtide-r566-xt-cf-master-slave.zip Pre-configured XTIDE Universal BIOS R566 Binary File for Lo-tech ISA CompactFlash Adapter]&lt;br /&gt;
**This is the &#039;standard&#039; 8KB BIOS image, and should be used in most installations.&lt;br /&gt;
**There is 24KB free, meaning additional option ROMs (for other devices) can also be hosted in the ISA CompactFlash Adapter&lt;br /&gt;
**To add other ROM images, append the required binaries using MS-DOS &amp;quot;COPY /B&amp;quot; command, then write the entire file using the [[Lo-tech XT-CF flash utility]]&lt;br /&gt;
*[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/offr566.zip Pre-configured BIOS based on R566 (FFh padded with BIOS at CC00h) Binary File for Lo-tech ISA CompactFlash Adapter]&lt;br /&gt;
**This is a 24KB ROM image, with the first 16KB padded with bytes of FFh.&lt;br /&gt;
**This image enables the use of the adapter in machines that are hard-wired to have 8- or 16KB at C800h provided by a ROM on the system board, and as such cannot have this ROM address provided by a device in an expansion slot.&lt;br /&gt;
**Machines needing this version include the Tandy 1000 RL/HD&lt;br /&gt;
&lt;br /&gt;
If building from source, run XTIDECFG.COM to configure the IDE_XT.BIN file, select controller XT-CF and 300h, then save the file. Then exit to DOS and use FLASH to write it to the card (see below).&lt;br /&gt;
&lt;br /&gt;
=== How is the BIOS Programmed? ===&lt;br /&gt;
&lt;br /&gt;
The BIOS cannot be programmed with the XT-IDE Universal BIOS XTIDECFG utility; instead the [[Lo-tech XT-CF flash utility]] should be used once the BIOS image file has been configured and saved (to disk) using XTIDECFG.&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/XT-IDE/lo-tech-Flash-utility.zip Lo-tech FLASH utility binary]&lt;br /&gt;
&lt;br /&gt;
=== Can the Board be Re-Programmed, i.e. BIOS Upgraded? ===&lt;br /&gt;
&lt;br /&gt;
Yes, the specified flash ROM chips can be re-programmed around 1,000 times.&lt;br /&gt;
&lt;br /&gt;
== First BIOS Flash Attempt Fails ==&lt;br /&gt;
&lt;br /&gt;
*Check the jumper on JP1 is fitted.&lt;br /&gt;
*Check the soldering and orientation of IC2 and IC3&lt;br /&gt;
&lt;br /&gt;
== BIOS Re-flashing Fails ==&lt;br /&gt;
&lt;br /&gt;
In some systems, the first flash is performed successfully but further flashing fails. This is typically caused by BIOS ROM shadowing, which later machines used to run ROM code from fast RAM instead of slower ROM chips. This can be resolved by either disabling ROM shadowing in the BIOS, if the option is provided, or by JP1:&lt;br /&gt;
&lt;br /&gt;
*Remove JP1, then power on the machine&lt;br /&gt;
*Once completely booted, install JP1 (with the machine running). The jumper connects the ROM-CS signal generated by one of the &#039;688&#039;s; the signal is isolated from the host system and therefore this cannot damage the host.&lt;br /&gt;
*Next run the flash utility, and the flash should be successfully programmed.&lt;br /&gt;
&lt;br /&gt;
== Initialisation Problems ==&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
*Machine hangs during POST or won&#039;t POST with ISA CompactFlash Adapter Installed&lt;br /&gt;
*BIOS cannot be flashed onto card, or flashing causes system lockup or hang&lt;br /&gt;
*BIOS flashing was successful, but the XTIDE Universal BIOS never appears in the POST&lt;br /&gt;
&lt;br /&gt;
For these issues:&lt;br /&gt;
&lt;br /&gt;
*Check the soldering, especially for shorts around U1&lt;br /&gt;
*Some machines, such as the IBM PS/2 Model 30-286, are not compatible with the CARDSEL/ZWS signal generated by U1&lt;br /&gt;
**Remove U1 (for example using a hot-air rework tool).&lt;br /&gt;
*If the XTIDE Universal BIOS never appears during the POST:&lt;br /&gt;
**Rev.2b: if R4 is not fitted, ensure JP2 is closed (setting the ROM to C800h)&lt;br /&gt;
**Rev.2b: try alternate ROM address D800h&lt;br /&gt;
**try alternate BIOS images:&lt;br /&gt;
***[{{SERVER}}/downloads/XT-CF/ISA-CF-BIOS-r567-late-init.zip very late initialisation option]&lt;br /&gt;
***[{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/offr566.zip FFh padded image (BIOS at CC00h)] &lt;br /&gt;
**ensure that the system ROM is scanning for option ROMs (original IBM PC 5150 and original Tandy 1000 ROM do not scan for option ROMs, for example)&lt;br /&gt;
**ensure selected ROM address is available&lt;br /&gt;
**If another option ROM at the selected ROM address (C800h, D800h) cannot be disabled, dump that BIOS to a file (usually 4, 8 or 16KB), then append the standard BIOS image (&amp;lt;tt&amp;gt;COPY /B&amp;lt;/tt&amp;gt;), then flash the new, larger file to the adapter (another machine might be needed to perform the flash operation). This will result in the on-board BIOS and flash chip on the adapter responding with the same data, and the XTIDE Universal BIOS being detected at a higher memory address (like CA00h or CC00h).&lt;br /&gt;
&lt;br /&gt;
== CompactFlash Cards are Not Detected ==&lt;br /&gt;
&lt;br /&gt;
*Check the soldering and orientation of IC1, IC4, IC5 and RN1&lt;br /&gt;
*Check the CompactFlash card has adequate power supply. Is using an adapter connected to the board via a ribbon cable, a separate 5V supply must be provided (usually via a 3.5&amp;quot; floppy disk style power connector)&lt;br /&gt;
*Check the CompactFlash card adapter is set to 5V operation&lt;br /&gt;
*If using a dual CompactFlash adapter, try a single CompactFlash card configured as Master&lt;br /&gt;
&lt;br /&gt;
== CompactFlash Cards configured as Slave are Not Detected ==&lt;br /&gt;
&lt;br /&gt;
Not all CompactFlash cards support a slave configuration. Try a different card.&lt;br /&gt;
&lt;br /&gt;
== SD Cards are Not Detected ==&lt;br /&gt;
&lt;br /&gt;
If using an SD Card adapter, check it is built on the &#039;FC1306T (GP)&#039; chip. See [{{SERVER}}/isa-compactflash-adapter-and-sd-cards/ blog entry] for more information.&lt;br /&gt;
&lt;br /&gt;
== Hard Disk Device is Not Detected ==&lt;br /&gt;
&lt;br /&gt;
Only hard disks supporting ATA-2 command set can be used.&lt;br /&gt;
&lt;br /&gt;
== The Machine Hangs at &#039;Booting C&#039; ==&lt;br /&gt;
&lt;br /&gt;
This occurs because the boot sector written by the CompactFlash card manufacturer is not compatible with 8088 CPU in most cases. This can be resolved in one of two ways:&lt;br /&gt;
&lt;br /&gt;
=== Method 1 ===&lt;br /&gt;
&lt;br /&gt;
Wipe the boot sector using the [[WipeDisk|Lo-tech WIPEDISK utility]] and then start over - boot from a floppy (press A when the XTIDE Universal BIOS message appears) then run FDISK to create a primary and active partition, then reboot again from a floppy and run &amp;lt;tt&amp;gt;FORMAT /S&amp;lt;/tt&amp;gt; to copy on the DOS files. &#039;&#039;Note that this method will completely erase all data on the device.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Method 2 ===&lt;br /&gt;
&lt;br /&gt;
If using MS-DOS 6.22, boot from a floppy (press A when the XTIDE Universal BIOS message appears) then run FDISK /MBR. This will re-write the executable boot-sector code, leaving the partition table and partition data intact.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech ISA CompactFlash Adapter revision 2|Lo-tech ISA CompactFlash Adapter]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=XTIDE_Universal_BIOS&amp;diff=1534</id>
		<title>XTIDE Universal BIOS</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=XTIDE_Universal_BIOS&amp;diff=1534"/>
		<updated>2022-07-16T09:55:10Z</updated>

		<summary type="html">&lt;p&gt;James: /* Programming Lo-tech Storage Boards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;XTIDE Universal BIOS makes it possible to use ATA hard disks or Compact Flash cards on old PC&#039;s. The XTIDE Universal BIOS can be used on any IBM PC, XT, AT or 100% compatible system.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Official Project Site ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[https://xtideuniversalbios.org xtideuniversalbios.org]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official project site is hosted by Lo-tech.&lt;br /&gt;
&lt;br /&gt;
== License of Use ==&lt;br /&gt;
&lt;br /&gt;
The XTIDE Universal BIOS project is run under [http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License version 2].&lt;br /&gt;
&lt;br /&gt;
In addition to that license through which the source code is made available, binary downloads provided from Lo-tech.co.uk are subject to the [[Terms and Conditions|Lo-tech Terms and Conditions of Use]].&lt;br /&gt;
&lt;br /&gt;
== Building from Source ==&lt;br /&gt;
&lt;br /&gt;
For those wishing to build from source, for example for specific functionality not provided by the standard builds, instructions are maintained on the project site &#039;&#039;&#039;[https://xtideuniversalbios.org/wiki/BuildInstructions here]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Binary Downloads ==&lt;br /&gt;
&lt;br /&gt;
Each release is automatically compiled, and the binaries are available at [https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries].&lt;br /&gt;
&lt;br /&gt;
The binary images must be configured to the requirements of the machine using XTIDECFG.COM, saved, and finally written out to the EEPROM or EPROM.&lt;br /&gt;
&lt;br /&gt;
== Configuring the BIOS ==&lt;br /&gt;
&lt;br /&gt;
The provided binaries must be configured before use. This is done with the XTIDECFG.COM utility, which is included in the download. This is an MSDOS utility. The steps to get the BIOS onto the machine are:&lt;br /&gt;
&lt;br /&gt;
#Download the latest build from [https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries]:&lt;br /&gt;
#*XTIDECFG.COM, and&lt;br /&gt;
#*The appropriate XT_xxx.bin file (see table below)&lt;br /&gt;
#Copy the two files to an MSDOS bootable floppy disk&lt;br /&gt;
#Boot the machine from the floppy&lt;br /&gt;
#Configure the BIOS binary by running XTIDECFG.COM&lt;br /&gt;
#*Open the XT_xxx.bin file&lt;br /&gt;
#*Configure according to system requirements&lt;br /&gt;
#*Save the file&lt;br /&gt;
#*For EPROMs or read-only cards (such as network cards), write out the configured file using an EPROM programmer off-system&lt;br /&gt;
#*For 2816/2864 series EEPROMs in supported cards such as the original XTIDE, write the configured file directly to the EPROM using the XTIDECFG.COM utility&lt;br /&gt;
#*For 29010/29020 EEPROMs as used by most Lo-tech boards, write the configured file using the [[Lo-tech XT-CF flash utility]] (see below)&lt;br /&gt;
#Reboot the machine and run FDISK and FORMAT as required&lt;br /&gt;
&lt;br /&gt;
== Programming Lo-tech Storage Boards ==&lt;br /&gt;
&lt;br /&gt;
Lo-tech storage boards use SST 29xxx series EEPROMs, which cannot be written to by the XTIDECFG.COM utility. However, the BIOS file (XT_xxx.bin) still needs to be configured and saved using XTIDECFG.COM, before the file can be written to the Lo-tech boards using the [[Lo-tech XT-CF flash utility]].&lt;br /&gt;
&lt;br /&gt;
For users of Lo-tech CompactFlash based boards, [{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/xtide-r566-xt-cf-master-slave.zip a pre-configured XTIDE Universal BIOS (built on r566]) is provided, which can be written directly to the cards using the [[Lo-tech XT-CF flash utility]] without the additional configuration step. See [{{SERVER}}/wiki/Lo-tech_ISA_CompactFlash_Adapter_FAQ#What_BIOS_does_the_Card_Use.3F here] for more information.&lt;br /&gt;
&lt;br /&gt;
For users of the [[Lo-tech 8-bit IDE Adapter]], a special build based on r567 is available - see [{{SERVER}}/wiki/Lo-tech_8-bit_IDE_Adapter#ROM_BIOS_.26_BIOS_Flashing here].&lt;br /&gt;
&lt;br /&gt;
== XTIDE BIOS Files ==&lt;br /&gt;
&lt;br /&gt;
[https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries The pre-built binaries download centre] provides a number of builds for specific use-cases as detailed below.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File Name !! Use-Case !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|ide_386.bin || Any PC with an 80386 or higher CPU || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_386l.bin || Any PC with an 80386 or higher CPU || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_286.bin || Any PC with an 80286 or higher CPU || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_286l.bin || Any PC with an 80286 or higher CPU || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_tiny.bin || Any PC || Tiny build (4KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xt.bin || Any PC/XT class machine with 8088 or 8086 CPU (or above) || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtl.bin || Any PC/XT class machine with 8088 or 8086 CPU (or above) || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtp.bin || Any PC/XT class machine with NEC V20/V30 CPU (or equivalent providing 80186 instruction set) || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtpl.bin || Any PC/XT class machine with NEC V20/V30 CPU (or equivalent providing 80186 instruction set) || Large build (10KB)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The XTIDECFG.COM utility is used to configure any of the above binary files, prior to writing to the EEPROM. EEPROMs can be written in-system to Lo-tech boards using the [[Lo-tech XT-CF flash utility]].&lt;br /&gt;
&lt;br /&gt;
The standard builds include a &#039;hot-key&#039; user interface where users can boot from floppy by pressing &#039;A&#039; at the initialisation screen and support for serial-connected drives. Large builds also include a full boot menu. The Tiny build includes only the most basic functionality, to enable the use of the BIOS on 4KB ROMs (serial devices are not supported).&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
A number of factors impact the performance of devices operating via the XTIDE Universal BIOS.&lt;br /&gt;
&lt;br /&gt;
*Choose the BIOS binary file that most closely matches your system.&lt;br /&gt;
**If you have a V20 or V30 CPU, use the ide_xpl.bin file. This makes use of loop instructions not available on 8088/8086 and will provide a big performance increase on these systems.&lt;br /&gt;
**Even if you have an &#039;XT Class&#039; 80286 based system, such as the Tandy 1000TL, use the ide_286.bin file.&lt;br /&gt;
*On slower machines, the multi-sector transfer capabilities of the storage device itself can greatly impact performance. Some devices, in particular many CompactFlash cards, allow the system to transfer only one sector at a time (512 bytes), which means the BIOS code must loop through sector read request code every 512 bytes. This is much slower than transferring a larger block of data in one go, as would be possible with a device supporting multi-sector transfers.&lt;br /&gt;
*Many 8-bit ISA &#039;XTIDE&#039; derivatives support &#039;16-bit transfers&#039; using port mapping techniques that offload the effort of breaking 16-bit transfers into two 8-bit transfers to the system bus interface unit. This is known as &#039;Bus Interface Offload Mode&#039; in the XTIDE Universal BIOS (BIU mode) and offers significant performance advantages for 8-bit ISA cards such as the original XTIDE card and most Lo-tech boards.&lt;br /&gt;
*When using the XTIDE Universal BIOS on later machines (386/486/Pentium), be sure to enable ROM shadowing in the BIOS for the region where the ROM is stored. For example, if the ROM is at C800h, enable ROM shadowing for C800h to CA00h (assuming standard 8KB build). This will greatly improve performance, since otherwise each instruction in the ROM code must be fetched over the slow 8-bit ISA bus, instead of from system memory or CPU cache. Note that ROM Shadowing will likely need to be disabled in order to (re)program the card.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*Former project hosting: https://code.google.com/p/xtideuniversalbios/&lt;br /&gt;
*[http://www.vintage-computer.com/vcforum/showthread.php?29749-XTIDE-Universal-BIOS-v2-0-0-beta-testing-thread VintageComputer.com BIOS v2.0 Development Thread]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=XTIDE_Universal_BIOS&amp;diff=1533</id>
		<title>XTIDE Universal BIOS</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=XTIDE_Universal_BIOS&amp;diff=1533"/>
		<updated>2022-07-16T09:35:48Z</updated>

		<summary type="html">&lt;p&gt;James: /* Performance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;XTIDE Universal BIOS makes it possible to use ATA hard disks or Compact Flash cards on old PC&#039;s. The XTIDE Universal BIOS can be used on any IBM PC, XT, AT or 100% compatible system.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Official Project Site ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[https://xtideuniversalbios.org xtideuniversalbios.org]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official project site is hosted by Lo-tech.&lt;br /&gt;
&lt;br /&gt;
== License of Use ==&lt;br /&gt;
&lt;br /&gt;
The XTIDE Universal BIOS project is run under [http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License version 2].&lt;br /&gt;
&lt;br /&gt;
In addition to that license through which the source code is made available, binary downloads provided from Lo-tech.co.uk are subject to the [[Terms and Conditions|Lo-tech Terms and Conditions of Use]].&lt;br /&gt;
&lt;br /&gt;
== Building from Source ==&lt;br /&gt;
&lt;br /&gt;
For those wishing to build from source, for example for specific functionality not provided by the standard builds, instructions are maintained on the project site &#039;&#039;&#039;[https://xtideuniversalbios.org/wiki/BuildInstructions here]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Binary Downloads ==&lt;br /&gt;
&lt;br /&gt;
Each release is automatically compiled, and the binaries are available at [https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries].&lt;br /&gt;
&lt;br /&gt;
The binary images must be configured to the requirements of the machine using XTIDECFG.COM, saved, and finally written out to the EEPROM or EPROM.&lt;br /&gt;
&lt;br /&gt;
== Configuring the BIOS ==&lt;br /&gt;
&lt;br /&gt;
The provided binaries must be configured before use. This is done with the XTIDECFG.COM utility, which is included in the download. This is an MSDOS utility. The steps to get the BIOS onto the machine are:&lt;br /&gt;
&lt;br /&gt;
#Download the latest build from [https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries]:&lt;br /&gt;
#*XTIDECFG.COM, and&lt;br /&gt;
#*The appropriate XT_xxx.bin file (see table below)&lt;br /&gt;
#Copy the two files to an MSDOS bootable floppy disk&lt;br /&gt;
#Boot the machine from the floppy&lt;br /&gt;
#Configure the BIOS binary by running XTIDECFG.COM&lt;br /&gt;
#*Open the XT_xxx.bin file&lt;br /&gt;
#*Configure according to system requirements&lt;br /&gt;
#*Save the file&lt;br /&gt;
#*For EPROMs or read-only cards (such as network cards), write out the configured file using an EPROM programmer off-system&lt;br /&gt;
#*For 2816/2864 series EEPROMs in supported cards such as the original XTIDE, write the configured file directly to the EPROM using the XTIDECFG.COM utility&lt;br /&gt;
#*For 29010/29020 EEPROMs as used by most Lo-tech boards, write the configured file using the [[Lo-tech XT-CF flash utility]] (see below)&lt;br /&gt;
#Reboot the machine and run FDISK and FORMAT as required&lt;br /&gt;
&lt;br /&gt;
== Programming Lo-tech Storage Boards ==&lt;br /&gt;
&lt;br /&gt;
Lo-tech storage boards use SST 29xxx series EEPROMs, which cannot be written to by the XTIDECFG.COM utility. However, the BIOS file (XT_xxx.bin) still needs to be configured and saved using XTIDECFG.COM, before the file can be written to the Lo-tech boards using the [[Lo-tech XT-CF flash utility]].&lt;br /&gt;
&lt;br /&gt;
For users of Lo-tech CompactFlash based boards, [{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/xtide-r566-xt-cf-master-slave.zip a pre-configured XTIDE Universal BIOS (built on r566] is provided, which can be written directly to the cards using the [[Lo-tech XT-CF flash utility]] without the additional configuration step. See [{{SERVER}}/wiki/Lo-tech_ISA_CompactFlash_Adapter_FAQ#What_BIOS_does_the_Card_Use.3F here] for more information.&lt;br /&gt;
&lt;br /&gt;
For users of the [[Lo-tech 8-bit IDE Adapter]], a special build based on r567 is available - see [{{SERVER}}/wiki/Lo-tech_8-bit_IDE_Adapter#ROM_BIOS_.26_BIOS_Flashing here].&lt;br /&gt;
&lt;br /&gt;
== XTIDE BIOS Files ==&lt;br /&gt;
&lt;br /&gt;
[https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries The pre-built binaries download centre] provides a number of builds for specific use-cases as detailed below.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File Name !! Use-Case !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|ide_386.bin || Any PC with an 80386 or higher CPU || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_386l.bin || Any PC with an 80386 or higher CPU || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_286.bin || Any PC with an 80286 or higher CPU || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_286l.bin || Any PC with an 80286 or higher CPU || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_tiny.bin || Any PC || Tiny build (4KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xt.bin || Any PC/XT class machine with 8088 or 8086 CPU (or above) || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtl.bin || Any PC/XT class machine with 8088 or 8086 CPU (or above) || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtp.bin || Any PC/XT class machine with NEC V20/V30 CPU (or equivalent providing 80186 instruction set) || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtpl.bin || Any PC/XT class machine with NEC V20/V30 CPU (or equivalent providing 80186 instruction set) || Large build (10KB)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The XTIDECFG.COM utility is used to configure any of the above binary files, prior to writing to the EEPROM. EEPROMs can be written in-system to Lo-tech boards using the [[Lo-tech XT-CF flash utility]].&lt;br /&gt;
&lt;br /&gt;
The standard builds include a &#039;hot-key&#039; user interface where users can boot from floppy by pressing &#039;A&#039; at the initialisation screen and support for serial-connected drives. Large builds also include a full boot menu. The Tiny build includes only the most basic functionality, to enable the use of the BIOS on 4KB ROMs (serial devices are not supported).&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
A number of factors impact the performance of devices operating via the XTIDE Universal BIOS.&lt;br /&gt;
&lt;br /&gt;
*Choose the BIOS binary file that most closely matches your system.&lt;br /&gt;
**If you have a V20 or V30 CPU, use the ide_xpl.bin file. This makes use of loop instructions not available on 8088/8086 and will provide a big performance increase on these systems.&lt;br /&gt;
**Even if you have an &#039;XT Class&#039; 80286 based system, such as the Tandy 1000TL, use the ide_286.bin file.&lt;br /&gt;
*On slower machines, the multi-sector transfer capabilities of the storage device itself can greatly impact performance. Some devices, in particular many CompactFlash cards, allow the system to transfer only one sector at a time (512 bytes), which means the BIOS code must loop through sector read request code every 512 bytes. This is much slower than transferring a larger block of data in one go, as would be possible with a device supporting multi-sector transfers.&lt;br /&gt;
*Many 8-bit ISA &#039;XTIDE&#039; derivatives support &#039;16-bit transfers&#039; using port mapping techniques that offload the effort of breaking 16-bit transfers into two 8-bit transfers to the system bus interface unit. This is known as &#039;Bus Interface Offload Mode&#039; in the XTIDE Universal BIOS (BIU mode) and offers significant performance advantages for 8-bit ISA cards such as the original XTIDE card and most Lo-tech boards.&lt;br /&gt;
*When using the XTIDE Universal BIOS on later machines (386/486/Pentium), be sure to enable ROM shadowing in the BIOS for the region where the ROM is stored. For example, if the ROM is at C800h, enable ROM shadowing for C800h to CA00h (assuming standard 8KB build). This will greatly improve performance, since otherwise each instruction in the ROM code must be fetched over the slow 8-bit ISA bus, instead of from system memory or CPU cache. Note that ROM Shadowing will likely need to be disabled in order to (re)program the card.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*Former project hosting: https://code.google.com/p/xtideuniversalbios/&lt;br /&gt;
*[http://www.vintage-computer.com/vcforum/showthread.php?29749-XTIDE-Universal-BIOS-v2-0-0-beta-testing-thread VintageComputer.com BIOS v2.0 Development Thread]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=XTIDE_Universal_BIOS&amp;diff=1532</id>
		<title>XTIDE Universal BIOS</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=XTIDE_Universal_BIOS&amp;diff=1532"/>
		<updated>2022-07-16T09:30:51Z</updated>

		<summary type="html">&lt;p&gt;James: Expanded to include deployment steps and table listing the pre-built binaries.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;XTIDE Universal BIOS makes it possible to use ATA hard disks or Compact Flash cards on old PC&#039;s. The XTIDE Universal BIOS can be used on any IBM PC, XT, AT or 100% compatible system.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Official Project Site ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[https://xtideuniversalbios.org xtideuniversalbios.org]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The official project site is hosted by Lo-tech.&lt;br /&gt;
&lt;br /&gt;
== License of Use ==&lt;br /&gt;
&lt;br /&gt;
The XTIDE Universal BIOS project is run under [http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License version 2].&lt;br /&gt;
&lt;br /&gt;
In addition to that license through which the source code is made available, binary downloads provided from Lo-tech.co.uk are subject to the [[Terms and Conditions|Lo-tech Terms and Conditions of Use]].&lt;br /&gt;
&lt;br /&gt;
== Building from Source ==&lt;br /&gt;
&lt;br /&gt;
For those wishing to build from source, for example for specific functionality not provided by the standard builds, instructions are maintained on the project site &#039;&#039;&#039;[https://xtideuniversalbios.org/wiki/BuildInstructions here]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Binary Downloads ==&lt;br /&gt;
&lt;br /&gt;
Each release is automatically compiled, and the binaries are available at [https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries].&lt;br /&gt;
&lt;br /&gt;
The binary images must be configured to the requirements of the machine using XTIDECFG.COM, saved, and finally written out to the EEPROM or EPROM.&lt;br /&gt;
&lt;br /&gt;
== Configuring the BIOS ==&lt;br /&gt;
&lt;br /&gt;
The provided binaries must be configured before use. This is done with the XTIDECFG.COM utility, which is included in the download. This is an MSDOS utility. The steps to get the BIOS onto the machine are:&lt;br /&gt;
&lt;br /&gt;
#Download the latest build from [https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries]:&lt;br /&gt;
#*XTIDECFG.COM, and&lt;br /&gt;
#*The appropriate XT_xxx.bin file (see table below)&lt;br /&gt;
#Copy the two files to an MSDOS bootable floppy disk&lt;br /&gt;
#Boot the machine from the floppy&lt;br /&gt;
#Configure the BIOS binary by running XTIDECFG.COM&lt;br /&gt;
#*Open the XT_xxx.bin file&lt;br /&gt;
#*Configure according to system requirements&lt;br /&gt;
#*Save the file&lt;br /&gt;
#*For EPROMs or read-only cards (such as network cards), write out the configured file using an EPROM programmer off-system&lt;br /&gt;
#*For 2816/2864 series EEPROMs in supported cards such as the original XTIDE, write the configured file directly to the EPROM using the XTIDECFG.COM utility&lt;br /&gt;
#*For 29010/29020 EEPROMs as used by most Lo-tech boards, write the configured file using the [[Lo-tech XT-CF flash utility]] (see below)&lt;br /&gt;
#Reboot the machine and run FDISK and FORMAT as required&lt;br /&gt;
&lt;br /&gt;
== Programming Lo-tech Storage Boards ==&lt;br /&gt;
&lt;br /&gt;
Lo-tech storage boards use SST 29xxx series EEPROMs, which cannot be written to by the XTIDECFG.COM utility. However, the BIOS file (XT_xxx.bin) still needs to be configured and saved using XTIDECFG.COM, before the file can be written to the Lo-tech boards using the [[Lo-tech XT-CF flash utility]].&lt;br /&gt;
&lt;br /&gt;
For users of Lo-tech CompactFlash based boards, [{{SERVER}}/downloads/XT-IDE/lo-tech-isa-compactflash-adapter/xtide-r566-xt-cf-master-slave.zip a pre-configured XTIDE Universal BIOS (built on r566] is provided, which can be written directly to the cards using the [[Lo-tech XT-CF flash utility]] without the additional configuration step. See [{{SERVER}}/wiki/Lo-tech_ISA_CompactFlash_Adapter_FAQ#What_BIOS_does_the_Card_Use.3F here] for more information.&lt;br /&gt;
&lt;br /&gt;
For users of the [[Lo-tech 8-bit IDE Adapter]], a special build based on r567 is available - see [{{SERVER}}/wiki/Lo-tech_8-bit_IDE_Adapter#ROM_BIOS_.26_BIOS_Flashing here].&lt;br /&gt;
&lt;br /&gt;
== XTIDE BIOS Files ==&lt;br /&gt;
&lt;br /&gt;
[https://xtideuniversalbios.org/binaries xtideuniversalbios.org/binaries The pre-built binaries download centre] provides a number of builds for specific use-cases as detailed below.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!File Name !! Use-Case !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|ide_386.bin || Any PC with an 80386 or higher CPU || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_386l.bin || Any PC with an 80386 or higher CPU || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_286.bin || Any PC with an 80286 or higher CPU || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_286l.bin || Any PC with an 80286 or higher CPU || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_tiny.bin || Any PC || Tiny build (4KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xt.bin || Any PC/XT class machine with 8088 or 8086 CPU (or above) || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtl.bin || Any PC/XT class machine with 8088 or 8086 CPU (or above) || Large build (10KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtp.bin || Any PC/XT class machine with NEC V20/V30 CPU (or equivalent providing 80186 instruction set) || Standard build (8KB)&lt;br /&gt;
|-&lt;br /&gt;
|ide_xtpl.bin || Any PC/XT class machine with NEC V20/V30 CPU (or equivalent providing 80186 instruction set) || Large build (10KB)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The XTIDECFG.COM utility is used to configure any of the above binary files, prior to writing to the EEPROM. EEPROMs can be written in-system to Lo-tech boards using the [[Lo-tech XT-CF flash utility]].&lt;br /&gt;
&lt;br /&gt;
The standard builds include a &#039;hot-key&#039; user interface where users can boot from floppy by pressing &#039;A&#039; at the initialisation screen and support for serial-connected drives. Large builds also include a full boot menu. The Tiny build includes only the most basic functionality, to enable the use of the BIOS on 4KB ROMs (serial devices are not supported).&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
A number of factors impact the performance of devices operating via the XTIDE Universal BIOS.&lt;br /&gt;
&lt;br /&gt;
*Choose the BIOS binary file that most closely matches your system.&lt;br /&gt;
**If you have a V20 or V30 CPU, use the ide_xpl.bin file. This makes use of loop instructions not available on 8088/8086 and will provide a big performance increase on these systems.&lt;br /&gt;
**Even if you have an &#039;XT Class&#039; 80286 based system, such as the Tandy 1000TL, use the ide_286.bin file.&lt;br /&gt;
*On slower machines, the multi-sector transfer capabilities of the storage device itself can greatly impact performance. Some devices, in particular many CompactFlash cards, allow the system to transfer only one sector at a time (512 bytes), which means the BIOS code must loop through sector read request code every 512 bytes. This is much slower than transferring a larger block of data in one go, as would be possible with a device supporting multi-sector transfers.&lt;br /&gt;
*Many 8-bit ISA &#039;XTIDE&#039; derivatives support &#039;16-bit transfers&#039; using port mapping techniques that offload the effort of breaking 16-bit transfers into two 8-bit transfers to the system bus interface unit. This is known as &#039;Bus Interface Offload Mode&#039; in the XTIDE Universal BIOS (BIU mode) and offers significant performance advantages for 8-bit ISA cards such as the original XTIDE card and most Lo-tech boards.&lt;br /&gt;
*When using the XTIDE Universal BIOS on later machines (386/486/Pentium), be sure to enable ROM shadowing in the BIOS for the region where the ROM is stored. For example, if the ROM is at C800h, enable ROM shadowing for C800h to CA00h (assuming standard 8KB build). This will greatly improve performance, since otherwise each instruction in the ROM code must be fetched over the slow 8-bit ISA bus, instead of from system memory or CPU cache.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*Former project hosting: https://code.google.com/p/xtideuniversalbios/&lt;br /&gt;
*[http://www.vintage-computer.com/vcforum/showthread.php?29749-XTIDE-Universal-BIOS-v2-0-0-beta-testing-thread VintageComputer.com BIOS v2.0 Development Thread]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_USB_Adapter&amp;diff=1531</id>
		<title>Lo-tech ISA USB Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_ISA_USB_Adapter&amp;diff=1531"/>
		<updated>2022-07-16T07:19:18Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-ISA-USB-Adapter-PCB-Front.JPG|right|300px|Lo-tech ISA USB Adapter PCB]]&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech ISA USB Adapter]] is a bootable storage adapter for IBM PC, PC/XT, PC/AT and compatible hardware - essentially any PC with an ISA slot, enabling a standard USB flash drive to be used. This eliminates the dependence on ageing hard disks and floppy disks, and makes data exchange with a modern PC easy. The design is based on the CH375 USB chip and is a development of the [[Lo-tech ISA CompactFlash Adapter revision 2b]].&lt;br /&gt;
&lt;br /&gt;
The BIOS ROM used by the card (available [https://gitlab.com/hakfoo1/v40-bios/-/tree/CH375-Workarounds/ here]) enable the host PC to boot from storage presented by the adapter, which appears in DOS as an ordinary fixed disk (i.e., drive C, D, etc). No DOS drivers are needed. Note that the maximum partition size under MS-DOS is 2GB, meaning a total of 8GB can be accessed and the current BIOS provides up to 504MB. For users not requiring ROM boot, a CONFIG.SYS driver will also be available soon.&lt;br /&gt;
&lt;br /&gt;
The PCB itself is a 4-layer, small form factor 8-bit ISA adapter. Building this PCB requires some surface-mount (SMT) components, the smallest being 0603 capacitors. Mounting holes are provided for a custom ISA slot bracket, which can be 3D printed in plastic at home, or from commercial vendors in various metals.&lt;br /&gt;
&lt;br /&gt;
The design provides:&lt;br /&gt;
&lt;br /&gt;
*Bootable storage adapter for 8-bit PCs&lt;br /&gt;
*Small form-factor, to enable use in machines with limited expansion slot space such as the Tandy 1000HX, Sinclair PC200 and Amstrad PC-20&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility&lt;br /&gt;
*Selectable BIOS address - C800h or D800h&lt;br /&gt;
&lt;br /&gt;
The BIOS is provided through an in-system re-programmable 32KB flash-based ROM, and since the BIOS is only 8KB, 24KB is available for other purposes, and is byte-programmable - the board can therefore function as a universal ROM board.&lt;br /&gt;
&lt;br /&gt;
The board uses the CH375 USB interface and provides optimised transfer speed for PC/XT class machines by using shifted port mapping, so enabling 16-bit instructions. This improves the performance to about 170KB/s at 4.77MHz.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
*8-bit ISA card with standard USB socket for connection of USB flash drive&lt;br /&gt;
*Line driver for external activity LEDs (12mA power budget)&lt;br /&gt;
*[[IBM Personal Computer XT System Board Slot 8]] compatibility&lt;br /&gt;
*Low-cost flash memory chip for boot ROM, with 32KB usable&lt;br /&gt;
*Port-mapped IO; supports both 8- and 16-bit instructions (via partial address decoding)&lt;br /&gt;
*Resource requirements:&lt;br /&gt;
**IO ports 2C0-2C8h&lt;br /&gt;
**ROM: 32KB at C800h or D800h&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-ISA-USB-adapter-schematic.png&lt;br /&gt;
File:Lo-tech-ISA-USB-Adapter-PCB-Front.JPG&lt;br /&gt;
File:Lo-tech-ISA-USB-Adapter-PCB-Back.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
|IC1, IC3 || 74HCT688N || DIP-20 || 2 || 382504 || 771-74HCT688N&lt;br /&gt;
|-&lt;br /&gt;
|IC2 || SST39SF010A-70-4C-PHE || DIP-32 || 1 || 1896595 || 804-39SF010A7CPHE&lt;br /&gt;
|-&lt;br /&gt;
|IC4 || CH375 || SOIC-28 || 1 || - || -&lt;br /&gt;
|-&lt;br /&gt;
|IC5 || 74HCT245N || DIP-20 || 1 || 9591931 || 595-SN74HCT245N&lt;br /&gt;
|-&lt;br /&gt;
|C1-3, C5 || 0.1uF Ceramic Capacitor || C025-030X050 || 4 || 2112751 || 581-SR205E104MAR or &amp;lt;br&amp;gt;581-SR205C104KAR&lt;br /&gt;
|-&lt;br /&gt;
|C6 || 10uF Electrolytic Capacitor || E2-5  || 1 || 8767084 || 647-UVR1C100MDD&lt;br /&gt;
|-&lt;br /&gt;
|C7 || CAPACITOR, 0.1UF, 50V || 0805 || 2 || 1612208 || VJ0805V104MXBPW1BC&lt;br /&gt;
|-&lt;br /&gt;
|C9 || 0.01uF Ceramic || 0603 || 1 || - || 963-UMK107B7103KAHT&lt;br /&gt;
|-&lt;br /&gt;
|C10 || 0.1uF Ceramic || 0603 || 2 || - || 963-UMK107BJ104KAHT&lt;br /&gt;
|-&lt;br /&gt;
|C12-13 || 15-30pF Ceramic || 0603 || 2 || || 581-06035C220JAT2A&lt;br /&gt;
|-&lt;br /&gt;
|C14, C15 || 100uF Electrolytic Capacitor || E2-5 || 1 || - || 647-UVR1A101MDD&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP32) || - || DIL32 || 1 || 1654375 || 571-1-2199300-2&amp;lt;br&amp;gt;517-4832-6000-CP&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP20) || - || DIL20 || 3 || 1101349 || 571-1-2199298-6&amp;lt;br&amp;gt;649-DILB20P-223TLF&lt;br /&gt;
|-&lt;br /&gt;
|JP1, JP2, JP3, LED || - || 1x2 Pin Header || 4 || 1593411 || 855-M20-9990246&amp;lt;br&amp;gt;653-XG8S-0231&lt;br /&gt;
|-&lt;br /&gt;
|JP4 || - || 2x2 Pin Header || 1 || - || 517-9612046804AR&lt;br /&gt;
|-&lt;br /&gt;
| - || - || 2-pin jumper || 4 || 2396301 || 806-SX1100-A&lt;br /&gt;
|-&lt;br /&gt;
|U1 || SN74LS33D || SOIC-14 || 1 || 1752958 || 595-SN74LS33D&lt;br /&gt;
|-&lt;br /&gt;
|R1, R2, R4 || RESISTOR, 10K, 125MW || 0805 || 3 || 1612522 || 71-CRCW0805J-10K-E3&lt;br /&gt;
|-&lt;br /&gt;
|R3 || RESISTOR, 0.125W 1% 270R || 0805 || 1 || 1652970 || 71-CRCW0805270RJNEA&lt;br /&gt;
|-&lt;br /&gt;
|R5 || RESISTOR, 0.125W 1% 2R || 0805 || 1 || 1652970 || 71-CRCW08052R00FKEA&lt;br /&gt;
|-&lt;br /&gt;
|R6 || RESISTOR, 10K, 125MW || 0204/7 || 1 || 9342419 || 270-10K-RC&lt;br /&gt;
|-&lt;br /&gt;
|X1 || HC49 Crystal, 12MHz ±0.4‰ || - || 1 || - || 774-ATS12A-E&lt;br /&gt;
|-&lt;br /&gt;
|HD1 || USB Connectors RA USB A || - || 1 || - || 523-UE27AC5410H&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Board design permits the use of a range of DIP-32 flash chips (1, 2 or 4Mb):&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/SST/SST39SF0x0.pdf SST39SF0x0A] (SST39SF010A, SST39SF020A, SST39SF040A)&lt;br /&gt;
**[{{SERVER}}/downloads/manuals/AMIC/AMIC-A29010.pdf AMIC A29010]&lt;br /&gt;
**AMIC chips appear to have been discontinued (as as Nov-13)&lt;br /&gt;
*Regardless of the chip used, 32KB is presented at C800h (JP2 closed) or D800h (JP2 open and R4 fitted)&lt;br /&gt;
&lt;br /&gt;
Note that when assembling SMT components, additional flux will also be needed (such as Edsyn FL22, Farnell order code 3059091).&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
*JP1: ROM enable (closed = enabled)&lt;br /&gt;
*JP2: ROM Address Selection - closed = C800h, open (and R4 fitted) = D800h&lt;br /&gt;
*JP3: Slot-8/ZWS Function (closed = enabled) - requires SMT components&lt;br /&gt;
*JP4: Port mode&lt;br /&gt;
**Std - 8-bit transfers, registers mapped at 2C0h, 2C1h&lt;br /&gt;
**Fast - 16-bit transfers, registers mapped at 2C0h, 2C2h (not supported by alpha BIOS)&lt;br /&gt;
&lt;br /&gt;
An external LED can be attached to the 2-pin LED header only if the optional components (on the rear of the PCB) are populated. Current limit for LED is 12mA.&lt;br /&gt;
&lt;br /&gt;
The IO port address (2C0h - 2C8h) is fixed.&lt;br /&gt;
&lt;br /&gt;
== Build &amp;amp; Test ==&lt;br /&gt;
&lt;br /&gt;
For additional help, please [{{SERVER}}/get-in-touch/ send an email].&lt;br /&gt;
&lt;br /&gt;
=== Construction ===&lt;br /&gt;
&lt;br /&gt;
*Find a suitable work surface with plenty of light.  A car-cleaning sponge is useful to rest the PCB on since components are held nicely in place under the PCB by the soft surface, which can also be easily turned around as a whole with components not yet soldered&lt;br /&gt;
*Start with the SMT components, then proceed with the least tall components, so that they are held full in place with the solder side up&lt;br /&gt;
*When soldering IC sockets or ICs, ensure the notches are at the correct end as indicated by the PCB silkscreen&lt;br /&gt;
*Note the correct orientation of the polarised capacitors C6, C14 and C15.&lt;br /&gt;
*Wash all flux residues off once complete using isopropynol (for example with a toothbrush)&lt;br /&gt;
*Check closely with a magnifying glass all joints.  Check especially for bridges between SMT pins&lt;br /&gt;
&lt;br /&gt;
=== BIOS Flashing (Programming) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The following assumes JP2 is closed, providing the ROM at C800h&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The flash chip is programmed with the [[Lo-tech XT-CF flash utility]]. To program the board, make a DOS boot disk (utilities have been tested on MS-DOS 2.11, 3.3 and 6.22) and add the BIOS binary file and the flash utility.  Install the Lo-tech ISA CompactFlash Adapter in the machine and boot from the floppy, then flash the ROM thus:&lt;br /&gt;
&lt;br /&gt;
 A:\&amp;gt;flash v40-bios.bin c800 &lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
The silkscreen incorrectly documents the fixed IO port range as 260-26Fh; the CH375 is at 2C0h.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
*[https://gitlab.com/hakfoo1/v40-bios/-/tree/CH375-Workarounds/ Beta BIOS]&lt;br /&gt;
*[{{SERVER}}/downloads/isa-usb/CH375-datasheet.pdf CH375 datasheet]&lt;br /&gt;
&lt;br /&gt;
Config.sys driver (for non-bootable use) coming soon.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech ISA USB Adapter FAQ]]&lt;br /&gt;
*[[lo-tech XT-CF Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_RPi_VGA_Adapter&amp;diff=1530</id>
		<title>Lo-tech RPi VGA Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_RPi_VGA_Adapter&amp;diff=1530"/>
		<updated>2022-07-12T19:46:15Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-VGA-interface-board-mounted.jpg|right|300px]]&lt;br /&gt;
The [[Lo-tech RPi VGA Adapter]] is a high-quality display board that provides second-screen capabilities to Raspberry Pi boards equipped with 40-pin GPIO header. The two screens can be connected concurrently and used independently, and are both powered directly by the RPi’s GPU and so achieve the same graphics performance.&lt;br /&gt;
&lt;br /&gt;
Key Features:&lt;br /&gt;
&lt;br /&gt;
*VGA Interface for RaspberryPi SBCs with 40-pin GPIO header (Model A+/B+/2/3/4)&lt;br /&gt;
*Standard VGA DSUB connector, supports all video modes up to 1080p&lt;br /&gt;
*Resistor ladder type DAC, with 8-bit resolution on each channel (888 format)&lt;br /&gt;
*Buffered H-Sync and V-Sync ensures all GPIOs operate within their design current rating&lt;br /&gt;
*ESD protection to IEC−61000−4−2 Level 4&lt;br /&gt;
*FCC Class A Compliant and EU Council Directive 2004/108/EC Class B Compliant&lt;br /&gt;
*Natively supported in Raspbian Jessie via dpi24.dtb overlay&lt;br /&gt;
*Can be used as primary display or as a second (independent) display in addition to the on-board HDMI output&lt;br /&gt;
&lt;br /&gt;
The board has been designed to fit directly on top of the RaspberryPi following the HAT physical dimensions (this board does not however provide the I2C EEPROM function required for HAT auto-configuration).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This product is available online [https://texelec.com/product/lo-tech-rpi-vga-board/ via the TexElec store].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;150px&amp;quot; heights=&amp;quot;125px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:Lo-tech-VGA-interface-board-front.jpg&lt;br /&gt;
File:Lo-tech-VGA-interface-board-front-assembled.JPG&lt;br /&gt;
File:Lo-tech-VGA-interface-board-mounted.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raspbian Configuration ===&lt;br /&gt;
&lt;br /&gt;
Raspbian Jessie provides native support for the parallel display interface provided via the GPIO header with alternate mode 2 via an overlay. This can be enabled via &amp;lt;tt&amp;gt;config.txt&amp;lt;/tt&amp;gt; on the boot partition,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
dtoverlay=dpi24&lt;br /&gt;
enable_dpi_lcd=1&lt;br /&gt;
display_default_lcd=1&lt;br /&gt;
dpi_group=2&lt;br /&gt;
dpi_mode=16&lt;br /&gt;
dpi_output_format=0x17&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Monitor resolution is determined by &amp;lt;tt&amp;gt;dpi_mode&amp;lt;/tt&amp;gt; parameter:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!dpi_mode value !!Resolution !!Frequency&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 640x480 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 800x600 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 16 || 1024x768 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 21 || 1152x864 || 75Hz&lt;br /&gt;
|-&lt;br /&gt;
| 23 || 1280x768 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 28 || 1280x800 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 32 || 1280x960 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 35 || 1280x1024 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 39 || 1360x768 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 42 || 1400x1050 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 47 || 1440x900 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 51 || 1600x1200 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 58 || 1680x1050 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 69 || 1920x1200 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 81 || 1366x768 || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 82 || 1920x1080 (1080p) || 60Hz&lt;br /&gt;
|-&lt;br /&gt;
| 85 || 1280x720 (720p) || 60Hz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that, at time of writing, the Raspbian X Desktop is not extended across displays. omxplayer can however play video on one screen whilst working on the other, for example:&lt;br /&gt;
&lt;br /&gt;
*To play on VGA device when desktop is on HDMI device: &amp;lt;tt&amp;gt;omxplayer --display 4 test.mp4&amp;lt;/tt&amp;gt;&lt;br /&gt;
*To play on HDMI device when desktop is on VGA device: &amp;lt;tt&amp;gt;omxplayer --display 5 test.mp4&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comparison to Other RPi VGA Interfaces ==&lt;br /&gt;
&lt;br /&gt;
This product has been designed for reliable long-term use, for example in a desktop computing environment, and as such offers proper protection to the Raspberry Pi to which it is attached given it&#039;s exposed hot-pluggable connector.&lt;br /&gt;
&lt;br /&gt;
The product has been tested to:&lt;br /&gt;
&lt;br /&gt;
*Conducted Emissions - EN 55032:2015&lt;br /&gt;
*Radiated Emissions - EN 55032:2015 (this product also meets FCC Part 15 Class B limits)&lt;br /&gt;
*Electrostatic Discharge - BS EN 61000-4-2 : 2009 LEVEL 4&lt;br /&gt;
&lt;br /&gt;
This product provides an interference free image with the use of the RPi wireless technologies (WiFi and Bluetooth) and implements control signal TTL buffers, since the Raspberry Pi GPIOs are not able to meet VGA specifications and may be over-driven by other designs.&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Device !! Qty !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| C1,C2,C3 || Do Not Populate || 0 ||&lt;br /&gt;
|-&lt;br /&gt;
| C4,C5 || CC0603KRX7R8BB105 || 2 || 603-CC603KRX7R8BB105&lt;br /&gt;
|-&lt;br /&gt;
| C6,C7 || CC0603KRX7R8BB224 || 2 || 603-CC603KRX7R8BB224&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || CM2009-00QR || 1 || 748-CM2009-00QR&lt;br /&gt;
|-&lt;br /&gt;
| P1 || M20-7832046 || 1 || 855-M20-7832046&lt;br /&gt;
|-&lt;br /&gt;
| R1, R10, R19 || RC0603FR-07549RL || 3 || 603-RC0603FR-07549RL&lt;br /&gt;
|-&lt;br /&gt;
| R2, R11, R20 || RC0603FR-071K1L || 3 || 603-RC0603FR-071K1L&lt;br /&gt;
|-&lt;br /&gt;
| R3, R12, R21 || RC0603FR-072K2L || 3 || 603-RC0603FR-072K2L&lt;br /&gt;
|-&lt;br /&gt;
| R4, R13, R22 || RC0603FR-074K42L || 3 || 603-RC0603FR-074K42L&lt;br /&gt;
|-&lt;br /&gt;
| R5, R14, R23 || RC0603FR-078K66L || 3 || 603-RC0603FR-078K66L&lt;br /&gt;
|-&lt;br /&gt;
| R6, R15, R24 || RC0603FR-0717k4L || 3 || 603-RC0603FR-0717K4L&lt;br /&gt;
|-&lt;br /&gt;
| R7, R17, R26 || RC0603FR-0734K8L || 3 || 603-RC0603FR-0734K8L&lt;br /&gt;
|-&lt;br /&gt;
| R8, R18, R27 || RC0603FR-0769K8L || 3 || 603-RC0603FR-0769K8L&lt;br /&gt;
|-&lt;br /&gt;
| X1 || 1-1734530-1 || 1 || 571-1-1734530-1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[http://www.onsemi.com/pub_link/Collateral/CM2009-D.PDF CM2009 Datasheet]&lt;br /&gt;
*[http://www.mouser.com/ds/2/418/NG_CD_1734530_B3__-687281.pdf AMP 1-1734530-1 Datasheet]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Compliance|Product Compliance Statement]]&lt;br /&gt;
*[[RaspberryPi Boards]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_GPIO_Interface_Board_rev.2&amp;diff=1529</id>
		<title>Lo-tech GPIO Interface Board rev.2</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_GPIO_Interface_Board_rev.2&amp;diff=1529"/>
		<updated>2022-07-12T19:43:42Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-gpio-interface-board-rev2-on-RP2.JPG|right|300px]]&lt;br /&gt;
The [[Lo-tech GPIO Interface Board rev.2]] enables the connection of the RaspberryPi Model A+/B+/2B/3/4 to the outside world, featuring:&lt;br /&gt;
&lt;br /&gt;
*4x opto-isolated inputs (3.3 ~ 30V)&lt;br /&gt;
*8x open-collector outputs (3.3 ~ 30V, 200mA) with inductive drive capability&lt;br /&gt;
*Maxim 1-wire bus connection (eg for temperature sensor)&lt;br /&gt;
*Fused 5V power header (for powering the Raspberry Pi)&lt;br /&gt;
&lt;br /&gt;
The board has been designed to fit directly on top of the RaspberryPi Model B+ following the HAT physical dimensions (this board does not however provide the I2C EEPROM function required for HAT auto-configuration), and is FCC Class A compliant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please [{{SERVER}}/get-in-touch/ get in touch.] for a quote for this product.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
*Small form-factor:&lt;br /&gt;
**Mounts directly to RaspberryPi device and fits within device footprint (65x56mm)&lt;br /&gt;
**2.8mm mounting holes aligned with RaspberryPi device mounting holes&lt;br /&gt;
**11mm spacing between boards (use 11mm standoff)&lt;br /&gt;
*Power Options:&lt;br /&gt;
**Power from GPIO header - no separate power connection required; entire device powered via micro-USB on Raspberry Pi&lt;br /&gt;
**5V DC provided to screw-terminals on GPIO board - no separate power connection required to the Raspberry Pi. Polyfuse protection is provided (900mA).&lt;br /&gt;
*Inputs:&lt;br /&gt;
**Four independent opto-isolated inputs with screw terminals&lt;br /&gt;
**Input levels: 3.3 ~ 30V&lt;br /&gt;
*Outputs:&lt;br /&gt;
**Eight Open-Collector outputs with screw terminals&lt;br /&gt;
**Optional pull-up resistor on outputs (can be set to 3.3V, 5V, or to external supply via COM terminal)&lt;br /&gt;
**Inductive Drive Capable&lt;br /&gt;
**Maximum operating frequency: 2MHz&lt;br /&gt;
*Maxim 1-wire Bus IO (screw terminals)&lt;br /&gt;
*Power LED&lt;br /&gt;
*Total assembled weight: 40g (80g, excluding screws, total when mounted on a Raspberry Pi 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;150px&amp;quot; heights=&amp;quot;125px&amp;quot; perrow=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-gpio-interface-board-front-rev2.jpg&lt;br /&gt;
File:lo-tech-gpio-interface-board-front-assembled-rev2.JPG&lt;br /&gt;
File:lo-tech-gpio-interface-board-back-rev2.jpg&lt;br /&gt;
File:lo-tech-gpio-interface-board-back-assembled-rev2.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: this board does not provide the auto-configuration capabilities defined in the [http://www.raspberrypi.org/introducing-raspberry-pi-hats/ RaspberryPi HAT specification]; GPIOs must be manually configured during program initialisation.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Inputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;GPIO numbering follows the BCM numbering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The board provides four inputs (GPIOs 22, 23, 24, and 27), each interfaced through [http://www.farnell.com/datasheets/1874889.pdf H11L1M opto-isolators], which feature Schmitt Trigger outputs. The inputs require 2mA drive, which should be set via appropriate value of RN1. Inputs can be up to 30V. Inputs are initialised by setting GPIOs 22, 23, 24 and 27 to input mode with pull-up. RN2 provides in-line protection to the GPIO pins.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!RN1 Value !!Suggested Voltage Range !!Opto Switch-On Voltage (typical) !!Opto Switch-Off Voltage (typical)&lt;br /&gt;
|-&lt;br /&gt;
|10k || 24 - 30V || 11.3V || 8.9V&lt;br /&gt;
|-&lt;br /&gt;
|6K8 || 14 - 24V || 8.1V || 6.3V&lt;br /&gt;
|-&lt;br /&gt;
|3K3 || 7 - 14V || 4.5V || 3.5V&lt;br /&gt;
|-&lt;br /&gt;
|1K5 || 5 - 7V || 2.6V || 2.2V&lt;br /&gt;
|-&lt;br /&gt;
|1K || &amp;lt;5V || 2.1V || 1.8V&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RN1 is Bourns 4608X-102 type (isolated, 8-pin 4-element)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note that this board does not provide transient spike protection - inputs must not exceed 30V. When using pre-production samples, do not set the input channels to output mode with this board connected, as damage to the Raspberry Pi may occur.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;GPIO numbering follows the BCM numbering&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The board outputs are driven by a [http://www.ti.com/lit/ds/symlink/uln2803a.pdf ULN2803A Darlington Transistor Array], which is able to drive inductive loads directly and suppress the kick-back voltage via the internal free wheeling diodes (requires connection of COM terminal to external supply). Initialisation the outputs is achieved by setting GPIOs 5, 6, 12, 13, 16, 19. 20, 21, 26 to output mode.&lt;br /&gt;
&lt;br /&gt;
The eight open-collector outputs are provided via screw terminals, along with GND and COM connections. Should a pull-up be required, RN3 and can added and configured via JP1 to be:&lt;br /&gt;
&lt;br /&gt;
*1-2: 3V3&lt;br /&gt;
*2-3: 5V&lt;br /&gt;
*Open: when COM is connected.&lt;br /&gt;
&lt;br /&gt;
JP1 &#039;&#039;&#039;must&#039;&#039;&#039; be open if external supply is connected to COM terminal - Raspberry Pi will be damaged if this is not observed. When JP1 is not open, pull-up current will be sourced from the Raspberry Pi 5V or 3V3 rails, a high value or RN3 should therefore b0e used (typically 10K).&lt;br /&gt;
&lt;br /&gt;
Each output can sink 200mA; however total sink current should not exceed 600mA. ULN2803A power dissipation rules should also be observed (see [http://www.ti.com/lit/ds/symlink/uln2803a.pdf ULN2803a Datasheet]).&lt;br /&gt;
&lt;br /&gt;
When driving inductive loads, external supply should be connected to COM terminal to enable internal free wheeling diodes to suppress kick-back voltage. Operating voltage should also be de-rated to ensure the maximum voltage does not exceed 30V.&lt;br /&gt;
&lt;br /&gt;
== Maxim 1-wire Bus ==&lt;br /&gt;
&lt;br /&gt;
The board 1-wire bus IO is directly connected to GPIO 4, along with a 4K7 pull-up. Connected temperature sensor(s) can be automatically detected by Linux with appropriate kernel modules installed. When devices are cabled, Cat5e cable is recommended.&lt;br /&gt;
&lt;br /&gt;
=== Raspbian Kernel Configuration ===&lt;br /&gt;
&lt;br /&gt;
For 3.18 kernel and newer, a kernel option must be added to &amp;lt;tt&amp;gt;/boot/config.txt&amp;lt;/tt&amp;gt; due to change introduced with the Device Tree system (see [http://www.raspberrypi.org/forums/viewtopic.php?t=99263&amp;amp;p=691623 this RaspberyPi Forum Post]). Add this line to the end of the file, and reboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 dtoverlay=w1-gpio&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once restarted, kernel modules &amp;lt;tt&amp;gt;w1-gpio&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;w1-therm&amp;lt;/tt&amp;gt; need to be installed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
pi@raspberrypi ~ $ sudo modprobe w1-gpio&lt;br /&gt;
pi@raspberrypi ~ $ sudo modprobe w1-therm&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be made persistent by adding these module names to &amp;lt;tt&amp;gt;/etc/modules&amp;lt;/tt&amp;gt;. Sensor data is then available via &amp;lt;tt&amp;gt;/sys/bus/w1&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
pi@raspberrypi /sys/bus/w1 $ find .&lt;br /&gt;
.&lt;br /&gt;
./devices&lt;br /&gt;
./devices/28-000006991886&lt;br /&gt;
./devices/w1_bus_master1&lt;br /&gt;
./drivers&lt;br /&gt;
./drivers/w1_master_driver&lt;br /&gt;
./drivers/w1_master_driver/bind&lt;br /&gt;
./drivers/w1_master_driver/w1_bus_master1&lt;br /&gt;
./drivers/w1_master_driver/uevent&lt;br /&gt;
./drivers/w1_master_driver/unbind&lt;br /&gt;
./drivers/w1_slave_driver&lt;br /&gt;
./drivers/w1_slave_driver/bind&lt;br /&gt;
./drivers/w1_slave_driver/28-000006991886&lt;br /&gt;
./drivers/w1_slave_driver/uevent&lt;br /&gt;
./drivers/w1_slave_driver/unbind&lt;br /&gt;
./uevent&lt;br /&gt;
./drivers_probe&lt;br /&gt;
./drivers_autoprobe&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For [http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf Dallas 18B20 temperature sensors], &amp;lt;tt&amp;gt;28-000006991886&amp;lt;/tt&amp;gt; represents the serial-number of the device (also shown in &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;), and the current reading is available in &amp;lt;tt&amp;gt;w1_slave&amp;lt;/tt&amp;gt; (28812 in this example is 28.812°C):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
pi@raspberrypi /sys/bus/w1/devices/28-000006991886 $ cat name&lt;br /&gt;
28-000006991886&lt;br /&gt;
pi@raspberrypi /sys/bus/w1/devices/28-000006991886 $ cat w1_slave &lt;br /&gt;
cd 01 4b 46 7f ff 03 10 4a : crc=4a YES&lt;br /&gt;
cd 01 4b 46 7f ff 03 10 4a t=28812&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| C1..C5 || 0.1uF (100nF) || Ceramic Capacitor || THT || 5 || 2112751 || 581-SR205E104MAR&lt;br /&gt;
|-&lt;br /&gt;
| C6..C7 || 10uF || Electrolytic Capacitor || E2-5 || 2 || 8767084 || 647-UVR1C100MDD&lt;br /&gt;
|-&lt;br /&gt;
| C8 || Application Dependent || Electrolytic Capacitor || E2-5 || 1 || 8767084 (10uF) || 647-UVR1C100MDD (10uF)&lt;br /&gt;
|-&lt;br /&gt;
| HD1, HD2 || 10-way screw terminal (3.81mm) || FCI 20020327-D101B01LF or &amp;lt;br&amp;gt;Kobiconn 158-P02EK381V10-E or &amp;lt;br&amp;gt;Multicomp MC000024 || THT || 2 || 2007993 || 649-220327-D101B01LF or &amp;lt;br&amp;gt;158-P02EK381V10-E&lt;br /&gt;
|-&lt;br /&gt;
| HD3 || 3-way screw terminal (3.81mm) || FCI 220327-D031B01LF or &amp;lt;br&amp;gt;Kobiconn 158-P02EK381V3-E or &amp;lt;br&amp;gt;Multicomp MC000019 || THT || 1 || 2007986 || 649-220327-D031B01LF or &amp;lt;br&amp;gt;158-P02EK381V3-E&lt;br /&gt;
|-&lt;br /&gt;
| F1 || LITTELFUSE  30R135UU.  POLYFUSE, PTC, 30V, RADIAL, 900MA || 30R090UU || THT || 1 || 1822234 || 576-30R135UU&lt;br /&gt;
|-&lt;br /&gt;
| IC1..IC4 || - || H11L1M Optocoupler, Schmitt Trigger || DIP-6 || 4 || 1021127 || 512-H11L1M&lt;br /&gt;
|-&lt;br /&gt;
| IC5 || - || ULN2803A Darlington Array || DIP-18 || 1 || 1094428 || 511-ULN2803A&lt;br /&gt;
|-&lt;br /&gt;
| JP1 || - || Pin Header, 1x3 || - || 1 || 1593412 || 855-M20-9990346&lt;br /&gt;
|-&lt;br /&gt;
| LED || - || 3mm LED || THT || 1 || 1581112 || 645-521-9432F (red)&amp;lt;br&amp;gt;859-LTL-2231AT (green)&lt;br /&gt;
|-&lt;br /&gt;
| P1 || - || SOCKET, PCB, 0.1&amp;quot;, 20+20WAY || THT || 1 || 7992033 || 855-M20-7832046&lt;br /&gt;
|-&lt;br /&gt;
| R1 || 270R || 125mW Carbon Film Resistor || THT || 1 || 2329504 || 299-270-RC or &amp;lt;br&amp;gt;660-CFS1/4CT52R271G&lt;br /&gt;
|-&lt;br /&gt;
| R2 || 4k7 || 125mW Carbon Film Resistor || THT || 1 || 2329534 || 279-CFR16J4K7&lt;br /&gt;
|-&lt;br /&gt;
| RN1 || See table* || SIL-8 Resistor Network (Bournes 4608X-102 type) || THT || 1 || See tables || See tables&lt;br /&gt;
|-&lt;br /&gt;
| RN2** || 1k || 4608X-102-102LF || THT || 1 || 9356517 || 652-4608X-2LF-1K&lt;br /&gt;
|-&lt;br /&gt;
| RN3 || 10k || SIL-9 Resistor Network (Bournes 4609X-101 type) || THT || 1 || See tables || See tables&lt;br /&gt;
|-&lt;br /&gt;
| DIL Socket, 8-pin || - || SOCKET, VERTICAL, 1ROW, 8WAY || THT || 1&amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt; || 3419101 || 571-215297-8 or&amp;lt;br&amp;gt;571-829265-8&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket (DIP18) || - || - || DIL18 || 1 || 2445623 || 571-1-2199298-5&lt;br /&gt;
|-&lt;br /&gt;
| IC Socket (DIP6) || - || - || DIL6 || 4 || 1077343 || 571-1-2199298-1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt;SIL sockets enable RN1 and RN3 values to be interchanged as required after construction.&lt;br /&gt;
&amp;lt;tt&amp;gt;**&amp;lt;/tt&amp;gt;Pre-production (engineering sample) boards have RN2 unpopulated.&lt;br /&gt;
&lt;br /&gt;
For values of RN1, see the table in Inputs sections. RN1 component options:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Part !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| 1k || 4608X-102-102LF || 9356517 || 652-4608X-2LF-1K&lt;br /&gt;
|-&lt;br /&gt;
| 1k5 || 4608X-102-152LF || 9356568 || 652-4608X-2LF-1.5K&lt;br /&gt;
|-&lt;br /&gt;
| 3k3 || 4608X-102-332LF || 9356673 || 652-4608X-2LF-3.3K&lt;br /&gt;
|-&lt;br /&gt;
| 6k8 || 4608X-102-682LF || 2321777 || 652-4608X-2LF-6.8K&lt;br /&gt;
|-&lt;br /&gt;
| 10k || 4608X-102-103LF || 9356525 || 652-4608X-2LF-10K&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RN3 typically 10K where fitted; other values:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Part !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| 1k || 4609X-101-102LF || 9356800 || 652-4609X-1LF-1K&lt;br /&gt;
|-&lt;br /&gt;
| 1k5 || 4609X-101-152LF || 9356851 || 652-4609X-1LF-1.5K&lt;br /&gt;
|-&lt;br /&gt;
| 3k3 || 4609X-101-332LF || 9356983 || 652-4609X-1LF-3.3K&lt;br /&gt;
|-&lt;br /&gt;
| 6k8 || 4609X-101-682LF || 2321778 || 652-4609X-1LF-6.8K&lt;br /&gt;
|-&lt;br /&gt;
| 10k || 4609X-101-103LF || 9356819 || 652-4609X-1LF-10K&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Schematic &amp;amp; Application Notes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;300px&amp;quot; heights=&amp;quot;225px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-GPIO-Interface-r02-Schematic.png&lt;br /&gt;
File:lo-tech-GPIO-Interface-r02-Application-Notes.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;. Copyright (c) 2014,2015 Peacon Ltd.&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Any library suitable for use with the Raspberry Pi (models with 40-pin GPIO header) can be used, for example [http://wiringpi.com/ WiringPi]. The module is compatible with quad-core Pi2. The GPIO channels used are:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!BCM GPIO !! Purpose !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|4 || Maxim 1-wire Bus || Screw terminals&lt;br /&gt;
|-&lt;br /&gt;
|5 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|6 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|12 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|13 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|16 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|19 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|20 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|22 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|23 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|24 || Input || See note&lt;br /&gt;
|-&lt;br /&gt;
|26 || Open-collector Output || Screw terminal output&lt;br /&gt;
|-&lt;br /&gt;
|27 || Input || See note&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The specified H11L1M opto-isolator has an LED forward voltage of 1.2V and requires 2mA drive.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.farnell.com/datasheets/1874889.pdf H11L1M Datasheet]&lt;br /&gt;
*[http://www.ti.com/lit/ds/symlink/uln2803a.pdf ULN2803a Datasheet]&lt;br /&gt;
*[[RaspberryPi Boards]]&lt;br /&gt;
*[{{SERVER}}/shop Lo-tech PCB Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_Z80_CPU_Test_Adapter&amp;diff=1528</id>
		<title>Lo-tech Z80 CPU Test Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_Z80_CPU_Test_Adapter&amp;diff=1528"/>
		<updated>2022-07-12T19:41:33Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Z80-CPU-Test-rev01.JPG|right|300px]]&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech Z80 CPU Test Adapter]] is a simple board designed to assist with troubleshooting of Z80 based systems by enabling easy measurement of all CPU signals, and the option to present known wave-forms on all of the address bus CPU outputs.&lt;br /&gt;
&lt;br /&gt;
Documentation has been developed with the kind assistance of Larry Kraemer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: this board has been discontinued.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
The board provides a DIP-40 socket that should be populated with a known-good Z80 CPU. The target system CPU should then be removed, and replaced with the board. CPU orientation should be set the same as the system board.&lt;br /&gt;
&lt;br /&gt;
Test probes (for logical analyser, oscilliscope, or simple multimeter) can be connected to the labelled pins to observe signals during system operation.&lt;br /&gt;
&lt;br /&gt;
With the eight 2-pin headers D0 to D7 open, the mounted CPU will be isolated from the data bus and those signals held low via RN1, interpreted as NOOP instruction. Therefore the CPU will increment the program counter, and repeat - resulting in the processor attempting memory read on all of the 64KB address space continuously. The address bus signals can therefore be monitored for expected operation (square wave, with A1 having a period half that of A0, and A2 half that of A1 etc). Other signals (clock, refresh, read, mreq) can also be observed for proper operation.&lt;br /&gt;
&lt;br /&gt;
With the eight 2-pin headers D0 to D7 closed, the CPU will be engaged with the data bus, and therefore normal operation should resume (once problems have been rectified!).&lt;br /&gt;
&lt;br /&gt;
== Construction ==&lt;br /&gt;
&lt;br /&gt;
First mount the two 20-pin headers that will be inserted into the system board CPU socket, soldering on the top side of the board (with signal names listed). In order to properly align the pins, it may be helpful to insert the headers into the un-mounted DIP socket to hold them straight. Next mount the CPU socket and remaining components, soldering on the underside.&lt;br /&gt;
&lt;br /&gt;
== Testing Procedure ==&lt;br /&gt;
&lt;br /&gt;
#Remove the Z80 CPU from the motherboard to be tested, and set it aside.&lt;br /&gt;
#Install the [[Lo-tech Z80 CPU Test Adapter]] (with a known good Z80) in the motherboard to be tested. Ensure the notch faces in the same direction as the original Z80 CPU.&lt;br /&gt;
#Apply power to the motherboard.&lt;br /&gt;
#Inspect the address lines for the wave forms listed in the table below.&lt;br /&gt;
&lt;br /&gt;
If pulses are not deteced on the address lines, check the following signals:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Pin !! Signal&lt;br /&gt;
|-&lt;br /&gt;
|11 || +5VDC referenced to Pin 29 (GND)&lt;br /&gt;
|-&lt;br /&gt;
|6 || Phase 0 clock&lt;br /&gt;
|-&lt;br /&gt;
|18 || HALT (should be high)&lt;br /&gt;
|-&lt;br /&gt;
|24 || WAIT (should be high)&lt;br /&gt;
|-&lt;br /&gt;
|26 || RESET (should be high)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If any of these inputs are held in an incorrect state, the microprocessor will not work. Before continuing, correct any problems with these lines.&lt;br /&gt;
&lt;br /&gt;
== CPU Pinout &amp;amp; Expected Wave Forms ==&lt;br /&gt;
&lt;br /&gt;
[[File:Z80-CPU-Pinout.jpg|right|300px]]&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pin !! Name !! Wave Form&lt;br /&gt;
|-&lt;br /&gt;
| 1 || A11 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 2 || A12 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 3 || A13 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 4 || A14 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 5 || A15 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 6 || *CLK || &lt;br /&gt;
|-&lt;br /&gt;
| 7 || D4 || Tied Low&lt;br /&gt;
|-&lt;br /&gt;
| 8 || D3 || Tied Low&lt;br /&gt;
|-&lt;br /&gt;
| 9 || D5 || Tied Low&lt;br /&gt;
|-&lt;br /&gt;
| 10 || D6 || Tied Low&lt;br /&gt;
|-&lt;br /&gt;
| 11 || +5VDC || &lt;br /&gt;
|-&lt;br /&gt;
| 12 || D2 || Tied Low&lt;br /&gt;
|-&lt;br /&gt;
| 13 || D7 || Tied Low&lt;br /&gt;
|-&lt;br /&gt;
| 14 || D0 || Tied Low&lt;br /&gt;
|-&lt;br /&gt;
| 15 || D1 || Tied Low&lt;br /&gt;
|-&lt;br /&gt;
| 16 || *INT || &lt;br /&gt;
|-&lt;br /&gt;
| 17 || *NMI || &lt;br /&gt;
|-&lt;br /&gt;
| 18 || *HALT || &lt;br /&gt;
|-&lt;br /&gt;
| 19 || *MREQ || &lt;br /&gt;
|-&lt;br /&gt;
| 20 || *IORQ || &lt;br /&gt;
|-&lt;br /&gt;
| 21 || *RD || &lt;br /&gt;
|-&lt;br /&gt;
| 22 || *WR || &lt;br /&gt;
|-&lt;br /&gt;
| 23 || *BUSACK || &lt;br /&gt;
|-&lt;br /&gt;
| 24 || *WAIT || &lt;br /&gt;
|-&lt;br /&gt;
| 25 || *BUSRQ || &lt;br /&gt;
|-&lt;br /&gt;
| 26 || *RESET || &lt;br /&gt;
|-&lt;br /&gt;
| 27 || *M1 || &lt;br /&gt;
|-&lt;br /&gt;
| 28 || *RFSH || &lt;br /&gt;
|-&lt;br /&gt;
| 29 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| 30 || A0 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 31 || A1 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 32 || A2 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 33 || A3 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 34 || A4 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 35 || A5 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 36 || A6 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 37 || A7 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 38 || A8 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 39 || A9 || xx second period square wave&lt;br /&gt;
|-&lt;br /&gt;
| 40 || A10 || xx second period square wave&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/testboards/Z80_Address_Tester.pdf Original Documentation (by Larry Kraemer)]&lt;br /&gt;
*[[Test Boards]]&lt;br /&gt;
*[http://www.lo-tech.co.uk/shop/ Lo-tech Shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_TRS-80_IDE_Adapter_rev.2&amp;diff=1527</id>
		<title>Lo-tech TRS-80 IDE Adapter rev.2</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_TRS-80_IDE_Adapter_rev.2&amp;diff=1527"/>
		<updated>2022-07-12T19:40:57Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-trs-80-ide-adapter-pcb-rev2.jpg|right|300px|lo-tech TRS-80 IDE Adapter rev.2]]&lt;br /&gt;
The [[Lo-tech TRS-80 IDE Adapter rev.2]] is an external IDE storage adapter for Tandy TRS-80 model 3/4/4P PCs, enabling connection of standard IDE drives (and CompactFlash cards, with an adapter).  Based entirely on 7400 series logic and through-hole components, the design offers a low-cost, self-assembly storage option for these machines.  The design is a minor update to the [[Lo-tech TRS-80 IDE Adapter]].&lt;br /&gt;
&lt;br /&gt;
This adapter can provide bootable storage for TRS-80 Model 4P, via patched ROM - see [[#Booting|below]].&lt;br /&gt;
&lt;br /&gt;
The design has experimental (i.e. untested) compatibility with the TRS-80 Model 1 and, via the Hans-01 PCB, can be used with the Model II with the replacement of one IC (see [[Using the Lo-tech TRS-80 IDE Adapter with the Model II]]).&lt;br /&gt;
&lt;br /&gt;
This board can be purchased online via [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
The adapter is connected to a TRS-80 host through the host expansion socket with a 50-wire ribbon cable, and provides access to the IDE device registers either:&lt;br /&gt;
&lt;br /&gt;
*via IO ports 40-47h, for use with a suitable device driver; or&lt;br /&gt;
*via IO ports C8-CFh, for use with the LS-DOS (and system ROM) built-in drivers.&lt;br /&gt;
&lt;br /&gt;
When used as C8h, compatibility is highly dependent on the media and may require BIOS/OS patching due to differences between ATA and the WD1010 specification (used by the TRS-80) on which it is based.&lt;br /&gt;
&lt;br /&gt;
The interface is fully buffered and protected against flipped cable connection.&lt;br /&gt;
&lt;br /&gt;
Similar to the [[IBM Personal Computer XT System Board Slot 8]], TRS-80 expansion cards must assert a signal to transfer data back to the host.  The TRS-80 requires 33mA drive on this line (&amp;lt;tt&amp;gt;/EXTIOSEL&amp;lt;/tt&amp;gt;) because of a 150-ohm pull-up resistor within the host.  The [[Lo-tech TRS-80 IDE Adapter]] achieves this with 74ACT logic at U4 (U1-U3 can be LS or HCT types).&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech TRS-80 IDE Adapter rev.2]] includes pull-ups on all control lines to ensure there is at least a known state on all lines at all times (and also on the unused IDE data lines).&lt;br /&gt;
&lt;br /&gt;
The expansion bus on Tandy Model II devices has inverted logic on both data and address buses, but the device is otherwise compatible via the Hans-01 PCB. Compatibility is provided by:&lt;br /&gt;
&lt;br /&gt;
*The Hans-01 PCB inverts the address bus via a 74LS240&lt;br /&gt;
*On the TRS-80-IDE PCB, 74HCT640 is used at U2 (in place of the 74HCT245N)&lt;br /&gt;
*Custom drivers for format routine (DOMDR6/DCT and DOMFORM6/CMD)&lt;br /&gt;
&lt;br /&gt;
== Power Supply ==&lt;br /&gt;
&lt;br /&gt;
Since the TRS-80 expansion port doesn&#039;t provide power, 5V DC must be supplied to the adapter.  Three power supply options are provided: &lt;br /&gt;
&lt;br /&gt;
*screw terminals&lt;br /&gt;
*mini-USB&lt;br /&gt;
*via the IDE header pin 20.&lt;br /&gt;
&lt;br /&gt;
Note that the USB socket is only for power and should be connected to a mini-USB charger.&lt;br /&gt;
&lt;br /&gt;
IDE pin 20 (the key pin) is simply connected to the Vcc (5V) line, so can be used to power the board or to supply power to an attached device (many DoM and CompactFlash adapters support pin-20 power).&lt;br /&gt;
&lt;br /&gt;
== Connection Cable ==&lt;br /&gt;
&lt;br /&gt;
The TRS-80 host end has a 50-pin card-edge connector which isn&#039;t keyed.  A custom cable is needed, which can be constructed by attaching a 50-pin card-edge connector (search sites like Amazon or eBay for &amp;quot;50 Pin IDC Card Edge Connector&amp;quot;) to a 50-wire SCSI ribbon cable.&lt;br /&gt;
&lt;br /&gt;
Because of this, there&#039;s a chance that connection could be made incorrectly (with the host end flipped). In that scenario, the card is protected by referencing the state of the expansion header pin 45 (defined as no-connection) by attaching a pull-up resistor:&lt;br /&gt;
&lt;br /&gt;
*When correctly connected, the pull-up generates a high logic so enabling the 74ACT241 driving /EXTIOSEL&lt;br /&gt;
*When incorrectly connected, the pin will be shorted to ground at the host end, hence disabling the 74ACT241 and so protecting the board from attempting to drive a high-level into a direct short to ground. The fault LED will also then be lit (if attached).&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;150px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:lo-tech-trs-80-ide-adapter-rev2-schematic.png&lt;br /&gt;
File:Lo-tech-trs-80-ide-adapter-pcb-rev2.jpg&lt;br /&gt;
File:Lo-tech-trs-80-ide-adapter-rev2-assembled.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of this design is provided subject to the &#039;&#039;&#039;lo-tech.co.uk [[Terms and Conditions]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Bill of Materials ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Part !! Value !! Device !! Package !! Qty !! Farnell !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| C1..C4 || 0.1uF (100nF) || Ceramic Capacitor || C025-024X044 || 4 || 2112751 || -&lt;br /&gt;
|-&lt;br /&gt;
| C5 || 10 - 47uF || Electrolytic Capacitor || E2-5 || 1 || 8767114 || -&lt;br /&gt;
|-&lt;br /&gt;
| C6 (see notes) || - || Ceramic Capacitor || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| HD1 || 2x25 Pin Boxed Header || AMPHENOL - T821150A1S100CEU || - || 1 || 2215315 || -&lt;br /&gt;
|-&lt;br /&gt;
| HD2 || 2x20 Pin Boxed Header || AMPHENOL - T821140A1S100CEU || - || 1 || 2215314 || -&lt;br /&gt;
|- &lt;br /&gt;
| JP1 || 1x2 Pin Header || AMP 826629-2 || - || 1 || 3418285 || -&lt;br /&gt;
|-&lt;br /&gt;
| LED1..LED3 || 1x2 Pin Header or 3mm LED || AMP 826629-2 or 3mm, 20mA LED || - || 3 || 3418285 or 2322126 || -&lt;br /&gt;
|-&lt;br /&gt;
| PWR1 || 1x2 Screw Terminal || MULTICOMP MC000044 || - || 1 || 2008015 || -&lt;br /&gt;
|-&lt;br /&gt;
| R1..R3 (see notes) || 150 - 300 Ohms || 250mW Carbon Film Resistor || - || 3 || 2329482 || -&lt;br /&gt;
|-&lt;br /&gt;
| R5 || 5 - 10k || 125mW Carbon Film Resistor || - || 1 || 9342419 || -&lt;br /&gt;
|-&lt;br /&gt;
| R6 || 10k || 125mW Carbon Film Resistor || - || 1 || 9342419 || -&lt;br /&gt;
|-&lt;br /&gt;
| RN1..RN3 || 10k Bussed Resistor Network || Bournes 4609X-101-103LF || SIL9 || 3 || 9356819 || -&lt;br /&gt;
|-&lt;br /&gt;
| U1 || 74HCT688N || 74HCT688N || DIL20 || 1 || 382504 || -&lt;br /&gt;
|-&lt;br /&gt;
| U2* || 74HCT640N (Model II compatibility)&amp;lt;br&amp;gt;74HCT245N (all others) || 74HCT640N (Model II compatibility)&amp;lt;br&amp;gt;74HCT245N (all others) || DIL20 || 1 || 382474 (Model II compatibility)&amp;lt;br&amp;gt;9591931 (all others) || -&lt;br /&gt;
|-&lt;br /&gt;
| U3 || 74HCT32N || 74HCT32N || DIL14 || 1 || 9591982 || -&lt;br /&gt;
|-&lt;br /&gt;
| U4 (see notes) || 74ACT241N || 74ACT241N || DIL20 || 1 || 1749616 || -&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP20) || - || - || DIL20 || 3 || 1101349 || 571-1-390261-6&lt;br /&gt;
|-&lt;br /&gt;
|IC Socket (DIP14) || - || - || DIL14 || 1 || 1101346 || 571-1-390261-3&lt;br /&gt;
|-&lt;br /&gt;
| USB || Mini-USB Header || Molex 548190519 || THD || 1 || 9786465 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*U4 must be logic type ACT&lt;br /&gt;
*C6 can be used to increase the capacitive load on the EXTIOSEL line to increase ACT logic rise and fall time.  It is not normally required and should be left unpopulated.&lt;br /&gt;
*LEDs can be either mounted directly on the board, or 2-pin headers fitted to enable connection to leaded LEDs, for example in a case&lt;br /&gt;
*R1-R3 determine LED drive; specified values provide 20mA with forward voltage drop of 1.8V across LED&lt;br /&gt;
*There is no R4&lt;br /&gt;
*All resistors have 5mm hole spacing (for 3.5mm resistors like CFR16 series). 6.8mm resistors can be mounted upright.&lt;br /&gt;
*Some flux helpful when soldering the USB header&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Use 74HCT245N at U2 for all hosts except Model II.&lt;br /&gt;
&lt;br /&gt;
== Booting ==&lt;br /&gt;
&lt;br /&gt;
A patched ROM for the TRS-80 Model 4P has been developed to enable the 4P to boot LSDOS 6.3.1 directly from the Lo-Tech TRS-80-IDE-Adapter.&lt;br /&gt;
&lt;br /&gt;
See [http://bit.ly/1zKF8AV Vintage Computer Forum Development Thread] for more details and video demonstration.&lt;br /&gt;
&lt;br /&gt;
This ROM and associated documentation has been developed and tested by TRS-80 enthusiasts Audronic, Gazza, and Hans, and reproduced here with their kind permission (this is not a Lo-tech product and the ROM is currently considered work-in-progress).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Implementing the patched ROM will require dismantling of the computer, burning a new EPROM and possibly some minor modifications to the system motherboard - &#039;&#039;&#039;this is entirely at your own risk&#039;&#039;&#039;. Standard [[lo-tech.co.uk:General_disclaimer|Lo-tech Site Disclaimers]] also apply.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/TRS-80-IDE/TRS-80-4P-Boot-Pack.rar Download the patched ROM binary and community documentation here]&lt;br /&gt;
*[{{SERVER}}/downloads/TRS-80-IDE/Model4pBootRomPinoutForFreHD.zip Download ROM Pinout documentation here]&lt;br /&gt;
&lt;br /&gt;
== LDOS, LS-DOS &amp;amp; CP/M Drivers ==&lt;br /&gt;
&lt;br /&gt;
Drivers and source have been made available with the kind permission of Firebox:&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/TRS-80-IDE/TRS-80-IDE-Adapter-drivers-r03.zip Drivers (including source)]&lt;br /&gt;
&lt;br /&gt;
== Model II Drivers ==&lt;br /&gt;
&lt;br /&gt;
Drivers have been made available with the kind permission of Hans:&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/TRS-80-IDE/Model-II-TRS80-IDE-Drivers-r01.zip Model II Drivers]&lt;br /&gt;
&lt;br /&gt;
== Reference Materials ==&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/manuals/tandy/Tandy_Model_4_and_4P_Technical_Reference_Manual_1984.pdf Tandy Model 4 Technical Reference Manual]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Trs-80-ide]]&lt;br /&gt;
*[[Lo-tech XT-CF Boards]]&lt;br /&gt;
*[{{SERVER}}/shop The lo-tech PCB shop]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Trs-80-ide&amp;diff=1526</id>
		<title>Trs-80-ide</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Trs-80-ide&amp;diff=1526"/>
		<updated>2022-07-12T19:40:49Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-trs-80-ide-adapter-pcb-rev2.jpg|right|300px|lo-tech TRS-80 IDE Adapter (rev.2)]]&lt;br /&gt;
The Lo-tech TRS-80 IDE Adapter is an external IDE storage adapter for Tandy TRS-80 model 3/4/4P PCs, enabling connection of standard IDE drives (and CompactFlash cards, with an adapter). Based entirely on 7400 series logic and through-hole components, the design offers a low-cost, self-assembly storage option for these machines.&lt;br /&gt;
&lt;br /&gt;
The design has experimental (i.e. untested) compatibility with the TRS-80 Model 1 and, via the Hans-01 PCB, can be used with the Model II with the replacement of one IC.&lt;br /&gt;
&lt;br /&gt;
These boards can be purchased online via [https://texelec.com/product-tag/lo-tech/ the TexElec Store].&lt;br /&gt;
&lt;br /&gt;
== Variants ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech TRS-80 IDE Adapter]] (first version)&lt;br /&gt;
*[[Lo-tech TRS-80 IDE Adapter rev.2]]&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
&lt;br /&gt;
Drivers and source have been made available with the kind permission of Firebox:&lt;br /&gt;
&lt;br /&gt;
*[{{SERVER}}/downloads/TRS-80-IDE/TRS-80-IDE-Adapter-drivers-r03.zip Drivers (including source)]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
	<entry>
		<id>https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_Tandy_Compatible_Sound_Adapter&amp;diff=1525</id>
		<title>Lo-tech Tandy Compatible Sound Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.lo-tech.co.uk/w/index.php?title=Lo-tech_Tandy_Compatible_Sound_Adapter&amp;diff=1525"/>
		<updated>2022-07-12T19:40:22Z</updated>

		<summary type="html">&lt;p&gt;James: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lo-tech-Tandy-Sound-Adapter-r01-PCB-1024.jpg|right|300px|Lo-tech Tandy Compatible Sound Adapter PCB]]&lt;br /&gt;
&lt;br /&gt;
The [[Lo-tech Tandy Compatible Sound Adapter]] is an 8-bit ISA audio board for 8-bit IBM compatible PCs providing an [https://en.wikipedia.org/wiki/Texas_Instruments_SN76489 SN76489AN] Programmable Sound Generator (PSG). The board is equipped with a simple mixer-amplifier, enabling the PSG output to be mixed with the system-board generated PC speaker sound, the combined output fed back to the internal PC Speaker or output via a 3.5mm socket to external speakers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: this board is discontinued.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Configuration &amp;amp; Resources ==&lt;br /&gt;
&lt;br /&gt;
The board is configured with JP1. Two jumpers are required.&lt;br /&gt;
&lt;br /&gt;
*For 0C0h (original Tandy port mapping), short pins 1-2 and 4-5&lt;br /&gt;
*For 1E0h (later Tandy port mapping), short 1-2 and 3-4&lt;br /&gt;
*For 2C0h (see note), short 2-3 and 4-5&lt;br /&gt;
&lt;br /&gt;
In the [[IBM PC 5150]], ports &amp;lt;01Fh are reserved by IBM. It is not possible to read values from these ranges from adapters installed in the system. The [[Lo-tech Tandy Compatible Sound Adapter]] requires only write access to the SN76489AN and therefore should work, however the implementation of these ranges on clones may vary. Therefore, a &#039;safe&#039; option 2C0h is also provided.&lt;br /&gt;
&lt;br /&gt;
Note that it is not possible to programatically detect the presence of the SN76489AN, except perhaps by utilising the execution delay introduced by writing to the SN76489AN due to it&#039;s call on the ISA IORDY line. Software will likely need modification to utilise the SN76489AN as a &#039;Tandy&#039; sound chip.&lt;br /&gt;
&lt;br /&gt;
== PC Speaker Mixer ==&lt;br /&gt;
&lt;br /&gt;
The IBM PC System Speaker output can be connected to the board at JP2. The header connector has the same pinout as the header on the system board, i.e. 4-pin with key. Any audio output to the PC speaker will then be mixed with output from the SN76489AN, the relative levels of the two signals controlled with VR1 (PC Speaker) and VR2 (SN76489AN). The mixed output is provided at JP3, for connection back to the system speaker, and on the 3.5mm jack for connection of external speakers (the internal speaker is silenced when external speakers are connected).&lt;br /&gt;
&lt;br /&gt;
== Bill of Materials ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Part !! Description !! Part No. !! Qty !! Mouser&lt;br /&gt;
|-&lt;br /&gt;
| C1-C4, C7,C8 || 0.1uF Ceramic || K104K15X7RF53L2 || 6 || 594-K104K15X7RF53L2&lt;br /&gt;
|-&lt;br /&gt;
| C5,C6 || 47uF Electrolytic || UVR1C470MDD || 2 || 647-UVR1C470MDD&lt;br /&gt;
|-&lt;br /&gt;
| C9,C10 || 470nF Ceramic || SR205E474MAR || 2 || 581-SR205E474MAR&lt;br /&gt;
|-&lt;br /&gt;
| C11 || 47nF Ceramic || K473K15X7RF53L2 || 1 || 594-K473K15X7RF53L2&lt;br /&gt;
|-&lt;br /&gt;
| C12,C13 || 330uF Electrolytic || ECA-1CM331 || 2 || 667-ECA-1CM331&lt;br /&gt;
|-&lt;br /&gt;
| IC1 || 74LS688N || CD74HCT688E || 1 || 595-CD74HCT688E&lt;br /&gt;
|-&lt;br /&gt;
| IC2 || 74LS74N || SN74LS74AN || 1 || 595-SN74LS74AN&lt;br /&gt;
|-&lt;br /&gt;
| IC3 || SN76489AN || SN76489AN || 1 || &lt;br /&gt;
|-&lt;br /&gt;
| IC4 || LM386N-3 || LM386N-3/NOPB || 1 || 926-LM386N-3/NOPB&lt;br /&gt;
|-&lt;br /&gt;
| JP1 || 1x05 Pinhead || 61300511121 || 1 || 710-61300511121&lt;br /&gt;
|-&lt;br /&gt;
| JP2,JP3 || 1x04 Pinhead || 61300411121 || 2 || 710-61300411121&lt;br /&gt;
|-&lt;br /&gt;
| R1 || 10R 1/4W Resistor || CFR-25JR-52-10R || 1 || 603-CFR-25JR-5210R&lt;br /&gt;
|-&lt;br /&gt;
| R2,R3 || 10K 1/8W Resistor || 270-10K-RC || 2 || 270-10K-RC&lt;br /&gt;
|-&lt;br /&gt;
| VR1,VR2 || 10K Preset Potentiometer || 36WR10KLF || 2 || 858-36WR10KLF&lt;br /&gt;
|-&lt;br /&gt;
| X1 || 3.5mm Jack || STX-3100-5N || 1 || 806-STX-3100-5N&lt;br /&gt;
|-&lt;br /&gt;
|  || 2.54mm Jumper ||  || 2 || 806-SX1100-A&lt;br /&gt;
|-&lt;br /&gt;
|  || ISA Slot Bracket || Keystone 9202 || 1 || 534-9202&lt;br /&gt;
|-&lt;br /&gt;
|  || Screws || Keystone 9900 || 2 || 534-9900&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
||Address Decoder:&lt;br /&gt;
*Jumper wire required between pins 7 and 14 of IC1 (layout isolation error)&lt;br /&gt;
*IC1 pin 2 should be belt out (so it doesn&#039;t make contact with the socket) and jumpered to IC3 pin 5 (/IOW signal). This modification masks the Chip Select signal generated by the &#039;688 with the ISA IOW signal because the SN76489 de-asserts READY immediately on response to Chip Select, which differs from the ISA use of this signal in response to the command (IOR, IOW, MEMR or MEMW).&lt;br /&gt;
||[[File:Tandy-Sound-Adapter-r01-PCB-jumper-marker.jpg|left|150px]]&lt;br /&gt;
|-&lt;br /&gt;
||Amplifier Section:&lt;br /&gt;
*10k pull-up resistor is required on PC speaker input&amp;lt;br&amp;gt;&lt;br /&gt;
*2k2 resistors are required in parallel to the preset potentiometers to approximate audio taper pots (otherwise level adjustment is very limited)&lt;br /&gt;
||[[File:Tandy-Sound-Adapter-r01-amp-mods.png|left|300px]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Lo-tech Audio Boards]]&lt;/div&gt;</summary>
		<author><name>James</name></author>
	</entry>
</feed>