Waltress (PPC Assembler)
#11
Thank you for the kind words.

Regarding windows, I did not know that. Is Windows using 16-bit ASCII? If so, I was under the assumption that newlines in 16-bit ASCII are 0x000A.

At the moment, I have a temp new version (been too lazy to test lol) that fixes the comments bug, so comments can now be placed anywhere. I also have another new sub-routine file written for branch labels. It's 80% done, just running into some 'conceptual' issues (skill issue tbh).

After that, I'm not sure if I really want to tackle Assembler Directives (symbols, macros, etc). Might be done with Waltress if I do get to implementing in Branch Labels.

I have another project I'm working on. It's a Broadway Instruction Simulator written in ARM64 Assembly. Needless to say, this is a huge project to write in Assembly.

EDIT: Just found out via google that while New Line for ASCII is 0xA, there is also Carriage Return which is 0xD. As you said, WIndows does an enter as Carriage Return + New Line (0x0D0A).

EDIT2: Got a new version of Waltress ready for release (0.6.1). Fixed the Windows Carriage bug, fixed comments restriction, added in chain-comment abilities. Just want to test a few more times before release. Probably won't get time tomorrow because work. After all of this, I'll see if I can finish up the Branch label stuff.
Reply
#12
Version 0.6.1 has been released!



Here's what's new:
  • Restrictions on location of Comments removed
  • Chain comments (/*example*/) now allowed
  • Restrictions of having spaces, tabs, & enters before Gecko Header removed
  • Fixed bug on interpreting new lines (Enters vs Carriages)
Reply
#13
Version 0.7 has been released!



Updates:
  • Branch Labels (with some restrictions) can now be used during assembling
  • Fixed bug where addis/lis was being disassembled using SIMM instead of UIMM
  • Fixed bug that prevented faulty instruction from being displayed on HBC app error message during assembling
Reply
#14
Version 0.8 now out in the wild!



New Features & Updates~
  • Engine files are now standard functions within Source. This prevents faults occurring on certain versions of QEMU
  • Some Immediate Value restrictions have been lifted (i.e. can use decimal values for SIMMs/UIMMs of integer instructions, can use negative hex values for most instructions, etc)
  • Added in subi, subis, and subic(.) simplified mnemonics. Somehow I forgot those? lol
  • Fixed Bug that allowed multiple branch landings spots to have the same name
  • Fixed Bug that allowed name-only instructions to have junk appended to it and still be assembled (i.e nopxxxxx being read as nop)
  • Fixed Bug that used SIMM range instead of UIMM range for addis when assembling
  • Placed in a function to check if any IMM exceeds 8 digits in net width. Therefore an Error Message will be displayed (that shows the faulty instruction) instead of a fault occurring.
Reply
#15
Version 0.9 has been released!



Updates~
  • Lifted more IMM restrictions off many instructions
  • Fixed a tiny bug in the disassembler when it came to deciphering crclr vs crxor instruction
  • On previous version, I thought I fixed the "junk name-only" bug. Apparently I didn't, so now it's actually fixed.



Author's Note:
We've come a long way since the first ever release. I would say Waltress is a somewhat usable Gecko/PPC Assembler now. The only items left to complete are assembler directives, register alias capabilities, and lifting some of the branch label restrictions/bugs. After that, Waltress can compete (and would be better) than any other Gecko/PPC Assembler.

However, I am personally worn out of this project. Due to the handwritten nature of Waltress via Assembly and my lack of competence, I've got into some technical debt. Basically that means, code cleanup and optimization (not needed tbh), would be a pain to complete. Not only that, implementing Assembler Directives would be quite the task to do in handwritten Assembly.

In conclusion. I am basically done with this project. If more bugs get reported, I will still fix those. Cheers.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)