Jump to content
senior_falcon

XB Game Developers Package

Recommended Posts

1 hour ago, mizapf said:

No, 83C0. (83D0-F are R8..R15 of WS 83C0).

I think no == yes...  >83C0 is the workspace used by part of the 4A console rom interrupt service routine. at >0A8A - I wasn't trying to say >83D0 was that workspace, but that they were (with)in that workspace.

Most of the console rom service routine uses the GPLWS >83E0, and >83C0 is referred to in TI99/4A INTERN as the INTWS.  The console rom interrupt service routine does a healthy amount of mucking in both blocks of memory, and uses both as WS value at different times.

 

Anyway, since the GPL DSRLNK is right after that in the book, I checked, and it also is stashing values into >83D0 and >82D2. 

 

[email protected]

 

 

  • Like 1

Share this post


Link to post
Share on other sites
On 6/22/2019 at 3:33 PM, senior_falcon said:

Yep, I found that later article with the SBO and SBZ. It seems to work fine for retrieving the disk number

 	MOV @>83D0,R12 		GET THE CRU BASE IN R12
	JEQ EXIT 			GET OUT IF 0
	MOV @>83D2,R9 		GET THE ROM ADDRESS FOR DEVICE
	JEQ EXIT 			GET OUT IF 0
	SBO 0 				ENABLE THE DEVICE ROM
	AI R9,8 			Now R9 points to disk number (ascii)	

What circumstances would lead to >83D0 or >83D2 being equal to zero?

 

This translates very nicely to Forth. I did not know how to do this.

Thanks!

(The error checking may be a little over kill but it is easily removed.)

 

NEEDS 0SBO   FROM DSK1.CRU

HEX
: DSK#  ( -- n)
         83D0 @ DUP 0= ABORT" No disk"
         CRU!                          \ store top of stack to R12
         83D2 @ DUP 0= ABORT" No ROM"
         0SBO                          \ turn the card on
         ( 83D2) @ 8 +  [email protected]             \ fetch char from address on stack+8
         0SBZ                          \ turn the card off
         [CHAR] 0 -                    \ subtract ascii '0' to return integer
;

 

  • Like 1

Share this post


Link to post
Share on other sites

Hi,

 

I just found Isabella5. I dont use emulators. I only use real hardware. Can I use Isabella5 on my Ti99 or is there anything I need to do to get it to work?

 

Thanks and sorry for the newbie questions

Share this post


Link to post
Share on other sites
1 hour ago, videofx said:

Hi,

 

I just found Isabella5. I dont use emulators. I only use real hardware. Can I use Isabella5 on my Ti99 or is there anything I need to do to get it to work?

 

Thanks and sorry for the newbie questions

 

yes you can.. just use TI FILENAMES instead of the emulator .txt files

Share this post


Link to post
Share on other sites
2 hours ago, arcadeshopper said:

 

yes you can.. just use TI FILENAMES instead of the emulator .txt files

There is a little more to it than that, but it is already done for you in the folder ISABELLA99. Page 12 of "Using XBGDP" has the information you need. 

Share this post


Link to post
Share on other sites
13 hours ago, senior_falcon said:

There is a little more to it than that, but it is already done for you in the folder ISABELLA99. Page 12 of "Using XBGDP" has the information you need. 

 

Thanks! I will read it and let you know how it goes

Share this post


Link to post
Share on other sites
27 minutes ago, videofx said:

I have a Gram Cracker. Anyway to load ISABELLA into GROM?

 

Thanks

No, not without a total rewrite.

 

"I dont use emulators. I only use real hardware."

 

If you are developing programs to be compiled, you will be far less productive using real hardware. Once the program is completed and debugged in Classic99 the compiled program will run fine on real hardware.

Share this post


Link to post
Share on other sites

I got everything working in Classsic99. The first time I tried to go through compiling I got an error after I chose the 24K loader. I don't remember the error but I rebooted and ran it again and this time through it compiled and I Was able to execute the compiled version.

 

The only ling I noticed is that when is says ASSEMBLER EXECUTING there is nothing telling you its doing something. I thought that it locked up and was ready to reboot but then it completed with no errors.

 

Now I can start developing my first program

 

Thanks for Isabella!

Share this post


Link to post
Share on other sites
1 hour ago, videofx said:

The only ling I noticed is that when is says ASSEMBLER EXECUTING there is nothing telling you its doing something. I thought that it locked up and was ready to reboot but then it completed with no errors.

This is what some people "hate" about MAME - that I added floppy drive sounds. 🙂

 

  • Like 1

Share this post


Link to post
Share on other sites
27 minutes ago, mizapf said:

This is what some people "hate" about MAME - that I added floppy drive sounds. 🙂

Yes, yes, MAME is better than Classic99 in every way... maybe we should add floppy sounds to RAM disks too. ;)

 

