• Advertisement
  • entries
    222
  • comments
    606
  • views
    590320

Further Brass development

Sign in to follow this  

687 views

One of my ongoing projects is Brass, a Z80 assembler.

The newest release adds all sort of goodness, especially nested modules - for example:
.nestmodules
.local
.module Animals

.module Cat
Legs = 4
.endmodule

.echo "Humans have ", Human.Legs, " legs.\n"

.module Human
Legs = 2
.module Brother
Age = 17
.echo "My sister is ", Animals.Human.Sister.Age, " years old.\n"
.endmodule
.module Sister
Age = 21
.global
Arms = 2
.endglobal
.endmodule
.endmodule

.module Spider
Legs = 8
.echo "A spider has ", Legs, " legs.\n"
.endmodule

.endmodule

.echo "Cats have ", Animals.Cat.Legs, " legs.\n"
.echo "My brother is ", Animals.Human.Brother.Age, " years old.\n"
.echo "My sister has ", Arms, " arms (global!)\n"

It also now allows for unsquished binaries (where each byte is expanded to two ASCII characters - the hexadecimal representation of the byte. This is used in native TI-83 programs).

I'm trying to unify (to some extent) 82, 83 and 83+ programming (as the hardware is fairly standard between them) - hopefully, fairly carefully written source code should be able to be assembled to 82, 83 and 83+ binaries for a variety of shells with a single keypress from Latenite. TI haven't made this easy with large inconsistency between system call names and variable names...
Sign in to follow this  


1 Comment


Recommended Comments

Yeah I think you've moved far enough from assembly that it can no longer be called a "Z80 assembler". Mabye "macro assembler" or something else less corny.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement