e9kku, SHHHH9 KHHHHHHHHK yDNHHHHHHHHHHHHHHHHHQnnQHHHHHHmQHHQ HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHH HHHHHHHHHHHHHHHHHHHHH8 HHHHH HHHHHHHHHHHHHHHHHHHHH8 HHHHHHHHHHHHHHHHHHHHHHHHHHHH8 HHHHHHHHHHHHHHHQm HHHHHHHHHSKKutEHHHQ;;;"" :KHHg- -=s: NANTUCKET LIT PHLOG MY INIT HELLO PRESENTATION NJB // 2025-08-14 // Lafayette, CO © 2025 Nicholas Bernhard CC-BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/) *To order the Apple II floppy disk edition of Overscan, or the paperback or EPUB editions, please visit nantucketlit.com/overscan (https://nantucketlit.com/overscan).* At the end of July, 2025, I attended the inaugural INIT HELLO convention in Baltimore. This new convention was dedicated to the Apple II computer and its enduring fanbase. I came to the conference to share my Primeval Machine Book project, an ereader for the Apple II. I developed PMB for my new anthology *Overscan: Stories From Beyond the Screen's Edge*. The following is a transcription of my presentation, from July 27 at the System Source Computer Museum in Hunt Valley, Maryland. A video recording of this talk was published to the INIT HELLO YouTube channel (https://www.youtube.com/watch?v=7SSPqvHzKzk). I personally wrote the SRT subtitles for this video, which were then used to prepare this transcription. INTRODUCTION [ALT TEXT: PMB — Primeval Machine Book / An Ebook for the Apple ][ / Nicholas Bernhard / Nantucket Lit / INIT HELLO / 2025-07-27] **NJB:** Good afternoon, everyone. My name is Nicholas Bernhard, I run the publishing company Nantucket Lit, and today I'm going to show you my program PMB, or Primeval Machine Book, an ereader for the Apple II. I have to tell you something funny that happened this morning... show you how my day started off... I had this really nice, colorful shirt picked out, it had all these different... kind of a rainbow thing going on, I thought it would look really nice for this presentation, this morning I pulled it out of the dry-cleaning bag, only to find... that every single button had fallen off. [ALT TEXT: A blue button-down shirt with colored vertical stripes laying on a bed. All the buttons are missing from the shirt.] [Laughter] So I had to change my plans. [ALT TEXT: Cover for the book The Armchair Universe by A.K. Dewdney — An Exploration of computer Worlds, showing a mathematically-generated alien planet. A small heading along the top reads Computer Recreations from the Pages of Scientific American Magazine.] My interest in retro computing came from a book I read as a child called *The Armchair* Universe by A.K. Dewdney which was a collection of columns from Scientific American about recreational computing. This book explored ideas like the Mandelbrot Set, computer vision, which they thought was centuries away, early chatbots like RACTER and ELIZA, and how you could calculate Pi by firing cannonballs into a pond at random. I didn't understand most of the book, but it did instill the idea of a computer as a way of exploring the universe. [ALT TEXT: An Apple II+ computer on a table, with a monochrome Apple III Monitor on top of it. To the right are a stack of Apple Disk II drives, and a small device called a Floppy Emu housed in frosted acrylic. In front of the Disk II drives are a stack of Apple II manuals.] Later, after college, a colleague gave me a relative's Apple II+ as a gift. [T]hat started a collection, or maybe a hoarding compulsion, as I gathered a Timex-Sinclair 1000, a Commodore 64, a Macintosh, and any CRTs I happened to find on the roadside. I also became very interested in the Free Software Movement, and the Fediverse, which is, in a way, how I found out about INIT HELLO. [ALT TEXT: Nantucket Lit] I started Nantucket Lit after publishing my first novel on Amazon's KDP platform. I found that to be a very frustrating process, and I decided that for future books, I would figure out a way to build an ebook that I would want to read, and [would be] much easier to share. The basic idea was that I have a markup language called Shanty, for writing books, and then you parse that plain-text into different formats: you can make a browser-based ebook, which I like, because it doesn't require any special apps or devices, and you can also do EPUB and paperback books. It is a 100% free-software project, using the GNU GPL, and I work to publish as much as I canunder a free-culture, Creative Commons License. [ALT TEXT: The word “AI” with a red no-symbol over it.] One thing, before I got too far into this talk... I wanted to say that I do not use any AI for my writing, whether it's prose or programming. When it comes to programming, let me be the first to say that I am not Chris Sawyer, I am not Leah Rowe, but what I will share with you today, I did write. I won't hide behind "vibe coding" when I blunder, which is... which happens often... but vibes can't take credit for what I get right, either. [Applause] ORIGINS OF PMB [ALT TEXT: Slide with the heading Inspired by AMB] This project was inspired by another project by Mateusz Viste, called AMB, or Ancient Machine Book, which is an open ebook format for DOS-compatible systems, like FreeDOS and so forth. I had written something for my project so that I could export books into the AMB format. I wondered if it would be possible for one to port AMB from C into 6502 Assembly, and run it on the Apple II. I thought that would be fun. I sought some professional opinions on that question, and the answer was yes, you absolutely could port it, but the humble memory requirements for AMB would max out the Apple II. At the time, I decided that I would let that go. But it was then that I got a strange feeling. [M]y guess is that it's a feeling that everybody in this room has felt, and it's part of the reason that we're all here at System Source today. The feeling of when you look at a problem and you think, "You know what? I could do this." I looked at my Apple II, and my Applesoft BASIC Tutorial, and I thought, "I don't know *how* I'm going to do this, but I know that I *can* do this." [ALT TEXT: Slide heading] The book I decided to use for this project is called *Overscan: Stories From Beyond the Screen's Edge* (https://nantucketlit.com/books/overscan/overscanbook/index.html). It's an anthology of fantasy and science fiction from writers using my platform. I asked the writers to [all] contribute a new story, and I'm very proud of what they came up with. These stories are psychological, hopeful, technical, philosophical, and darkly comical. It's got one of the best stories about AI that I've read in a very long time. I'm very excited to share it, and thank you to everyone who came by the vendor table and got a copy. I thought the book would be a good candidate for the Apple II because the whole book would fit in a 140K floppy, and more than that, the stories in the book and the appeal of the Apple II, for me at least, come from a similar emotional place. These are [stories] that ask the question "What if?", and I think those open possibilities are part of the Apple II, and particularly with its open system, and people thinking about what they can do with the fundamentals of the system. CREATING THE EBOOK [ALT TEXT: Slide heading] [ALT TEXT: Slide heading] [The] specs that I started from... I decided I would go with PR#0, 40-column text mode, because I thought that would be a little more comfortable to read for short [fiction], mostly flash fiction, than the 80-column mode. Also, that would work easily with my [Apple] II+. I also thought I would use single quotes, since that would be a bit easier to parse. I knew that each chapter would be its own program, and I would link them together. DEMO So let me show you a little bit of that here... I will save the cover for a little bit later. Here [is the PMB] in AppleWin, here's the title page. Use the right arrow, I use the arrow keys to navigate... Here's the copyright information... Here's the dedication... Here's the table of contents. [Y]ou can use the number keys to navigate that. "1" takes me to the opening story, and then I can hit the number key here. [I]f I hit it again, it loads up the next chapter. The page numbers are continuous. If I go backward, it will load up the last page of the prior chapter. If I hit Escape, that will take me back to [the table of contents]. I can pick another story, load that up... DEVELOPING PMB: HOW IT WORKS [ALT TEXT: Screenshot of the AppleWin emulator displaying BASIC code from a PMB program. There are several lines of PRINT statements containing lines from the book. The last PRINT statement ends with a GOTO statement, indicating the end of that particular page.] My idea for how I would create this was that I would write a Node.js program, parse through my plain-text file of the whole book, and break it down into BASIC PRINT statements of 40 characters or fewer. I had some simple markup so that chapter headings or centered text would be properly tabulated. [ALT TEXT: A block of BASIC code being displayed in the Vim text editor. This code determines the length of a string for displaying the page number at the bottom of an Apple II screen, and then adds enough TAB spaces to right-align the string. This is followed by a WAIT statement that evaluates keyboard input.] Then, on every twentieth PRINT statement, I'd have a GOTO that would take me to a block of code which would calculate the tabulation of the page number and then wait for keyboard input: "Q" to quit the program, Escape would run the table of contents, [and] the arrow keys would turn the pages. If you're at the end of the chapter, the program will print out a DOS statement to load up the next chapter. Now an interesting question: what if you're going backwards? You don't want to go back to the start of the previous chapter, you want to go to the end of the previous chapter. The way I decided to do that was, if you are at the start of a chapter, and you go backwards, it will write out a variable to a... text file before loading the next chapter. Then when it loads, the chapter will check that variable to decide whether to load the first page, or the last page. CREATING THE COVER [ALT TEXT: Slide heading] For the cover to *Overscan*, I had a particular vision in mind. I wanted to create the feeling that you were sitting in a dark room, where the only light was the light coming from the computer screen. I can remember being a kid, and the glowing CRT monitor feeling like a window to another world, that "consensual hallucination" that William Gibson talked about in *Neuromancer*. My plan was to get some pixel art, and find a way to and get that art onto the Apple II so I could photograph it. While browsing Mastodon, I found this really amazing pixel artist from Europe who goes by the name Dinchenix (https://dinchenix.carrd.co/). I really liked her work, and so I reached out to her to commission some art. [ALT TEXT: Three examples of pixel art from artist Dinchenix. From left to right, they show a shark swimming through a coral reef, a planet with a nebula in the background, and flowers on a sunny day with a large lake or river in the background.] I tried to be very specific about what the specifications had to be... For GR mode, I knew it would be 40 pixels on each side, sixteen colors, in practice fifteen, since two of the shades of gray are identical, I also asked for some alternate art in Hi-Res mode, 280x192, with six colors in practice. [ALT TEXT: A pixel-art depiction of a human eye staring back at the viewer. The caption reads Original pixel art by Dinchenix.] Here's the art that Dinchenix came up with. I'm always impressed by how much you can get out of sixteen colors, [and] 1,600 pixels. I think she did an absolutely outstanding job. [ALT TEXT: A stylized view of silhouetted people walking, with a profile of a person’s head superimposed over the scene on the right-hand side. The caption reads Pixel art for the back cover (HGR2)] Here is the Hi-Res art... that's in HGR2 mode. So, how would I get that art onto the Apple II? [ALT TEXT: A slide showing the code for an HTML canvas element with the ID ‘canvas’. Below that are some JavaScript variables for controlling the canvas, and below that, a JavaScript method called getImageData applied to the canvas.] In web development... there is a lovely little element called the Canvas. If you load that image... if you load an image into the canvas... you can use a method called "getImageData" which will give you the RGBA color value of all the pixels in the image. 40x40 is 1,600 pixels, which is simple enough for the browser to process. I grouped the RGBA values into a multi-dimensional array, 40x40, and assigned the RGB values to the sixteen colors. [ALT TEXT: A block of BASIC code displayed in the Vim text editor. The code is a nested While-loop which reads color values from a DATA statement and draws pixels onto the Apple II screen.] Then I added that value to a DATA statement in BASIC. 1,600 color values, separated by commas, comes to about 3.2 kilobytes of data. And then I have a couple... nested while-loops, essentially, to decide which pixel to draw the colors at. With that drawn, here is the final cover. [ALT TEXT: A CRT television glows in a dark room, illuminating the keyboard of a 1980s Apple II+ computer. On the TV screen, the pixelated image of a human eye looks back at the viewer. Above the monitor are the words ‘OVERSCAN] This was photographed on 35mm film. It's a composite of a couple different photographs at different exposures. I'm very happy I got the effect I wanted from it. So that was the cover, and I will show you here... how this looks... This is what I took the photograph of. WAYS TO IMPROVE [ALT TEXT: Slide heading] I think there's quite a few different ways that I could continue to improve this... The first, obviously, would be to BLOAD the cover art. I just learned about how I would go about doing that... I could also... my plan is to learn 6502 Assembly, which would allow things to load quicker. Another thing... I could use the arrow keys to highlight the parts of the table of contents... by converting it to inverted text. That could allow for easier navigation, and I could expand beyond just nine to ten chapters. Then I heard that I could just store the text of the book in text files, and then I wouldn't have the overhead of navigation for a chapter within each program. Those are all things I am eager to explore for the next version... because I can tell you now, **I'll be doing another one of these books**, because I'm so excited with how this one has come out! [ALT TEXT: Slide heading] I've been very excited to come from the other end of I-70... To share this has meant a lot. [Laughter] NJB: So thank you... I hope you enjoyed it. [Applause] Q&A **NJB:** Any questions? [Pointing] Yes? **Martin Doherty:** I bought the disk, and I started reading it, and it reminded me [of] the mental effort involved in reading all upper-case words, and I was thinking, maybe... If the text was stored in mixed case... **NJB:** Yeah. **Martin Doherty:** ...and there's something like an identifier byte, something that could tell if you were running on an Apple II+, or an Apple IIe, or IIc, and it would be very simple to take the text, and convert any lower-case letters into upper-case on the fly if you're using a machine that doesn't have the lower-case. So it's [the same text], but it will adapt it dynamically to the machine that it's running on. And then you could read in upper and lower-case, which would be nice. **NJB:** That's an excellent idea. I think I'll definitely incorporate that. **Martin Doherty:** I was also just curious, what is "flash fiction"? **NJB:** It's a term for fiction that's very short, it could be maybe 1,000 words or [fewer], it can be read very quickly. One of the great masters of that was Frederic Brown, a great science-fiction writer, wrote the *Arena* episode of *Star Trek*, the one where Kirk is fighting the monster in the desert. One of his stories was: "The last man on Earth sat alone in his room. There was a knock at the door." And that's it. [Laughter] **NJB:** I'll give you an example here... Here's my story that I start off the book with... This one is called *In the Maize*.
*Amidst the wheeling music of the calliope and the acrid smell of burnt popcorn the barker called one and all to the maze. I'd seen every carny from Tacoma to Tupelo, and nothing was throwing me. I wanted something new, and I was beginning to wonder if 'new' even existed anymore.* *I was surprised to find the quarter pass from my pocket to the barker's purse. I dug my heels into the dirt to no end as the dried corn stalks pulled me in and the calliope fell silent behind me.* *Now it hunts me through the maze. It is too dark to see down these long passages, but when I hear the snap of fallen stalks under its claws I know it has spotted me. Time does not pass here. A few evening stars hang shimmering in the cold violet sky. Strange birds glide high above me. I walk towards the lights of the Ferris Wheel, but they never get closer. Sometimes I hear the cry of the carny barker on the breeze, and someday it may lead me out of here.* *It has seen me again. Time to run.*
[Applause] **NJB:** [Points] Yes sir. **Audience Member:** You were saying you write something to the disk if you're going from the beginning of a chapter into the end of the previous chapter. **NJB:** Yes. **Audience Member:** When you're doing the refactoring to better store the data, maybe saving the read-position... so you could keep track of wherever you started... **NJB:** Yeah, you could bookmark... **Audience Member:** Basically, a reader mark. Whenever I use ereaders, it's kinda nice to know, "Oh, this is where I left off." **NJB:** Absolutely. I have [bookmarks] in the browser books that I make. You could definitely have a bookmark position as well. **Audience Member:** Cool, cool. **NJB:** Any other questions? Comments? Yes, David... **David Schmidt:** It's really neat to see the intersection of art and technology. It's using this very simple platform and yet you've elevated it into this artistic expression. That's really pretty cool. **NJB:** Thank you. Well, um, that's it... Thank you very much! [Applause] *To order the Apple II floppy disk edition of Overscan, or the paperback or EPUB editions, please visit nantucketlit.com/overscan (https://nantucketlit.com/overscan).* No comments yet. WANT TO COMMENT? SEND AN E-MAIL TO NJB@NANTUCKETEBOOKS.COMWITH THIS SUBJECT LINE: 2025-08-14_my_init_hello_presentation