jrhodes Posted July 6, 2018 Share Posted July 6, 2018 I was testing out the cass24k utility by senior falcon, when i encountered a bug. I want to know why it does this, and if there is anything i can do about it. I converted 2 games, maze of grog (very slight change so that it does not try to load/save high scores to disk), and freds tower. Maze of grog works as expected, no issues that i encountered. Freds tower, i thought was ok too, until the "ending screen" with fred on a tractor; the graphics on this one screen are messed up. I have attached the wav files of the games in question. They were made in win99 simulator by writing each program segment to a different .titape file, then writing them back to .tidisk under different file names, then extracted from the .tidisk to fiad's and converted to wav with cs1er, then loaded into classic99. Both classic99 and win99 simulator glitch on the "ending screen" of freds tower (after answering enough math problems to get to 160 ft, i used addition for testing on both emulators.) Classic99 will load them if you use a wav of the cass24k2 utility. I do not have a way to test these on real hardware, but i am suspecting freds tower will glitch there too. Any ideas? archive.zip Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 6, 2018 Share Posted July 6, 2018 A good place to start would be to load the two segment program from cassette and then list the program to see whether it matches the original. Quote Link to comment Share on other sites More sharing options...
jrhodes Posted July 6, 2018 Author Share Posted July 6, 2018 (edited) In the case of freds tower, that wont help. It has an embedded assembly loader. 10 CALL INIT :: CALL LOAD(8192,186,252) :: CALL LINK("RUN") both the original freds tower and the one posted above list exactly the same. Edited July 6, 2018 by jrhodes Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 6, 2018 Share Posted July 6, 2018 Can you post the original "Fred's Tower". With that I can do the conversion and see if the program is changed in the process. Maybe a dumb question, but you you sure the original does not have this problem? Quote Link to comment Share on other sites More sharing options...
Retrospect Posted July 6, 2018 Share Posted July 6, 2018 Can you post the original "Fred's Tower". With that I can do the conversion and see if the program is changed in the process. Maybe a dumb question, but you you sure the original does not have this problem? Here you go ... standard Fred's Tower. freds tower.zip 1 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted July 6, 2018 Author Share Posted July 6, 2018 Can you post the original "Fred's Tower". With that I can do the conversion and see if the program is changed in the process. Maybe a dumb question, but you you sure the original does not have this problem? Yes, i am sure the original is fine when played as intended. Quote Link to comment Share on other sites More sharing options...
Retrospect Posted July 6, 2018 Share Posted July 6, 2018 Yes, i am sure the original is fine when played as intended. Sorry, I forgot to say, I tested it again today and the tractor sequence is fine. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 7, 2018 Share Posted July 7, 2018 (edited) Using Win994a, I first loaded FRED from disk. SIZE shows 6788 bytes remaining. I then saved FRED to cassette using CASS24K1. After loading the program with OLD CS1 the size was the same at 6788 bytes remaining. It seems to run fine and I got to the ending tractor scene. First off, make sure the program is the same length after loading from disk and loading from cassette. Assuming the lengths are the same, another possibility might be the use of RUN "CS1" from within a program, which does not reset vdp data. Try OLD CS1 and then RUN to see if the problem goes away. (EDIT) I just tried it with RUN "CS1" and it worked fine. I did the conversion with CASS24K1 although it should work the same as CASS24K2 Edited July 7, 2018 by senior_falcon Quote Link to comment Share on other sites More sharing options...
jrhodes Posted July 7, 2018 Author Share Posted July 7, 2018 (edited) I have been using OLD CS1, not RUN "CS1". I do use RUN "CS1" (thus why i have it as my custom status) on regular basis in XB, but i did not use it here. SIZE reports 6788 when i use CASS24K1 to save and load fred from wav. Using the two-file version i uploaded, SIZE returns 6788 after loading CASS24K2 from wav, then the 2 part load of the other wav files. I should point out that i do not use CASS24K1, because CASS24K2 gives me 2 files that i can write to disk and then process into wav files with cs1er. CASS24K1 results in a single big file saved to .titape that when saved to disk is still int/var and is the same size as the original file. ... I can confirm however, that the version made with CASS24K1 does *not* glitch the ending screen... The problem for me in particular is how to take the file made by CASS24K1 and turn it into a working wav. Edited July 7, 2018 by jrhodes Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 7, 2018 Share Posted July 7, 2018 (edited) I tried out CASS24K2 and found the same problem that you did. I will look into this and find out what is going wrong. (EDIT) One byte is changed when you save to cs1 and then load. I now know which byte; now to find out why. I see what is going on. Should be an easy fix. Edited July 7, 2018 by senior_falcon 3 Quote Link to comment Share on other sites More sharing options...
Retrospect Posted July 7, 2018 Share Posted July 7, 2018 Regards making a workable wav from the files, maybe give JS99er a try? It supports cassette now. Once you've SAVE CS1'd and it's done the process, click "Save Tape File" and it will output a Tape.Wav file. 1 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted July 7, 2018 Author Share Posted July 7, 2018 Regards making a workable wav from the files, maybe give JS99er a try? It supports cassette now. Once you've SAVE CS1'd and it's done the process, click "Save Tape File" and it will output a Tape.Wav file. I've never been big on online apps of any kind, but i may just give it a shot. Still hoping senior falcon uploads a new cass24 version to play with too. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted July 7, 2018 Share Posted July 7, 2018 I've never been big on online apps of any kind, but i may just give it a shot. Still hoping senior falcon uploads a new cass24 version to play with too. It's not really "online", it's just running in your browser. There is no server watching what you're doing. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 8, 2018 Share Posted July 8, 2018 Still hoping senior falcon uploads a new cass24 version to play with too. This will be uploaded shortly. The way the first segment of the Xb program is saved is to doctor the line number table so it begins at >D2AC and is just one line long, putting the end at >D2AF. This saves the first segment fine; XB thinks it is a legitimate program. The problem arises because line numbers cannot be greater than 32767. The two bytes at D2AC and D2AD are the dummy line number. If that is greater than 32767 then when you save, XB thoughtfully clears the first bit to make the line number legal. Why they felt this was necessary is a mystery, because you cannot enter a line number greater than 32767, so why would you need to look for that? Anyhow, the code is written and is being tested now. By the way, you don't have to save to CS1 with this. It is OK to save to disk. So, for example, FRED could be saved to disk in 3 parts: FREDL, FRED1 and FRED2. Perhaps that will make the conversion to WAV easier? 2 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted July 8, 2018 Author Share Posted July 8, 2018 (edited) By the way, you don't have to save to CS1 with this. It is OK to save to disk. So, for example, FRED could be saved to disk in 3 parts: FREDL, FRED1 and FRED2. Perhaps that will make the conversion to WAV easier? That may indeed help. It all depends on if CS1er gripes at the files i give it. That program only seems to like things in program-image format, and puke anytime i give it int/var. Edited July 8, 2018 by jrhodes Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 8, 2018 Share Posted July 8, 2018 That may indeed help. It all depends on if CS1er gripes at the files i give it. That program only seems to like things in program-image format, and puke anytime i give it int/var. Yep, they should be in program image format. I won't be able to post tonight. I had a problem that seemed to originate between the chair and the keyboard. T'was most vexing, but all is sorted out now and all works as it should. 1 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted July 8, 2018 Author Share Posted July 8, 2018 No rush, life happens. Looking forward to it. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 8, 2018 Share Posted July 8, 2018 (edited) Here it is. Besides fixing the bug, I made another small change. Now you have to CALL FILES(1) before loading the XB program you want to save to tape. The earlier program could not save an extremely long program of 24K bytes. Now you can. Remember that you can save to DSK1 if that makes it easier to produce WAV files. (edit) This version is updated with revised instructions: "When creating the tape, be sure you entered CALL FILES(1). After the tape is been created, only if the TI is connected to a disk system should you type CALL FILES(1) before RUN “CS1”. With only a cassette drive just type RUN “CS1”. You do not have to SAVE CS1. You can save to disk if that makes it easier to use a WAV conversion program such as cs1er. For example, a program called FRED could be saved as: SAVE DSK1.FREDL (the loader) SAVE DSK1.FRED1 (part 1) SAVE DSK1.FRED2 (part 2)" CASS24K070918.zip Edited July 10, 2018 by senior_falcon 4 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted July 9, 2018 Author Share Posted July 9, 2018 (edited) Here it is. Besides fixing the bug, I made another small change. Now you have to CALL FILES(1) before loading the XB program you want to save to tape. The earlier program could not save an extremely long program of 24K bytes. Now you can. Remember that you can save to DSK1 if that makes it easier to produce WAV files. I can not use this on a system with no disk drive. I successfully saved a program from disk to tape in win994a simulator, but when i disconnect the disk drive (leaving only the 32k attached), attempting to do CALL FILES(1) gives a program not found error. exact steps i did, please let me know if i am missing something: <setup emulator for 32k+disks> <enter XB> OLD DSK1.CASS24K2 RUN <edit line 10 to remove !> SAVE CS1 <saved cass24k2 to its own .titape> CALL FILES(1) OLD DSK1.program CALL LINK("SAVECS") <saved two program halves to two separate .titape files> BYE <manually reset all tape counters to 0> <change emulator config to 32k, no disks> <enter XB> OLD CS1 <load cass24k2> RUN CALL FILES(1) <!>program not found error<!> Never mind, i found my mistake. CALL FILES(1) is only needed to save the program to tape, not load it. Edited July 9, 2018 by jrhodes Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 9, 2018 Share Posted July 9, 2018 i found my mistake. CALL FILES(1) is only needed to save the program to tape, not load it. Sorry, I guess the instructions were not 100% clear on that. I will amend them tonight. If you want to test this by saving to disk and then reloading from disk you also have to CALL FILES(1) 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 10, 2018 Share Posted July 10, 2018 (edited) This is the same program as before but the use of CALL FILES(1) has been clarified in the instructions: When creating the tape, be sure you entered CALL FILES(1). After the tape is been created, only if the TI is connected to a disk system should you type CALL FILES(1) before RUN “CS1”. With only a cassette drive just type RUN “CS1”. You do not have to SAVE CS1. You can save to disk if that makes it easier to use a WAV conversion program such as cs1er. For example, a program called FRED could be saved as: SAVE DSK1.FREDL (the loader) SAVE DSK1.FRED1 (part 1) SAVE DSK1.FRED2 (part 2) CASS24K070918.zip Edited July 10, 2018 by senior_falcon 2 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.