Saturday, 31 October 2015

My setup for web development

I normally use Brackets for my main IDE. Brackets does syntax highlighting, live previews, and control revision.

For control revision, I prefer git and github to host the source code. There is a plugin for Brackets.

For live previews, I use Chromium/Google Chrome with livereload. Also has a plugin.

For node.js development, I use grunt and qunit for testing and deployment.

Thursday, 22 October 2015

funary 0.2.x

funary goal is support DLCSim and future projects with binary operations.

 funary 0.2.x Specification:
High priority:
  • Multiplication
  • Decoders
  • Encoders
  • Multiplexers
  • Demultiplexers
  • Bit-wise operations
  • Truncation
  • Shifting
  • Decimal to binary
Low priority:
  • Subtraction
  • Division
  • Modulus

Friday, 16 October 2015

DLCSim 0.3.x

DLCSim 0.3.x will have the following:
  • Full adders
  • RS latches
  • n-bit adders
  • Decoders
  • Encoders
  • Multiplexers
  • Demultiplexers
  • Pulse generators
  • Real-time simulations
Real-time simulations will simulate the circuit in real time. It will have delays in gates and ICs. The values will update automatically as they pass though the circuit.

Monday, 12 October 2015

DLCSim 0.2.2 - Oct 12 2015

I released a new version with better IC support. Now the next task will be to create visualization of the circuit and add more ICs.

Sunday, 11 October 2015

DLCSim 0.1.0 - Oct 11 2015

I made a new digital logic library for fun.



It is pretty small right now. It has only AND,XOR,OR,NOR components. But using those components you could build any circuit.

The library could be easily extended to add NAND,NOR,...etc. However, components that have multiple outputs could have a problem.

Thursday, 1 October 2015

ARM Assembly cheat sheet

ARM assembly

Instruction set


No instruction. Does nothing. Used for alignment.


Branch off and go to a label.

b start
Execution goes to the label start.


Move a value to a register. 8 bits maximum.

mov r0,#1
Moves value 1 to r0. r0 equals 1.


Adds two values together and place it to a register.

add r0,r1,r2
Adds r1 and r2 together. Then places it in r0.


Load a value to a register. Use this instruction when mov can't.

Example 1:
ldr r0,=r1
Loads r1's address to r0. Not r1's value.

Example 2:
ldr r0, [r1]
Loads value from given address(r1's value) and place it in r0.

Example 3:
ldr r0, [r1,r2]
Loads value from given address(r1's and r2's value) and place it in r0.

Example 4:
ldr r0,=0x10000000
Place 0x10000000 into r0. r0 equals 0x10000000.


Store value into memory location.Memory location is the data section.

str r0,[r1]
Store r0's value in the at the address given(r1's value).


Compares two registers and see if they are above zero. It subtracts internally.

Example 1:
cmp r0,r1
Sets N,Z,V,C condition flags with the data of r0-r1. Negative,Zero,Overflow,Carry.

Example 2:
cmp r0,#3
bge start
Performs r0-3.
If it is negative then N = true.
If it is overflowing then V = true.
If N == V or GE then go to start label.


Checks if N == V or GE then goes to the branch see above.

Software used: ARMSim