Is it possible to UnAssemble a Code object on PC, using special tool ??
If yes, what is this utils, and where is it avalaible ??
Thank's
--
Julien Meyer - SunHP
http://www.chez.com/sunhp
It's called SAD and is at:
However, it is intended for a Unix system - but I use it under Linux on my
PC just fine.
--
Andre Schoorl <asch...@engr.uvic.ca> PGP key available on request/keyserver
Comp Engineering, UVic, Canada Linux/HP48 http://www.engr.uvic.ca/~aschoorl/
On 26 Jan 1998, Andre Schoorl wrote:
> http://www.hut.fi/~mheiskan/
>
> However, it is intended for a Unix system - but I use it under Linux on my
> PC just fine.
>
just wondering,
When I have tried to use sad i seem to get only gibberish. I've tried
at least two different formats for the .core file.
it has been a while since I have played with it, but I think I was telling
sad to expect a gx rom dump with some option and saving the dump in
a file called comething like ".core.gx "
Sounds like a really great program, but I could never get it to work
for me.
--Steve
>In article <6aisb7$19...@uvaix7e1.comp.UVic.CA>, asch...@engr.uvic.ca (Andre Schoorl) wrote:
>>>Hi,
>>>
>>>Is it possible to UnAssemble a Code object on PC, using special tool ??
>>>If yes, what is this utils, and where is it avalaible ??
>>
..snip..
>'Course, you could always disassemble it on the HP48 using JAZZ and upload the
>ascii source.
In fact, as I only have a 48G, I've used EMU48 on my PC with JAZZ to disassemble
things, and then it's easy to save to disk on the PC without draining your
batteries!
Andrew.
--
*************************************************************
* Andrew Beckett * Tel: +44 1344 360333 *
* Lead Applications Engineer * Fax: +44 1344 360324 *
* Cadence Design Systems Ltd * Email: and...@cadence.com *
* Bagshot Road * *
* Bracknell. RG12 3PH * *
*************************************************************
Andrew Beckett wrote:
> On Mon, 26 Jan 1998 23:17:20 GMT, sev...@primenet.com (Warren Severin) wrote:
>
> >In article <6aisb7$19...@uvaix7e1.comp.UVic.CA>, asch...@engr.uvic.ca (Andre Schoorl) wrote:
> >>>Hi,
> >>>
> >>>Is it possible to UnAssemble a Code object on PC, using special tool ??
> >>>If yes, what is this utils, and where is it avalaible ??
> >>
> ..snip..
> >'Course, you could always disassemble it on the HP48 using JAZZ and upload the
> >ascii source.
>
> In fact, as I only have a 48G, I've used EMU48 on my PC with JAZZ to disassemble
> things, and then it's easy to save to disk on the PC without draining your
> batteries!
Well.. Unassembled Code Object doesn't fit in a 256KB Merged Ram memory.. Help!I could Hack, but
I don't want to do it..
I need to find the Clock address in the I/O Ram .. --> for ML random.
#00104h -> #00106h doesn't run really good some times.
Could you help me to find it ?
Thank you!
--
Julien Meyer - SunHP
Updated Page: http://www.chez.com/sunhp
Try #00137h (1 nibble) and #00138h (7 nibbles) for the clocks.
A nice random routine:
D0= 00137
A=DAT0 8 % read the clocks
D0= 04
A=DAT0 4 % read the CRC of the clock values
or even:
D0= 00104
A=0 A
DAT0=A 4 % initialize the CRC calculator
D0= 37
A=DAT0 8 % read the clocks
D0= 04
A=DAT0 4 % read the CRC of the clock values
Sam.
: I need to find the Clock address in the I/O Ram .. --> for ML random.
: #00104h -> #00106h doesn't run really good some times.
TIMER2 is 8 nibbles startine at #00138.
I use GetTime++ (#0130E) or GetTimChk (#012EE) to get the current
time (13 nibbles). I write this to RAM. Then I clear 4 nibbles
at CRC (#00104). Read the saved time (13 nibbles). Then read
CRC (#00104) for a 4 nibble random number.
Use GetTime++ if interrupts are active. Use GetTimChk if
interrupts are disabled. Both return current time (13 nibbles)
in C.
Hope this helps,
dan
You're right..
Here's the version I actually use to shuffle
my puzzle program (I had no calculator within
reach to check that, sorry. At least the addresses
were right !)
D0= 00137
A=DAT0 8
D1= 800F5
DAT1=A 8
A=DAT1 8
D0= 04
A=DAT0 4
I don't really like yours because you don't really
know what you read in D0...
However, just reading 4 nibbles at #00104h should
be enough if some operations are done between two
readings.
Sam.
As far as I know, to read the clock before reading the CRC doesn't change
anything...
Simply because the CRC calculator doesn't change when you read the I/O RAM.
Only when you read the ROM or the RAM
Then I'm 99.9 % sure, that your second program will always return 0.
And in your first program, if you read the clock or not, will give the same
result.
Here is my random generator in ML.
D0= 00137
A=DAT0.A
D0=A
A=DAT0.A
D0= 00104
A=DAT0.4
A field will contain a rondom value.
Samuel Hocevar wrote in message <34D3C070...@nimp.via.ecp.fr>...
>Julien MEYER - SunHP wrote:
>> I need to find the Clock address in the I/O Ram .. --> for ML random.
>> #00104h -> #00106h doesn't run really good some times.
>>
Well, I don't think you need to know what you are reading, except of the
bank swither (from 7F00 to 80000). But usually, when you are using random
number, you don't need to take care of the bank switching configuration...
Anyway, your program works. But I would suggest to use only D0 or D1, just
to save a register.
Jean-Yves
Samuel Hocevar wrote in message <34D4EEA1...@nimp.via.ecp.fr>...
>Jean-Yves Avenard wrote:
>> As far as I know, to read the clock before reading the CRC doesn't change
>> anything...
>>
>> Then I'm 99.9 % sure, that your second program will always return 0.
>> And in your first program, if you read the clock or not, will give the
same
>> result.
>
Okay, I thought I should follow up on myself to help clear a
couple things up (and I hope this does not get posted more than
once...).
>Julien MEYER - SunHP (mey...@club-internet.fr) wrote:
>
>: I need to find the Clock address in the I/O Ram .. --> for ML random.
>: #00104h -> #00106h doesn't run really good some times.
>
>TIMER2 is 8 nibbles startine at #00138.
TIMER2 is really usually NOT a very good source for random numbers!!!
TIMER2 is reset everytime a key is pressed (or to be exact, everytime
a key is popped from the buffer). If a user has the ticking clock
disabled, then TIMER2 will likely be set for a one hour interrupt
(#1C20000h ticks).
This means that if a users presses a key to start a program, and
then the program reads TIMER2, TIMER2 will usually read just under
#1C20000h. And the only difference from one start to another will
be the length of time the user has the key pressed. Often this
will vary little or none! In such a case the TIMER2 value becomes
pretty constant. NOT random at all!
Because of this I would NOT recommend using the timers directly
for random number generation. Better would be to use the routines
I mentioned below to get the system time, then use it to seed a
random number.
>I use GetTime++ (#0130E) or GetTimChk (#012EE) to get the current
>time (13 nibbles). I write this to RAM. Then I clear 4 nibbles
>at CRC (#00104). Read the saved time (13 nibbles). Then read
>CRC (#00104) for a 4 nibble random number.
>
>Use GetTime++ if interrupts are active. Use GetTimChk if
>interrupts are disabled. Both return current time (13 nibbles)
>in C.
For example, if you just need one 4 digit random number...
GOSBVL =GetTime++ Get system time into C.13
D1=(5) (=IRAM@)-4 Load RAM nibble into D1 (high nibble)
A=DAT1 A
D1=A
D1=(4) #0100 D1 = scratch RAM inside irambuf
DAT1=C 13 Write system time to RAM
D0=(5) =CRC
A=0 A Clear CRC
DAT0=A 4
C=DAT1 13 Read system time from RAM
A=DAT0 4 Read CRC for 4 nibble random number
? R4=A.F A Optional save of random number
If you have interrupts disabled, then use GetTimChk in place of
GetTime++. If you need MORE than one 4 digit random number...,
then use the above to get the first 4 digit random number. Save
this value and use it to generate your next 4 digit random number...
D1=(5) (=IRAM@)-4 Load RAM nibble into D1 (high nibble)
A=DAT1 A
D1=A
D1=(4) #0100 D1 = scratch RAM inside irambuf
A=R4.F A Get previous random number
DAT1=A 4 Write to RAM
D0=(5) =CRC
A=0 A Clear CRC
DAT0=A 4
A=DAT1 4 Read previous from RAM
A=DAT0 4 Read CRC for new random number
R4=A.F A Save new random number
This should give fairly fast generation of many random numbers.
You can modify the code to fit your needs...
Hex addresses of words used above...
CRC = 00104
IRAM@ = 0011F
GetTimChk = 012EE
GetTime++ = 0130E
Hope this helps,
dan