0% found this document useful (0 votes)
4 views

Topic 2

Uploaded by

simon21tt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Topic 2

Uploaded by

simon21tt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Computer Organization

IB Computer Science Topic 2

© Justin Robertson 2019. All rights reserved.


Conway's
Game of Life

Key point:

The state of the game at time t+1


depends on the state of the
game at time t.

Lots of systems are like this,


including traffic lights and
computers.

Play the game of life

© Justin Robertson 2019. All rights reserved.


Machine Instruction Cycle Overview

Fetch

Store Decode

Execute

© Justin Robertson 2019. All rights reserved.


Have a go with this
Components of the CPU interactive demo
○ You need to be able to reproduce this diagram and discuss
everything in it

CPU

Control MAR Address Bus


Memory
Unit
Accumulator
(Registers)

[01]
[02]
[..]
Arithmetic [FF]
Logic MDR Data Bus
Unit

This is quite a useful video (although when he says BR buffer register, replace it with
MDR memory data register)
© Justin Robertson 2019. All rights reserved.
Registers
○ Registers are the smallest and fastest unit of memory in a computer system. They exist
within the CPU and are used to store information that the CPU is working on at that exact
moment.
○ Registers you need to know about:
○ Program Counter: Stores the address of the next instruction. [Technically not on the
syllabus but essential to understanding.]
○ Memory Address Register: Stores the address in memory that is to be read or
written. When something happens that involves memory, the MAR stores WHERE it
happens. So when a read happens, the MAR stores the address from which the data will
be read and when a write happens the MAR stores the address at which the data (from
the MDR) will be written.
○ Memory Data Register: Stores the data in memory that has been read or is to be
written. When something happens that involves memory, the MDR stores WHAT is
read/written. So when a read happens, the MDR stores the data that has been read and
when a write happens, the MDR stores the information that will be written.
○ Instruction Register: Stores the current instruction that has been transferred to the
MDR and is about to be decoded and executed. Once the data is in the Intruction
Register we consider this to be the end of the Fetch part of the machine instruction
cycle. [This register is only mentioned on the HL syllabus for some reason.]
○ Control unit: The decoder in the control unit is responsible for finding out what the
instruction that has been read does.
○ ALU: The Arithmetic Logic Unit is responsible for executing the instruction.
○ Accumulator: A set of general purpose registers used for storing temporary
intermediate results of the CPU's calculations.
© Justin Robertson 2019. All rights reserved.
The Control Unit and ALU

Control Unit:
○ The Control Unit decodes intructions
○ The Control Unit contains a component called the decoder, which is
responsible for decoding each instruction into basic opcodes. The
decoder decides what each instruction actually means.
○ It coordinates the other components of the CPU and synchronises
the movement of data or instructions between registers.
○ It also controls when data is to be read from or written to memory
by means of a read/write signal.
Arithmetic Logic Unit:
○ The ALU carries out instructions to do with arithmetic and logic.
○ The ALU reads operands from registers and writes the results of its
operations into registers.
○ Examples are adding, subtracting, multiplying, complementing
(negating), AND, OR, shifting bits along the register

© Justin Robertson 2019. All rights reserved.


The Fetch Phase
○ The PC (Program Counter) stores the address of the next instruction in memory.
○ The contents of the PC are copied to the MAR and the PC is incremented.
○ The address is put onto the address bus.
○ The data at that address is read into the MDR.
○ The data returns on the data bus.

The Decode Phase


○ The instruction carried by the MDR is copied to the IR (Instruction Register)
○ The instruction is translated into a format that the ALU can understand. This is carried
out by the decoder, which is part of the control unit.

The Execute Phase


○ The ALU carries out the operation, e.g. ADD, MUL, CMP, JMP, STO, etc.
○ Note the instruction executed may cause a memory read, e.g. LDA 39A7 might mean
"fetch the contents of 39A7 and copy it to the accumulator"

The Store Phase (optional)


