Jump to content
IGNORED

XB Game Developers Package


senior_falcon

Recommended Posts

All set to release this but just discovered that the changes to the compiler make it with certain sequences of instructions. I'm probably mesing up a register that should be left alone. Tonight's new years eve, so I will turn off the computer and have a few drinks to celebrate.

 

 

Happy New Year Harry, and thanks for all you've done this last year.

Link to comment
Share on other sites

Here is GRECHETTO, the latest version of the XBGDP.

 

Changes include:

The compiler is still an XB/Assembly hybrid program, but it was rewritten so the main loops are all in assembly. This makes it about 5-6x faster.

Nested arrays can now be used

Multiple variables can be assigned with one LET statement. i.e. 10 A,B,C,D=23 or 10 IF Z=12 THEN A$,B$,C$="YOU WIN!"

The compiler looks for decimal points and gives a NON INTEGER message next to the line number. This way when you return to XB you know which lines need attention.

Speech is supported with both SAY and SPGET.

 

As always, these changes may cause unexpected trouble in other parts of the program, so for now this is a BETA release.

 

(Edit) - reuploaded with a second folder in the package. This is GRECHETT99. All the files are modified to work directly with a real TI. You can put this in DSK1 and it will work as described in the manual, only using -S and -O instead of .TXT and .OBJ

 

(Edit) - Uploaded GRECHETTOBETA2. The files in GRECHETT99 are modified to provide the proper defaults when running on a real TI99. The disk access bug is fixed. There are two other changes that (hopefully) won't cause trouble:

1 - The runtime files have been rearranged to use memory more efficiently - i.e. XB256 routines are not loaded unless needed.

2 - The runtime files in GRECHETT99 have been stripped of comments to be more compact. Hopefully no code was inadvertently stripped out.

GRECHETTOBETA2.zip

Edited by senior_falcon
  • Like 6
Link to comment
Share on other sites

:D awesome!

 

 

Going to be re-doing "Riding for the Brand" later this year for an official release using this package. My original efforts maxed out the speed in XB and I just hung up the spurs. Hopefully I'll be able to run in, guns a'blazin' this time... knowing those mangy varmints known as 'missed COINCs' will be 6 feet under up at Boot Hill once Grechetto is done with em. ;)

  • Like 1
Link to comment
Share on other sites

There are two parts to your question:

1 - The package is designed to run using Classic99 and optionally Asm994a. It uses windows text format for the source code. At one time I was trying to maintain compatibility with both real iron and Classic99. There would have to be a few changes made for the compiler to work on real iron. You would have to convert the runtime routines to DV80 format and make a few changes to the file extensions (i.e. change .TXT to -S, .OBJ to -O and probably a few more) so it will run on real iron. For me, that proved to be a pain in the rump and with the ease of using Classic99, plus the option for CPU overdrive, there is really no reason for it because:

2 - The XB256 or compiled programs this creates have always been 100% compatible with real iron, although I have not actually tested that in a while.

  • Like 2
Link to comment
Share on other sites

All done for you. Check post #403. There is another folder called GRECHETT99 with the files modified to work with a real TI99. One thing to remember is that the files take up a lot of room. I think I got DSR ERROR 0082 and wondered what was wrong. It turns out the disk was full. You should use 2 disks if you can and DSDD if possible.

Edited by senior_falcon
Link to comment
Share on other sites

YRUNTIME1 is the old TI BASIC only compiler. You normally wouldn't be using it but If your program will run in TI BASIC, using it can save a few thousand bytes. You have to uncomment line 230. You can rename it "YRUNTIM1-S" and then change line 490 so it trims off the E:

490 PRINT #2:" COPY """&RT$&BX$&SEG$("RUNTIME",1,7-LEN(BX$))&STR$(I)&"-S"""
As you surmised, tabs are used in the source code. The TI Assembler handles them just fine.
(edit) - Come to think of it, what is probably easiest would be to rename all the RUNTIME files and omit the "E" i.e. RUNTIM1 etc. Then line 490 could be the original line and just change RUNTIME to RUNTIM and all should be well.
I think I'll change the little conversion program I wrote so it strips off the comments and that way it would save some disk space.
Edited by senior_falcon
Link to comment
Share on other sites

If there is a bad value it is because R is not a value from 0 to 5. R comes from peeking a value left in the mailbox starting at -8. If there is garbage in there then R could be anything. This should be set to zero when you power on the computer. If you give the computer the "microsoft treatment" i.e. restart it then it should work. Or you could try CALL LOAD(-8,0,0,0,0,0,0,0,0)

 

This has never been a problem, but I guess the program should see if the value in the mailbox is reasonable and if not then reset the values to default.

Edited by senior_falcon
Link to comment
Share on other sites

I just added a "garbage collection line" after the pre-scan to make sure the values are reset in all cases.

 

8 Call Load(-8,0,0,0,0,0,0,0,0)

 

That should take care of any problems with weird values in the mailbox. Thanks! It also works if you execute the same from the command line to reset the values.

Edited by atrax27407
  • Like 1
Link to comment
Share on other sites

Well, a while back I did some work on the disk handling part of the compiler so that ArcadeShopper's program could work with the gigantic filenames he was using. That messed up something when writing to disk. The older version works fine and I will soon know why the new one doesn't. If you are using disk access with GRECHETTO don't be surprised if it doesn't work. Grrr....

  • Like 1
Link to comment
Share on other sites

10 CALL SPGET("HELLO",A$)

20 CALL SAY(,A$)

30 GOTO 10

Gives chirping sounds in Classic99. Sometimes works in Win994a. This makes testing pretty much impossible. But the direct speech in Parsec works with both emulators. Maybe this has something to do with my equipment - I'm doing my TI work using XP running in a virtual box.

 

This works in js99er now.

  • Like 2
Link to comment
Share on other sites

GRECHETTOBETA2 was uploaded to posts #1 and #403.

The files in GRECHETT99 are modified to provide the proper defaults when running on a real TI99. The disk access bug is fixed. There are two other changes that hopefully won't cause trouble:

1 - The runtime files have been rearranged to use memory more efficiently - i.e. XB256 routines are not loaded unless needed.

2 - The runtime files in GRECHETT99 have been stripped of comments to be more compact. Without the comments they are about half the size. Hopefully no code was inadvertently stripped out.

  • Like 3
Link to comment
Share on other sites

I have had some insights on how to add named subprograms to the compiler. I am not saying that it will actually happen, but there is a good possibility that this can be done. I have come up with a syntax for the compiled code and have roughed out the runtime routines for CALL, SUBEND and SUBEXIT that can process that code. This looks quite straightforward - I know how to handle the stack and how to pass values back and forth. There is no doubt that the assembly code would run as it should.

 

The tricky part is getting the compiler to produce code that is in the proper syntax without breaking something else. I will look into whether this can be done. All I have right now is some general ideas on how to proceed.

  • Like 4
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...