Further Brass development
Friday, 28th April 2006
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...