Skip to content

Instantly share code, notes, and snippets.

View thejpster's full-sized avatar

Jonathan 'theJPster' Pallant thejpster

View GitHub Profile
@thejpster
thejpster / trace.txt
Created September 21, 2024 18:48
sparc stack trace
#0 window_overflow_trap_handler () at ../../../cpukit/score/cpu/sparc/window.S:57
#1 0x40007b00 in compiler_builtins::int::shift::__ashldi3::__ashldi3 (a=47483648, b=32) at src/macros.rs:572
#2 0x40007274 in core::ops::bit::{impl#335}::shl (self=47483648, other=32) at /home/jonathan/Documents/rust-lang/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/src/rust/library/core/src/ops/bit.rs:470
#3 0x400077dc in compiler_builtins::int::HInt::widen_hi<u32> (self=47483648) at src/int/mod.rs:323
#4 0x4000979c in compiler_builtins::int::shift::Ashl::ashl<u64> (self=47483648, shl=32) at src/int/shift.rs:9
#5 0x40009954 in compiler_builtins::int::shift::__ashldi3 (a=47483648, b=32) at src/int/shift.rs:82
#6 0x40007b00 in compiler_builtins::int::shift::__ashldi3::__ashldi3 (a=47483648, b=32) at src/macros.rs:572
#7 0x40007274 in core::ops::bit::{impl#335}::shl (self=47483648, other=32) at /home/jonathan/Documents/rust-lang/rust/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/src/rust/library/core/src/ops/
@thejpster
thejpster / reloc.rs
Created January 14, 2024 20:15
Some relocatable rust code
/* Use this linker script:
```text
SECTIONS {
. = 0x10000000;
Flash : {
KEEP(*(.entry))
KEEP(*(.entry.*))
@thejpster
thejpster / reloc.c
Created January 14, 2024 19:51
Some C code I want to be relocatable
// This file is Public Domain, or CC0 where that is not allowed
static int GLOBAL_VALUE = 5;
__attribute__((noinline))
int reloc_get(void) {
return GLOBAL_VALUE;
}
int reloc_add(int a) {
@thejpster
thejpster / main.rs
Created September 30, 2023 15:32
Tweet Media Fixer
fn main() -> Result<(), anyhow::Error> {
println!("Hello, world!");
let f = std::fs::File::open("mytweets.json")?;
let bf = std::io::BufReader::new(f);
println!("Parsing...");
let all_tweets: Vec<serde_json::Value> = serde_json::from_reader(bf)?;
println!("Got {} items", all_tweets.len());
let mut tweet_info = Vec::new();
for item in all_tweets {
This file has been truncated, but you can view the full file.
C:/Users/msn/Downloads/thumbv6m-none-eabi-flash1002-libneotron_os.elf: file format elf32-littlearm
Disassembly of section .text:
10020004 <<&T as core::fmt::Debug>::fmt>:
10020004: b5b0 push {r4, r5, r7, lr}
10020006: af02 add r7, sp, #8
10020008: b0a2 sub sp, #136
1002000a: 6800 ldr r0, [r0]
This file has been truncated, but you can view the full file.
./release/thumbv6m-none-eabi-flash1002-libneotron_os.elf: file format elf32-littlearm
Disassembly of section .text:
10020004 <<&T as core::fmt::Debug>::fmt>:
10020004: b5b0 push {r4, r5, r7, lr}
10020006: af02 add r7, sp, #8
10020008: b0a2 sub sp, #136
target/thumbv6m-none-eabi/release/neotron-pico-bios: file format elf32-littlearm
Disassembly of section .text:
100001c0 <__stext>:
100001c0: 2400 movs r4, #0
100001c2: 43e4 mvns r4, r4
100001c4: 46a6 mov lr, r4
100001c6: f005 f81a bl 0x100051fe <__pre_init> @ imm = #20532

Things on my wish list

  • An old-world PowerPC Macintosh
  • Anything that runs MIPS, PowerPC or Alpha Windows NT 4
  • A Nintendo Entertainment System
  • A Nintendo N64
  • A Sega Mega CD
  • A Sega 32X
  • A Sega Saturn
  • A Sega Dreamcast
/**
* An example of some bad C code.
*
* Copyright (c) Jonathan 'theJPster' Pallant 2019
*
* This example is under the Blue Oak Model Licence: https://blueoakcouncil.org/license/1.0.0
*/
// ===========================================================================
// System Includes
5 OPTION GOSUB
10 H% = 30
20 W% = 80
30 F$ = " .:^*xsS#$"
40 T% = H% * W%
50 DIM B%(T% + W% + 1)
60 FOR C% = 0 TO INT(W% / 9)
70 B%((RND(1) * W%) + W% * (H%-1)) = 65
80 NEXT C%
90 C% = 0