TNAN0@CCVAX.IASTATE.EDU (02/01/91)
Hello Everybody... I just finished falling in love with Star 1.04.1 - it is a beautiful piece of work. I had 1.03 on my Unix machine, but I don't have a convenient method of transferring the object files from there to my HP. [Also, I HATE using vi, and the system administrator refuses to add anything else.] But, anyway... Star 1.04.1 came with a pre-compiled MSDOS version (I had never tried to compile it myself because of my failures using Turbo C with SAD). I put it on my IBM-compat last night and transferred over a few programs that I had written in SASS. The only changes were "da" -> "data.a" (which I could have just made into a macro, but I prefer data.a myself). Some [and there are many more] of the features I LOVE: - Star is a macro assembler (obviously) - Star has local symbols. VERY few assemblers I have seen for my MS-DOS machine have this feature. This means that I can stop using infinite variations of "loop", "loopy", "loopus", "loopum", "loopalot", etc... - Star has many pre-defined macros in hp48.star that allow you to build RPL objects, Code objects, Reals, Complexes, Strings, etc... - Star is VERY versatile. Although there are some constructs that you cannot nest, it is very compatible with the needs of Saturn programmers. I like to write stand-alone code that doesn't use the RPL stack, or any RPL commands, but variable storage is difficult because all code must be relocatable. The way I HAVE been doing it is to set d0 pointing to my data area, and then adding and subtracting from d0 to position it at different variables. This is time consuming for me as a programmer. SASS did not allow me to compute the difference between two symbols' addresses. Not only does Star allow me to do this, but it even has a macro, "addr address, register" that automatically computes the difference, subtracts it from the program counter and loads the answer into a register. So, effectively this simply stores the address of any symbol in your program in the register you choose. I went through a program of mine that had 10 to 12 different 5 nibble variables and replaced all "add d0,#" and "sub d0,#" with "addr varname,d0". When I ran it, something VERY interesting happened. Even though I replaced single instructions with a macro that generates 5 or 6, the macro version ran .3% faster. Admittedly, that is not MUCH faster, but the fact that it is faster AT ALL impressed me - I was expecting a slow-down. I highly suggest that anyone who wishes to dabble or seriously program in machine code on their HPs get Star - it is simply incredible... You can FTP Star from trix.ai.mit.edu using the name ANONYMOUS. It is stored in .tar.Z format which means you need to use the Unix commands uncompress and tar to extract the files. If anyone is interested in STAR.EXE for MS-DOS and cannot un-tar and uncompress this file, I will upload it (and supporting files) to wuarchive.wustl.edu. I believe that Star is stored as pub/star-1.04.1.tar.Z on trix.ai.mit.edu. Thank you, Jan Brittenson, for an excellent assembler... ---- Xeno ----
akcs.guenter@hpcvbbs.UUCP (Marko Siladin) (02/16/91)
I'd love to see this MS-DOS version of STAR. So please upload it. ThanX. Guenter