Amiga Productivity Software

Cloned from various wiki pages

Introduction

This article describes productivity software written for the Amiga series of computers, and describes the AmigaOS operating system and its derivatives AROS and MorphOS. This is the main article, Amiga Software Split. See also the related articles “Amiga Internet and Communications Software”, “Amiga Music Software”, “Amiga Programming Language”, and “Amiga Support and Maintenance Software” for additional information about software running on Amigas.

History

The Amiga initially supported well-known software titles such as WordPerfect, Electronic Arts’ Deluxe Paint, and Lattice C. One of the first all-in-one graphics and video editing packages, Newtek’s Video Toaster, started on the Amiga. The Video Toaster was one of the few accessories for the “big box” Amigas (2000, 3000, and 4000) that used video slots, allowing a user to turn his Amiga into the center of an entire television production suite. Newtek’s later addition of Video Flyer enabled the first non-linear video editing program for the Amiga. Amiga brought 3D ray-traced graphics to the public with Sculpt 3D. Before the Amiga, raytracing was only available on dedicated graphics workstations such as SGI. Other ray tracing software also included TurboSilver. The Amiga is well known for its 3D rendering capabilities, and many titles have been added to the mix over the years. Some titles, such as Maxon’s rendering software Cinema 4D and his Newtek’s LightWave, which was originally part of Video Toaster, were later ported to Microsoft Windows and continue to thrive there. The Video Toaster itself has also been ported to the Windows platform. LightWave was used for low-cost computer-generated special effects in the early 1990s, and Babylon 5 is a notable example of a TV series that utilized LightWave. Even Microsoft was creating software for use on the Amiga. AmigaBASIC is an advanced BASIC software development environment with integrated development environment (IDE) created by Microsoft under contract.

Graphics software

The Amiga started in 1985 with a stronger attitude toward graphics than other PCs of the era, due to its unique hardware and multimedia chipset. The graphics chip Agnus has bit blitter and copper circuits that can access RAM directly, steer it with DMA (direct memory access) privileges, move pixel ranges on the screen, and directly process the TV’s electron beam. I was there. It can render graphic screens with different color depths (his HAM mode with 2, 4, 8, 16, 32, 64 and 4096 colors) from 320×200 up to 720×576 pixel graphic pages. Amiga includes Graphicraft, Deluxe Paint, TVPaint, Photon Paint, Brilliance! (a program realized entirely based on the suggestions and wishes of renowned computer artist Jim Sachs), Aegis Images, ArtEffect, fxPAINT, and a huge number of other applications. Released graphics software program. By IOSpirit, Cloanto’s Personal Paint, Photogenics, Express Paint, Digi Paint, XiPaint, PerfectPaint, SketchBlock 24-bit paint programs (by Andy Broad, for AmigaOS 4.x users)

Graphic applications on AmigaOne systems

Unlike the Commodore Amiga system, the AmigaOne system does not have an integrated multimedia chipset. AmigaOne systems, like Macs and PCs, feature a sports AGP/PCIe graphics card, built-in audio AC’97 sound system, and even some professional models can use PCI/PCIe audio cards. Faster CPU performance enhancements and the availability of standard enhanced graphics cards create a new generation of graphics software for AmigaOne machines such as the Hollywood “Visual Programming Suite”. This also makes it easier to port modern open source software like Blender3D.

Visual programming

The Hollywood Suite program by German software house Airsoft SoftWair is a multimedia and presentation program available for all Amigas (AmigaOS, MorphOS, AROS) and as recently as 2010 a version of Hollywood was also made available for Microsoft Windows. became. You can load Scala projects and Microsoft PowerPoint “.PPT” files. Its module Hollywood Designer is not only a modern multimedia authoring software, but also a truly complete cross-platform multimedia application layer that allows you to create entire Amiga programs through a visual design approach. It can also save executables in a variety of formats, including 68k Amiga, WarpUP, AmigaOS 4, MorphOS executables and his Intel X86 code for AROS. The latest version of Hollywood allows you to create executable programs for Intel Windows machines, Mac OS X for PPC processors, and Mac OS X for Intel processors.

Modern graphic software

There is some fairly modern graphics software available for AmigaOne machines, and some is still available for the Amiga platform. Born in 1991, TV Paint was one of the first commercial 32-bit graphics software on the market. The latest version of the Amiga (3.59) was released in 1994 and is indeed publicly distributed, although the source code is still proprietary. It’s still a viable graphics program and continues to be used despite its age due to its ease of use and sheer number of features. Programs like Candy Factory for AOS 4.0 are designed to create special effects for images, brushes, and fonts to create gorgeous Internet objects and buttons used in web page design. Pixel Image Editor (formerly Pixel32) is available for MorphOS. Blender 3D is one of the best open source cross-platform software. Also, the first pre-release of GIMP is available for He AmigaOS 4.0 through the AmiCygnix X11 graphics engine. Since release 2.1 in 2008, MorphOS includes its own standard painting utility called Sketch, which is simple but powerful. AROS bundles the last free version of Luna Paint, which is actually a commercial paint program for various operating systems.

Graphic utilities

As with any operating system, there cannot be only bitmap and vector painting software. Aimed at allowing authors to directly create drawings or manipulate existing image files, these leading software are surrounded by unique features created to support the leading graphics programs. There is a vast market for graphic utilities that For example, the Amiga has very professional software, including at least some of the most important and widely used software on the Amiga market, such as Cinematte, CineMorph, Morph Plus, Impact!, Essence, Magic Lantern, and Pixel 3D Pro. It is worth noting to mention a few. Of the vast array of graphics utilities that were available for purchase by seasoned and professional users of the Amiga platform during the Golden Age, here are just a few of the most notorious. Cinematte utilities make it easy to create complex photorealistic composites of subjects shot against blue-screen or green-screen backgrounds. Accurate blue screen compositing uses the same advanced technology used in film technology around the world. CineMorph is a program that automatically creates a morphing effect between two specified original images and a composite his third image, or any animated movie associated with the morphing effect. Morph Plus performed the same effect as Cinemorph. Impact! I created a physics simulation in a 3D scene. Essence was a texture maker that applied textures to his 3D surfaces of objects created with 3D tracing programs. Amiga Magic Lantern is a true color animation compressor and player for the Amiga that uses the Pixel 3D Pro utility to create models of 3D objects and save them in various 3D formats, or to convert model objects into 3D files. It was used to convert from one format to another.

Vector graphics

Common formats widely used for Amiga vector graphics are EPS and IFF DR2D. This is because the Amiga was the first platform to run Ghostscript natively, and IFF DR2D is the original vector graphics produced by the Amiga ProVector and later adopted by other applications such as Art Expression and Professional Draw. This comes from the fact that it is standard. The most popular Amiga drawing and vector graphics utilities are Aegis Draw, his ProDraw (Professional Draw) from Gold Disk Inc., DrawStudio, Art Expression, and ProVector. You can also use Professional Page and PageStream tools for some basic vector graphics. The newest vector graphics programs on the Amiga are actually MindSpace 1.1, primarily aimed at designing flowcharts, mindtables, UML, and diagrams, and Steam Draw, a 2D simple vector painting program available on MorphOS .

Flash and SWF

SWFTools is a collection of command-line programs for converting and saving various raster (bitmap) image formats to the Flash SWF vector animation format.

Tracing software

AmigaOS provides Autotrace, Potrace, and XTrace, widely used, free, and distributable vector-to-graphics conversion capabilities that also run on AROS Amiga open source clone OS and MorphOS Amiga-Like systems. The Desktop Publishing software PageStream includes a tracing utility as bundled software. The structured drawing program ProVector had an optional add-on tracing utility named StylusTracer.

DXF, EMF, SVG file formats

Various programs can read DXF (almost all Amiga CAD programs), EMF, SVG, CGM, GEM and WMF. An example of a conversion tool that reads many formats and outputs DR2D is the Amiga program MetaView. There is also an SVG data type that provides direct OS support for loading and saving files in SVG (Scalable Vector Graphics) format on any program.

Computer aided design

The Amiga was initially thought to offer the most powerful graphics platform at an affordable price.[1][2] A variety of CAD programs were available, including X-CAD, IntelliCAD, DynaCaDD, MaxonCAD, IntroCAD, and even programs for designing and testing electronic circuits such as ElektroCAD.

Animation, Comics and Cartoons

The Amiga’s unique capabilities in multimedia and the capabilities of its bit-blitter circuitry allowed it to perform advanced animation and video authoring at a professional level in the 1980s, and led to the creation of a vast amount of software that also catered to this field. I did. Top of the professional video editing market. The Amiga supports animation programs such as Aegis Animator, Lights!Camera!Action!, DeLuxe Video, Disney Animation Studio, Deluxe Paint versions 3 and later, The Director (a BASIC-like language for animation), Scala, and Vision. It was possible. From Commodore itself, VisualFX from ClassX, Adorage multi-effects program from proDAD and Millennium from Nova Design. ImageFX, art club professional. Amiga had various animation software. Comic Setter for creating printed comics by placing brushes representing cartoon characters, combining them with background images, and overlaying appropriate frames and “speech bubbles” with their own text speech and captions. It was an interesting tool. You can also print your comics in color. Disney Animation Studios was one of the most powerful 2D programs to bring animation to life. Released on the Amiga, the program also features a full cell-frame preview, and was used by many animation studios around the world during that era, and is still used today by several European studios as a useful preview tool. It has been. This software is primarily used by independent and animation studios. Amateur animator.

