wyerd Posted November 15, 2017 Share Posted November 15, 2017 Does anyone have the source code of TI Invaders disk version that they could post? I have the scanned PDF, but could do with the original source. Thanks. Quote Link to comment Share on other sites More sharing options...
digdugnate Posted November 15, 2017 Share Posted November 15, 2017 like disk format? here it is in tidisk. Invaders.zip 1 Quote Link to comment Share on other sites More sharing options...
wyerd Posted November 16, 2017 Author Share Posted November 16, 2017 like disk format? here it is in tidisk. Thanks, but it appears to be a load of hex. Are you sure it's the source code and not the object code? Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted November 16, 2017 Share Posted November 16, 2017 The disk only came with the object code. The photocopy of the printout is the only copy of the source code I've seen in the wild. The same went for Parsec until I took the printed source, scanned it in, and ran it through an OCR followed by about 20 runs to correct errors. Paul Urbanus was of immeasurable help in that process, as he and I tag teamed for the error correction cycles. 1 Quote Link to comment Share on other sites More sharing options...
wyerd Posted November 16, 2017 Author Share Posted November 16, 2017 (edited) The disk only came with the object code. The photocopy of the printout is the only copy of the source code I've seen in the wild. The same went for Parsec until I took the printed source, scanned it in, and ran it through an OCR followed by about 20 runs to correct errors. Paul Urbanus was of immeasurable help in that process, as he and I tag teamed for the error correction cycles. Thanks for confirming - I thought as much. Looks like I've got some OCR'ing to do Edited November 16, 2017 by wyerd Quote Link to comment Share on other sites More sharing options...
Asmusr Posted November 16, 2017 Share Posted November 16, 2017 This? TI Invaders.a99 6 Quote Link to comment Share on other sites More sharing options...
wyerd Posted November 16, 2017 Author Share Posted November 16, 2017 (edited) This? Thanks Rasmus, just what I was looking for. Question. How are the TITLES characters on page 4 being defined as they are all greater than >D0? Edited November 16, 2017 by wyerd Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted November 17, 2017 Share Posted November 17, 2017 (edited) How are the TITLES characters on page 4 being defined as they are all greater than >D0? If you take a closer look at this screen below, you'll find TITLES is like a complete screenshot, 768 characters (SIT), or pointers to character definitions (PDT) and colors (CT). SIT is the Screen Image Table, PDT is the Pattern Definition Table and CT is the Color Table. Edited November 17, 2017 by sometimes99er Quote Link to comment Share on other sites More sharing options...
wyerd Posted November 17, 2017 Author Share Posted November 17, 2017 If you take a closer look at this screen below, you'll find TITLES is like a complete screenshot, 768 characters (SIT), or pointers to character definitions (PDT) and colors (CT). SIT is the Screen Image Table, PDT is the Pattern Definition Table and CT is the Color Table. Sorry, I still can't figure out where the 3 character sets are being created. The invaders for instance have their pattern generator sets from page to around page 11. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted November 17, 2017 Share Posted November 17, 2017 (edited) Sorry, I still can't figure out where the 3 character sets are being created. The invaders for instance have their pattern generator sets from page to around page 11. Okay. Take a look at lines 1097-1106. BL @WRTVCL INVADER PATTERNS DATA >800,384,IP30L BL @WRTVCL FIRST CHARACTER SET DATA >980,512,CHAR AI VDPADD,>200 BL @WRITE SECOND CHARACTER SET BL @WRTVCL DATA >0D80,512,CHAR1 THIRD CHAR SET(LARGE CHAR SET) - JEDI BL @WRTVCL COPY RIGHT SYMBOL DATA >C80,8,COPYRT Edited November 17, 2017 by sometimes99er 1 Quote Link to comment Share on other sites More sharing options...
PeteE Posted November 17, 2017 Share Posted November 17, 2017 Okay. Take a look at lines 1097-1106. BL @WRTVCL INVADER PATTERNS DATA >800,384,IP30L BL @WRTVCL FIRST CHARACTER SET DATA >980,512,CHAR AI VDPADD,>200 BL @WRITE SECOND CHARACTER SET BL @WRTVCL DATA >0D80,512,CHAR1 THIRD CHAR SET(LARGE CHAR SET) - JEDI BL @WRTVCL COPY RIGHT SYMBOL DATA >C80,8,COPYRT Interesting, it looks like they are passing constant parameters to WRTVCL as DATA immediately following the BL instruction. I've started doing this in a few places in my own code, but I hadn't seen it discussed in the assembly programming thread. For each parameter, using DATA is one word shorter than using LI and passing in registers. The called function can easily get each parameter using MOV *R11+, <reg>, and that also moves the return address in R11 to the correct location after the DATA statements. 1 Quote Link to comment Share on other sites More sharing options...
S1500 Posted November 17, 2017 Share Posted November 17, 2017 Where's the smiley & frowny faces in the game? 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted November 17, 2017 Share Posted November 17, 2017 Where's the smiley & frowny faces in the game? They don't appear in the game, but are indeed part of the data (GROM) in the cartridge. Quote Link to comment Share on other sites More sharing options...
Stuart Posted November 17, 2017 Share Posted November 17, 2017 Interesting, it looks like they are passing constant parameters to WRTVCL as DATA immediately following the BL instruction. I've started doing this in a few places in my own code, but I hadn't seen it discussed in the assembly programming thread. For each parameter, using DATA is one word shorter than using LI and passing in registers. The called function can easily get each parameter using MOV *R11+, <reg>, and that also moves the return address in R11 to the correct location after the DATA statements. It's fairly common - TI use the technique is some of their own example programs. You can do the same with a BLWP instruction by using MOV *R14+,Rx. Also useful for supplying jump addresses for a subroutine. For example, suppose you had a routine to input some hex characters from the user. You BL (or BLWP) to the routine, and follow that with a DATA statement containing a jump address if the user makes a null input, then another DATA statement containing a jump address if the user inputs a non-hex character, then the code returns to the next word if the user input is valid and the program continues. 1 Quote Link to comment Share on other sites More sharing options...
wyerd Posted November 20, 2017 Author Share Posted November 20, 2017 (edited) Okay. Take a look at lines 1097-1106. BL @WRTVCL INVADER PATTERNS DATA >800,384,IP30L BL @WRTVCL FIRST CHARACTER SET DATA >980,512,CHAR AI VDPADD,>200 BL @WRITE SECOND CHARACTER SET BL @WRTVCL DATA >0D80,512,CHAR1 THIRD CHAR SET(LARGE CHAR SET) - JEDI BL @WRTVCL COPY RIGHT SYMBOL DATA >C80,8,COPYRT OK, I see what's happening here, but these line of code are saving the default character set and also the copyright symbol. Is the copyright symbol part of the ROM, because I've never seen it defined in Basic or XB? I suppose it must be somewhere. Why is it reading the VDP RAM to save these characters? Does the VDP RAM get loaded from the ROM on startup? I've only just started to learn assembly over the last few days and I thought ripping this code apart was the best way to do it! BL @RDVCL SAVE SMALL CHAR SET - JEDI - DATA >900,512,CHAR BL @WRTVCL CLEAR SCREEN DATA >FF8,8,ZEROES BL @CLRSCR BL @RDVCL SAVE COPY RIGHT SYMBOL DATA >850,8,COPYRT Edited November 20, 2017 by wyerd Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted November 20, 2017 Share Posted November 20, 2017 Is the copyright symbol part of the ROM, because I've never seen it defined in Basic or XB? I suppose it must be somewhere. Yes, it's defined in GROM. You've got 3 capital letters/uppercase character sets followed by the definition for the TI symbol and then the copyright sign. 1 Quote Link to comment Share on other sites More sharing options...
+dhe Posted July 18, 2022 Share Posted July 18, 2022 On the Geneve: Neither QDE or Peter Muys EDIT are capable of loading the whole file. genasm IS capable of compiling the source with no changes. The resulting object file is: That object file can then be run via e/a option 3 in GPL mode. 2 Quote Link to comment Share on other sites More sharing options...
+9640News Posted July 18, 2022 Share Posted July 18, 2022 @dhe Use MyWord, and when you use the Load File command, do a LF then a filename of: 1 2000 HDS2.TISRC.TIINV.TIINVS Save that out as PART1 Then, do another LF: 2001 4000 HDS2.TISRC.TIINV.TIINVS Save that out as PART2 Repeat until you get the whole file broken down. 1 2 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.