Development Environments

The place for codemasters or beginners to talk about programming any language for the Spectrum.
User avatar
PeterJ
Site Admin
Posts: 1368
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Development Environments

Post by PeterJ » Sun Apr 01, 2018 4:02 pm

There has been a lot of talk over the last few weeks about development environments for assembly language on the Spectrum. I thought I would share the work I have been doing with the Atom editor from the people at GitHub. Its available for Windows, Linux and Mac.

I start by installing two additional packages:

atom-shell-commands
Customize shell commands. Similar to 'Run Commands' in NotePad++, 'User Tool' in EditPlus/UltraEdit, 'External Tool' in GEdit and 'Shell Commands' in TextMate.

language-assembler-pasmo
The package enables syntax-coloring for Z80 Assembler like pasmo.

I have Pasmo installed in C:\Pasmo on my Windows box so in 'File' > 'Config' I add the following:

Code: Select all

"atom-shell-commands":
    commands: [
      {
        arguments: [
          "--tapbas"
          "{FileName}"
          "{FileNameNoExt}.tap"
        ]
        command: "c:\\pasmo\\pasmo.exe"
        name: "Pasmo Compile"
        options:
          cwd: "{FileDir}"
          keymap: "ctrl-2"
          save: true
      }
    ]
I can then compile my code by just pressing 'Ctrl+2'. I could make it start an emulator as well, but because I make so many errors its not a good move!


Image
0 x

User avatar
Guesser
Microbot
Posts: 124
Joined: Wed Nov 15, 2017 2:35 pm
Contact:

Re: Development Environments

Post by Guesser » Sun Apr 01, 2018 4:39 pm

is this a thread about how you do it, or an invitation for a "post your speccy dev environment setups" thread?
0 x

User avatar
PeterJ
Site Admin
Posts: 1368
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: Development Environments

Post by PeterJ » Sun Apr 01, 2018 5:17 pm

Hi @Guesser, It's the later.
0 x

User avatar
Guesser
Microbot
Posts: 124
Joined: Wed Nov 15, 2017 2:35 pm
Contact:

Re: Development Environments

Post by Guesser » Sun Apr 01, 2018 5:40 pm

PeterJ wrote:
Sun Apr 01, 2018 5:17 pm
Hi Guesser, It's the later.
I'll write one up in a bit then after I've had my dinner :)
0 x

User avatar
Guesser
Microbot
Posts: 124
Joined: Wed Nov 15, 2017 2:35 pm
Contact:

Re: Development Environments

Post by Guesser » Sun Apr 01, 2018 7:08 pm

Righto, development environments.

I edit using notepad++ with a custom function labels definition

I assemble and link using gnu binutils z80-unknown-coff target compiled with and installed into msys2

I prepare tap files using Winston's bin2tape from the spectranet project and use Tapir and the fuse-utils for anything special.

All building and generation of files is done using makefile and from the command line in console2 tabs

Generally I have my makefiles copy the completed binary to a directory on my network share which is served up by a TNFS server and have a boot.zx file which launches the program at single keypress. I have Fuse set up with a snapshot that boots with spectranet configured and auto-connecting to the tnfsd.
2 x

User avatar
PROSM
Microbot
Posts: 117
Joined: Fri Nov 17, 2017 7:18 pm
Location: Sunderland, England
Contact:

Re: Development Environments

Post by PROSM » Sun Apr 01, 2018 9:56 pm

Thought I'd weigh in here a bit:

My development environment is quite primitive in comparison to the setups of others.

I use Notepad++ for editing source files and HxDen for hex editing of binary files.

To assemble programs, I use Pasmo and for creating the final tape files of my software, I use Tapir.

Most of my work is done through the Windows Command Prompt, which is opened via a batch file which sets up the path to my command-line utilities and makes a virtual drive Z: for the development folder, letting me move the folder elsewhere without disturbing too much. It is from this terminal window where I run Pasmo and other utilities; I don't have shortcut keys set-up in Notepad++.

FUSE is used for testing my software, and occasionally SPIN is brought out if more extensive debugging needs to be done, since SPIN is a bit more user-friendly in that department.
0 x

User avatar
lister_of_smeg
Berk
Posts: 40
Joined: Thu Nov 16, 2017 1:44 pm