Authoring and VideoFX

The golden age of the Amiga had access to a huge range of animation and video authoring software. Aegis Animator, Lights!Camera!Action!, DeLuxe Video, Disney Animation Studio, Deluxe Paint 3 and later versions, The Director (a BASIC-like language for animation), Scala, Commodore’s own Amiga Vision, ClassX’s VisualFX, proDAD’s Adorage Multi Effect program, Andreas Maschke’s Wildfire (later ported to Java by the author), Nova Design’s Millennium, Nova Design’s ImageFX, and ArtDepartment Pro.

3D modeling, rendering and animation

3D rendering and animation software includes Sculpt 3D, TurboSilver, Aladdin4D, Videoscape 3D, Caligari, Maxon Cinema4D, Imagine, Newtek’s LightWave, Realsoft’s Real3D, Vista Pro, World Construction Set 3D terrain rendering programs, and Italian company Eyelight’s Includes Tornado3D.

Amateur and professional video editing

The Amiga was the first commercial Amiga to enable video editing by amateurs and professionals, with connection to TV sets, video codecs, chroma keying, processing of genlock signals, full-screen capability with overscan functionality, and superior noise. A computer platform. -Gain ratio. The Amiga and its video peripherals (primarily genlock boxes and digitization boxes) were available at affordable prices in the 90s, and this made the Amiga one of the leading platforms in the professional video market. It could also handle broadcast video production (Newtek VideoToaster), and despite the demise of the Commodore, the Amiga saw its golden age as a professional video platform around 1992-1994. There was a huge amount of video platforms available for the Amiga. Resale of GFX and image gallery data files applicable to all kinds of video software, graphics equipment, and video production. Among these software is the leading Amiga for desktop video with both linear and non-linear editing with 4.2.2 features, called NLE, made by Newtek and available in the VideoToaster Flyer external module for video toasters. It’s worth mentioning video editing programs. (non-linear editing), Amiga MainActor, Broadcaster 32 and Elite (with Producer software), Wildfire for vfx by Andreas Maschke (now Java), extended Amiga card PAR, VLab Motion (with Movishop software), and VLab Pro.

Word processing and page layout

Desktop video proved to be the main market for the Amiga, but starting with Textcraft, the first Amiga text program that combined a real word processor with advanced text, a proliferation of word processing, page layout, and graphics software became professional. met the needs of Although it is an editor, you can change the page layout, fonts, increase or decrease the width, change colors, and add colored images to the text. Notable word processing programs for the Amiga included the then industry standard WordPerfect up to version 4.1, Shakespeare, Excellence, Maxon Word, Final Writer, Amiga Writer, Scribble!, ProWrite, Wordworth, and a small version of Personal Write by Cloanto. will appear. Page layout software included Page Setter and Professional Page from Gold Disk Inc. and PageStream from Soft-Logik, now known as Grasshopper LLC. Only PageStream has been ported to other platforms and continues to be developed and supported by developers. Graphics software includes vector drawing applications such as Art Expression from Soft-Logik, ProVector from Stylus, Inc. (formerly Taliesin), Draw Studio, and Professional Draw from Gold Disk Inc. The Amiga didn’t have what we would call an office suite, but it did have integrated software. Pen Pal was a word processor with an integrated database and form editor. graffiti! ,analysis! And get organized! We have summarized them as Works! A suite that combines word processing, spreadsheets, and databases. Although the names were similar, it had nothing to do with Microsoft Works. The page layout language LaTeX was available in two ports of his, AmigaTeX, which is no longer available (the first his LaTeX can be edited with a front-end program), and PasTEX, available in the Aminet repository. The latest software AbiWord is now available for AmigaOS 4.0 via the AmiCygnix X11 graphical engine, and Scriba and Papyrus Office pre-releases are available for MorphOS.

Text editors

Text editors available for the Amiga include Vim, Emacs, MicroEMACS (included), Cygnus Editor, also known as CED, and GoldED, which evolved into the Cubic IDE in 2006. UNIX ne editor and vi clone Vim was originally developed on the Amiga. Development of text editors didn’t stop with the Amiga. Since 2001, MorphOS has had a limited edition of GoldEd available called MorphEd, and since 2008 Cinnamon Writer and NoWin ED, a universal editor that works on platforms like the Amiga. Cinnamon Writer adds new features with every new release and aims to be a full-featured word processor.

Database and spreadsheets

In the first days of the Amiga (1986-1989), cross-platform spreadsheets were available, such as MaxiPlan for MS-DOS and Macintosh. Logistix (real name LoGisTiX) was one of the first spreadsheets for the Amiga, the Microfiche Filer Plus, a database that gave users a data exploration experience similar to using microfilm. SuperBase was one of the best programs available for C64. It was later ported to Atari, Amiga, and then PC. On the Amiga, however, it became the standard reference, available in his two versions, Superbase Personal and SuperBase Professional. It could handle SQL databases and had a query internal language such as BASIC. For many years before Microsoft Access, you could create forms and masks on records and incorporate multimedia files into records. Superbase also had VCR control style buttons for browsing records in the database. Softwood File II was another simple multimedia database that later evolved into Final Data. This is a great database available for Amiga by Softwood Inc. From the same company was the very powerful spreadsheet Final Calc, similar to TurboCalc from the German company Schatztruhe. ProChart is a tool for drawing flowcharts and diagrams. Analyze! It was a fairly versatile (for its time) spreadsheet developed for the Amiga. sort out! It was a flat file database package. Gnumeric spreadsheets have also been ported to the Amiga through an X11 engine called AmiCygnix. More recently, MUIbase was born, and his MySQL database language, which is primarily cross-platform, is also referenced on his Amiga. SQLite is a self-contained, embeddable, zero-configuration SQL database engine, also available on AmigaOS 4 and MorphOS. In February 2010, Italian programmer Andrea Palmatè ported his IODBC standard to his AmigaOS 4.

Science, entertainment and special use programs

Maple V is one of the best general-purpose mathematical software (also known as Mathematic-CAD) ever created. It was also available on the Amiga and was highly appreciated by many scientists who were using Amiga at the time. Distant Suns, Galileo, Digital Almanac, and Amiga Digital Universe (by Bill Eaves for OS4) were stargazing programs and astronomical calculators. In the era of CDTV, many history, science, and science timetables, including Science Timetable, Innovation, Business Timetable, Politics, Grolier Encyclopedia, Guinness Disc, Video Creator, Dictionary of American Heritage, Illustrated Bible, Illustrated Works of Shakespeare, etc. , an art CD was sold. etc. were available.

Entertainment

For the Amiga, there were literally hundreds of entertainment software. Notable programs for children and learning include Free Spirit Software’s Adventures in Math series of floppy disks, Unicorn Software’s Animal Kingdom series of disks, Barney Bear Software’s complete Art School series, the Discovery series including Discovery trivia, Donald’s And so on. Alphabet Chase, Disney Software’s Mickey’s 123’s and Mickey’s ABC, the Electric Crayon and Ferngully series of educational coloring book software (Ferngully was taken from an animated film), the Fun School series of discs, the famous Broderbund Kid Pix disc set from the 90s The Miracle Piano Teaching System to Teach Children Music, The Many Stories of Mother Goose, Centaur Software’s World Atlas.

Fractals, virtual reality, artificial intelligence

Elena Novaretti’s ZoneXplorer is considered by Amiga users to be one of the best fractal experience programs ever created on the Amiga, if not on the platform. In 1989, he created Haitex Resources’ X-Specs 3D glasses, one of the first interactive 3D solutions for home computers. Vivid Group Inc.’s multimedia interactive TV non-immersive virtual reality exploration software Mandala and W-Industries’ (then Virtuality Inc.) Virtuality System Virtuality 1000 CS 3D VRML all-immersive simulator were also created on the Amiga and were used for gaming entertainment. was used for Based on the A3000 and used in large arcade facilities and theme parks. Magellan v.1.1 (artificial intelligence software) is not to be confused with Directory Opus Magellan. It was a program that emulated the responses of artificial intelligence on the Amiga by creating heuristically programmed rules based on machine learning in the form of supervised learning. The user selects the AI ​​decision tree and decision table system that the Magellan program features, inputs the object and desired output, and specifies all relevant conditions and conditions that the machine must follow to output a given pseudo-intelligent solution. Write the rules. problem.

Route planning

AmiATLAS v.6 was a complete route planner tool for Amiga computers. We provide interactive maps around the world and find the best routes to get from one place to another. It also featured multiple map loads, an integrated CityGuide system with information on interesting towns, places, and regions (some with photos as well), and information on many parks and points of interest. .

Personal organizer, notebook, diary software

Digita Organizer v.1.1 by Digita International is the best Amiga program that allows users to note dates, meetings, and remember expiration dates. PolyOrga for MorphOS, by Frédéric Rignault.

Personal budget, home banking, accounts

Easy Banker、Home Account、Small Business Account、Small Business Manager、Account Master、Accountant、AmigaMoney、Banca Base III、HomeBank、CashMaster、Counting House など。

Software for special purposes

