The Geek Forum

  • June 03, 2024, 02:27:34 AM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

News:

Due to the prolific nature of these forums, poster aggression is advised.

*

Recent Forum Posts

Shout Box

Members
Stats
  • Total Posts: 129678
  • Total Topics: 7210
  • Online Today: 94
  • Online Ever: 1013
  • (January 12, 2023, 01:18:11 AM)

Author Topic: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE  (Read 8130 times)

Charbok

  • Annoying Newbie
  • *
  • Coolio Points: +0/-5
  • Offline Offline
  • Posts: 2
    • View Profile
TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« on: November 26, 2007, 10:24:58 PM »

I feel like an idiot for not being able to figure this out, but here goes:

I couldn't find the "New Topic" button in the Tech forum, (maybe it's closed for new topics?) so I figured I'd post it here.

I'm fairly new to TI programming, and the fact that I have a 15 year old TI-82 (which I got for $5) doesn't help matters.
I can program basic things, but I'd like to move on to games.
Since I don't have a TI link, is there any way to program games on my own?

Actual advice is not required, just a link to somewhere that can give me the help I need would be great.

Many thanks,
Charbok
« Last Edit: November 27, 2007, 09:25:09 PM by Demosthenes »
Logged

BizB

  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +439/-15
  • Offline Offline
  • Gender: Male
  • Posts: 4324
  • Keep making circles
    • View Profile
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #1 on: November 26, 2007, 11:01:39 PM »

Your feeling was spot on.
Logged
Without me, it's just 'aweso'.

Dark Shade

  • Agent Of The System
  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +176/-5
  • Offline Offline
  • Gender: Male
  • Posts: 4419
  • "It is inevitable."
    • View Profile
    • Zombo
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #2 on: November 27, 2007, 02:41:57 AM »

Your feeling was spot on.

Hear hear.

Charbok, a simple list of instructions for you:

1. Read and review our forum rules.
2. Reread and review our forum rules.
3. Ask yourself why you're being treated negatively, and why nobody gives a flying fuck about your question.
4. Realize the answer lies directly in front of you.
5. If you're still around, create an introductory thread in our 'New Geeks On The Block' forum, located (conveniently) at the top of our forum list.
6. Be welcomed, though probably not favourably, by some of our members.
7. If you're still around, add to the conversations at hand. Reach 100 posts, at least of some merit. We wouldn't have it any other way.
8. Upon reaching 100 posts, you're able to access and/or post in the 'Hardware, Software, And Other Imperialist Crap' forum. Perhaps by then you'll have made a friend, hell, maybe even two. Repost your question, even drop some names if you think it'll help.
9. Wait.
10. Hopefully someone will take a liking to you and answer your question, or at least point you in the right direction.

Sound simple enough? It really is. Maybe if you had read our forum rules in the first place instead of barging in like a tool, I wouldn't have had to spell it out for you. But stick to the list, and you'll be alright. Until then, ye can't get ye flask. Accept it, or move on.

Many thanks,
Dark Shade

P.S - Be thankful I didn't move this to the proper forum, otherwise you wouldn't be able to respond! And I really feel like hearing what you have to say.
« Last Edit: November 27, 2007, 02:48:49 AM by Dark Shade »
Logged

Min

  • Nice Ex-Hackernetwork Moderator
  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +468/-13
  • Offline Offline
  • Gender: Female
  • Posts: 5970
  • Slacker Wiseass
    • View Profile
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #3 on: November 27, 2007, 05:18:04 PM »

Why would anyone want to program an 82?  The schools are using 84's these days.  If you have an 82, the teacher will make you use the 83 or 84 so you can keep up with whatever lesson he or she is teaching and then you won't have your games.
Logged
Flammable : Inflammable :: Duh : No Duh
"I TYPE 120 WORDS PER MINUTE, BUT IT'S IN MY OWN LANGUAGE!"  -ivan
1,180,463,441,680 Coolio Points

Charbok

  • Annoying Newbie
  • *
  • Coolio Points: +0/-5
  • Offline Offline
  • Posts: 2
    • View Profile
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #4 on: November 27, 2007, 08:04:17 PM »

Hear hear.

Charbok, a simple list of instructions for you:

1. Read and review our forum rules.
2. Reread and review our forum rules.
3. Ask yourself why you're being treated negatively, and why nobody gives a flying fuck about your question.
4. Realize the answer lies directly in front of you.
5. If you're still around, create an introductory thread in our 'New Geeks On The Block' forum, located (conveniently) at the top of our forum list.
6. Be welcomed, though probably not favourably, by some of our members.
7. If you're still around, add to the conversations at hand. Reach 100 posts, at least of some merit. We wouldn't have it any other way.
8. Upon reaching 100 posts, you're able to access and/or post in the 'Hardware, Software, And Other Imperialist Crap' forum. Perhaps by then you'll have made a friend, hell, maybe even two. Repost your question, even drop some names if you think it'll help.
9. Wait.
10. Hopefully someone will take a liking to you and answer your question, or at least point you in the right direction.

Sound simple enough? It really is. Maybe if you had read our forum rules in the first place instead of barging in like a tool, I wouldn't have had to spell it out for you. But stick to the list, and you'll be alright. Until then, ye can't get ye flask. Accept it, or move on.

Many thanks,
Dark Shade

P.S - Be thankful I didn't move this to the proper forum, otherwise you wouldn't be able to respond! And I really feel like hearing what you have to say.

I see you've set aside this special time to humiliate yourself in public.

Forums are for what? As far as I know, they're for asking questions.
I don't have time to stay and chat wth you losers, I just want answers.
Since obviously none of you (with the possible exception of a few members) have any idea what intelligence is, I suggest leaving your personal opinions aside and try and be the least bit helpful.

I mean yes, I can see your point, but I still think you're full of it.

Treating members right/wrong based on their post count is a fucking stupid thing to do.

People join forums to get answers, and then if they like that answer, then they'll stay and "chat".
It's not the other way around.

I mean my GOD.
I can not believe that out of ten thousand sperm, you were the fastest.
Logged

dcrog

  • Banned on the run
  • Hacker
  • ****
  • Coolio Points: +253/-2
  • Offline Offline
  • Posts: 1815
    • View Profile
Re: TI-82 Programming Help (You guys should feel like idiots)
« Reply #5 on: November 27, 2007, 08:16:32 PM »

Yeah Dark Shade.  What he said.

*click*
Logged

Old enough to know better.
Apparently not wise enough.

And who says with age come's wisdom?

MISTER MASSACRE

  • Lady Modmalade
  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +292/-17
  • Offline Offline
  • Posts: 2810
  • inhaling chalk in the old school
    • View Profile
    • twittery
Re: TI-82 Programming Help (You guys should feel like idiots)
« Reply #6 on: November 27, 2007, 08:35:35 PM »

Yeah well I'm pretty sure you've named yourself after a pokemon.
Logged