Re: Development Environments

Post by lister_of_smeg » Tue Apr 03, 2018 12:04 am

Sublime Text for me with the Z80Asm plugin, and zasm as my assembler.

I use zasm's native support for building .TAP files and a build file which assembles and launches the TAP in Fuse.
0 x

namco
Dizzy
Posts: 98
Joined: Mon Dec 04, 2017 8:55 pm

Re: Development Environments

Post by namco » Tue Apr 03, 2018 1:58 am

Spectrum:
Editor - Notepad++
Assembler - Pasmo
Tape maker - Pasmo and a bit of concat from cmd prompt to put my Z80 code, loader and screen loader together - see this for further details: http://little-shop-of-pixels.blogspot.c ... part2.html
ZX Spin v 0.666 for testing

Spectrum Next:
Editor - Notepad++
Assembler - Pasmo
ZEsarUX for testing
0 x

User avatar
Alessandro
Manic Miner
Posts: 529
Joined: Wed Nov 15, 2017 11:10 am
Location: Messina, Italy
Contact:

Re: Development Environments

Post by Alessandro » Wed Apr 04, 2018 10:56 pm

I type and edit ASM code with Notepad++ and assemble it with Pasmo. I also created some command line batch files to speed things up.

I used Tapir a lot in the past, now I assemble files in the various formats, add turbo data etc. almost exclusively with ZX-Blockeditor.

ZX-Editor is my choice when I have to compose BASIC programs and ZX-Paintbrush for creating pictures, sprites, background and scenery elements etc.

For beeper and AY music I employ Beepola and Vortex Tracker II respectively.

Testing, other than with real hardware - mainly, but not exclusively, the 48K and +2A -, and debugging is made with Spectaculator, which I also use to test Beta Disk and PlusD files before release. I employ SpecEmu to emulate the DivIDE/DivMMC, especially to sort out and correct compatibility problems found while running software through my DivMMC EnJoy, and test compatibility with the Brazilian Beta Disk clones.
1 x

User avatar
Nomad
Manic Miner
Posts: 600
Joined: Thu Dec 28, 2017 12:38 pm

Re: Development Environments

Post by Nomad » Thu Apr 05, 2018 10:42 am

As far as text editors go I don't realy mind much depends on if I just need to make a quick edit or if I need to make extensive changes. For small stuff I just use ed. anything more than a few lines I will use vim or if my machine is behaving itself sublime editor.

It's all wrapped in a Forth program that runs a simple menu loop. I can edit the source, assemble and run the tap file in fuse all with a few key presses. :lol: Low-fi but I am lazy. One of the advantages is if I want to change my emulator, assembler or text editor I can and it won't break my workflow.

Forth is a great systems language - I could have written the same thing in C but it would have been a lot more painful and less flexible.

by entering a 3 char code i can load any program usually use or sequence of commands.

SevenUp or Zxpaintbrush for the spectrum graphics. but there is a more general tool called Grafx2.

If I want to prepare stuff for pdf I use latex. Once you get over the learning curve for tex its actually a very powerful language.

For music I prefer trackers, Milkytracker is great for modern tracking. But I also like sunvox. That said sunvox needs a more modern PC than what I have :lol: Beepola is great for spectrum projects. But really there are some great trackers for the spectrum.

I use Fuse for the emulator, I get salty at some of the limitations of it but I can't think of a better alternative for the moment. I like the fact I can print out my programs to a text file. One thing I cant figure out is how to print the graphics characters in this way though. It would be nice to be able to generate a pdf with the graphics characters left intact.

The system I use with Fuse is a +3.

Assembler I use the command line assembler for Zeus. I find it to be the most powerful of all spectrum assemblers. I wish the IDE would work well in linux under wine but I have hope one day that will get fixed. The thing I like about Zeus was you get a ton of examples to show all the different parts of the assembler. At first it feels like a nagging partner because it asks a lot of questions about the project but once the task becomes complicated you realize it makes seance to know everything from the start. :lol:

Spend time at the start setting stuff up with Zeus makes later development faster.

Pasmo is ok for testing stuff out, but for a big project I would say zeus is a better choice.
0 x

Post Reply