When I'm waiting on slow programs in Classic99, I like to pop up the heat map (Edit->Heatmap). You get a very quick view of just how busy the system is. ;)

  • Like 4

Share this post


Link to post
Share on other sites

I have to say DO NOT DOWNLOAD AND INSTALL WINDOWS 10 UPDATE 1903 BETA

 

I made the mistake of doing this and can not get back to UPDATE 1809 again for some reason I can not explain.

 

This 1903 UPDATE no longer allows SANDBOX to work so now I am forced to put Classic99 in foreground to run it only.

 

In the old 1809 UPDATE Classic99 would run in background while I browsed web but no longer can I do that.

Edited by RXB

Share this post


Link to post
Share on other sites

Here is a slight revision to the XBGDP called Isabella6. This adds the ability to delete a file on a disk drive with the XB statement DELETE "DSKn.FILE". N.B. This does not work when using FIAD and Classic99.

Also boot tracking has been added so you can have the XBGDP on DSK1 to DSK9. If it is on DSK3 you would start it up with RUN "DSK3.LOAD". There is one case where boot tracking does not work - if you are using the TI assembler that comes with the package, the return will be to the start of XB which  tries to RUN DSK1.LOAD. There is no practical way to change this. You will have to type RUN "DSK3.LOAD" again or you could have a one line LOAD program on DSK1: 10 RUN "DSK3.LOAD". This does not happen if you use Asm994a.
 

ISABELLA6.zip

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Does delete make your system better? I could add an option to allow delete, I guess. I didn't envision such tools when I first created the file system code.

 

Share this post


Link to post
Share on other sites
4 hours ago, Tursi said:

Does delete make your system better? I could add an option to allow delete, I guess. I didn't envision such tools when I first created the file system code.

 

Hi Tursi,

the request for the function "delete" came from me (see post # 704). Since I work with temporary files, they should be deleted after editing. That did not go so far if I compiled my XB program with XBGDP. I usually practice on my real TI. Therefore the implementation in classic99 is not necessary for me. However, if it is not too much effort for you, I could also use classic99 for testing.

Share this post


Link to post
Share on other sites
10 hours ago, wolhess said:

Hi Tursi,

the request for the function "delete" came from me (see post # 704). Since I work with temporary files, they should be deleted after editing. That did not go so far if I compiled my XB program with XBGDP. I usually practice on my real TI. Therefore the implementation in classic99 is not necessary for me. However, if it is not too much effort for you, I could also use classic99 for testing.

I wasn't responding to a request - for the last twenty years I've responded to all requests for DELETE with "no, use Windows". ;) There's no technical reason for it, I was just trying to keep Classic99's ability to destroy data to a necessary minimum. There's no technical challenge - it's a moral challenge.

 

I was just starting to come around to the concept of temporary files - something I've never used on the TI. Why do you need to create files that need to be deleted? Could they just not be overwritten next time?

Share this post


Link to post
Share on other sites

For what it's worth, there is a file called MB in the XBGDP. There is one string in the file. Normally it is a null string. If you are putting the runtime routines into low memory and choose to use MiniMemory to load them, it copies 24 bytes from the mailbox into the MB file. Then you change cartridges from XB to MiniMemory and start up the loader with OLD DSK1.MM32 and RUN. The MM32 loader reads the mailbox from MB. After the compiled program is loaded the mailbox is saved again, just in case you made changes. Upon return to XB, LOAD reads MB. If it finds null string it just goes on using the default values. Otherwise it restores the mailbox and then writes a null string to MB. This is not quite the same as deleting the file but is pretty close.

 

Share this post


Link to post
Share on other sites
13 hours ago, Tursi said:

I wasn't responding to a request - for the last twenty years I've responded to all requests for DELETE with "no, use Windows". ;) There's no technical reason for it, I was just trying to keep Classic99's ability to destroy data to a necessary minimum. There's no technical challenge - it's a moral challenge.

 

I was just starting to come around to the concept of temporary files - something I've never used on the TI. Why do you need to create files that need to be deleted? Could they just not be overwritten next time?

Hi Tursi,

yes, my temp files are simply overwritten. It works. In my XB program Remind Alarm I simply use existing entries of the current day from the monthly file created by Remind Me. So that I do not destroy the original calendar file by a program interruption of my program I use a copy of the monthly file of Remind Me. If there is an alarm for the day and this was acknowledged, then I mark this in my tempfile. Is everything ok I copy my tempfile to the Remind Me monthly file and thus overwrite the original file. So far so good. So that the Remind Me directory contains no unnecessary files, I delete currently my tempfile with the XB command
CLOSE # 1: DELETE.
In XB, this works as intended. In the compiled version the tempfiles simply stay. With Isabella6 I can now use DELETE DSK1.Filename.
As I said before, for me, no change in classic99 is necessary, since I usually use only my real TI anyway.

Share this post


Link to post
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.

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...