AVT (Amiga Video Transceiver) was originally developed by “Black Belt Systems” (USA) around 1990 for the Amiga home computers that were popular all over the world before the IBM PC family achieved sufficient audio quality. Software and hardware slow scan television system. With the help of a special sound card. Richmond Sound Design (RSD) created both Show Control (also known as MSC or “MIDI Show Control”) and theater sound design software. These software were widely used in the theater, theme parks, exhibits, exhibitions, stage management, shows and themed entertainment industry. In the 1980s and his 1990s, and at some point in the mid-90s, many high-profile shows at major theme parks around the world were controlled by Amigas simply through software called Stage Manager. It has since evolved into a Microsoft Windows version called ShowMan. Walt Disney World alone hosts dozens of shows, as well as other Disney, Universal Studios, Six Flags, Madame Tussauds properties, as well as the Mirage Hotel Volcano, Siegfried and Roy shows, and the MGM Grand EFX. It includes hundreds of theaters, including shows, Broadway theaters, London’s West End, many of the Royal Shakespeare Company’s theaters, most of Branson, Missouri’s theaters, and many theaters on cruise ships. RSD bought used Amigas on the web, reconditioned them to provide enough systems for all the shows specified, and only stopped offering new Amiga equipment in 2000. The number of shows on cruise ships and themed venues remains unclear, but is operated by Amigas. .

References

^ An interesting interview with Italian manga studio Strane Mani is available on Amiworld.it (in Italian). ^ Information about the virtuality of the Amiga Hardware site

Videos
























My floppy preservation methods using Kryoflux

This article documents my methods for preserving floppy disks. There is probably a better way that I haven’t thought about yet.
The downside of the methods described herein, is that the Kryoflux project is more or less abandoned, and the methods here are not as easy to implement with the widely available and supported Greaseweasle equivalent.

General guidelines

  • Always use a clean, known good floppy drive for preservation attempts.
  • For the first read attempt, use the GUI for simplicity and generating the logs without having to bother with the command line parameters.
  • If there’s a label on the disk, use it to identify the disk that is read so you later easily can find it to doing re-reads of failed tracks.
  • If the format is known, select that in the output format selection drop down.

Software used

I use the latest/last windows version of the dtc (Kryoflux) software that can be found on the Kryoflux download page. As (recently) the Linux version was also updated to the last one (3.00), it should be equally usable for my methods.
Within windows, I the use microsoft Ubuntu shell for all operations except the ‘dtc’ command which is run in a microsoft shell. If you find suitable alternatives to ‘grep’ (search in files), ‘split’ (split file into parts) and ‘cat’ (join file parts alphabetically into a single file), I see no reason that this couldn’t be done using only windows shell.

Guessing the disk format

Guessing the format and saving data as Kryoflux preservation raw files

All DS/DD DS/HD formats

dtc -ftest\track -i0 -i2 -i3 -i4 -i5 -i9 -i11 -i12 -d0 -p >test.log

Checking result (recognized formats)

grep ": OK" test.log

Examining the read results

Good reads:
Find disks which was read 100% ok on the first read of all tracks

grep -L bad *log|sort

Find disks without any non-recoverable read errors

grep -L failed *log|sort

Bad / incomplete reads:
Find disks which have at least one non-recoverable read error

grep -l failed *log|sort

Find disks which have at least one track below 80 indicated as unformatted

grep -l "^[^8]*<unformatted>" *log|sort

Re-reading bad tracks

If possible, use another, newly cleaned, disk drive to try to re-read the tracks that previously failed. The same method can also be used to combine two mastered disks with errors on different tracks if re-reading from the disk with the failed tracks still isn’t possible.

Use the track format verification options if you’re sure about the format (will do no damage, but adds extra info to the logs). -i2 (CT RAW) is selected as a verification format by the GUI, so I keep that and add Amiga (-i5) in the example.

Read one track at a time – this seem to increase the chance of correct results since the read head has to move directly to that location instead of just ”dragging” itself over the damaged floppy while it is rotating.

Find which tracks needs to be re-read

grep failed DiskID.log

Re-read tracks with errors save as Kryoflux preservation format and try to verify as possible format(s)
The parameters -s and -e sets the start and end track. Use the same value of both even if the tracks are located next to each other (see above).

If for example tracks 21, 66, 67, 68, 69 and 70 failed when reading the disk for the first time:

dtc -l15 -f"retry1\DiskID\track" -i0 -i2 -i5 -d0 -p -s21 -e21 -t50
dtc -l15 -f"retry1\DiskID\track" -i0 -i2 -i5 -d0 -p -s66 -e66 -t50
dtc -l15 -f"retry1\DiskID\track" -i0 -i2 -i5 -d0 -p -s67 -e67 -t50
dtc -l15 -f"retry1\DiskID\track" -i0 -i2 -i5 -d0 -p -s68 -e68 -t50
dtc -l15 -f"retry1\DiskID\track" -i0 -i2 -i5 -d0 -p -s69 -e69 -t50
dtc -l15 -f"retry1\DiskID\track" -i0 -i2 -i5 -d0 -p -s70 -e70 -t50

Take a note of which (if not all) of the tracks were recoverable using this read method. Even if a track fails to be read, a data file will be stored.

Methods of combining multiple reads into one

Using the raw files (Kryoflux preservation format) from both reads
If you have the raw files from the first read, copy them to another place and then copy the raw files from the new read into that folder (replace those from the first read).
Create the floppy disk image using this mix of source files from either the GUI or the command line.

Using the new raw files and an incomplete disk image from the first read
Some knowledge about the disk format is needed for this method. The most important parameter is the number of bytes per track (in the case of the Amiga it is 512*11*2, which is 11264).

Use the DTC GUI or command line to create the assumed floppy image type (Amiga in this case) from the raw data files. This image will be inomplete, and will contain only the re-read tracks.

Split the old and the new image into track-sized parts:
The files will (by default) be named xaa, xab etc, but -d changes this to x00, x01 … Also, the prefix (x) could be changed, but that depends on the implementation of the used split command. Safest is to split into two subdirectories and keep the original names like:

(current directory holds copies of both disk image files to combine)

mkdir old
cd old
split ../old.adf -b11264 -d
cd ..
mkdir new
cd new
split ../new.adf -b11264 -d

Copy the new (those that was correctly read) tracks into the ”old” folder:

cp x21 x66 x67 x68 x69 x70 ../old

Join (now mixed) content in ”old” as a new disk image file:

cd ../old
cat x* >>../combined.adf

That’s it. This guide has not been tested recently, but was just jotted down while preserving some badly damaged floppies about a year ago. My post in the Kryoflux forum:
Method for reading problematic disks (?)

piStorm – Preparing the SD-card for Emu68

This guide is a continuation / rewrite of piStorm – getting started with Emu68, which was written as a starters’ guide for just getting Emu68 up and running on the piStorm.

Since I wrote that guide, Michal has added similar instructions as I present here to the resources at GitHub.

Resources

Emu68 for piStorm Nightly build
Emu68 Docs section at GitHub

Getting the files you need

As described before, you should look for the latest file named something like “Emu68-pistorm-20211220-62363e.zip”. The content of this file will in the last step be copied to the root of the Fat32 partition of the SD-card.

Preparing the SD-card

Emu68 presents partitions with the 0x76 ID as hard drives to the Amiga side through the “brcm-sdhc.device”, so we need to create at least two partitions on the SD-card (which normally comes prepared as a single Fat32 partition).
I do this using entirely using the command line program “diskpart” on my Windows computer.

Find the “Diskpart” application, either somewhere in the windows menu, or using the search function and search for “cmd”. Right click the icon and select “Run as administrator”. You will be getting a warning that you are going to do something dangerous, accept that one 🙂

The dangerous part

Insert your SD-card, then run “diskpart” from the command prompt. List all recognized disks by the diskpart command “list disk”. If you find the obvious disk (in my case it’s “disk 3”) that must be your SD-card, use the “select disk” command to select it as the current one. List the partitions on the disk with “list part” to ensure you are working on the right disk.

In any case of uncertainty, exit “diskpart” by using the “exit” command, then remove the SD-card and run “diskpart” again and list the disks. The missing one is your SD-card.

Use the “clean” command to remove all the partitions on the SD-card (as seen as the last command in the image above, and as the first in the image below). Create the Fat32 partition. Only a few MB is needed, but I usually allocate 200MB for the Emu68 and kickstart files.
As shown below, I create a 500MB partition, a 2GB partition and one for the rest of the space on the card (in this case 26GB), and with that same command I set the partition ID to 0x76 (which is needed to be specified, so the Amiga can find the emulated disks).

Exit “diskpart” with the command “exit”, and then exit the command line shell, also with “exit”.
Commands above (create partitions):

cre part pri size=200
cre part pri size=500 id=76
cre part pri size=2000 id=76
cre part pri id=76

Give the Fat32 partition a drive letter

sel part 1
assign

Format the Fat32 partition
This can be done in many ways, but as we already are inside ‘diskpart’, I present the easiest way first 🙂

format fs=FAT32 label=Emu68 quick

Another way is either accept to format the partition in the request that windows pops up directly after the “assign” command in ‘diskpart’, or as the same, as described below:
Go to “This PC” in explorer (the file explorer, not the ancient web browser), right click the small partition on the SD-card and select “Format”.

Copy the files from the latest nightly Emu68 to the root of the SD-card. This can be done using WinRAR (rarlab.com) without extracting the files. Just select the latest nightly archive, right click and choose “Extract files…”, then type in the drive letter for the 200MB partition:

Copy your choice of Kickstart ROM (usually a kickstart for the A1200) file to the root of the Fat32 partition and update the config.txt accordingly.

