Forja

Code in Dash without leaving the Amiga.

Forja is a development environment for Dash that runs on the Amiga itself. You write with colours, build and run with one key, debug step by step and draw windows with real MUI. All in one MUI window with a black background.

dash-2.0.2-amiga.lha · 2.8 MB · Forja is inside, in the Dash/Forja drawer

This is a test version: it works in the emulator, but it hasn't been tried on a real Amiga yet.

How the window is laid out. It's the sketch from Forja's plan, not a screenshot.

All in one window

Forja opens a single MUI window with a black background. It speaks English or Spanish, following your Locale preferences.

The editor
It colours the code following Dash's syntax, with line numbers and breakpoints. It has tabs, undo and redo, find and replace, and cut, copy and paste with the system clipboard.
The project
On the left, the files in the drawer: one click opens them. While debugging, also the call stack and the variables.
The output
Compiler errors show at the bottom. Clicking one takes you to its line.
The buttons
Build, Run and Debug. While debugging, Continue, Step, Step into, Step out and Stop take their place: they don't all fit on a 640-pixel screen at once.
Inferencia
One button sends the file, or the selected lines, to Inferencia, the AI for the Amiga. If it isn't running, Forja starts it.
Where you left off
Without a file, Forja opens what you had open last time. You can turn that off in the preferences.

From the keyboard

The keyboard goes to the editor when the pointer is over it. The arrows move; with Shift, they select. With Alt, to the start and end of the line, and page up and down. With Ctrl, word by word and to the start and end of the text. Tab and Shift+Tab indent.

If you close a file with unsaved changes, it asks first.

Step-by-step debugger

Amiga-G or F5 starts the program in the debugger. Set a breakpoint with F9 or a click in the margin. When it stops, the call stack and the variables show on the left.

  • F5Continue
  • F10Step over
  • F6Step into
  • F7Step out
  • F9Breakpoint

How it works: the program is built with a table of its lines and variables, and a breakpoint is a TRAP instruction on its line, without the trace bit. That's why it also works on Emu68, on a PiStorm. While it waits, Forja's window doesn't freeze.

A current limit: if a task started with task_start goes through a line with a breakpoint, it crashes.

Windows with real MUI

The .dashui files, Dash's windows, open in the window editor. On one side, the object tree; on the other, the properties of the one you pick. "+" adds an object, Del removes it and Alt with the arrows moves it. Amiga-D shows the file as text.

Amiga-P opens the preview, and it's the real MUI window, built from the file while you edit it. What you see is exactly what you'll get. The VS Code extension, on Linux, has to imitate MUI with HTML; here there's no need.

It saves files the same way as the VS Code extension, so you can start a window on the PC and finish it on the Amiga. The VS Code extension, on the Dash site

With Inferencia beside it

Inferencia is the AI for the Amiga: you talk to a language model and the model can read and change your files, always asking first. With Amiga-I, Forja sends it the file or the selected lines. If Inferencia isn't running, Forja starts it.

When Inferencia changes a file you have open in Forja, the change goes into the editor: it stays unsaved and you can undo it with Amiga-Z.

Meet Inferencia

Driven by ARexx

Forja opens the FORJA.1 port, for Inferencia and for anyone else. The commands (their names are in Spanish):

ABRIR file [line]
Opens the file, and goes to that line.
ABIERTO file
1 if it's open in a tab.
TEXTO file
What's in the editor, saved or not.
SELECCION
The file, the lines and the selected text.
CAMBIAR file from to text
Changes those lines. The change can be undone.
GUARDAR [file]
Saves.
COMPILAR and EJECUTAR
Build and run, without waiting for them to finish.
ESTADO
Whether it's still building or running.
ERRORES
The errors from the last build.
BUSCAR text
Selects it and says which line it's on.
CAMBIARTODO find replace
Replaces them all and says how many.
IRA line
Goes to that line.

What your Amiga needs

  • AmigaOS 3.0 or later, with a 68020 or better.
  • MUI 5.
  • The Dash compiler: the dash command, which the Dash 2.0.1 installer sets up. If you keep it somewhere else, tell Forja where in its preferences (it's stored in ENV:Forja/dashc).
  • The Inferencia button needs Inferencia, which comes in the same package.
  • Code colours look better with more than 4 colours on the screen.

Forja has no release of its own yet: it comes inside Dash for the Amiga. Unpack dash-2.0.2-amiga.lha and double-click Instalar (the installer). It puts the Dash drawer wherever you choose and adds the DASH: assign and the Path to S:User-Startup. Forja is in Dash/Forja: double-click its icon, or type Forja file in a Shell.

Test version

Forja works in the emulator and passes all its tests. Before its first release of its own, it still needs:

  • Testing on a real Amiga, with a 14 MHz 68020 and with something faster (68030, 68060 or a PiStorm with Emu68).
  • A native English speaker to check the English catalog.
  • Its own package on Aminet, with screenshots.
If something goes wrong, tell me on GitHub

Made in Dash

Forja is written in Dash 2.0, without a single line of C: almost 3,900 lines of Dash. The editor is drawn on an MUI canvas, with its own colours. What Forja needed and Dash lacked (the debugger, .dashui windows built at run time and ARexx commands in an MUI program) was added to Dash itself, so any program can use it.

Discover Dash