Posts

Showing posts from 2019

Opening Top and Bottom Borders on the Commodore 64

Image
Opening up the top and bottom border is of course a trick any seasoned C64 demo writer knows. But anyone who started with BASIC before switching to 6510 probably remembers how much fun it was to get that extra space for sprites and even some simple graphics. 
The program below shows how to do this. Set up a raster interrupt right before the bottom border start. Then toggle between 24 and 25 lines of text. This tricks the VIC into forgetting to turn on the border. The opened border can be used to display sprites. By manipulating the last address of the VIC page ($3fff by default), you can even get some interesting graphics. For example, Pasi Ojala posted an article Opening the Borders with some truly amazing effects! 
Of course, opening up the side borders is the next challenge!



; little demo to open up the top/bottom border ; for win2c64 by Aart Bik ; https://www.aartbik.com/ scroly   =   $d011 raster   =   $d012 vicirq   =   $d019 irqmsk   =   $d01a ciaicr   =   $dc0d ci2icr   =   $…

Dronies

Image
What do you do when you suddenly have two functional, flying drones again (a Phantom 2 vision+ and a Mavic Pro)? You fly one, of course, and ask your daughter to fly the other one. Then you take "dronies"!


How Much Land Does a Man Need?

While updating links on my website to content that I also maintain, I had to think of a variant on the title of Tolstoy's brilliant short story: How much Internet Presence does a man need? Donald Knuth writes that he has been a happy man since 1990, when he no longer had an email address. Would the same apply to webpages? I am not ready to find out yet!
https://www.aartbik.com/ https://aartbik.blogspot.com/ https://twitter.com/AartBik https://facebook.com/ajcbik https://www.youtube.com/user/AartBik https://www.linkedin.com/in/aartbik https://amazon.com/author/aartbik https://github.com/aartbik https://play.google.com/store/apps/developer?id=Aart+Bik

50th Anniversary!

Image
Since the Eagle landed on the moon shortly after I entered this world, it seemed only fitting to celebrate both these anniversaries with LEGO's Nasa Apollo 11 Lunar Lander building set. Can't wait to start building this weekend!


The quote on the box is a bit surprising. Everybody knows this should read "That's one small step for [a] man, a giant leap for mankind" (make sure the pronounce the square brackets properly)!


Chess for Android: UCI Engine Options

Image
The UCI engine setup dialog in Chess for Android was developed a long time ago when there were not many chess engines available for Android. As a result, I opted for a simple dialog that featured a few, commonly used UCI engine options only (such as hash table size, number of threads, endgame tablebases). However, the options that I picked almost ten years ago no longer serve the wide variety in options of the many chess engines available for Android.
Therefore, I decided to re-implement the UCI engine setup and do what the UCI protocol specification actually intended: the GUI should parse all options and build a dialog that allows the user to change them. For engines with only a few options, this yields a concise dialog, as illustrated below with BikJump v1.8. For engines with many options, this yields a more elaborate, scrollable dialog, as illustrated below for Leela Chess Zero. In any case, however, the new implementation gives the user full access to all options!
Expect this new…

Karpov 2294

Image
And another blast from the past. The Karpov 2294, the strongest dedicated chess computer that I own. It is rich in features, such as time control, infinite analysis, and many levels. It also features a very elegant magnetic chess piece set.

Autobridge Device

Image
My grandfather handed this autobridge device down to me in the early eighties, a few years before I got my first chess and home computers. Autobridge was invented in the 1930s for self-teaching bridge, both the bidding and the playing. I date mine around 1959, since that year appears in the manual and on all the inlay cards. The device has no date, but a serial number (so perhaps one could find out).
Does anyone else remember these?
I could play for hours with this. Amazing how times have changed....


Chess for Android: version 6.1.1

Image
I am gradually rolling out version 6.1.1 of Chess for Android to Google Play. Besides some internal cleanup and refactoring, the major new features are:
simple FICS client (see details at Connecting Chess for Android with FICS)improved electronic chessboard support (DGT/Certabo/Millennium)rudimentary DGT chess clock support (shows moves) The FICS interface is simple, in line with the design philosophy I have always followed so far.  Despite the simplicity, the client is fully functional, and I have started to enjoy playing online over an actual chessboard myself. Hopefully others will find the combination of an electronic chessboard and online play just as enjoyable!
A big thank you to my testers! Writing a client from scratch was a non-trivial task, and took a long time. Having awesome testers was extremely helpful during the initial development. Any remaining bugs are mine, of course. Please send me the details if you find one.

