Subject: XB Program question

From: "BobK" <[email-masked]>
Date: Sun, 03 Mar 2013 06:03:08 -0000

I found a program and was trying to enter it by the console but whenever I try to save the program and then "OLD" it back up the program is corrupted. it will list all right until it gets to line 250 then it adds about 34 line 255's which is not even in the program listing.
If I go through and erase all the line 255's and save it again the whole program is all jumbled and unrecognizable, I have never seen this happen before, I was wondering if perhaps I am some how telling it to add these false lines by the program/listing somehow telling it to create them.
Here is the listing, the trouble starts when I get to line 300 and save the program then try to run it again, it makes a motorcycle putt across the screen with little puffs of smoke then I think it is supposed to go to the main screen. (Line 300 is where I stopped and saved it and it ran pretty well.) when I continued adding lines after this it corrupts the program. I have tried new disks, 3 different drives, turning off the PEBox for a hour (I thought maybe it was tired) erasing the program and starting over, it does the same thing no matter what. If one of the GURUS could look at the listing and see if they can see anything strange I would appreciate it.

This is not the complete listing, I thought I had the whole thing but missed 3 or 4 lines if you need the rest I will redo the addon.
 
Thanks-
 
Bob K.

STUNTS
5 CALL CLEAR
7 CALL MAGNIFY(3)
10 CALL SCREEN(11)
20 DISPLAY AT(7,13):"STUNT"
25 DISPLAY AT(24,11):"BY TRISTANO"
30 CALL CHAR(140,"0000000001020402070979BB9484CC7800C0C08080701020C0201E332921331E")
35 CALL CHAR(33,"00383EFFFF7F3A18")
36 CALL COLOR(1,15,1)
40 CALL CHAR(136,"00C0C090A9CF92E25D8178CCA484CC7800000000E030901030E0000000000000")
50 CALL SPRITE(#1,136,2,90,10,0,20)
60 FOR T=30 TO 0 STEP-2 :: CALL POSITION(#1,Y,X) :: CALL SOUND(100,-7,T) :: CALL HCHAR(13,(X/8)+1,33) :: NEXT T
63 CALL PATTERN(#1,140) :: CALL MOTION(#1,0,35)
65 FOR T=0 TO 30 STEP 6 :: CALL POSITION(#1,Y,X) :: CALL SOUND(100,-7,T) :: CALL HCHAR(13,(X/8)+1,33) :: NEXT T
70 CALL DELSPRITE(#1)
71 FOR T=1 TO 100 :: NEXT T
73 CALL CHAR(33,"000000307C780000")
75 FOR T=1 TO 100 :: NEXT T
76 CALL CHAR(33,"0000000038000000")
80 FOR T=1 TO 100 :: NEXT T
81 CALL CHAR(33,"000000000000000000")
90 FOR T=1 TO 1000 :: NEXT T
100 CALL CLEAR
105 PUN=0
110 CALL CHARSET
120 CALL DELSPRITE(ALL)
130 CALL SCREEN(10)
140 DISPLAY AT(4,6):"LIVELLI DI GIOCO"
150 DISPLAY AT(7,6):"1 -DILETTANTE"
160 DISPLAY AT(9,6):"2 -PRATICO   "
170 DISPLAY AT(11,6):"3 -CAMPIONE  "
180 CALL KEY(1,K,S) :: IF S=-1 THEN 190 ELSE 180
190 IF K=19 THEN CALL CHAR(100,"010101010101010103030303030303038080808080808080C0C0C0C0C0C0C0C0")
200 IF K=7 THEN CALL CHAR(100,"0101010103030303070707070F0F0F0F80808080C0C0C0C0E0E0E0E0F0F0F0F0")
210 IF K=8 THEN CALL CHAR(100,"010101030307070F0F0F1F1F3F3F7F7F808080C0C0E0E0F0F0F0F8F8FCFCFEFE")
220 RVECCHIO=R
230 D=32
240 CALL SCREEN(8)
250 CALL COLOR(10,16,1)
260 CALL CHAR(105,"FFFEFCF8F0E0C080")
270 CALL CLEAR
280 CALL MAGNIFY(3)
290 CALL COLOR(2,16,16)
300 FOR T=13 TO 24
310 CALL HCHAR(T,1,42,D)
320 CALL HCHAR(T,D,105)
330 D=D-1
340 NEXT T
350 CALL CHAR(140,"0000000001020402070979BB9484CC7800C0C08080701020C0201E332921331E")
360 CALL CHAR(120,"000000000000000000000000007F7F1F00000000000000000000000000C0C080")
370 CALL CHAR(136,"00C0C090A9CF92E25D8178CCA484CC7800000000E030901030E0000000000000")
380 R=RVECCHIO
390 CALL SPRITE(#1,140,2,120,10,0,15)
400 CALL SPRITE(#2,100,9,120,50,#3,100,9,120,120,#4,100,9,120,190)
410 R=300
420 CALL KEY(0,K,S) :: IF S=+1 THEN 460
430 DISPLAY AT(1,4):"PUNTI : ";PUN
440 CALL COINC(ALL,D)
450 IF D=-1 THEN 570 ELSE 420
460 CALL POSITION(#1,Y,X)
470 CALL PATTERN(#1,136)
480 CALL LOCATE(#1,100,X)
485 CALL SOUND(1,2000,1)
490 FOR D=1 TO R :: NEXT D
500 CALL POSITION(#1,Y,X)
510 CALL LOCATE(#1,120,X)
520 R=R-10
530 PUN=PUN+100
540 IF R=100 THEN 620
550 CALL PATTERN(#1,140)
560 GOTO 420
570 CALL MOTION(#1,0,0)
580 DISPLAY AT(10,12):"GAME OVER"
585 CALL SAY("GAMES+OVER")
590 CALL KEY(3,K,S) :: IF S=+1 AND K=15 THEN 100 ELSE IF S=+1 THEN 670 ELSE 590
600 CALL KEY(0,K,S) :: IF S=+1 THEN RUN EL

---

From: Gregory McGill <[email-masked]>
Date: Sat, 2 Mar 2013 22:37:11 -0800

sounds like its getting corrupted on the save.. bad disk/tape?

Greg

On Sat, Mar 2, 2013 at 10:03 PM, BobK <[email-masked]> wrote:

> **
>
>
> I found a program and was trying to enter it by the console but whenever I
> try to save the program and then "OLD" it back up the program is corrupted.
> it will list all right until it gets to line 250 then it adds about 34 line
> 255's which is not even in the program listing.
> If I go through and erase all the line 255's and save it again the whole
> program is all jumbled and unrecognizable, I have never seen this happen
> before, I was wondering if perhaps I am some how telling it to add these
> false lines by the program/listing somehow telling it to create them.
> Here is the listing, the trouble starts when I get to line 300 and save
> the program then try to run it again, it makes a motorcycle putt across the
> screen with little puffs of smoke then I think it is supposed to go to the
> main screen. (Line 300 is where I stopped and saved it and it ran pretty
> well.) when I continued adding lines after this it corrupts the program. I
> have tried new disks, 3 different drives, turning off the PEBox for a hour
> (I thought maybe it was tired) erasing the program and starting over, it
> does the same thing no matter what. If one of the GURUS could look at the
> listing and see if they can see anything strange I would appreciate it.
>
> This is not the complete listing, I thought I had the whole thing but
> missed 3 or 4 lines if you need the rest I will redo the addon.
>
> Thanks-
>
> Bob K.
>
> STUNTS
> 5 CALL CLEAR
> 7 CALL MAGNIFY(3)
> 10 CALL SCREEN(11)
> 30 CALL
> CHAR(140,"0000000001020402070979BB9484CC7800C0C08080701020C0201E332921331E")
> 40 CALL
> CHAR(136,"00C0C090A9CF92E25D8178CCA484CC7800000000E030901030E0000000000000")
> 190 IF K=19 THEN CALL
> CHAR(100,"010101010101010103030303030303038080808080808080C0C0C0C0C0C0C0C0")
> 200 IF K=7 THEN CALL
> CHAR(100,"0101010103030303070707070F0F0F0F80808080C0C0C0C0E0E0E0E0F0F0F0F0")
> 210 IF K=8 THEN CALL
> CHAR(100,"010101030307070F0F0F1F1F3F3F7F7F808080C0C0E0E0F0F0F0F8F8FCFCFEFE")
> 220 RVECCHIO=R
> 230 D=32
> 240 CALL SCREEN(8)
> 250 CALL COLOR(10,16,1)
> 350 CALL
> CHAR(140,"0000000001020402070979BB9484CC7800C0C08080701020C0201E332921331E")
> 360 CALL
> CHAR(120,"000000000000000000000000007F7F1F00000000000000000000000000C0C080")
> 370 CALL
> CHAR(136,"00C0C090A9CF92E25D8178CCA484CC7800000000E030901030E0000000000000")
> 380 R=RVECCHIO

---

From: "BobK" <[email-masked]>
Date: Mon, 04 Mar 2013 03:23:50 -0000

Thanks for the reply
Like i said in the message, I used different disk(New fresh initiation,3 different drives,etc.

I have even tried entering other programs and saving them, then OLD DSK. them back in, RUN DSK. and they all run beautifully, it is just the one program that does this.

I thought maybe while typing in the program there MIGHT be some kind of hidden code that interacts with the save or OLD process.

O.K., I will just get rid of the listing and chalk it up to:          "I don't know!!, sh#* happens."

--- In [email-masked], Gregory McGill <arcadeshopper@...> wrote:
> On Sat, Mar 2, 2013 at 10:03 PM, BobK <bkaspar@...> wrote:
> 
>

---

From: Gregory McGill <[email-masked]>
Date: Sun, 3 Mar 2013 20:14:58 -0800

unless the code has assembly links in it.. it can't.

Greg

On Sun, Mar 3, 2013 at 7:23 PM, BobK <[email-masked]> wrote:

> I have even tried entering other programs and saving them, then OLD DSK.
> them back in, RUN DSK. and they all run beautifully, it is just the one
> program that does this.
>
> I thought maybe while typing in the program there MIGHT be some kind of
> hidden code that interacts with the save or OLD process.
>
> --- In [email-masked], Gregory McGill wrote:
> >
> > On Sat, Mar 2, 2013 at 10:03 PM, BobK wrote:
> >
> >
>
>  
>

---

From: Gregory McGill <[email-masked]>
Date: Sun, 3 Mar 2013 20:58:49 -0800

perhaps your cartridge contacts are dirty?   Or its malfunctioning? I had
that happen before with a well used console and a well used xb cart

Greg

---

From: "BobK" <[email-masked]>
Date: Mon, 04 Mar 2013 05:55:07 -0000

O.K.  i'll clean the contacts!! And a different  XB Module!!

But it only does this on one program anything else I either load ,type in, run, old from a different disk , change disks, use new disks it will work just fine.

I just took the program, loaded it into memory, erased all the lines after 110 (I THINK that is where it work up to the other day.)
When I get to the end of the program I typed list and then the whole program is scrabbled, I thought maybe I could try typing in the rest of the lines I erased but it seems like the program says "What Erase my Lines, I'LL fix you" and messes the program up.:-)

I am going to forget about it and just toss it out, I have more important things to worry about.

Thanks for your help.

Bob K.

--- In [email-masked], Gregory McGill <arcadeshopper@...> wrote:
> On Sun, Mar 3, 2013 at 8:14 PM, Gregory McGill <arcadeshopper@...>wrote:
> 
> > On Sun, Mar 3, 2013 at 7:23 PM, BobK <bkaspar@...> wrote:
> >
> >> **
> >>
> >>
> >> Thanks for the reply

---

From: [email-masked]
Date: Mon, 04 Mar 2013 18:19:41 -0000

Have you tried the program, complete with save and reload, in an emulator like Classic99?  If you post the complete program, we could take a look at it to see whether the program itself is altering memory it shouldn't.  If the same thing happens in an emulator as with real iron, we have a software problem worth tracing for its own sake!

...lee

--- In [email-masked], "BobK" <bkaspar@...> wrote:
> --- In [email-masked], Gregory McGill <arcadeshopper@> wrote:
> >
> > On Sun, Mar 3, 2013 at 8:14 PM, Gregory McGill <arcadeshopper@>wrote:
> > 
> > > On Sun, Mar 3, 2013 at 7:23 PM, BobK <bkaspar@> wrote:
> > >
> > >> **
> > >>
> > >>
> > >> Thanks for the reply

---

From: [email-masked]
Date: Mon, 04 Mar 2013 10:54:49 -0800

A couple of things to try. I noticed the the program is using 64 character pattern strings. There seems to be some confusion in the XB manual regarding these strings. In one place it says the strings can be 0 to 64 characters, in the usage section it shows those patterns broken up by ","s. So, I would try are adding commas and quotes at every 16 character boundary or breaking these call char lines into multiple call char lines with standard 16 char patterns. I have not had a chance to type in what you have below, but I will try when I get a chance. The long call char lines are just unusual enough that maybe there is an issue with these.

Regards,
Michael

> 600 CALL KEY(0,K,S) :: IF S=+1 THEN RUN EL

"Never try to teach a pig to sing; it frustrates you and annoys the pig." -- Mark Twain

---

From: [email-masked]
Date: Mon, 04 Mar 2013 19:32:31 -0000

There should be no confusion.  The manual is pretty clear on this.  You can use a single hexadecimal string to define 1, 2, 3 or 4 consecutive characters.  If it is longer than 64 HEX digits, it is truncated to 64.  If it is not an even multiple of 16 HEX digits, it is padded with zeros.  Commas are only used to separate the character code from the pattern string and a pattern string from the next character code, i.e., you can use one CALL CHAR statement to define several different, not necessarily contiguous, characters, as long as they will fit in one entered line.

...lee

--- In [email-masked], boggle1@... wrote:
> On Mar 2, 2013, at 10:37 PM, Gregory McGill <arcadeshopper@...> wrote:
>

---

From: [email-masked]
Date: Mon, 4 Mar 2013 23:35:48 +0000 (UTC)

That is not a problem as when you just use this example it runs fine. 

30 CALL CHAR(140,"0000000001020402070979BB9484CC7800C0C08080701020C0201E332921331E") 
50 FOR C=140 TO 150 :: PRINT CHR$(C) :: NEXT C :: GOTO 30 

So that is not the problem. 

Rich 

----- Original Message -----
From: [email-masked] 
To: [email-masked] 
Sent: Monday, March 4, 2013 10:54:49 AM 
Subject: Re: [TI994A] XB Program question 

Regards, 
Michael 

On Mar 2, 2013, at 10:37 PM, Gregory McGill < [email-masked] > wrote: 

Greg 

On Sat, Mar 2, 2013 at 10:03 PM, BobK < [email-masked] > wrote: 

<blockquote>

Thanks- 

Bob K. 

STUNTS 
5 CALL CLEAR 
7 CALL MAGNIFY(3) 
10 CALL SCREEN(11) 

</blockquote>

---

From: "BobK" <[email-masked]>
Date: Tue, 05 Mar 2013 03:12:58 -0000

Thanks for all the answers-
Here is the whole program, as I stated in one of the messages, I missed the end of the listing by 3-4 lines , so here is the whole thing.
Thanks Again-

Bob K.

5 CALL CLEAR
7 CALL MAGNIFY(3)
10 CALL SCREEN(11)
600 CALL KEY(0,K,S) :: IF S=+1 THEN RUN ELSE 600
610 T=T-1 :: GOTO 420
620 CALL CLEAR
630 CALL DELSPRITE(ALL)
640 CALL SCREEN(16)
650 DISPLAY AT(12,10):"HAI VINTO!"
660 CALL KEY(0,K,S) :: IF S=+1 THEN RUN ELSE 660
670 CALL DELSPRITE(#1)
680 DISPLAY AT(10,1)
690 PUN=0
700 GOTO 380

--- In [email-masked], lee@... wrote:
> --- In [email-masked], "BobK" <bkaspar@> wrote:
> >

---

From: "BobK" <[email-masked]>
Date: Tue, 05 Mar 2013 03:50:23 -0000

I just printed out the program and now I see that it is adding hidden letters to line 255:

255 CLOSE #2/>+=  ;  Ep ""::      6 SGN EA LOG CLOSE !T (these print out in Expanded double strike)TM,| ZJIL (back to regular size)J&JM| =<I
(expanded again)OT  I L=0I;TV  Ie  I  0- SGN E@

It adds this to the printout 31 times by my count.

If I run the program (With trace) it will run great until I get to the screen where it asks for your playing level, no matter what number you pick it gets to 255 (That isn't even in the program) and then I get a garbage screen like the XB Module is loose but just on that program.

I have no idea if that will help BUT it is what it is. :-p

What has me wondering is that some of the things in that line aren't even in the program. SGN  LOG etc. Where in the H%$$ are they coming from?

I am going to try entering it PC99 and see what happens.

Bob K.

---

From: "Jacques" <[email-masked]>
Date: Tue, 5 Mar 2013 10:24:27 -0400

Bob,

I copied your listing below and transferred it to my TI-99/4A where I 
converted it to an Extended Basic program by using Textloader. The program 
runs fine but I must not be a good cyclist because I keep hitting the 
obstacles. If you want the program I can archive it and email it to you.

Jacques

-----Original Message----- 
From: BobK
Sent: Monday, March 04, 2013 11:12 PM
To: [email-masked]
Subject: [TI994A] Re: XB Program question

Thanks for all the answers-
Here is the whole program, as I stated in one of the messages, I missed the 
end of the listing by 3-4 lines , so here is the whole thing.
Thanks Again-

Bob K.

5 CALL CLEAR
7 CALL MAGNIFY(3)
10 CALL SCREEN(11)
60 FOR T=30 TO 0 STEP-2 :: CALL POSITION(#1,Y,X) :: CALL SOUND(100,-7,T) :: 
CALL HCHAR(13,(X/8)+1,33) :: NEXT T
65 FOR T=0 TO 30 STEP 6 :: CALL POSITION(#1,Y,X) :: CALL SOUND(100,-7,T) :: 
CALL HCHAR(13,(X/8)+1,33) :: NEXT T
590 CALL KEY(3,K,S) :: IF S=+1 AND K=15 THEN 100 ELSE IF S=+1 THEN 670 ELSE 
590

--- In [email-masked], lee@... wrote:
>
> Have you tried the program, complete with save and reload, in an emulator 
> like Classic99?  If you post the complete program, we could take a look at 
> it to see whether the program itself is altering memory it shouldn't.  If 
> the same thing happens in an emulator as with real iron, we have a 
> software problem worth tracing for its own sake!
>
> ...lee
>
>

------------------------------------

Yahoo! Groups Links

---

From: [email-masked]
Date: Tue, 05 Mar 2013 22:06:45 -0000

I did as Jacques and it runs, saves and loads fine in Classic99.  I think you may have  some flaky memory in your 32KB-extended-memory module.  It is acting like the line number table (LNT) is getting corrupted.  The program is stored from the top of the 32KB down.  It is followed by the LNT.  I am not entirely sure of the format of the LNT; but, at the least, I think it associates line numbers with corresponding addresses in program storage.  There are others here more knowledgeable than I in that regard.

You did say that other programs run OK, but are they as long?  You can probably PEEK location >8386 (-31866, signed decimal) to see the highest location above >A000 (-24576, signed decimal) available.  The lower that number, the more memory is occupied by your program.

It'll be interesting to see how this plays out; but, my money's on flaky memory.

...lee

--- In [email-masked], "Jacques" <jgroslou@...> wrote:
> --- In [email-masked], lee@ wrote:
> >

---

From: "BobK" <[email-masked]>
Date: Wed, 06 Mar 2013 03:44:40 -0000

Hi Jacques,
How you doing up there?

As far as sending me the files that isn't necessary, Ermanno from Italy sent me a set in Classic99, .DSK format and some screen shots.
 
I tried Miller Graphics Advanced Diagnostics and it says there is nothing wrong with the memory, is there another utility that will run a test on memory?

I might have to hunt up a 32K memory Card somewhere and try that I guess.

Thanks-

Bob K.

---

From: "Jacques" <[email-masked]>
Date: Wed, 6 Mar 2013 09:45:33 -0400

Hi Bob,

I am doing pretty good for a 78 year old cancer survivor. My last chemo was 
early last December and my next check up with my oncologist is next month.

Someone else will have to answer your question about how to test memory 
expansion. I have never been very good with hardware related matters.

Bye for now,

Jacques

-----Original Message----- 
From: BobK
Sent: Tuesday, March 05, 2013 11:44 PM
To: [email-masked]
Subject: [TI994A] Re: XB Program question

Hi Jacques,
How you doing up there?

As far as sending me the files that isn't necessary, Ermanno from Italy sent 
me a set in Classic99, .DSK format and some screen shots.

I tried Miller Graphics Advanced Diagnostics and it says there is nothing 
wrong with the memory, is there another utility that will run a test on 
memory?

Thanks-

Bob K.

Yahoo! Groups Links