Subject: Multiple CALLs

From: Owen Brand <[email-masked]>
Date: Thu, 7 Jan 2010 15:42:31 -0500

I need to make a repetative CALL about 70 times.... I have several  
angled graphic characters that round off the blocky text on my title  
screen for Honeycomb Raptute, and i need to call up 4 of them between  
15 and 20 times a piece.... Obviously doing so in the typical fashion  
(CALL VCHAR or CALL HCHAR--- possibly DISPLAY AT(X,Y): CHR$(99)) will  
take a long time and eat tons of memory... So---2 questions...

1) Can these calls be made in fewer statements...
2) What is the most effective method?

These characters are not in a line, so adding a repetition number to  
the CALL HCHAR will not work...  There are a few random patterns that  
will allow me to use a FOR-TO-STEP loop, but the majority of them are  
not so...  If I need to be more specific, let me know and I will try  
to elaborate.  Thanks.

Owen Brand
**Oprysoft**
Opry99er.com

---

From: "Jacques Groslouis" <[email-masked]>
Date: Thu, 7 Jan 2010 17:24:19 -0400

Try a FOR NEXT loop.

Jacques

----- Original Message ----- 
From: "Owen Brand" <[email-masked]>
To: <[email-masked]>
Sent: Thursday, January 07, 2010 4:42 PM
Subject: [TI994A] Multiple CALLs

> ------------------------------------
> 
> Yahoo! Groups Links
> 
> 
>

---

From: ti99_forever <[email-masked]>
Date: Thu, 7 Jan 2010 13:26:04 -0800 (PST)

Use Read/Data statements and a loop around the CALL statement.
Or use an assembly program to instantly load the screen. Of old there was CALL LINK("RECSCR") and CALL LINK("SAVSCR") to save and recall screens, parameters were disk.filename and a screen color for SAVSCR.

--- On Thu, 1/7/10, Owen Brand <[email-masked]> wrote:

> From: Owen Brand <[email-masked]>
> To: [email-masked]
> Date: Thursday, January 7, 2010, 3:42 PM
> take a long time and eat tons of memory... So---2
> questions....
> 
> the CALL HCHAR will not work....  There are a few
> random patterns that  
>     [email-masked]
> 
> 
>

---

From: Marc Hull <[email-masked]>
Date: Thu, 7 Jan 2010 14:35:58 -0800 (PST)

Try using DISPLAY AT statements and learning the keyboard codes for the non standard ones.  Doesn't use any more memory really than multiple HCHARS and is much faster.....

From: Owen Brand <[email-masked]>
Subject: [TI994A] Multiple CALLs
To: [email-masked]
Date: Thursday, January 7, 2010, 2:42 PM

  

1) Can these calls be made in fewer statements.. .

to elaborate.  Thanks.

Owen Brand

**Oprysoft**

Opry99er.com

---

From: Owen Brand <[email-masked]>
Date: Thu, 7 Jan 2010 17:52:50 -0500

I went ahead and did it all by hand the slow boring dull way--- CALL  
HCHAR and VCHAR.  The real reason for wanting a more efficient way to  
input the info was so I didn't have to type in 75 instructions for  
some title screen lettering.... I used the DISPLAY AT(X,Y):CHR$(X) on  
Lemonade Stand for certain graphics--- this time I just used HCHAR.  I  
can always go back and re-do it... But as it is only for the title  
screen, I doubt too many folks will mind an extra second or two for  
load time.  Funny... The title screen already uses more lines and more  
memory than the entire game itself....  And it's only the words  
"Honeycomb Rapture" done in big lettering.  I'm not too happy with the  
way a few letters look, but I have some time to re-think and  
redesign.  As for the gameplay....... Lots of re-tooling to do.  I  
haven't really even gotten to the true game engine yet.... Graphics  
and SPRITE motions along with collision detection has been my focus  
thus far.  However, as of now it's nice and neat using CALL COINC 
(ALL), but that will not be useful in real gameplay, as not every  
coincidence will be checked for... The plane dropping DDT might hit an  
enemy "killer bee" and I do not want that to trigger a coincidence.   
As of now, the way it is designed, if the plane's SPRITE hits an  
opponent, the screen goes to the "You lost a bee" screen of death.   
Not cool.....

