Jump to content

Photo

cass24k issue


20 replies to this topic

#1 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • 153 posts
  • RUN "CS1"

Posted Thu Jul 5, 2018 6:21 PM

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?

Attached File  Screenshot.png   25.83KB   2 downloads

Attached File  archive.zip   337.12KB   8 downloads



#2 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Thu Jul 5, 2018 7:23 PM

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.



#3 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • Topic Starter
  • 153 posts
  • RUN "CS1"

Posted Thu Jul 5, 2018 7:33 PM

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 by jrhodes, Thu Jul 5, 2018 7:36 PM.


#4 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Fri Jul 6, 2018 11:20 AM

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?



#5 Retrospect OFFLINE  

Retrospect

    Stargunner

  • 1,041 posts
  • Location:Wakefield, England

Posted Fri Jul 6, 2018 12:20 PM

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.

 

 

Attached File  freds tower.zip   19.07KB   16 downloads

 

:)



#6 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • Topic Starter
  • 153 posts
  • RUN "CS1"

Posted Fri Jul 6, 2018 2:28 PM

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.



#7 Retrospect OFFLINE  

Retrospect

    Stargunner

  • 1,041 posts
  • Location:Wakefield, England

Posted Fri Jul 6, 2018 4:05 PM

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.  



#8 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Fri Jul 6, 2018 7:08 PM

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 by senior_falcon, Fri Jul 6, 2018 7:18 PM.


#9 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • Topic Starter
  • 153 posts
  • RUN "CS1"

Posted Fri Jul 6, 2018 7:45 PM

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 by jrhodes, Fri Jul 6, 2018 7:57 PM.


#10 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Fri Jul 6, 2018 9:55 PM

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 by senior_falcon, Sat Jul 7, 2018 8:11 AM.


#11 Retrospect OFFLINE  

Retrospect

    Stargunner

  • 1,041 posts
  • Location:Wakefield, England

Posted Sat Jul 7, 2018 12:17 PM

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.



#12 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • Topic Starter
  • 153 posts
  • RUN "CS1"

Posted Sat Jul 7, 2018 12:21 PM

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.



#13 Asmusr OFFLINE  

Asmusr

    River Patroller

  • 2,872 posts
  • Location:Denmark

Posted Sat Jul 7, 2018 12:37 PM

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.



#14 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Sat Jul 7, 2018 7:43 PM

 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?



#15 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • Topic Starter
  • 153 posts
  • RUN "CS1"

Posted Sat Jul 7, 2018 7:50 PM

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 by jrhodes, Sat Jul 7, 2018 7:50 PM.


#16 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Sat Jul 7, 2018 9:32 PM

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.



#17 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • Topic Starter
  • 153 posts
  • RUN "CS1"

Posted Sat Jul 7, 2018 9:35 PM

No rush, life happens. :-D

Looking forward to it.



#18 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Sun Jul 8, 2018 8:26 AM

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)"

Attached Files


Edited by senior_falcon, Mon Jul 9, 2018 8:07 PM.


#19 jrhodes OFFLINE  

jrhodes

    Chopper Commander

  • Topic Starter
  • 153 posts
  • RUN "CS1"

Posted Mon Jul 9, 2018 7:22 AM

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 by jrhodes, Mon Jul 9, 2018 7:26 AM.


#20 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Mon Jul 9, 2018 8:15 AM

 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)



#21 senior_falcon OFFLINE  

senior_falcon

    Stargunner

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

Posted Mon Jul 9, 2018 8:03 PM

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)

Attached Files


Edited by senior_falcon, Mon Jul 9, 2018 8:05 PM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users