Jump to content
IGNORED

XB Game Developers Package


senior_falcon

Recommended Posts

Hi Wolfgang:

The files that were changed were RUNTIME1, RUNTIME2, and RUNTIME7, so if you just copy those you should be OK.

 

LOAD is only called that so that XB will automatically load it from DSK1. You could change the name to CMENU (for example) and put it on DSK3. Then you could modify CMENU so that a selection will load and run the program from DSK3. i.e. in CMENU change RUN "DSK1.COMPILER" to RUN "DSK3.COMPILER". Then in COMPILER you have to change RUN "DSK1.LOAD" to RUN "DSK3.CMENU"

 

Of course it would not autoload as it does now, but you could write a LOAD program for DSK1 with one line:

10 RUN "DSK3.CMENU"

 

These are good suggestions and I will take a look to see about changing the package to make this easier.

Link to comment
Share on other sites

Hello senior_falcon,

 

I am currently working on a program that can alert appointments from REMIND ME (by John A. Johnson).
Here I use the calendar file of REMIND ME, but work with a temporary file, which I would like to delete after editing. This works in XB with:
CLOSE # 1: DELETE
However, in the compiled program version, the file persists (I use Isabella5).
Is it possible to delete files in the compiler version?
Excuse me if I make too much effort for you!
wolfgang
Link to comment
Share on other sites

Another question,

 

is it possible to extend the compiler with a userruntime in order to use own assembler routines, which are integrated with LOAD in XB, also in the compiled version?
As it works with the XB256 extensions!
For example, I would like to use the 40 column mode of XXB or use my own routines to support large integer numbers or floating point calculations.
Wolfgang
Link to comment
Share on other sites

CLOSE # 1: DELETE
However, in the compiled program version, the file persists (I use Isabella5).
Is it possible to delete files in the compiler version?
DELETE is currently not supported by the compiler, in fact I never used it in XB. In my tests it just crashed when compiling. I will look into what is needed to add this. It may not be too difficult.
is it possible to extend the compiler with a userruntime in order to use own assembler routines, which are integrated with LOAD in XB, also in the compiled version?
As it works with the XB256 extensions!

For example, I would like to use the 40 column mode of XXB or use my own routines to support large integer numbers or floating point calculations.

 

It might be possible to use the 40 column mode of XXB, but it would be far from trivial. Likewise, I am not sure how floating point or large integers could interface with the compiled code. In fact, the need for STRREF, STRASG, NUMREG, and NUMASG, plus the question of where to put the code make it impractical for compiled code to run the same assembly subroutines that are used in XB

However, it is possible to write your own extensions and add them to the runtime routines. There are subroutines that compiled code uses that are the equivalent of STRASG, STREF, NUMASG and NUMREF. Ideally you would have a CALL LINK("ALSUB",variable list) so you can do all the testing in XB, and adapt the code to be part of the runtime routines. If there is any interest in this I could probably add a short tutorial to the manual.

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

I have unsuccessfully tried to get DELETE to work when compiled. But then it turns out that my test program doesn't even delete in XB. I get "I/O ERROR 73 IN 50". (Also I/O ERROR 73 when I try to delete from the command line.) Any ideas where I am going astray?

(EDIT) It looks like this may be a problem with Classic99. I can delete files using Win994a as described in the manual.


10 OPEN #1:"DSK1.TEST.TXT"
20 FOR I=1 TO 10 :: LINPUT #1:A$ :: PRINT A$ :: NEXT I
40 CLOSE #1
50 DELETE "DSK1.TEST.TXT"

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

The Classic99 manual implies support for DELETE for FIAD files and explicitly states “All disk operations except 'format' are supported.” for DSK images. The CLIP device is the only one for which DELETE is explicitly unsupported.

 

You might try using the TI DSR (can only be used with DSK images [DOAD]) to make sure your code is working properly for the TI disk controller. You will need to edit classic99.ini to use it, however. After first setting up Classic99 to use a DSK image for, say, DSK2, you will need to change the disk’s “Type” option:

[Disk2]
Type=3
  ... 

...lee

Link to comment
Share on other sites

"The Classic99 manual implies support for DELETE for FIAD files and explicitly states “All disk operations except 'format' are supported.” for DSK images. The CLIP device is the only one for which DELETE is explicitly unsupported."

 

DELETE does not work for me. Try this:

10 REM TEST

SAVE DSK1.TEST

DELETE "DSK1.TEST" I get I/O ERROR 73

 

I cannot get disk images to work at all. Downloaded disk images cannot be seen by Classic99. I don't know where I am going astray.

 

I will try to get this to work with Win994a, but my interest is waning.

 

(EDIT) In Win994a, the compiled code seems to work properly for erasing files:

I created this XB program

10 REM TESTZ

SAVE DSK1.TESTZ

And TESTZ appears when cataloging the disk.

 

This XB prgram can be compiled:

10 DELETE "DSK1.TESTZ"

When it is run, TESTZ is erased.

Edited by senior_falcon
Link to comment
Share on other sites

"The Classic99 manual implies support for DELETE for FIAD files and explicitly states “All disk operations except 'format' are supported.” for DSK images. The CLIP device is the only one for which DELETE is explicitly unsupported."

 

DELETE does not work for me. Try this:

10 REM TEST

SAVE DSK1.TEST

DELETE "DSK1.TEST" I get I/O ERROR 73

 

I cannot get disk images to work at all. Downloaded disk images cannot be seen by Classic99. I don't know where I am going astray.

 

I will try to get this to work with Win994a, but my interest is waning.

 

Did you change the Image pulldown from FIAD to DSK before opening the file dialog? otherwise the dsk files won't appear.

