This document is intended to document certain inner workings of the CPU.
There have been efforts by emu-russia and gekkio to have the CPU decapped, and so we have the decode ROM accessible to us. This means, that we know exactly what each opcode does (besides some nuanced behavior related to HALT, STOP, and some state management related to interrupts and power saving which are hard to untangle).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
from PIL import Image | |
import sys | |
im = Image.open('chart.png') | |
im2 = np.array(im) | |
factor = 127 # 84 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Step 1: Obtain Yosys from git. | |
// Step 2: Download jt51 from https://github.com/jotego/jt51. | |
// Step 3: Build as follows: | |
// $ yosys jt51/hdl/*.v -b 'cxxrtl -header' -o jt51_core.cc | |
// $ CFLAGS="-fbracket-depth=2048 -I$(yosys-config --datdir/include)" | |
// $ clang++ -O3 $CFLAGS jt51_core.cc jt51_player.cc -o jt51_play | |
// Step 4: Convert as follows: | |
// $ python3 vgm2tsv.py music.vgm music.tsv | |
// Step 5: Play as follows (assuming YM2151 clocked at 4 MHz): | |
// $ ./jt51_play music.tsv music.wav 4000000 |
The following information illustrates the differences between macOS, Windows and Linux in USB device enumeration sequence.
Specifically the comparison covers USB Mass Storage device enumeration, implemented with the TamaGo USB driver on a USB armory Mk II running armory-ums.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The MIT License (MIT) | |
// | |
// Copyright (c) 2018 Darrell Wright | |
// | |
// Permission is hereby granted, free of charge, to any person obtaining a copy | |
// of this software and associated documentation files( the "Software" ), to deal | |
// in the Software without restriction, including without limitation the rights | |
// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell | |
// copies of the Software, and to permit persons to whom the Software is | |
// furnished to do so, subject to the following conditions: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This code demonstrates a simplified "stackification" algorithm to turn | |
// instructions in a basic block back into a tree. This is useful when | |
// generating WebAssembly code from assembly instructions in SSA form. | |
// | |
// It's the algorithm used by LLVM's WebAssembly backend, viewable here: | |
// https://github.com/llvm-mirror/llvm/blob/master/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp | |
type InsKind = | |
'Add' | | |
'LocalSet' | |
C News Vol. 1 Issue 11 Sept 15, 1988
CHOOSING A MEMORY MODEL by Bill Mayne
ABSTRACT: The meaning of the "near", "far", and "huge"
keywords specifying pointer types and how these are related to
the various memory models available to C programmers using the
80x86 family of processors used in IBM and compatible PCs and
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/bash | |
set -x | |
set -e | |
function git_commit { | |
git commit -a -m"litex import: $1" | |
} | |
mkdir -p repos |
NewerOlder