○ This is really part of the execute phase, when a STO instruction is executed. The control
bus carries a "write" signal instead of a "read" signal. Therefore, instead of reading the
data stored at the MAR address into the MDR, the data stored in the MDR is written to
the location at the MAR address.
© Justin Robertson 2019. All rights reserved.
Questions
○ Draw a block diagram showing the basic components of the CPU and
how they interact with memory. [6 marks]
○ Explain why the address bus is shown as a one directional arrow and
the data bus is a two directional arrow. [4 marks]
○ Outline the fetch phase of the machine instruction cycle. [2 marks]
○ Compare the roles of the Memory Address Register and the Memory
Data Register. [4 marks]
○ Outline the role of the Control Unit in the machine instruction cycle.
[2 marks]

© Justin Robertson 2019. All rights reserved.


Operating Systems
○ Operating System: A collection of programs that control
the execution of software applications and that provide
services such as resource allocation, scheduling,
input/output control, and data management.
○ How many operating systems can you name?
○ Main functions:
○ Input/Output (IO) control: Interacting with screens, keyboards, mice, printers, etc.
○ File management: How/where data is stored on the hard disk. Folder structures.
○ Software/hardware interface: Brokering the relationship between running processes
and physical hardware, e.g. when a word processing application wants to print
something it asks the OS; it doesn't talk directly to the printer.
○ Memory management: Deciding which parts of memory are being used by which
running processes, and which parts of memory are free to be allocated.
○ User interface: Things like windows, buttons, mouse pointers, icons are part of a GUI
or Graphical User Interface. Older OS's used to have a command-line interface, where
you had to type commands because there were no mouse pointers or buttons. The first
guessing game that you programmed had a command-line interface.
○ Scheduling and program execution control: The OS is responsible for swapping running
processes into and out of the CPU. This gives the illusion of being able to do lots of
things at once, which is called multitasking. It's the reason that you can type your
homework and listen to music and download a file all at the same time.
○ Security: There is a separate slide on this.

© Justin Robertson 2019. All rights reserved.


Operating Systems and Security
○ User management: login with password
○ System of privileges, determining which user or process can do
what, eg delete files, shut down the system, etc
○ Permissions for files and directories, eg read-only
○ Memory management: keeping one process’s or one user's memory
space separate from another’s, ie even if you're logged in to the
same machine, I still can't read any file you have open.
○ Built-in firewall
○ Built-in anti-virus and malware detection

© Justin Robertson 2019. All rights reserved.


Levels of Memory
○ Primary Memory
○ Primary memory is the main working memory. It is generally volatile
(but see ROM) and is directly accessible by the CPU.
○ Registers: Smallest, fastest memory, used to hold data that the CPU is
currently working.
○ Cache: Small, fast memory, used to hold very frequently used data.
○ RAM: Random Access Memory. Holds data and instructions from running
programs.
○ ROM: Non-volatile memory, used to hold the operating system's
bootstrap loader (small start-up program) or BIOS.
○ Secondary Memory
Secondary memory comprises slower but higher capacity devices
that are non-volatile and not directly accessible by the CPU.
○ Disk storage
○ Magnetic tape
"Volatile" memory loses
○ USB flash drives
its data when the
○ Cloud storage
power is turned off.
© Justin Robertson 2019. All rights reserved.
Secondary memory options

Optical disk E.g. CD or DVD. Medium capacity (700Mb - 5Gb). Portable.


Beginning to become obsolete in laptop computers because of
extra hardware required.

Magnetic hard disk Normal computer hard drive (internal or external). High capacity.
Moving parts mean slower access and lower reliability.

Magnetic solid-state Flash memory, thumb drive, memory stick, etc., but also
increasingly used as main storage in laptop computers. Currently
disk quite expensive/low capacity. No moving parts increases speed
and reliability.

Magnetic tape Extremely high capacity. Used by large organisations to store


offsite disaster recovery data. Sequential access only (unlike other
media listed) so not good for frequent lookups.

Cloud storage Very high capacity. Requires monthly/annual payment. Back-up


managed by third-party. Security considerations as data moves
across public network.

© Justin Robertson 2019. All rights reserved.


The details of OS memory management are required at HL
Operating Systems and only and are covered in Topic 6. No detail is required at SL
Memory Management of paging or virtual memory but they are included here for
completeness.
○ Multi-tasking environment: keeping the memory
space of each process safe from other running
processes (see Security)
○ Multi-user environment: keeping the memory space
(primary and secondary) of each user safe from other
users (see Security)
○ Allocating and deallocating memory for each
process
○ Paging: Dividing virtual memory up into equal-sized
blocks (pages)
○ Paging allows OSs to allocate non-contiguous chunks
of memory to the same process, thus reducing
fragmentation problems
○ Virtual memory: The use of secondary memory as if
it were primary memory, allowing the OS to run more
processes than there is RAM to hold them.
○ By creating virtual memory, the OS make it easier for
programs to reference memory because they don’t
need to worry about the complications of the
underlying physical structure of memory and disk
(another example of abstraction)

