******************************************************************
* *
* 68000 ASSEMBLY COURSE ON ATARI ST *
* *
* by The Ferocious Rabbit (from 44E) *
* *
* Lesson Number 2 *
* *
******************************************************************
THE 'MAGIC' NUMBERS
Let's first understand, in a simple way, how a computer works by
placing ourselves in the following situation: we have to provide
messages to a person we are separated from (for example, nightly
messages between distant people).
We have a flashlight that we can turn on or off, that's all. So,
we can give 2 messages: 1) the flashlight is off (for example,
everything is fine) 2) the flashlight is on (for example, here
come the cops!)
Let's delve into the 2 states of the flashlight:
On Off
which translates to: current no current
or: Current? YES NO
Current value? 1 0
The tests will be noted as 0 or 1 depending on the on or off state
of the flashlight.
As we are rich, we buy a second flashlight.
We now have 4 message possibilities:
FLASHLIGHT 1 FLASHLIGHT 2
Off Off
On Off
Off On
On On
By counting with 3, 4, 5, 6 ... flashlights, we realize that it is
possible to find a simple relationship between the number of
flashlights and the number of possibilities.
Number of possibilities = 2 to the power of the number of flashlights.
So, we get the following table. The remarks are just there to give
a hint!
Flashlights Possibilities Remarks
1 2
2 4
3 8 There are 8-bit computers...
4 16 and 16-bit ones...
5 32 The ST is a 16/32 bits
6 64 Amstrad CPC... 64!!
7 128 or Commodore 128?
8 256 In computing, the character encoding
(letters, numbers, etc., using ASCII
code) allows for 256 characters!
9 512 A 520 has 512 KB of memory and
Amstrad sells a PC1 512.
10 1024 The memory size of my 1040!
11 2048 That of my brother's Mega 2.
12 4096 That of a Mega 4. Also the number of
displayable colors with an Amiga.
etc...
16 65536 In GFA, a table cannot have more than
65536 elements.
If my 4 flashlights are off (0000), I am at possibility 0. If they
are all on (1111), I am at possibility 15 (because from 0 to 15
adds up to 16), so 0000 --> 0 and 1111 --> 15.
So, I have a book of 16 pages giving the possibilities of the 16
possible lightings, and my correspondent has the same. How do I
send him the message from page 13?
Since the smallest digit is on the right (digits are read in
hundreds, tens, units order), let's set up the flashlights.
Flashlight number: 4 3 2 1
a) I have only one flashlight (the 1), and it's on, so I get the
value 1. (I can only get 0 or 1)
b) I have 2 flashlights (1 and 2), both on, so I get the 4th
possibility. So, I get the value 3 (since I count values 0, 1, 2,
and 3, which adds up to 4). Since flashlight 1 has a maximum value
of 1, I deduce that flashlight 2 alone has a maximum value of 2.
In fact:
Flashlight 1 on --> value 1
Flashlight 2 on --> value 2
Therefore, both on together --> value 3 = 4 possibilities.
Flashlight number 4 3 2 1
'increase' 8 4 2 1
To send the message 13, I need to turn on flashlight 4 (value 8),
flashlight 3 (value 4), and flashlight 1 (value 1).
Flashlight 4 3 2 1
State 1 1 0 1
Value 8 + 4 + 0 + 1 = 13
We are therefore counting in binary.
In decimal: "dec" means 10, as a digit can take 10 values (from 0
to 9).
In binary: "bi" means two, as each digit can only take 2 values
(0 or 1).
Computing is an Anglo-Saxon domain. A 'binary digit' in English is
called a 'bit'! A bit can be either 0 or 1. It is the smallest
computing unit because the correspondent we are sending messages
to is actually a computer. Instead of turning on flashlights, we
apply current to a wire or not. So, an 8-bit computer has 8 wires
where we can apply or not apply current!
To send messages, we will prepare flashlights with small switches,
and when our flashlights are ready, we will flip the main switch
to send the current and light up the planned flashlights.
Through