Manuaaliset reikäkortit
Reikäkorttihistorian voi sanoa alkaneen Joseph Marie Jacquardin (1752-1834) keksinnöstä. Hän kehitti 1800-luvun alussa ensimmäisenä teollisena pidetyn reikäkorttikoneen, kutomakoneen. Keksinnön ideana Jacquardin kutomakoneessa oli käyttää rei’itettyjä kortteja kuvioiden tekemiseen kankaalle tekniikan avulla, tähän saakka kaikki oli tehty käsin. Rei’itetyt kortit ohjasivat loimilankojen asentoja ja näin pystyttiin eri korttiyhdistelmien avulla luomaan erilaisia kuvioita kankaille automatisoidusti. Jacquardin avoin reikä/suljettu reikä mekanismi, jolla kuvioita luotiin, oli ensimmäinen ohjelmoitu binäärijärjestelmä, jonka tekniikka on nähtävissä tietokoneissa vuosisata hänen keksintönsä jälkeen. Hänen keksintönsä käyttää rei’itettyjä kortteja on ollut tietokoneen lisäksi innoittajana myös monille muille keksinnöille.
Macintosh Toolbox
Macintosh-projekti kehitti User Interface Toolboxin ("käyttäjärajapinnan työkalut") tarjoamaan graafisen käyttöliittymän tarvitsemia aliohjelmia ja yleisiä muuttujia. Työkaluohjelmaa kehittivät 80-luvun alussa muun muassa Andy Hertzfeld ja Bruce Horn. Macintosh 128K:n suunnittelun vuosina pelkästään tiedon lukemista varten tarkoitettu ROM-muisti oli edullisempaa ja nopeampaa kuin tiedon lukemisen ja kirjoittamisen mahdollistava RAM-muisti. Osa Macintosh System Software -käyttöjärjestelmästä päätettiin kirjoittaa suoraan ROM-muistille, jolloin järjestelmät yleiset rutiinit olivat käytössä ilman niiden lataamista käyttöjärjestelmätiedostosta keskusmuistiin. Toolbox-ohjelma tallennettiin myös ROM-muistiin ja Macintosh 128K:ssa se ei sisältänyt varsinaisen käyttöjärjestelmän rajapintoja, vaan tarjosi ainoastaan rajapinnan graafisen käyttöliittymän ohjelmointiin. Varhaisissa Macintosh-käyttöjärjestelmissä käyttöjärjestelmän arkkitehtuuri ei erottanut käyttöjärjestelmän osia toisistaan tämän selkeämmin. Motorola 68000-suorittemen käyttämää poikkeustenkäsittelymekanismia käytettiin lähettämään Toolboxin järjestelmäkutsuja ROM-muistiin. Mekanismin avulla ROM-muistiin kirjoitettua koodia voitiin ajonaikaisesti päivittää reitittämällä järjestelmäkutsut ROM-muistin sijaan tiettyyn RAM-muistin kohtaan.