Skip to content

Instantly share code, notes, and snippets.

View corytodd's full-sized avatar

Cory Todd corytodd

View GitHub Profile
@corytodd
corytodd / dism.sh
Created November 2, 2023 19:41
GDB disassmbly helper
#!/bin/bash -eu
TOOLCHAIN=${TOOLCHAIN-arm-none-eabi-}
OBJDUMP=${TOOLCHAIN}objdump
GDB=${TOOLCHAIN}gdb
function usage()
{
cat <<EOF
Usage: dism.sh -f|function -b|--binary --no-source
@corytodd
corytodd / fixed_minispy.inf
Created November 24, 2019 17:42
The latest Windows 10 build, 1903-1909, rejects the minifilter INI samples shown in the DDK Github. This modified version allows the driver to at least load and function. I don't know if it is 100% correct though.
;;;
;;; Minispy
;;;
;;;
;;; Copyright (c) 2001, Microsoft Corporation
;;;
[Version]
Signature = "$Windows NT$"
Class = "ActivityMonitor" ;This is determined by the work this filter driver does
@corytodd
corytodd / run_reconnection_test.cs
Created August 30, 2018 16:13
PTIRelianceLib Reconnection Test Loop
// Call out from some place else...
private static void RunReconnectionTest()
{
while (true)
{
using (var printer = new ReliancePrinter())
{
var start = DateTime.Now;
@corytodd
corytodd / ptireliancelib_ping_status.cs
Last active August 30, 2018 14:15
Shows how to use a timer to await a print completion before checking status
using PTIRelianceLib;
using System;
using System.Drawing;
using System.Drawing.Printing;
using System.Threading;
namespace RelianceCLI
{
internal class Program
{
@corytodd
corytodd / csharp_gdi_print.cs
Created June 13, 2018 02:59
GDI Printing Example for C#
#region Win32 GDI
private void btnTextDrawCenter_Click(object sender, RoutedEventArgs e)
{
var doc = new PrintDocument()
{
PrintController = new StandardPrintController(),
};
doc.OriginAtMargins = false;
doc.PrinterSettings.PrinterName = CurrentPrinter;
doc.PrintPage += (s, args) =>
@corytodd
corytodd / Thermal_Paper_Roll_Length_Calculator.ipynb
Created June 13, 2018 02:59
Thermal Paper Roll Length Calculator
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@corytodd
corytodd / TwoSidedImagePane.Java
Created June 13, 2018 02:58
JavaFX two-sided image widget
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.geometry.Point3D;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.scene.transform.Rotate;
import javafx.util.Duration;
@corytodd
corytodd / sign_published.py
Last active June 13, 2018 02:58
ClickOnce SHA256 Signing outside of Visual Studio
from xml.dom import minidom
from subprocess import check_output
#Set this to the Visual Studio output directory, no trailing \
path = 'X:\absolute\path\tp\publish\directory'
#Typically found as MyApp.application in the publish directory
app = "MyApp"
#Path to Mage.exe. Notice the delimented \v
mage = '"C:\Program Files (x86)\Microsoft SDKs\Windows\\v7.0A\Bin\mage.exe"'
#!/bin/sh
# Makefile fixer
# Some old projects that have been touched by dumb text editors
# may have had their makefile tabs turned in spaces. For large
# projects, this is a pia to fix. Use this script in your project
# directory as a quick fix. +1 for the expand command.
set -e
old="$1"
http://stackoverflow.com/questions/9023129/algorithm-for-bit-expansion-duplication
We are isolating each nibble, then each bit per the expansion factor (3 in this case)
out = (in | in << 8) & 0x0F00F;
out = (out | out << 4) & 0x0C30C3;
out = (out | out << 2) & 0x249249;
out *= 7;
== 0000 0000 0000 0000 1101 0101 (in == 0xD5)