© Justin Robertson 2019. All rights reserved.


Applications
An application is a computer program that allows a user to perform some
useful activity. Examples are:
○ Word processor: Text document management
○ Spreadsheet: Mathematical and financial calculations
○ Database: Organisation of information
○ Email: Electronic mail
○ Web browser: Viewing HTML pages
○ Graphics processing: Editing, cropping and enhancing images
○ Computer-Aided Design (CAD): Creating and editing designs for
engineering or manufacturing

○ Note that it's probably better not to use proprietary names in your exam.
Say "spreadsheet software" and not "Excel".

© Justin Robertson 2019. All rights reserved.


Common Features of Applications
The IB Guide refers to features:
"Including toolbars, menus, dialogue boxes, graphical user interface GUI)
components.
Students should understand that some features are provided by the
application software and some by the operating system."
Operating systems make services available to applications:
○ I/O (input/output) operations
○ File system manipulation (reading/writing files)
○ Frameworks of GUI components
○ Program execution
○ Hardware interface
○ Error detection
All applications need these services, so it makes sense to centralise their provision.
They make the development of software simpler because potentially complex
interaction with hardware is avoided.

© Justin Robertson 2019. All rights reserved.


Questions
○ Outline two main functions of an operating system. [4 marks]
○ Outline three security features of operating system? [6 marks]
○ Identify two features of application software that are usually
provided by the operating system. [2 marks]
○ Compare optical disks and cloud storage. [4 marks]
○ Explain how a multi-tasking operating system can run more than one
program at the same time. [4 marks]

© Justin Robertson 2019. All rights reserved.


Binary and Hexadecimal Number Representation

Definitions
○ Bit: The smallest amount of data that can be represented. Short for
"binary digit". Represented as either a 0 or 1.
○ Byte: 8 bits
○ Binary: The base 2 counting system.
○ Denary/Decimal: The base 10 counting system. The normal
place-value counting system in which a new column is created when
a power of 10 is reached.
○ Hexadecimal: The base 16 counting system. Requires six new
symbols in addition to 0-9, which are A-F. Since 24 = 16, one Hex
digit can be used to represent 4 bits, and two Hex digits can be used
to represent a byte.

© Justin Robertson 2019. All rights reserved.


Number representation in general
X3 X2 X1 X0 . X-1 X-2 X-3

X = 10 2 1 4 9 . 5 0 4

Our normal counting system uses a base of 10 (because we have ten fingers).
Every time we get to a power of ten, we change column.

The number above is:


2 x 103 + 1 x 102 + 4 x 101 + 9 x 100 + 5 x 10-1 + 0 x 10-2 + 4 x 10-3 = 2149.504.

But there is nothing to say that X has to be 10. It could be literally any positive
number. Counting in base X requires X different symbols to represent values.
● In base 10 we use the symbols 0123456789.
● In base 2 (binary) we use 01.
● In base 16 (hexadecimal) we need 16 symbols: 0123456789ABCDEF.

© Justin Robertson 2019. All rights reserved.


○ The Guide mentions: Strings,
Data Representation integers, characters, colours.
0 00 000 0000 00000 ○ The most basic point is that
1 01 001 0001 00001
10 010 0010 00010
more bits allows more different
11 011 0011 00011 values to be stored.
100 0100 00100
101 0101 00101
110 0110 00110 No bits Num
111 0111 00111
If you find it difficult 1000 01000 values
1001 01001
to count in binary 1 2
1010 01010
then try looking at 1011 01011
the pattern that the 1100 01100 2 4
columns make. 1101 01101
1110 01110 3 8
1111 01111
The rightmost bit
alternates every
10000 4 16
10001
row, the next one to
the left alternates
000 10010
10011
5 32
every two rows, the 001 10100
n ?
10101
next one to the left 010 10110
alternates every four 10111
011 More bits means:
rows, etc. 11000
100 11001
• More different values
11010
As long as you start 101 11011 ○ Better image quality
with 000, then 110 11100
counting in binary is 11101 ○ Better sound quality
very easy! 111 11110 • File size is larger
11111

