Jump to content
Opry99er

CS1 capabilities

Recommended Posts

It may be that a multi-stage load is required... initially I had hoped to avoid it, but now that youve got me thinking about it, I could make it fun.... :)

 

Ill have to investigate how it can be done.

 

Thanks for making me think.

Share this post


Link to post
Share on other sites

I dont see how it would work.... multi-staging the load.

 

Youd have to MERGE one program with another, because when a new program is OLDed, it clears the pre-existing program away. There would have to be a bridge somewhere to merge two programs together, IMO. RUN does not have this issue, RUNning one program from another... but since this cannot be done from cassette, I think the only way to do a multi-stage load would be to (as falcon suggested) create some sort of an assembly bridge to allow the merging of two CS1-loaded programs into one program in memory...

 

I cant see how it could be done, otherwise. If someone has an idea, Im all ears. :)

  • Like 1

Share this post


Link to post
Share on other sites

Here's the first idea. You write program 1 and save it to CS1. Then you write program 2 and save it to CS1. NEW. Rewind cassette. OLD CS1. RUN. It will then prompt you for cassette operation.

Program 1
100 CALL CHAR(49,"AA55AA55AA55AA55")

110 RUN "CS1"

 

Program 2

100 PRINT "1"

110 GOTO 100

Edited by sometimes99er
  • Like 1

Share this post


Link to post
Share on other sites

Yes, I see. I have done this many times with DSK. But I am 99.9% sure you cannot RUN CS1.

 

CS1 can only be OLDed from or SAVEd to. Once the CS1 program is in memory, then it can be ran.

 

RUN, when used in a program, cannot be used when CS1 is the location of the program to be ran.

  • Like 1

Share this post


Link to post
Share on other sites

But I am 99.9% sure you cannot RUN CS1.

 

Okay. The emulators react fine with the program statement RUN "CS1". I haven't pursued it any further. Sorry. I haven't used cassette files since coming back to the TI, so I can't pull strings and do something quick and dirty. But I like cartridges. I hate printers - they consume cartridges one after the other.

Edited by sometimes99er
  • Like 1

Share this post


Link to post
Share on other sites

Then the .1% of uncertainty in my mind was valid. :)

 

I dont have my system set up right now, but it is encouraging to know this is possible. I did not think it was so.

 

Thank you sometimes and spark. Somehow I was convinced from past experiences that you couldnt do this.

Share this post


Link to post
Share on other sites

From an old magazine:

 

 

5. In Extended BASIC, the command RUN "CS1" loads a program from the cassette drive and immediately runs it. It is equivalent to OLD CS1 followed by RUN. With a disk drive and Extended BASIC, you can use RUN "DSK1. filename", where filename is the name of the program on disk that you want to LOAD and RUN.

 

 

So, since this is the case, I wonder if string variables will retain properties if I give them value in Program #1 and try to use them in Program #2?

 

Time for some testing. :)

Share this post


Link to post
Share on other sites

As I suspected, the CHAR values are retained but it seems like variables are wiped... this is DSK testing, but I assume the behavior also applies to CS1 as well.

Share this post


Link to post
Share on other sites

Now, to revisit reading records from CS1. I need to figure out how to load data from tape into a pre-existing program. **Looks like pages 207-212 of the Reference Guide are going to give me what I need.

At one point I went through all this, but I just cant seem to remember!!!

Edited by Opry99er

Share this post


Link to post
Share on other sites

I can certainly try RUN “CS1” in a program for you when I get home today. There’s no way to supress the cassette operating instructions though, so if you have a neat screen display, it’ll be gone by the scrolling instructions.

Share this post


Link to post
Share on other sites

Thanks Casey!

 

As the other fellows have said, RUN CS1 works... :D

 

You are correct about the scrolling... however I think it will not be a problem because all of the loading I will need to do will take place prior to the program starting up. Im looking forward to trying some things out. I will send you s couple programs to try out when you have some time... I think I can see the light at the end of the tunnel, but Ill need someone to help me test on a physical machine before I can be confident.

 

Thanks for your offer to help!

Share this post


Link to post
Share on other sites

I tried this in Win994a which supports saving to and loading fromcassette. (Standard XB cartridge) It works fine with shorter programs and when loaded will put the program into memory expansion just like the disk system does. Large programs that would be saved to disk as IV254 will throw this error: "I/O ERROR 03". Perhaps RXB can save these longer programs to cassette.

 

I believe that a short A/L program could be written that would save and load long XB programs to/from cassette in two sections, something like the way EA5 programs are handled. It would be a bit cumbersome - first you'd have to load the loader from cassette and then the two sections of the program but it should be possible.

Have you given this idea any more thought? I for one would be very happy to be able to load IV formatted programs from standard XB via tape.

Share this post


Link to post
Share on other sites

jrhodes -

See Yesterdays News - Vol 2 No 12, Page 6

 

I can appreciate references to other materials, but can we also include a link or a synopsis?

Share this post


Link to post
Share on other sites
From tape to disk

Ray Kazmer, of KAZCO International, Sylmar, California, provides a

User Note which, he writes, "will put to rest forever the continuing problem

of how to transfer an over-sized file from tape to disk (and vice versa)". The

method described by Jerry Keisler in your Dec. 86 Feedback is one way to

do it, but if you’re as fumble-fingered and impatient as I am, I think you’ll

