Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 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. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 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. 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 4, 2018 Share Posted January 4, 2018 (edited) 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 1100 CALL CHAR(49,"AA55AA55AA55AA55") 110 RUN "CS1" Program 2 100 PRINT "1" 110 GOTO 100 Edited January 4, 2018 by sometimes99er 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 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. 1 Quote Link to comment Share on other sites More sharing options...
sparkdrummer Posted January 4, 2018 Share Posted January 4, 2018 You can definitely RUN "CS!" from command mode and in a running program. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 4, 2018 Share Posted January 4, 2018 (edited) 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 January 4, 2018 by sometimes99er 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 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. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 I hate printers - they consume cartridges one after the other. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 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. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 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. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 (edited) 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 January 4, 2018 by Opry99er Quote Link to comment Share on other sites More sharing options...
Casey Posted January 4, 2018 Share Posted January 4, 2018 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. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted January 4, 2018 Author Share Posted January 4, 2018 Thanks Casey! As the other fellows have said, RUN CS1 works... 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! Quote Link to comment Share on other sites More sharing options...
jrhodes Posted June 2, 2018 Share Posted June 2, 2018 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. Quote Link to comment Share on other sites More sharing options...
sparkdrummer Posted June 3, 2018 Share Posted June 3, 2018 jrhodes - See Yesterdays News - Vol 2 No 12, Page 6 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted June 3, 2018 Share Posted June 3, 2018 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? Quote Link to comment Share on other sites More sharing options...
sparkdrummer Posted June 4, 2018 Share Posted June 4, 2018 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. 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 8, 2018 Share Posted June 8, 2018 (edited) 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 June 8, 2018 by senior_falcon Quote Link to comment Share on other sites More sharing options...
RXB Posted June 8, 2018 Share Posted June 8, 2018 (edited) 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 June 8, 2018 by RXB Quote Link to comment Share on other sites More sharing options...
RXB Posted June 8, 2018 Share Posted June 8, 2018 (edited) 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 June 8, 2018 by RXB Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 8, 2018 Share Posted June 8, 2018 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. 1 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted June 8, 2018 Share Posted June 8, 2018 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 Quote Link to comment Share on other sites More sharing options...
Casey Posted June 8, 2018 Share Posted June 8, 2018 I get I/O Error 03 in RXB 2015 on real hardware also trying to save this to CS1. 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 9, 2018 Share Posted June 9, 2018 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. 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted June 9, 2018 Share Posted June 9, 2018 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.