© Justin Robertson 2019. All rights reserved.


There are not very IB-like questions, but if
Concept questions: you can do them without too much trouble
binary, denary, hexadecimal then you can consider yourself well prepared
to answer a question involving binary or
hexadecimal:
Convert the following to binary:
25. How many bits are required to specify a
1. 7den 5. Chex colour in the RGB scheme?
2. 20den 6. 12hex 26. How many hex digits are required to
3. 33den 7. 66hex specify an IP4 address?
4. 63den 8. ADhex 27. Write down all the numbers from 0 to 15
in order in binary.
28. How many values can be represented by
Convert the following to denary: X digits in base n?
9. 11bin 13. 10hex 29. Explain how to calculate how many hex
10. 101bin 14. 1Fhex digits will be required to represent an
11. 1101bin 15. 2Bhex n-bit number?
16. 46hex 30. Explain how to calculate how many bits
12. 1101011bin
will be required to represent an n-bit hex
number?
Convert the following to hexadecimal: 31. What is 100000bin - 1bin?
17. 1001bin 21. 63den 32. What is 100000hex - 1hex?
18. 100010bin 22. 32den 33. Add the following numbers using
19. 10010111bin 23. 80den standard column addition:
24. 101den a. 110101001bin + 1110101bin
20. 1101011011bin
b. 285hex + 1FChex.
34. Which is bigger 0.1bin or 0.1hex?
© Justin Robertson 2019. All rights reserved.
Checking your answers

© Justin Robertson 2019. All rights reserved.


Raster images

○ Also called bitmaps, raster images use a


grid of points of colour.
○ But how many different colours can one
point be?
○ Colour depth is the number of bits per pixel
(generally "bit depth").
○ The number of pixels per unit of image
space is known as "resolution".
○ Obvious tradeoff between picture quality vs
file size.
○ How could you find out the bit depth of each
of the pictures of the woman and the fruit?
© Justin Robertson 2019. All rights reserved.
Applications of number representation
An image file is made up of a grid of 200 x 300 pixels and has a
colour depth of 8 bits.
○ How many different colours can each pixel represent? [2 marks]
○ What is the size of the file? [2 marks]
○ A friend argues that if you increase the colour depth of this file, you
will improve its quality. To what extent is he correct? [4 marks]

Why is ASCII vs Unicode relevant to this topic? Explain one


advantage and one disadvantage of Unicode over ASCII.

© Justin Robertson 2019. All rights reserved.


Truth tables
A B A AND B A B A OR B A B A XOR B

0 0 0 0 0 0 0 0 0

0 1 0 0 1 1 0 1 1

1 0 0 1 0 1 1 0 1

1 1 1 1 1 1 1 1 0

A AND B is true is both A OR B is true is either A XOR B is true is


A and B are true. A or B (or both) are either A or B (but not
Otherwise it is false. true. Otherwise it is both) are true.
false. Otherwise it is false.

A B A NAND B A B A NOR B A NOT A

0 0 1 0 0 1 0 1

0 1 1 0 1 0 1 0

1 0 1 1 0 0 NOT takes only one


input and returns
1 1 0 1 1 0 the complement
(opposite)
A NAND B is true when A NOR B is true when
A AND B is false. A OR B is false.

© Justin Robertson 2019. All rights reserved.


Logic Gates
The Guide mentions
○ AND, OR, NOT, NAND, NOR, XOR
○ Which of these are binary operators and which are unary operators?
○ Construct truth tables for each.
○ Look at the logic diagram below. Construct a truth table for X given the
inputs A, B and C.

A
AND

B NOT XOR X

© Justin Robertson 2019. All rights reserved.


1 Brackets
Logical operator precedence 2 NOT
3 AND, NAND
4 OR, NOR,
XOR
Important: The IB do not clarify this, even though sometimes it
matters. If you have a question in which precedence makes a
difference, use these rules. They are the ones that have been discussed
recently on the teachers' forum.

○ Precedence rules are like BIDMAS (PEMDAS, BODMAS, etc). They


tell you which operations to do first.

○ A OR B AND C is the same as A OR (B AND C) because AND has


