Re: TIB: idea->86ASM Module Builder


[Prev][Next][Index][Thread]

Re: TIB: idea->86ASM Module Builder




>Hey TI86 BASIC programmers:
>
>Last night I came up with a little idea.....
>What do you think about an on-calculator compiler that will allow you to
>create mini ASM programs (modules) that can be called by your TI-BASIC
>prgms to expand their functionality?  I am thinking this prgm will allow
>you to create mini ASM programs in the TI-BASIC editor using BASIC-like
>commands, and then compile the commands into an Assembly program.  This
>compiler will not allow you to create full-blown assembly programs, but
>will give you a few commands to do fast graphics, etc. that could
>otherwise not be done with TI-BASIC.  The purpose of this ASM Module
>Builder will be to allow BASIC programmers to mix Basic and ASM to create
>more powerful programs.

Ok, I am going to make a similar program for the 83 which this list has seen
my mails about... I'm not familiar with some of the commands in the way that
they are listed below with an open parenthesis, does the OS let you create
these? Well, Im assume you can do some input after the parenthesis but what
happens there? Its a program I guess then, because it must be stored somewhere
to knwo what to do with those inputs... Well, I was not thinking of a program
that creates these seperate programs, but one that contains everything (maybe
I'll have several libraries, not to make it too big) and it will just run the
task that it is suppose to...

>Here are some example commands I thought of:
I will comment on these as I go; all of them being possible, yes, but most
being unrealistic to try to create, and then use... =P


>Contrast(	; will increase or decrease screen contrast
This could be done, and the user could just input if they want to increase or
decrease it, and by how much. On the 83 it goes from 24d-63d, so I imagine you
can just read the ports to see what number its at now and change it by how
ever much the user specifies...

>Sprite(	; 8x8 aligned sprite (for creating moving characters like Mario)
That is a definate to create, and would be pretty cool too... =)  The easiest
routines in ASM are ones that do X by 8 pixels... The best way I think to do
this is have the user input the coordinates in the first two elements of a
list, then the value for the dimensions downward, and then the next elements
in the list would be 8-bit numbers in decimal, for the routine to interpret
and then write to the display...

>Tilemap(	; create a fast-drawing overhead Map (like in Legend of Zelda) 
This is way too far... Each game would be different, and something general
enough to suit them all would not be feasible... =P

>Shutdown	; turn off calc
Yup, could be done very easily, and waits for the user to press on, and it
continues with the Basic program, but how much would this one be actually
used? Maybe for some of those Basic GUIs out there, but if people have a
graphlink in the first place to get this ASM Modules thing on their calc, then
they could use ASE, Rascall, etc, that has that off thing already...

>Line( 		; Line command with new options like erasing the line
Only Horizontal and Vertical lines could be done fast with a feature like
this, so isnt the Line command already on the calc good enough? Hmm, I guess
the 86 cant draw white lines like the 83 can, if you say so...

>RunOn/Off	; turns the prgm run indicator on/off
When running a Basic program, the Run Indicator is turned right back on, so
this is pointless...

>FreeMem 	; will display free mem at given coordinates
Yes, possible once again and easy to do, but only those shells and GUI things
would probably only use it, and the same goes for the Off thing...

>Reset   	; will reset calc
Dont incorporate something like that, Thats mean, hehe... =P  Whats the point
anyway? Once you have reset your mem, then theres no point in continuing that
Basic Program you are calling it from... =P

>Run(   	; Run a TI-BASIC prgm
If the 86 cant do this already, then go ahead and make it... :)  I know that
the 82/83 can do subprograms quite easily though... =P

>Invert  	; will invert text (white text on black background)
Hey, I was thinking about doing this too, and should be definetly included. Do
you think that every time it finishes putting Text to the screen through
"Text(" or "Output(" or "Disp" that it resets this flag? Would this routine
have to be called every time you want to switch the color...?

>Asmpic  	; will draw an ASM picture stored in a string (about 400
			  bytes) instead of a TIOS picture (1010+ bytes).
Hey, sounds like a great idea... How are compressing the pictures though?
Thats kind of difficult to scratch about 600 bytes since each individual Bit
is important data... =P

>Rename( 	;will rename a variable
I figure just use one of those programs already out there... Attrib for the
82/83, and Im sure theres stuff like it for the 86. Its not necessary to make
a library routing out of this though...

>Sound(   	;output sound through linkport
Hey, that would be cool... gives a great new feature to the Basic programmers,
but you know it would make the prog alot slower...

>Outpt(   	;display text, etc.
Are you thinking about making one faster than is already on the calc? Sounds
good! Im have no idea how to though... :\

>Ok, I am NOT saying that I will program this, I am just THINKING about
>programming it.  Tell me what you think and if there are any other
>commands you would like to see.
>
>Thanks,
>Philip G.
>------------------------------
>pmadsen@juno.com
>------------------------------

Actually, if a program is made for each different function, than that could be
Ok, but im dont think they'd be used that much and would not work if they were
all together... Although, Im thinking about just putting the small and simple
things into a ASM Library for the 83, and maybe having seperate programs for
the bigger stuff like graphics routines... I say go for it on the 86 though...
Just dont make routines for specific things that one Basic program may use,
but all others dont, and then it would be a waste of space to keep on the
calc. Well, maybe it'd be alright with the 86's 90K of memory, but I really
have to watch what I plan to make for the 83, which only has 24K... Just dont
let a lot of useless ones float around though, and concentrate on
compatibility... :)

																	--Jason K.