Jump to content

Photo

XB Game Developers Package


333 replies to this topic

#76 Schmitzi OFFLINE  

Schmitzi

    River Patroller

  • 4,340 posts
  • ToXiC
  • Location:Germany

Posted Fri Apr 28, 2017 3:25 AM

I made a DSK for me, so here it is:

 

Attached File  BXLOADER-TiBasic.dsk   90KB   16 downloads

 

hope this is OK. thanks.



#77 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Fri Apr 28, 2017 7:06 AM

I forgot to mention two things:

1 - If you want to save the program so that it loads as an XB program, then you have to use the standard (slow) compiler loader.  I hope to add to the new loader so it will save in XB format, but time is limited

2 - I believe that object code saved in compressed format will load faster.  You'd want to choose the options RC with the TI Assembler.



#78 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Fri Apr 28, 2017 7:51 PM

BXLOADER has been adjusted so it can load both uncompressed and compressed object files.  Compressed object files will load twice as fast as uncompressed object filed.  However, saving in XB format is not supported by BXLOADER.  You have to use the original XB loader in the compiler and you cannot use a compressed object file.

 

(BXLOADER is a TI BASIC program that lets you load a compiled XB program about 20x faster.  Instructions are in a PDF in the folder.  Editor/Assembler cartridge is required.) 

Attached Files



#79 Bones-69 OFFLINE  

Bones-69

    Chopper Commander

  • 206 posts
  • Location:Australia

Posted Wed Nov 22, 2017 6:11 AM

Hi Harry - Not sure if I have found a bug or missing something plain obvious. The following gives the correct result when run in XB or XB256;

100 CALL CLEAR
110 ACCEPT AT(10,1)VALIDATE("123")SIZE(1):A
120 PRINT A
However, when compiled, A always returns a value of zero.
 
 
I did some experimenting and once I removed the VALIDATE option I started to get the correct outcome when compiled. I was using the result in the following manner and wondering why I was finding no data! :)
530 A$="DSK"&STR$(A)&".GSDAT" :: PRINT "LOADING ";A$;
540 OPEN #1:A$,DISPLAY ,VARIABLE
550 INPUT #1:A$

Is this a little glitch or have I misunderstood the way to use ACCEPT AT with the compiler?

 

Thank you!



#80 Lee Stewart OFFLINE  

Lee Stewart

    River Patroller

  • 3,729 posts
  • Location:Silver Run, Maryland

Posted Wed Nov 22, 2017 6:54 AM

Hi Harry - Not sure if I have found a bug or missing something plain obvious. The following gives the correct result when run in XB or XB256;

100 CALL CLEAR
110 ACCEPT AT(10,1)VALIDATE("123")SIZE(1):A
120 PRINT A
However, when compiled, A always returns a value of zero.
 
 
I did some experimenting and once I removed the VALIDATE option I started to get the correct outcome when compiled. I was using the result in the following manner and wondering why I was finding no data! :)
530 A$="DSK"&STR$(A)&".GSDAT" :: PRINT "LOADING ";A$;
540 OPEN #1:A$,DISPLAY ,VARIABLE
550 INPUT #1:A$

Is this a little glitch or have I misunderstood the way to use ACCEPT AT with the compiler?

 

Thank you!

 

This from page 7 of the manual:

 

Attached File  acceptat.gif   14.95KB   1 downloads

 

...lee



#81 Bones-69 OFFLINE  

Bones-69

    Chopper Commander

  • 206 posts
  • Location:Australia

Posted Wed Nov 22, 2017 6:59 AM

Hi Lee. I did read this.

 

I get the same result even if I do something like;

 

A$="123"

ACCEPT AT(10,1)VALIDATE(A$)SIZE(1):A

 

Again, have I missed something obvious here?



#82 Lee Stewart OFFLINE  

Lee Stewart

    River Patroller

  • 3,729 posts
  • Location:Silver Run, Maryland

Posted Wed Nov 22, 2017 7:08 AM

Hi Lee. I did read this.

 

I get the same result even if I do something like;

 

A$="123"

ACCEPT AT(10,1)VALIDATE(A$)SIZE(1):A

 

Again, have I missed something obvious here?

 

Sorry about that.  :)  I missed something obvious myself in my too quick read.

 

...lee



#83 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Wed Nov 22, 2017 9:05 AM

Hi Harry - Not sure if I have found a bug or missing something plain obvious. The following gives the correct result when run in XB or XB256;

100 CALL CLEAR
110 ACCEPT AT(10,1)VALIDATE("123")SIZE(1):A
120 PRINT A
However, when compiled, A always returns a value of zero.
 
 
I did some experimenting and once I removed the VALIDATE option I started to get the correct outcome when compiled. I was using the result in the following manner and wondering why I was finding no data! :)
530 A$="DSK"&STR$(A)&".GSDAT" :: PRINT "LOADING ";A$;
540 OPEN #1:A$,DISPLAY ,VARIABLE
550 INPUT #1:A$