DGT 3000

Image
This beautiful DGT 3000 chess clock just arrived! I can't wait to start hacking and find out what features I can implement for Chess for Android connected to a DGT chess board and this clock. In particular,  am hopeful that the combination of online chess on FICS with an electronic chess board and clock will provide a very pleasant chess playing experience! 


Image
It took me a bit longer than planned, but I finally finished the alpha version of a FICS (Free Internet Chess Server) interface in Chess for Android. Either play directly on a phone or table, or first connect to an electronic chessboard (DGT, Certabo, and Millennium) to play over an actual chess board with people online.
To connect to FICS, long press the notation window in Chess for Android to open the extended menu. Then select "Connect to FICS" and login as a guest or using your register username and password. The formula string can be used to filter out match requests. For example time >= 5 & inc = 1 only accepts games with at least five minutes start time per player and exactly one second increment per move. The formula syntax is explained in more detail on the FICS help page.
Once connected, your username or temporary guest name is shown at the bottom of the screen. Match requests that pass the filter are shown in a dialog with the player names and game paramet…

Chess for Android: version 6.0

I am rolling out version 6.0 of Chess for Android, through the usual Google Play channel. The new features include:
Two new sets of chess pieces by Maurizio Monge (who very kindly gave explicit permission)Ability to enable/disable saving engine annotations in the PGN fileOpening the draw/resign dialog now requires tapping one king then the otherSimpler permission model for "older" Android versions The last change, adding bluetooth and network permissions, is needed so that pre-api23 versions of Android can also connect with electronic chessboards over bluetooth or with remote chess engines over a network socket (the latter is also needed for an upcoming FICS client I am working now). From api23 onward, users can selectively enable or disable such permissions. Pre-api23, however, it was an "all-or-nothing". Changes like this have unfortunately the danger that some users will uninstall, but in the long run I believe I can better serve the full customer base this way.

Maurizio Monge Chess Art

Image
I received several requests to incorporate some of the beautiful chess art by Maurizio Monge in Chess for Android. Maurizio did a great job creating attractive, yet very playable chess figures. Also, he kindly makes this art available to all, although I received explicit permission from him to use the art in my application. So the next version of Chess for Android will feature the fantastic "fantasy" and very funny "eyes" piece figures.


Checkers for Android: Endgames

Image
Now that Checkers for Android supports a position setup editor, analyzing textbook studies has become a lot simpler. This has increased the significance of the small built-in endgame tablebases of my app as well, as can be seen in the study below. Here, starting from what is known as the "first position" in checkers, Checkers for Android, playing with the black pieces, announces its inevitable loss in 30 moves!


Checkers for Android: Position Setup

Image
I finished a position setup feature for Checkers for Android, similar to what was already in Chess for Android. This feature allows users to copy interesting checker problems from textbooks or other sources and play from there to improve their game. In addition, I added an option to show the square labels to make playing out variants from textbooks a bit easier for players that are less familiar with the numbering scheme.

Since I recently also added a feature to export games as PDN, this implied I also had to implement FEN setup for games that do not start from the initial position. An example is shown below (note the FEN tag, and the empty first ply since it is white's move in the given position).

[Event "Checkers for Android Game"]
[Site "United States"]
[Date "2019.01.19"]
[White "Checkers for Android"]
[Black "Self"]
[Result "*"]
[PlyCount "0"]
[Setup "1"]
[FEN "W:W9,K32:B13,K1"]

1...  *


Checkers for Android: Certabo Support

Image
Although the Certabo electronic boards are mainly intended for chess, the flexibility of the identifying chips makes them suitable for 8x8 checkers as well (draughts, or American checkers, with slightly different rules from e.g. 10x10 international checkers). Therefore, I am planning to add support for Certabo boards in Checkers for Android as well. The 34 identifying chips can be used for the 24 regular pieces and 10 kings for promotion (using special purpose pieces avoids stacking the regular pieces). A 3D printed set can be used for this purpose (a continued hat-tip to my brother-in-law Gerard Harbers for making all the chess and checkers sets for me!).
The general idea is illustrated with this picture. Please let me know if you like this upcoming support!