Dogcow Land is my blog where I mainly talk about Mac GUI, but sometimes a few other subjects slip in there! :)

Blog Owner: [ Dog Cow ]
Contributors: [ (none) ]
Blog: [ View All Entries ]
[ Friends ]
[ ]
Go: [ Back/Forward ]
« < » > August 2014
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
About Dog Cow


11 Dec 2004 5:20 pm





Mac computers, as well as many of the same things that you like!


Blog Started

20 Jul 2005 12:50 am

Total entries


Blog Age

3,300 days

Total replies



RSS Feed

Concourse -> Blogs

2014 Plans for Mac GUI Vault

19 Jan 2014 7:26 pm

Mac GUI Vault has been online for over 4 years, and it just keeps getting better. I don't stand still; I keep innovating and improving.

What's coming up for this new year of 2014:

- Another Vault update. It's going to add a few hundred more files

- More dates. I've devised some heuristics to establish release dates for files. I'm going to look at the last modification date of Macintosh files, ProDOS files, and ShrinkIt archives. If I average the dates, or take the median, I should get something fairly accurate. This will help people who want to search the archive by date.

I've already started writing this code, but it needs to go through more testing before I update the main Vault collection.

- More "read me" and file descriptions. Many of the Apple II files are missing long descriptions about what they do. Fortunately, quite a number of these archives include a .doc or a read me first file. I'm going to write some routines to locate these files, extract their ASCII text, and put it in the downloads description. This will improve searching for files, both using Mac GUI's internal search, as well as external search engines such as Google and Yahoo.

- Disk Lab. This will allow you to create and manipulate DOS 3.3 and ProDOS disks via an AJAX-enabled web interface. Later, support for Macintosh formats MFS and HFS may be added too. It will be integrated with Spyglass and Mac GUI Vault, so you could change the files on Vault (for yourself, not for everyone!).

- Spyglass enhancements. A better interface. Upload capability. More supported formats, such as ShrinkIt. All of this is on the to do list.

- Apple II search engine. This is probably the coolest thing on the list. It will search the contents of all the Apple II disk images and archives presently on Mac GUI Vault. It will also serve as a cross-reference, so you could find which other disk images contain the same file.

500 Copies sold of New Apple II User's Guide

27 Dec 2013 5:31 pm

I just checked the sale statistics of The New Apple II User's Guide, and I'm pleased to report that after a year and a half on the market, there have been 500 copies of the softcover book sold. Smile

This is really incredible, because my sales goal for the book was 200 copies.

When you add in ebook sales, the number approaches 600 units sold. Very cool! Cool

Renovation and copper doors at Illinois New State Capitol

21 Oct 2013 3:53 pm

On the 10th of September, I made a special trip down to Springfield, Illinois to take pictures of the renovation of our new state capitol (built 1876). Ignoring a few barricades, I was able to get around to the west wing and snap a number of photos of the work in progress, including the sea maiden newel post lamps on the grand staircase, and the interior of those famous, million dollar copper doors!

The sea lady statues are significant because the architect, Alfred Piquenard, also designed the new Iowa state capitol, and it is similar to the Illinois capitol, though smaller. Both buildings were meant to have the statues, but the Illinoisans thought they were too risque (which they are, IMO) and so opted not to have them. The Iowans had no problem, so they retained their statues to this very day. In fact, the statues installed at Iowa are the ones that were supposed to be installed in Illinois!

I uploaded the pictures here:

Here is the first one:

The Inner Workings of Spyglass

14 Oct 2013 2:15 am

Here is a high-level overview of how the Spyglass system works.

First off, what is it? Well it is a technology that allows one to click through an Apple II (and later on, Macintosh) disk image and get meaningful representations of the files therein without using an emulator or actual hardware.

This is a pretty simple thing to describe but it takes quite a lot of code to pull it all together.

The first technology is the foundation for Spyglass: Format Converter. I envisioned this technology in 2010 and I finally put it in code this spring and summer of 2013. Its name describes what it does: it converts between various file formats and it will access the contents of disk images and compression archives such as ShrinkIt and StuffIt.

Format Converter does not rely on any file extensions to determine the file type. Instead it relies on well-defined magic numbers combined with some statistical analysis (that is, files of format X typically have byte sequence Y).

Once the file type is determined, the proper converter is called. For example if the file starts with \nGL, that's a Binary II archive and the Binary II converter will be activated.

Format Converter supports compression such as Gzip or Bzip2 as well as recursion. For example, a Gzip file that has a BinHex encoded file that contains a StuffIt 1.5.1 archive. Format Converter is able to drill down the stack to get to the heart of the matter.

Up until now, the only applications of Format Converter have been the enhanced file catalogs in Vault, the selection of disk images for the additional screenshots, and downloading binaries from comp.binaries.apple2.

Integrating Format Converter with these areas of Mac GUI has been very straightforward and simple. It is easy in the small tasks, but is it easy with the larger tasks?

