This repository implements a complete 16-bit computer simulator built from fundamental logic gates (NAND, AND, OR, etc.) in Go. It includes a CPU, memory, ALU, memory-mapped I/O (keyboard and 240×160 pixel display), and a custom instruction set. The project provides three command-line tools: a simulator that loads binary programs and runs them with a GLFW-based graphical window, an assembler that converts a custom assembly language into binary, and a program generator that produces example assembly programs (e.g., text writer, sine wave animation, snake brush). The system is a faithful gate-level simulation—every component from bits to the CPU is wired together using Go structs, making it an educational tool for understanding computer architecture.
GoAuthing is a command-line authentication tool for Tsinghua University's network (TUNET). It provides login, logout, and keep-alive functionality for both IPv4 and IPv6 connections. The application features a clean separation between the CLI interface (built with urfave/cli) and the core authentication logic (in the libauth package). It handles credential input via prompts or config files, communicates with the authentication server using custom encryption and encoding schemes, and can run as a daemon via systemd or init.d scripts. The project is actively maintained with regular releases and CI/CD pipelines for multi-platform builds.