Diary of an Amiga fanatic

Tag Archives: Amos Professional

I wanted to play a bit with Amos and since I don’t have any room, actually table, to setup my A1200 I have to use emulation. Instead of using WinUAE I thought I would try to set it up on my A1SE with OS4.1. I got really excited about it and setting it all up using two hard drive files, one for the Workbench installation and the other to have Amos installed, was just great. Since I want to write some Amos tutorials I need to transfer the source code files to OS4.1. I was thinking about using a folder as hard drive but thought I would give the hard drive option a try. You can mount this as a drive in OS4.1 so that should enable me to get the source code files. I am not sure but I remember from last time that Amos would not let itself be installed in a folder that is being used as a hard drive. I was not sure but I thought I better go for the hard drive file option. I already mounted the file and it worked perfectly but about this more later on.

Amos Emulation

All this happened just a few days before the weekend that we would go to France. Not that I was not excited to go to France but being all worked up and everything worked the first time I tried I could not help thinking that I would have to wait till after the trip to continue. That was last week and the long weekend to France was absolutely marvelous. That great that I did not give much thought to my Amos emulation project.

Mount Amos HDF drive

At my first attempt I succeeded in mounting my hard drive file that contains the Amos installation. It was no fluke since each other attempt after this also worked. This will enable me to access the source code files I want to use for my tutorials. It just feels better and is more fun to emulate the classic Amiga on the new Amiga. There is just a lot of excitement doing it this way. Since I also have a partition on my OS4.1 installation called development I need to make sure I unmount the HDF file since rebooting will case some start-up errors. Mountdiskimage will also mount the HDF file again on the next boot of OS4.1. Since everything is up an running now it is time to start playing around with Amos. Hopefully I can do a new tutorial soon.

Leatherneck - Front

Leatherneck - Back

I was delighted to receive a gift from OldSchoolGameBlog. It is just the kind of game I love. I have some great memories playing Leatherneck as well in single player mode as two player mode. This game will be the next game I will do a review about. Looking forward to start on this. Thanks to OldSchoolGameBlog!

NetSurf 3.0

I also installed the latest NetSurf (version 3) version. I have to admit I use mostly OWB and it has been some time since I used NetSurf. From now on I will use NetSurf 3.0 to see how it behaves on my A1SE. Time to play some Leatherneck and do some coding.


In my previous column I talked about me going to order Amiga OS4.1 from AmigaKit. That has happened (yeah!) and now I am waiting for it to arrive. This should be somewhere next week. With having a rather long weekend it would have been great to already have it now but I am not complaining but only happy for having ordered it. I am really curious it will improve on stability compared to the Pre-Release I am running now. Hopefully I will be able to write about it next weekend. I will backup my important files so I can do a clean installation and also set up a new partition scheme.

My Amos Professional tutorials are going really well. This week alone I posted already two (the first two) tutorials. I am really enjoying this and I am already brainstorming for the next tutorial. The benefit of it all is that I learn (again) more and more as well. It is aimed at beginners but I might already up it a notch in the next tutorial. Of course everything will be (as always) easy to understand.

I came across it before but today I had more time to check it out; DLH’s Commodore Archive

DLH's Commodore Archive

If you look at the Amiga part (there is stuff for other Commodore machines) you can find scans of  books, manuals, magazines, newsletters, advertisements and even images of disk magazines that came with magazines. This will keep you busy for some time.

It is about time I do another game review. Currently I have Run the Gauntlet in the planning.

Run the Gauntlet - Title Screen

Another blast from the past and looking forward to play it so I can write about it. I will try to do a some more game reviews in the coming time. All that game playing but it has to be done. I will try to enjoy it. A short column this time due to it being Easter. Back to the drinks and yes a bit Amiga as well.


Time for part 2 in our basics tour. This time we are going to talk about Procedures. Procedures will allow you to create separate blocks of code that perform a specific task. Let’s say you need to perform certain tasks often. Instead of writing the same code (a smart person would copy and paste it of course) every time you could write it once as a Procedure and just call upon that Procedure whenever you need it. Another benefit is that your code will be more easy to maintain and read. Let’s take our example from our first tutorial and turn it in to a Procedure.

Procedure XPRINTING
x=0
While X<11
Inc X
Print X
Wend
Print “We left the loop!”
End Proc

As you can see we only added “Procedure XPRINTING” and “End Proc” to our code. The first line gave our Procedure a name and the second will indicate the end of the Procedure. Just having this in your code will not actually execute it. You need to call the Procedure in order for it to execute. We call it by just mention it’s name:

>XPRINTING

