AI and decompilation?

It?s the VideoCore IV 3D Architecture Reference Guide.

It?s a toolchain port.

--
https://www.greenend.org.uk/rjk/
Reply to
Richard Kettlewell
Loading thread data ...

Indeed.

I had to write an extended but of assemble once to fit in 2K eprom - a bios for larger disks using larger sectors than standard msdos.

I was frustratingly about 80 bytes short. I looked at the code for a long time trying to think what I could use in various places - and found something. The original cider was always in the habit of using the same two register - AX and BX, as scratch, (Sometimes he used DX as well) so every subroutine started with push AX, PUSH BX, and ended with POP BX, POP AX, RET. Sometimes he used DX as well

that was three words or four . But JMP MY_EXIT (or DX_EXIT)was only two...

DX_EXIT: POP DX MY_EXIT: POP BX POP AX RET

But that is exactly the sort of things a compiler optimised for code size rather than speed, would be expected to do. Find common bits of code and jump to them

--
Climate Change: Socialism wearing a lab coat.
Reply to
The Natural Philosopher

I like it when you talk dirty...

--
In a Time of Universal Deceit, Telling the Truth Is a Revolutionary Act. 

- George Orwell
Reply to
The Natural Philosopher

That looks like a surprisingly good fit for my idle, poorly thought out, wonderings.

Reply to
Pancho

The programs I remember were substantial. Otherwise someone would have just wrote a new one instead of trying to recover the source.

--
Dan Espen
Reply to
Dan Espen

Thanks for not writing the hoi polloi :)

Reply to
A. Dumas

Rare, but good!

--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 Click to see the full signature
Reply to
Bob Eager

If you have trouble getting a full copy (you shouldn't) let me know. I can ask him.

--
Using UNIX since v6 (1975)... 

Use the BIG mirror service in the UK: 
 Click to see the full signature
Reply to
Bob Eager

I remember DCP16 and DCP24 under OS/8, which I used some years ago to disassemble PDP8-binarys. Very efficient tools, which didn't do the job automatically, but they used tables with symbols, comments and directives how to interprete different parts of the binary: code, tables, strings, variables and so on. Interesting, efficient, great fun. :-)

Klemens

Reply to
K. Krause

Thanks for the heads-up.

Downloaded for off line perusing.

This has been an interest of mine for some time, and, not really being in contact with either industry or acadaemia, I bethought me to be a lone wolf, a voice crying in the wilderness, to borrow a phrase from the Biblial religionists.

Reply to
gareth evans

Blimey, that takes me back over 40 years to a neat trick of mine to save a couple of bytes (but something today that might get you the sack in these times of the high cost of software maintenance!).

It's a way of passing on the stack a zero / non zero value.

In PDP11 (Octal!!!!!!!) opcodes ..

012746 5046

the first word says Push the value 5046 onto the stack, but the second word, 5046 means clear the next stack entry.

So, by jumping to the second word of the instruction, you push a zero value!

That it warrants such an involved explanation is very good reason why such techniques should be avoided today! :-)

Reply to
gareth evans

Perhaps not available to the Man On The Clapham Omnibus.

Are you in a privileged position with Broadcom to have such access?

Reply to
gareth evans

... and yet my multimeter will read AC current! :-)

... or, in the office, all electrical equipment has to be PAT tested.

Reply to
gareth evans

Mea Culpa !!!!!!!!

Firefox did not display anything but was quietly downloading the PDF in the background without me realising!

Reply to
gareth evans

Unfortunately, broadcom does not play well with others. There is no reference manual for their graphics on the SoC used by the RPi available without an NDA. Sure, documentation on the ARM core is available from arm, but the graphics are proprietary to broadcom.

Reply to
Scott Lurndal

Except a PDF entitled "VideoCore IV 3d Architecture Reference Guide".

Check your downloads directory.

e.g.

Fragment shaders are started automatically each time the FEP accumulates a vector of up to four quads (16 pixels) to shade together. The quad input data from the FEP is automatically written into per-thread QPU registers when the fragment shader is started. The following data is written to these QPU registers, in addition to the normal PC address, uniforms base address, and uniforms size:

Reply to
Scott Lurndal

Agreed.

That sort of thing is so much easier in Java or Algol 68, which both recognise that methods/procedures with the same name but different parameter lists are indeed different pieces of code rather than a stupid mistake.

--
--   
Martin    | martin at 
 Click to see the full signature
Reply to
Martin Gregorie

Whoah there, that was proprietary and NDS only last time I looked. Seems Broadcom have been decent while I wasn't looking - good news!

--
Steve O'Hara-Smith                          |   Directable Mirror Arrays 
C:\>WIN                                     | A better way to focus the sun 
 Click to see the full signature
Reply to
Ahem A Rivet's Shot

That olcott fellow in comp.theory, comp.ai.philosophy, comp.lang.c (and who knows where else) would like you to believe he has solved that pesky halting problem _already_.

Elijah

------ suggested

formatting link

Reply to
Eli the Bearded

Yes and you need your PIN number to use the ATM machine.

--
Steve O'Hara-Smith                          |   Directable Mirror Arrays 
C:\>WIN                                     | A better way to focus the sun 
 Click to see the full signature
Reply to
Ahem A Rivet's Shot

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.