precedence over OR, but is different from (A OR B) AND C because
now the brackets take precedence over the AND.

○ A XOR B NOR C is the same as (A XOR B) NOR C since when there


is no other precedence rule we just go left to right.

© Justin Robertson 2019. All rights reserved.


Bigger truth tables

Construct the truth table for A AND B XOR C

A B C A AND B A AND B Important points to note:


XOR C ● There are three inputs: A, B and C.
● This means that there are 23 = 8 possible
0 0 0 0 0
combinations of input.
0 0 1 0 1 ● There is one output: A AND B XOR C.
● I have included an interim column A AND B to
0 1 0 0 0
make sure I don't make a silly error.
0 1 1 0 1 ● This is particularly important:
○ Notice how I have set out the rows in the
1 0 0 0 0 same order as I would count in binary
○ This ensures that I don't miss a
1 0 1 0 1
combination out and include a
1 1 0 1 1 combination twice

1 1 1 1 0

© Justin Robertson 2019. All rights reserved.


Other types of question
W = Weekday
○ If it's a weekday, Bill only R = Raining
goes to the pub if it's not F = Football
raining P = Goes to the pub

○ Bill always goes to the pub at


the weekend W R F P

○ Regardless of the weather or 0 0 0 1


the day of the week, he
0 0 1 1
always goes to the pub if the
football is on 0 1 0 1

0 1 1 1
Construct the truth table to show 1 0 0 1
when Bill goes to the pub.
1 0 1 1

1 1 0 0
Describe the situation when Bill
does not go to the pub. 1 1 1 1

© Justin Robertson 2019. All rights reserved.


Redraw each of these diagrams using
fewers gates

A NOT

AND X

B NOT

NOT

A AND

OR X

B AND

NOT

© Justin Robertson 2019. All rights reserved.


Harder
○ Write a boolean expression for the following logic diagram
○ Construct its truth table

A NOT

AND X
B
OR

○ Construct a logic diagram for the following boolean


expression: A AND (B OR NOT C)

© Justin Robertson 2019. All rights reserved.


Construct boolean expressions for
More practice these logic diagrams.

Create logic diagrams from AND NOT


X
B
these boolean expressions OR

C
1. A AND B OR NOT C
2. (A XOR B) AND NOT C
A
3. NOT (A NOR B) NAND C XOR

B NOR
X
It would be good practice to AND

construct truth tables from C NOT

some of these too.


A
OR NOT

B NA
ND X
AND

C NOT

© Justin Robertson 2019. All rights reserved.


IB Example

○ Maria won’t go to school if it is cold and raining or


she has not done her homework
○ Draw a logic diagram
○ Construct a truth table

○ Huh?! Think…
○ What are the inputs?
○ What is the output?
○ What are the Boolean operators?

© Justin Robertson 2019. All rights reserved.


IB Example: Maria won’t go to school if it is cold and raining
or she has not done her homework.

C
Inputs
• Cold and
• Raining
• Done Homework R
or not S
Outputs:
• Go to School
H not

C R H C and R Not H C and R or Not H S = Not(C and R or Not H)

0 0 0 0 1 1 0
0 0 1 0 0 0 1
0 1 0 0 1 1 0
0 1 1 0 0 0 1
1 0 0 0 1 1 0
1 0 1 0 0 0 1
1 1 0 1 1 1 0
1 1 1 1 0 1 0

© Justin Robertson 2019. All rights reserved.


Make up your own examples

○ You need three inputs (things that can be true or false) and one
output (something that happens or doesn't on the basis of the
inputs).
○ Let's try these inputs it is sunny, it is windy, it is cold. The output
can be whether or not Lisa wears her jumper to school.
○ Lisa wears her jumper to school if (1) it is cold or (2) if it is windy
and not sunny.
○ Inputs are: Construct the truth table.
○ C = it is cold ● Remember, if there are n inputs, then
○ W = it is windy there will be 2n rows in your truth table.
○ S = it is sunny My guess is that for a question like this
there will almost certainly be 23 = 8 rows.
○ Output is: ● Also remember to write them out in
○ J = Lisa wears her jumper ascending order 000, 001, 010, etc.
Construct the logic diagram.
● Your inputs are on the left.
My answer is on the next slide. ● Your output is on the right.
● There are logical operators in between.
Decide what is being ANDed and ORed
with what.