Another way of calling it is:

>Proc XPRINTING

The same rules that apply for the name of a variable apply for the name of a Procedure. Another near thing about Procedures is that you can close them so only the name will show but not all the code inside. Make sure the cursor is on the Procedure line and press the F9 key to fold/unfold it. You can also select the [Procedures] option from the [Editor] menu and trigger the [Open/Close] option.

I hate to do this but now I am going to get a bit technical and even maybe scare you. The variable X (X=0) in our example without being wrapped neatly in a Procedure is different than being wrapped in the Procedure. Outside the Procedure we call X a global Variable and inside the Procedure a local variable. Let’s say you change X inside the Procedure it would not effect Variable X that is outside the Procedure and the other way around. You can of course imagine a scenario in which you would like to use X in a way that if you change it outside the Procedure X inside the Procedure X will also change and the other way around. This is possible but for now I will leave it at this and discuss it in another tutorial.

Let’s use our new Procedure to learn something new. Have a look at the below code.

Our Procedure

Procedure XPRINTING
X=0
While X<11
  Inc X
  Print X
Wend
Print "We left the loop!"
End Proc

Print "Click the left mouse button to execute the Procedure"
Print "Click the right mouse button to exit"

Do
 M=Mouse Click
 If M=1 Then Proc XPRINTING
 If M=2 Then Exit
Loop
Print "We have left our program"

I pressed the left mouse button first to execute our Procedure and after this press the right mouse button to exit our program. The below screenshot will show you how it will look like.

Output!

The newly added code (we know what the two PRINT statements do) is the Do – Loop part. If you understood the While – Wend control structure you will also understand the Do – Loop control structure. The Do – Loop control structure will repair what is inside it’s structure forever. We can leave the Do – Loop control structure by using the “Exit” command which you of course already spotted. It is actually really simple what we are doing in the D0 – Loop control structure. We have it check for a left and right mouse click and for each click it will do something. The left click will execute the Procedure and the right click will exit the Do – Loop control structure.

The “M=Mouse Click” command will check if the left or right mousse button was clicked.

It will store the value in M. There are three values as we can see below.

Bit 1 Single test for left mouse button
Bit 2 Single test for right mouse button
Bit 3 Single test for third mouse button, if available

All we need to do is check the value of M and execute the corresponding action. This is what we do with

 If M=1 Then Proc XPRINTING
 If M=2 Then Exit

If M has the value of 1 which is the left click we will execute our Procedure. If M has the value of 2 which is the right click we will exit our Do-Loop control structure and with it end our program. I hope everything is clear enough to understand it. That’s it for this time and I will see you next time.


Unlike my OS4.x programming tutorials in C I will start with the basics for Amos Professional. This, and further, tutorials are aimed at the absolute beginners. People that really want to start programming but want to start with something easy (cue Amos!) and need a lot of guidance. Once you master Amos you can move on to something else. Why Amos? Is it not a dead language? Absolutely not! I am actually using it to create a new disk magazine for the classic Amiga’s. What makes Amos so great is that it will allow you to learn programming the easy way and get better along the way. No 100 lines of code to open a screen but just one line only in Amos. It takes away the difficult part so you you won’t be scared away and stick around. Are you still with me? Good! Let’s get started….

As a programmer you should put comments in your code to describe what it is doing. You might know what it does when you write the code but several months later you might not. Also if someone else is reading your code they can understand what is going on. Many times I had discovered how to fix something and not provide comments only to discover at a later stage that I had no clue what it was actually doing. There are two ways of providing comments in your code:

Rem This next line of code will make me rich!

‘ This next line of code will make me rich!

As you can see we can use “Rem” in front of our comments or the apostrophe ‘.

Now I am going to show you an example that will address a lot of points in one time. Don’t worry if you looked at it and don’t understand a thing.

x=0
While X<11
Inc X
Print X
Wend
Print “We left the loop!”

Our first example!

The run our example we can press F1 or select “Run” from the “Project” menu in Amos Professional.

What does example does is print the numbers 0 till 10 on the screen and once it has reached 11 it will print “We left the loop!”.

The first line “x=0” will set x to 0. We call X a variable. A variable means that it’s value can change. This will make sense in short moment when we discuss the rest of the example. Just to complete it you need to know that the name of a variable has to begin with a letter and cannot begin with a number. What is also not allowed is that the name starts with letters that make up one of the Amos Professional commands. I will show you….

FRIDAY=1

The above is allowed.

1FRIDAY= 1

The above is not allowed since it starts with a number.

FRIDAYPRINT=1

The above is allowed.

PRINTFRIDAY=1

The above is not allowed since the first part makes up the Amos Professional command “PRINT”.

Next we reach the “While – Wend” part. While – Wend will repeat a group of instructions till a certain condition is true. For example While – Wend will instruct your wife to go shopping till the wallet is empty. In our example While – Wend will print the value of X till X has reached the value 11. The instruction “While X<11” is taking care of this. The part “X<11” means till the value of X is less (<) than 11. The command “Inc X” in our While – Wend statement will increase the value of X each time with one. Remember I said earlier on that the value of a variable can change? In our example the value of our variable X will change. The command “Print X” will print the value of X. Once X has reached the value 11 our program will leave the While – Wend statement and execute our last part in which it will print “We left the loop!”.

So what do you think? Easy to understand? Please let me know if it is not clear or you have questions left. That’s all for now. Next time we will go a bit deeper but still maintain that level of easiness.


With the Amiga 1200 being hooked up to my home network and having had the opportunity to test it (and finding out it works wonderful) it is time to get started on my disk magazine project. Since I am going to use Amos Professional I really need to get back in to the world of Amos programming. I already installed Amos Professional on my Amiga 1200. Now I really regret I did not bring my Amos books and other reading material with me from Thailand last year.

But I still have some reading material here so I should not worry so much. My plan is to have my mother in-law ship the Amos Pro manual and also the Mastering Amiga Amos book to me.  Spending time on Amos really brings back some great memories. There is really something special about Amos. Just reading the Amos The Creator manual or fire up some Amos disk magazines has me all emotional. I really miss those days.

I have also started work on my next OS4.x programming article in case you are wondering if I am still continuing with that. It could still take a bit before it is done but I will really do my best to get it done as soon as possible.  In the next article I will explore the world of IDCMP. One problem I have now since I moved upstairs is that I don’t have any network access on my A1SE. I can’t get the cable upstairs to give it access to my network. And the network is the only way I can transfer files since the USB does not work on my A1SE. The only solution would be to use a repeater with a LAN connection port connected to my wireless router downstairs. I would plug the A1SE in to that LAN port so it has network access.

Elbox 1200 4MB with clock

After installing the disk image device software I suddenly could not run my EasyNet software together with AmiTFP any more. It took a bit of memory which was the killer in this case. So I installed the Elbox 1200 4MB card to give it extra memory. I remember having problems with it before in which my Amiga 1200 would crash and not start any more. After I installed it I had no problems at first but after about 1 1/2 hours it happened. Even after switching it off I could not switch it back on any more. The lights would start flashing. The next day it started again but soon after about 10 minutes it happened again. I have placed another card in it at the moment with 8MB memory. At the time of writing this column it still works but I remember that this card had the same problem. If it fails I will try to remove the disk image device software to see if it frees enough up memory so I can transfer my files again.

It is now early Friday evening and this weekend will be all about programming in Amos. Time to get some work done on the disk magazine. I am really going to set some targets for this weekend. The plan for this weekend is to get some code done on displaying text on the screen. I would be really happy if I get some crude form of displaying text on the screen done so I can look back at a productive weekend. I will write all about in the column of next week. Happy weekend Amigans!


Why? All because of the wireless PCMCIA network card I got from AmigaKit. I have not been able to write anything for my blog due to the fact that I am so busy with it. Currently I am writing about it which I hope to post later today. It was a bit of a journey which you can read all about it later on. It is up and running and boy what a joy. The possibilities it suddenly gives you. Being able to get all those games and write them back to a floppy disk and play them like there is no tomorrow. I really have to force myself to stay away from it at certain times so I can at least write about it and have some sort of normal life.

After reading the article at Old School Game Blog in which he talks about his Amiga 500 having died I got worried and I wanted to try out mine. It has been almost 10 years in which I have not even switched it on once. After taking it out of the box and setting it up I flipped the switch and there was the famous hand “waving” at me as it did for so many years already. Phew! I was really relieved it was still working but also took a moment of silence for the other Amiga 500 that died. Brothers in arms, eh?

Besides the article about the setting up of the wireless card on my A1200 I also have a game review in the pipeline. Actually a lot but I am about to start with one first. I am aiming to have it done this week. Another great thing I am (and really need to) about to do is to get Amos Professional installed so I can work on the disk magazine. Playing games and writing code… just like old times. The geek factor in my house is at a all time high. I really have that “old” feeling back. At moments when I am playing games in my room it feels like I am still in that period of time. What also happened is that I have not fired up my AmigaOne with OS4 for some time but only had the classics on. Well time to write some more and play games.