Owen Brand
**Oprysoft**
Opry99er.com

On Jan 7, 2010, at 5:35 PM, Marc Hull <[email-masked]> wrote:

> Try using DISPLAY AT statements and learning the keyboard codes for  
> the non standard ones.  Doesn't use any more memory really than  
> multiple HCHARS and is much faster.....
>

---

From: mark wills <[email-masked]>
Date: Thu, 7 Jan 2010 14:55:27 -0800 (PST)

You want to use DATA statements

10 RESTORE
20 READ Y,X
30 IF X=0 THEN 500
40 CALL HCHAR(Y,X,42)
50 GOTO 20
60 DATA 1,2,6,7,4,2,11,21,0,0
500 GOTO 500

>Sent: Thu, 7 January, 2010 20:42:31

---

From: Owen Brand <[email-masked]>
Date: Thu, 7 Jan 2010 18:02:53 -0500

Yea... I had thought about using DATA statements, but have never used  
them before...  Additionally, there were 4 seperate characters, not  
one.  This may not make any difference, but I am inexperienced.  :).

Owen Brand
**Oprysoft**
Opry99er.com

---

From: mark wills <[email-masked]>
Date: Thu, 7 Jan 2010 15:06:40 -0800 (PST)

You can save memory by representing numbers as strings, at the expense of speed:

CALL HCHAR(1,1,42,32)

Can be coded as:

CALL HCHAR(VAL("1"),VAL("1"),VAL("42"),VAL("32"))

This saves quite a few bytes of memory, which can add up if you have a lot of HCHARs to do. The same technique can be used in DATA statements, so the techniques can be combined. You save memory, at the expense of speed. Pick one ;-)

Mark

>To: "[email-masked]" <[email-masked]>
>Sent: Thu, 7 January, 2010 22:52:50
>Subject: Re: [TI994A] Multiple CALLs
>
>  
>I went ahead and did it all by hand the slow boring dull way--- CALL HCHAR and VCHAR.  The real reason for wanting a more efficient way to input the info was so I didn't have to type in 75 instructions for some title screen lettering... . I used the DISPLAY AT(X,Y):CHR$ (X) on Lemonade Stand for certain graphics--- this time I just used HCHAR.  I can always go back and re-do it... But as it is only for the title screen, I doubt too many folks will mind an extra second or two for load time.  Funny... The title screen already uses more lines and more memory than the entire game itself....  And it's only the words "Honeycomb Rapture" done in big lettering.  I'm not too happy with the way a few letters look, but I have some time to re-think and redesign.  As for the gameplay.... ... Lots of re-tooling to do.  I haven't really even gotten to the true game engine yet.... Graphics and SPRITE motions along with collision detection has been my focus thus
 far.  However, as of now it's nice and neat using CALL COINC(ALL), but that will not be useful in real gameplay, as not every coincidence will be checked for... The plane dropping DDT might hit an enemy "killer bee" and I do not want that to trigger a coincidence.  As of now, the way it is designed, if the plane's SPRITE hits an opponent, the screen goes to the "You lost a bee" screen of death.  Not cool.....
>
>Owen Brand 
>**Oprysoft**
>Opry99er.com
>
>On Jan 7, 2010, at 5:35 PM, Marc Hull <marc.hull@sbcglobal .net> wrote:
>
>
>  
>>--- On Thu, 1/7/10, Owen Brand <owenbrand@opry99er. com> wrote:
>>
>>
>>>From: Owen Brand <owenbrand@opry99er. com>
>>>To: TI994A@yahoogroups. com

---

From: Marc Hull <[email-masked]>
Date: Thu, 7 Jan 2010 15:45:15 -0800 (PST)