© Justin Robertson 2019. All rights reserved.


C W S J

0 0 0 0

0 0 1 0
C

0 1 0 1

0 1 1 0
W OR J
1 0 0 1
AND
1 0 1 1

1 1 0 1
S NOT

1 1 1 1

● First we know that J = 1


whenever C = 1. Lisa wears her jumper to school if (1) it is
● Next we know that J = 1
whenever W = 1 AND S = 0. cold or (2) if it is windy and not sunny.
● All other outputs are 0. This gives the boolean expression:
C OR W AND NOT S = J

© Justin Robertson 2019. All rights reserved.


Answers to binary and hex questions.

25. How many bits are required to specify a colour in the


RGB scheme?
24
26. How many hex digits are required to specify an IP4
address?
Convert the following to binary: 28 x 28 x 28 x 28 = 232 = (24)8 = 168 so 8 hex digits
required.
27. Write down all the numbers from 0 to 15 in order in 0000
1. 7den 5. Chex binary. 0001
2. 20den 6. 12hex See right. 0010
28. How many values can be represented by x digits in base
3. 33den 7. 66hex 0011
n? 0100
4. 63den 8. ADhex nX 0101
29. What is 100000bin - 1bin? 11111 0110
30. What is 100000hex - 1hex? FFFFF 0111
31. Add the following numbers using standard column 1000
Convert the following to denary: addition: 1001
a. 110101001bin + 1110101bin 1010
9. 11bin 13. 10hex 1011
10. 101bin 14. 1Fhex 110101001 1100
001110101 1101
11. 1101bin 15. 2Bhex --------- 1110
12. 1101011bin 16. 46hex 1000011110 Don't convert to denary first! 1111

32. 285hex + 1FChex.

Convert the following to hexadecimal: 285


1FC
17. 1001bin 21. 63den ---
481 Don't convert to denary first!
18. 100010bin 22. 32den
33. Which is bigger 0.1bin or 0.1hex?
19. 10010111bin 23. 80den 0.1bin = 2-1 = 0.5. 0.1hex = 16-1 = 0.0625. So 0.1bin is
24. 101den bigger.
20. 1101011011bin

© Justin Robertson 2019. All rights reserved.


Answers to more practice questions.

A AND B OR NOT C NOT (A NOR B) NAND C


(A XOR B) AND NOT C
A A
A A N N
N X O O
D O R T
O R
B X A B
R B N X
N
N D X
N A
O N
T O
C C D
C T

A B C X A B C X NOT A NOR NOT A NOR B


A B C X
B AND C
0 0 0 1 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 1 0 0 0 1 0 0 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 1 0 0 1 1 0 0 1 1 1 1 0
1 0 0 1 1 0 0 1 1 0 0 1 0 1
1 0 1 0 1 0 1 0 1 0 1 1 1 0
1 1 0 1 1 1 0 0 1 1 0 1 0 1
1 1 1 1 1 1 1 0 1 1 1 1 1 0

NOT (A AND (B OR C)) A XOR B NOR B AND NOT C NOT (A OR C) NAND (B AND NOT C)
A A A
X N
O O
O
A N R R N
N T
N O X B A
B D T O X B X
N
O A R A D
R N N
N N
D D
C C O C O
T T

A B C X
A B C A XOR B B AND NOT C X NOT (A
A B C B AND NOT C X
0 0 0 1 OR C)
0 0 0 0 0 1 0 0 0 1 0 1
0 0 1 1
0 0 1 0 0 1 0 0 1 0 0 1
0 1 0 1
0 1 0 1 1 0 0 1 0 1 1 0
0 1 1 1
0 1 1 1 0 0 0 1 1 0 0 1
1 0 0 1
1 0 0 1 0 0 1 0 0 0 0 1
1 0 1 0
1 0 1 1 0 0 1 0 1 0 0 1
1 1 0 0
1 1 0 0 1 0 1 1 0 0 1 1
1 1 1 0
1 1 1 0 0 1 1 1 1 0 0 1

© Justin Robertson 2019. All rights reserved.


Nov 2016

May 2016

May 2015

Nov 2015

© Justin Robertson 2019. All rights reserved.


Nov 2014

© Justin Robertson 2019. All rights reserved.

You might also like