SkillAgentSearch skills...

PBasmUI

PureBasic IDE Tool to view, edit and re-assemble the assembler file.

Install / Use

/learn @tajmone/PBasmUI
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PBasmUI

PBasmUI v3.22 (Tristano Ajmone fork)
PBasmUI v3.25 (Horst Schaeffer upstream)
PureBASIC v5.61 | Windows

This project is an offshoot of Horst Schaeffer's PBasmUI — a PureBASIC IDE Add-In to create, view, edit and re-assemble the intermediate assembly code from PureBASIC source files:

  • http://horstmuc.de/pb.htm

Maintained by Tristano Ajmone, with the kind permission of Horst Schaeffer.


Table of Contents

<!-- MarkdownTOC autolink="true" bracket="round" autoanchor="false" lowercase="true" lowercase_only_ascii="true" uri_encoding="true" depth="3" --> <!-- /MarkdownTOC -->

Files List

Introduction

PBasmUI is an elegant and powerful IDE add-in for creating and reassemblying commented assembly files from PureBASIC sourcecode.

PBasmUI screenshot

Thanks to its graphical user interface, working with PureBASIC intermediate assembly code has never been easier. No need to manually invoke the pbcompiler via the command line interface: with PBasmUI accessing advanced compiler features is a breeze — and the source file's original compiler options are preserved too.

Features

  • Generate the "PureBasic.asm" Assembly file (= /COMMENTED compiler option) and open it
  • Produce executable file and/or run program
  • Re-assemble current asm file (= /REASM compiler option)
  • Change/add options
  • Compiler messages are captured into log file ("<filename>.log")
  • Compiler options settings are taken from either:
    • the file "<source filename>.cfg" (e.g. "PBasmUI.pb.cfg"), if found,
    • the IDE-generated commented section at the end of the source file).

Setup

Setting up PBasmUI should be quite obvious (if you're working with assembly code in PureBASIC you should be an experienced user already). As a general reminder, here are the basic steps:

  1. Compile "src/PBasmUI.pb" to "PBasmUI.exe"

  2. Follow PureBASIC documentation on how to setup an external tool in PureBASIC IDE:

  3. Make sure, in PBasmUI's tool settings, that "PBasmUI.exe" is invoked with the following arguments: "%FILE" (double quotes included).

Changelog

This changelog resumes the changes introduced to Horst's code in the various releases of the PBasmUI "tajmone fork". More details can be found in the source files comments.

Please note that the changes and features introduced here reflect my personal needs in using PBasmUI, and not shortcomings in the original application. Also, bare in mind that my changes might disrupt the behaviour of the original tool. Bugs resulting from these changes are my fault, not Horst's.

Also, bare in mind that PBasmUI is an app that was started in 2004, with PureBASIC 3.x, and updated along the years to keep up with PureBASIC updates. Some parts of its original code might still refer to old behaviors of the PB compiler which are no longer active, but neither problematic. A good example is the /UNICODE compiler switch, which ceased to make any difference in the compiler from PureBASIC v5.50 onward, but it's kept for backward compatibility with previous versions — with later versions of PureBASIC this switch is just ignored, silently.

v3.22 (2017/12/05)

First stable-release fork from Horst's PBasmUI v3.21.

  • Added "(tajmone fork)" to UI window title, to avoid confusion with Horst's original version PBasmUI.
  • A log file named "<filename>.log" is always created in the source file folder (this is the "Error.out" file created by the original version in a temporary folder).
  • Now PBasmUI outputs the compiled executable, the "PureBasic.asm" and the log file ("<filename>.log") to same folder as the source file.
  • When "Product > Executable" is unchecked, the executable file is created in Windows TEMP folder ("%TEMP%\PureBasic.exe"). Previously the unchecked "Executable" option was handled by passing the "/CHECK" switch to the compiler, but that prevented the creation of the "PureBasic.asm" file. There is no way to produce the "PureBasic.asm" file without the executable, so this solution seemed the best workaround to me.
  • Removed "Product > Inline ASM support" option. This UI option was rasing an "/INLINEASM: Unknown switch" error.
  • Tweaked Gadget Events behavior:
    • Checking "Source > /REASM" option sets to checked and disables the "Product > Executable" checkbox because with this option creating an executable is mandatory.
    • Checking "Source > PB File" re-enables "Product > Executable" checkbox.
  • Before invoking the compiler with /REASM option, if the "Product > Executable" path string is empty it will be set to "<filename>_reAsm.exe" before compiling.
  • Added #PB_Program_Hide flag to the RunProgam() that invokes PB compiler, so that it launches in invisible mode. This fixes the flash of the CMD window that was opnening and closing in the background when clicking the "Run" button.

About This Project

I wanted to tweak Horst's PBasmUI to my personal needs, so I contacted him and asked permission to do so. He kindly consented to my request, and this repository was born.

Development

My variations on Horst's original code are built on his PBasmUI v3.21 release. Development takes place in the [dev-rc][dev-rc] branch, were various release candidates are commited and tested before declaring them stable releases. Stable release source files are then just checked out into master branch.

Upstreams Archive

The upstreams folder is for archiving the sources of Horst's releases of PBasmUI (ie: the upstream version). This will simplify the task of integrating changes from newer versions of Horst's PBasmUI into this project (downstream), by diffing the source files of the latest release with those of the release this project was built on (ie: v3.21), or of the latest release whose changes have been integrated.

Roadmap

The full Roadmap can be viewed in the repository project board:

  • https://github.com/tajmone/PBasmUI/projects/1

Here is a task-list resume of the roadmap status:

  • [x] Direct compiler output and logs to source-file folder (link)
  • [ ] Add additional compilers support (link)
  • [ ] Add source preprocessing feature (link)
  • [ ] Implement compilation with Version Information (link)

These are ideas I would like to implement, in due time. Some of these might end up not being worth implementing — eg, if they would end up departing from the original goal of this app, which is to simplify (rather than make more complex) working with intermediate assembly files. Others might turn out to be too diffcoult or impractical to implement.

It's just a wishlist, with no real deadline set. PBasmUI already does a great job at what it does, but I feel that some changes could make its use even better, then I'll do my best to implement them.

Most important of all is going to be keeping it up to date with PureBASIC updates and new features (PureBASIC v6 is not far away).

License

This project is MIT licensed. When redistributing compiled binaries, further licenses attributions (all MIT compatible) are required for third party components used by PureBASIC compiler.

License for Repository and Sources

Having been granted permission by the author to reuse the original code without restrictions, I'm publishing this project under the terms of the MIT License — as this will grant that Horst's name will always be mentioned:

MIT License

Copyright (c) 2004-2017, Horst Schaeffer -- http://horstmuc.de/pb/
Copyright (c) 2017 Tristano Ajmone -- https://github.com/tajmone/PBasmUI

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice 
View on GitHub
GitHub Stars11
CategoryDevelopment
Updated3mo ago
Forks3

Languages

PureBasic

Security Score

92/100

Audited on Dec 28, 2025

No findings