BizB

  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +439/-15
  • Offline Offline
  • Gender: Male
  • Posts: 4324
  • Keep making circles
    • View Profile
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #7 on: November 27, 2007, 08:37:52 PM »

I see you've set aside this special time to humiliate yourself in public.
Argumentum ad hominem
Forums are for what? As far as I know, they're for asking questions.
Argumentum ad antiquitatem
I don't have time to stay and chat wth you losers, I just want answers.
Argumentum ad misericordiam
Since obviously none of you (with the possible exception of a few members) have any idea what intelligence is, I suggest leaving your personal opinions aside and try and be the least bit helpful.
Argumentum ad hominem
I mean yes, I can see your point, but I still think you're full of it.
Argumentum JPFS
Treating members right/wrong based on their post count is a fucking stupid thing to do.
Cum hoc ergo propter hoc
Argumentum ad antiquitatem
People join forums to get answers, and then if they like that answer, then they'll stay and "chat".
It's not the other way around.
Argumentum ad populum
I mean my GOD.
I can not believe that out of ten thousand sperm, you were the fastest.

Non Sequitur
Argumentum ad hominem


Well, you hit most of the good ones.  Would you care to Goodwin the thread while you're at it?
Logged
Without me, it's just 'aweso'.

Crystalmonkey

  • Nazi Absinthe Drinker
  • Hacker
  • ****
  • Coolio Points: +167/-3
  • Offline Offline
  • Gender: Male
  • Posts: 1515
    • View Profile
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #8 on: November 27, 2007, 09:14:18 PM »

Argumentum ad hominemArgumentum ad antiquitatemArgumentum ad misericordiamArgumentum ad hominemArgumentum JPFSCum hoc ergo propter hoc
Argumentum ad antiquitatemArgumentum ad populumNon Sequitur
Argumentum ad hominem


Well, you hit most of the good ones.  Would you care to Goodwin the thread while you're at it?

Nazi!
Logged
"Philosophy is questions that may never be answered. Religion is answers that may never be questioned." - Anonymous

"Sadly, computers don't have rights, so moral arguments aside, I'm afraid it's quite legal to run Windows on them." - /. User 468275

Demosthenes

  • Evil Ex-HN Moderator
  • Administrator
  • Hacker
  • *
  • Coolio Points: +567/-72
  • Offline Offline
  • Gender: Male
  • Posts: 9904
  • Just try me. See what happens.
    • View Profile
    • Zombo
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #9 on: November 27, 2007, 09:18:50 PM »

I see you've set aside this special time to humiliate yourself in public.

Dark Shade is a moderator here.  He can do as he pleases.  In addition to that, one of his responsibilities here is to enforce the forum rules, of which you are in violation.

Quote
Forums are for what? As far as I know, they're for asking questions.

This forum is not for asking questions.  It is the property of the administrator of this site, so it is for exactly what he says it is for.

Quote
I don't have time to stay and chat wth you losers, I just want answers.

Then might I suggest Google.com?

Quote
Since obviously none of you (with the possible exception of a few members) have any idea what intelligence is, I suggest leaving your personal opinions aside and try and be the least bit helpful.

We are under no obligations to help anyone, much less someone as rude as you happen to be.  And we can express whatever personal opinions we wish here.  You, however, cannot.

Quote
I mean yes, I can see your point, but I still think you're full of it.

Treating members right/wrong based on their post count is a fucking stupid thing to do.

It has nothing to do with your post count.  Members treating someone harshly because of post count is against the rules here.  You were treated harshly because you are behaving like a vulgar asshole with no respect toward this forum or its members.

Quote
People join forums to get answers, and then if they like that answer, then they'll stay and "chat".

Welcome to the internet.  You must be new here.   :roll:

You have one -- and I mean only one -- post remaining to convince me not to ban your account.
Logged

Coolio Points: 89,000,998,776,554,211,222
Detta Puzzle Points: 45

Banning forum idiots since 2001

TerrorDronze

  • Hacker
  • ****
  • Coolio Points: +22/-10
  • Offline Offline
  • Gender: Male
  • Posts: 1259
  • I'm not narcissistic, I'm just awesome.
    • View Profile
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #10 on: November 28, 2007, 02:38:25 AM »

