About Randall
Support forum for books,
software, and hardware
Software, documentation,
downloads, and other goodies
RandallHyde.com
Electronics, Embedded Systems, RTOSes,
Arduinos, Raspberry Pi SBCs, and Such
• Books • Software • Electronics • Pro Audio • Fun •
Tutorials (Coming Soon)
3D Printers, Drones,
and other Fun Stuff
Books written or
recommended by Randall Hyde
Downloads, errata, etc.
Photos to share (free to use)
Pro Audio, Staging,
and Lighting
Nuclear Reactors and Such
Randall Hyde: The Blog
ADK
The High-Level Assembler
An amazing assembly language for 32-bit x86 development.
HLA
Back to RandallHyde.com
Assembler Development Kit
Randall Hyde’s Software
Linux 32-bit x86 Assembly Language Programming
Win32 Assembly Language Programming
DAQ: Open Hardware/Source Data Acquisition
Electronics & Embedded Systems
Ethernet Watchdog Board (EWB)
PicoDev Raspberry Pi Pico Development Board
Etherport Modules
Analog Conditioning Boards
Weensy Boards (for Teensy Modules)
Back to RandallHyde.com
Pro Audio &
Production
• Speaker Placement
• SAC Control Surface Protocol
• Software Audio Console (SAC)
Nuclear Reactors
& Such
Randall Hyde and Plantation Productions have been working on digital control
systems for nuclear reactors since about 2004. Randall began working on the
TRIGA™ digital console software written in QNX for General Atomics and then
rewrote the software to run under Linux and Windows. Today, General Atomics’
Linux/Windows-based TRIGA digital console software is running on a half-
dozen reactors across the world.
• Sites with Plantation Production Software
• TRIGA (GA)
• TRIGA (Wikipedia)
• Photos from National Parks
Photos
• Drones in Sedona, Az.
http://www.plantation-productions.com
mandy@plantation-productions.com
randy@plantation-productions.com
https://randallhyde.com
Contact Information
Plantation Productions, Inc.
6185 Magnolia Ave Ste 320
Riverside, CA, 92506
(951) 347-6572
Back to Randall Hyde.com
Professional Publications and Conference Presentations:
Randall L. Hyde. Software Testing Debugging, and Analysis Using Ratc. Proceedings of the IASTED Conference, Software Engineering. Las Vegas, Nv, Oct 28-31, 1998. pp 198-201.
R.L. Hyde, B.D. Fleisch. A Case for Virtual Distributed Objects. Parallel and Distributed Computing Practices. Vol 1 No. 3, September 1998.
B.D. Fleisch, R. L. Hyde. High Performance Distributed Objects Using DSM and Remote Object Invocation. Proceedings of the 31st Hawaii Conference on System Sciences. Hawaii. Jan 4-9, 1998.
R.L. Hyde, B. D. Fleisch, An Analysis of Degenerate Sharing and False Coherence. Journal of Parallel and Distributed Computing, Vol 34 #2, June 1996, Pp 183-195.
R. L. Hyde, B. D. Fleisch, Degenerate Sharing. 23rd International Conference on Parallel Processing, Aug, 1994.
B. D. Fleisch, N. C. Juul, R. L. Hyde. Moving Distributed Shared Memory to the Personal Computer: The Mirage+ Experience. UCR Technical Report UCR-CS-93-6.
B. D. Fleisch, N. C. Juul, R. L. Hyde, Mirage+: A Kernel Implementation of Distributed Shared Memory for a Network of Personal Computers. Software Practices and Experience, Vol 23 No. 10, October 1994.
Experience:Considerable experience developing and delivering embedded systems products. 15 years experience as “hands-on” project lead and department manager. 12 years teaching experience at the Cal State and UC level. Considerable writing experience (published works). Demonstrated ability to take software/hardware products from initial conception through retirement.
NTHU (National Tsing Hua University, Hsinchu City, Taiwan)
TRIGA Reactor Software Development Contractor
2017-present
Currently working on a device to translate General Atomic’s NMP-1000 and NLW-1000 nuclear instruments to operate on the NM-1000 protocol for use with the NTHU THOR reactor.
Skill Set: C/C++ under uC/OS.
Dow Chemical (Midland, MI)
TRIGA Reactor Software Development Contractor
2017-present
Currently working on the new real-time control system for TRIGA research reactors. Work involves designing a new control system from the ground up in assembly, BASIC, and C/C++ languages, updating the software to work with new hardware, and deploying the system. Work also entailed creating the “TRIGA Basic” language, compiler, interpreter, and support tools. Author of Software Requirements Specifications, Software Design Document, Software Test Cases, and Software Test Procedures for major parts of the system. Also wrote the software developer's and software user manuals for the TRIGA system.
Also designed and developed all the custom electronics and PCBs for the Dow TRIGA Research Reactor instrumentation and control system. Assembled and tested all the rack drawers for the system.
Skill set: HLA (High-Level Assembler), TRIGA Basic, C/C++ under uC/OS, Linux, and Windows. Eagle PCB/Schematic design and layout software. Developed IEEE-standard-based documentation for SyRS, SRS, STC, STP, and traceability matrix documents.
General Atomics
TRIGA Reactor Software Development Subcontractor Aug 2007-2021
Currently working on the new real-time control system for TRIGA research reactors. Work involves designing a new control system from the ground up in assembly, BASIC, and C/C++ languages, updating the software to work with new hardware, and deploying the system. Work also entailed creating the “TRIGA Basic” language, compiler, interpreter, and support tools. Author of Software Requirements Specifications, Software Design Document, Software Test Cases, and Software Test Procedures for major parts of the system. Also wrote the software developer's and software user manuals for the TRIGA system.
Skill set: HLA (High-Level Assembler), TRIGA Basic, C/C++ under uC/OS, Linux, and Windows
Armed Forces Radiological Research Institute (AFRRI)
TRIGA Reactor Software Development Subcontractor Jan 2016-2021
Developing and installing Linux and Windows-based console control software for new TRIGA console (under subcontract to General Atomics).
Armed Forces Radiological Research Institute
TRIGA Reactor Software Development Subcontractor Aug 2015
Contract work maintaining and debugging the QNX TRIGA console software.
Plantation Productions, Inc.
Owner and President Feb 2004-present
Providing complete stage, lighting and Pro Audio systems for concerts and events. Also provided contract software engineering services for various customers.
Skill set: Providing logistics, management, and audio engineering skills. Also provide electronic trouble shooting skills and general problem management. Work as a liaison with Plantation Production customers to reduce problems at large events.
Blizzard Entertainment
Senior Software Engineer Sept 2005-2007
Worked on networking code to support Blizzard’s game software updates (for World of Warcraft and other Blizzard titles). Supported legacy applications. Designed new networking protocols for software updates.
Skill set: MSVC++ under Windows, XCODE under Mac OSX, GCC under Linux
General Atomics
QNX Subcontractor July 2004-2007
Currently working on a real-time embedded control system for nuclear reactors. Work involves cleaning up existing QNX-based C code, modifying the software to work with new hardware, and deploying the system.
Skill set: Watcom C under QNX 4.0 RTOS (older version of software).
Interactive Content Engines
Contractor Sept 2003-Sept 2004
ICE is developing an on-demand video streaming system for cable television. Duties for ICE include the exploration of a low-level IDE/SATA driver (independent of OS) as well as consulting on converting C/C++ code into x86 assembly language for improved performance. Other work included Linux installation on dual-Xeon servers and configuration of said systems for trade shows.
Skill set: GCC under Linux and HLA (x86 assembly), NASM, and FASM. SATA/IDE controller programming. Linux system administration.
U.S. Traffic
Senior Software Engineer July 2002-July 2004
Developed embedded traffic controller applications under the QNX embedded OS. Also developed embedded traffic applications in embedded 80186/V25 systems. Worked on NEMA compliant systems supporting NTCIP, TCP/IP, SNMB, and other protocols. Developed SDLC communication protocols for TS2 traffic standard. Developed low-level communication code for NYC Manhattan RF-based controllers. Other work includes Conflict Monitor software development (CMU/MMU), real-time clock maintenance (based on 60Hz power line), specialized RS-232 device driver development for QNX, USB software development for QNX, and numerous other projects. Translated 8085 and 8086 code to C.
Skill set: GNU toolset, including writing GCC C code running under QNX 6.1. QNET networking. GDB debugger. Logic analyzer debugging. MS Visual Source Safe and CVS, Samba network file service, QNX installation scripts. QNX device driver development. SDLC/HDLC communications protocols. NEMA TS2 traffic controller standard. NTCIP traffic controller standard. Multi-threaded/multitasking concurrent application development. Message passing, semaphores, etc. Developed a system logger for QNX (in addition to using QNX’s SLOGGER facilities). Microsoft Visual Studio/VC++. Real-time clock programming and synchronization with 60Hz line signal. V25+ (80186) assembly language development using MASM 5.1.
Oxford International
Contractor March 2002-Jan 2003
Developed embedded software for the TI BQ26220 battery monitor IC for use in portable devices. Documented the complex controlling software so that an average software engineer could understand the dynamics of battery chemistry and how to monitor battery charge/discharge cycles. This project consisted of approximately 4,000 lines of portable C code for use in cell phones, PDAs, and other portable devices.
Also helped develop proposals for other projects Oxford was bidding on.
Skill Set: Generic portable C. Debugging systems using console I/O and oscilloscopes. Hardware prototype construction (wiring, soldering, etc.) Algorithm development and proofs involved the use of Microsoft Excel. Documentation involved the use of Adobe Framemaker and Microsoft Word.
Transdimension, Inc
Associate Technical Fellow May 2001-Dec 2001
Technical Manager July 2000-May 2001
Personally developed and delivered USB Host Controller Protocol Stack for Windows CE. Ported the WinCE stack to various x86 and StrongARM platforms. Managed the development of the USB host controller stack for VxWorks and Linux including a detailed review of the Linux code. Worked on the design of a stand-alone USB Host Controller Stack. Evaluated (and corrected) the hardware specifications for a new USB host controller ASIC. Managed a software team consisting of seven software engineers including the review and debugging of their work. Helped evaluate and set up source code control and other software engineering policies.
Skill Set: Windows CE Platform Builder. Visual C++/Visual Studio. Microsoft Visual Sourcesafe. Linux device driver development. GCC and other GNU tools. Borland Delphi and Borland C++. USB protocol stack development. USB client driver development. PC/104 system development and programming. x86 assembly language development. Arm and StrongArm system development.
Genovation, Inc. Dec 1997- July 2000
Director of Software Development.
Managed a software team encompassing two divisions (“Computer Peripherals” and “Electronics for the Feet”). Designed and invented several new products. Managed an automated foot topology project that scanned the bottom of a person’s foot and selected an insole for that person’s shoes (firmware and embedded project). Oversaw and helped develop various keyboard device drivers for Windows 95, 98, NT4, 2000, and CE. Co-designed the hardware for an electronic “foot fitter” device; wrote the 6805 uController software to measure and display the size of feet using several different scales (firmware/embedded product). Developed the user interface for a retail foot topology/insole selection system. Performed system administration duties (including initial setup) on an NT4 server. Selected hardware systems for engineers and various projects. Participated in the design of various keyboard products for Palm Computing platforms. Arranged for the installation and deployment of a DSL connection to the internet; oversaw and participated in the development and deployment of Genovation’s web server, ecommerce site and intranet system. Helped set up the Genovation email system. Developed a custom electronic foot sizing system for New Balance Athletic Wear (firmware/embedded project). Instituted the use of a version control system for multi-programmer projects using Visual SourceSafe. Also served as company photographer and videographer for several advertisements.
Skill Set: C, C++, x86 assembly language, 6805 assembly language, 8031/8051 assembly language, logic analyzers, in-circuit emulators, system administration (NT), Delphi, hardware design and optimization, project management Visual Sourcesafe, Microsoft Exchange Server, Interbase SQL system administration, and low-level firmware development. Linux, DOS, Windows, and WinCE device driver development.
Information Management Associates (IMA). April 1996- Dec 1997
Senior Software Engineer.
Participated in a project involving the porting of a telephony programming language (EDGE) from UNIX to the AS/400. Developed a high-performance socket based RPC protocol for use by EDGE. Developed the “RatC” domain specific embedded language macro package for C/C++ to improve the readability of the C/C++ source code in EDGE.
Skill Set: AS400/OS400, C, Delphi, Java, Microsoft Visual Studio, Visual Basic, Visual Sourcesafe, compiler development, concurrent/multithreaded programming, and optimization.
University of California, Riverside 1989-2000
Lecturer of Computer Science
Courses Taught include a mixture of upper and lower division courses including Intro to Computing, Introduction to Computer Science I& II, Machine Organization and Assembly Language, Formal Languages and Automata Theory, Microcomputer Systems Design, Programming Languages, Compiler Design, Commercial Software Development, and Independent Study (Supervision).
Also active in the operating systems research group (Mirage, a PhD. level research project) which involved modification of the AIX kernel to support distributed shared virtual memory over the network. Also participated in the analysis of the Linux and Windows NT kernels and worked on device drivers for these operating systems.
Skill Set: Windows NT, Linux, and AIX kernel development. x86 assembly development using Gas.
California Polytechnic University, Pomona (Cal Poly) 1988-1993
Lecturer in Computer Science
Courses taught include: Introduction to Computing, Pascal Programming, Introduction to Ada I & II, Introduction to Digital Design, Data Structures and Algorithm Analysis I & II, Data Structures for Engineers, Assembly Language Programming, Advanced Assembly Language, Formal Languages and Automata Theory, Advanced Programming, Systems Programming Languages, Operating Systems, Compilers I & II, Software Engineering I & II.
Independent Consulting 1987-1997
These consulting jobs were done while employed by Cal Poly and UC Riverside to augment income:
MountainGate: Developed two embedded controller systems (68K & 8031) for high-end disk subsystems.
Lartec Systems: Designed several specialized keyboard drivers for ADR (automatic dialog replacement) systems. This software has been used in several popular television shows and movies.
Genovation: Designed and implemented various keyboard drivers, joystick drivers, and other software) Windows and DOS). This work involved patching PC BIOS systems to allow keyboard input from non-standard keyboard devices into existing applications (e.g., Lotus 1-2-3).
Baxter Healthcare, Fenwal division: Designed a data flow analyzer for 6502 assembly language which allowed the Fenwal division to determine the global effects of changes made to an assembly language program.
Skill Sets: various assembly languages, low-level software/hardware interface, and firmware development.
Braintec Corp. 1985-1996
Software Engineer
Braintec was a consulting firm that utilized some in-house engineers on various contracts. This position was part-time/full-time depending on the contracts. This position was used to augment income while obtaining Master’s degree and while teaching at Cal Poly Pomona and UC Riverside.
Braintec: Windows NT system administrator, resume database design and implementation.
Locus Computing/Platinum Technologies: Software test engineer. Tested a network based file system linking Macintosh, PC, and UNIX computer systems. Worked on a proposal for Locus/IBM contract to provide quality assurance for the Locus product. Also worked on some training aids for new Locus employees.
Telcom Technologies: Designed a user interface for an OS/2 database program.
BMDP Statistical Software: Worked on various contract proposals and organized the schedule for a project. Also evaluated certain statistical libraries and discussed options for creating a Microsoft Windows version.
Alpha Microsystems: Documented 80x86 based interface software for Alpha’s AMOS operating system.
Skill Sets: wide range of assembly languages. C, Pascal, and FORTRAN HLLs.
Genest Technologies 1984-1988
Programmer and Software Manager.
Designed and implemented an OCR system, several commercial PC products, and designed and wrote several keyboard drivers and PC BIOS-compatible device drivers. Worked on several embedded system projects involving 6502, 8031/8051, 8048/8049, and other microcontrollers. Also managed five programmers.
Lazerware, Inc.; Lazer MicroSystems, Inc. 1980-1985
Co-owner, manager, software engineer.
Owned and operated these two businesses which published commercial software and handled several contract jobs. Projects included design and implementation of various display and keyboard enhancement modules for Apple II Computer systems, design and implementation of hardware and software for an NS32016 system, designed and implemented Coleco BASIC for the Coleco Adam computer system, designed and implemented the video game “Porky’s” for Fox Entertainment, designed and implemented a Z-80 debugger/disassembler/monitor for the FROBCO Colecovision FROB unit, helped design and implement a BASIC interpreter, BIOS, and operating system for Franklin Computer.
Skill Sets: 6502, Z80, and x86 assembly languages. NS32000 assembly language. Low-level console game programming.
Contracts fulfilled as a Lazerware Employee:
Perkin-Elmer: Designed a system to test satellite optics. Also designed and implemented software to measure the effect of temperature on a strain gauge.
Diamond Computer: Wrote the user manual for an Apple II emulator card for the IBM PC.
IQ Systems: Designed device drivers for UCSD/Apple Pascal system for ACT hard disk.
Wesper Microsystems: Designed firmware for DOS 3.3 and Apple Pascal video software for a video display adapter card.
Xebec: Designed device drivers for UCSD/Apple Pascal system for Xebec hard disk.
Lobo Systems: Designed device drivers for UCSD/Apple Pascal system for Lobo 8” floppy and hard disk subsystems.
Meca: Designed a tape operating system for a digital tape drive.
Skill Sets: 6502 and Z80 assembly language.
Siemens Corp. 1980
Software Engineer.
Designed and implemented the interactive terminal software for a Siemens video-based TELEX terminal. Developed software for embedded Z-80 system.
Skill Sets: Z80 assembly language, Intel in-circuit development system under Isis.
Programma International 1979-1981
Programmer
Worked on various in-house programming projects and outside contracting projects.
Greyhound Exhibition/ITT Canon: Designed and implemented a multimedia system consisting of a computer system and slide projector for display at trade shows.
Microproducts 1978-1979
Software Engineer.
Enhanced an existing 6502 assembler. Designed an alphanumeric LCD display driver. Wrote software for an embedded 6502-based traffic monitoring computer.
United States Salinity Laboratory 1977-1978
Programmer.
Worked on various soil chemistry programs (FORTRAN).
Skills:Expert assembly (x86/IA32, 68K, variety of microcontrollers, etc.), C/C++, Swift, and Delphi programmer. Experienced device driver writer (UNIX/Linux, Windows, WinCE, QNX). Kernel programming experience (AIX, Windows NT, and Linux). WinCE 3.0 Platform Builder experience (note, though, 10 years old). QNX, uC/OS, and WinCE embedded RTOS experience. Arduino embedded programming experience. Raspberry Pi/Linux embedded programming experience. USB host controller stack experience. Network programming experience. Low-level software/hardware interface skills. Considerable experience writing distributed/multitasking/multi-threaded code. Compiler writing experience. Strong optimization skills with a solid understanding of Computer Science. Strong code review and analysis skills. Strong debugging skills including experience both with and without hardware assisted debugging aids. Excellent written and oral communication skills (published author). Ability to quickly learn, assimilate, and communicate new concepts. Strong commitment to creating maintainable systems.
Other programming language skills include: Swift, FORTRAN, Ada, Icon, Snobol4, PL/I, APL, Unix sh, and AWK.
Other assembly languages include NS32000, Z80, 8085, 8031/8051, 6502, 6809, 6805, 6811, and 8048/8049.
Real-time embedded experience on various microcontroller platforms including Netburner, Arduino, Teensy, Raspberry Pi, and Pine 64 (ColdFire and ARM platforms).
PCB layout and design using Eagle (about a dozen boards developed for the nuclear industry, to date). Analog and digital systems electronics design for safety systems (nuclear reactor instrumentation and control).
Other Publications and Books:
R. Hyde, Write Great Code, Volume III: Engineering Software. Published by No Starch Press (2020)
R. Hyde, Write Great Code, Volume II (2nd Edition): Thinking Low-Level, Writing High-Level. Published by No Starch Press (2020)
R. Hyde, Write Great Code, Volume I (2nd Edition) :Understanding the Machine. Published by No Starch Press (2020)
R. Hyde, The Art of Assembly Language Programming (2nd Edition). Published by No Starch Press. (2010).
R. Hyde, The Art of Assembly Language Programming, text, lab manual, and instructor’s guide (see http://webster.cs.ucr.edu). One of the most popular references on assembly language today.
Nabajyoti Barkakati, Randall Hyde, The Waite Group’s Microsoft Macro Assembler Bible, second edition. SAMS, 1992.
R. Hyde, The UCR Standard Library for 80x86 Assembly Language Programmers. Published in Dr. Dobb’s Journal, 1992.
R. Hyde, Object Oriented Programming in Assembly Language. Published in Dr. Dobb’s Journal, 1989.
R. Hyde, A Memory Management Primer. Published in Byte Magazine, 1988.
R. Hyde, P-Source (Inside Apple Pascal). Published by DataMost, 1982
R. Hyde, How to Program the Apple II Using 6502 Assembly Language. Published by DataMost, 1981
Education:
University of California, Riverside
Bachelor of Science, Computer Science
Master of Science, Computer Science
Tutorials
MOAR
Using the Lulzbot MOARstruder with Simplify 3D
Adapting a PrintInZ board to the Lulzbot Taz6 3D printer
(sadly, the PrintInZ board is no longer available)
Mandy’s Moods
The old-school way to let people know how you feel
Fun Stuff
3D-Printed Pool Filter
The pool store want $100 for a new in-line canister filter
I 3D printed a replacement for about $5 in filament
A Though Experiment: Creating an instruction set for the 6502 successor: the 65000
Arches
Death Valley
Sedona,
Az
Grand Canyon
Zion
US National Parks & More
All Photos © 2021 by Randall Hyde
Released under Creative Commons 4.0
License: Attribution/
Petrified Forest
& Painted Desert
License Info
Bryce