Retro (?) Computing in Common Lisp: the CL3270 Library
Come the Winter Holidays and, between too much and a lot of food, I do some hacking and maintainance of my libraries.
Some time ago, I wrote a CL library to set up a server accepting and managing "applications" written for a IBM 3270 terminal.
Why did I do this? Because I like to waste time hacking, and because I got a (insane) fascination with mainframe computing. On top of that, on the Mainframe Enthusiasts Discord channel, Matthew R. Wilson posted a recently updated version of my inspiration, the go3270 GO library.
Of course, I had to fall in the rabbit..., ahem, raise to the occasion, and updated the CL3270 library. This required learing a lot about several things, but rendering the GO code in CL is not difficult, once you undestrand how the GO creators applied Greenspun's Tenth Rule of Programming.
Of course there were some quirks that had to be addressed, but the result is pretty nice.
Screenshots
Here are a couple of screenshots.
"Example 3": The Time Ticker
Yes, it works as advertised.
This is how the server is started from **CL** (Lispworks in ehis case).
... and this is how the c3270 connects and interacts with the server.
"Example 4": The Mock Database
This example has many panels which fake a database application. The underlying implementation use "transactions", that is, a form of continuations.
Starting the server...
... and two of the screens.
It has been fun developing the library and keeping up with the talented Matthew R. Wilson.
Download the CL3270 library (the development branch is more up to speed) and give it a spin if you like.
'(cheers)





No comments:
Post a Comment