Jump to content

Photo

CS1 capabilities


79 replies to this topic

#26 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 8:13 AM

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.

#27 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 8:50 AM

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. :)
  • RXB likes this

#28 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 4,158 posts

Posted Thu Jan 4, 2018 9:32 AM

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, Thu Jan 4, 2018 9:33 AM.

  • RXB likes this

#29 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 9:42 AM

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.
  • RXB likes this

#30 sparkdrummer ONLINE  

sparkdrummer

    Dragonstomper

  • 957 posts
  • Status? I don't need no stinkin' status!
  • Location:Phoenix,Arizona

Posted Thu Jan 4, 2018 9:57 AM

You can definitely RUN "CS!" from command mode and in a running program.



#31 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 4,158 posts

Posted Thu Jan 4, 2018 9:58 AM

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, Thu Jan 4, 2018 9:59 AM.


#32 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 10:01 AM

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.

#33 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 10:02 AM

I hate printers - they consume cartridges one after the other.


:lol:

#34 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 10:10 AM

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

#35 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 10:17 AM

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.

#36 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 10:20 AM

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, Thu Jan 4, 2018 10:37 AM.


#37 Casey OFFLINE  

Casey

    Moonsweeper

  • 303 posts

Posted Thu Jan 4, 2018 11:31 AM

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.

#38 Opry99er ONLINE  

Opry99er

    Quadrunner

  • Topic Starter
  • 9,908 posts
  • Location:Hustisford, WI

Posted Thu Jan 4, 2018 11:53 AM

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!

#39 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • 162 posts
  • RUN "CS1"

Posted Sat Jun 2, 2018 4:20 PM

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.



#40 sparkdrummer ONLINE  

sparkdrummer

    Dragonstomper

  • 957 posts
  • Status? I don't need no stinkin' status!
  • Location:Phoenix,Arizona

Posted Sun Jun 3, 2018 7:14 AM

jrhodes -

See Yesterdays News - Vol 2 No 12, Page 6



#41 OLD CS1 OFFLINE  

OLD CS1

    Technomancer

  • 5,683 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sun Jun 3, 2018 11:15 AM

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?



#42 sparkdrummer ONLINE  

sparkdrummer

    Dragonstomper

  • 957 posts
  • Status? I don't need no stinkin' status!
  • Location:Phoenix,Arizona

Posted Sun Jun 3, 2018 9:14 PM

         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.
         


#43 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • 1,260 posts
  • Location:Lansing, NY, USA

Posted Thu Jun 7, 2018 8:54 PM

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, Thu Jun 7, 2018 8:59 PM.


#44 RXB OFFLINE  

RXB

    River Patroller

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

Posted Thu Jun 7, 2018 9:12 PM

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, Thu Jun 7, 2018 9:12 PM.


#45 RXB OFFLINE  

RXB

    River Patroller

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

Posted Thu Jun 7, 2018 9:16 PM

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, Thu Jun 7, 2018 9:16 PM.


#46 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • 1,260 posts
  • Location:Lansing, NY, USA

Posted Fri Jun 8, 2018 6:28 AM

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.



#47 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • 162 posts
  • RUN "CS1"

Posted Fri Jun 8, 2018 7:08 AM

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.

Attached File  misspacman tigercub.zip   49.32KB   10 downloads



#48 Casey OFFLINE  

Casey

    Moonsweeper

  • 303 posts

Posted Fri Jun 8, 2018 4:29 PM

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



#49 senior_falcon OFFLINE  

senior_falcon

    Stargunner

  • 1,260 posts
  • Location:Lansing, NY, USA

Posted Fri Jun 8, 2018 7:06 PM

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.


  • RXB likes this

#50 RXB OFFLINE  

RXB

    River Patroller

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

Posted Fri Jun 8, 2018 9:01 PM

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.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users