Home Main Menu About me Computers
 

 



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

Back to top


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.

Back to top



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)

Back to top


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)

Back to top


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)






  



Back to top 

Back to top



LAST UPDATE: 10.JUN.2022