--->Funny... The title screen already uses more lines and more memory than the entire game itself....  

I think you will be see as your skills progress that game engines usually are very small compared to the fluff that pleases the eye's and ears ;-)

From: Owen Brand <[email-masked]>
Subject: Re: [TI994A] Multiple CALLs
To: "[email-masked]" <[email-masked]>
Date: Thursday, January 7, 2010, 4:52 PM

  

      I went ahead and did it all by hand the slow boring dull way--- CALL HCHAR and VCHAR.  The real reason for wanting a more efficient way to input the info was so I didn't have to type in 75 instructions for some title screen lettering... . I used the DISPLAY AT(X,Y):CHR$ (X) on Lemonade Stand for certain graphics--- this time I just used HCHAR.  I can always go back and re-do it... But as it is only for the title screen, I doubt too many folks will mind an extra second or two for load time.  Funny... The title screen already uses more lines and more memory than the entire game itself....  And it's only the words "Honeycomb Rapture" done in big lettering.  I'm not too happy with the way a few letters look, but I have some time to re-think and redesign.  As for the gameplay.... ... Lots of re-tooling to do.  I haven't really even gotten to the true game engine yet.... Graphics and SPRITE motions along with collision detection has been my focus
 thus far.  However, as of now it's nice and neat using CALL COINC(ALL), but that will not be useful in real gameplay, as not every coincidence will be checked for... The plane dropping DDT might hit an enemy "killer bee" and I do not want that to trigger a coincidence.  As of now, the way it is designed, if the plane's SPRITE hits an opponent, the screen goes to the "You lost a bee" screen of death.  Not cool.....

Owen Brand**Oprysoft**Opry99er.com
On Jan 7, 2010, at 5:35 PM, Marc Hull <marc.hull@sbcglobal .net> wrote:

    

 

to elaborate.  Thanks.

Owen Brand

**Oprysoft**

Opry99er.com

---

From: Owen Brand <[email-masked]>
Date: Thu, 7 Jan 2010 18:54:14 -0500

No kidding.... The game loop (as it stands currently) is only about  
8-9 lines long... (the whole game including graphics is 37) The title  
screen is over 40!!!)

Owen Brand
**Oprysoft**
Opry99er.com

On Jan 7, 2010, at 6:45 PM, Marc Hull <[email-masked]> wrote:

> I think you will be see as your skills progress that game engines  
> usually are very small compared to the fluff that pleases the eye's  
> and ears ;-)
>
> HCHAR and VCHAR.  The real reason for wanting a more efficient way  
> to input the info was so I didn't have to type in 75 instructions  
> for some title screen lettering... . I used the DISPLAY AT(X,Y):CHR$  
> (X) on Lemonade Stand for certain graphics--- this time I just used  
> HCHAR.  I can always go back and re-do it... But as it is only for  
> the title screen, I doubt too many folks will mind an extra second  
> or two for load time.  Funny... The title screen already uses more  
> lines and more memory than the entire game itself....  And it's only  
> the words "Honeycomb Rapture" done in big lettering.  I'm not too  
> happy with the way a few letters look, but I have some time to re- 
> think and redesign.  As for the gameplay.... ... Lots of re-tooling  
> to do.  I haven't really even gotten to the true game engine yet....  
> Graphics and SPRITE motions along with collision detection has been  
> my focus thus far.  However, as of now it's nice and neat using CALL  
> COINC(ALL), but that will not be useful in real gameplay, as not  
> every coincidence will be checked for... The plane dropping DDT  
> might hit an enemy "killer bee" and I do not want that to trigger a  
> coincidence.  As of now, the way it is designed, if the plane's  
> SPRITE hits an opponent, the screen goes to the "You lost a bee"  
> screen of death.  Not cool.....
>
> Owen Brand
> **Oprysoft**
> Opry99er.com
>

---

From: R Halter <[email-masked]>
Date: Thu, 07 Jan 2010 18:44:04 -0600

