https://www.computerenhance.com/p/table-of-contents
https://github.com/cmuratori/computer_enhance
- macOS AArch64 (clang)
- Linux x86_64 (gcc)
build.sh
Creates build directory and builds all the targets from src directory.
See -h for the list of targets and more options.
src/sum/sum.c- sum of array with and w/o SIMD
src/sim86/*.(h|c)- 8086 instruction simulatorsrc/sim86/listings/*.asm- 8086 decode and simulation test listingstest.sh- script to test sim86 with test listings
src/harvestine/calc_harvestine.h- func to calculate harvestine distancesrc/harvestine/estimate_cpu_timer_freq.c- util to estimate timer frequencysrc/harvestine/gen_harvestine.c- generate json with pairs of coordinatessrc/harvestine/harvestine.c- parse json and calculate harvestine distancessrc/harvestine/microbenchmarks.c- performance benchmarkssrc/harvestine/os.(h|c)- OS level abstractionsrc/harvestine/pf_counter.c- page fault counter testsrc/harvestine/profiler.(h|c)- simple instrumentation profilersrc/harvestine/ptr_anatomy.c- memory pointer dissectionsrc/harvestine/read_overhead.(h|c)- benchmark to calculate read overheadsrc/harvestine/tester.(h|c)- repetition testersrc/harvestine/timer.(h|c)- time stamp counter platform abstractionsrc/harvestine/types.h- types and macros
src/interview1994/cp_rect.c- rectangular copysrc/interview1994/str_copy.c- string copysrc/interview1994/has_color.c- find 2-bit pixel color in a bytesrc/interview1994/draw_circle.c- draw circle outline (Bresenham's circle)
.lvimrc- vim local config. Ignore if you don't use vimbuild.sh- build scriptcompile_flags.txt- list of compilation flags used by clangd and build.shlive.sh- poor man's live coding environment (requires 'entr' utility)test.sh- 8086 decoder and simulation test