Now the SD-card is ready to be booted on with the piStorm. Boot from some floppy with the AmigaOS hard drive installation utilities, then change the HDToolBox tooltype SCSI_DEVICE_NAME to brcm-sdhc.device then start HDToolbox and set up the partitions on the disks with IDs other than 0 (zero) (which represents the whole disk and should not be used within AmigaOS).

This procedure is well described in the current documentation by Michal (and on a lot of other places), so head over there and read his guide.
If you decide to install AmigaOS 3.2, you do not need to use the PFS3aio filesystem. FFS works fine with large disks and partitions in this release.

piStorm – getting started with Emu68

In this guide, which will be my shortest ever, I explain how to get started with the Emu68 barebone JIT emulator for the piStorm.

Resources

Emu68 for piStorm Nightly build

The shortest instructions ever 🙂

Download the latest nightly build of early alpha Emu68 for piStorm from the resource above. You should be looking for a file named “Emu68-pistorm-20211106-9c3186.zip” or similar (note that the files are sorted in forward alphabetically order, and the latest are a bit down on the list).

Extract the files to the root of a fat32-formatted SD-card.

Copy your Amiga kickstart file to the root of that card.

Edit the configuration file (config.txt) and set the kickstart file name (last line in the included config file):

...
# PiStorm variant - use initramfs to map selected rom
initramfs kick.rom

Insert the SD-card in your pi3a+ mounted to the piStorm. Power on the Amiga and enjoy the extremely short startup time 🙂

The setup is now ready for boot from floppy (although many games does not work yet, at least not booting from floppy, but Workbench floppies do, as the Install3.2 disk to install AmigaOS onto a hard drive).

Installing AmigaOS on a hard drive (partition on SD-card)

For hard drive setup, there will be more steps involved, such as partitioning the sd-card into at least one boot partition and one or more Amiga partitions.

piStorm – Preparing the SD-card for Emu68

piStorm – AmigaOS 3.1 installation

This article will probably repeat some points in the piStorm – basic configuration guide. It’s meant as a quickstart for those who not at this time want to explore all the possibilities the piStorm gives.

Be sure to put the files (kickstart and hdf) in the right location on the SD-card, whatever you want, or follow my directions and put them in /home/pi/amiga-files. The important thing is that the paths in the configuration is set to the same.

Installation of AmigaOS 3.1 on a small hard drive

For this installation, I have choosen AmigaOS 3.1 for several reasons. The main reason is its availability, in reach for everyone through Amiga Forever Plus edition, and also because its low amount of installation disks (6 disks needed, instead of 17 or similar for 3.2).

Conditions:
Configuration files are given a descriptive name and put into /home/pi/cfg. At start of the emulator, the actual config is copied as “default.cfg” and put into /home/pi. This is part of what I did to make it possible to switch config files using the keyboard attached to the Pi (Linux: how to run commands by keypress on the local console).
Amiga-related files (kickstart and hdf) are stored in /home/pi/amiga-files

With “floppy”/”disk” (or drive) in this guide, any Amiga compatible replacement, such as a GoTek drive with Flashfloppy, can be used.

For a basic AmigaOS 3.1 installation, have these disks (in this order) available.
amiga-os-310-install
amiga-os-310-workbench
amiga-os-310-locale
amiga-os-310-extras
amiga-os-310-fonts
amiga-os-310-storage

These disks are available from your legally acquired Amiga Forever Plus Edition (or above), any release from 2008 (my oldest one) and up is recent enough. Look for the adf files in the “Amiga files/System/adf” or “Amiga files/Shared/adf” folder.
You also need the kickstart ROM from the same base folder (“System” or “Shared”). The file you want is the “amiga-os-310-a1200.rom”. I have renamed the kickstart file to “kick-31-a1200-40.68.rom” and then put it in my “amiga-files” folder on the pi.

Start by setting up the piStorm configuration for using the correct ROM and for enabling hard drive support:
Copy the configuration template “pistorm/default.cfg” to “/home/pi/cfg/a1200_4068_os31.cfg”, then change/add:

...
map type=rom address=0xF80000 size=0x80000 file=../amiga-files/kick-31-a1200-40.68.rom ovl=0 id=kickstart
...
setvar piscsi0 ../amiga-files/system_31.hdf
...

It’s also important to use a the first available free SCSI id here (piscsi0), as there is a unique feature in piscsi that hides all drives configured following a gap in the SCSI id sequence, so that they won’t be seen in HDToolBox. piscsi0 must always be used by any disk, otherwise, you will get an empty list of drives in HDToolBox.

After saving the changes, go ahead and create an empty hdf for the installation:

dd if=/dev/zero of=/home/pi/amiga-files/system_31.hdf bs=504k count=1000

504MB is enormous in Amiga-terms 🙂
The bs (block size) of 504k gives the piStorm the optimal number of heads (16) and blocks per track (63) on auto-detecting the hard drive geometry.

Insert the amiga-os-310-install floppy and start up the emulator:
(and start with stopping it if it’s running, “killall -9 emulator” or use systemctl if you have followed my instructions on setting it up as a service)

cd /home/pi/pistorm
sudo ./emulator --config ../cfg/a1200_4068_os31.cfg

Workbench will load from the installation disk. Copy HDToolBox from HDTools (put it on the RAM-disk). Change the tooltype SCSI_DEVICE_NAME (to pi-scsi.device).
Run HDToolBox from RAM:, and you will see a new unknown disk. Use “Change Drive Type”, “Define New…” and then “Read Configuration”. Return to the main window (click the “OK” buttons).
Partition the drive. Remove the second partition, and set the size of the first to something large enough for AmigaOS. 80MB is plenty of space (AmgiaOS 3.1 takes up 2.8MB fully installed). Create another partition of the rest of the space. Change the device names of the partitions if you wish.
Save changes and soft-reboot the Amiga (it will boot up from the install floppy again). You will see the two unformatted (PDH0 and PDH1:NDOS) drives. Format PDH0 (or whatever you set as device names), the smaller one, and name it “System”, uncheck “Put Trashcan”, check “Fast File System”, uncheck “International Mode”, then click “Quick Format” and accept all the warnings).

Start the installation from the Install-floppy (select “Intermediate user” to have some control of the options), use whatever language you wish for the installation process and select languages and keymaps as desired. Change floppy when the installer asks for it. Once done, remove the install floppy and let the installer reboot your Amiga.
It will boot up from the hard drive to your fresh installation of AmigaOS 3.1. Format the other partition and name it “Work” or whatever you want. Follow the instructions above (FFS, no trash, no intl, quick format).

That’s it.

a314: access to a folder on the pi as a drive on the Amiga

Most of below is a rewrite of the documentation for a314 for the pistorm.

To make it a lot easier to transfer files over to the Amiga, a folder can be shared as a drive through a314 emulation.

On the pi-side:
To keep contents and configuration files safe when updating the piStorm software, I put the config files in /home/pi/cfg and content in /home/pi/amiga-files/a314-shared. If you do not, and keep the configuration unchanged, the shared files will be in the “data” folder inside the pistorm binary directory (/home/pi/pistorm/data/a314-shared).

Copy the files that needs to be changed for keeping the content safe:

cd
cp pistorm/a314/files_pi/a3*conf cfg

In a314d.conf, change the a314fs line (add the -conf-file part):

a314fs python3 ./a314/files_pi/a314fs.py -conf-file /home/pi/cfg/a314fs.conf

In a314fs.conf, change the location for the shared folder:

{
  "devices": {
    "PI0": {
      "volume": "PiDisk",
      "path": "/home/pi/amiga-files/a314-shared"
    }
  }
}

Then, in the pistorm computer configuration (your copy of ‘default.cfg’), enable a314 and the custom configuration for it:

...
setvar a314_conf /home/pi/cfg/a314d.conf
setvar a314
...

On the Amiga-side:
The needed files are on the pistorm utility hdf (pistorm.hdf, disk named “PiStorm”) pre-set in the default.cfg and you should have had it available since activation of piscsi above.

From the a314 folder on the utility hdf, copy “a314.device” to DEVS:, “a314fs” to L: and append the content of “a314fs-mountlist” to DEVS:mountlist:

copy pistorm:a314/a314.device DEVS:
copy pistorm:a314/a314fs L:
type pistorm:a314/a314fs-mountlist >> DEVS:Mountlist

Then after a restart of the emulator (with the newly modified configuration in place), you should be able to mount the shared folder using “execute command” or from a shell:

mount pi0:

RTG with Picasso96 (old version)

RTG is a standard feature of the piStorm since ‘long’ ago. It requires the Picasso96 (2.0 from Aminet, or the more recent one, renamed P96, from Individual Computer) software to be installed before adding the necessary drivers from the piStorm utility hdf.

On the Amiga-side:
Using Picasso96 2.0 from Aminet, go through the installation process and do not install application drivers or the printer patch, then from the piStorm utility hdf, the installation script for the needed drivers can be found in the “RTG” folder.
You need to have the extracted content of the Picasso96 installation files available during this step of the installation.

On the pi-side:
Activate rtg in the configuration:

...
setvar rtg
...

Restart the emulator. The Amiga will be rebooted at that point. After a reboot, you will have the RTG sceenmodes available in Prefs/Screenmode.

