Giter Site home page Giter Site logo

simplecpu's Introduction

A website to explain how computers actually work.

Coding styles:

  • js width less then 80 characters.
  • If you have to choose between fast or simple, choose simple.
  • In general, less is more.

simplecpu's People

Contributors

andrewducker avatar craftykate avatar glacials avatar owenversteeg avatar r0nk avatar tshelburne avatar ygra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simplecpu's Issues

Not obvious that the memory scrolls

I just started playing about without reading the text, and was disappointed when I thought it could only address 6 memory locations until I saw someone elses program on HN. It would be good if there was some visual indicator that it can scroll.

Showing more locations by default would also be useful.

Wall of NAND

Right now, the general idea for showing real NAND gate implementations is a page with a bunch of videos, however this topic is still up for discussion, so share your ideas.

Link styles

It's really hard to tell what's clickable. Great site by the way.

Extract content from layout code

Right now the way the content is laid out in different html files including the full layout means for every small change to, for example, the header, all the pages must also be modified one by one. This is obviously not scalable for the future, and makes any small change 10x harder than it could be.

I propose we:

  • Extract the page "chrome" (header, footer, etc) to a layout file
  • Extract the content section of the individual pages to individual files in a pages subfolder
  • Setup a simple build system with Gulp to put everything together to deploy

Setting up something like Gulp is fairly straightforward, but it does mean a bit of extra effort, particularly for anyone doing design changes, or deploying the website - nonetheless, these should be familiar processes for anyone doing front-end development already. Additionally, it's fairly trivial to then hook up a CI system like CircleCI or TravisCI to build the deployable artifacts.

For those merely editing content, these extra steps should not be necessary.

I can do all the initial heavy lifting, and help anyone that needs help with getting nodejs/npm/gulp setup on their end.

Cheers! ๐Ÿด

Program Counter Increment

Wouldn't it make more sense to increment the program counter after instruction fetch and before instruction execution?

At the moment, when you set the program counter then it's incremented before it's used - which means that you need to always set the program counter to 3 less than the actual instruction you want to execute. This is a bit confusing for newbies.

(And me.)

Oh, and the site is awesome - I feel bad about raising niggles!

Red and green are troublesome color choices

About 6-8% of males have trouble with red/green confusion, maybe more, maybe less. It would be great if you switched from the red/green color scheme to something like red/blue or even used additional symbology (maybe dashed lines for things that are OFF).

These would be two combinations from http://colorbrewer2.org/ (qualitative, 5 classes, colorblind safe): #ca0020 & #0571b0 or #d7191c & #2c7bb6

Add a second tutorial that builds on the first with a few more instructions?

This is so great because it shows the essence of what's going on. And I think one of the strengths of this is your stopping point, because it is enough to see the how the basic concepts come together to do actual work.

But, would it be possible to add a Tutorial #2 that builds on to the first one with a few more instructions?

Basically what I was trying to figure out was, and forgive me if this is obvious, after I add a number, how can I then do something else with it, without stopping the execution and manually editing the memory?

So I wonder if it would be possible to implement something like a register and/or some kind of memory address for move. And maybe a JNE or something? Heh.

Spanish version

I could translate this to spanish, this is a so useful resource that would help some spanish students a lot when they start to learn the basics of computer science.

Use a static site generator

Something like Jekyll would make it much easier to manage the HTML. At the moment fixing #23 is difficult because attempting to change the style of the links in the body text changes the links in the header and page navigation. This would be much easier if we could change all the HTML in a single place. I'd be happy to help out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.