BASIC improvement?
#1
Posted 12 February 2003 - 11:37 PM
Create a add-in which could be called from a BASIC program, that way we could use fast functions that normally take a long time or could not be used at all, such as sprites and text on the 8th line.
I'm thinking it could work something like AShell for the TI's.
#2
Posted 13 February 2003 - 05:37 AM
Here is one way I think it would work:
You write a TSR that you lay on the timer interrrupt.
This will scan a variable/listbfile/matrix ... (everythin you have
write / read access to in basic files). If it has a certain value it
scans other variables / fields of the list / matrix and performs
the requested operation. This would probably take a huge ammount of Ram
because it's TSR but it should be possible.
I won't do this! This was just an idea. I know nothing exactly about changing
an interrupt so it someone with a lot of expiriences. Maybe roeoender will
try it???
Bye Huhn
#3
Posted 13 February 2003 - 08:54 AM
It would use some of the calculator's tokens and it would be definietly faster then built-in basic.
Noone ofcourse would make a complete (the same as the oryginal) BASIC but a smaller subset game&graphics-oriented would be possible.
At my school I will have a subjeect called "translators & interpreters" and I would like to dom something like this for it. But it will be in 12 months or so, so don't excite about it. :-)
Roeoender.
#4
Posted 14 February 2003 - 07:57 AM
a TSR, then I searched the interrupt the calc uses for displaying characters.
(it is INT10/09)
So I wrote a simple plugin that enables you to reboot the calc by simply outputting a # on the screen. This needs a little improvement though
because if the driver is installed while writing the programm immediatly after
calling the SYBL pop-up menu the calc will reboot because there is a '#' in it.
Probably I'll also use a variable that has to be set to a special state to
start the program.
If someone is interrested in the sourcecode simply send a PM/Mail
Bye Huhn
#5
Posted 14 February 2003 - 10:34 AM
for example, if you wanted to draw a line:
1->N //function number
0->X //1st X coordinate
0->Y //1st Y coordinate
1->A //2nd X coordinate
1->B //2nd Y coordinate
Prog "ASM"
#6
Posted 14 February 2003 - 06:02 PM
I think of something like:
1->List 1 //function Number
0->List 1 //1st x coord
0->List 1 //1st Y coord
1->List 1 //2nd X coord
1->List 1 //2nd Y coord
"*" //execute
I think thats more easy to use.
But I've some problems using the cmm in an interrupt routine.
I'm probably doing sth. wrong there. It'll need some further testing ...
But I think it's possible
You'r way will result in the same thing only that the prog asm will contain the
trigger for the TSR
Bye huhn
#7
Posted 14 February 2003 - 06:15 PM
Remember to set your data segment to cs (in order to acces local data), cause this is the only segment that will change when your interrupt is called..But I've some problems using the cmm in an interrupt routine
#8
Posted 14 February 2003 - 07:18 PM
I'll try it but till now I've another model working.
You can enable / disable the extended-Basic driver using basic files
Functions are also given via the print command.
enable -> "#"
disable -> "~"
To reboot use:
"#5" etc.
If you want to print #5 you must use #D (deinstall) what will remove the
Extended basic (but not the driver!)
Tell my what functions you want and I'll implement them!
Bye huhn
#9
Posted 14 February 2003 - 07:38 PM
Either that, or you would have to include a declare variable function, which declares variables from the text given to the functions. you would then also have to include a function to release these variables so they don't lock the memory..
I think the last way would yield the best performance, but limits functionallity somewhat.. and users would need some extra programming experience to do it (might as well do it in c.., on the other hand, you can do it on-calc, which is cool)
you could include new variables for sprites, vectors, and arrays of these types..
you could then plot polygons, implement 3d plotting, plot sprites, scroll screen, ++
functions are virtually endless, but remember, it will be a TSR, and as such, shouldn't occupy to much of memory...
#10
Posted 14 February 2003 - 08:10 PM
filled/un-filled Circles
sprites- you should be able to defign them some how
scrolling
polylines
filled squares
color (gray,white,black)
Screen update- that way we can draw many things to the screen, then show them at once (even normal stuff).
a pixel test function which can tell if the pixel is off, gray or black
user defigned functions?
a better text display
STRINGS!!!!!!!!!!!!!!!
Mabey more later...
#11
Posted 14 February 2003 - 10:12 PM
#12
Posted 14 February 2003 - 10:22 PM
#13
Posted 15 February 2003 - 05:33 AM
This would help me a lot!
But I'll definately *NOT* include floating point support because there is no
FPU and rewriting FPU functions will make the program HUGE.
Every value passed to E-Basic has to be an integer
Bye huhn
=============== EDITED =====================
OK guys! I know now how the BCD format of the Lists is but has anyone
already got a good working routine that can decode a BCD-packed string
to a 16 Bit Value??
#14
Posted 15 February 2003 - 05:57 AM
#15
Posted 15 February 2003 - 07:38 AM
this way you could patch the autoexec.bat so that the E-Basic is loaded every-
time the calc is rebooted. In Flash-Editor / Flash100 you can only change menu-
icons but can't access the files in the system zone.
#16
Posted 15 February 2003 - 03:24 PM
#17
Posted 15 February 2003 - 04:01 PM
If you change the Main Menu the system is not reset.
And the files are included in the system file.
I looked in a system file downloaded with flash com and there
I found the contents of the config.sys and autoexec.bat files!?!?
#18
Posted 15 February 2003 - 04:24 PM
#19
Posted 15 February 2003 - 04:33 PM
I changed the word BUFFERS to BFUFERS (so this would not provoke a
checksume error if there is a checksume a all) but I get and DATA ERROR 78
(one I never saw before). If I let it reset will this only reset Drive A
or all drives ???
#20
Posted 15 February 2003 - 04:34 PM
Don't change anything that could crash your calc at startup, or you'll find yourself in a tricky situation trying to recover it (eg, having to disable the flash somehow and re-enable it to allow the reset).
Edit... these emoticons have really been pissing me off as of late... lol
#21
Posted 15 February 2003 - 05:07 PM
At first it deleted the WHOLE flash
Second: Changing the buffers command as you suggested also caused
the same error.
#22
Posted 16 February 2003 - 04:16 AM
#23
Posted 16 February 2003 - 12:20 PM
A question: Is it possible to call another program from within a TSR???
I need this to get the memory requirement lower. Else I don't know if
it's good writing to large interrupt routines because they eat memory. If I
only call a secon program when neccesary the memory will be free again after
the program has run. It also will make programming more easy.
I tried it using INT21h/4Bh but it only crashed the calculator ...
#24
Posted 26 February 2003 - 06:31 PM
#25
Posted 27 February 2003 - 09:03 AM
no one could help me with my problem and so I stopped developing.
I now concentrate on my office suite
(Font creator DONE / Fontuplaod DONE / Main Interface DONE)
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users