Owen Brand wrote:
> them before...  Additionally, there were 4 seperate characters, not one. 
>  This may not make any difference, but I am inexperienced.  :). 

It's the same concept, though.  You simply put the character in the DATA 
statements, as well (either the actual character, or the ASCII, your 
choice).  Now, here's the kicker:  Instead of typing in all those CALL 
CHAR statements to define your custom characters...  You guessed it, 
FOR-NEXT and DATA routines to READ in the ASCII and the hex values.  ^_^

For example:

100 RESTORE 500
110 FOR X=1 TO 3
120 READ C,C$ :: CALL CHAR(C,C$)
130 NEXT X
   .
   .
   .
500 DATA 65,"FFFFFFFFFFFFFFFF",66,"0FA645337F21E400",67,"78695A4B3C2D1E0F"

Of course, in this example, you could do "FOR C=65 TO 67," "READ C$," 
and leave the ASCII out of the DATA statements entirely.

-- 
"You keep using that word.  I do not think it means what you think it 
means."
  -- Inigo Montoya (Mandy Patinkin), "The Princess Bride"

---

From: "kabldb" <[email-masked]>
Date: Fri, 08 Jan 2010 08:25:37 -0000

Hey, try this and you gotta love DISPLAY AT ...

:-)

100 CALL CLEAR
110 CALL SCREEN(1)
120 DISPLAY AT(5,3):" ###  #   # ##### #   #";
130 DISPLAY AT(6,3):"#   # #   # #     ##  #";
140 DISPLAY AT(7,3):"#   # #   # ####  # # #";
150 DISPLAY AT(8,3):"#   # # # # #     #  ##";
160 DISPLAY AT(9,3):" ###   # #  ##### #   #";
170 CALL CHAR(35,"7EFFFFFFFFFFFF7E")
180 CALL COLOR(1,9,5)
190 CALL CHAR(35,"003C7E7E7E7E3C")
200 GOTO 170

--- In [email-masked], Owen Brand <owenbrand@...> wrote:
> On Jan 7, 2010, at 6:45 PM, Marc Hull marc.hull@... wrote:
>
> > --- On Thu, 1/7/10, Owen Brand owenbrand@... wrote:
> >
> > From: Owen Brand owenbrand@...
> > To: "[email-masked]" [email-masked]
> > On Jan 7, 2010, at 5:35 PM, Marc Hull marc.hull@sbcglobal .net>
> > wrote:
> >
> >>
> >> --- On Thu, 1/7/10, Owen Brand owenbrand@opry99er. com> wrote:
> >>
> >> From: Owen Brand owenbrand@opry99er. com>

---

From: "kabldb" <[email-masked]>
Date: Fri, 08 Jan 2010 09:20:14 -0000

Here's another tiny demo ... ;-)

100 CALL CLEAR
110 CALL SCREEN(5)
120 CALL COLOR(3,16,1,4,16,1)
130 CALL CHAR(48,"000000000000071F")
140 CALL CHAR(49,"000000000000FFFF")
150 CALL CHAR(50,"000000000000E0F8")
160 CALL CHAR(51,"3F3F3F3F3F3F3F3F")
170 CALL CHAR(52,"FCFCFCFCFCFCFCFC")
180 CALL CHAR(53,"FCFCFCFCFCFCF8E")
190 CALL CHAR(54,"3F3F3F3F3F3F1F07")
200 CALL CHAR(55,"3C3C3C3C3C7EFFFF")
210 CALL CHAR(56,"000000000000F8E0")
220 DISPLAY AT(7,9):"0120 2012012";
230 DISPLAY AT(8,9):"3 43 43153 4";
240 DISPLAY AT(9,9):"6156756183 4";
250 GOTO 250

---

From: R Halter <[email-masked]>
Date: Fri, 08 Jan 2010 04:59:58 -0600

> 240 DISPLAY AT(9,9):"6156756183 4";

That one would make a good font for a game -- I may have to (ahem) 
borrow it, if I ever get the time to start learning AL...  ^_~