prefer this method.


To transfer an over-sized file from tape to disk:

1. In command mode, enter CALL FILES(1);

2. Load the program from tape;

3. After loading, enter CALL FILES(3);

4. Save the file to disk. It will be in I/V254 format and will run.


To transfer an over-sized file from disk to tape:

1. Load the I/V254 file from disk;

2. In command mode, enter CALL FILES(l);

3. Save the file (now in "Program" format) to tape.


  • Like 1

Share this post


Link to post
Share on other sites

To answer Sparkdrummer's last post: If you do not have a disk system then there are 13928 bytes of VDP ram available for saving a program. With the disk system that drops to 11840. After CALL FILES(1) that goes up to 12876 bytes, still more than 1K less than you can have without the disk system. So as long as there is a disk system you cannot even get the full 13928 bytes.

 

To answer Opry's original question: I just tested a simple "proof of concept" assembly program that makes it possible to save a large program (up to 24K long) to cassette. As I thought earlier, the XB program has to be in two parts, but it is definitely possible to do this.

 

Using it would go something like this:

OLD CS1

RUN to load the assembly routines

then:

CALL LINK("SAVECS") to save the XB program in 1 or 2 parts as needed

or:

CALL LINK("OLDCS") to load the XB program in 1 or 2 parts as needed

Edited by senior_falcon

Share this post


Link to post
Share on other sites

I dont see how it would work.... multi-staging the load.

 

Youd have to MERGE one program with another, because when a new program is OLDed, it clears the pre-existing program away. There would have to be a bridge somewhere to merge two programs together, IMO. RUN does not have this issue, RUNning one program from another... but since this cannot be done from cassette, I think the only way to do a multi-stage load would be to (as falcon suggested) create some sort of an assembly bridge to allow the merging of two CS1-loaded programs into one program in memory...

 

I cant see how it could be done, otherwise. If someone has an idea, Im all ears. :)

Hmm here is a RXB solution that fixes all your issues of course you need a two (2) cassette cord and 2 Cassette tape players.

 

CALL USER(CS2) ! This loads the USER Text file to run everything as if your typed it in manually

 

In the program it loads in text it would do a

OLD CS1

 

Thus loading your XB programs and from User you can load mulitile XB programg and save or run more

(Depending on your USER Text file)

 

Youtube videos of CALL USER is 9 movies of demo of CALL USER (RXBDEMO1 to RXBDEMOD)

 

Edited by RXB

Share this post


Link to post
Share on other sites

By the way in RXB almost any size file can be saved to DISK, Cassette or Hard Drive with RXB 2015 command

 

SAVE "path or device",IV254

 

The only exception is there has to be over 254 characters in that program or it defaults to PROGRAM FORMAT.

Edited by RXB

Share this post


Link to post
Share on other sites

To repeat my earlier question: Have you actually been able to save a large program to CS1? I have tried saving a 17K program to cassette using both TIXB and RXB2015 using Classic99. Both of them give this message: "I/O ERROR 03". It is true that Classic99 does not seem to support the cassette and in trying to save a short program the emulator locks up. But with a short program you at least get the message "REWIND CASSETTE TAPE THEN PRESS ENTER" before the lockup. When trying to save a 17K program you don't even get that far. Just the error message and an exit to the flashing cursor on the command line. Since you do not even get as far as "REWIND CASSETTE TAPE THEN PRESS ENTER" I don't see how this can possibly work.

  • Like 1

Share this post


Link to post
Share on other sites

To repeat my earlier question: Have you actually been able to save a large program to CS1? I have tried saving a 17K program to cassette using both TIXB and RXB2015 using Classic99. Both of them give this message: "I/O ERROR 03". It is true that Classic99 does not seem to support the cassette and in trying to save a short program the emulator locks up. But with a short program you at least get the message "REWIND CASSETTE TAPE THEN PRESS ENTER" before the lockup. When trying to save a 17K program you don't even get that far. Just the error message and an exit to the flashing cursor on the command line. Since you do not even get as far as "REWIND CASSETTE TAPE THEN PRESS ENTER" I don't see how this can possibly work.

Does not work in classic 99, I can not get it to work in win994asimulator either. IO Error 03

Ti99dir listed the file i was working with as a size of 60, int var 254.

I have attached the fiad and disk image i was using.

misspacman tigercub.zip

Share this post


Link to post
Share on other sites

Page II-122 of the "User's Reference Guide" section on file handling says you have these choices for cassette:

file-number - (from 1 to 255)

file-name - "CS1" or CS2" (but you can only write to CS2)

file organization - SEQUENTIAL

file-type - INTERNAL or DISPLAY

open-mode - INPUT or OUTPUT

record-type - FIXED (records will have 64, 128, or 192 positions and are padded to the appropriate length)

 

So it looks as if IV254 is not an option. It looks like a loader could use INTERNAL FIXED 192 to save the entire program as one file.

For now I will finish up the two file solution - it does some clever things with the XB interpreter. Then I might look at using IF192 to see if it is faster or slower.

  • Like 1

Share this post


Link to post
Share on other sites

I get I/O Error 03 in RXB 2015 on real hardware also trying to save this to CS1.

Did you try:

 

SAVE "CS1",IV254

 

Remember you have to have a file to save larger than 256 bytes long or will not work.

 

Looks like I have to pull out my TI99/4A from storage and test it.

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