|
Computers
I like computers a lot. I like to code and plan
the creation of software and other things. I
released a lot of Shareware and Freeware in the
old Amiga days. The most important ones can be
found on my homepage. I am still considering
developing more software in the future.
(Photo of an
Amiga 1200,
courtesy of Dr. Cake)
|
I started in
computers back in 1986 (I was 12 years
old) when my father bought a TC 2048
which had 48 kB of RAM, 16 kB of ROM and was
compatible with the ZX Spectrum 48 kB. Later I
moved to a Sinclair ZX Spectrum+ with 128 kB of
RAM, in 1991 I moved to the Amiga 500, later to
the Amiga 1200 and in 1995 I had my first PC
when I entered University. I upgraded my
computers several times due to a great need for
computing power.
In the Spectrum and
Amiga days I met many
friendly persons, and I am still in contact with
some of them. In the old days, friendship had
more meaning.
The ZX Spectrum had a speed of 3.5 MHz.
“MHz”
is the speed of a CPU in millions of cycles per
second. Each machine code instruction
executes in a certain number
of cycles.
I believe that the first game I had for the ZX
Spectrum was “Cyberun”.
It was very advanced for the time. Software houses
seemed to make miracles with just 48K of RAM.
(photo dated from
30.Jun.2002)
I started coding in BASIC in the
old Spectrum days, and then a bit in Assembly
Z80. At first, I started coding games and
utilities from ZX Spectrum programming books,
and later I coded some little things by myself.
I moved to the Amiga in 1991 and started coding
in AMOS and later in AMOS PRO. My biggest
success was the Shareware utility
“Create Adventure Games”
which was put on the cover disk of a popular
British magazine and loaded me with letters from
many parts of the world, and that was just one of
the first versions of my program and had many
bugs.
I can code in several languages. I prefer
high-level languages (BASIC kind)
even though I like to think in a low-level (imagine
all steps behind everything that happens).
In 2001, I got back to coding software as a
hobby and this time for the PC using a powerful
and easy to use language, DarkBASIC, which was
very similar to AMOS PRO. I started with an
important project and founded an international
group along with Robert Bergström,
“Team
SpecNG”, whose purpose was to convert
Spectrum games to the most recent technology,
being all games released as Freeware.
The project’s site is: http://www.specng.org
and was officially launched on 22.Jul.2001.
In August 2002, I moved to DarkBASIC
Professional.
Releasing
software as Freeware doesn't
mean that it has lower quality. I have worked on
several things which were released as Freeware,
and their quality was as good or better than
many commercial software out there.
Both AMOS PRO and DarkBASIC Professional are
high-level languages. The big difference between
them and classic BASIC is the advanced
multimedia commands, allowing us to do everything
possible with lower-level languages.
In January 2012, I moved to BlitzMax which is a
programming language based on Blitz Basic from
the Amiga days and allows compiling code to
Windows, Linux, and Mac. The language is very
hard to use, but it is multiplatform.
In March 2013, I moved to PureBasic, which is
extremely powerful, easy to use, and it compiles
for Windows, Linux, and Mac. I reached the
conclusion that this is what I have been after
all over these years.
I also try to do yearly updates of some of my
bought software. When software houses are about
to release a new version of their software, they
do major discounts for the current version. I
know I won't be buying the latest version, but
this has at least two advantages:
1) The software is a lot
cheaper (50% or more);
2) It is more bug free
since the developers already had a year or so to
fix the issues.
A friend from the Amiga days, Pietro Ghizzoni,
once told me: “A coder's
work is never resumed”. One day, 10.Sep.2006, I was on
IRC speaking with a friend regarding this
sentence and this friend from DALnet whose nick
is TigerWood said that powerful sentence meant
that a coder is like an artist who tries to be
perfect and therefore needs to update the code
every time he has a better idea. This means that
coding something may be a lifetime task.
Main
resolutions used by monitors:
Another useful information is the most common
monitor resolutions:
QVGA
VGA
SVGA
XGA
SXGA
HD
FHD
UHD-4K
UHD-8K
|
=
|
320×240
640×480
800×600
1024×768
1280×1024
1280×720
1920×1080
3840×2160
7680×4320
|
Assembler
VS Assembly VS Machine Code:
An
Assembler is a utility which accepts mnemonics
in Assembly: it accepts instructions in a form
which humans can understand, and then those
instructions are converted to numbers which are
the real machine code. For example:
LD IX,16384
LD DE,6912
LD A,255
SCF
CALL 1366
RET
|
DD 21 00
40
11 00 1B
3E FF
37
CD 56 05
C9
|
This
is Z80 mnemonics that could be typed in an
Assembler and converted to machine code. This
particular routine would load a screen from a
tape in a Spectrum.
In the Spectrum days, after I bought a Sinclair
ZX Spectrum 128K Plus, I used Machine Code in
some 48K games which had loading levels from
tape, to store all the levels in the 128K RAM so
that there was no need to load the levels
from tape all the time.
It was a brilliant idea back then, since I made
128K versions out of 48K games.
Converting a WORD
to bytes and vice-versa:
Here is something useful which I learned in the
Spectrum days… how to convert a WORD (value
between 0 and 65535) into two bytes.
This has been very useful all those years that I
have coded software. Just notice that the ZX
Spectrum would store first the Low Byte and then
the High Byte. Here is how it is done:
v=value between 0 and 65535
High Byte=INT(v/256)
Low Byte=v-256*INT(v/256)
And to convert the bytes back to a WORD:
v=value between 0 and 65535
v=High Byte*256+Low Byte
How to do it using POKE and PEEK:
READ:
a=address in
memory
v=value between 0 and 65535
v=PEEK(a)*256+PEEK(a+1)
WRITE:
a=address in memory
v=value between 0 and 65535
POKE a,INT(v/256)
: POKE a+1,v-256*INT(v/256)
Storage
measurements in computers:
Here is the table of storage measurements used
in computers, since it is useful information:
1
bit
1 byte
1 Kilobyte (kB)
1 Megabyte (MB)
1 Gigabyte (GB)
1 Terabyte (TB)
1 Petabyte (PB)
1 Exabyte (EB)
1 Zettabyte (ZB)
1 Yottabyte (YB)
|
=
|
0 or 1 value
8 bits
1024 bytes
1024 Kilobytes
1024 Megabytes
1024 Gigabytes
1024 Terabytes
1024 Petabytes
1024 Exabytes
1024 Zettabytes
|
1 sector
1 cluster |
= |
512 bytes (usually
used in floppy disks)
groups of sectors (hard disks
and mass storage products) |
Amiga
Forever meeting
On 4.Jan.2009
Michael Battilana from Cloanto organised a small
meetup in Lisbon, Portugal, for old Amiga users.
We gathered in front of the Mosteiro dos
Jerónimos (Jerónimos Monastery)
around noon, had lunch in a restaurant and
chatted a lot.
Very few people attended the meetup and Michael
offered us all the package
“Amiga
Forever 2008 Premium” (the
latest version). The package had two
DVD-Video of Amiga's historical moments and a CD
with the Amiga Forever software for the PC.
Here is a nice photo of the event place taken by
Michael's girlfriend:
(Photo taken on 4.Jan.2009)
|
|
LAST
UPDATE: 10.JUN.2022
|