References

Table of Content











Content

This book contains links to other projects and other resources that I used during my research.

Computer Architecture

AS/400 System Concepts and Architecture

Highlight of AS/400 features (for a bussiness audience):

  • http://koeln.ccc.de/ablage/as400/as400concepts.xml

  • Overview of iSeries (OS/400) architecture:
  • http://www-03.ibm.com/servers/enable/site/porting/iseries/overview/overview.html

  • RISC Architecture

    RISC vs. CISC

  • http://cse.stanford.edu/class/sophomore-college/projects-00/risc/risccisc/


  • MIPS Architecture

    Wikipedia entry:

  • http://en.wikipedia.org/wiki/MIPS_architecture
  • Computer Science

    Algorithms

    Merge Sort (sorting data files on tape):

  • http://home.swbell.net/mck9/cobol/tech/llmerge.html
  • Languages

    Turbo Pascal 3.0 Compiler / Code Generation Internals

  • http://www.pcengines.ch/tp3.htm

  • Operating Systems

    Dennis Ritchie Home Page

    Dennis Ritchie is the co-author (with Ken Thompson) of the UNIX operating system and the C programming language.

  • http://cm.bell-labs.com/who/dmr/
  • UNIX Archive

    --QUOTE from the site--
    Welcome to the Unix Archive, run by the Unix Heritage Society. Here you
    will find a large collection of Unix releases, applications, documentation,
    bug fixes, bootable disk images, and tools to deal with all these things.

    Most of the material in the Archive is tainted with source code that was
    originally owned by AT&T, Novell, SCO and is now owned by Caldera. Please
    read the Caldera-license.pdf, and also the individual copyright notices
    for each piece of software in this archive.
    --End QUOTE--

  • http://ftp.math.utah.edu/pub///mirrors/minnie.tuhs.org/
  • The Linux Kernel (Online Book)

  • http://www.tldp.org/LDP/tlk/tlk.html

  • This is possibly the first place to go if you want to start getting deep into Linux kernell.

    FreeBSD Handbook

  • http://freebsd.active-venture.com/handbook/index.html
  • FreeBSD Developers Handbook

  • http://www.freebsd.org/doc/en/books/developers-handbook/index.html
  • netBSD Man Pages

  • http://netbsd.gw.com/cgi-bin/man-cgi
  • OS-Development (OSDev.org)

  • http://wiki.osdev.org
  • The Minix Operating System

  • http://minix1.woodhull.com/
  • Some other articles

    Linux as a Real-Time Operating System

    Development Tools

    XPL0 Programming Language

  • http://www.idcomm.com/personal/lorenblaney/index.html

  • XPL0 is similar to Pascal and C. Although not mainstream, over the years it has proven to be immensely useful. It has been used to write everything from operating systems for 6502- and 68000-based computers, to commercial programs for 8088-based (PC) computers, to embedded firmware for PIC and other microcontrollers. Since its inception on the 6502, it has been steadily upgraded and spread to other processors such as 8080, 6800, PDP-10, IBM-360, a couple homebrew machines, 65802, 680x0, PIC, Ubicom, and, most notably, the 80x86 family used by IBM-compatible PCs.

    GCC Cross Compiler

  • http://wiki.osdev.org/GCC_Cross-Compiler
  • LANCE retargetable C compiler

  • http://www.tm1300.com/lance/lance1.html


  • LCC retargetable compiler for ANSI C

  • http://www.cs.princeton.edu/software/lcc/
  • Circuit Description Using C++ (thesis)

  • http://www.cs.mun.ca/~donald/bsc/thesis.html

  • Thesis by: Doland C. Craig (Memorial University of Newfoundland, Canada, 1991)

    Thesis title:
    Circuit Description and Elementary Hierarchical Circuit Simulation Using C++ and the Object-Oriented Programming Paradigm.

    LabVIEW FPGA On-line Tutorial

  • http://www.ni.com/swf/presentation/us/labview/lvfpga/default.htm
  • FPGA Programming Step by Step

  • http://www.design-reuse.com/articles/7330/fpga-programming-step-by-step.html
  • Legacy Computers

    Computer History Museum (CA)

  • http://www.computerhistory.org/

  • --Quote--
    The Computer History Museum invites you to visit us to see and experience one of the world's largest collections of computing artifacts. Our exhibits (listed below) allow you to explore the computer revolution and its impact on the human experience. Located in the heart of Silicon Valley, 1401 N. Shoreline Boulevard, Mountain View, CA.
    ---

    The Analog Computer Museum (Germany)

  • http://www.analogmuseum.org/
  • IBM 360

    The IBM 360/67 and CP/CMS:

  • http://www.multicians.org/thvv/360-67.html

  • Seymour Cray CDC 6600 Supercomputer

    According to Wikipedia, this computer (designed by Seymour Cray and firt delivery en 1964) is considered the first "Supercomputer" in history as well as the first having a RISC design as we would call it today.

    Wikipedia entry:

  • http://en.wikipedia.org/wiki/CDC_6600
  • PDP-11

    PDP-11 Home Page:

  • http://www.pdp11.org/

  • PDP-11 Architecture (Wikipedia):
  • http://en.wikipedia.org/wiki/PDP-11_architecture

  • UNIBUS Pinout:
  • http://www.pinouts.org.uk/index.php?page=DEC_UNIBUS_Signals_and_Pinout
  • http://www.allpinouts.org/index.php/Unibus

  • Philips Electronics 16 bit minicomputers (1970s)

  • http://www.theoengel.nl/P800/
  • Alternate routes and dead ends

  • http://ed-thelen.org/comp-hist/Shustek/ShustekTour-06.html
  • The Dornier DO-80 Analog Computer

  • http://www.vaxman.de/my_machines/dornier/do80/do80.html
  • Homebrew Computers

    Harry Porter Relay Computer

  • http://www.cs.pdx.edu/~harry/Relay/index.html


  • This project triggered my interest for building a computer on my own. After a few days, however, I changed course toward electronics and OS development.

    Nevertheless, the Harry Porter's Relay Computer is (in my view) a tremendous accomplishment and something really interesting to see.


    Jon Stanley Relay Computer

  • http://www.electronixandmore.com/project/relaycomputertwo/index.html

  • This project is inspired in the Harry Porter's Relay Computer. The author adopts the idea and most of the solutions but he also introduces innovative changes and gives detailed information about his work.


    David Brooks Simplex III (TTL)

    The author, David Brooks, has also founded the "Homebuilt CPUs Web Ring".

  • http://members.iinet.net.au/~daveb/simplex/simplex.html

  • Bill Buzbee Magic-1 (TTL)

  • http://www.homebrewcpu.com/

  • Magic-1 is a homebrew minicomputer built by Bill Buzbee and made out of 74 Series TTL chips. It serves web pages to the internet and people can telnet to leave brief messages. Magic-1 runs the Minix 2 operating system which have been ported and optimized by Bill.


    Bill devoted 4 years to the this project. Here is what he wrote about his tremendous effor on Software development:

    -----
    QUOTE

    Although the hardware design and construction of Magic-1 usually gets the most attention, the largest part of the project (by far) has been developing/porting the software.   To this end, I've had to write an assembler and linker from scratch, retarget a C compiler, write and port the standard C libraries, write a simplified operating system and then port a more sophisticated one.   It's been a challenge, but a fun one.  I suppose I'm somewhat twisted, but I happen to enjoy debugging difficult problems.  And, when the bug you're trying to track down could involve one or more of: hardware design flaw, loose or broken wire, loose or bad TTL chip, assembler bug, linker bug, compiler bug, C runtime library bug, or finally a bug in the program in question there's lot of opportunity for fun.    Oh, and I also don't have the luxury of blaming the bugs on anyone else.

    I'm continually amazed that the damn thing runs at all, much less runs as well as it does.
    -----


    In this video (link below): a professional talk by Bill Buzbee about a Just-In-Time Compiler for Android systems he developed at Google.

  • http://code.google.com/events/io/2010/sessions/jit-compiler-androids-dalvik-vm.html
  • John Dorans D16/M minicomputer

    The D16/M is a general-purpose, stored-program, single-address, 16-bit digital computer using two's complement arithmetic.  It manages subroutine calls and interrupts using a memory stack. The processor may directly address 64K words of memory or I/O.  Its timing and control unit is microprogrammed (fully horizontal, with a 72-bit control word).

  • http://www.timefracture.org/D16.html



  • Programming wizard Loren wrote a software emulator for the D16/M, and then used it to develop some applications--a keyboard monitor and a tough chess-playing program--even before I [John Doran] managed to get the hardware completed!  Loren has placed all of his work on this site.

  • http://www.idcomm.com/personal/lorenblaney/d16.html


  • The 6502 Group

  • http://www.6502group.org/

  • --QUOTE FROM THE SITE--

    The 6502 Group is one of the oldest computer clubs in the country.  It has been meeting every Tuesday night since 1975.

    "6502" is a bit of a misnomer these days.  Originally a faction interested in the 6502 microprocessor split off from the Denver Amateur Computer Society (DACS).  Since then the interests of the group have evolved to other processors -- notably the 80x86 and PICs -- but any technically oriented subject related to computers is discussed at meetings.  Ironically one of the keys to the group's longevity is its lack of formal organization. There are no dues, no treasury report or minutes, no newsletter -- just folks discussing what interests them, showing off their latest creations, or seeking help on hard-core technical problems.

    --END QUOTE--

    The XPL0 Programming Language

  • http://www.idcomm.com/personal/lorenblaney/index.html

  • ---QUOTE FROM THE SITE--
    XPL0 is similar to Pascal and C. Although not mainstream, over the years it has proven to be immensely useful. It has been used to write everything from operating systems for 6502- and 68000-based computers, to commercial programs for 8088-based (PC) computers, to embedded firmware for PIC and other microcontrollers. Since its inception on the 6502, it has been steadily upgraded and spread to other processors such as 8080, 6800, PDP-10, IBM-360, a couple homebrew machines, 65802, 680x0, PIC, Ubicom, and, most notably, the 80x86 family used by IBM-compatible PCs.
    ---END QUOTE--

    HJS22 contemporary MiniComputer

  • http://www.ibmsystem3.nl/hjs22/overview.html

  • This computer was built between 1975 and 1979, when commercial computers were built like that.

    Donn Stewart 12/16 bits TTL CPU

  • http://cpuville.com/index.htm


  • This experimental TTL machine is both simple and elegant in design. It employes a FSM for producing the internal control signals where the states table is not stored in ROM but hard-wrired within the Control circuit.

    Dawid DIY

  • http://www.pilawa.org/computer/

  • A DEC PDP-8 Clone

  • http://juliepalooza.8m.com/sl/pdp8e.htm

  • Homebrew Microcontroller based on FPGA

  • http://www.excamera.com/articles/20/mp3c.html

  • This homebrew CPU (or Microcontroller) is made on a FPGA (Field Programmable Gate Array). The memory organization is stack-based because the computer runs FORTH, a "stack oriented" language.

    Some features:
      Stack-based 16-bit CPU
      No registers
      1024 words of general purpose RAM
      22 MIPS with a 66MHz basic clock

    John FPGA Projects

  • http://members.optusnet.com.au/jekent/FPGA.htm
  • Papers by Bradford J. Rodriguez

  • http://www.bradrodriguez.com/papers/
  • Minimal TTL Processor

    This work (by Bradford J. Rodriguez) is titled "A Minimal TTL Processor for Architecture Exploration". The machine is termed PISC. The paper covers very interesting details on CPU design matters. A list of found limitations is included, very useful for novices like my self.

  • http://www.bradrodriguez.com/papers/piscedu2.htm

  • Homebrew Z80 computer with HDD and OS

    The computer:

  • http://www.cosam.org/projects/z80/


  • The OS (Focus):
  • http://www.cosam.org/projects/focus/index.html

  • How to replicate the Apollo Guidance Computer (AGC)

    Quote from the site:
    -------------------
    Abstract

    This report describes my successful project to build a working reproduction of the 1964 prototype for the Block I Apollo Guidance Computer. The AGC is the flight computer for the Apollo moon landings, with one unit in the command module and one in the LEM.

    Why build an AGC?

    Early computers are interesting. Because they're simple, you can (if you like) actually understand the entire computer, from hardware to software.

    The AGC is the most interesting early computer because: it flew the first men to the moon and has interesting architectural features.

    --- end Quote -----


  • http://klabs.org/history/build_agc/
  • Viktors Amazing 4-bit Processor

  • http://www.vttoth.com/vicproc.htm
  • Galactic Electronics 4-bits CPU

  • http://www.galacticelectronics.com/Simple4BitCPU.HTML

  • ELEC301 Project: Building an Analog Computer

  • http://www.owlnet.rice.edu/~elec301/Projects99/anlgcomp/

  • LC-81 Mini-Computer (based on Z80 microprocessor)

  • http://www.armandoacosta.com/lc81/

  • Electronics

    Suppliers

    Digi-Key

  • http://www.digi-key.com/

  • Jameco
  • http://www.jameco.com/

  • Electronic Gold-mine
  • http://www.goldmine-elec.com/

  • Mouser
  • http://www.mouser.com

  • MPGA
  • http://www.mpja.com

  • All Electronics and Equipment
  • http://www.allelectronics.com

  • Nuts and Volts Magazine
  • http://www.nutsvolts.com

  • ECE Miami
    3100 NW 36 St. Miami, FL. 33142 Tel: 305-638-2000
  • http://www.ecemiami.com

  • TTL/CMOS Datasheets

    DatasheetsArchive.COM

  • http://www.datasheetarchive.com/

  • DatasheetsCatalog.COM:
  • http://www.datasheetcatalog.com/

  • List of 7400 series integrated circuits (Wikipedia):
  • http://en.wikipedia.org/wiki/List_of_7400_series_integrated_circuits
  • Measuring Characteristic Impedance of PCB tracks

    Measuring Characteristic Impedance and Effective Dielectric Constant of PCB tracks using a Vector Network Analyser:

  • http://chemandy.com/technical-articles/measuring-track-characteristic-impedance/measuring-track-characteristic-impedance-article1.htm
  • The VME Bus

  • http://www.interfacebus.com/Design_Connector_VME.html
  • UART built with 74xx TTL

    An article about how to build your own UART (Universal Asynchronous Receiver/Transmitter), and how to connect it to the RS232 interface of a PC.

  • http://www.6502.org/users/dieter/uart/uart_0.htm
  • Paper Bibliography

    -- PDP11 Handbook (DEC, 1969)
    -- Intel 80386 Programmer's Reference Manual (Intel, 1986)
    -- Pentium Processor System Architecture (Don Anderson/Tom Shanley, 1995)
    -- PIC16F87X Data Sheet (Microchip Tecnhology, 2001)
    -- Formal Models of Operating System Kernels (Iain D. Craig)
    -- Understanding the Linux Kernel (Daniel P. Povet/Marco Cesati, 2005)

    # The following have been taken from the John Dorans D16/M web site. —Thank you, John.

    -- Steve Leibson, Handbook of Microcomputer Interfacing.  Blue Ridge Summit, PA:  Tab Books (1983).

    This older book has detailed descriptions and theories of operation for many specific interfaces, including the basic RS-232 serial and Centronics parallel ports.  

    -- John B. Peatman, Microcomputer-Based Design.  New York, NY:  McGraw-Hill (1977).

    Dr. Peatman's book contains much discussion of interface design in general.

    -- The Texas Instruments Engineering Staff, Design Considerations for Logic Products.  Owensville, MO:  Custom Printing Company (1997).

    This "Application Book" contains highly technical discussions of issues such as bus line termination, power supply bypassing, and electromagnetic compatibility.  It also has descriptions of the input and output characteristics of each of the integrated logic IC families available when the book was written.

    -- The SanDisk Secure Digital Card Product Manual, Version 1.9, Document No. 80-13-00169.  Sunnyvale, CA:  SanDisk Corporation (2003)

    SanDisk’s manual discusses the SD flash memory card, its interfaces, and its protocols in detail.

    Homebuilt CPUs WebRing

    JavaScript by Qirien Dhaela

    Join the ring?

    David Brooks, the designer of the Simplex-III homebrew computer, has founded the Homebuilt CPUs Web Ring. To join, drop David a line, mentioning your page's URL. He will then add it to the list.
    You will need to copy this code fragment into your page.