Be sure to test the screenmodes before saving. Some of the modes are less useable because of the way the scaling is handled. I recommend sticking to mainly two resulotions on a 1080p capable screen: 960×540 (and any color depth) and 1920×1080 (up to 16 bit).

a314: networking

How to set up the network using the a314 emulation is well described in the a314 documentation on Github, execpt from how to set it up on “any” Amiga TCP/IP stack.

On the pi-side:
Follow the directions in the documentation for the pi-side, mainly as below:
Enable the a314 emulation in your configuration (should already have been done if you followed this guide):

...
setvar a314
...

Then install pip3, pytun and copy the tap0 interface:

sudo apt install python3-pip
sudo pip3 install python-pytun
sudo cp /home/pi/pistorm/a314/files_pi/eth-config-pi/tap0 /etc/network/interfaces.d/

Add the firewall rules for forwarding packages, and make the rules persistant:

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE  
sudo iptables -A FORWARD -i wlan0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT  
sudo iptables -A FORWARD -i tap0 -o wlan0 -j ACCEPT
sudo apt install iptables-persistent

Enable IPv4 forwarding (in the /etc/sysctl.conf file):

sudo nano -w /etc/sysctl.conf

(remove the # from the commented out line)

...
net.ipv4.ip_forward=1
...

Add to the end of /etc/rc.local, but before the “exit 0” line:

...
arp -s 192.168.2.2 40:61:33:31:34:65
exit 0
...

Reboot the pi.

sudo reboot

On the Amiga-side:
If not already done so, copy the a314.device from the piStorm utility hdf to DEVS:

copy pistorm:a314/a314.device DEVS:

Copy the a314 SANA-II driver to devs:

copy pistorm:a314/a314eth.device DEVS:

For the rest of the configuration on the Amiga, you need a TCP/IP stack such as Roadshow or AmiTCP as documented on Github. For any other stack you’re “on your own”. Here are the settings you have to enter in the correct places:
SANA-II driver: a314eth.device (in Miami, it’s the last option “other SANA-II driver”)
Unit: 0
Your IP address: 192.168.2.2
Netmask: 255.255.255.0
Gateway: 192.168.2.1
DNS: 8.8.8.8, 4.4.4.4, 1.1.1.1, 1.0.0.1 or similar (any public DNS will work, these are the Google public DNS servers)

Installing Miami 3.2b

Miami 3.2b is a GUI-based TCP/IP stack for the Amiga available from Aminet. You need three archives to make the installation complete:
Miami32b2-main.lha
Miami32b-020.lha
Miami32b-GTL.lha

Extract these files to RAM: (lha x [archive name] ram:), and start the Miami installer from there. The next step is the configuration. From the folder where Miami was installed, start MiamiInit and follow the guide, giving the values as listed above for IP address, netmask, gateway and DNS.
When you reach the end of MiamiInit, you should input “Name” and “user name”, then save the configuration (you can uncheck the “Save information sheet” and “Print information sheet”.

Start Miami and import the just saved settings.
Click the “Database” button and choose “hosts” from the pull-down menu.
Click on “Add” and fill in your IP-address (192.168.2.2) and name (for example “amiga”).
Click “Ok”, then choose “Save as default” from the Settings menu.
Click on “Online” whenever you want to be connected (auto-online is available only for registered users but I assume you could launch Miami and put it online from ARexx).

Linux: how to run commands by keypress on the local console

This is probably not the only way to do this, and just something I had to dig up to be able to control the piStorm from the console keyboard without being logged in.

After trying to find some built-in way of doing it, I ended up using ‘lirc’ (‘inputlircd’) to fetch the keystrokes and execute appropriate commands in the background. The guide is not intended to be complete, and it’s not even re-tested because of the trial-and-error attempt on getting this working the first time, and not taking any notes.

The most useful resource for the success was:
How to run script on keypress? (superuser.com)

Required steps to getting started with lirc

Become root

sudo su -

Install required packages:

apt -y install lirc inputlirc input-utils socat

Configuration
Find the input device you wish to capture keypresses from:

lsinput

The not really necessary step
Examine the inputlirc start/stop script “/etc/init.d/inputlirc” to see where it looks for configuration:

...
DAEMON="/usr/sbin/inputlircd"
NAME="inputlirc"
DESC="inputlirc"

test -x $DAEMON || exit 0

[ -r /etc/default/$NAME ] && . /etc/default/$NAME
...

The marked lines in the partial content of “/etc/init.d/inputlirc” reveals that a file “/etc/default/inputlirc” is sourced.

Change startup parameters for inputlircd
“/etc/default/inputlirc” contains parameters for running inputlircd, including the input device to capture events from and the parameters to the service looking for keystrokes.

Read the inputlircd manpage (man 8 inputlircd) to find out which parameters you need/want to use. The below is what I had to put in the file:

# Options to be passed to inputlirc.
EVENTS="/dev/input/event0"
OPTIONS=-m 0 -c

-m 0 = -m sets the lowest keycode to pass to the daemon
I also use -c to allow to capture the modifier keys (CTRL, SHIFT, ALT) so they will be part of a keystroke instead of generating their own events. This will make it possible to use combinations like SHIFT + F1 for command execution.

After editing and saving the file, enable and (re)start the inputlirc service:

systemctl enable inputlirc
systemctl restart inputlirc

Then check that it’s running:

systemctl status inputlirc

Snooping for keypress events
Unless you know all the keycodes you are going to use for running commands, now is a good time to check what lircd receives on specific keypresses. Run the command to snoop for keypresses in the shell, and press keys on the keyboard connected to the computer (this could be connected through USB, PS/2, Bluetooth, IR, whatever)

socat UNIX-CONNECT:/var/run/lirc/lircd STDOUT

Sample output (F12 and modifier keys)

root@raspberrypi:~# socat UNIX-CONNECT:/var/run/lirc/lircd STDOUT
58 0 SHIFT_KEY_F12 /dev/input/event0
58 0 CTRL_SHIFT_KEY_F12 /dev/input/event0

The irexec service
To make the irexec service restart when inputlirc is restarted (due to a key configuration change), the service startup file has to be slightly modified:

/lib/systemd/system/irexec.service:

[Unit]
Documentation=man:irexec(1)
Documentation=http://lirc.org/html/configure.html
Documentation=http://lirc.org/html/configure.html#lircrc_format
Description=Handle events from IR remotes decoded by lircd(8)
After=inputlirc.service
Requires=inputlirc.service
...

Add the lines marked above, then rebuild the systemd service configuration file and enable and start the irexec service:

systemctl daemon-reload
systemctl enable irexec
systemctl start irexec

Check that the irexec.service is running:

systemctl status irexec

Configuring what to run on keypresses
The file “/etc/lirc/irexec.lircrc” contains the configuration for what commands to run when selected key(combinations) are used. Wipe out all the defaults in there and add something useful. Below is the updated, more generic configuration I use on my PiOS for the piStorm now, just mapping some keys to a script with a similar name:

begin
    prog   = irexec
    button = SHIFT_KEY_F1
    config = /home/pi/irexec/shift_f1.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F2
    config = /home/pi/irexec/shift_f2.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F3
    config = /home/pi/irexec/shift_f3.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F4
    config = /home/pi/irexec/shift_f4.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F5
    config = /home/pi/irexec/shift_f5.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F6
    config = /home/pi/irexec/shift_f6.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F7
    config = /home/pi/irexec/shift_f7.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F8
    config = /home/pi/irexec/shift_f8.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F9
    config = /home/pi/irexec/shift_f9.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F10
    config = /home/pi/irexec/shift_f10.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F11
    config = /home/pi/irexec/shift_f11.sh
end

begin
    prog   = irexec
    button = SHIFT_KEY_F12
    config = /home/pi/irexec/shift_f12.sh
end

begin
    prog   = irexec
    button = CTRL_SHIFT_KEY_F12
    config = /home/pi/irexec/ctrl_shift_f12.sh
end

Whenever you have made a change to /etc/lirc/irexec.lircrc, you need to restart inputlirc (which automatically restarts liexec):

systemctl restart inputlirc

Action scripts in /home/pi/irexec
These scripts can be updated without having to restart inputlirc. Be sure to set the execute flag on them (chmod 755 /home/pi/irexec/*.sh)
For the piOS installation for the piStorm, the content of my configuration-switching scripts are as follows:

/home/pi/irexec/shift_f1.sh (the F-keys 1-10 with the SHIFT key held down):

#!/bin/sh
cp /home/pi/cfg/a1200_4068_os31.cfg /home/pi/default.cfg
sudo systemctl restart pistorm

In a similar way, I have set up the other shift-f-key combinations as shown in the video.

I have used SHIFT+F12 for a safe reboot, and CTRL+SHIFT+F12 for a shutdown of the pi. If running piStorm in RTG mode there can be a delay of about 1 minute before something happens.

/home/pi/irexec/shift_f12.sh:

#!/bin/sh
sudo systemctl stop pistorm
sudo reboot

/home/pi/irexec/ctrl_shift_f12.sh:

#!/bin/sh
sudo systemctl stop pistorm
sudo halt -p

You can check the status of the piStorm service to see that it received the shutdown command:

root@raspberrypi:~# systemctl status pistorm
● pistorm.service - Start piStorm 68k emulator
   Loaded: loaded (/lib/systemd/system/pistorm.service; disabled; vendor preset: enabled)
   Active: deactivating (final-sigterm) since Sat 2021-04-24 23:48:43 BST; 1min 6s ago
  Process: 1023 ExecStart=/home/pi/start-emulator.sh (code=killed, signal=TERM)
 Main PID: 1023 (code=killed, signal=TERM)
    Tasks: 10 (limit: 873)
   CGroup: /system.slice/pistorm.service
           ├─1024 sudo ./emulator --config /home/pi/default.cfg
           └─1025 ./emulator --config /home/pi/default.cfg

Apr 24 13:23:53 raspberrypi start-emulator.sh[1023]: [MUSASHI] Mapped read range 4: 40000000-48000000
Apr 24 13:23:53 raspberrypi start-emulator.sh[1023]: [MUSASHI] Mapped write range 3: 40000000-4800000
Apr 24 13:23:53 raspberrypi start-emulator.sh[1023]: Platform custom range: 00E90000-80010000
Apr 24 13:23:53 raspberrypi start-emulator.sh[1023]: Platform mapped range: 00200000-48000000
Apr 24 13:23:53 raspberrypi start-emulator.sh[1023]: RTG display disabled.
Apr 24 13:23:53 raspberrypi start-emulator.sh[1023]: Pitch: 800 (800 bytes)
Apr 24 13:23:53 raspberrypi start-emulator.sh[1023]: RTG thread running
Apr 24 13:23:53 raspberrypi start-emulator.sh[1023]: error: XDG_RUNTIME_DIR not set in the environmen
Apr 24 23:48:43 raspberrypi systemd[1]: Stopping Start piStorm 68k emulator...
Apr 24 23:48:43 raspberrypi systemd[1]: pistorm.service: Main process exited, code=killed, status=15/
root@raspberrypi:~# 

Revised start-emulator.sh script
Because I want to run the wip-crap version of the emulator at some points, I have added a check for the mentioning of “wip-crap” in the configuration file that is going to be used, then depending on its existance or not, launching the emulator from the correct directory:

#!/bin/sh
if grep -q wip-crap "/home/pi/default.cfg"; then
  echo "wip-crap"
  cd /home/pi/pistorm-bnu/
else
  echo "main"
  cd /home/pi/pistorm/
fi
sudo ./emulator --config /home/pi/default.cfg
exit 0

To enable the wip-crap version, just add a comment in the beginning of the configuration such as:

# using wip-crap functions

piStorm – basic configuration

After going through my Getting Started guide you have the piStorm starting up automatically (if followed the very last step) as a emulated 68020 CPU. If your onboard kickstart allows it, you might also have 128MB Z3 RAM. It will start up and display the “insert a disk” screen/animation depending on which Kickstart you have on the Amiga motherboard.

Configuration file

The default configuration file, named “default.cfg”, is located in the “pistorm” folder. It’s a good idea to keep this file untouched and make changes to a copy of it, then telling the emulator to use it by using the –config parameter.

In my installations, I have put the copy of “default.cfg” in /home/pi (“../” as a relative path from within the pistorm folder), and keep the rest of Amiga-related files (kickstart and hdf) in a folder named “amiga-files” in the ‘pi’ user’s home (/home/pi/amiga-files).

Here are the very initial steps to copy the default configuration to /home/pi, and to set up the amiga-files folder (after logging in as the ‘pi’ user):

cp -p pisotrm/default.cfg .
mkdir amiga-files

Stop the 68k-emulator if it is running (two methods, depending on how/if it is auto starting):
If started from rc.local:

sudo killall emulator

If set up as a service:

sudo systemctl stop pistorm

Now to autostart the 68k-emulator with a specified configuration file, edit rc.local (if it is started from there) and add –config ../default.cfg so the full command reads:

cd /home/pi/pistorm/ && sudo ./emulator --config ../default.cfg&

For the service method (using my instructions), change the file “start-emulator.sh” in /home/pi:

#!/bin/sh
cd /home/pi/pistorm/
sudo ./emulator --config ../default.cfg
exit 0

Start the 68k-emulator again by running the command from the rc.local file above (for non-service autostart), or by using systemctl if you have set it up as a service:

sudo systemctl start pistorm

For further restarts of the 68k-emulator, do as previously described with “killall” or “systemctl” depending on your choice of setup. With “systemctl” there is also the “restart” option:

sudo systemctl restart pistorm

A restart of the 68k-emulator will also reboot the Amiga.

Configuration options

The default.cfg contains some examples and descriptions of many of the options available. You can also read the current distributed configuration file on GitHub:
default.cfg

Documentation for some the piStorm features for the Amiga is located within some subfolders on GitHub:
piscsi (map hdf files as hard drives on the Amiga side)
rtg (RTG using the Picasso96/P96 package)
net (not fully implemented)
a314 (includes shared folder on sd-card, networking and shell-access to the pi)

CPU type

The easiest one, leave this at “68020”. This is the most complete and compatible CPU for the emulator.

Kickstart mapping

To get better performance and enable Z3 RAM and get P96 2.4+ working, a Kickstart version 3.1 (40.68) for Amiga 1200 is highly recommended. To obtain the kickstart file the correct way, purchase the Plus edition of Amiga Forever. If you own an Amiga 1200, you can also use any of the tools available for saving the kickstart to a file.

You can name the file whatever you want, but mine is named (renamed from the Amiga Forever set) “kick-31-a1200-40.68.rom”, and I have the file in “/home/pi/amiga-files”.

Early in the config, there is this line:

# Map 512KB kickstart ROM to default offset.
map type=rom address=0xF80000 size=0x80000 file=kick.rom ovl=0

It makes the emulator look for the file “kick.rom” in the current directory (as cd:ed to /home/pi/pistorm before starting the emulator).

Change this to:

# Map 512KB kickstart ROM to default offset.
map type=rom address=0xF80000 size=0x80000 file=../amiga-files/kick-31-a1200-40.68.rom ovl=0

Then restart the emulator to see that it uses the kickstart file (easy to spot if you have a 2.x or 1.x KS on the motherboard).

Have the installation floppy for AmigaOS 3.1 ready (also available from Amiga Forever). If you boot the installation floppy, you would end up at the Workbench and be able to see that the FastRAM (128MB Z3) has been mapped.

Memory mapping

The default memory section in the config looks like this:

# Map 128MB of Fast RAM at 0x8000000, also known as 32-bit Fast RAM or CPU local Fast RAM.
# Only supported properly on select Kickstarts, such as 3.1+ for Amiga 1200, 3000 and 4000.
#map type=ram address=0x08000000 size=128M id=cpu_slot_ram
# Map 128MB of Z3 Fast. Note that the address here is not actually used, as it gets auto-assigned by Kickstart itself.
# Enabling Z3 fast requires at least Kickstart 2.0.
map type=ram address=0x10000000 size=128M id=z3_autoconf_fast
# Max 8MB of Z2 Fast can be mapped due to addressing space limitations, but for instance 2+4MB can be chained to leave 2MB for something else.
#map type=ram address=0x200000 size=8M id=z2_autoconf_fast
#map type=ram address=0x200000 size=2M id=z2_autoconf_fast
#map type=ram address=0x400000 size=4M id=z2_autoconf_fast

Pretty self-explanatory, but some of the RAM types are not supported on all Kickstarts. There is no speed difference in using “32-bit FastRAM” compared to “Z3 Fast”. The “Z2 FastRAM” is the equivalent of a RAM expansion plugged into the expansion port of Amiga 500 and Amiga 1000, or in a Zorro slot on the Amiga 2000. These expansions could be standalone or a part of a hard drive controller for those systems.

piscsi – hard drive emulation

The next section in the configuration is about piscsi, which allows you to assign up to 7 auto-mounted and auto-bootable virtual hard drives on the Amiga.

# Uncomment this line to enable the PiSCSI interface
#setvar piscsi
# Use setvar piscsi0 through piscsi6 to add up to seven mapped drives to the interface.
#setvar piscsi0 PI0.hdf
#setvar piscsi1 PI1.hdf

My virtual disk is 1GB in size and consists of several partitions (three smaller ones for different versions of AmigaOS, and a larger one for common content) and is named “amiga-1gb.hdf”. The location for my .hdf is as the Kickstart ROM, “/home/pi/amiga-files”.
To enable the pi-scsi.device, just uncomment the line “setvar piscsi”, then put the name of the .hdf as a parameter the “setvar piscsi0” (or 1-6):

# Uncomment this line to enable the PiSCSI interface
setvar piscsi
# Use setvar piscsi0 through piscsi6 to add up to seven mapped drives to the interface.
setvar piscsi0 ../amiga-files/amiga-1gb.hdf

This will make the Amiga recognize the harddrive with the correct DEVICE tooltype of HDToolbox (“DEVICE=scsi.device” should be changed to “DEVICE=pi-scsi.device”). Once set up using HDToolbox (detect/change disk type and create the partitions), it can be used to install AmigaOS on and boot from.

Also take a look at the current documentation at GitHUb:
piscsi

RTG using Picasso96 or P96

See the documentation at GitHub:
rtg (RTG using the Picasso96/P96 package)

You need two files from the GitHub repository transferred over to the Amiga after having installed Picasso96 or the more maintaned release of P96. I use my registered 2.4.6 from Individual Computers
Google search for 'P96+2.4.6'

See my updated instructions in piStorm – AmigaOS 3.1 installation

Keyboard and mouse passthrough

It’s pretty well documented in the default.cfg:

# Forward keyboard events to host system, defaults to off unless toggle key is pressed, toggled off using F12.
# Syntax: keyboard [grab key] [grab|nograb] [autoconnect|noautoconnect]
#   "grab" steals the keyboard from the Pi so Amiga/etc. input is not sent to the Pi
#   (also helps prevent sending any ctrl-alt-del to the Amiga from resetting the Pi)
#
#   "autoconnect" connects the keyboard to the Amiga/etc. on startup
keyboard k nograb noautoconnect
# Select a specific filename for the keyboard event source.
# This is typically /dev/input/event1 or event0, but it may be event3 with for instance a wireless keyboard.
# Use ls /dev/input/event* to check which event files are available and try until you find the one that works.
#kbfile /dev/input/event1
# Forward mouse events to host system, defaults to off unless toggle key is pressed on the Pi.
# Syntax is mouse [device] [toggle key] [autoconnect|noautoconnect]
# (see "keyboard" above for autoconnect description)
mouse /dev/input/mice m noautoconnect

Just enable the kbfile line and set the correct device there if it doesn’t work with the defaults.

Real Time Clock (RTC)

The RTC is enabled in the default configuration and transfers over the time and date on the Pi to the Amiga.

# Map RTC as a register range.
map type=register address=0xDC0000 size=0x30000

To get the correct time on the Pi, it must be connected to the Internet (as set up in my Getting Started guide).
Also, you must ensure the timezone is set correct on the Pi, otherwise your time will be off an hour or two. To set the correct time zone, hse the ‘timedatectl’ command:

List the available time zones:

timedatectl list-timezones

Set the time zone:

sudo timedatectl set-timezone Europe/Stockholm

Switching between multiple configurations

When you have one configuration you’re happy with, you might want to set up alternative configurations for compatibility or experimental reasons.
I wrote this guide on how to capture keypresses on a keyboard connected to the pi on the piStorm. Before setting up the commands to execute (the very last step), make a copy of your /home/pi/default.cfg, as this file is to be overwritten when changing configuration using the defined keypress events (in my example SHIFT in combination with the F-keys, SHIFT+F12 to reboot the pi, CTRL+SHIFT+F12 to shut down the pi).

Getting files over to the Amiga

Not really a configuration thing, but I’ll explain the possible methods to transfer files (as for example archives for installing, or unpacked archives of programs ready to launch the installer from) over to the Amiga.

Since networking is not yet implemented, and a shared folder from the Linux side is not available, files have to be transferred the ‘classic’ way.

The options as I see are:
* (real) floppy disks
* (adf) through either an externally connected GoTek drive, or as a replacement for the internal drive
* (hdf) a pre-prepared hdf (full RDSK image, not a partition) file containing archives of programs to install
* (adf) from a hdf, mounting using any of the available options like GoADF
* physical disk connected to the pi, then exported as a piscsi device on the Amiga (complicated and a bit risky, described in detail in the piscsi documentation at GitHub)
* since May or June 2021, a314 emulation can be used to access a folder on the SD-card and even transferring files over to the Amiga over the a314 SANA-II network device. You find my detailed instructions on setting up the shared folder and network in my “AmigaOS 3.1 installation guide“.

piStorm – experimental stuff wip-crap

Some documentation (at least of changes) can be found in the repo: https://github.com/beeanyew/pistorm/tree/wip-crap/

Get and build piStorm software (wip-crap tree)

mkdir -p /home/pi/bnu
cd /home/pi/bnu
git clone https://github.com/beeanyew/pistorm.git
cd pistorm
git checkout wip-crap
make
cd ..
mv pistorm ../pistorm-bnu

Expected output:

Update CPLD bitstream

Build the program to test access to chip RAM

cd pistorm-bnu
chmod +x ./build_buptest.sh
./build_buptest.sh

For EPM240

chmod +x nprog_240.sh
sudo ./nprog_240.sh

For EPM570

chmod +x nprog.sh
sudo ./nprog.sh

wip-crap-only feature configuration

By the merge of July 11 2021, main is up to date with wip-crap.

piStorm – Getting started

In this guide, I explain how I set up the piStorm, beginning from a fresh board (with just the pins and pi header soldered onto it) until it starts up the Kickstart “insert disk” screen. This is not the only way to do things, and necessarily not the best way, it’s my way 🙂

Pi setup

Use the official Raspberry Pi Imager or a third party tool like BalenaEtcher to write the Lite version of Raspberry Pi OS to a SD-card and start up the pi
Using raspi-config, set wifi-credentials (System Options) and activate SSH (Interface Options).
(everything except the basic installation can be done without network connectivity, but it is easier to do it over SSH than at the terminal)

sudo su -
apt -y update
apt -y upgrade

Updating will take about 10 minutes. Usually a reboot is recommended here, but in this case not necessary, so continue with the section below and install some packages and test the GPIOs.

Install required packages

apt -y install git
apt -y install libsdl2-dev
apt -y install openocd
exit

Testing your Pi’s GPIO pins

Testing your Pi’s GPIO pins. This MUST be run disconnected from the PiStorm, just power up the Pi with USB and do it outside the Amiga entirely.
Info from https://www.raspberrypi.org/forums/viewtopic.php?t=180505

sudo apt -y install pigpio
wget http://abyz.me.uk/rpi/pigpio/code/gpiotest.zip
unzip gpiotest.zip
sudo pigpiod
./gpiotest

Expected output:

Get and build piStorm software

git clone https://github.com/captain-amygdala/pistorm.git
cd pistorm
make

Expected output:

Optional step, get and build wip-crap development version

Only build the emulator for use/test later on – skip the CPLD update for now and do that when the wip-crap build is going to be used.
piStorm – experimental stuff wip-crap

Shut down the pi

This is as far as you get without the piStorm connected, so it’s time to shut down the pi and then stuff it away until you get your piStorm (- shutdown and continue as below if you already have it).
‘pigpiod’ (for testing the GPIOs) above keeps the pi waiting for 90 sec if not killed before shutdown.

sudo killall -9 pigpiod
sudo halt -p

Update CPLD bitstream

Shut down the pi, take a look 20 pixels above :), disconnect power and connect the piStorm adapter to the GPIO

Connect power and let the pi start, check network connectivity or re-setup if necessary.

Build the program to test access to chip RAM

cd pistorm
chmod +x ./build_buptest.sh
./build_buptest.sh

For EPM240

chmod +x nprog_240.sh
./nprog_240.sh

For EPM570

chmod +x nprog.sh
./nprog.sh

Expected output (nprog.sh for EPM240):

Installing the piStorm in the Amiga

Shut down the pi, disconnect everything and separate the adapter from it.
Replace the CPU in the Amiga with the adapter board (the Pi connector should be on the left side). Align both rows of pins with the CPU socket, then, without any pressure on the board, move the adapter up and down (front and back) on the socket to feel the point in which the pins are centered in the socket.
Check that all pins go into the socket an press it down until it bottoms.

Mount the pi on the adapter with the USB port facing towards you, and the HDMI connector on the right side.

Connect the HDMI output and a keyboard.

Starting the emulator

Power on the Amiga, the pi will be powered and boot up (the output from the Amiga will be just a black screen (or any other single-colored screen, I usually get a red one before the emulator starts) until the CPU emulator is started).
Login as ‘pi’ and change directory to ‘pistorm’.

Initial check – can the piStorm read and write to the CHIP RAM ?

sudo ./buptest

Expected output:

In case of any error, check that the piStorm adapter is pressed down firmly in the CPU-socket. It should be pressed down so it bottoms (plastic on the pins touching the socket). Once fixed, re-run buptest. Repeat until zero errors are reported.

Start the emulator

sudo ./emulator

Expected output (untouched default.cfg in pistorm directory). If the kickstart file (kick.rom) for softkicking is not found it defaults to using the KS on the mainboard.

On my test computer (A500 r6) it falls back to the 3.1.4 ROM:

From here on, you can use the Amiga as any other floppy-only Amiga. I will document the features (kickstart switch, RAM, hard drive, RTG) in another post to keep these at readable length.

Autostart the emulator on system boot – the simple method

In /etc/rc.local, add before the “exit 0” line:

cd /home/pi/pistorm/ && sudo ./emulator&

Autostart the emulator on system boot – advanced method

The CPU-emulator will be started a lot earlier if adding it as a systemd service.
Become root (the ugly way):

sudo su -

Create the file “pistorm.service” in /lib/systemd/system:

[Unit]
Description=Start piStorm 68k emulator
After=local-fs.target

[Service]
ExecStart=/home/pi/start-emulator.sh

[Install]
WantedBy=local-fs.target

Create the file “start-emulator.sh” in /home/pi:

#!/bin/sh
cd /home/pi/pistorm/
sudo ./emulator
exit 0

Make “start-emulator.sh” executable:

chmod 755 /home/pi/start-emulator.sh

Reload/regenerate systemd configuration files:

systemctl daemon-reload

Enable the automatic start of the CPU-emulator:

systemctl enable pistorm.service

Now, in case you need to restart the emulator (and Amiga as well), this can be done without having to find the ’emulator’ process:

systemctl restart pistorm

Other similar guides for the piStorm

Lightning Amiga Performance With PiStorm (LinuxJedi)

piStorm – raw interview from Discord/IRC

26 March 2021 @20:10

Claude Schwartz was interviewed by Bob1969 for the French Amiga fan website “Amiga Impact”.

<Bob1969> let’s start
<Claude> ok

<Bob1969> Q1: Who are you ? engineer, hobbist, selfmademan ..
<Claude> I’m a hobbist but also work as electronic engineer since 20 years now

<Bob1969> What is your relationship with Amiga community ?
<Bob1969> How does this idea of Pi storm comes to you ?
<Claude> Hmm difficult question 🙂 I was using Amiga when I was around 12 years or so. My first Amiga was an A500 which i got from my father because he bought himself a A2000 and he gave me his A500. I used the Amiga mostly for games . But at one point all my friends turned to PC , so I had of course to buy also a PC 🙂 Then i took a break from Amiga for a long time, around 2018 I saw the Vampire V600 and immediatly tought i need to have that too
<Claude> I bought an A600 from Ebay and placed an order for a V600. While waiting for the V600 to arrive I started to buy more Amigas and Accelerators (Yes I was addicted again lol) . Then shortly after I recived the V600 i was invited by the Vampire Team to join in. So I did and I had a fun time there of about 2 Years, helping testing and some vhdl coding. Around 2020 I decided that I want something different
So I started with Pistorm , it was a idea i had for longer. Using an small CPU board to emulate an 68000 in place of a real 68000

<Bob1969> What are the main technical issue to connect GPIO to 68000 socket ?
<Claude> Its the timing, the 68000 is not a fast processor. but the pins of a 68000 needs to follow a very strict timing. Because of that Pistorm has a small CPLD/FPGA which does the timing in hardware and recives commands from the Raspberry over the GPIO pins. This relax the timing for the Raspberry
<Bob1969> U4 ?
<Claude> yes the big chip . Thats a Altera MAX2 CPLD

<Bob1969> Which ressouces from Pi will be available under Amiga system (Ram,Gfx,Sound,storage )?
<Claude> First is the CPU Emulation , this is currently using Mushashi, Musashi is a very popular CPU also used by MAME. Then some ammount of RAM from the PI is also directly usable by the CPU Emulator . This RAM can be up to 256MB (limited by the Raspberry Pi RAM size)
<Claude> Then there is a RTG system. The RTG Memory is also directly accessible by the CPU emulation. As the RAM on the Raspberry is very fast , the RTG system is very fast compared to regular Zorro Based RTG cards
<Claude> Then there are two storage systems. One is by emulation of Amiga Gayle IDE , this makes it possible to boot directly from a emulated HDD with a Kickstart ROM >2.x . Lately a full SCSI emulation was added , the SCSI emulation bypasses most of the bottlenecks the Gayle IDE emulation brings. To make it possible to boot from that emulated SCSI thre is also a bootrom and driver written for it. This makes it possible to use a standard kickstart and still use the SCSI emulation
<Claude> Further Kickstart ROMs can be used on the Mainboard, but also used as File from the Raspberry SD Card

<Bob1969> What Performance Do you expect ?
<Claude> Most of these advanced features were programmed by Bnu ( Famous for his NES works and also for working on mntmn’s great ZZ9000 RTG card)
<Claude> Currently the performance is at 15 to 18 MIPS , which is roughly equalivent to a 68030 at 60MHz

<Claude> There are plans to extend this further 🙂
<Bob1969> It will depend which Pi you use …zero , 3+,4
<Claude> Yes the current version of PiStorm is very optimized using a Raspberry Pi3 . Future versions of PiStorm will be optimized for Pi4 / CM4

<Bob1969> How many time do you estimate that the project will be in stage 1.0 ?
<Claude> It has some bugs were we working on currently . Mostly its about timing and irqs . The Amiga is sometimes demaning when it comes to this 🙂 Version 1.0 , good question … I would say the journey to 1.0 is the interesting part , so i might take some time to reach 1.0 .

<Claude> Bob1969: was this the question ?
<Claude> i understand it how far/stable it is currently
<Bob1969> it’s an introduction to the next question 😉
<Claude> ok 🙂

<Bob1969> after validate a prototype, Do you plan to start a mass production (industry production) ?
<Claude> No 🙂 The fundamental idea of PiStorm is to make it free and open. The Hardware itself is not very complicated. So advanced hobbiest can build them by themself. For not so advanced hobbiest (or people who are lazy like me 🙂 ) All the design files are published. These desgin files are readymade for a Chinese PCB manufacturer who also does PCB assembly. So the idea is to upload the desgin files to these PCB service in China and get back a mostly readymade PiStorm for roughly 15€ 🙂 I don’t know if it okay for amigaimpact , it’s not meant as free advertisment for them, but the company is called JLCPCB
<Claude> Only the pins for the CPU Socket and the Raspberry PI needs to be soldered manually. But I think most Amiga users have already touched a soldering iron
<Bob1969> Why can’t Chinese factory do the soldering ?
<Bob1969> PCB makers are linked with assembling factories
<Claude> Yes the company is a PCB maker with assembly factory. They do the soldering of all SMD components, they would probably also do the soldering of the Pins . But I have not tried it yet there to let them solder also the pins.

<Bob1969> last question , How do you think this kind of project ( if the graft live ) can involve in the future ?
<Claude> The next step is to add a little extra hardware (also opensource of course) to make it possible to output the Amiga Video and Audio over the same HDMI Plug which outputs RTG. Then there is PiStorm2 in planing, PiStorm2 targets “32 Bit” Amigas like A1200,CD32,A3K,A4k and will be using the new Rasperry Compute Module 4. In parallel there are works on using PiStorm on other 68000 Computers like Atari. Also MAC and Sharp X68000 are very interesting Platforms for PiStorm 🙂

<ShK> Here’s some random bringup pictures. if they are ok for Claude to use
https://usercontent.irccloud-cdn.com/file/tJRggCLf/BringUp.7z
<Claude> thanks ShK 🙂 i have no idea whats inside but i (almost) fully trust you 🙂
<ShK> ok
<ShK> …. but you will be fine 🙂
<Claude> looks good 🙂
<Bob1969> Amazing pictures !!!

<Bob1969> It’s the End of this interview, i will say : Claude you’re a gentleman
<Claude> thank you Bob1969 , but can i say something?
<Bob1969> You have been very kind.
<Bob1969> of course !
<Claude> The whole PiStorm project is only possible trough all the people who help on it. Without the great contributions and help I got with it , it would still only have 2 MIPS and boot only from Floppy 🙂 So I like to thank very much Bnu,Niklas,Shanshe,ShK,Flype… and all the people at the PiStorm Discord 🙂

<Bob1969> Do you allow me to publish this interview in a web site ?
<Claude> yes of course 🙂
<Bob1969> it will be translated for your future French fans

peo — Today at 9:07 PM
@Claude you did not get any question about currently supported systems (and also the work in progress with the A600 version) , can you toss that in for @Bob

<Claude> Peo , oh yes . Sorry if i forgot some things! Yes people working currently on other Versions of PiStorm. There is a A2000 CPU slot version in the works and a A600 Version
<Claude> Also the Spanish Retrowiki.es did a own version of PiStorm for themself

[HAJ] — Today at 9:16 PM
Thank you for doing the whole interview in this channel, very interesting and superb work @Claude !!

Claude — Today at 9:17 PM
if i forgot something then please speak up i have a very short memory and often forget things to mention

peo — Today at 9:17 PM
in which models is piStorm currently working ? All 68000, except for some flaws with the A600 ?
(A1000 possibly needs relocator as the CPU is on the opposite side)

Claude — Today at 9:18 PM
personally i tested in A500, A2000 Rev4 . I have seen it running in CDTV too

peo — Today at 9:20 PM
are there any (longer) videos of it running (I know, but hidden here in the chats) ?

<Claude> hmm on my twitter maybe

peo — Today at 9:24 PM
(asking for my short info page), is it ok to use videos and pictures you have shared here and on Twitter ? Ofcourse mentioning the source, but I might have to download and share them through other channels to use them on the page ?
@_Bnu is it ok with your photos and videos too ?

<Claude> yes of course

<ShK> i find one bringup video


<Claude> haha ShK that was the first boot of pinball dreams
<ShK> yes! 🙂

_Bnu — Today at 9:26 PM
All my videos are top secret classified by NASA and the Martian Government.

<Bob1969> Time of expansive accelerator is over..:)
<Claude> Hmm I don’t see it that way 🙂 Warp,Vampire,ACA all these are great products. PiStorm is just different , but it can’t replace the feel of a real 68060 or the features of a Apollo Core or the pureness of a ACA on a A500

peo — Today at 9:30 PM
not when retrorewind starts selling piStorm at $150-$250 …

<Bob1969> Thank you Claude & all your team for time !

mark sealey — Today at 9:34 PM
@peo I have a few videos on my YouTube…. mobile phone camera videos tho

<Claude> thank you Bob1969
<Bob1969> New competitors are goods and create dynamic
<Claude> yes , but I love peace . better life together friendly than in stupid Amiga wars 🙂
<ShK> pistorm opens a lots of possibilities

peo — Today at 9:35 PM
@mark sealey yes, I have seen some of those (some abit shaky), I guess ok to use/reupload these too ?

mark sealey — Today at 9:37 PM
@peo lol yeh sorry about that….now my PiStorm is quite stable I hope to get a HDMI capture device..,..I’m left handed too that doesn’t help

peo — Today at 9:38 PM
@mark sealey I do not want to make the viewers sea-sick 🙂

mark sealey — Today at 9:38 PM
I uploaded a doom video today
@peo lol I understand