Annotated Bibliography
Jim Butterfield
This is a bibliographic list of all articles by Jim Butterfield currently catalogued by the Commodore 8-Bit Magazine Index and readable on archive.org. There are currently 216 articles in the index; this list is incomplete.
- PET in Transition
- Compute!, Issue 1, Volume 1, No. 1, September 1979, p. 68.
Memory map for the PET ROM upgrade. - Un-Crashing on Upgrade ROM Computers
- Compute!, Issue 1, Volume 1, No. 1, September 1979, p. 89.
Hardware methods to reset the PET when machine-language programs crash. - Inside the 2040 Disk Drive
- Compute!, Issue 2, Volume 2, No. 1, January 1980, p. 94.
A memory-dump program for looking at the ROMs inside the 2040 disk drive. - Book Review: 6502 Assembly Language Programming
- Compute!, Issue 2, Volume 2, No. 1, January 1980, p. 36.
Review of 6502 Assembly Language Programming by Lance A. Leventhal (Osborne & Associates, 1979). - BASIC Memory Map (Page 0)
- Compute!, Issue 2, Volume 2, No. 1, January 1980, p. 41.
Memory map comparing BASIC zero-page usage in the single-board KIM, AIM, and SYM computers alongside the PET (Microsoft BASIC) and Apple II (Applesoft BASIC). - A Few Entry Points: Original/Upgrade ROM
- Compute!, Issue 2, Volume 2, No. 1, January 1980, p. 93.
Address cross-reference table comparing entry points for useful routines in both BASIC and Kernal ROM revisions for the PET. - Machine Language
- Compute!, Issue 3, Volume 2, No. 2, March 1980, p. 26.
Broad comparison of machine language and BASIC. - Memo to Machine Language Programmers
- Compute!, Issue 3, Volume 2, No. 2, March 1980, p. 96.
Finding free bytes in zero-page RAM. - Machine Language Tools
- Compute!, Issue 4, Volume 2, No. 3, May 1980, p. 57.
Introductory article about machine language resources, monitors, and assemblers. - Review: 6502 Software Design
- Compute!, Issue 4, Volume 2, No. 3, May 1980, p. 40.
Review of 6502 Software Design by Leo J. Scanlon (Howard W. Sams & Co., 1980). - Review: PET and the IEEE-4888 Bus (GPIB)
- Compute!, Issue 4, Volume 2, No. 3, May 1980, p. 37.
Review of PET and the IEEE-4888 Bus (GPIB) by Eugene Fisher and C. W. Jensen (Osborne/McGraw Hill, 1980). - Cross-Reference for the PET
- Compute!, Issue 4, Volume 2, No. 3, May 1980, p. 63.
Program reads a BASIC listing from disk and compiles lists of variable and line-number references. - Some Routines from Microsoft BASIC
- Compute II, June/July 1980, p. 13.
Memory maps of Microsoft BASIC for the KIM-1, SYM, AIM, and OSI versions. - Programming & Interfacing the 6502, with Experiments
- Compute II, June/July 1980, p. 21.
Review of Programming & Interfacing the 6502, with Experiments (Howard W. Sams & Co., 1980). - BASIC Memory Map (Page 0)
- Compute II, June/July 1980, p. 33.
Memory map comparing BASIC zero-page usage in the single-board KIM, AIM, SYM, and OSI computers. - Fitting Machine Language into the PET
- Compute!, Issue 5, Volume 2, No. 4, July 1980, p. 94.
Placing machine language programs in memory to coexist with BASIC. Advantages and drawbacks of different strategies. - Butterfield Reports: The 8032
- Compute!, Issue 5, Volume 2, No. 4, July 1980, p. 69.
Preview of the CBM 8016 and 8032. - Shift Work
- Compute!, Issue 5, Volume 2, No. 4, July 1980, p. 85.
Idiosyncrasies of the SHIFT key on the PET/CBM: shifted spaces, SHIFT-RETURN, and "pseudo-shifted" characters. - Mixing BASIC and Machine Language
- Compute!, Issue 5, Volume 2, No. 4, July 1980, p. 89.
Technique for appending machine-language subroutines to the end of BASIC programs using a machine-language monitor. - TelePET
- Compute!, Issue 6, Volume 2, No. 5, September 1980, p. 86.
Overview of telecommunications on the PET. - ROM-antic Thoughts
- Compute!, Issue 6, Volume 2, No. 5, September 1980, p. 100.
Observations on the different BASIC ROM and DOS versions available for the PET/CBM. - A Few Entry Points, Orignal/Upgrade/4.0 ROM
- Compute!, Issue 6, Volume 2, No. 5, September 1980, p. 110.
Address cross-reference table comparing entry points for useful routines in BASIC and Kernal ROM revisions (1.0, 2.0, and 4.0) for the PET. - PET 4.0 ROM Routines
- Compute!, Issue 7, Volume 2, No. 6, November 1980, p. 88.
Memory locations of PET/CBM 4.0 ROM routines. - BASIC CBM 8010 Modem Routines
- Compute!, Issue 7, Volume 2, No. 6, November 1980, p. 78.
A short BASIC program enables chat-link communication over modem modem connection to an ASCII system or another PET. - Interfacing KIM/SYM/AIM/OSI with BASIC
- Compute!, Issue 7, Volume 2, No. 6, November 1980, p. 128.
Writing BASIC/ML hybrid programs on the KIM-1. - Machine Language Addressing Modes
- Compute!, Issue 7, Volume 2, No. 6, November 1980, p. 98.
Tutorial on the memory scope of each of the 6502's addressing modes. - BASIC 4.0 Memory Map
- Compute!, Issue 7, Volume 2, No. 6, November 1980, p. 92.
Memory map of the PET/CBM BASIC 4.0 ROM, including detailed map of zero page. - The IEEE Bus – Standing Room Only?
- Compute!, Issue 8, Volume 3, No. 1, January 1981, p. 123.
An examination of some shortcomings of the IEEE I/O bus on the PET/CBM. - Review: Disk-O-Pro
- Compute!, Issue 8, Volume 3, No. 1, January 1981, p. 112.
Review of Disk-O-Pro, an upgrade ROM from Skyles Electric Works. - Machine Language: Scanning the Stack
- Compute!, Issue 8, Volume 3, No. 1, January 1981, p. 102.
Advanced uses for the 6502 stack in machine language. Includes source code examples. - Basically Useful BASIC: Financial Fuzzies
- Compute!, Issue 8, Volume 3, No. 1, January 1981, p. 22.
Correcting floating-point rounding errors in BASIC. - Programmer's Tips: The IEEE-488 Bus
- Commodore Interface, May 1981, p. 20.
Programming the IEEE-488 bus on the PET/CBM. Reprinted from The Transactor, October 1979, p. 15. - Butterfield Box: Booleans, or How to Put Off a Decision
- The TORPET, Issue #6, June 1981, p. 6.
Working with boolean expressions in BASIC to clean up the design of complicated condtionals. - Butterfield on Commodore: What Hardware Do I Have? What Software Do I Have?
- Commodore Interface, July 1981, p. 8.
Criteria for identifying PET/CBM hardware configurations and BASIC ROM revisions. - Supermon Instructions
- The TORPET, Issue #7, October 1981, p. 33.
Documentation for the Supermon machine-language monitor by Jim Butterfield. - Two Points of View on the 'Fat Forty': The Fat 40: A New Generation 40 Column PET
- Commodore Microcomputers, Volume 2, No. 4, October 1981, p. 49.
Butterfield notes similarities and differences between the "FAT 40" 4032 and the 8032. - Butterfield Box: The Lazy Programmer
- The TORPET, Issue #7, October 1981, p. 6.
Article about the virtue of "laziness" in programming. - Butterfield on Commodore: Everybody Knows...
- Commodore Microcomputers, Volume 2, No. 4, October 1981, p. 89.
Commodore BASIC facts that "everybody knows". Topics: changing character sets, TI and TI$, BASIC command abbreviations, the keyboard buffer, programmed cursor controls in PRINT statements, CB2 sound, the built-in machine language monitor, and reading the keyboard with PEEK(151). - PET 4.0 ROM Routines
- Commodore Microcomputers, Volume 2, No. 4, October 1981, p. 66.
A memory map of the BASIC 4.0 machines. - The BASIC Box: Feelin' Good
- The TORPET, Issue #8, January 1982, p. 7.
A list of some of the things Butterfield likes about the Commodore line of computers. - Butterfield on Commodore: Half a Dialogue—Reading Keys
- Commodore Microcomputers, Volume 3, No. 1, February 1982, p. 85.
Using GET and PEEK() to read the keyboard in BASIC. - Butterfield on Commodore: The Print Mint
- Commodore Microcomputers, Volume 3, No. 2, April/May 1982, p. 101.
Some observations about the PRINT command in BASIC and printing in columns on the screen and other devices. - Butterfield Box: Compiler Comments
- The TORPET, Issue #9, April 1982, p. 15.
Comments about compilers and challenges with compiling BASIC. - VIC Memory Map
- The TORPET, Issue #10, May 1982, p. 24.
Detailed memory maps for the VIC-20, including register charts for 6560 and 6522 chips. - Butterfield Box: ASCII Me No Questions
- The TORPET, Issue #11, June 1982, p. 4.
PETSCII to ASCII history and case conversions. - Butterfield on Commodore
- Commodore Microcomputers, Volume 3, No. 3, June/July 1982, p. 81.
Topics: thoughts on compiler design and automatic relocation of machine language programs. Includes source code. - Butterfield on Commodore: Filing It
- Commodore Microcomputers, Volume 3, No. 4, August/September 1982, p. 98.
Writing to and reading from data files in BASIC. - The PET Family Tree
- The TORPET, Issue #12, August 1982, p. 24.
Diagram of the the evolutionary relationships between various Commodore and non-Commodore 6502-based 8-bit machines. - Butterfield on Commodore: Comments on the Commodore 64 Memory Maps
- Commodore Microcomputers, Volume 3, No. 5, October/November 1982, p. 81.
Preliminary memory maps for the 64. - The Commodore 64 Maps
- The TORPET, Issue #14, October 1982, p. 31.
Detailed memory maps for the Commodore 64, including a register chart for the SID chip. - Sweet Sixteen
- The TORPET, Issue #15, November 1982, p. 20.
Topics: trade-offs in cost and performance between 8- and 16-bit systems, "blind spots" in programming, and topics Butterfield prefers not to discuss. - A Little Exercise in Machine Language
- Commodore Power/Play, Volume 1, No. 3, Winter 1982, p. 50.
Outlines a technique for embedding short machine-language routines in a BASIC REM statement. - A Little VIC Music
- Commodore Power/Play, Volume 1, No. 1 – Premier Issue, p. 18.
BASIC program plays a short "mystery" tune on the VIC-20. - Too Clever for Words
- The TORPET, Issue #16, January 1983, p. 18.
Butterfield writes about programming style, and how "clever" code can obfuscate its function. - Butterfield Box: Some Serious Math
- The TORPET, Issue #17, February 1983, p. 38.
Topics: linear programming and simulation. - Butterfield Box: Computers and Show Biz
- The TORPET, Issue #18, March 1983, p. 47.
Butterfield writes about writing and filming the educational programs Bits and Bytes and The Academy on Computers for TVOntario (TVO). - The 64 Skiffle Band
- Commodore Power/Play, Volume 2, No. 1, Spring 1983, p. 21.
Two 3-voice songs programmed in BASIC, with explanations of the SID registers used in the program. - Butterfield Box: Poor Man's Petunia
- The TORPET, Issue #19, May 1983, p. 10.
Schematics for building a "poor man's" digital-to-analog converter. - Butterfield Box: You Can't Get Away from It...
- The TORPET, Issue #20, June 1983, p. 28.
Jim Butterfield tells a story about the World's Fair of Trade in Plovdiv, Bulgaria. - Butterfield: Foolin' with Boolean
- Commodore Power/Play, Volume 2, No. 2, Summer 1983, p. 15.
Topics: assigning the value of boolean expressions to variables, and BASIC AND and OR operators. Includes a BASIC version of the guessing game Bagels. - Butterfield Box: String Along with Me!
- The TORPET, Issue #21, July 1983, p. 27.
Topics: empty strings, conversions between strings and numeric variables, and substring functions. - Butterfield Box: Input Idiosyncracies
- The TORPET, Issue #22, August 1983, p. 46.
BASIC's INPUT and INPUT# cannot handle commas and colons. Gives a technique for stuffing a double-quote character into the keyboard buffer before calling INPUT. - Butterfield Box: Swapping and Sharing
- The TORPET, Issue #23, September 1983, p. 22.
Jim Butterfield advocates sharing programs freely when copyrights and commercial interests are not violated. - Butterfield: Everybody Knows....
- Commodore Power/Play, Volume 2, No. 3, Fall 1983, p. 16.
Commodore BASIC facts that "everybody knows". Topics: rounding errors in floating-point numbers, SHIFT-RETURN to make a carriage return without triggering the interpreter, and garbage collection. - Butterfield Box: Cats and Computers
- The TORPET, Issue #24, October 1983, p. 4.
Jim Butterfield talks about his three cats. Sasha is the Siamese who photobombed the cover of this issue. - Butterfield Box: Hard Times
- The TORPET, Issue #25, November 1983, p. 15.
Butterfield writes that numerous computer companies are struggling financially. - Disks, Compatibility, and Inner Secrets
- TPUG Magazine, Issue #1, February 1984, p. 10.
A look at the differences between various 5.25-inch Commodore drives, including the 2031, 2040, 4040, 1540, 1541, 8050, and 8250. - Las Vegas and the 264
- TPUG Magazine, Issue #2, March 1984, p. 29.
Preview of the 264 and 364 (eventually released as the Plus/4), presented at the January, 1984 Consumer Electronics Show (CES) in Las Vegas, Nevada. - Early Notes on the Commodore 264
- The TORPET, Issue #27, May 1984, p. 5.
Preview of the improved BASIC on the Commodore 264 (later known as the Plus/4). - Robots
- TPUG Magazine, Issue #3, May 1984, p. 14.
Jim Butterfield writes about robots and relays an anecdote about a misbehaving robot during filming of an episode of The Academy on Microcomputers. - The Assembler Maze
- TPUG Magazine, Issue #4, June 1984, p. 14.
List of assemblers available for 64, with brief personal reactions. - The Great 25-Cent Experiment
- TPUG Magazine, Issue #5, July 1984, p. 15.
Jim Butterfield placed a request for quarters in 18 programs in 1977 to see how many users would respond. - A Commercial Note
- TPUG Magazine, Issue #6, September 1984, p. 28.
Jim Butterfield writes about his commercial activities: consulting for Commodore, Bits & Bytes and The Academy on Microcomputers, the Commodore 64 Training Tape, the upcoming Machine language for the Commodore 64 (and other Commodore computers), and SpellPro from Pro-Line Software. - The Commodore B-128 Computer
- TPUG Magazine, Issue #7, October 1984, p. 26.
Review of the Commodore B-128 computer. - Software Theft: A Case History
- TPUG Magazine, Issue #8, November 1984, p. 19.
Butterfield writes about the case of FBACKUP (Fast Backup) by Thomas Tempelmann, a program widely pirated in North America that has only sold 70 copies worldwide. - User Group Presentations
- TPUG Magazine, Issue #9, December 1984, p. 38.
Butterfield writes about tailoring user group content to various experience levels to avoid completely shutting out beginners and boring more advanced users. - Secrets in Software
- TPUG Magazine, Issue #10, January 1985, p. 44.
Butterfield writes that Easter eggs can act like a programmer's "signature". - Program Piracy and Personal Ethics
- TPUG Magazine, Issue #11, February 1985, p. 12.
Butterfield writes about software piracy. Of note: an Ontario group distributes a bootleg version of Flight Simulator II from SubLOGIC, including box, manuals, and counterfeit warranty card. - Versatile Mortgage Calculator
- TPUG Magazine, Issue #12, March 1985, p. 29.
Mortgage calculator with flexible payment schedule written in BASIC. - Computer Comfort
- TPUG Magazine, Issue #12, March 1985, p. 14.
Butterfield writes that software needs good documentation and support for users to feel secure in their purchases. - Memory Mapping
- TPUG Magazine, Issue #13, April 1985, p. 16.
A comparison of memory map documentation styles. - VIC-20 Custom Characters
- TPUG Magazine, Issue #13, April 1985, p. 27.
Getting started with user-defined characters in BASIC on a VIC-20 with 8K RAM expansion. - In Praise of VIC-20
- TPUG Magazine, Issue #14, May 1985, p. 14.
An argument in favour of the VIC-20 as a computer for beginners. - Inside Inner Space
- TPUG Magazine, Issue #15, June 1985, p. 16.
A review of The Complete Commodore Inner Space Anthology (Transactor Publishing, 1985). - Adventure and Other Adventures
- TPUG Magazine, Issue #15, June 1985, p. 13.
General comments on the history and characteristics of the text adventure game genre. - The Joy (and Pain) of Spaghetti
- TPUG Magazine, Issue #16, August 1985, p. 10.
Butterfield argues that although improvistaional programming can be fun, there are benefits to thinking about programs and planning ahead. - Sound Advice
- TPUG Magazine, Issue #17, October 1985, p. 14.
Advanced sound features in BASIC 7.0 on the 128, and comments about using advanced language features vs. writing more 'generic' BASIC code. - Synth Sample: Some Sources
- TPUG Magazine, Issue #17, October 1985, p. 14.
A list of the songs in the Synth Sample demo by George Feil. - Commodore 128 – Keywords and Tokens
- The Transactor, Volume 6, No. 3, November 1985, p. 32.
BASIC keywords and tokens in BASIC 7.0. - Commodore 128: New Things
- TPUG Magazine, Issue #18, November 1985, p. 16.
New features that differentiate the 128 from the 64. - C-64 Video from $41 to $5A
- TPUG Magazine, Issue #19, December 1985, p. 4.
Detailed documentation of the registers on the VIC-II video chip. - Graphs Without Math?
- TPUG Magazine, Issue #19, December 1985, p. 8.
Graphics commands in BASIC 3.5 and BASIC 7.0. - Artificial (Fake?) Intelligence
- TPUG Magazine, Issue #20, January 1986, p. 14.
A critique of the popular view of artificial intelligence. - Commodore 128 Memory Map: Important Locations
- Compute!'s Gazette, Issue 32, Volume 4, No. 2, February 1986, p. 80.
A partial memory map of the 128. - Commodore 128 Memory Maps: Important Locations
- The Transactor, Volume 6, No. 5, March 1986, p. 27.
A partial memory map of the 128. - Machine Language: Maxims for the Commodore 128
- The Transactor, Volume 6, No. 5, March 1986, p. 26.
Some machine-language programming guidelines for users new to the 128. - C-128 Book Flawed But Useful
- TPUG Magazine, Issue #21, March 1986, p. 14.
Review of Commodore 128 Internals by K. Gerits, J. Schieb, and F. Thrun (Abacus Software, 1985). - Loading and Linking Commodore Programs: Part 1
- Compute!, Issue 70, Volume 8, No. 3, March 1986, p. 82.
Topics: overview of the LOAD command, linking lines in BASIC, tokenization, and loading incompatibilities among Commodore machines. - Education and the Feedback Loop
- TPUG Magazine, Issue #22, April 1986, p. 13.
Techniques for responding to user input with meaningful feedback when developing educational programs. - Loading and Linking Commodore Programs: Part 2
- Compute!, Issue 71, Volume 8, No. 4, April 1986, p. 68.
Outlines the technique of chain-loading BASIC programs in segments. - Loading and Linking Commodore Programs: Part 3
- Compute!, Issue 72, Volume 8, No. 5, May 1986, p. 73.
Two methods of chain-loading BASIC programs: dynamic keyboard buffer stuffing and post-LOAD pointer cleanup. - Language Arts
- TPUG Magazine, Issue #23, May 1986, p. 13.
Musings about the way users and programmers communicate with their computers through language. - Loading and Linking Commodore Programs: Part 4: Overlaying
- Compute!, Issue 73, Volume 8, No. 6, June 1986, p. 74.
Outlines an overlay technique, where modules or data are loaded from within a running BASIC program. - Orphans
- TPUG Magazine, Issue #24, June 1986, p. 6.
Survey of Commodore's orphaned machines: the PET, SuperPET, VIC-20, 16, Plus/4, and B-series. - The C128 – You Can Bank on It
- The Transactor, Volume 7, No. 1, July 1986, p. 34.
Introduction to the memory configurations available on the 128 via BASIC 7.0's BANK command. Includes a short BASIC/ML hybrid program that tests the architectural results of various BANK configurations. Does not include ML source code. - Jim Butterfield's Complete C128 Memory Map
- The Transactor, Volume 7, No. 1, July 1986, p. 29.
Detailed memory maps for the 128, including register diagrams for custom chips. - Loading and Linking Commodore Programs Part 5: The Commodore 128
- Compute!, Issue 74, Volume 8, No. 7, July 1986, p. 94.
Breaking a BASIC program into multiple files: chain loading, linking modules, and program overlays on the 128. - Flying Pleasure
- TPUG Magazine, Issue #25, August 1986, p. 6.
Review of Flight Simulator II from SubLOGIC. - Commodore 128 Machine Language: Part 1
- Compute!, Issue 75, Volume 8, No. 8, August 1986, p. 85.
Topics: memory banking on the 128, new machine-language support commands in BASIC 7.0, and passing parameters through SYS. - Coming Home on FS II
- TPUG Magazine, Issue #25, August 1986, p. 10.
Tips for safe landings in SubLOGIC's Flight Simulator II. - Reviews: 40 Great Flight Simulator Adventures and 40 More Great Flight Simulator Adventures
- TPUG Magazine, Issue #25, August 1986, p. 37.
Reviews of 40 Great Flight Simulator Adventures (COMPUTE! Books, 1985) and 40 More Great Flight Simulator Adventures (COMPUTE! Books, 1986) by Charles Gulick. - Reviews: Microflyte Joystick System for Flight Simulator II
- TPUG Magazine, Issue #25, August 1986, p. 38.
Review of the Microflyte Joystick System from Microcube. - New Loops: The Commodore 128 BASIC Stack
- The Transactor, Volume 7, No. 2, September 1986, p. 30.
Explanation of the 128's BASIC stack, and its interactions with BASIC 7.0's DO/LOOP structure. - Commodore 128 Disk Boot Basics
- The Transactor, Volume 7, No. 2, September 1986, p. 28.
Explanation of the 128's autoboot feature, with source code examples from three different boot disks. - Commodore 128 Machine Language: Part 2
- Compute!, Issue 76, Volume 8, No. 9, September 1986, p. 96.
Topics: working with the 128's built-in machine-language monitor and integrating machine-language routines with BASIC. Includes source code examples. - Commodore 128 Machine Language: Part 3
- Compute!, Issue 77, Volume 8, No. 10, October 1986, p. 94.
Integrating machine-language overlays with BASIC. Includes source code. - Commodore 128 Machine Language: Part 4
- Compute!, Issue 78, Volume 8, No. 11, November 1986, p. 78.
Bank switching on the 128. - Commodore 128 Machine Language: Part 5
- Compute!, Issue 79, Volume 8, No. 12, December 1986, p. 72.
Planning memory configurations on the 128. Includes source code. - Video Setup: Part 1
- Compute!'s Gazette, Issue 42, Volume 4, No. 12, December 1986, p. 66.
Video Setup is a tool to assist memory allocation for graphics modes on the 64. Includes an explanation of the program's workings and VIC II registers. - Video Setup: Part 2
- Compute!'s Gazette, Issue 43, Volume 5, No. 1, January 1987, p. 78.
Video Setup 128 is a tool to assist memory allocation for graphics modes on the 128. Includes an explanation of the program's workings and the 128's memory banking. - The Commodore 128 – Banking on the Turns
- The Transactor, Volume 7, No. 4, January 1987, p. 56.
A follow-up to The C128 – You Can Bank on It by Jim Butterfield (The Transactor, July 1986, p. 32). There are 16 different memory configurations on the 128 that a machine-language programmer can take advantage of by placing an appropriate value in address $ff00. Includes examples with source code. - Commodore 128 Machine Language: Part 6
- Compute!, Issue 80, Volume 9, No. 1, January 1987, p. 59.
Configuring banked memory on the 128. - RAM Expansion for the Commodore 128
- Compute!'s Gazette, Issue 45, Volume 5, No. 3, March 1987, p. 74.
BASIC programming techniques that take advantage of the 1750 RAM expansion. - North of the Border
- Compute!, Issue 83, Volume 9, No. 4, April 1987, p. 100.
Demonstration of switching off the top and bottom borders so that sprites can be visible outside of the normal screen display area. - Solving Alphanumeric Puzzles on Your Home Computer
- Compute!, Issue 84, Volume 9, No. 5, May 1987, p. 101.
Walks through the construction of a BASIC program to assist in solving arithmetic puzzles. - Gameports: Joystick, Paddle, and Mouse
- Compute!'s Gazette, Issue 47, Volume 5, No. 5, May 1987, p. 90.
Tutorial on reading the joystick ports and signals from joysticks, paddles, trackballs, graphics tablets, and mouses. - RAMtest 128
- Compute!, Issue 85, Volume 9, No. 6, June 1987, p. 96.
RAMtest utility for the 128. - Secondary Address Bits
- The Transactor, Volume 8, No. 1, July 1987, p. 44.
When a logical file is OPENed from BASIC, the stored representation of the secondary address exhibits some poorly-documented behaviour. - The 128's CHAR Statement
- Compute!, Issue 87, Volume 9, No. 8, August 1987, p. 108.
Thorough explanation of the CHAR command in BASIC 7.0 in both text and graphics modes. - Amiga and 64 Ramdisk Files
- Compute!, Issue 88, Volume 9, No. 9, September 1987, p. 93.
Outlines a technique for using expansion RAM as temporary file storage, with a short example program in BASIC. - Nim: The Ultimate Binary Game
- Compute!, Issue 89, Volume 9, No. 10, October 1987, p. 87.
Butterfield shows how understanding the bit patterns of binary numbers can lead to a winning strategy in the game of Nim. Includes an implementation of Nim in BASIC, featuring a computer opponent with adaptive difficulty. - Square Roots in ML
- The Transactor, Volume 8, No. 4, January 1988, p. 52.
A machine language implementation of calculating square roots by the "long division" method. - The New, Improved Bubble Sort
- Compute!, Issue 95, Volume 10, No. 4, April 1988, p. 84.
An improved bubble sort in BASIC. - 10 GOTO PROGRAMMING
- RUN, Volume 5, No. 5, May 1988, p. 36.
Tips for a novice getting into programming for the first time, with book recommendations. - I Do Windows (on the C128)
- The Transactor, Volume 9, No. 2, December 1988, p. 49.
The sample program window128 illustrates a technique for using escape sequences to place windows with finer control than BASIC 7.0's WINDOW command allows. - What's Really Inside the Commodore 64?
- The Transactor, Volume 9, No. 4, April 1989, p. 69.
Review of What's Really Inside the Commodore 64? by Milton Bathurst (DataCap, 1984). Disassembly of ROM. - Capitals: A Quiz-Based Program
- The Transactor, Volume 9, No. 5, June 1989, p. 46.
A simple "state capitals" drill program serves as an illustration of implementing linked lists in BASIC. - Colour Coordination
- The Transactor, Volume 9, No. 6, August 1989, p. 76.
Describes how to select colours that will always allow text to be readable by making sure that the foreground luminance level is different from that of the background. - Machine Language: The Curious BIT Command
- Compute!'s Gazette Special Section, Volume 12, No. 10, October 1990, p. 16.
Explains some uses for the 6502's BIT opcode. Includes source code. - Machine Language: More BIT Analysis
- Compute!'s Gazette Special Section, Volume 12, No. 11, November 1990, p. 20.
Accompanying program uses BIT masks to determine the operand length of 6502 opcodes. Includes source code. - Machine Language: The 128 MLM: BANK on It.
- Compute!'s Gazette Special Section, Volume 12, No. 12, December 1990, p. 18.
Tutorial on the 128's memory architecture and bank-switching. Includes source code examples. - Machine Language: Scheduling Multiple Tasks
- Compute!'s Gazette Special Section, Volume 13, No. 2, February 1991, p. 22.
Implementing a jiffy-clock scheduler to cause periodic events to fire at different rates. Includes source code. - Machine Language: Everything Means Less than Zero
- Compute!'s Gazette Special Section, Volume 13, No. 3, March 1991, p. 22.
The interaction of ADC, SBC, and the carry flag. Includes source code. - Machine Language: Spring the Trap After the Quarry Runs
- Compute!'s Gazette Special Section, Volume 13, No. 4, April 1991, p. 20.
How to set up a post-interrupt routine. Includes source code. - Machine Language: A Day at the Races
- Compute!'s Gazette Special Section, Volume 13, No. 5, May 1991, p. 18.
A simple horse race simulation in machine language. Includes source code. - Machine Language: Putting It All Together
- Compute!'s Gazette Special Section, Volume 13, No. 6, June 1991, p. 21.
Butterfield writes about the benefits of developing with a good symbolic assembler. - Machine Language: Calculating Hi-Res Screens: It All Adds Up
- Compute!'s Gazette Special Section, Volume 13, No. 7, July 1991, p. 20.
Converting pixel coordinates to memory locations in machine language. Includes source code. - Machine Language: Back to Basics
- Compute!'s Gazette Special Section, Volume 13, No. 8, August 1991, p. 20.
Walks through entering a simple program into a machine-language monitor. Includes source code. - Machine Language: Give It a Nudge with Binary Fractions
- Compute!'s Gazette Special Section, Volume 13, No. 9, September 1991, p. 20.
Incrementing values by fractional amounts in binary. Includes source code. - Machine Language: Six Commands are Keys to Input/Output
- Compute!'s Gazette Special Section, Volume 13, No. 10, October 1991, p. 19.
Explanations of Kernal routines CHROUT, GETIN, STOP, CHKIN, CHKOUT, and CLRCHN. Includes a short machine-language routine with source code that reads keys and transforms their values before outputting to screen. - Machine Language: Fixed Point Numbers
- Compute!'s Gazette Special Section, Volume 13, No. 11, November 1991, p. 19.
Topics: fixed-point numbers in machine language and binary-to-decimal conversions. - Machine Language: Programs, Constants, Variables
- Compute!'s Gazette Special Section, Volume 13, No. 12, December 1991, p. 19.
Thoughts on machine-language program design, with a simple example program that echos user input. Includes source code. - Machine Language: Smooth Operators
- Compute!'s Gazette Special Section, Volume 14, No. 1, January 1992, p. 19.
Explanation of the 6502 opcodes AND, ORA, and EOR, illustrated with a simple BASIC screen demo incorporating self-modifying code. Includes source code. - Machine Language: Bagels: A Machine Language Game
- Compute!'s Gazette Special Section, February/March 1992 – Volume 14, No. 2, p. 18.
Implementation of the classic Bagels guessing game. Includes source code. - Machine Language: Putting a Hex on Your Output
- Compute!'s Gazette Special Section, Volume 14, No. 3, April 1992, p. 18.
Printing hexadecimal values in machine language. Includes source code. - Machine Language: Rotating Buffers
- Compute!'s Gazette Special Section, Volume 14, No. 5, June 1992, p. 20.
Short machine-language routine reads disk file into a three-byte rotating buffer, looking for the end-of-program BASIC marker. Includes source code. - Machine Language: Simple Stack Usage
- Compute!'s Gazette Special Section, Volume 14, No. 6, July 1992, p. 20.
Using the 6502 stack opcodes PHA, PLA, PHP, and PLP. Includes source code. - Machine Language: Screen Effects
- Compute!'s Gazette Special Section, Volume 14, No. 7, August 1992, p. 20.
Walks through the development of short machine-language route that writes to screen RAM timed to match the screen retrace. Includes source code. - Machine Language: Smooth Scrolling
- Compute!'s Gazette Special Section, Volume 14, No. 8, September 1992, p. 20.
Switching between buffered screens to achieve fine-scrolling characters in machine language. Includes source code. - Machine Language: Directories
- Compute!'s Gazette Special Section, Volume 14, No. 9, October 1992, p. 20.
Technique for reading a disk directory in machine language. Includes source code. - Machine Language: Coding Choices
- Compute!'s Gazette Special Section, Volume 14, No. 10, November 1992, p. 18.
A discussion of speed and memory tradeoffs, examining three approaches to a modulo calculation. - Machine Language: Animated Characters
- Compute!'s Gazette Special Section, Volume 14, No. 11, December 1992, p. 19.
Short machine-language program creates a simple animation by manipulating the pixels of a user-defined character. - Machine Language: A Simple File Counter
- Compute!'s Gazette Special Section, Volume 15, No. 1, January 1993, p. 18.
Inner workings of a short machine-language program to determine the size of a file on disk. - Machine Language: Fast Interrupts
- Compute!'s Gazette Special Section, Volume 15, No. 2, February 1993, p. 18.
Using interrupt routines to pass signals to background programs. Includes source code. - Machine Language: Strange Opcodes
- Compute!'s Gazette Special Section, Volume 15, No. 3, March 1993, p. 18.
A sample program using the unofficial opcode LSE. Includes source code. - Machine Language: Encryption
- Compute!'s Gazette Special Section, Volume 15, No. 4, April 1993, p. 18.
A Vigenère cipher program written in machine language. Includes source code. - Machine Language: Arrays
- Compute!'s Gazette Special Section, Volume 15, No. 5, May 1993, p. 18.
Working with BASIC's array pointers in machine language. Includes source code. - Your Own Database
- Compute!'s Gazette Special Section, Volume 15, No. 5, May 1993, p. 36.
A simple database program written in BASIC, with an explanation of its structure and advice for modifying it. - Machine Language: Screen Screamer
- Compute!'s Gazette Special Section, Volume 15, No. 6, June 1993, p. 18.
Butterfield compares two implementations of a machine-language program that fills the screen with characters. Includes source code. - Machine Language: File End Check
- Compute!'s Gazette Special Section, Volume 15, No. 7, July 1993, p. 18.
Testing for end-of-file in machine language. Includes source code. - Machine Language: File-End Trimmer
- Compute!'s Gazette Special Section, Volume 15, No. 8, August 1993, p. 18.
Trimming garbage after an end-of-file marker in machine language. Includes source code. - Machine Language: Boot Basics
- Compute!'s Gazette Special Section, Volume 15, No. 9, September 1993, p. 18.
A simple technique for loading and executing a machine language program from a BASIC boot program. - Machine Language: Assembler Tricks
- Compute!'s Gazette Special Section, Volume 15, No. 10, October 1993, p. 18.
Uses of the asterisk (*) as the assembler's working address pointer. Includes source code examples. - Machine Language: Squiggle Array
- Compute!'s Gazette Special Section, Volume 15, No. 11, November 1993, p. 18.
A simple PETSCII animation program illustrates array-handling in machine language. Includes source code. - Machine Language: Branches and Jumps
- Compute!'s Gazette Special Section, Volume 15, No. 12, December 1993, p. 24.
Illustration of the opcodes that redirect program flow. Includes source code. - Machine Language: I/O Buffers
- Compute!'s Gazette Disk Edition, Issue No. 1, January 1994, p. 9.
Butterfield demonstrates I/O buffering with a simple disk copy program. Includes machine-language source code. - Machine Language: The List You See
- Compute!'s Gazette Disk Edition, Issue No. 2, February 1994, p. 10.
Comparing representations of machine-language programs: hex dumps, BASIC loaders, disassemblies, assembler listings, and macros. Includes machine-language source code. - Machine Language: BASIC Fun
- Compute!'s Gazette Disk Edition, Issue No. 3, March 1994, p. 10.
Changing BASIC keywords after copying BASIC ROM to RAM. - Machine Language: Where to Put It?
- Compute!'s Gazette Disk Edition, Issue No. 4, April 1994, p. 13.
On deciding where to place machine-language programs in RAM on various Commodore machines. Includes machine-language source code. - Machine Language: Text to SpeedScript
- Compute!'s Gazette Disk Edition, Issue No. 5, May 1994, p. 7.
Converting PETSCII sequential files to SpeedScript format in machine language. Includes source code. - Getting Started with Machine Language
- Compute!'s Gazette Disk Edition, Issue No. 6, June 1994, p. 25.
Topics: registers, some introductory opcodes, the Kernal, flow control, and integrating with BASIC. Includes source code. - Machine Language: Wordcount
- Compute!'s Gazette Disk Edition, Issue No. 6, June 1994, p. 7.
A simple word-count program in machine language. Includes source code. - Machine Language: Screen Zap
- Compute!'s Gazette Disk Edition, Issue No. 7, July 1994, p. 8.
Comparison between filling the text screen with BASIC vs. machine language. Includes source code. - Machine Language: Reading All Directories
- Compute!'s Gazette Disk Edition, Issue No. 8, August 1994, p. 12.
A sample program that reads disk directories illustrates techniques for writing relocatable machine-language programs. Includes source code. - Machine Language: Counting Up/Down
- Compute!'s Gazette Disk Edition, Issue No. 9, September 1994, p. 13.
Comparing looping methods and the relative merits of incrementing or decrementing index registers. Includes source code. - Machine Language: Strings and Structures
- Compute!'s Gazette Disk Edition, Issue No. 10, October 1994, p. 7.
Butterfield illustrates a structure (similar to 'struct' in C) in machine language composed of fixed-length records. Includes commented source code. - Machine Language: The MLM and Testing
- Compute!'s Gazette Disk Edition, Issue No. 11, November 1994, p. 8.
Topics: working with a machine-language monitor, setting break points, and testing short code snippets. Includes source code. - Machine Langauge: Simple String Sort
- Compute!'s Gazette Disk Edition, Issue No. 12, December 1994, p. 7.
A simple bubble sort of fixed-length strings in machine language. Source code for the 128 version is on disk. - Bad File Names
- Commodore World, Issue #4, 1994, p. 25.
Dealing with improperly closed files ("splat" files) and files saved with null file names ("comma" files). - Peripheral Vision: Understanding the Input/Output System
- Commodore World, Issue #5, 1994, p. 49.
Topics: the I/O stream; logical files; BASIC commands CMD, PRINT#, INPUT#, and GET#; methods for formatting data. - Machine Language: Flags and Branches
- Compute!'s Gazette Disk Edition, Issue No. 13, January 1995, p. 10.
The interaction of the 6502 processor flags with the branch instructions. Includes source code examples. - Machine Language: Lunar Landing
- Compute!'s Gazette Disk Edition, Issue No. 14, February 1995, p. 9.
Calculations in machine language for a "Lunar Lander" game. Includes source code on disk. - Software in Review: Karma
- Commodore World, Issue #9, August 1995, p. 30.
Review of Karma V1 by Brett J. Table from PHD Software Systems. - Peripheral Vision: Relative File Programming: Part Two
- Commodore World, Issue #9, August 1995, p. 48.
Detailed follow-up to Peripheral Vision (Commodore World, Issue #8, 1995, p. 47). Butterfield lays out 13 "rules" for working with RELative disk files. - A Machine Language Program for Beginners
- Commodore World, Issue #10, October 1995, p. 22.
A simple assembly-language program illustrates assembler conventions, Kernal routines CHRGET and CHROUT, loops, and branching. Includes source code. - Peripheral Vision: Serial Bus Basics
- Commodore World, Issue #10, October 1995, p. 48.
Serial I/O and the LISTEN-TALK-UNLISTEN cycle. - A Beginner's Guide to Machine Language Elements
- Commodore World, Issue #10, October 1995, p. 18.
Topics: registers, instruction set, and addressing mode. Includes a detailed 6502 instruction set reference chart. - Getting Ready for Machine Language
- Commodore World, Issue #10, October 1995, p. 16.
Things to think about before starting to learn machine language. Similar to Butterfield's introductory remarks in Machine Language for the Commodore 64, 128, and Other Commodore Computers, but much more detailed. - Peripheral Vision: Much Ado About NULL
- Commodore World, Issue #11, November 1995, p. 50.
The problem with reading NULL characters from a data stream and some advice for dealing with NULLs. Includes example program fragments in BASIC and machine language (with source code). - Assembly Line: First Registers, First Debugging
- Commodore World, Issue #11, November 1995, p. 52.
Topics: using a machine-language monitor to enter assembly-language instructions, running a program, testing, reading the status register, and debugging with BRK. Includes source code. - Peripheral Vision: The Direct Approach to Relatives
- Commodore World, Issue #8, 1995, p. 47.
Programming RELative files. Illustration of side-sectors with diagrams. - Peripheral Vision: Making it Neat: Simple Tips on Better-Looking Output
- Commodore World, Issue #6, 1995, p. 50.
Formatting strings and numbers for displaying on screen, printing, and writing to files. - Peripheral Vision: Disk Commands and the Wedge
- Commodore World, Issue #7, 1995, p. 50.
General information about how DOS wedges work and typical wedge commands, and their BASIC equivalents. - Mastering the DON'T-DO-IT Key
- Commodore World, Issue #12, January 1996, p. 37.
The behaviour of SHIFT-RETURN in the screen editor. - Assembly Line
- Commodore World, Issue #12, January 1996, p. 52.
Topics: registers, looping, Kernal CHROUT routine, and working with a machine-language monitor. Includes source code. (The magazine's article description is the result of a printing error. It appears to belong to Assembly Line: First Registers, First Debugging by Jim Butterfield, Commodore World, November 1995, p. 52.) - Peripheral Vision: Devices 0 and 3
- Commodore World, Issue #12, January 1996, p. 50.
Working with device 0 (the keyboard) and device 3 (the screen). (The magazine's article description is the result of a printing error. It appears to belong to Peripheral Vision: Much Ado About NULL by Jim Butterfield, Commodore World, November 1995, p. 50.) - Assembly Line: Organization and Input
- Commodore World, Issue #13, February 1996, p. 52.
Organizing a machine-language program into sections for code, constants, and variables. Includes a small routine for taking input from the keyboard with source code. - Peripheral Vision: The Cassette Connection
- Commodore World, Issue #13, February 1996, p. 50.
A deep look at the hardware of the cassette port edge connector. - Peripheral Vision: Joystick, Paddle, and Mouse
- Commodore World, Issue #14, April 1996, p. 48.
Reading input devices through the joystick ports in BASIC, with code examples. - Assembly Line: Input and a Little Arithmetic
- Commodore World, Issue #14, April 1996, p. 52.
Getting user input from the screen by calling the Kernal INPUT subroutine. Includes source code. - Assembly Line: Review and Practice
- Commodore World, Issue #15, May 1996, p. 40.
Topics: non-printing characters, control codes, and lookup tables. Includes source code. - Peripheral Vision: INPUT# Versus the String Thing
- Commodore World, Issue #15, May 1996, p. 42.
Explanation of String Thing, a routine for reading string data from a file that is more reliable than BASIC's INPUT# or GET#. - Peripheral Vision: The Peripheral Bus
- Commodore World, Issue #16, August 1996, p. 46.
Pin configurations of the IEEE-488 parallel bus and Commodore serial bus, and the interactions of the bus with BASIC I/O commands. - Assembly Line: Processor Status Register Flags
- Commodore World, Issue #16, August 1996, p. 44.
Topics: flags and branching, status register and the stack, and opcodes that affect flags. A short example program spools data from a disk file to a printer. Includes source code. - Assembly Line: Numbers and Arithmetic
- Commodore World, Issue #18, December 1996, p. 38.
Explores the relationships among PETSCII, binary, and BCD representations of digits when taking input or performing addition. Includes source code. - Peripheral Vision: Keyboard Tipping
- Commodore World, Issue #18, December 1996, p. 42.
A "listicle": 33 facts about the keyboard. Topics: hardware configuration, the keyboard matrix, using Kernal routines to read the keyboard, the keyboard buffer, interrupts, and cleaning.
Dr. Myles L. Skinner is the “curator” of the CBM 8-Bit Magazine Index.