Is this a little glitch or have I misunderstood the way to use ACCEPT AT with the compiler?

 

Thank you!

Definitely a glitch.  This was discussed in Majestyx's "Grail of the Gods" thread.  This issue has been fixed and I sent it to Majestyx for testing.  I will post the two files RUNTIME1 and RUNTIME3 tonight and that should make it work for you.  (One limitatation is that VALIDATE must be used with ACCEPT AT, not just ACCEPT.)


Edited by senior_falcon, Wed Nov 22, 2017 9:09 AM.


#84 Bones-69 OFFLINE  

Bones-69

    Chopper Commander

  • 206 posts
  • Location:Australia

Posted Wed Nov 22, 2017 4:04 PM

Sorry - I had not read the Grail thread. Thank you.

 

What is the correct etiquette here? Should I post as I did, or would you prefer a PM in the event of something similar in the future?



#85 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Wed Nov 22, 2017 9:43 PM

Either way is fine.  I'm just glad to see people using my programs!



#86 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Wed Nov 22, 2017 10:01 PM

The attached Runtime files should fix the bug with validate.  This was thoroughly tested and worked fine, but I then wrote a custom BLWP @VMBW routine that unrolls the loop for more speed and there was a register conflict.  This is one of the rare cases where an error in an assembly program doesn't lead to a total crash with colorful graphics displayed on the screen!

 

You only need to update RUNTIME1 and RUNTIME3.  All these files are in windows format (.TXT) to be used with Classic99.  I would post a more complete version, but soon there will be a new, greatly improved version that much easier to use.  With the new one, after saving the XB program you just press "Enter" a bunch of times for it to be compiled, assembled, loaded, saved and test run.

 

 

Attached Files



#87 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Mon Jan 22, 2018 10:09 PM

Teaser video for the new XB Game Developer's Package "Amontillado" to be released in a couple of days.  With auto complete you just press Enter at each prompt.

gallery_34177_1071_256878.gif

From the manual:

If you have never used the compiler it can be a bit intimidating. - 6 different files are used!
--a list of the file types used--
Wow, that sure is a lot to keep track of, but don't let it scare you off.  Before going into the details,  let's give the game developer's package a test drive.  HELLO is a simple XB demo program that is on DSK1 as part of the package.  Let's see how easy it is to compile it.
----then a description of how to compile HELLO and test run the compiled program---
What just happened?  Without having to know anything about assembly language you have just: 
Loaded an XB program, tested it, saved it, saved it in merge format, compiled the merge format XB program into assembly source code, assembled the source code into assembly object code, loaded the object code, saved the compiled program in EA5 format, saved the compiled program in an XB loader, and run the compiled program!  Sounds complicated, but you can see that it really isn't!

Edited by senior_falcon, Mon Jan 22, 2018 10:21 PM.


#88 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 9,797 posts
  • Location:Hustisford, WI

Posted Tue Jan 23, 2018 12:15 AM

Amontillado!!!  LOVE the name!



#89 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Thu Jan 25, 2018 9:41 PM

This is the latest version of the XB Game Developers Package "Amontillado".  It all goes onto DSK1.  Use XBGDPTXT for classic99 and XBGDPDV80 for Win994a and a real TI99.  Start by reading XBGDPDOCS to be sure you set it up right.  There is a new assembly subroutine in XB256.  CALL LINK("RUN",A$) which can run a file name that is a string variable.  This should be useful for menu programs.

 

The video below shows a BASIC program called HELLO.  After compiling it and assembling using Asm994a the compiled program is test run.  Then I go back and modify the program, save it, compile, assemble, load and test run.  The second time through you just push "Start Assembly" on Asm994a - it is already set up from the first time through.  This is not meant as a tutorial; it is an example of how fast the compilation process can be.

 

The TI Assembler is now a stand alone program loading from XB.  Now there is no need to get there via Funnelweb.  Regardless of whether you use the TI assembler or Asm994a, this should really speed up the work flow.

 

gallery_34177_1071_167531.gif  

Attached Files


Edited by senior_falcon, Thu Jan 25, 2018 9:58 PM.


#90 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 9,797 posts
  • Location:Hustisford, WI

Posted Thu Jan 25, 2018 11:29 PM

Wow... that'll cut the "code/compile/test" interval down SIGNIFICANTLY!  Excellent stuff!



#91 Airshack OFFLINE  

Airshack

    Dragonstomper

  • 787 posts
  • Location:Phoenix, AZ