Enter Spyglass. Now here is the heart of this article. It is the largest application of Format Converter so far, and it does show that integration is easy with the larger tasks.

Spyglass takes the existing Format Converter features that had been developed this summer, and placed additional demands: it must recognize the Apple II file types such as lo-res graphics screens, Teach documents, and machine language binaries. It must also be able to extract individual files from the disk images.

Spending some more time with the Apple II DOS and ProDOS reference manuals and tech notes allowed me to add the code for these new abilities.

Now the last step is to put it all together into an application to click through on the web browser.

I decided that I wanted Spyglass to work from three starting points:
1.) Files uploaded from the browser
2.) Files entered from a URL to an FTP or HTTP site
3.) Files selected from the Vault Downloads collection

All of these starting points are called "resources," since that is a generic term. We start by fetching the file either from Vault or a URL, or from the browser. To prevent abuse, file size must be less than 1 MB. This limit may be increased in the future. The file is copied to the Mac GUI server and some tests are run on it. We compute an MD5 hash of the file contents and save that in order to check for duplicates. We also determine the file type using Format Converter and reject types that don't yet work in Spyglass (all the Macintosh types, for instance).

There is a provision for file expiry. Files uploaded by the web browser will expire after 30 minutes and will be deleted from the system.

Each resource is assigned a resource ID that will be its point of reference in the future. This ID is globally unique and can be used in URLs to Spyglass. If it should happen that the resource file is deleted from the Mac GUI server, but its database entry still remains, it can be downloaded again from its URL.

Once acquired, the resource will remain available to everyone until it expires. All files and directories are accessible via static URLs. This means that someone could post a disk image, then email someone a link to a text file within that disk image! This also means that search crawlers such as Googlebot or Bingbot could index the disk contents.

Several common Apple II file types are converted to meaningful formats in the web browser:

- Clicking on a lo-res or high-res screen will show the image as PNG
- Teach, AppleWorks word processor, ORCA, Merlin, and most other generic text files are displayed as ASCII
- machine language programs in 6502 or 65C02 are disassembled
- ShrinkIt files will show their catalogs (and later will be fully clickable too)
- Integer BASIC and Applesoft programs are detokenized in the LIST format
- unknown types, or optionally, any file at all, can also be shown in a combination hex/ASCII data dump

Any file can be downloaded in raw form to the computer. This means that you could pull a ShrinkIt file out of a disk image then use Shrink-FitX on Mac OS X to extract its contents.

Working on a new IP Stack for Apple IIe

23 Sep 2013 4:10 pm

Well I feel like spilling the beans now. Since January (oof, that's a long time ago) I have been designing and programming (yay) a new IP stack for Apple IIe which I have decided to call Marina.

It's written in 6502 assembly and will work primarily with the Uthernet, but it will allow for multiple network interfaces, including a local loopback for testing.

It is going to be entirely Public Domain code! Completely free!

Here is my wishlist for the system:

Marina IP Requirements
02 Feb 2013

Allow multiple interfaces. Initially there should be an Ethernet interface for the Uthernet. Also there should be a SLIP interface for the Super Serial Card. Perhaps support for the LANceGS too?

Local loopback interface for testing. Sends IP packets to itself.

Uthernet driver should be robust. It should reset the CS8900A if there are no packets received in some amount of time. Should detect if the network cable is unplugged.

ARP for Ethernet. Send out gratuitous ARP when first connecting to network. ARP cache with timeouts. Able to manually alter the ARP table.

Zero-conf. Should be able to plug in an Ethernet cable and have the system automatically be configured using ARP and DHCP.

Full RFC compliance for the following protocols:

Allow multiple UDP and TCP client/server connections.

Allow a raw IP interface to allow for a tcpdump-type application.

Buffer sent and received packets. Stack will automatically resend packets in case of error.

Interrupt-driven for better through-put. Also available in polled mode.

Statistics. Should have counters for number of packets sent and received, number of errors, bytes sent and received, etc.

Fast checksumming and data copy. Perform the packet checksum while copying the packet into Apple memory. Make a special checksum routine that is optimized for 20 byte IP headers. Then have a general purpose routine for the longer UDP and TCP packets.

Now I've got some of this down on code. I already wrote the 6502 code to send and receive packets, send a gratuitous ARP, and compute a checksum for IP packets. So I'm on the way there.

Last evening I designed the packet buffer system which is super-simple and I wrote the code to request a buffer, then I will do the code to initialize the buffer table at startup time, and release buffers. After that I will write the ARP code to map IP addresses to MAC addresses.

I, for one, am really looking forward to a zero-conf IP stack for the Apple. You will be able to switch on the Apple IIe, load Marina, then plug in a Cat5 and have your system ready to go. It will first negotiate a link-local address, then it will look for a DHCP server and configure against that.

It's getting built piece by piece. Eventually I will have a web site and lots of documentation for this all. It's public domain.

There's a disk with some code from June in Vault.