Happy New Year! I'm hoping 2021 gets off to a better start than 2020 did. We'll see what happens.
I needed to take a break from listening to politics; so, while I had off I was mostly playing Minions of Mirth (Single Player). The game is still enjoyable, but it is not the same as playing online.
I updated my blog to allow 2021 as a selection and added Polarhome.com to my Provider's list on my site.
I did decide to do a little bit of housekeeping and found my Micro VAX Mini Primer from college. Polarhome.com offers shell accounts for a small set up fee for various systems including OpenVMS/VAX; so after playing around in the guest account, I decided to set up an account.
The sign up requires you to print a form with your user information, sign it, and mail it in. You are allowed to email a scanned copy of the signed form. The fee for the US was $10.00. The only problem registering was the email that I provided had to be 18 characters or less. I have not been able to access my AOL email in years and was unable to recover it or reuse it, so I signed up for another one.
I contacted support about the email requirement and use of HTTP to sign up. The administrator set up the account and got back to me explaining the email limit was a requirement OpenVMS finger command.
Telnet and ssh access to the host are both available, though the port-mapping is a bit tedious. Fortunately Putty will allow you to save settings. (One of the rare occasions I was happy to be using Windows.)
I had requested support because I couldn't access VIM; nor could I figure how to upload files to the host. I got a reply back the next day explaining permissions were fixed for VIM and explaining what tools were available and the location of the COM file that should set up my environment. I still had a problem with Perl, but was able to copy the file and edit it to bypass the error. I now have VIM, WGET and LYNX in my toolbox. (Though DNS was down.)
It is sad to think I find VIM to be easier to use than the default editor; but it has been around 30 years since I used EDT and I don't have an appropriate keyboard for it. (No Gold or PF1 key.) (I also no longer remember SpeedScript or Word Perfect shortcuts. Use it or lose it.) I dug out my copy of Kapps and Stafford's, "VAX Assembly Language and Architecture", and have verified MACRO, PASCAL, FORTRAN (and CC) are all available. The few examples I've tried in MACRO have assembled correctly. The simple filter programs I wrote in C compiled without issues as well. While not my development environment of choice, the selection of compilers is nice. I'll see how much of the book I can get through.
Just being able to play around with this was well worth the set up fee. I'd definitely recommend Polarhome.com if you are looking for a shell account for educational use based on the support that I have received thus far.
Work has been kind of busy. Outside of work I've been reading a little more and continuing to mess around with computers. I finally went through the computers I have and found one that didn't work and one that appeared to die permanently after running a few hours.
I've been playing around a little with my Power Mac G3 and Mac OS 9. I really haven't gotten the hang of it yet. I had never used a Mac when I was younger; and most of my search results are for OS X. I'm still getting used to opening Applications or Games and launching programs from there.
Opening with assigned applications in some cases and in others by extension is a nuisance. Double clicking a DOC file that was ASCII text and waiting while MS Word for Mac opened, surprised me. I need to get used to manipulating things so drag and drop is useful.
I guess it is simply a matter of what you got used to using. I've played around with Windows 3.1 recently in DosBox and found File Manager (winfile.exe) was kind of limited as well. But aesthetically Windows 3.1 Program Manager (progman.exe) appears similar to Mac OS. I liked the way Windows 3.1 handled icons though. The icon handling in Windows 95 and later was a step back in my opinion when dealing with drag and drop.
Dealing with the Internet Archive for old school shareware is fun too. I've come across ISO and BIN/CUE files. Some of which can be examined on OS X, others can't. OS X doesn't appear to handle Hybird files well. I could usually still burn them from Catalina. I found at least one file that could not be burned from Catalina. I was able to burn it from Windows 7. The disk mounts fine on Mac OS 9. Ironically, Windows didn't appreciate mounting it because of the 16 bit software.
I found a hack online to use dd to burn an image from OS X. Apparently, so did Apple, because it no longer works under Catalina. dd is still around, but sudo no longer provides sufficient permission to write to /dev/disk2.
I'm currently reading Dan Gookin's Guide to Ncurses Programming. I'm thinking of porting some old DOS applications I had written to Unix. I had written a primitive library for dealing with menus and want to see if I can convert it to Ncurses.
I also ended up buying a couple of Commodore C64s. The C128 was permanently modded with JiffyDos. It looks like the ROM chips were replaced and the originals were probably sold. The first C64 I acquired on EBay worked fine; however, the case was destroyed in transit. When I mentioned it to the seller he provided a partial refund. The second one was advertised as is, no SID. The board looked horrible, the Power LED lit, but no display. The case had survived though. I was able to attach the entire keyboard with the case to the other base with the board. So it was a five minute job.
The power supply that came with the first C64 works fine; however, I had to replace at least one power supply when I was a teenager. I seem to recall that they were ridiculously expensive back then too. So, I'm waiting on a replacement power supply now.
I've long since lost all my original C64 floppies, but I still have hard copies of some of the programs I wrote. Maybe I'll check out some of the 6502 cross assemblers. I'd at least like to redo that Magic Square program I wrote in assembler. It is way too slow in Basic.
I've been playing around with VICE and trying a few different compilers that I used back in the day. I couldn't get Super C to compile successfully, I needed to change keyboard layout for Pascal 64. Neither very friendly options.
I found BASIC 64 online. It worked and I was able to optimize by magicsquare program for the C64. The speed is now tolerable.
While the early machines were comparatively easy to understand, they didn't offer the best programming environments. I decided to checkout cc65 which is from this century.
CC65 was easy to install on Windows using the Windows Snapshot, a few minutes skimming the instructions and adding a line to the environment, I was good to go.
I was able to be rather productive using Emacs with VICE and a couple of explorer windows (one for my program, the other to preview headers).
I kept the core of the program similar, but Basic 2.0 didn't have XOR, so I was able to simplify some of the logic. Because speed was no longer a factor, I added a visible counter for moves and added the ability to change the border, text and background colors.
There was already an array declared for COLOR_RAM, one for SCREEN_RAM would have been convenient, but the location can be remapped. It was easy enough to implement. I thought this was easier to read than extensive poke statements. I liked the macros for some of the PETSCII characters and colors too, since I'm a bit lazy on documenting my code.
Rather than display a full menu at start up, I opted to simply ask if you'd like to use the default colors, and then start or go to a menu.
My code is not optimized at all. I had intended to use a structure for the colors, but switched to an array in some of the functions because I thought reading and writing files would be easier. I thought I was having issues with pointers, my problem was a missing break in a switch statement between my load and default colors routines. Sometimes taking a break helps:)
The routines for the color menu are probably more extensive than the game itself. Some of it would be more readable broken down into separate functions. Some of the functions should probably be inline macros because function calls are expensive in both speed and stack space. I've also read that using global variables is faster; however, it is generally not good practice in C, especially in larger programs.
One major problem I had was working with files. There were no standards back in the eighties on 8-bit machines. CC65 is a cross development package for 65(C)02 machines. There were a lot of those machines. I had some trouble with cbm_open which was returning 0 on both success and failure. I'm not sure if this is a CC65 bug or a VICE bug yet.
I'm not convinced there is a safe way to test if a device is present or not on the C64. I added a line in the menu to change devices and another to initialize (hopefully) disks. I initialize device to 8 because that was usually the default floppy disk. If I recall correctly, you could daisy chain up to four disks. So, I added the option to use most devices from 1 to 11. I skipped the keyboard(0) and screen(3). I'd forgotten if other devices 2 to 7 could be repurposed for use as a drive. While I've no plans to test it, you should be able to save/load the colors to/from cassette(1).
I'll still need to test on an actual C64 and try my C128.
I wasn't feeling particularly ambitious over the weekend. I just got some light housekeeping done and played a little more Minions of Mirth.
I added an Experience section to minion-notes.html which I have some ideas to flush out. I included information on Advancements and Zones. The forums used to have a thread on classes and XP. I know level difference is a factor as well. Modded mobs and named mobs are worth more XP too. A lot of information was lost when the forums went down.
I've been in a bit of a retro mood and started playing around the PowerPC G4 I bought. Plenty of software is available as freeware, shareware or abandon-ware.
One thing I find irritating with the retro computing is the video. For my C64 I hooked it up to a VCR so I could use the coaxial out to force the TV to use letterbox(?) format.
I tried the same trick for a DVD recorded from a VHS tape made from old home movies to find that I only have one television that still accepts analog.
I caved and bought a monitor since the Mac's video card only supports 4:3 and 5:4 aspect ratios. I can let the Mac scale wallpapers, but software doesn't render correctly on a monitor with an 8:5 aspect ratio.
I have been using the Windows machine more, but got tired of the nag screens for MS Office 365. Outlook ticked me off this week, so I moved completely to Thunderbird.
I have a spreadsheet that I update daily. (Yes, it should be a database, but I never quite got database programming.) LibreOffice takes a year and a day to render a five tab spreadsheet. Quattro Pro from Corel WordPerfect Suite 8 renders the spreadsheet in about a second. Unfortunately it looks like I need to use Excel 97 format for the spreadsheets. I'll keep LibreOffice around in case I need it for compatibility with something recent.
It is nuts that a program from 1997 easily out performs a current office suite. Load time is nearly instantaneous. QPW uses about 4.5M in contrast to LibreOffice using about 164.5M. Unfortunately, MS didn't feel it was necessary to continue to support HLP files. Fortunately, my spreadsheets are comparatively simple. I only had one formula that didn't convert properly. It was finding an average if there was data and was easily rewritten to find the average if the sum was not zero.
I checked earlier this week to see if the union posted any guidance about the order for civil service to be vaccinated and didn't see anything.
I tried calling the doctor's office and the receptionist told me the doctor is recommending everyone get vaccinated after dealing with the virus himself (apparently sight unseen.) It is time to find a new doctor.
I finally caved in and got the shot yesterday. I had some mild naseau which might have been attributable to my eating when annoyed, and a mild fever today.
I would have liked to have seen more testing completed; however, I'm not interested in risking my job over this particular issue. It is more convenient to submit to a single shot in the arm, than to submit to testing several times a week. (It should be noted that convenient is not synonymous with prudent and wise. I would have liked an actual consult with someone familiar with my medical history. While I resent being coerced, they could have left us with required masks - I had a choice - it just sucked.)
I was extremely annoyed by the pharmacies that indicated you could not choose the vaccine you received. They could have at least framed it as subject to availability you may not be able to receive vaccine XYZ. I saw this at both CVS and RiteAid locally.
My local Giant Pharmacy actually still had a choice, so, I opted for the Johnson & Johnson vaccine. The pharmacist was forthcoming and indicated supply had been impacted by the brief pause to distribution. I may consider switching my business to them after this.
My temperature is still a half point higher than normal for me, but the fever is gone. My arm is still a little sore, but fifty fifty I'll live.
I'm still migrating away from OS X. While I should migrate to a Linux or BSD virtual machine for building my website and maintaining my blog, I will attempt to use MinGW32 for now. While PowerShell may be capable it is a little verbose for my taste and I'm perfectly happly with GNU or BSD utilities. Unfortunately, I didn't find WSL very good when working with remote hosts. So far, it looks like MinGW32 is just missing aspell - but I'll have to do more digging into my Makefile to see if other required commands are missing.
I spent a little bit of time updating my site.
Since MoM Reborn has been growing, I moved R.I.P. Minions of Mirth off of my Nav Pane and added a historical link on my main page for Minions of Mirth: Minions.html.
In "Research" I found that the link for currency converters was bad and removed it.
Under "Providers" I changed the link for Verizon to point to their main page. I removed the link to Apple since I only use the Mac for Delicious Library and Apple iTunes now.
I still still use the Linux machine for testing and checking things out but I'm usually running on the Dell with Windows 10. I'm not a big fan of Windows 10, but I still spend more free time gaming and watching YouTube than programming. I do almost all writing in Emacs, graphic editing in Gimp, and my site is updated using GNU Make.
I've more interest in learning AppleScript for my Mac G4 running OS 9 than in learning PowerShell. I have no real interest in rewriting the Makefile for my site and I appreciate having Bash around, so I installed MinGW-w64. I have used Cygwin in the past and might check that out.
Overall the switch wasn't a big deal. I just needed to add a decent GNU toolchain. If commercial games had decent support, I'd switch to FreeBSD over Windows, OS X or Linux though. I'm not of fan of "improving" things.
I ran into a problem with uploading to my site with MingW32, so I upgraded to MingW64. It was fairly painless. One day I'll stop being lazy and put it on a Linux or BSD machine.
If a listener nods his head when you're explaining your program, wake him up.
This blog has been viewed 962 times.Wednesday, 20 October 2021 Michael J. Chappell Contact me at: firstname.lastname@example.org