At this point we already know a decent amount about programming in C and we can create some useful (although simple) programs. We’ve seen how to display text and numbers on the screen, but we haven’t paid much attention to the presentation yet. We’re going to take care of this in the next few chapters.
There are several statements in MSX BASIC such as CLS and LOCATE to help determine where and how things will be displayed on the screen. The C language doesn’t have functions to do the same thing, but we use control characters and escape sequences to achieve the same thing.
Let’s start.Read more ›
The lights were dimmed during the talk, so I waited until it ended before visiting the stands.Read more ›
You may remember that last May I wrote about the Spanish government using MSX computers in their coordination tests to obtain a driver’s license.
Shortly after publishing that article a user on Facebook wrote to let us know that in some locations (such as his city) these machines are still in operation. However, he was unable to send any photos.
Recently another user from Spain (Valkyr on msx.org) went to renew his driver’s license and found out that the examination center in his city is still using an MSX computer: a Mitsubishi ML-G1. Valkyr was kind enough to take some photos. These were taken on November 6th, 2015:
Who knows how many of these are still in operation!
In the previous post we learnt about the data types in MSX-C and how important it is to use the right one in order to keep our programs free of bugs. However, when bugs happen it’s not always easy to track them down and fix them, so it would be nice to have a tool to help with this. MSX-C’s Type Parameter Checker (FPC.COM) is such a tool. We already saw it back in chapter #14, but we talked mostly about ist command line parameters. Today we’re going to actually see how it works and use it to locate bugs in our programs.Read more ›
In the previous post we learnt how to display numbers in different notations. The output was different for each numeric base (for the convenience of the user of the program), but from the computer’s point of view it didn’t make a difference: all these values were stored and handled internally in exactly the same way.
Today we’re going to look at data types. These have an impact on how numbers (and characters) are stored in the computer’s memory, and how the computer handles the data during arithmetic operations, comparisons and function calls.
What we’re going to see in this post is extremely important for coding error-free programs. Try not to skip it even if it may seem boring (I’ll try and keep things interesting). If anything isn’t clear then ask in the comments below. I’ll be happy to help.
What are data types?
Let’s start with a small experiment. Imagine that we have two numbers written in hexadecimal, 0x9000 and 0x3000. If we print these numbers in decimal we see that 0x9000 is -28672 and 0x3000 is 12288:Read more ›
In previous posts we’ve seenhow to perform operations with numbers, and we also know how to print decimal numbers on the screen.
During the next two posts we’re going to learn what numeric types MSX-C supports, how we (the programmers) can represent numbers in our programs, and how to print numbers in different notations.
Let’s dig in:
Four different notations
Let’s see what they’re useful for:Read more ›
In the previous post we learnt how to create loops in our programs using the statements for, while and do…while. Today we’re seeing the remaining control structures in C: break, goto, continue and switch.
Let’s get to it.
Aborting the execution of a loop: the break statement
The break statement forcefully stops the execution of a loop, regardless of whether its condition passes or not. We use this when for any reason we want to exit from the loop without letting it run any more iterations.
The syntax is very simple, just enter the statement by itself followed by a semicolon:
This is a diagram of break‘s operation:Read more ›
In the last post we finished our look at the conditionals in MSX-C. Today we’re going to learn something much more fun: loops. As you may know already, loops are structures that run the same code again and again a specific number of times, or until a certain condition occurs. Loops are an essential part of every non-trivial program, so it’s very important that we learn what types there are and how to use them.
Let’s get to it.
Loops that repeat a given number of times: the for statement
There are several ways to implement loops in C, but the for statement is probably the most commonly used. It resembles the FOR…NEXT command in MSX-BASIC.
The syntax of a for look in C is like this:
for ( setup ; condition ; update ) statement
When a for loop runs, the first thing that happens is that the code in the setup block runs once (and only once!). After that, if condition is true then the code in the statement block is executed, followed by the code in the update block. Then the loop goes back to condition and does the same thing again and again for as long as condition is true.Read more ›
This is the second part of this post. We continue from the point where the previous part ended: looking at the network applications developed by Konamiman.
FTP.COM: File Transfer Protocol
Yes, an FTP client for MSX! You can now connect to FTP servers on the Internet and download files directly to the MSX, without having to download them to a PC or a Mac first and then copy to the MSX via removable media.
FTP.COM is very easy to use. It accepts the standard commands to interact with FTP. You can also set the environment variables FTP_USER, FTP_PASSWORD and FTP_ACCOUNT and use these as the defaults when connecting to servers.
Typing ‘help’ at the FTP prompt will show all the available commands:Read more ›
Recently I received the MSX Ethernet Cartridge from the Brazilian group Tecnobytes. This batch is already sold out, so for these of you who bought one, here’s a review of the unit and what you can do with it. The cartridge is useless without software, so I’m also explaining the InterNestor Lite TCP/IP stack and its companion suite of network applications, both developed by Néstor Soriano (Konamiman).
The review is long, so it’s split in two posts.
This is a Konami-sized cartridge with a single Ethernet port to the right and a couple of LEDs: the amber one indicates that the cartridge is powered on, and the green one indicates that there’s an Ethernet link established. It flashes during data transmission.
The Ethernet controler is a Realtek RTL8019AS, which means that the maximum speed is 10Mbps in full-duplex. This may not sound very impressive nowadays, but it is more than enough for the MSX, as we will see later. The design is based on Daniel Berdugo’s ObsoNET board.Read more ›