Quote
I see you've set aside this special time to humiliate yourself in public.
And I see you've given yourself the same special time, though, DS, you may want to work on that whole humiliating yourself in public thing, as you seem to be failing at it quite poorly, if that was, indeed, your own public humiliation time.  Why idiot n00bs like this one get all crotchety when they don't actually get a warm welcome when they go to annoy people is completely beyond me.  If I barged into your home, N00bachu, and asked you to tell me where I can find a bottle of Sl33k (that's the actual spelling) for my SP8, you would probably get pissed/highly irritated/ready to slap me too, no?

Quote
Forums are for what?
The exchange of information and ideas.  If you didn't know this already, maybe you should find another hobby, perhaps needlepoint, provided we can trust that you won't gouge your own eye out.

 
Quote
As far as I know, they're for asking questions.
Ooh, ooh, I have one.....

What possesed you to think that it would be a good idea to ask a question before introducing yourself?

Quote
I don't have time to stay and chat wth you losers,
Who's a loser here?  You're the one who can't find something as simple as games for your calculator on google.

Quote
I just want answers.
Then call customer support. if that's all you want, then find a websie.  If, on the other hand, you're looking for intellegent conversation, or a brick to the head, then, by all means, stick around.

Quote
Since obviously none of you (with the possible exception of a few members) have any idea what intelligence is, I suggest leaving your personal opinions aside and try and be the least bit helpful.
Ugh...  Que sunt remus?


Quote
I mean yes, I can see your point, but I still think you're full of it.
Full of what?  Intellegence?  Opinions?  Nougaty goodness?

Mmmm...  nougat.

However, yea, the population here is full of at least 2 of the 3 of these, although, not everyone has the same 2.

Quote
Treating members right/wrong based on their post count is a fucking stupid thing to do.
We judge based on quality, not quantity, and yours was arrogant, entitlist crap.

Quote
People join forums to get answers,
No, they join forums to discuss topics.

 
Quote
and then if they like that answer, then they'll stay and "chat".
learn some forum manners, you tool.

Quote
It's not the other way around.

Yes, yes it is.


Quote
I mean my GOD.
There's the respect an ungrateful worm like you should be giving the regulars.

Quote
I can not believe that out of ten thousand sperm, you were the fastest.
And I cannot bring myself to believe that out of the millions of students in the world, you're actually in a math course advanced enough to require a graphing calculator.
Logged
Wait, so the might-be-a-bot isn't dead?!

12AX7

  • Guest
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #11 on: November 28, 2007, 04:16:18 AM »

You have one -- and I mean only one -- post remaining to convince me not to ban your account.
No he doesn't.  :-)
Logged

Dark Shade

  • Agent Of The System
  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +176/-5
  • Offline Offline
  • Gender: Male
  • Posts: 4419
  • "It is inevitable."
    • View Profile
    • Zombo
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #12 on: November 28, 2007, 04:21:49 AM »

*sigh*

It looks as though I'll need to tear apart your post as well.

Quote from: Charbok
I see you've set aside this special time to humiliate yourself in public.

Set aside time? No. Humiliate myself? Absolutely not. Public? You bet your ass. The members here are the public, and we all have say in what goes on. You, however, do not.

Quote from: Charbok
Forums are for what? As far as I know, they're for asking questions.

By definition? This forum in particular is, like Demosthenes said, the property of the owner and administrator of this site. The sole purpose is not for asking questions.

Quote from: Charbok
I don't have time to stay and chat wth you losers, I just want answers.

Try a search engine. Perhaps learn to use the valuable tool that has been placed in front of you. And you obviously did have a little time to stay and chat, as you seemed keen to post a rebuttal. Interesting.

Quote from: Charbok
Since obviously none of you (with the possible exception of a few members) have any idea what intelligence is, I suggest leaving your personal opinions aside and try and be the least bit helpful.

So that was an insult, then a plea? You're kidding, right?

We all have a great understanding of what intelligence is, we even use Google to help us find answers to our questions before barging in to an unknown forum and making an ass of ourselves. WI R SMRT!

And personal opinions? They're the forum rules, which you haven't even bothered to glance at. Get your facts right.

Quote from: Charbok
I mean yes, I can see your point, but I still think you're full of it.

Oh, you do? Then your response should be treated as more of an attack? What do you hope to gain from all of this? The rules were made quite clear to you, and you've already chosen not to abide by them.

Quote from: Charbok
Treating members right/wrong based on their post count is a fucking stupid thing to do.

We don't. The post count is required so that n00bs such as yourself don't wander in and defecate all over our forum. You're able to post virtually everywhere else, I don't see the problem.

Quote from: Charbok
People join forums to get answers, and then if they like that answer, then they'll stay and "chat". It's not the other way around.

Where is it written that the competent are obliged to help the incompetent? You obviously have much to learn about forums, my Pokemaniac n00blet.

Quote from: Charbok
I mean my GOD. I can not believe that out of ten thousand sperm, you were the fastest.

I cannot believe that out of ten thousand possible new members, you were the only one who signed up.

I'm pretty damn quick when I want to be, there's no denying that. I consider myself lucky to be alive, but that's a story for another day.

Charbok, seriously. You've accomplished nothing but solidify the fact that you're a tool. There's nothing you've asked us here that you couldn't have found yourself, if indeed you bothered to try one of the many options available to you. I'm ready to show you the door as of now, but I don't believe the choice is mine to make. Demosthenes has control of the situation, and he'll decide whether or not you stick around to make any more witty remarks.

My advice is simple: Look elsewhere. Maybe even try and redeem yourself here if you wish, but try something else.

Edit - Aww, and I had a response all good and ready! Curse you, 12! :P
Logged

12AX7

  • Guest
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #13 on: November 28, 2007, 04:23:47 AM »

It's too bad he can't post a response!

 :-D
Logged

Dark Shade

  • Agent Of The System
  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +176/-5
  • Offline Offline
  • Gender: Male
  • Posts: 4419
  • "It is inevitable."
    • View Profile
    • Zombo
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #14 on: November 28, 2007, 04:25:21 AM »

 :lol:

12, you sly fox.

Nougaty goodness?

I just realized that I am, in fact, full of nougat.
« Last Edit: November 28, 2007, 04:30:29 AM by Dark Shade »
Logged

Demosthenes

  • Evil Ex-HN Moderator
  • Administrator
  • Hacker
  • *
  • Coolio Points: +567/-72
  • Offline Offline
  • Gender: Male
  • Posts: 9904
  • Just try me. See what happens.
    • View Profile
    • Zombo
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #15 on: November 28, 2007, 09:38:16 AM »

Heh heh.  It's nice to not be the most trigger-happy mod for once in my life.  :)
Logged

Coolio Points: 89,000,998,776,554,211,222
Detta Puzzle Points: 45

Banning forum idiots since 2001

Chris

  • Administrator
  • Hacker
  • *
  • Coolio Points: +286/-8
  • Offline Offline
  • Gender: Male
  • Posts: 3892
  • IT'S A TARP
    • View Profile
    • The Geekery
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #16 on: November 28, 2007, 06:27:27 PM »

I see you've set aside this special time to humiliate yourself in public.

Forums are for what? As far as I know, they're for asking questions.
I don't have time to stay and chat wth you losers, I just want answers.
Since obviously none of you (with the possible exception of a few members) have any idea what intelligence is, I suggest leaving your personal opinions aside and try and be the least bit helpful.

I mean yes, I can see your point, but I still think you're full of it.

Treating members right/wrong based on their post count is a fucking stupid thing to do.

People join forums to get answers, and then if they like that answer, then they'll stay and "chat".
It's not the other way around.

I mean my GOD.
I can not believe that out of ten thousand sperm, you were the fastest.


Can someone please remind me why I pay as much as I do to keep this place up and running every month?

Oh wait, I know, it's so you can get answers!

Go elsewhere and waste their bandwidth and disk space. I'm not going to pay for your stupidity.
Logged

RelandR

  • Wannabe Professional Blogger
  • **
  • Coolio Points: +91/-4
  • Offline Offline
  • Gender: Male
  • Posts: 535
  • This portion of the page intentionally left blank
    • View Profile
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #17 on: November 28, 2007, 07:58:12 PM »

You see I've set aside this special time to masturbate myself in public.

Forums are for what? As far as I know, they're for my own personal gratification.
I don't have time to stay and chat with you losers, I just want steak and a hand job.
Since obviously none of you (with the possible exception of myself) have any idea what being unintelligent is nor what it takes to satisfy me, I suggest leaving your personal opinions aside and try and be the least bit helpful and give a guy a reach around.

I mean yes, I am so happy that I can see your points, but still, I'm full of it.

Treating members right/wrong based on their stupidity count is a fucking postal thing to do.

People join forums to get quasi-laid, and then if they like what they get, then they'll stay and "chat".
It's not the other way around.

I mean ZOMG !!!!!.
I can not believe that out of ten thousand sperm, I was the fastest.


Do tell.
Logged

ivan

  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +499/-50
  • Offline Offline
  • Posts: 4929
  • Not a Mod, nor a Rocker. A Mocker.
    • View Profile
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #18 on: November 28, 2007, 09:11:04 PM »

Do you think he'll be back?
Logged
"I TYPE 120 WORDS PER MINUTE, BUT IT'S IN MY OWN LANGUAGE!"  -Detta

xolik: WHERE IS OBAMA'S GIFT CERTIFICATE?
Demosthenes: Is that from the gifters movement?


Detta: Crappy old shorts and a tank top.  This is how I dress for work. Because my job is to get puked on.
Demosthenes: So is mine.  I work in IT.


bananaskittles: The world is 4chan and God is a troll.

ivan

  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +499/-50
  • Offline Offline
  • Posts: 4929
  • Not a Mod, nor a Rocker. A Mocker.
    • View Profile
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #19 on: November 28, 2007, 09:21:28 PM »

Oh wow, I just typed "TI-82 games" in Yahoo (on account of me never using Google unless I'm promissed sex) and found this site: http://www.ticalc.org/pub/82/asm/games/crash/

So, you know, that was just way too easy. I can draw but one conclusion: Charbok knows damn well where to find programming samples. He didn't really come here looking for advice. He came here looking for fellow geeks. Soulmates.

Charbok is lonely.

Well, whatever. We gave him a warm welcome. And in case I'm wrong, here is some assembler code for a TI-82 pinball game:

Code: [Select]
.NOLIST

; To compile the different versions you have to define the following macro labels at the beginning:
;
; TI82C - TI-82 CrASH
; TI82C196 - TI-82 CrASH 19.006
; TI82S - TI-82 SNG
; TI83 - TI-83 ION
; TI83V - TI-83 Venus
; TI83P - TI-83+ ION

; -----[ Calculator dependent values ]---------------------------------------------------------------------------------------

#include "models.inc" ; Model specific information: equates and header

; -----[ Generic code ]------------------------------------------------------------------------------------------------------

BackupSP .equ Vars ; 2 bytes ; The initial value of SP
SaveSP .equ Vars+2 ; 2 bytes ; Temporary storage for SP
FrameCount .equ Vars+4 ; 1 byte ; Increased by the timer interrupt

MenuData .equ Vars+5 ; Can peacefully coexist with arcade variables

MB_Var .equ Vars+5 ; 2 bytes ; Used in MoveBall while playing
TableSlope .equ Vars+7 ; 2 bytes ; Pointer to the current slope array
TableData .equ Vars+9 ; 2 bytes ; Pointer to the current table image
TableFlippers .equ Vars+11 ; 2 bytes ; Pointer to flipper data
GizmoList .equ Vars+13 ; 2 bytes ; Pointer to gizmo pointers
TimerList .equ Vars+15 ; 2 bytes ; Pointer to timer pointers
CounterList .equ Vars+17 ; 2 bytes ; Pointer to counter pointers
BounceList .equ Vars+19 ; 2 bytes ; Pointer to bounce objects (!)
BounceNum .equ Vars+21 ; 1 byte ; Number of bounces
ObjSrc .equ Vars+22 ; 2 bytes ; Pointer to clean objects
ObjDst .equ Vars+24 ; 2 bytes ; Pointer to dynamic objects
ObjLen .equ Vars+26 ; 2 bytes ; Total length of object block
BallData .equ Vars+28 ; 9 bytes ; Dynamic ball variables
TableVars .equ BallData+9 ; 4 bytes ; Table state variables
GameVars .equ TableVars+4 ; ? bytes ; Gameplay information

__X .equ 0 ; 2 bytes
__Y .equ 2 ; 2 bytes
__VX .equ 4 ; 2 bytes
__VYlow .equ 6 ; 1 byte (required for accuracy)
__VY .equ 7 ; 2 bytes

BallX .equ BallData+__X ; Ball X coordinate
BallY .equ BallData+__Y ; Ball Y coordinate
BallVX .equ BallData+__VX ; Ball X velocity
BallVYlow .equ BallData+__VYlow ; Ball Y velocity lowest byte
BallVY .equ BallData+__VY ; Ball Y velocity

__LeftFlipper .equ 0 ; 1 byte ; The relative addresses
__RightFlipper .equ __LeftFlipper+1 ; 1 byte ; of these variables must
__LeftPushed .equ __LeftFlipper+2 ; 1 byte ; remain as defined
__RightPushed .equ __RightFlipper+2 ; 1 byte

LeftFlipper .equ TableVars+__LeftFlipper ; Left flipper height (0-4)
RightFlipper .equ TableVars+__RightFlipper ; Right flipper height (0-4)
LeftPushed .equ TableVars+__LeftPushed ; Left flipper pushed (0 if yes)
RightPushed .equ TableVars+__RightPushed ; Right flipper pushed (0 if yes)

__BonusVal .equ 0 ; 4 bytes
__BonusMul .equ 4 ; 1 byte
__Lives .equ 5 ; 1 byte
__Score .equ 6 ; 4 bytes
__TiltFrames .equ 10 ; 2 bytes

BonusVal .equ GameVars+__BonusVal ; Current bonus value
BonusMul .equ GameVars+__BonusMul ; Current bonus multiplier
Lives .equ GameVars+__Lives ; Number of balls available
Score .equ GameVars+__Score ; Current score
TiltFrames .equ GameVars+__TiltFrames ; Number of frames to the next legal tilt

MenuAddress .equ MenuData ; Pointer to menu data
MenuItem .equ MenuData+2 ; Current menu item selected
MenuItems .equ MenuData+3 ; Number of menu items
MenuCoords .equ MenuData+4 ; X coordinates of items (max. 10)

BigSprite .equ MenuData+14 ; 8 bytes ; Used in SpriteBig
TablePointers .equ MenuData+22 ; 20 bytes ; Pointers to available tables
TableMenu .equ VScreenB ; Pointer to dynamic menu needed for choosing tables
Sin_Table .equ VScreenB ; Sine table used during game
RightFlipperSprites .equ VScreenB+256 ; Sprites of the rightward flippers
TableCorrection .equ VScreenB+766 ; Pointer to the current table

FRAMEDELAY .equ 3 ; Number of interrupts (ticks) to wait between game frames
DELAYFACTOR .equ 20 ; Number of interrupts to wait between menu frames
MENULEFT .equ 6 ; X position of selected item
MENURIGHT .equ 12 ; X position of other item
GRAVITY .equ 6000 ; Gravitational acceleration (1/65536 pixels per ticks squared)
FORCEFACTOR .equ 1400 ; Strength of the flippers
TILTFACTOR .equ 1000 ; Minimum number of frames between subsequent tilts

MEMUSED .equ $1300 ; Memory needed to store slope and object data in the game

; -----[ Entry point ]-------------------------------------------------------------------------------------------------------

Main:

#ifdef TI82

#ifdef TI82S

 bcall(DEL_TMP)
 ld hl,MEMUSED
 bcall(MEM_FREE)
 jr nc,EnoughMem
 bcall(CREATE_TMP)
 ret
EnoughMem:
 ld hl,MEMUSED ; Nearly all RAM is allocated to remove phantom table files
IncreaseMem:
 ld (MEMALLOC),hl
 ld d,8 ; This increment is about half of a minimal table, therefore sufficiently small
 add hl,de
 push hl
 bcall(MEM_FREE)
 pop hl
 jr nc,IncreaseMem
 ld hl,(MEMALLOC)
 ld de,LastByte
 bcall(INSERT_MEM)
 bcall(CREATE_TMP)
 ld hl,LastByte ; Initialising pointers to the free RAM (82 SNG)
 ld (MEMSTART),hl
 ld de,(MEMALLOC)
 add hl,de
 ld (MEMEND),hl

#else

 ld hl,LastByte ; Initialising pointers to the free RAM (82 CrASH)
 ld (MEMSTART),hl
 ld hl,LastByte+MEMUSED
 ld (MEMEND),hl

#endif

#else

 ld de,(MEMEND) ; Checking free memory before doing anything (83 and 83+)
 ld hl,(MEMSTART)
 ld bc,MEMUSED
 add hl,bc
 ret c
 sbc hl,de
 ret nc ; Exit if there isn't enough memory

#endif

CheckTables:
 ld de,(MEMSTART) ; Clearing free RAM
 ld hl,(MEMEND)
 scf
 sbc hl,de
 ld b,h
 ld c,l
 ld h,d
 ld l,e
 inc de
 ld (hl),0
 ldir
 ld hl,0
 ld (TableCorrection),hl
 ld hl,LastByte-1
 call FindTable
 ld a,h
 cp $f0
 jr nc,FastExit ; Exit if no tables found

Start:
 im 1 ; For MirageOS and CrASH compatibility
 di
 ld (BackupSP),sp
 res 3,(iy+5) ; textinverse/textflags
 set 7,(iy+20) ; textwrite/sgrflags
Trunk:
 ld hl,0
 ld (TableCorrection),hl
 ld hl,MainMenu ; Entering the main menu
 call Menu
 jr Trunk

Exit: ; This is where the program should jump when the user quits
 call CorrectChecksum
 ld sp,(BackupSP)
 res 7,(iy+20) ; textwrite/sgrflags

FastExit:

#ifdef TI82S

 bcall(DEL_TMP) ; Freeing memory allocated at the beginning
 ld de,(MEMALLOC)
 ld hl,LastByte
 bcall(DEL_MEM)
 bcall(CREATE_TMP)

#endif

#ifdef TI83V

 call $475D ; _clrScrnFull (the screen needs to be cleared for Venus)
 call $4775 ; _homeUp

#endif

 ei
 ret

; -----[ High scores ]-------------------------------------------------------------------------------------------------------

DisplayHighScores: ; Display the high scores for every table
 ld hl,VScreen
 call ClearScreen
 ld hl,HighScoreLabel
 ld de,$1206
 ld bc,$0805
 call SpriteBig
 ld hl,LastByte-1
 ld a,20
DHS_Loop: ; Looking for tables and saving their addresses
 push af
 inc hl
 call FindTable
 ld a,h
 cp $f0
 jr nc,DHS_End
 pop bc ; Retrieving Y coordinate
 push bc
 ld c,2
 ld (PenColRow),bc
 push hl ; HL points to the table
 ld de,6 ; Offset to table title
 add hl,de
 push hl
 bcall(_vputs)
 pop de
 pop hl
 pop bc
 push bc
 push hl
 ex de,hl ; Displaying score
DHS_EndName:
 xor a
 or (hl)
 inc hl
 jr nz,DHS_EndName
 ld e,b
 inc e
 ld d,50
 call DisplayNumber
 pop hl
 pop af
 add a,8 ; Increasing Y coordinate
 jr DHS_Loop
DHS_End:
 pop af
 cp 20
 jr z,Exit ; Error if there are no tables
 ld hl,VScreen
 call FlipScreen
DHS_WaitKey: ; Waiting for 2nd
 call ReadKeyboard
 call ValidateKeys
 ld a,(ValidKey+6) ; 2nd
 and 32
 jr nz,DHS_WaitKey
 ret

; -----[ Arcade part ]-------------------------------------------------------------------------------------------------------

Game:
 call BuildTableMenu
 ld hl,TableMenu
 jp Menu
GameTableChosen:
 call BuildData ; Calculating derived in-game data
 call FindChosenTable
 call LoadTable
 ld a,3
 ld (Lives),a
 ld hl,0
 ld (Score),hl
 ld (Score+2),hl
 call InitTable
GameLoop:
 call CheckBall ; Ball management
 call RenderFrame ; Rendering the frame if FRAMEDELAY frames have been passed
; Also moving the flippers if necessary and handling the timers
 call MoveBall ; Moving the ball and adjusting its speed if needed
 call Interactions ; Handling interactive elements
 call ReadKeyboard ; Reading keyboard mask
 call ValidateKeys ; Registering keyboard changes
 ld hl,FrameCount ; Advancing the frame counter
 inc (hl)
 ld a,(ValidKey+1) ; Enter
 and 1
 call z,Tilt
 ld a,(ValidKey+6) ; 2nd
 bit 5,a
 jr z,GameEnded
 and 4 ; Zoom
 jr nz,GameLoop

GamePaused: ; Displaying 'PAUSE' and waiting for 2nd
 ld hl,PausedPicture
 ld de,VScreen+351
 ld b,7
GP_Loop:
 push bc
 ld a,(de)
 and 254
 ld (de),a
 inc de
 ldi
 ldi
 ldi
 ldi
 ex de,hl
 ld bc,7
 add hl,bc
 ex de,hl
 pop bc
 djnz GP_Loop
 ld hl,VScreen
 call FlipScreen
GP_Wait:
 call ReadKeyboard
 call ValidateKeys
 ld a,(ValidKey+6) ; Zoom
 and 4
 jr nz,GP_Wait
 jr GameLoop

GameEnded:
 call DisplayScore
 ld hl,(TableCorrection) ; Looking for the current high score
 inc hl
 inc hl
GE_EndName:
 xor a
 or (hl)
 inc hl
 jr nz,GE_EndName
 push hl
 ld c,(hl) ; BC: high score low word
 inc hl
 ld b,(hl)
 inc hl
 ld e,(hl) ; DE: high score high word
 inc hl
 ld d,(hl)
 pop ix
 ld hl,(Score+2)
 or a
 sbc hl,de
 jr c,GE_Finish
 jr nz,GE_NewScore
 ld hl,(Score)
 sbc hl,bc
 jr c,GE_Finish
GE_NewScore:
 ld hl,(Score) ; Updating high score
 ld (ix),l
 ld (ix+1),h
 ld hl,(Score+2)
 ld (ix+2),l
 ld (ix+3),h
GE_Finish:
 jp CorrectChecksum ; So the table is found again

Tilt: ; Tilting the ball if possible
 ld hl,(TiltFrames) ; If it's still illegal to tilt, the ball is lost
 ld a,h
 or l
 jr nz,LoseBall
 ld bc,-8 ; Random upward acceleration to the ball
 ld a,(Score)
 ld e,a
 ld d,0
 ld hl,(BallVX)
 add hl,de
 add hl,de
 add hl,de
 add hl,bc
 ld (BallVX),hl
 ld a,(BonusVal)
 ld e,a
 ld hl,(BallVY)
 sbc hl,de
 sbc hl,de
 sbc hl,de
 ld (BallVY),hl
 ld hl,TILTFACTOR ; Starting tilt frame counter
 ld (TiltFrames),hl
 ret

CheckBall:
 ld hl,(TiltFrames) ; Decreasing the tilt frame count if active
 ld a,h
 or l
 jr z,CB_TiltOK
 dec hl
 ld (TiltFrames),hl
CB_TiltOK:
 ld a,(BallY+1) ; Checking if the ball was lost
 cp 163
 ret c ; Returning if not yet
LoseBall:
 ld a,(Lives)
 dec a
 jr nz,CB_LivesRemain
 pop hl ; All the lives are lost
 jp GameEnded
CB_LivesRemain:
 ld (Lives),a
 call DisplayScore
 ld hl,(ObjSrc) ; Restoring table state
 ld de,(ObjDst)
 ld bc,(ObjLen)
 ldir
InitTable:
 ld hl,$5B00 ; Initialising variables
 ld (BallX),hl
 ld hl,$9600
 ld (BallY),hl
 ld h,l
 ld (BallVX),hl
 ld (BonusVal),hl
 ld (BonusVal+2),hl
 ld (LeftFlipper),hl
 ld (TiltFrames),hl
 ld a,l
 ld (BallVYlow),a
 ld a,1
 ld (BonusMul),a
 call DrawSpring
 call InitElements ; Rendering the initial state of interactive elements
 call ForceRenderFrame
IT_StartWaiting: ; Waiting for right arrow
 call ReadKeyboard
 call ValidateKeys
 ld a,(KeyPressed)
 and 4
 jr nz,IT_StartWaiting
 ld hl,-5000 ; Strength
IT_WaitSpring:
 ld bc,$1000
IT_SpringDelay:
 push hl
 pop hl
 dec bc
 ld a,b
 or c
 jr nz,IT_SpringDelay
 ld ix,VScreen+659 ; Drawing back the spring
 ld b,11
 ld de,-12
IT_DrawBack:
 ld a,(ix-12)
 ld (ix),a
 add ix,de
 djnz IT_DrawBack
 push hl
 ld hl,VScreen
 call FlipScreen
 call ReadKeyboard
 pop hl
 ld de,-1000
 add hl,de
 ld a,(KeyPressed) ; Right
 and 4
 jr nz,IT_Release
 ld a,h
 cp $d5
 jr nc,IT_WaitSpring
IT_Release:
 ld (BallVY),hl
 ld a,255
 ld (FrameCount),a
 ret

DisplayScore:
 call ForceRenderFrame      ; Rendering the losing moment
 ld hl,VScreen+242 ; Clearing the middle of the screen
 ld a,23
DS_ClearLoop:
 ld e,0
 cp 9
 jr nz,DS_NoBlack
 dec e
DS_NoBlack:
 ld b,8
DS_ClearByte:
 ld (hl),e
 inc hl
 djnz DS_ClearByte
 inc hl
 inc hl
 inc hl
 inc hl
 dec a
 jr nz,DS_ClearLoop
 ld hl,Score ; Displaying score
 ld de,$2216
 call DisplayNumber
 ld hl,BonusVal ; Displaying bonus
 ld de,$221c
 call DisplayNumber
 ld a,(BonusMul) ; Displaying multiplier
 ld b,-1
DS_CalcBonus10:
 inc b
 sub 10
 jr nc,DS_CalcBonus10
 push af
 ld a,b
 ld de,$121c
 call DisplayDigit
 pop af
 add a,10
 call DisplayDigit
 ld ix,VScreen+351 ; The x operator
 ld a,(ix)
 or 5
 ld (ix),a
 ld a,(ix+12)
 or 2
 ld (ix+12),a
 ld a,(ix+24)
 or 5
 ld (ix+24),a
 ld bc,(BonusVal)
 ld de,(BonusVal+2)
 ld ix,(Score)
 ld hl,(Score+2)
 ld a,(BonusMul)
DS_AddBonus:
 add ix,bc
 adc hl,de
 dec a
 jr nz,DS_AddBonus
 ld (Score),ix
 ld (Score+2),hl
 ld hl,Score ; Displaying new score
 ld de,$2224
 call DisplayNumber
 ld hl,VScreen
 call FlipScreen
DS_Wait2nd:
 call ReadKeyboard
 call ValidateKeys
 ld a,(ValidKey+6) ; 2nd
 and 32
 jr nz,DS_Wait2nd
 ret

BuildTableMenu: ; Create a menu containing the table titles
 ld hl,LastByte-1
 ld de,TablePointers
 xor a
BTM_Loop: ; Looking for tables and saving their addresses
 push af
 inc hl
 push de
 call FindTable
 pop de
 ld a,h
 cp $f0
 jr nc,BTM_End
 ld a,l
 ld (de),a
 inc de
 ld a,h
 ld (de),a
 inc de
 pop af
 inc a
 jr BTM_Loop
BTM_End:
 pop af
 or a
 jp z,Exit ; Error if zero!!!!!
 ld hl,TableMenu ; Building the jump address table
 ld (hl),a
 inc hl
 ld b,a
 ld de,GameTableChosen
BTM_MenuAddress:
 ld (hl),e
 inc hl
 ld (hl),d
 inc hl
 djnz BTM_MenuAddress
 push hl
 ld hl,VScreen ; Drawing the titles
 call ClearScreen
 ld c,a
 ld b,a
BTM_Titles:
 push bc
 ld a,c
 sub b
 ld d,0
 add a,a
 push af
 ld e,a
 ld hl,TablePointers
 add hl,de
 ld a,(hl)
 inc hl
 ld h,(hl)
 ld l,a
 ld e,6 ; Offset to table title
 add hl,de
 pop af
 ld b,a
 add a,a
 add a,b ; 6*counter (Y coordinate)
 ld b,a
 ld c,0
 ld (PenColRow),bc
 bcall(_vputs)
 pop bc
 djnz BTM_Titles
 pop de
 ld hl,VScreen+12
 ld b,c
 ld a,12 ; String width: constant 12
BTM_CopyTitles:
 push bc
 ld (de),a
 inc de
 ld bc,60
 ldir
 ld c,a ; BC = 12
 add hl,bc
 pop bc
 djnz BTM_CopyTitles
 ret

FindChosenTable:
 ld hl,0
 ld (TableCorrection),hl
 ld a,(MenuItem)
 ld b,a
 ld hl,LastByte-1
FCT_Loop:
 push bc
 inc hl
 call FindTable
 pop bc
 djnz FCT_Loop
 ret

FindTable: ; Find a table in the memory starting from HL
 ld a,(hl)
 cp 83 ; 83, 12, 217, 154
 jr nz,FT_Skip
 ld d,h
 ld e,l
 inc de \ ld a,(de) \ cp 12 \ jr nz,FT_Skip
 inc de \ ld a,(de) \ cp 217 \ jr nz,FT_Skip
 inc de \ ld a,(de) \ cp 154 \ jr nz,FT_Skip
 push hl
 ex de,hl
 inc hl
 ld (TableCorrection),hl
 call CalculateChecksum
 ex de,hl
 pop hl
 ld a,(de)
 xor ixl
 jr nz,FT_Skip
 inc de
 ld a,(de)
 xor ixh
 ret z ; At this point HL points to the base address of the table data
FT_Skip:
 inc hl
 ld a,h
 cp $f0
 jr c,FindTable
 ret

CalculateChecksum: ; Calculate checksum of block at HL (starting with size word)
 ld c,(hl) ; The sum will be in IX, and HL points after the block in the end
 inc hl
 ld b,(hl)
 inc hl
 ld de,0
 push de
 pop ix
CC_Loop:
 ld e,(hl)
 inc hl
 add ix,de
 dec bc
 ld a,b
 or c
 jr nz,CC_Loop
 ret

CorrectChecksum: ; Correcting the checksum of the current table
 ld hl,(TableCorrection)
 ld a,h
 or a
 ret z ; Do nothing if no table was selected
 call CalculateChecksum
 push ix
 pop de
 ld (hl),e
 inc hl
 ld (hl),d
 ret

LoadTable: ; Load table pointed by HL
 ld a,h
 cp $f0 ; Returning to the shell if there is no valid table
 jr c,LT_Valid
 jp Exit
LT_Valid: ; Skipping the name, the high score and the number of elements
 ld de,6
 add hl,de
LT_EndName:
 xor a
 or (hl)
 inc hl
 jr nz,LT_EndName
 ld e,4
 add hl,de ; Skipping the high score
 push hl
 pop ix ; IX points to the number of various elements
 add hl,de
 ld (TableFlippers),hl ; Flipper data
 ld e,(hl)
 add hl,de
 add hl,de
 inc hl
 ld (TableData),hl ; Table image
 ld de,12*160
 add hl,de
 call UncompressTable ; Decompressing slope data
 ld c,(hl)
 inc hl
 ld b,(hl)
 inc hl
 ld (ObjSrc),hl ; Saving object block data for later retrieval
 ld (ObjDst),de
 ld (ObjLen),bc
 push de ; The first byte after the slope data
 ldir ; Interactive objects are copied there
 pop hl ; DE: pointer table; HL: object data
 ld a,(ix) ; Number of gizmos
 ld (GizmoList),de
 ld (de),a
 inc de
 or a
 jr z,LT_GizmoOK
 ld b,a
LT_GizmoList:
 push bc
 ld a,l ; Storing gizmo pointer
 ld (de),a
 inc de
 ld a,h
 ld (de),a
 inc de
 ld a,(hl) ; Skipping event script
 ld bc,5
 rra
 jr nc,LT_SpriteOK
 ld bc,13
LT_SpriteOK:
 add hl,bc
 call SkipEvents
 pop bc
 djnz LT_GizmoList
LT_GizmoOK:
 ld a,(ix+1) ; Number of timers
 ld (TimerList),de
 call LT_TimerCounter
 ld a,(ix+2) ; Number of counters
 ld (CounterList),de
 call LT_TimerCounter
 ld a,(ix+3) ; Number of bounces
 ld (BounceNum),a
 ld (BounceList),hl ; Bounce objects at DE
 ret

LT_TimerCounter: ; Building pointer table for timers and counters (data at HL)
 ld (de),a ; The number of objects of the given type
 inc de
 or a
 ret z ; No elements of this kind
 ld b,a
LT_TCList:
 push bc
 ld a,l ; Storing object pointer
 ld (de),a
 inc de
 ld a,h
 ld (de),a
 inc de
 inc hl
 ld b,0 ; Skipping event script
 call SkipEvents
 pop bc
 djnz LT_TCList
 ret

SkipEvents: ; Jumping over event list at HL; B must be 0
 ld a,(hl)
 inc hl
 or a
 ret z
 push hl
 ld c,a
 ld hl,EventLengths-1
 add hl,bc
 ld c,(hl)
 pop hl
 add hl,bc
 jr SkipEvents

UncompressTable: ; Uncompresses a table at HL
 ld de,(MEMSTART) ; Setting up pointers
 ld (TableSlope),de
 ld c,(hl) ; Size of compressed data in BC
 inc hl
 ld b,(hl)
 inc hl
UCT_Loop:
 ld a,(hl)
 ldi
 or a
 jr nz,UCT_Counter ; Jumping if A is not zero
 ld a,(hl) ; Outputting (HL) nullbytes
 inc hl
 dec bc
 or a
 jr z,UCT_Counter
 push bc
 ld b,a
 xor a
UCT_PutZeros:
 ld (de),a
 inc de
 djnz UCT_PutZeros
 pop bc
UCT_Counter:
 ld a,b
 or c
 jr nz,UCT_Loop
 push hl
 ld hl,(MEMSTART) ; Correcting address
 ld de,3840
 add hl,de
 ex de,hl
 pop hl
 ret

BuildData: ; Calculating in-game data
 ld de,Sin_Table_Source ; Building the sine table
 ld hl,Sin_Table
 ld ix,Sin_Table+128
 ld b,64
BD_SinLoop:
 ld a,(de)
 inc de
 ld (hl),a
 inc hl
 ld (ix),a
 dec ix
 djnz BD_SinLoop
 ld (hl),a
 ld de,Sin_Table
 ld hl,Sin_Table+128
 ld b,128
BD_SinNeg:
 ld a,(de)
 inc de
 neg
 ld (hl),a
 inc hl
 djnz BD_SinNeg
 ld de,LeftFlipperSprites ; Calculating the sprites of the rightward flippers
 ld hl,RightFlipperSprites
 ld b,40
BD_RFLoop:
 push bc
 ld a,(de)
 ld c,a
 inc de
 ld a,(de)
 inc de
 push de
 ld b,8
BD_RFBits:
 rra
 rl d
 rr c
 rl e
 djnz BD_RFBits
 ld (hl),d
 inc hl
 ld (hl),e
 inc hl
 pop de
 pop bc
 djnz BD_RFLoop
 ret

#include "interact.inc" ; Interactive elements, event handling
#include "render.inc" ; Rendering routines
#include "physics.inc" ; Ball handling: gravity, collision, flippers
#include "menu.inc" ; Menu related and text display routines
#include "graph.inc" ; Graphics routine library
#include "input.inc" ; Keyboard routines
#include "math.inc" ; Integer arithmetic

; -----[ Data - non-executable part ]----------------------------------------------------------------------------------------

NonExecutable:

#include "miscdata.inc" ; Data needed by various libraries
#include "sprites.inc" ; Sprites used in the program except for table elements

MainMenu:
 .byte 3
 .word Game
 .word DisplayHighScores
 .word Exit
 .byte 4
 .byte %11111011,%11101111,%10111110,%11111000
 .byte %11000000,%11001100,%10110010,%00110000
 .byte %11111000,%11001111,%10111100,%00110000
 .byte %00011000,%11001100,%10110010,%00110000
 .byte %11111000,%11001100,%10110010,%00110000
 .byte 8
HighScoreLabel:
 .byte %11001011,%01111101,%10010000,%11111011,%11101111,%10111110,%11111011,%11100000
 .byte %11001011,%01100001,%10010000,%11000011,%00001100,%10110010,%11000011,%00000000
 .byte %11111011,%01101101,%11110000,%11111011,%00001100,%10111100,%11110011,%11100000
 .byte %11001011,%01100101,%10010000,%00011011,%00001100,%10110010,%11000000,%01100000
 .byte %11001011,%01111101,%10010000,%11111011,%11101111,%10110010,%11111011,%11100000
 .byte 3
 .byte %11111011,%00101101,%11110000
 .byte %11001011,%00101100,%01100000
 .byte %11001011,%00101100,%01100000
 .byte %11011011,%00101100,%01100000
 .byte %11111011,%11101100,%01100000

FlipperAngles: ; Surface angles for the left flipper frames
 .byte 17, 13, 1, -12, -16 ; Right flipper angles: these*(-1)

EventLengths: ; The length in bytes of the parametres of each type of event
 .byte 4, 0, 2, 2, 1, 1, 2, 1, 2

PausedPicture:
 .byte %00000000,%00000000,%00000000,%00000000
 .byte %01111101,%11110110,%01011111,%01111100
 .byte %01100101,%10010110,%01011000,%01100000
 .byte %01111101,%11110110,%01011111,%01111000
 .byte %01100001,%10010110,%01000011,%01100000
 .byte %01100001,%10010111,%11011111,%01111100
 .byte %00000000,%00000000,%00000000,%00000000

LogoData:
 .byte $10, $10, $08, $04, $09, $10, $20, $11, $08, $20, $10, $82
 .byte $44, $44, $41, $10, $44, $41, $08, $44, $11, $08, $44, $20
 .byte $39, $69, $3C, $9D, $93, $27, $3D, $3A, $6C, $F2, $B1, $8A
 .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
 .byte $F0, $78, $1C, $08, $FF, $03, $81, $18, $E0, $60, $27, $03
 .byte $E0, $38, $98, $88, $FE, $23, $11, $18, $C0, $41, $26, $13
 .byte $E6, $AB, $F3, $FA, $FC, $FE, $B9, $98, $AC, $C6, $AC, $FF
 .byte $D7, $77, $F5, $FD, $FD, $7F, $75, $5D, $DD, $57, $75, $7F
 .byte $EA, $AB, $FA, $AA, $FE, $D6, $BB, $AA, $AE, $EA, $EE, $AB
 .byte $D1, $33, $F4, $49, $FC, $4B, $35, $95, $8D, $50, $35, $03
 .byte $C6, $23, $F1, $F8, $FC, $62, $31, $F8, $8C, $46, $27, $E3
 .byte $C6, $23, $F1, $F8, $FC, $62, $31, $F8, $8C, $46, $27, $E3
 .byte $C6, $23, $F1, $F8, $FC, $62, $31, $F8, $8C, $46, $27, $E3
 .byte $C6, $23, $F1, $F8, $FC, $62, $31, $F8, $8C, $46, $27, $E3
 .byte $C6, $23, $F1, $F8, $FC, $62, $31, $F8, $8C, $46, $27, $E3
 .byte $C6, $20, $10, $0C, $04, $02, $01, $01, $80, $40, $24, $03
 .byte $C6, $30, $18, $0E, $04, $06, $03, $03, $80, $C0, $64, $07
 .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
 .byte $39, $69, $3C, $9D, $93, $27, $3D, $3A, $6C, $F2, $B1, $8A
 .byte $44, $44, $41, $10, $44, $41, $08, $44, $11, $08, $44, $20
 .byte $10, $10, $08, $04, $09, $D4, $77, $77, $47, $77, $77, $4A
 .byte $00, $00, $00, $00, $01, $DC, $57, $27, $44, $66, $46, $4E
 .byte $00, $00, $00, $00, $01, $48, $75, $25, $45, $45, $54, $44
 .byte $00, $00, $00, $00, $01, $C8, $45, $25, $47, $75, $77, $74

LastByte:

.echo "Total executed code: "
.echo NonExecutable-Main
.echo "\n"
.echo "Total data: "
.echo $-NonExecutable
.echo "\n"

#ifdef TI82

#ifndef TI82S

.block MEMUSED

#endif

#endif

.end
END
Logged
"I TYPE 120 WORDS PER MINUTE, BUT IT'S IN MY OWN LANGUAGE!"  -Detta

xolik: WHERE IS OBAMA'S GIFT CERTIFICATE?
Demosthenes: Is that from the gifters movement?


Detta: Crappy old shorts and a tank top.  This is how I dress for work. Because my job is to get puked on.
Demosthenes: So is mine.  I work in IT.


bananaskittles: The world is 4chan and God is a troll.

Min

  • Nice Ex-Hackernetwork Moderator
  • Forum Moderator
  • Hacker
  • *
  • Coolio Points: +468/-13
  • Offline Offline
  • Gender: Female
  • Posts: 5970
  • Slacker Wiseass
    • View Profile
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #20 on: November 28, 2007, 09:50:09 PM »

But where can I find code for TI-83 games?
Logged
Flammable : Inflammable :: Duh : No Duh
"I TYPE 120 WORDS PER MINUTE, BUT IT'S IN MY OWN LANGUAGE!"  -ivan
1,180,463,441,680 Coolio Points

TheJudge

  • Administrator
  • Hacker
  • *
  • Coolio Points: +330/-6
  • Offline Offline
  • Gender: Male
  • Posts: 5270
    • View Profile
Re: TI-82 Programming Help (I feel like an idiot)
« Reply #21 on: November 29, 2007, 09:34:32 AM »

Argumentum ad hominemArgumentum ad antiquitatemArgumentum ad misericordiamArgumentum ad hominemArgumentum JPFSCum hoc ergo propter hoc
Argumentum ad antiquitatemArgumentum ad populumNon Sequitur
Argumentum ad hominem

You forgot the most important one! Argumentum finitum nowipunchuindascrotum
Logged

12AX7

  • Guest
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #22 on: November 30, 2007, 02:10:02 AM »

Charbok is lonely.
Charbok's dead, baby. Charbok's dead.
Logged

pbsaurus

  • Hacker
  • ****
  • Coolio Points: +354/-31
  • Offline Offline
  • Gender: Male
  • Posts: 9981
  • Everyone Loves The King Of The Sea
    • View Profile
    • http://www.myspace.com/flipperpete
Re: TI-82 Programming Help BECAUSE I'M A MORON AND CAN'T FIND GOOGLE
« Reply #23 on: December 05, 2007, 01:38:09 AM »

Ivan you can put the Flipper in the code but you can't put the code in the Flipper