N8VEM

N8VEM was a homebrew computing project. It featured a variety of free and open hardware and software. N8VEM builders made their own homebrew computer systems for themselves and shared their experiences with other homebrew computer hobbyists. N8VEM homebrew computer components are made in the style of vintage computers of the mid to late 1970s and early 1980s using a mix of classic and modern technologies. They are designed with ease of amateur assembly in mind.

In November 2015 the N8VEM project was ended by its creator Andrew Lynch and the community reconvened under the new name of Retrobrew Computers.

Creation and operation
There are several N8VEM designs starting with a single-board computer carrying a Z80 microprocessor designed to run CP/M and similar operating systems. It was created in 2008 by Andrew Lynch. Contrasted with the P112, which has some surface-mount components, the N8VEM SBC uses only through-hole components, consistent with the design philosophy that building should be within the skills and resources of non-professional hobbyists. The project has also developed boards for other processors including Z180, Intel 80188, MOS 6502, Motorola 6809, 68000 and 68030.

The N8VEM boards are designed with the free KiCad Electronic design automation (EDA) toolset. Printed circuit board routing provided by FreeRouting.net. Software is developed in Z80/8085 assembly language using the MS-DOS Telemark Cross Assembler program (TASM), as well as the open source Small Device C Compiler. A major design goal is to use freely available tools to the maximum extent possible. The printed circuit board design is supplemented using component libraries available at KiCad Libraries, specifically the Zilog Z80 CPU and Intel 8255 PPI chips.

The design philosophy encourages low cost development and assembly by hobbyist amateurs using common tools such as 25 watt soldering iron, multimeter, logic probe (optional), and common hand tools. An oscilloscope is recommended but not required. Some basic electronic skills are helpful although the printed circuit boards are designed for relative beginners.

There are numerous N8VEM components available including ECB and S-100 backplane boards, allow processor and expansion boards to be connected. Other components include video boards, disk controllers, peripheral expansion, and prototyping boards.

In response to interest from members, the N8VEM homebrew computing project has collaborated in developing a range of boards for the S-100 bus. These can be used to build new systems from scratch on that historic industry standard platform, or to restore and enhance vintage S-100 systems preserved from the 1970s and 1980s. Most of the S-100 board initial design work has been contributed by John Monahan of s100computers.com, with board layout, prototyping and testing contributed by Andrew Lynch and other N8VEM supporters. Some of these S-100 boards provide enhanced capabilities beyond what was available on original S-100 machines, some are replacements for historic S-100 boards, and other board projects aim to apply the convenient bus architecture to processor families beyond the 8080/Z80 CPUs for which the bus standard was originally designed: notably 6502, 68000, and later Intel processor types.

N8VEM is notable for being the largest and most active homebrew computing community in existence today. The project is entirely non-commercial and is made up of over 350 hobbyists, many of whom are actively involved in designing and prototyping the hardware and software. The community is a modern-day version of the historic Homebrew Computer Club frequented by Steve Wozniak and other pioneers of home computer development. Printed circuit boards of the mature designs are manufactured in small batches on a collective order basis, and distributed to members for the cost of the board manufacturing and shipping. The project does not provide complete kits—builders must procure their own parts to populate a board. Support is purely on a volunteer basis through a Google Group and Wiki. Software is open source and freely available for download from the Wiki. The project was careful to keep things within the reach of the amateur computer hobbyist by using low cost and readily available components that can be assembled with simple hand tools.

In addition, notable freeware system emulator SIMH simulates the N8VEM SBC (along with many other architectures), providing a virtualised development environment that has the speed and flexibility of modern hardware.

Completed N8VEM hardware and software has frequently been displayed at Vintage Computer Festivals.

Single board computers
ECB Bus:
 * 1) SBC V2 (Z80, UART, PPI, RAM with battery backup, ROM, RTC)
 * 2) SBC-188 (80C188 10-25 MHz, UART, PPI, RAM with battery backup, ROM, RTC, FDC)
 * 3) N8 Home Computer (Z8S180 33 MHz, UART, ROM, RTC, Dual Interrupt controllers, Floppy, SD Card, 1MB RAM, AY-3-8910 sound, TMS9918A video, ECB bus)
 * 4) SBC Mark IV (Z180 processor, 512K SRAM, 512K Flash or 1MB EPROM, RTC, SD Card, 8-bit IDE, RS-232, RS-422, ECB bus)
 * 5) KISS 68030 (68030 processor up to 32MHz, up to 256M DRAM, 32K SRAM, 512K Flash, ECB bus)
 * 6) ZetaSBC (via the ECB Shim board)

