Original software developed by Antoine Vignau & Olivier Zardini from Feb to August 2018 for the Apple II. Big thanks to John K. Morris for his support over the last few months. Get an Applesauce today!



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
Note that pin 6 is not active on the //c nor the IIc+
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
On some Apple computers, button 1 is used to enter the firmware menu. So, plug the jack connector once Graffidisk runs


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
The algorithm for text is the following:
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
Next
The 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:


Download


Graffidisk v1.0 - 140K (dsk)

Graffidisk v1.0 - 800K (po)

Graffidisk v1.0 - 800K (2mg)