Posted Sun Jan 28, 2018 10:33 PM

I was recently wondering if you were going to update the documentation for the changes youve made to the improved workflow. Wow! This looks great! Many thanks to the Senior Falconator for introducing me to the thrill of watching BASIC code run swiftly on a TI-99/4A. Cant wait to download and review this update!

#92 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Sun Feb 11, 2018 8:50 PM

Here's some news you're gonna like.  I have been updating the compiler so it can use the more complicated XB style IF/THEN/ELSE statements.  It all appears to work, but I want to take a few more days to be sure nothing is amiss.  

The only difference is that there are some minor restrictions on nesting IF/THEN/ELSE statements. A single IF, THEN, ELSE is OK in a line, but you cannot have: 100 IF A=1 THEN IF B=2 THEN C=3 ELSE D=4 ELSE E=5



#93 Opry99er OFFLINE  

Opry99er

    Quadrunner

  • 9,797 posts
  • Location:Hustisford, WI

Posted Sun Feb 11, 2018 9:23 PM

..... mother of God .....

#94 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Sun Feb 11, 2018 9:41 PM

..... mother of God .....

I think you have me confused with someone else.



#95 Sinphaltimus OFFLINE  

Sinphaltimus

    River Patroller

  • 2,514 posts
  • Distracted at the Keyboard
  • Location:Poconos, PA

Posted Mon Feb 12, 2018 10:33 AM

How did I miss this thread until just now I will never know. But holycow - this looks amazing. 


Edited by Sinphaltimus, Mon Feb 12, 2018 10:33 AM.


#96 RXB OFFLINE  

RXB

    River Patroller

  • 3,304 posts
  • Location:Vancouver, Washington, USA

Posted Mon Feb 12, 2018 3:22 PM

Very cool! 

Just for fun try this in Classic99 using RXB:

100 CALL CLEAR
110 T$="HELLO WORLD"
120 B$=" "
130 CALL BIAS(1,T$,1,B$)
140 FOR X=757 TO 0 STEP-1
150 CALL MOVES("$V",11,T$,X,"$V",1,B$,X+10)
170 NEXT X
180 GOTO 140


#97 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • Topic Starter
  • 1,233 posts
  • Location:Lansing, NY, USA

Posted Mon Feb 12, 2018 8:27 PM

100 CALL CLEAR
110 T$="HELLO WORLD"
120 B$=" "
130 CALL BIAS(1,T$,1,B$)
140 FOR X=757 TO 0 STEP-1
150 CALL MOVES("$V",11,T$,X,"$V",1,B$,X+10)
170 NEXT X
180 GOTO 140

 

What is this code supposed to show?


Edited by senior_falcon, Mon Feb 12, 2018 10:55 PM.


#98 RXB OFFLINE  

RXB

    River Patroller

  • 3,304 posts
  • Location:Vancouver, Washington, USA

Posted Tue Feb 13, 2018 2:19 PM

It does the same demo as yours but starts at bottom and twice as fast as XB, also faster then your demo.

 

(But I assume your demo in Assembly has delays in it to slow it.)

 

Also as suggested you can cut and paste it into Classic99 in RXB 2015 and see for yourself.

 

To explain the lines:

 

130 CALL BIAS(1,T$,1,B$) ! This adds the Screen Bias value of 96 to the characters in strings T$ and B$

 

150 CALL MOVES("$V",11,T$,X,"$V",1,B$,X+10) ! Moves String T$ to screen location X, and moves string B$ to screen location X+10


Edited by RXB, Tue Feb 13, 2018 2:24 PM.


#99 Bones-69 OFFLINE  

Bones-69

    Chopper Commander

  • 206 posts
  • Location:Australia

Posted Tue Feb 13, 2018 6:56 PM

Here's some news you're gonna like.  I have been updating the compiler so it can use the more complicated XB style IF/THEN/ELSE statements.  It all appears to work, but I want to take a few more days to be sure nothing is amiss.  

The only difference is that there are some minor restrictions on nesting IF/THEN/ELSE statements. A single IF, THEN, ELSE is OK in a line, but you cannot have: 100 IF A=1 THEN IF B=2 THEN C=3 ELSE D=4 ELSE E=5

 

Will this equate to faster execution times when compiled, or is it more about trying to better emulate something more faithful to the standard XB syntax?

 

I have now gotten used to writing the way the compiler demands! :)



#100 unhuman OFFLINE  

unhuman

    Stargunner

  • 1,207 posts
  • Location:Vienna, VA

Posted Tue Feb 13, 2018 7:23 PM

I have an idea for an ambitious game....  Is it known what the maximum size of program can be compiled?  I have, honestly, no idea if what I want to do will fit, but...  I think it may be worthwhile to attempt.... 






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users