Version 1
All comments are block style. When continuing onto multiple lines, prepend *
at the start of each new line, like so:
/* start of a comment
* continuing a new line
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 |
OUTPUT_ARCH(arm) | |
MEMORY | |
{ | |
bios : ORIGIN = 0x00000000, LENGTH = 16k | |
ewram : ORIGIN = 0x02000000, LENGTH = 256k | |
iwram : ORIGIN = 0x03000000, LENGTH = 32k | |
io : ORIGIN = 0x04000000, LENGTH = 1k - 1 | |
pal : ORIGIN = 0x05000000, LENGTH = 1k |
THIS SOFTWARE AND ITS SOURCE CODE AND ANY TRANSFORMATIONS THEREOF IS PROVIDED EXPLICITLY BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THEREIN ON A STRICTLY AND SOLELY """AS""" """IS""" BASIS. ANY EXPRESS, IMPLIED, EXPLICIT, IMPLICIT OR OTHERWISE COMMUNICATED VARIETIES OF WARRANTIES ARE HEREBY AND HENCEFORTH ABSOLUTELY DISCLAIMED WITHOUT PREJUDICE, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, USEFULNESS, VALUE, INTERESTINGNESS, OR FITNESS FOR ANY PARTICULAR PURPOSE OR NO PURPOSE AT ALL. IN NO EVENT WHATSOEVER SHALL THE COPYRIGHT HOLDERS NOR CONTRIBUTORS HEREIN BE HELD DIRECTLY OR INDIRECTLY LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, NORMAL, QUID PRO QUO, EXEMPLARY, TYPICAL, INCONSEQUENTIAL, CONSEQUENTIAL, OR OTHERWISE REMARKABLE OR UNREMARKABLE DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS, LOSS OF USABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR NO PURPOSE AT ALL, LOSS OF DATA, OR ANY REMORSE FROM THE COPYRIGHT HOLDERS AND CONTRIBUTORS HEREIN, PRO |
/*********************************************************************\ | |
* Mini-Hinterlib header provision * | |
* Copyright (C) 2023 Alexander Nicholi * | |
* Released under Artisan Software Licence 1.1 * | |
\*********************************************************************/ | |
#ifndef INC__MINIHN_H | |
#define INC__MINIHN_H | |
/* basic CPP defines */ |
/Td6WFoAAATm1rRGBMC2ggv8rRshARYAAAAAADp4+2ricQrv/10AKBBGzYyAuJdydLtistAdS6y6 | |
hBm7fcR59ckrkwt1m+4Sudcb/Q7hWyBRMWyA0I8hX8wI7kDx4VEH7ZD4fGXLv8xY6kjXldrZH9aa | |
y05/PyiJubOAK4RQivmje4+MI54jgLfRuDSCQqG7ugk/MJ6gjnzZ7InjEG2j4EFQ08vBm/CyWrU6 | |
Ma15oNYy8IQXumTH5TB4B9Cv7wy8r/5xQ/5TaUlPjnCGOAwMTkcveRuMn1zlB+sr8Rbo2k7ZGY/q | |
uFo0VTq72Z1L6xawCsEIwGpmP+SAXiE6xH+eH5E0B6R/FRyv7+ai69HjKt8Oy5QQOf/AyrXsMkSR | |
vxVfoZ29OFIIdQ+JUHBTYFft6k5XAvNOiJzBe2ALgnN5Myqqpf1G9mJMcQuL8azifBEWh4bxPTzN | |
Pjrdz6/Uebx/C6tdTxVLgmLWATWdYljsWaxkoCtm1haM4hCjbhUi3tgFVZxEPfnF+qvu9CUbFm8p | |
Rfh3FVulN686gkWYnkTM3N42m+GGenWMF+emZrEwbLjrQYCNNApxuRuGdn1DpPwuztMVelYlE6V1 | |
7GkytPRk/mQAf4FOkTFuGLmFfckgwzI6fmCMfIzMzowqLSsQ3ZV/rAoc3Nl0C1ikWxgz3zwAg0U0 | |
jcR06ODLnhTAE+cWKYqAmsVArFnk3A0uSzDx+7y6GHo5/II2jAkQJaZme0w9dfgXdx55pqGvKPhb |
#!/usr/bin/env python3 | |
def sha2_256sum(filename): | |
import hashlib | |
f = open(filename, 'rb') | |
data_hash = hashlib.sha256() | |
# Read and update hash string value in blocks of 4K | |
for block in iter(lambda: f.read(4096), b''): | |
data_hash.update(block) | |
digest = data_hash.hexdigest() | |
f.close() |