Main Menu About me Computers


I like computers a lot. I like to code and also plan the creation of software and other things. I released a lot of Shareware and Freeware back in the old Amiga days. The most important ones can be found on my homepage. I am still thinking about developing more software in the future, now that I have Robert Bergström at my side.

(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 and in 1991 I moved to the Amiga 500, later to the Amiga 1200 and in 1995 I had my first PC in the same year that I entered University. I also upgraded my computers several times due to a great need for computing power.

It was in the old Spectrum and Amiga days that I met lots of friendly persons and I am still in contact with some of them. There is nothing like old days people. Friendship had more meaning back then.

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 takes a certain number of cycles to execute.

(photo dated from 30.Jun.2002)

I started coding in BASIC in the old Spectrum days and then a bit in Assembly Z80. In the beginning 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 very popular British magazine and loaded me with letters arriving from many parts of the world and that was just one of the first versions of my program and had lots of bugs.

I can code in several languages, some of which I learned at University. 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 and using a powerful and easy to use language called DarkBASIC which was very similar to AMOS PRO. I started with a very important project and founded an international group along with Robert Bergström, called "Team SpecNG" whose purpose was to convert old Spectrum games to the most recent technology, being all games released as Freeware. I was also the coder. The project’s site is: 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 even 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 what is created with 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 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, which I believe it was Pietro Ghizzoni, once told me: "A coder's work is never resumed". One day, 10.Sep.2006, I was on IRC talking with another 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. In simple words, this means that coding something may be a lifetime task.

Main resolutions used by monitors:
Another useful information which I learned, which are the most common monitor resolutions:




Assembler VS Assembly VS Machine Code:
An Assembler is a utility which accepts mnemonics in Assembly. In simple words, 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
   CALL 1366

DD 21 00 40
11 00 1B
CD 56 05

This is Z80 Assembly language mnemonics that could be typed in an Assembler and then converted to machine code. This particular routine would allow a screen to be loaded from tape in a ZX Spectrum or compatible.

Converting a WORD to bytes and vice-versa:
Now I am going to share 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. I don't know why it worked that way in the Speccy. 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:
   a=address in memory
  v=value between 0 and 65535
   a=address in memory
   v=value between 0 and 65535
   POKE a,INT(v/256) : POKE a+1,

Storage measurements in computers:

I also decided to share here 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 and had lunch in a restaurant and we all chatted a lot.

Very little 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)


Back to top