senior_falcon Posted August 28, 2014 Share Posted August 28, 2014 I have been trying to use asm994a, so far with no luck. Here is a video showing my efforts at assembling and loading a simple program. Can anyone tell me where I am going astray? Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted August 28, 2014 Share Posted August 28, 2014 There is probably a better solution—but, one thing you might try is to create a TIDisk image with Fred's TI99Dir, tick the "Copy HEX Object File To TI Disk", select the image you created, assemble, open the TIDisk image you just created with TI99Dir again and copy the object file to the desired directory. Like I said, there is probably a better way; but, I think the above will work. ...lee Quote Link to comment Share on other sites More sharing options...
Willsy Posted August 28, 2014 Share Posted August 28, 2014 In the assembler add .obj to the object file name. Eg myfile.obj In BASIC do CALL LOAD ("DSK1.MYFILE.OBJ") Classic 99 will do the rest. Make sure that the assembler is putting the file directly into the DSK1 folder! Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted August 28, 2014 Share Posted August 28, 2014 The file created by asm994a is not a TIFILES/FIAD file, but a windows text file. I think you have to set one more of the 4 "Read Windows ..." file options. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted August 28, 2014 Author Share Posted August 28, 2014 (edited) Thanks to all. The problem is solved - as Sometimes99er pointed out, I needed to tick "Read windows text as DF" and now it loads just fine. And as Willsy says, I made sure it had .OBJ as a file extension. Thanks again! Edited August 28, 2014 by senior_falcon Quote Link to comment Share on other sites More sharing options...
Asmusr Posted August 29, 2014 Share Posted August 29, 2014 I probably use Asm994a (or is it WinAsm99?) more than any other TI related program. It's kind of an unsong hero, and the fact is I wouldn't have made any of my games without it. The ability to save TIFILES directly from asm994a would be really nice to have but my #1 wish (if Cory Burr is reading this) would be the ability to use brackets in numeric expressions. There are also a few odd bugs, for instance the recently reported bug when you have very many labels, and also issues to do with forward references. I also noticed that some of the 'virtual' opcodes (PUSH and POP) are not working when trying them out for the F18A GPU. But all in all I think it's a great and unparalleled program. Quote Link to comment Share on other sites More sharing options...
Tursi Posted August 30, 2014 Share Posted August 30, 2014 Classic99 will only read a Windows text file as DV80 if it can tell that it's a Windows text file by extension, so either .obj or .txt. Otherwise it's a DF128 file and that can't be loaded by the loader. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted September 27, 2014 Share Posted September 27, 2014 I noticed something strange about WinAsm99/Asm994a: It supports a CSEG directive but not PSEG or DSEG. What could be the reason? CSEG issues a P tag in the object file, which AFAIK is not accepted by the E/A loader. Quote Link to comment Share on other sites More sharing options...
Willsy Posted September 27, 2014 Share Posted September 27, 2014 I've no idea what those directives mean in the assembler manual. If someone can explain to me what they do/what they're for that wild be cool. Maybe I'm missing out. I've only ever been able to make sense of AORG and DORG. <dunce> Quote Link to comment Share on other sites More sharing options...
+mizapf Posted September 27, 2014 Share Posted September 27, 2014 CSEG, PSEG, DSEG: You can tell the assembler that you want your assembly lines to be put into a special memory area. Imagine we had a Harvard architecture, or that we can set a write protect flag on memory pages. In that case you can surround your DATA lines with DSEG and DEND. If the loader supports it, it will load the data lines into the "data segment" (maybe into locations 2000-3FFF) while the program goes into the "text segment" A000-FFFF, which will be set to read-only after loading is done. (data and text segment taken from Unix/Windows terminology) Common segments can be put into shared pages of different programs. I spent quite some efforts to implement that stuff for the disassembler in TIImageTool. In fact, it properly processes these object code tags, but as we know, there is no proper loader. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted October 3, 2014 Author Share Posted October 3, 2014 Any way to get Asm994a to default to .txt file extensions instead of .a99? Not a biggie, but would be nice. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted October 3, 2014 Share Posted October 3, 2014 You mean the default extension in the Open dialog when you add a new source file to a project? I don't think that can be changed. Why not accept it and register .a99 with your text editor? Quote Link to comment Share on other sites More sharing options...
Guigui Posted October 12, 2014 Share Posted October 12, 2014 Hi everybody, I recently tried to assemble ti invaders from a txt file containing the source code with asm994a. But when I tried to create a bin file here's what it said: !!! ADRESS ERROR !!! Relocatable address not allowed in cartridge object! Cannot make cartridge binary file! Does anyone knows what it means? Quote Link to comment Share on other sites More sharing options...
Asmusr Posted October 12, 2014 Share Posted October 12, 2014 Try to start the code with AORG >6000 Quote Link to comment Share on other sites More sharing options...
Guigui Posted October 12, 2014 Share Posted October 12, 2014 Thank you, but it says : !!!ERRORR!!! Unknown opcode encountered in object file! When I add it in the source code... Quote Link to comment Share on other sites More sharing options...
Asmusr Posted October 12, 2014 Share Posted October 12, 2014 Did you indent AORG with some white space? Otherwise it will think that AORG is a label and >6000 is an opcode. Quote Link to comment Share on other sites More sharing options...
Stuart Posted October 12, 2014 Share Posted October 12, 2014 (edited) Any way to get Asm994a to default to .txt file extensions instead of .a99? Not a biggie, but would be nice. Try the attached, where I've hacked the .exe so that the [Add Source File] dialog defaults to .txt format. Everything else appears to work OK. WinAsm99 - Modifed to Default to txt Files.zip Edited October 12, 2014 by Stuart Quote Link to comment Share on other sites More sharing options...
Tursi Posted October 12, 2014 Share Posted October 12, 2014 Hi everybody, I recently tried to assemble ti invaders from a txt file containing the source code with asm994a. But when I tried to create a bin file here's what it said: !!! ADRESS ERROR !!! Relocatable address not allowed in cartridge object! Cannot make cartridge binary file! Does anyone knows what it means? It's just a little overly picky in the cartridge case -- it doesn't check whether the code actually lives in the cartridge space, and it doesn't link relocatable code to make the cart, so everything needs to be absolute addressed. Make sure there are no 'RORG' statements in your code. Without seeing the text file all we can offer is general advice. But with the AORG at the top, variables become a bit of a problem (because they need to live in scratchpad RAM and not conflict with the workspace). Would probably need to look at the code to give a complete answer. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted October 12, 2014 Author Share Posted October 12, 2014 Try the attached, where I've hacked the .exe so that the [Add Source File] dialog defaults to .txt format. Everything else appears to work OK. Looks like it works fine. Thanks a lot! Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted November 8, 2014 Author Share Posted November 8, 2014 I am trying to assemble a compiled XB program using Asm994a. The compiled code assembles fine using the TI assembler. At the end of the source code produced by the assembler are these lines: COPY "DSK1.RUNTIME1.TXT" COPY "DSK1.RUNTIME2.TXT" COPY "DSK1.RUNTIME3.TXT" COPY "DSK1.RUNTIME4.TXT" Ams994a gives this error message: "Can't open COPY file DSK1.RUNTIME1.TXT" These open fine with a text editor, so I think the format is correct. What am I missing? Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted November 8, 2014 Share Posted November 8, 2014 (edited) I am trying to assemble a compiled XB program using Asm994a. The compiled code assembles fine using the TI assembler. At the end of the source code produced by the assembler are these lines: COPY "DSK1.RUNTIME1.TXT" COPY "DSK1.RUNTIME2.TXT" COPY "DSK1.RUNTIME3.TXT" COPY "DSK1.RUNTIME4.TXT" Ams994a gives this error message: "Can't open COPY file DSK1.RUNTIME1.TXT" These open fine with a text editor, so I think the format is correct. What am I missing? It works fine here. It's not even case-sensitive. I could only get the error if I misspelled the filename. I guess the file copied has to reside in the same directory as your source file. Are you trying to get RUNTIME1.TXT off a "TI" disk, which I think you can't. Edit: You can however use stuff like this COPY "dsk1/runtime1.txt" COPY "../runtime1.txt"(in both cases relatively to the source directory) Edited November 8, 2014 by sometimes99er Quote Link to comment Share on other sites More sharing options...
Willsy Posted November 8, 2014 Share Posted November 8, 2014 Dont use the copy directive at all in your source. Simply add your source files to the source list window in the order that you want to assemble them. The assembler will do the rest. HTH Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted November 8, 2014 Author Share Posted November 8, 2014 It works fine here. I guess the file copied has to reside in the same directory as your source file. I got it to work thanks to that advice. It not only has to be in the same directory, but cannot use COPY "DSK1.RUNTIME1.TXT" It has to be COPY "RUNTIME1.TXT" Thanks! Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted November 10, 2014 Author Share Posted November 10, 2014 (edited) OK, here's a weird one. Consider this program: AORG >A000 BYTE 1 LABEL1LABEL2 BYTE >FD END If you assemble this with Asm994a, use CALL LOAD in XB to load it, then look at >A000 you see >01,>00,>FD If you only have one label you get the expected >01,>FD So it looks as if Asm994a is doing an EVEN if there are two or more labels, but not if there is only one label. Strange..... Edited November 10, 2014 by senior_falcon Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.