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.
Messages - bsl
Pages: 1 ... 7 8 [9] 10 11
121
« on: February 06, 2011, 11:53:22 am »
122
« on: February 05, 2011, 12:32:51 pm »
bsl, your disassembler doesn't support output files larger than 128 MB. I found it out the hard way
I would not believe everthing it dissasembles beyond a certain output size. Its a simple linear top-down disassembler, which means it will do things it should't - like disassembling data instead of leaving it as data. You have to disassemble small blocks instead and identify subroutines. I will think of some way to make this easier..... I have yet to finish the rest of the transfer instructions, up till now I put in enough just too look at add-ins
123
« on: February 02, 2011, 06:20:52 pm »
Try a simpler protocol than USB - RS232 !!! Try setting up a "null modem cable" type of connection between the CAS+ and this calculator Gnd -> Gnd Rx -> TX Tx -> Rx
You only need three wires , 6 solder connections - much easier than making an RS 232 adapter
CAS+ other calc
GND -----GND
Rx\ / Rx \ / \ / X / \ / \ TX/ \ Tx
124
« on: February 02, 2011, 05:53:48 pm »
Try connecting one of your CAS+ calculators to it to see if it will transfer the OS ??
125
« on: January 24, 2011, 04:19:26 pm »
Try putting NOP's after branch instructions so that the program runs as expected:
00007020: ADD R12,R15 00007022: DT R13 00007024: nop 00007026: BF $700C 00007028: nop 0000702a: DT R15 0000702c: nop 0000702e: BF $702A 00007030: nop 00007022: RTS 00007024: nop 00007026: 0000 ? 00007028: 0000 ?
The instruction right after rts, bf,... is typically executed first. So recode and recalc the checksum.
126
« on: January 23, 2011, 12:06:49 am »
Here is version 003 of the CLI SH3 disassembler. Added more of the necessary code references, for the purposes here. Added command line options(-s (start),-e (end),-p (sets pc at the start)): Default values: -p=300000 program counter setting -s=7000 file start disassembly at 7000 -e=eof end dissassembly at end of file
So the default : C:\>sh3_disass_003.py -s 7000 -p 300000 Geometry.g3a > Geometry.S is the same as C:\>sh3_disass_003.py Geometry.g3a > Geometry.S
If you dont want the crc check(4 bytes) at the end of the file you use: :\>Prizm>sh3_disass_003.py -e -4 Geometry.g3a > Geometry.S
Also added some register bookkeeping. I am speculating here: if you know the fx9860g ROM syscalls you already know the Prizm syscalls: Prizm 80020070 fx9860g 80010070
I added comments to syscalls in the disassembler:
0038D110: MOV.L @($01*4+PC),R2 = #80020070 0038D112: MOV.L @($02*4+PC),R0 = #00001E56 0038D114: JMP @R2 = #80020070 ; syscall(1E56) 0038D116: NOP 0038D118: .data 80020070 dword ref:38D110 0038D11C: .data 00001e56 dword ref:38D112 0038D120: ;code ref:370C38 0038D120: MOV.L @($01*4+PC),R2 = #80020070 0038D122: MOV.L @($02*4+PC),R0 = #0000015E 0038D124: JMP @R2 = #80020070 ; syscall(15E) 0038D126: NOP 0038D128: .data 80020070 dword ref:38D120 0038D12C: .data 0000015e dword ref:38D122 0038D130: ;code ref:355C10 0038D130: MOV.L @($01*4+PC),R2 = #80020070 0038D132: MOV.L @($02*4+PC),R0 = #00000168 0038D134: JMP @R2 = #80020070 ; syscall(168) 0038D136: NOP
127
« on: January 19, 2011, 01:42:35 am »
I am not sure you can use RTS to get back to the OS. Disassemble the small Conv.g3a - there is only one RTS (at $7068) and its the applications subroutine. Also as a note it makes sense that application file offset 0x7000 in memory has the PC value of 0x300000 then the program subroutine addresses match. The OS calls seem to be at > 0x80000000 . The only reason I left out the register values in the disassembler is that I did not know there initial values. Now it looks like I will include them in the next version.
128
« on: January 17, 2011, 10:50:49 pm »
Here is version 002 of the command line disassembler. Fixed the data transfer and branch instructions, also included data and code references during disassemby, thanks to python's dictionary [or hash in perl]. To disassemble a whole file: c:\> sh3_disass.py Geometry.g3a 7000 > Geometry.S To disassemble in a range: c:\> sh3_disass.py Geometry.g3a 7000 7100 > Geometry_7000_7100.S Here is an example of the output:
00007000: MOV.L R14,@-R15 00007002: STS.L PR,@-R15 00007004: ADD $FC,R15 00007006: MOV.L R4,@R15 00007008: MOV.L @($07*4+PC),R3 = #00300034 0000700A: JSR @R3 0000700C: MOV R5, R14 0000700E: MOV.L @($07*4+PC),R1 = #0038DF00 00007010: MOV $01, R6 00007012: MOV $00, R4 00007014: JSR @R1 00007016: MOV R6, R5 00007018: MOV.L @($05*4+PC),R7 = #0033767C 0000701A: EXTU.W R14,R5 0000701C: MOV.L @R15,R4 0000701E: ADD $04,R15 00007020: LDS.L @R15+,PR 00007022: JMP @R7 00007024: MOV.L @R15+,R14 00007026: 0000 ? 00007028: .data 00300034 dword ref:7008 0000702C: .data 0038df00 dword ref:700E 00007030: .data 0033767c dword ref:7018 00007034: MOV.L @($0D*4+PC),R7 = #0038FE4C 00007036: MOV $00, R6 00007038: MOV.L @($0D*4+PC),R4 = #0038FE50 0000703A: BRA $7042 0000703C: MOV.L @R7,R2 0000703E: MOV.L R6,@R2 00007040: ADD $04,R2 00007042: ;code ref: 703A 00007042: MOV.L @R4,R5 00007044: CMP/HS R5,R2
129
« on: January 17, 2011, 02:08:39 am »
Sorry about multiple posts ahead of time, if there are any. I'm just going to lump everything together in one post: 1) BSL, I think there's a problem with branch adresses in your disassembler. It keeps jumping to the middle of Longwords. Yes, I know - I am fixing that now: Both the data movement and branch instructions, the rest look good. I may add data references so that the disassembler skips over this as data. I might add more command line options too.
130
« on: January 16, 2011, 08:20:09 pm »
Nice find Goplat !!!! I was looking into that possibility a year ago before Ndless came out. I though I read in the ARM docs somewhere that Jazelle was superceded with something else - that could run byte code from other interpreted languages - its been a while I have to go over the documentation again. EDIT: Jazelle's successor : ThumbEE
131
« on: January 16, 2011, 04:20:30 pm »
Double Edit: Can you get it to write the output to a text file? It's not very easy to read when it's scrolling.
Dump to a file for now: c:\> sh3_disass.py file.g3a 7020 7140 > file.S Then use a text editor to scroll through the results. I am fixing up the branching and data movement instructions, that were not reporting correctly.
132
« on: January 15, 2011, 11:40:46 pm »
Here is a command line SH3 disassember in python I wrote in just a little over a day. It may have a few mistakes, but its a start.
c:\> sh3_disass.py Geometry.g3a 7000 7020 > Geometry.S
c:\> type Geometry.S 00007000: MOV.L R14,@-R15 00007002: STS.L PR,@-R15 00007004: ADD $FC,R15 00007006: MOV.L R4,@R15 00007008: MOV.L @($07*4+PC),R3 = 6563D705 0000700A: JSR @R3 0000700C: MOV R5, R14 0000700E: MOV.L @($07*4+PC),R1 = 64F27F04 00007010: MOV $01, R6 00007012: MOV $00, R4 00007014: JSR @R1
133
« on: January 02, 2011, 11:23:27 pm »
Now I feel there are still two main features to be added before moving to the beta-testing phase:
- Compatibility with the Touchpad arrows: According to Goplat the hardware interface is not simple, I'm not sure how to add this. Should a function that implement the protocol be added to libndls? Could it have the same signature as isKeyPressed() for the migration of existing program to be transparent? Or should we move instead to OS functions, if they exist?
- A simple console: it would integrate with programs through stdin and stdout/stderr (replacing the default RS232 interface), to make ports of non-TI-Nspire programs easier. There would be a prompt, the keyboard would be used to type in strings, echo-ed on the screen. stdout/stderr would be displayed on the scrolling screen.
I may also create a simple shell with history and auto-completion of file names to make possible the execution of command-line tools with arguments.
I too had the console idea going back to when bwang wanted to print text to the screen. I think it will be discovered later a redirection of stdout to the screen, and stdin to the keypad is already in the Nspire software, its hard to imagine an Nspire developer at TI working on OS1.0 CAS+ not doing this to test his development. Any way its a good idea, making console programs portable. There is one critical part missing in it !! A default system Font . Now that I have better access through RS232 on the emulator I can explore the existing Font table better than a few months ago. Maybe I will choose the Ariel Font as default ? A graphical Hello World !!! program should'nt be much bigger than the RS232 version.
134
« on: January 02, 2011, 10:17:07 am »
Here is the source for dumping boot1 for Ndless 1.1 It works !!!!!
135
« on: December 31, 2010, 04:39:55 pm »
You can Download those versions for free at Ti-bank , thats fine by me.
EDIT - I will likely update Ndless 1.3 /1.4 again once ExtendeD figures out the problems with Ndless 2.0 and if they are relevent to OS1.3/1.4. They will have the same Syscalls list. Meanwhile I have been trying to find more standard library functions, which is hard to tell between propriety functions and standard ones.
Pages: 1 ... 7 8 [9] 10 11
|