-
Cursor now can be moved anywhere
12/23/2019 at 16:31 • 0 commentsAdded support for cursor keys so that now I'm able to move the cursor anywhere on the screen
-
New firmware R.2.8.2
12/15/2019 at 16:55 • 0 commentsNew release R2.8.2: fixed a bug caused by changes introduces with previous R2.8.1 that lead to wrong functioning of several BASIC statements (LOCATE, VOLUME, etc..), keyboard input, system tick counter, and other.
Get the latest firmware from here:
-
Interfacing with an external keyboard
12/08/2019 at 17:48 • 0 commentsTyping on a C16 keyboard and getting input on my LM80C… Today I’ve also implemented the SHIFT key, so that now I can input a program directly in a stand-alone configuration without the need of a remote PC anymore. At the moment the SHIFT key is the only special key that is implemented, because I needed to input chars like double quotes, parentheses, and other chars. The next control key to be implemented will be the… CTRL. And then the C= that will be used as an ALT key, to get graphic chars.
-
Lunar Lander
11/13/2019 at 17:10 • 0 commentsAfter a while, I'm come back with another conversion. Today is time for LUNAR LANDER, since this year is the 50th anniversary of the first landing on the moon.
In this game you control the thrust of a LEM module: you'll have to try to safely land of our satellite without finish the fuel and fall like a rock! Enjoy the video:
-
New firmware R2.6
11/02/2019 at 17:06 • 0 commentsNew release for the LM80C firmware, reaching version R2.6.
In this release I've added a new function, INKEY. This returns the ASCII char being pressed by the user. Since the computer is still dependent by the host computer and get inputs through the serial line, I've had to make some tricks to let INKEY works properly due to the fact that the BASIC interpreter is constantly looking at the incoming chars from the serial and works by collecting them into a "input line" that is not as easy as it seems to manage without using the built-in functions. So I changed the firmware by adding a simple flag: when the INKEY function is "sniffing" the serial line for an incoming char, the firmware won't echo it into the serial buffer but store it into a temporary and separated buffer from which the INKEY function will collect it as soon as it is available. The firmware will delete that char after 1/100 sec. so that "fresh" keys will be available for future readings. There is also a timer hat the user can set inside the function so that INKEY will wait for up to 1,023 hundredths of seconds for an incoming char before to return to the main program.
-
Playing Reversi on LM80C
10/27/2019 at 15:48 • 0 commentsA lot of people, when asking why I love retrcomputing and home-brew computers, always ask a simple question: what do you do with it? Simply... play a game with it! In the last days I worked on porting the Reversi (aka Othello) game on my LM80C Color Computer. What an old-school feeling!
Here is a shot video where I demonstrates the start of a game at Reversi:
Of course, the BASIC source is available on my GitHub repository.
-
New firmware R2.5
10/26/2019 at 08:45 • 0 commentsNew firmware upgrade. This new release fixes one bug that affected the video buffer manager and lead to wrong appearance/disappearence of chars when positioning the cursor in different locations with LOCATE. Other changes involve the serial and audio sections: the SIO special condition interrupt won't reset the system anymore; the audio init code has been revised and optimized.
Grab the new R2.5 at my Github repo:
-
New charset
10/13/2019 at 20:23 • 0 commentsI’ve worked on the charset of my LM80C computer and added some new graphic and semi-graphic chars.
I've created a mix of chars getting inspiration by PETSCII and MSX graphic chars, and other 8×8 chars found over the net.
The new charset is include into release R2.4 and higher. -
New firmware R2.3
09/30/2019 at 16:59 • 0 commentsToday I've released a new version of the LM80C firmware marked R2.3.
This release fixes some bugs into the SOUND statement code or, more precisely, into the portion of code that managed the duration of tones' reproduction: if more than one tone had the same duration, the sound manager halted only the reproduction of the first one that it encountered, leaving the others up and playing. Another bug I've fixed concerns the fact that each time I played a tone the volume of the selected channel was set to its maximum value, 15. Now, it is the user that has to check that the volume of the channel whose tone is playing has been already set up.
The new compiled and ready to be flashed firmware is available on my Github repo:
-
New firmware release R2.2
09/20/2019 at 16:29 • 0 commentsAfter a while, I'm back. Today I introduce you the new firmware release R2.2, that fixes a bug I've discoreved into the code of the SCREEN command: when the user changed the graphic mode, the cursor was set on even if in non direct mode (i.e. while running a program).
Another change is the introduction of the new command PAUSE. Its usage is very easy: just specify a delay in 100ths of a second and the system will stop executing everything and wait for the requested interval. Useful to introduce delays in the execution of a program instead of FOR..NEXT loops or to get precise (more or less...) intervals.