This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Topics - the_mad_joob
16
« on: April 11, 2013, 11:50:32 am »
Hey there =] If you don't already know, a delay is needed between writing and reading to the keyboard (using port 1). The problem is, that the needed time is not accurately known. Since there seems to be many different opinions about the subject, i decided to code a program to test that up. The main purpose is to be able to have a better knowledge of the hardware, allowing more optimised low level operations. Also, maybe we'll have some surprises (ti likes to change hardware pieces). COMPATIBILITY TI-83 Plus TI-83 Plus.fr TI-83 Plus Silver Edition TI-84 Plus TI-84 Pocket.fr TI-84 Plus Silver Edition TI-84 Plus Pocket Silver Edition TI-84 Plus C Silver Edition All official OS are compatible, as long as you TURN OFF MATHPRINT. INSTRUCTIONS Simply execute from the homescreen and follow instructions. Important : When pressing the 0 key, you must HOLD it until the end of the test. DOWNLOAD black & white models : http://www.omnimaga.org/index.php?action=dlattach;topic=16102.0;attach=15043TI-84 Plus C Silver Edition : http://www.omnimaga.org/index.php?action=dlattach;topic=16102.0;attach=15044RESULTS The displayed value(s) are the needed delays (in cycles) for each CPU speed mode (order : 0,1,2,3). A question mark specifies an unknown delay. Please don't forget to specify the model and serial number end (at the back of your calc, in the form X-XXXXX). OWNER MODEL SERIAL DELAY-0 DELAY-1 DELAY-2 DELAY-3
the_mad_joob 83+ I-0299A 6 bhtooefr 83+ S-0504E 0 chickendude 83+ N-0305H 5
fortytwo 83+SE I-0501 4 23 30 37 overclocked
Darl181 84+ S-0305B 6 29 29 29 Streetwalker 84+ S-0107G 4 21 21 21
the_mad_joob 84+SE S-0404 6 29 29 29 DrDnar 84+SE S-0605D 4 19 19 19 fortytwo 84+SE P-0410O 4 17 17 17 willwac 84+SE P-0410O 4 20 20 20 chickendude 84+SE ? 4 18 18 18
DrDnar 84+CSE ? 22 72 72 72
THANKS IN ADVANCE FOR YOUR PARTICIPATION =]
17
« on: April 06, 2013, 08:54:51 am »
Hey there...
I wanna code some direct input stuff. The problem is, i've read so much different things that i'd gladly need some little clarifications :
1) reset usage (writing $FF) Why and when is it needed exactly ? (Some say you got to do it before each group sending...)
2) delay between writing and reading Is it really needed ? (some say it is, some say it's not...) If yes, is there a way to know how many cycles are enough for all calc models ? (considering processor speed may vary)
Thx in advance for your time =]
EDIT :
3) checking the [ON] key It is said it cannot be done directly. Is there a way to check it without interrupts ?
18
« on: December 29, 2011, 09:21:48 am »
### #### # # #### #### ##### ### # # # # # ## ## # # # # # # # ## ## # # # # # # # # # # # # # # # # ##### ### # # # # # #### #### ##### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #### # # #### # # ##### # # # # THE TI-8X+ ON-CALC ASSEMBLER CURRENT VERSION : 1.00 Asmdream is an on-calc assembler for the TI-8X+ calculator series. It reads symbolic content (sources & includes) written directly using the OS built-in program editor. It writes machine code into protected programs in ram. You can think of it as a hybrid between mimas & axe. DOWNLOAD http://www.ticalc.org/archives/files/fileinfo/444/44479.htmlDon't forget to read asmdream.txt. NEWS http://ourl.ca/14654/276283http://ourl.ca/14654/278334http://ourl.ca/14654/342852FEATURES all z80 instructions (undocumented ones included) constant byte strings variable byte strings (ascii strings handled) variable word strings (ascii strings handled) token strings comments immediate arguments decimal hexadecimal binary ascii operators positive negative addition substraction program counter symbol (changeable initial value) address labels (usable in main and macro code) equate labels (nesting handled) macros (nesting handled) macro parameters error handling (goto handled) automatic include detection ultra complete collection of equates running asmdream from external code supported TOPIC PURPOSES troubleshooting feedback SCREENSHOT The assembler in action :
19
« on: December 21, 2011, 07:15:01 am »
I have 2 asm programs :
prgmTEST1 bin size : 8192 oncalc size (bin+vat) : 8206 data : $BB,$6D,$C9,$FF*8189
prgmTEST2 bin size : 8193 oncalc size (bin+vat) : 8207 data : $BB,$6D,$C9,$FF*8190
The first one will run but not the second one (ERR:INVALID).
This is os 2.43 on real hardware (anyway, same behaviour on wabbit). Also, i have about 16K of free ram before execution.
I thought the maximum was 8811 bytes. Wtf ?
EDIT : I searched on the web and found that 8192 is the maximum for nostub programs. I didn't know that but now i do =]
20
« on: December 09, 2011, 06:03:04 pm »
Hey guyz...
While doing some debugging with my app, i discovered that every time an off-page call is made, ram page 1 address is loaded into port 7 (right before processing the off-page code). On the other hand, port 7 doesn't seem to be altered when returning from the call.
So, i was wondering if os routine calls have the same behaviour...
21
« on: July 29, 2011, 12:49:02 pm »
Yo there...
Before reading any further, this topic concerns tasm users who use the enhanced tasm80.tab (the one including undocumented instructions, by joe wingbermuehle). Here are the errors you need to correct if you want all instructions to work properly.
There we go :
1) instruction name errors
replace : IN F,(C) 70ED 2 NOP 1 by : IN (C) 70ED 2 NOP 1
replace : OUT F,(C) 71ED 2 NOP 1 by : OUT (C),0 71ED 2 NOP 1
2) op error (This one is particularly awfull...)
replace : DEC IYH 24FD 2 NOP 1 by : DEC IYH 25FD 2 NOP 1
3) instruction lines with wrong position in the file, causing tasm to interpret, for example, LD IXH,A as LD IXH,label_A
move : LD IXH,* 26DD 3 NOP 1 after : LD IXH,A 67DD 2 NOP 1
move : LD IXL,* 2EDD 3 NOP 1 after : LD IXL,A 6FDD 2 NOP 1
move : LD IYH,* 26FD 3 NOP 1 after : LD IYH,A 67FD 2 NOP 1
move : LD IYL,* 2EFD 3 NOP 1 after : LD IYL,A 6FFD 2 NOP 1
Anyway, fat thx to joe for having provided such a useful file at that time =]
22
« on: July 11, 2011, 07:25:42 am »
Yo there you mad coders...
I decided to share what is probably the most complete ti8X+ include file you could ever find on the web. It is based on brandon's ti83plus.txt (05/07/2007) in which i added a significant quantity of missing equates (later os ones among others...). It's designed to be compatible with tasm syntax.
*****
Features :
additions from the latest official include : ti83plus.inc - ti - 09/27/2002 system flags plotTrace (plotFlags) statANSDISP (statFlags) newFlags2 noRestores (newFlags2) No_Del_Stat (statFlags2) Modifier0 (dBKeyFlags) Modifier1 (dBKeyFlags) Modifier2 (dBKeyFlags) Modifier3 (dBKeyFlags) repeatMost (dBKeyFlags) haveDBKey (dBKeyFlags) HWLinkErrF (dBKeyFlags) small character font equates more 2 byte keys (1.15+) 2nd byte Of t2bytetok tokens (1.15+) language localization equates parser equates interrupt equates memory paging equates lcd driver equates graph style definitions various maybe useful precisions
additions by me starting program counters equates executable program header macro standard application header macro (freeware) large character font equates (0h,F2h-FFh) small character font equates (EDh-FFh) tokens (0h) 2nd byte Of t2bytetok tokens (DBh-FFh) 2nd byte Of t2bytetok2 tokens (0h-42h)
modifications by me useless macros disabled _cxPPutAway was renamed _PutAway, to match ti documentation (putaway.pdf). tCoshH was renamed tCosH, its original name (typo). tUnused01 was renamed t2ByteTok2, due to added equates. LastToken value was increased, due to added equates. PStat value is now calculated properly.
*****
The probably most usefull thing is a macro that automatically adds the standard application header (freeware apps only). It may saves you time and space in your source if, like me, you use to fully automate application creation process using batch files (possible with rabbitsign for example). All you need to do is adding the following line at the beginning of the code part in your source : app_header(application_name,number_of_pages) Note that application_name must be 8 characters long (Fill with spaces if your app name is shorter.).
Similarly, you can now use this macro : prgm_header (a bit less boring than the usual .db t2bytetok,tasmcmp)
Other than that, some of these much coherent starting pc equates may be used : .org prgm_start (for programs, same as usermem-2) .org app_start (for applications, same as 4000h)
*****
Don't hesitate to post missing equates|infos in this topic if you find some. I intend to update the file as soon as new stuff will be discovered.
Fat thx to brandon who did what ti didn't...
Have fun =]
23
« on: July 10, 2011, 09:04:17 pm »
Yo there...
In case the topic subject isn't enough, let me explain the challenge :
The idea is to be able to automatically open up the os prgm editor upon exiting an asm prgm or app, and make the cursor point to a specific token. In other words, it would have the same effect as the goto option when an error is encountered during basic execution process. I precise i don't need to use any of the _JError routines, since my app displays its own error messages (Those are only display routines anyway).
I suppose i could get this to work by doing something like this : - open up the edit buffer, making the cursor point to the concerned token - bjump to the routine the system normally uses when the goto option is validated by the user
I highly suspect this routine to be _GoToErr (4CD8h) but it is, unfortunately, undocumented. My intuition also tells me _GoToErr may use some of the following system ram locations as input : errNo (86DDh) > read by _JErrorNo (4000h) but it's not sure _GoToErr may need to read it (if it really does what its name says ofc) errSP (86DEh) > What the hell this one is supposed to contain ? errOffset (86E0h) > seems to be relative (0 for first token, etc)
I'm definitely stuck there and my project currently has the "standby" status because of this. That's why help would definitely be appreciated (Ofc, i won't forget to include the helper(s) in the credits if the project actually sees the light.).
Thx for reading =]
24
« on: May 02, 2011, 05:18:00 am »
hey there...
I'm quite new to these forums but i thought it would be nice to share the thing around :
A few weeks ago, i digged out a project that was sleeping for too long. It's called "asmdream" and is, in fact, an (other) on-calc asm compiler for the 8X+ series. So, nothing revolutionnary, but it has its particularities (wanted to make something new).
The main challenge here was to make it able to convert token-based sources directly into machine code. For the ease of use, i was forced to define a simplified syntax because of the large font usage and lack of readability of the tios prgm editor. But don't worry, i made it very instinctive so we're not so far from tasm.
It is supposed to handle, at least : - all z80 instructions (undocumented included) - includes - labels - equates (nesting allowed) - macros with parameters (nesting allowed) - bases conversions : binary/decimal/hexadecimal/ascii/token - arithmetic operators : positive/negative/addition/substraction - read from flash (sources/includes)
For obvious reasons, i do my best to optimize it in favor of space (about 2K for now) but i'm still amazed how fast it does the job. I work on it many hours per day but it's still hard to tell when it'll see the light (progress maybe around let's say... 50%).
I'll use this thread to post news and (hope not) ask for help. Also, don't hesitate if you've some questions/suggestions.
cu around =]
|