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...