S-100 bus:
 * 1) Z80 S-100
 * 2) m68k S-100 (In progress)
 * 3) 8086 S-100 (In progress)
 * 4) 6502/6809 ECB + carrier boards for other cpu's (?)

Other:
 * 1) SBC6120-RBC: A new edition of the Spare Time Gizmos SBC6120 Model 2 updated to use easily available RAM and EEPROM components, only two PCB layers, and KiCAD.

ECB expansion peripherals

 * ECB Backplane (compact stand alone with 8 DIN 41612 slots)
 * ECB Bus Monitor (single step, address trap, bus status)
 * Disk IO (FDC & IDE (Parallel ATA) drive expansion)
 * Zilog Peripherals (CTC, DART, dual PIOs)
 * Video Display Unit (80×25 character mode video)
 * Prototyping board with IO decode (buffered with labeled signal connectors)
 * ECB Extended backplane (12 slot with 3U mounting features)
 * DSKY (monitor/boot loader Hex LED display and keypad)
 * Sprites, Color Graphics, & Sound (TMS9918, AY-3-8910, joystick/paddle interface)
 * Prop IO (VGA, PS/2 keyboard, PS/2 mouse, micro SD (Secure Digital), prototyping area)
 * Cassette Interface (KCS audio cassettes)
 * 4MEM (4MB SRAM expansion for SBC-188)
 * PPIDE (SBC parallel expansion port IDE interface)
 * Juha SD (SBC SD card for mass storage)
 * MSX Cartridge reader (load contents of MSX cartridges)
 * MSX Cartridge (8K, 16K, & 32K EPROMs)
 * μPD7220 V2 prototype (16 color video display)
 * RAM-Floppy (4MB SRAM floppy drive replacement)
 * 4PIO (64 GPIO input/output board)
 * ECB to Z80 socket adapter (connect ECB boards directly to Z80 CPU)
 * 6x0x host processor (Motorola 6800), MOS Technology 6502 CPU with ECB interface)
 * 6x0x IO mezzanine (ACIA, dual PIA, PTC, power, and expansion bus interface)
 * 6x0x ECB backplane (use ECB peripherals with stand alone 6x0x system)

There is an active community development forum (N8VEM Google Discussion Group) from which additional board designs have been developed. There is active development of new boards underway.

System software
RomWBW is a popular system software distribution written to execute on N8VEM hardware.

The N8VEM family of hardware are primarily Z80 based microprocessor single board computers, as well as miscellaneous boards which may be combined and placed in an ECB-like bus, enabling the builder to create a custom computer system. These computers are primarily built from discrete components as were computers in the late 1970s and 1980s. The majority of the systems are Z80 based and use the CP/M-80 operating system that was developed in the late 1970s by Digital Research, Inc.

The RomWBW system software is highly configurable and supports all of the Z80 based systems constructed with N8VEM components. The system software is entirely open source and is provided in both machine readable source form and as pre-built images for those wishing to program firmware chips for insertion in the boards.

In addition to the fully implemented operating system with its BIOS (customized for the N8VEM hardware), there are several dozen utility programs that configure and verify the proper operation of system components such as persistent storage in the form of IDE Hard Drives, Compact Flash, and Secure Digital chips.

The CP/M-80 BIOS is written in assembly language and is built using the TASM assembler. Utility programs are written in a variety of languages including assembler, Digital Research RMAC, Aztec C, and Digital Research PLI. These natively hosted programming languages, and tools such as WordStar (a popular editor of the time), execute under the CP/M operating system and read source files stored on memory disk or persistent media such as IDE devices or Compact Flash and Secure Digital devices through the use of an external adapter.

The version 1.x distributions of the system software have been written in a very standard CP/M-80 way and over the course of a half dozen releases has reached a highly stable state supporting the most commonly built configurations in use. The version 2.x operating software was recently released and uses bank switched memory technology to achieve enhanced functionality. Due to the new technology, there are no practical limits on the number of drivers that can be built in. In the future, this will allow for dynamic configuration and will be much more flexible for the users, in many ways similar to the CP/M-80 Plus family of operating systems which also took advantage of memory paging.

In the same way the hardware is open source, the software is provided in source form as well allowing users to both learn how software was written in the early days of microprocessors, but also to write new software using provided tools and documentation available both in the distribution, on the subversion server, and downloadable from a variety of public archives worldwide.

The current owners of the Digital Research, Inc operating systems and language software have licensed it for non-commercial use and the most comprehensive archives can be found at http://www.cpm.z80.de as well as other popular locations and mirrors.

An alternative system BIOS, UNA BIOS, also exists. It has the advantage that a single ROM image can run on all Z80 and Z180 systems. An alternative CP/M implementation, UNA CP/M, takes advantage of UNA BIOS disk and device drivers.