Link to comment
Share on other sites

 

Did you change the Image pulldown from FIAD to DSK before opening the file dialog? otherwise the dsk files won't appear.

Yes, and the path points to a disk image file that I downloaded from this site. Nothing shows up. When I try to catalog the disk I get this message:

"A device attached to the system is not functioning"

I am running Classic 99 with Windows XP running in Oracle Virtual Box which is on a Linux system. So there are a lot of layers where problems might develop.

  • Like 1
Link to comment
Share on other sites

Yes, and the path points to a disk image file that I downloaded from this site. Nothing shows up. When I try to catalog the disk I get this message:

"A device attached to the system is not functioning"

I am running Classic 99 with Windows XP running in Oracle Virtual Box which is on a Linux system. So there are a lot of layers where problems might develop.

Yea this sounds like a problem I was having for a time.

But that was a READ ONLY FILE ERROR created by Windows 10 and to get past it required me to change permissions on all files in Documents folder where Classic99 resides.

Link to comment
Share on other sites

Yes, and the path points to a disk image file that I downloaded from this site. Nothing shows up. When I try to catalog the disk I get this message:

"A device attached to the system is not functioning"

I am running Classic 99 with Windows XP running in Oracle Virtual Box which is on a Linux system. So there are a lot of layers where problems might develop.

Why run in a VM when wine works..

 

Sent from my LM-G820 using Tapatalk

Link to comment
Share on other sites

DELETE does not work for me. Try this:

10 REM TEST

SAVE DSK1.TEST

DELETE "DSK1.TEST" I get I/O ERROR 73

Any time you see strange behaviour with disk, don't guess. Go read the debug log. In this case, it says:

 

Deleting DSK1.TEST on drive type FIAD

Operation not supported on this disk type.

Setting file error 3 on file buffer 133

My stance is that you should use Windows file manage to manage Windows files, the TI side is just capable of using the Windows file system. With filename remapping etc (particularly for V9T9 files), if you want to delete something I want to make sure it's the file you intended. ;) So FIAD does not support delete.

 

I cannot get disk images to work at all. Downloaded disk images cannot be seen by Classic99. I don't know where I am going astray.

This one I WOULD be interested in understanding, as it should be fairly transparent. Classic99 can read/write both V9T9 and PC99 style disk images. It should simply be a matter of changing the type to "Image (DSK)" and browsing for the path in the Path dialog. Again, after a failed operation, open the debugger and read the debug log. Classic99 should tell you exactly why it returned an error code.

 

post-12959-0-43539000-1560479271.png

  • Like 1
Link to comment
Share on other sites

This one I WOULD be interested in understanding, as it should be fairly transparent. Classic99 can read/write both V9T9 and PC99 style disk images. It should simply be a matter of changing the type to "Image (DSK)" and browsing for the path in the Path dialog. Again, after a failed operation, open the debugger and read the debug log. Classic99 should tell you exactly why it returned an error code.

 

This is a level 8 error. I had assumed that once you set up the disk image (in this case as DSK3) it would be possible to "Open DSK3" as usual when using FIAD. When I do that I get this message: "A device attached to the system is not functioning." So I just assumed that the disk couldn't be seen. Turns out it can be, but only by the TI and not by windows.

Link to comment
Share on other sites

This is a level 8 error. I had assumed that once you set up the disk image (in this case as DSK3) it would be possible to "Open DSK3" as usual when using FIAD. When I do that I get this message: "A device attached to the system is not functioning." So I just assumed that the disk couldn't be seen. Turns out it can be, but only by the TI and not by windows.

Ooooh... okay. This is actually nothing to do with emulation. "Open DSKx" in the menu does nothing but tell Windows to open the selected file. When it's a folder, Windows Explorer takes the request and opens the folder. If it's a disk, you need to have registered a program to handle the file extension (DSK, TIDISK, etc). I use ti99dir, but anything that can open a disk image on the command line will work - you just have to tell Windows to "always open this file type" with that program.

 

The error message when nothing is registered is a weird one (unless there's something wrong with the registration)... but that's outside of my scope. Unless I actually want to parse the registry (I don't), there's no way for Classic99 to know. At any rate... if it works for you to double-click a DSK image in Windows explorer, then it should work from Classic99.

Link to comment
Share on other sites

As Wolfgang suggested, I have adjusted the programs in the XBGDP package so that it now can be used with any drive number from 1 to 9 . You do have to make an alteration to the LOAD program; a line must be changed to tell the package what disk number is being used. i.e. Line 99 D=3 if you want to use disk three instead of disk one. I will post this after some more testing, but first a question:

Is there any way for a program to know from what disk it has been loaded? If so, then I can modify the program so that the user does not have to change anything.

  • Thanks 1
Link to comment
Share on other sites

Hi Seniorfalcon,

 

many Thanks for your effort. 

 

Regarding your question, there is probably a functionality called BOOT Tracking.
This is an option in the Funnelweb configuration.

And in "The Cyc: Micropendium", 1.7 The Art Of Assembly - Part 7, Page 56
is an article in assembler to identify the drive from which a program was loaded.

 

image.thumb.png.626339ab66b66a3da3d2418e75024e1e.png

 

regards

Wolfgang

Link to comment
Share on other sites

37 minutes ago, Asmusr said:

I have used that boot tracking routine in a couple of games, but I changed "LDCR @ONES,0" to "SBO 0" because the former was causing problems with some DSRs. It depends on the contents of @ONES which I think is supposed to be >0101.

 

Yeah—Bruce Harrison changed to “SBO 0” and “SBZ 0” in a later article in The Art of Assembly for the same reason.

 

...lee

Link to comment
Share on other sites

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?

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