Fauxdacious Version 3.83-beta3 for Linux Released

Fauxdacious Version 3.83-beta3 Released for Linux: 

* FIXED bug that occasionally hangs Fauxdacious on startup when loading up with a wild-card list of files (usually .wav files), ie:  fauxdacious ~/Music/*.wav (Fauxdacious commit #8e3ba79).  This was due to a mutex deadlock in our song-specific equalizer-preset feature code.

* I gave up and made SDL v2 a REQUIREMENT now for Fauxdacious itself (The new DVD plugin already requires SDL2).  This is due to the fact that the nasty old issue of gtk-window vs SDL segfault kerfuffle resurfaced again (see plugin commit #5c09006 for a brief history of this issue), so now we will properly initialize SDL in main() since SDL seems to want to pretend like it has the “main()” function and must be initialized very early (now in main()) in order to play nicely with gtk windows created later (Fauxdacious commit #cec5946).  TODO:  Add this to the configure script!

* ADDED cover-art via the user_tag_file option for both DVDs and Audio CDs.  User must manually obtain cover art images and store the image files, rename them to the same name matching the respective CD or DVD title (shown in the playlist) and place them either in the [dvd|CDDA].cover_art_path (config file option) or the default: ~/.config/audacious[_instancename]/ directory (if not specified) – (plugin commits #5b0f6d7 and #cce218a).  The manual requirement is currently due to my inability to find free urls for reliably locating cover art programatically by searching with the information at Fauxdacious’s disposal (the CD/DVD “Title” string and disk IDs).  If I or someone else can find and provide URLS for such libraries and scrape logic (ok if separate ones for Audio-CDs and/or DVDs), I’ll be happy to test and include in a future release!

* MERGED (mostly) our stdin streaming feature with that of Audacious.  Our implementation of this feature predates Audacious’s and required specifying the file extension (as “stdin://-.mp3” for mp3) but theirs does not (“-“).  Since they now support stdin piping, including seekability via buffering during probing, I’ve now REMOVED my (now ancient) “hacks” to the sndfile, vorbis, and gio plugins previously needed to support stdin streaming without seeking, and remerged their latest versions of these plugins (less maintenance for me – yay)!  I’m leaving it in ffaudio for now though as it handles so many different formats (commit #8524685, and plugin commits # 7b0be4f, 9d4cfa3, 240e090 and 2ba6b75).

With Fauxdacious, one can still include the extension (the old Fauxdacious way) and save the overhead of probing all the plugins, however, the extension is still REQUIRED for non-“Input” plugins such as cue-sheets (“-.cue”) and playlist files (“-.pls”, etc.), as these do not “probe” to determine what’s being piped in!  Believe me, I spent a day trying to get the Fauxdacious core to “probe” playlists and cue-sheets piped in via stdin, but the underlying Audacious architecture simply doesn’t permit it as written.

Also removed the added Fauxdacious requirement of specifying “stdin://-” (instead of just “-“), though the old way is still acceptable.  NOTE:  This did result in one minor regression:  when piping a simple line-separated list of items to play (ie. “ls *.mp3 | fauxdacious -“), one must now specify either “-.txt”, “-.ls” or “-.m3u” (doesn’t matter which) instead of just “-” as I’ve removed the old code in main() that specifically handled this and now use the standard m3u playlist plugin for this.

* Instance numbers (single digits) can now be combined with single-letter command-line options, ie. “fauxdacious -Dc2”, and instance# 0 is now a synanymn for the default instance (name: audacious) (commit #712b923).

* Merge in all Fauxdacious commits through 712b923 and plugin commits through b4882eb.

* Merge in Audacious commits:  20ecbff, 9303781, baabb80, 79dcc0f, e859ae3, 11b4856 (plugin commit a7ba191 has long been part of Fauxdacious).

Fauxdacious Version 3.82-final Released

Fauxdacious Version 3.82-final Released for Linux and Windows: 

* Fully updated the Fauxdacious Github site and will now keep changes updated there as commits.

* Added the ability to capture the thumbnail images (“cover art”) associated with youtube video streams. This also involved changing the youtubedl_metadatahelper.pl script.  It now uses youtube-dl to fetch and download the thumbnail file when the other tag metadata is fetched.  By default, it stores them in the /tmp directory, but you can change this in the aforementioned perl script.

* GTK equalizer:  Added the [Auto] checkbox, (and relabeled the [Reset to Zero] button to [Flat] to make room for it), and added a two-state indicator icon to the [Preset] button to indicate whether a song-specific preset file is currently in use (so the GTK equalizer now works the same way the Winamp Skins equalizer).

* Fixed playlist column headers in the QT interface to work like the GTK version, labeling all unlabeled column headers using the same abbreviations we used in GTK.  Also on the QT side, there’s an optional “Now Playing” column (header was blank, but is now labeled “On”) which was useless (always blank), but now shows an asterisk next to the currently playing song (The GTK side does not offer this column, but the currently playing song is displayed in bold type).

* Tweaked instance name / dbus handling by adding instance names to the window titles (as Audacious does with their instance numbers) and also making numbers valid as instance names allowing one to specify the commandline option “-#” (ie. -1, -2, etc. in lieu of “–new=1, etc.) for compatability with Audacious.  The config directories work the same as Fauxdacious instance names with underscores, ie. ~/.config/audacious_1 (~/.config/audacious_instancename) instead of ~/.config/audacious-1, etc. though.  TODO:  Quitting the QT interface exits with a bunch of “dbus errors” (warnings) (even before these changes) that I haven’t been able to explain, though everything still shuts down normally.

* More leaks, more tweaks to ffaudio-core.cc (video playing) and others.  So far this seems to have pretty much eliminated memory-usage growth creep when using SDL1 and further reduced it for SDL2.  Audio-only in both appears to be leak-free.  I have not yet been able to completely isolate the source of the slight growth in SDL2 (over repeated play of a video) though.  Also added new config option:  [ffaudio].video_render_scale.  Default is 1, but valid values are 0, 1, or 2.  Sets the SDL_HINT_VIDEO_RENDER_SCALE_QUALITY hint value.  I think I also have the “black video screen on replay” issue on the Windows version fixed.  TODO:  The only remaining issue is that the video window still doesn’t always close when exiting Fauxdacious with the video window playing (on Windows version only – this was never an issue except on Windows).

* Merged in Audacious pull request #45:  “Add SOCKS proxy support.” as written.

* Merged ALL Audacious commits since 2119d19 through b216d4e; and (since then) 0ee73f2, d1463c1, 8700688, 217a39f, 4da2cb8, 236ee1d, d6e115e, and f47bede; and plugin commits since ab45ec5 through 585518c (everything through 2/13), including their resolution of the issue with plugin pull# eaf7949; and (since then) 5e9fc66, f4c9b02, 5b50d20, and 400825a.

Donald J. Trump: The Beginning of a New and Exciting Era

Donald J. Trump, 45th President of the United States#biblicalsatire:  “Many shall be purified, and made white, and tried; but the wicked shall do wickedly:  and none of the wicked shall understand; but the wise shall understand.  And from the time that the Obamanation that maketh desolate be set up, there shall be two thousand nine hundred and twenty-two days.  Blessed is he that waiteth and cometh to the two thousand nine hundred and ninety six days!” – taken from Daniel 12:10-12.  We have waited and have now come to the 2996th day!!!!!

It’s a great and blessed day indeed today!  It’s “Morning in America” again!  I’m psyched!  It’s been eight looooong years watching my great country silenced (through “political correctness”), mocked, sanctimoniously lectured, apologized for, weakened (economically, socially, and militarily), debased and ruled by people who seem opposed to nearly everything it was founded upon.  I never thought this election would turn out the way it has.  This goes back further than just the last eight years, but all the way back to President Bush I.  Not since President Ronald Reagan, have I and so many had such hope for the future!  I admit that I didn’t have much faith in Donald Trump as the GOP nominee based on his past stated positions and his bravado combined with his lack of experience in dealing with politics and the media, but everything I’m hearing out of him right now I’m loving.  I’m also sort of liking his bravado and the fact that we finally have someone in leadership with a backbone willing to call it as he sees it and call pigs with lipstick “pigs with lipstick!”  The only thing so far that I see differently from what he has proposed is the threat to impose high tariffs and cutting deals / favors with individual companies (crony capitolism).  I’m convinced that if he is simply able to rid the law books of most of the massive taxes, regulations, and paperwork that has been imposed on American businesses in the last thirty years, he’ll be ninety percent of the way toward making America prosperous again.  Tariffs should be imposed as a last resort against individual countries that subsidize their exports as loss-leaders undercutting market values.  They should NOT be used to “protect (union) workers” and bloated, inefficient local companies, thus driving up the cost of goods and services to all Americans!  Some accuse me of being a blind Trump supporter, but that is not true.  I’m simply hopefully and cautiously optimistic!  There are some things that concern me about this election.  The main thing is a fear that the globalists have simply ALLOWED this to happen, allowing “conservatives” to finally have a brief day in the sun in order to pull off a final economic collapse and then being able to pin the blame on the conservative, patriot and liberty movements.  The article “Trump is exactly where the elites want him” by “Personal Liberty” explains the plausibility of this possibility in detail, and is an excellent read.  One thing I noticed shortly before the election was how the media seemed to sort of indirectly turn on Hillary and discussing her “emails” and thinking “WHY are they suddenly running with this?  Do they want to damage her at the last minute?!”  But for the moment, I’m going to suppress the jaded realist in me and just enjoy the moment and walk with a bit of a spring in my step for it appears we have the best opportunity for real “hope and change” since 1981!  God bless, stay strong and, by all means, stay vigilant!

Final medals for 2016 Rio Olympiad

I watch very little television these days.  Besides having better things to do with my life, there are several reasons, among which are the fact that the prime-time sitcoms and shows have become so inane, raunchy and uninteresting.  Another reason is that there’s very little left worth watching on free TV.  Nearly all the sports, save the NFL, have moved to Pay TV, which I refuse to pay for and set up.  I just have a very hard time paying for something I used to get free, particularly when Pay TV is just as larded up with commercials as free TV (When I was younger and cable (only) channels first came out they were commercial-free!)  Also, when was the last time you saw a good movie or miniseries made for TV?  I believe TV has indeed become a “vast wasteland.” There is one time though that I do take in some serious TV watching, and that is the Olympics!  I know many of you youngsters won’t grasp this, but for me, it’s always been like binge-watching the classic “ABC’s Wide World of Sports” (ABC’s WWOS crew USED to cover the Olympics and always did an excellent job).  NBC’s Rio coverage did take a lot of criticism, but in my opinion, they did a pretty good job of covering it.  They covered all the main sports I was interested in and had the right mixture of “puff pieces” interspersed with actual event coverage, interviews and stories with key athletes.  My favorite things to watch are track and field, swimming, beach volleyball and women’s gymnastics, which were all covered very well.  Of course, I would like to see a little Badminton, but I understand why they wouldn’t bother with that, however, it’d been nice to have seen a little more soccer and basketball in place of some of the volleyball and water polo.  My only other complaint is the fact that they spent half their time playing the same half-dozen sappy, cheesy commercials ad nauseam.  Olympic commercials should be like super-bowl commercials, considering what advertisers have to pay for Olympic airtime, especially if they’re going to run over and over again!  Despite this, I can understand that NBC didn’t have much choice considering the billion$ they had to pay for the rights to broadcast the games, so I can’t really fault NBC for the mass-commercialization necessary to do the broadcast.  Unlike past olympiads, I forwent awarding medals for commercials, since none of them were particularly interesting, with honorable mention to AT&T for the lone exception of the internet service commercial with the frustrated guy who’s internet service is down desparately firing a flair gun out the window while yelling to the sky “WE’RE OVER HERE, INTERNET!”  So, overall I give NBC a silver medal for their quality and professional Olympic coverage, especially for us old farts with slow, crappy U.S. internet services for whom trying to stream things from the internet is just not nearly as good as watching on the ol’ big screen high-def. TV!

I thought Rio and Brazil did a bronze medal job of hosting the games, especially for a second/third world country in rather dire economic straits (except for the inability to timely provide a clean diving well).  I thought the games went very smoothly except for the requisite “ugly Americans” episode at a local Rio gas station.  There were very few controversies involving the competitions, officiating, and judging (except for boxing), which I felt were professional and well done.  One thing I would consider changing would be the false start rules in track.  I understand the reason for DQ-ing a false starter is to prevent repeated false starts which can result for pulled muscle injuries for athletes, but I think that an immediate DQ after four years of full-time hard work is just a little harsh.  My proposal would be to assess something like a one meter penalty in the runner’s starting position, maybe, or adding a time penalty based on a percentage of the world-record time for the particular event.  This would also work in swimming and would strongly discourage false starting, but still allow an athlete to participate.  It should also more than compensate for any possible advantage the athlete would have gained from the false start while still preventing the need to do repeat starts and completely crush an athlete’s dream for what often is just an inadvertent flinch.

Pierre de Coubertin MedalNikki Hamblin (New Zealand) encourages Abbey D’Agostino
“Nikki Hamblin (New Zealand) encourages Abbey D’Agostino”
Photo (2016) by -unknown-
I really felt for American 5k runner Abbey D’Agostino and New Zealand’s Nikki Hamblin who tripped over each other in a qualifying heat.  I was planning to award them the Pierre de Coubertin medal myself, but the IOC did the right and awesome thing beating me to it!  They also qualified both through to the final, but D’Agostino was unable to compete in the final due to the torn ACL injury she sustained in the collision.  Read more!

I felt really bad for, but also angry with the US. 4×100 sprint relay team.  This is like the third or fourth Olympics in a row they have failed to turn in a valid time in this race!  We used to OWN this event!  WHY can’t they practice teamwork in handing off the baton a little more during four years of training?  On the other hand, I thought the DQ this time was simply a little ticky-tack.  I know that “inconclusive replays” generally can not overturn “the call on the field”, but when the call involves the question of whether or not a rule was violated (as opposed to whether a score or other athletic goal was achieved), the rule of “innocent until proven guilty” should prevail and (as in this case), since the replay was inconclusive that the hand-off actually took place “outside the zone” the call should’ve been overturned and the hand-off allowed as legal.  To be DQ’d, the replay should’ve had to shown conclusively that it was illegal, especially since it could’ve had zero impact on the race time or upon any other team. 

I was very impressed with the US team’s improved performance in distance running (being a miler and distance runner myself back in the day)!  To see Matthew Centromites win Gold in the Mile (1500m) was really sweet with a time of 3′:50.0″, and then to also see Ashton Eaton become the “worlds greatest athlete” by running away with the gold in the Decathlon!  Then Evan Joger and Paul Chelino took silver in the steeple chase and 5k respectively and Galen Rupp grabbed the bronze in the Marathon finally overcoming the long history of Kenyan dominance in distance running.  In addition we dominated the relays (the men’s 4×100 excepted) by piling up even more gold.  US women dominated the sprints and also won field events and the triathlon too!

Overall, it was an outstanding Olympics for the U.S. AND Texas too!  The U.S. swept the “Medaling Events” taking gold in both “Gold Medaling” and “Overall Medaling” with 46 gold, 37 silver, 38 bronze, 121 total medals.  In “Overall Medaling”, China took silver with 26 gold, 18, silver, 26 bronze, 70 total, and Great Britain took bronze with 27 gold, 23 silver, 17 bronze, 67 total.  In “Gold Medaling”, Great Britain took silver with 27 and our “Republic of Texas” – YES! – Texas, our TEXAS tied with China, the most populous nation on Earth for bronze with 26 gold medals!  The home team of Brazil fared well for their size with 7 gold, 6 silver, and 6 bronze for nineteen medals, including the coveted men’s soccer and both team and beach volleyball medals.  It was also cool to see the tiny country of Fiji win gold in 7-man Rugby too!  Overall 54 countries had at least one gold medal athlete or team to celebrate and 78 had athletes or teams bring home at least one Olympic medal!  America’s Matt Kuchar took bronze in Olympic Golf.  It was sad to see Jordan Spieth awol fearing Zika though.  I bet he wishes now that he’d shown up and played! 

Mutley with Medals
(©) Hanna Barbera
And now the event y’all been waiting for, per tradition, it’s time for me to award the final three Olympic medals for this Olympiad to several very distinguished and deserving athletes:

Oksana Chuchovitina, 2016 Olympic Vault
by (© 2016) FIG Channel via marca
1) The “Iron Medal” (for sheer grit, determination, exceptional effort, overcoming long odds, good bull, etc.) goes to Forty-one-year-old Uzbekistan gymnast Oksana Chusovitina! She made history by qualifying for her SEVENTH Olympics in gymnastics, as the oldest qualifying female gymnist. She also attempted the “Produnova”, which many have deemed the “Vault of Death” due to it’s risk and difficulty. She clinched the medal by landing it in perfect tumbling fashon unscathed!

Shaunae Miller Dives for Olympic Gold
Photo by (© 2016) Adrian Davis, Getty Images
Honorable mentions go to Mike Phelps for being able to continue to own the Olympic Swimming Podium for 5 olympiads spanning over 16 years winning 5 golds and 2 silvers at the ripe old age (for a swimmer) of 31 (28, 23 gold lifetime) and now having more medals than Mutley; and Shaunae Miller (Bahammas, women’s 400m) literally diving for gold to edge out favored Allyson Felix (US) at the line sacraficing the skin on her hands, elboes and knees showing literally “true grit” on the track!

Wooden Medal
by (©) Clara & Macy
DQ (Dairy Queen) Grill and Chill
“DQ (Dairy Queen) Grill and Chill”
Photo by (©) Bryanna LeBron,
Confessions Of A DQ Employee
2) The “Wooden Medal” (for underwhelming underperformance, bad luck, lack of preparation, embarassment, bad bull, bad juju, and otherwise snatching defeat from the jaws of victory, etc.) goes equally to Ryan Lockne, Jack Conger and Jimmy Feigen (US Swimming) and to the US 4×100 sprint relay team of Justin Gatlin, Rodgers, Tyson Gay and anchor Trayvon Bromell. The swimmers for lying and making general arses of themselves, in their OOP (out of pool) antics. The relay team gets it for ongoing total lack of preparation in baton-passing, since this is the 3rd Olympics they have foobarred. I caught up with them at a nearby DQ chilling out while wolfing down “Blizzards” (ice cream) and “Hungerbusters” (burgers), to award them their well-earned medals! They said that that had become a post-meet tradition for them.

Hope Solo and Chewbacca
“Hope Solo and Chewbacca”
by (© 2016) me; from:
Hope Solo photo by (© 2016) AP Photo/Eugenio Savio
Chewbacca photo by (© 2010) Christian Liendo
3) The “Plastic Medal” (for sore losers, and other unsportsmanlike and embarassing behavior): Co-winners: Hope Solo (US Soccer) for calling the Lady Swedes “Cowards” b/c they found a strategy for beating her team and Islam El Shehaby (Egyptian Judoka wrestler) for refusing to shake his Isralite opponant’s hand after losing a match to him. A big hairy dude going by the name of “Chewbacca” agreed to present Hope Solo with her medal while Iran’s President Hassan Rouhani gladly stepped forward to present El Shehaby with his honors! The two shook hands afterwards in a show of unity, good will and (Muslim) brotherhood.

Congratulations to these fine Olympic athletes for accomplishing what few athletes ever do:  winning an Olympic medal!  H. Solo and Chewbacca were kind enough to pose for me after the ceremony! Chewbacca insisted on posing, but Solo tried at the last moment to block my shot with her free hand, but was too late!

TBT – My Favorite ’80s Software (WinDOS and PC-Write)

MS-DOS Executive Main Screen
MicroSoft Windows “MS-DOS Executive” main window (courtesy Wikipedia)
Today, I decided to take a walk down memory lane and dust off one of my oldest and favorite programs that I wrote back in the late ’80s:  “WinDOS(tm)”.  This was my first semi-graphical application and my first “file-manager”.  This was during the heady days of MS-DOS.  Children, if you don’t know what MS-DOS was, ask your folks!  At that time, Windows was new and at version 3.  There was no internet, very little graphical software for personal computers (Windows was coming onto the scene to change all of that forever though)!  My computers at the time (at home and at work) were still running “MS-DOS 5” and few had Windows, which (as Windows always does) required purchacing new, beefier (and pricier) hardware.  There were one or two computers at work that had Windows and so I got to play around a bit with it, but the interface was clunky and different and I was still USED to working in DOS which involved working a lot from the command line (what was known then as the “C> Prompt”)!  Meanwhile, Windows had this interesting little “app” called “MS-DOS Executive“, which was their early attempt at what we would now call a “file manager”.  I liked the new “mouse-based” interface that Windows offered.  In my daily workflow I found myself as a software developer often repeating a handful of commands with different files, ie. “Copy, Edit, Compile, Link, and Execute”, etc.  I looked at MS-DOS Executive to make this simpler, but alas, it didn’t really seem to work at all the way I was used to in DOS and besides, it was only for Windows, and I couldn’t afford Windows anyway, nor had it at work.
WinDOS Main Screen
WinDOS “WinDOS Executive” main screen
I wanted something similar for MS-DOS, something that would allow me to select a command (or “.BAT” script), select a file (or more than one file for commands like COPY) with a mouse, and click and run.  I also wanted to be able to do the same with the keyboard when my hand wasn’t on the mouse, and be able to click once on a list of the last dozen or so commands I had just executed to repeat them (or make a slight edit to one and run it again).  There was a cool program called “Norton Commander” (now the free “Midnight Commander” for Windows and Linux) which provided this capability, but it (like nearly all software applications and utilities at the time) cost money!  I was already writing some programs at home using the “Modula II” language and the $89 Logitech Modula II compiler (Yes, boys and girls, Logitech USED to make software back in the day, not just mice and keyboards!) for personal computers and MS-DOS!  So (being me) I decided to write my own program for MS-DOS and call it “WinDOS” (a combination of Windows and DOS, sort of a “poor man’s version of MS-Windows”).  I even patterned the main screen to look something like Windows’ “MS-DOS Executive” window but instead captioned “WinDOS Executive” and including the date and time and a “C> Prompt” for quick-typing and editing DOS commands (when my hand was on the keyboard).  WinDOS permitted me to greatly automate my workflow using a mouse to launch commands and programs while still providing enhanced keyboard-editing and entry of DOS commands!  MS-DOS Executive provided customized “.PIF” files as an early version of file/mime type associations and I quickly found myself needing something similar so I created text-based “.CIF” files (Command Information Files) to handle that in WinDOS, for example COPY.CIF configured WinDOS to prompt for TWO arguments for the COPY command.  I also created a “GUI” for creating and editing “CIF” files and an “installer” program and made it available as share-ware (open-source) and installable from a single floppy-drive!  One interesting programming feature was that I wrote WinDOS with an executable and a looping batch script to invoke it so that when the user executed a command, the WinDOS executable would exit freeing up nearly all of the 640K of system memory to run the program, then restart the WinDOS executable after the command finished.  This freed a lot of memory without noticably sacrificing speed.  My effort was not in vain as WinDOS quickly became one of my most-used programs for several years (along with the shareware / open-source editor “PC-Write(tm)”, which I also ended up purchasing the paid version because I loved and used it so much) until I finally moved my world to Linux in the mid ’90s (I pretty much skipped Windows all together)!  Heck, I even had several coworkers using WinDOS on their machines too!
Now that I’ve been on Linux for nearly twenty years now, I’ve long since developed my own file-manager (since I couldn’t find one that I liked) that incorporates the same basic principles as WinDOS, but also all the modern features one would want in a file-manager.  This is “JFM4“.  You can get it and see a screenshot on my download site.

Spiral-bound PC-Write(tm) Users’ Manual
PC-Write(tm)“, by Quicksoft (Bob Wallace and his wife Megan Dana) was my other fav. app. in my MS-DOS years as it provided a very nice and customizable full-screen (and full-color) text editor that was great for editing program source-files and writing letters, etc.  It was both a good code-editor and (for the time) a full-featured auto and manual-formatting word-processor, and it was free and shareware, and fit on a single floppy disk, so I could carry it anywhere with me!  I liked and used it so much, I ponied up the $69 (I believe) for the “fully-registered” (paid) version for which Quicksoft sent me a fully spiral-bound 426 page plus index manual (fully written and illustrated in PC-Write itself by Bob’s wife Megan Dana, seen on the cover), a free one-year subscription to their (paper) newsletter “Quicknotes”) and two free update coupons!

I got more than my money’s worth out of this program too using it for all my code development and word-processing needs for nearly ten years until I switched from DOS to Linux.  I wrote a full customization file (text file) with the colors and keyboard sequences all set the way I wanted to facilitate my work in the ways most natural to me.  After moving to Linux, I ended up writing my own full-color text editor named “E Editor” taking many ideas from this one and adding language-specific syntax-colorizaton, code-evaluation, and quick-compile that I still use today and you can get it (and JFM4) here from my download site for Windows and Linux.  “E” is not a full-blown word-processor though (I use LibreOffice for that).

PC-Write(tm) Intro screen
PC-Write(tm) Intro screen
PC-Write(tm) Editer screen
PC-Write(tm) Editer screen (editing an ancient FORTRAN program)
%d bloggers like this: