On my third try for Ginger Ale (it seems my recipe is more Ale than Beer) I made some more changes.
I doubled the ginger
I used a citrus juicer
I used champagne yeast
This resulted in a much more carbonated beverage. It really shared some taste characteristics with champagne. I still think the lemon overpowers the ginger. The sugar is about perfect at ¾ cup, but it still precipitates out more than I would like.
Next attempt will be a radical departure. Simple syrup, extracting ginger with heat, a touch of clove or anise all will be tried.
I’ve been experimenting with some programming in Applesoft Basic for the past 6+ months. I have bounced between my Apple //c+ with a Guimauve 2ooo VGA adapter. This has been a great way to use the Apple when I’m near a monitor or need to use a projector.
But when I’m on my laptop, I use AppleWin, an Apple 2 emulator for Windows. It is pretty full featured and does a very good job. Unfortunately it does have a small drawback.
My laptop’s native resolution is 1920 X 1080. This makes the default AppleWin window size of 622 x 427 very small and hard to read, especially as my eyes get worse every year.
I decided to dig into the source code, and see how easy it would be do double the size of the virtual window. After a few days of relearning C and rediscovering Windows GUI programming, I was able to produce a binary that does just that. The viewport is now 1120 x 768, up from 560 x 384.
I took a few shortcuts, so there are a couple of caveats to mention.
There is no choice whether to double or not, it just doubles
I did not convert all the magic numbers in the code to variables or constants
I removed the optimized progressive refresh, and replaced with a full emulated screen one (already in the code but disabled due to some glimmering)
I cheated and make a helper function that translates the BilBltGDI calls into a StretchBlt call.
I plan on continuing my work on this and creating a proper patch to submit to the project. I would like to make the double size selectable from config screen, remove all the magic numbers and investigate reimplementing the progressive update logic.
Enough of the technical details, if you want to test this out, the zip below contains:
ApplewinDouble.exe which you can place in your Applewin directory and run with the same config
ApplewinDoubleSize.patch which is a source code patch to the AppleWin source code
Before the download, just a quick video sample of the results.
Download (Code & binary released under the GPL 2.0 to comply with AppleWin license)
AT&T accidentally cancelled my 1500 text message plan when I got the new iPhone. The per message charges were very high and that got me thinking about what the cost per Gigabyte on that data is. I created a quick widget in Wolfram Alpha so you can see the craziness. The widget calculates cost for send and received combined at each rate.
Today I decided to come clean about something, I still love Applesoft Basic.
In Kansas City, MS there is a yearly meeting of Apple 2 enthusiasts, called KansasFest. In 2004, I had the privilege of attending, but life has conspired against me since. This year I was really hoping to go and finally do a presentation, but the air flight costs and my 2 week hike in September pushed the opportunity away again. After presenting a short 6 minute lightning talk at Coworking Rochester in May, I contacted the organizers of KFest about possible doing a remote presentation.
Well, today during lunch, I did my presentation. It was titled “Optimizing Algorithms in Applesoft Basic”. This expanded on my previous work and added in some metrics and benchmarks.
This started when with my friend Alan, we started experimenting with an algorithm entitled: Circle pattern by John Connett
The implementation we worked with was the pseudo-code:
input corna, cornb
for i <- 1 to 100
for j <- 1 to 100
x <- corna + i * side/100
y <- cornb + i * side/100
c <- int(x^2 + y^2)
if c even then plot (i,j)
Over time, Alan and I did some optimization and experimentation using any Applesoft book we could find. It was during this that Alan and I present our lightning talk.
Alan moved away a couple of months ago, but I’ve continued to test and experiment. Today I started to explain my findings. There is nothing groundbreaking about this, but I never optimized in the 80s and 90s when I was heavily using Basic.
During my presentation, a member of the audience (sorry I don’t know whom as I was looking hard at my demos), found an error in my code which had exists for a while. Luckily this only resulted in an inversion of the screen, not any substantial change to the image. I was also able to poll the audience to find out why I could not get anything to show up on the second high res graphic page (80 columns and HGR2 don’t like each other). This allowed me to finally get a full screen image.
Over the next few weeks, I will trickle out some of my finding, sharing my results & code.
Following that, I will start to experiment with Apple Pascal, 6502 Assembler, Forth (if I can find it), Macrosoft, some native C variants and the cross compiler cc65.
I will also add some color variation and eventually experiment with Double High Res (DHR) graphics.
Now as a tease, here is video of a run with a couple of different inputs.