The Applesauce companion
What is Graffidisk?
Graffidisk is a new kind of software for the Apple II. Its limit is your imagination: enter text or draw a GR picture on your Apple II and let Graffidisk tag your 5.25" floppy disks. See the results of your piece of art with John Morris' Applesauce. Share with your friends!
The story behind Graffidisk
All began on Saturday, February 3rd 2018 on Slack:
antoine_vignau [8:28 PM] You know I have a weird idea: I think it is possible to write text on a floppy disk. Let the user type "LoGo" and write it in FF/10 and 96/8. I'm sure the effect would be cool jmorris [8:29 PM] Yes, that can be done. It actually wouldn’t be very hard to do. antoine_vignau [8:31 PM] a question of timing jmorris [8:32 PM] Well, you could create a disk image with the proper pattern and then write that to disk. It would need a sync sensor to be able to properly line up the tracks so that all y lines have the same x origin. antoine_vignau [8:33 PM] yes, that is what I was thinking of with a sync sensor, it would be easier to do
And a few days later, on Saturday, February 10th...
Nice disk layout ;-)
jmorris [6:03 PM] Wow, what the heck is that! It is probably taking you a little while to answer because you have been hypnotized by looking at the picture. antoine_vignau [8:32 PM] It is a (c) (r) LoGo(tm)'s picture ;-)
That is how Graffidisk (named Applesaucer at the beginning) came to life. Two days later, the magic cable came to life, John built one and I sent "Applesaucer v0.2 C062.po" to him the same day. It did not work at all. I built one (and you know how bad I am at soldering) but on Thursday, February 15th...
It can be done!
And after hours of programming... Friday, August 17th is the official release date of Graffidisk.
Requirements
The minimum requirements to use Graffidisk are:
- An Apple II computer w/lower case support and a joystick port
- 64 KB of RAM
- A 5.25” disk drive (Disk II, Drive 5.25”, Duodisk…) w/a sync sensor installed
- A Disk II controller card or a Smartport interface
- A magic cable
- Applesauce software
How to build your own Magic Cable
In order to build the cable that reads the sync signal between the disk drive and the Apple II computer, you need the following items:
- A cable with three wires
- A 3.5” three-contact female jack connector, or TRS connector
- A joystick DB-9 male connector
Solder the cable wires as follows (from the jack connector to the joystick connector)
- Tip (+5V) => pin 2
- Ring (sync signal) => pin 7 (btn 0), pin 1 (btn 1), or pin 6 (btn 2)
- Sleeve (ground) => pin 3
3.5mm jack TRS view | Joystick port view |
Connect the 3.5mm jack cable, the other side is connected to the sync sensor in your disk drive |
This goes into the joystick port of your Apple II |
How to use Graffidisk?
The main menu contains the following features:
- 1: select slot and drive
- 2: define number of tracks (35-40)
- 3: de/activates the magic cable
- 4: set the button for the magic cable (0-3)
- 5: define write mode (black/white, white/black)
- 6: define the input mode
- 1 line of 14 chars
- 1 line of 28 chars
- 2 lines of 14 chars
- 2 lines of 28 chars
- Graffidisk mode ;-) (see below)
- 7: enter your text or drawing
- 8: format a disk (uses the setting of option 5)
- 9: output your text/drawing onto disk
- Ctrl-D: show some debug info
- Ctrl-Q: quit the program
- Ctrl-V: load a character ROM file from the Chars folder
- Left arrow: select the previous compatible file
- Right arrow: select the next compatible file
- Escape: cancel the load
- Return: select the highlighted compatible file
- Ctrl-Reset: re-enter the program
The Graffidisk mode
The Graffidisk mode offers the following features:
- Ctrl-C: clear the screen
- Ctrl-I: invert the screen (black goes white and white goes black)
- Ctrl-O: select a GR screen from the Grafs folder
- Left arrow: select the previous compatible file
- Right arrow: select the next compatible file
- Escape: cancel the load
- Return: select the highlighted compatible file
- Ctrl-Q: quit the Graffidisk mode
The file is not saved but is kept in memory for later changes - Ctrl-S: save a screen to the GRAFS folder
If a file with the same name exists, it is replaced - Ctrl-X: flip the screen horizontally
- Ctrl-Y: flip the screen vertically
- Ctrl-Z: undo the previous action
- Arrows: navigate within the GR screen
- Space: un/plot a point on the GR screen
First-time use
When you launch Graffidisk for the first time:
- Set the slot and drive of your disk drive
- Set the number of tracks you want to use (to format and write)
- If you have want to sync writing, set the timer to on
- Set the background mode: black chars on white ground, or the opposite
Regular use
When you launch Graffidisk again and again:
- Plug the joystick connector of the Magic Cable to the joystick port of the Apple II
- Plug the jack connector into the female jack connector of the Magic Cable
- Format a disk (it uses the background setting)
- Select the pattern (from 1 line of 14 chars to the Graffiti mode)
- Enter the string
- Write text on disk
How does Graffidisk work?
All you ever wanted to know about Graffidisk but were afraid to ask:
- Disk structure
- Each disk has between 35 and 40 tracks
- Each track contains 6272 nibbles
- Each nibble is 8-bit long
- Each bit is written in 4us (one nibble = 32us)
- 96 (%1001_0110) and FF (%11111111) are the two nibbles written on disk
- Applesauce displays 96 as a black area, FF as a white one
If mode is "B/W" Then Black = 96 White = FF Else Black = FF White = 96 Endif If string length is 14 chars Then N = 64 Else N = 32 Endif For each text line For each character of the line Get bits of the Nth line of a character For each bit of the character If bit = 0 Then output N White Else output N Black Endif Next Next Wait for the sync sensor (the timer does it) Write the output onto disk NextThe Graffiti mode is similar. It grabs each block of each line and outputs 20 Black or White nibbles per block (because 40 blocks per line x 20 nibbles x 8 bits per nibble = 6400 nibbles). The Format mode outputs 6400 Black or White nibbles written in 32us. That's all.
What Graffidisk does not do?
Let's list the limited features of Graffidisk:
- Width of a character cannot exceed 8 bits
The program does not recognize character ROMs with more than 8-bits per pixel. Version 1 is best suited for 7-bit characters as in the Apple II ROM. - Fixed string length and nibbles
Linked to the above, 32 nibbles are always written per bit of character for a 28-char string, or 64 for a 14-char string. The number of nibbles to write is not calculated based on the number of bits of a character and the string length. - No more than 623 files
The routine that browses the contents of the Chars and Grafs folder handles the first 623 files, no more, no less. - Size of a GR picture is 1024 bytes
- Maximum size of a character ROM file is 4096 bytes
Things I’d pay cash if I were a user
There is room for improvement, let's name a few...
- A bootable disk
That is what Dagen Brock asked me. That would be cool to have your Graffidisk boot and display on the Apple II what was written on the disk. It would require sync nibbles to be written on each track to have the head sync'ed and nibbles correctly read. - A more precise sync Yes, odd/even tracks are not perfectly aligned, I do not know what the root cause is.
- Other graphic options We can write text and GR pics, why not try HGR? One track would match five HGR lines (192 lines / 35-40 tracks) unless you use half or quarter tracks...
Frequently Asked Questions
We already have a few questions and answers!
- Does it work on all Apple IIs?
- Yes, your Apple II must support the display of lower case characters
- On the Apple II Platinum, prefer the internal 16-pin DIP port for the magic cable. There is a change on the handling of buttons that prevents Graffidisk from detecting the 0 value of the button
- Why are characters not sharply aligned?
- Frankly, I do not know! Shall I add a longer wait loop before writing?
- Is the source code available?
- Yes, the Merlin source files are in the SourceCode folder.
- Can I create my own character ROM files?
- Yes, open the CHARROM.S source file and follow the instructions there.
Links
Useful links to get the best experience with Graffidisk:
- Applesauce, https://www.applesaucefdc.com/
Download
Graffidisk v1.0 - 140K (dsk)
Graffidisk v1.0 - 800K (po)
Graffidisk v1.0 - 800K (2mg)