MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "20": {
                "pageid": 20,
                "ns": 0,
                "title": "Reverse Engineering Information",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "= Purpose of this section =\n\n=Helpful links=\nhttps://www.infineon.com/dgdl/tc_v131_instructionset_v138.pdf?fileId=db3a304412b407950112b409b6dd0352\n\nhttps://www.infineon.com/dgdl/Infineon-SAK-TC1796-256F150E%20BE-DS-v01_00-EN.pdf?fileId=5546d46249a28d750149a34e1f28045d\n\nhttps://www.infineon.com/dgdl/TriCore_EABI_v2_3.pdf?fileId=db3a304412b407950112b40f8d7a142b\n\n=Quick Reference=\n==Memory address lookup==\nRegisters a0, a1, a8, and a9 are used as offsets when the code needs to reference different memory locations.\nThere's a table in the ECU that sets up those offsets at boot:\n\n<pre>\n0000:808835CC                movh.a         a0, #0xD002\n0000:808835D0                lea            a0, [a0]-0x8000\n0000:808835D4                movh.a         a1, #0xA081\n0000:808835D8                lea            a1, [a1]-0x8000\n0000:808835DC                movh.a         a8, #0x8005\n0000:808835E0                lea            a8, [a8]-0x7800\n0000:808835E4                movh.a         a9, #0xD001\n0000:808835E8                lea            a9, [a9]-0x4000\n</pre>\n\nWhat that means, is that at any point in the code, these registers always have the following values:\n<pre>\na0:  0xD0018000\na1:  0xA0808000\na8:  0x80048800\na9:  0xD000C000\n</pre>\n\n18.10:\n<pre>\na0:  0xD0018000\na1:  0x80828000\na8:  0x80028800\na9:  0xD000C000\n</pre>\n\nA quick example of how this is implemented in code:\n<pre>\n8019044a c9 00 de c9     ld.h       d0,[a0]-0x60e2\n</pre>\n\nThis takes the value of a0 (0xD0018000), subtracts 0x60e2 (=0xD0011F1E), and pulls the value of that memory address into d0.  In the case of one common software version, that's:\n\n<pre>\n      /begin MEASUREMENT tia_cha_up\n         \"Air Temperature upstream the Charger\"\n         SWORD\n         _CNV_A_R_CHRG_LINEA_171_CM\n         1\n         100.\n         -48.\n         335.994140625\n         DISPLAY_IDENTIFIER TIA_CHA_UP\n         ECU_ADDRESS 0xd0011f1e\n         FORMAT \"%7.3\"\n         /begin IF_DATA ETK\n            KP_BLOB\n            0xd0011f1e\n            INTERN\n            2\n            RASTER 30\n         /end IF_DATA\n      /end MEASUREMENT\n</pre>\n\n== Table address lookup ==\nTable lookup in the calibration isn't as straightforward.  \nOccasionally you'll see reference in code to something like \"0x8083DF8C\".  0x8------- is the same as 0xA-------.  So \"0x8083DF8C\" in the ASM is actually reference to 0xA083DF8C"
                    }
                ]
            }
        }
    }
}