C=Hacking
Welcome to the cutting edge.
C=Hacking is an electronic technical publication for the Commodore 8-bit
community, by the Commodore 8-bit community.
The subject matter covers a broad range
of topics including software, hardware, and other areas of interest
to technically-minded readers. Articles are contributed on a voluntary basis
and represent the cutting edge of Commodore 8-bit technical developments
from its most innovative and productive members.
For comments, or to contribute an article or article idea, either
email the editor, OR...
Visit the
Hacking Exchange
-- a C=Hacking message board.
Issues
Contents
- Issue #1
- "Beginning ML -- Part 1",
Craig Taylor. Documented and undocumented opcodes
- "Simple Hires Line Drawing Package for the C-128
80-Column Screen", Craig Bruce.
Routines to move pixel/draw line, activate graphics/clear screen,
restore old character set, desc. of some VDC registers, floating
point numbers.
- Issue #2
- "Beginning ML -- Part 2",
Craig Taylor. Indexed addressing.
- "An in-depth look at the 8563 Video Chip on the C= 128", Craig
Taylor. VDC schematics, register descriptions, programming
descriptions.
- "FILE SPLIITER", Mark Lawrence. Turbo Pascal code
to split a file.
- "Banking on GEOS", Robert Knop. Memory management,
programming under GEOS 128.
- "DYNAMIC MEMORY ALLOCATION FOR THE 128: Breaking the 64K
barrier",
Craig Bruce. Like the title says :). Includes memory management
kernal from ZED 128, sorting routine, etc.
- Issue #3
- "Learning ML -- Part 3", Craig Taylor. Kernal
routines, reading the directory, reading the error channel.
- "The Demo Corner: Missing Cycles", Pasi 'Albert'
Ojala. Raster timings, bad lines, sprites, demonstration program.
- "Kernal 64/128", Craig Taylor. Kernal routines,
listing and description.
- "64K VDC RAM and an alternate GEOS128 Background
Screen", Robert Knop. Programming GEOS128.
- "GeoPaint File Format", Bruce Vrieling.
Self explanatory.
- "Rasters: What They Are And How To Use Them",
Bruce Vrieling.
Interrupts, rasters, example code.
- "Bursting your 128: The Fastload Burst Command",
Craig Bruce. Programming 1571 and 1581 drives, bust code library.
- Issue #4
- "Learning ML -- Part 4", Craig Taylor. Development
of a Space Invaders
game (for the 64 and 128), part 1. Organization, custom characters
(VIC and VDC), title screen, debugging, memory considerations.
- "FLI -- More Color To The Screen", Pasi Ojala.
VIC info, and of
course an explanation of FLI graphics.
- "RS-232 Converter", Warren Tustin. Build a
userport->RS-232 converter.
- "Introduction to the VIC-II", Pasi Ojala.
VIC features and registers.
- "LITTLE RED READER: MS-DOS file reader for the 128 and
1571/81 drives",
Craig Bruce. Like the title says :) All source included/explained
or course.
- Issue #5
- "Mail Server Documentation", Craig Taylor. Outdated.
- "The Demo Corner: Stretching Sprites", Pasi Ojala.
How to trick VIC
into making some very large sprites.
- "Rob Hubbard's Music:
Disassembled, Commented, and Explained", Anthony
McSweeny. Yet another self-explanatory title.
- "ZPM3 and ZCCP
Enhancements for CP/M Plus from Simeon Cran", Randy
Winchester. Nice BIOS and BDOS enhancements for CP/M folks.
- "Multitasking on the C=128
Part 1", Craig Taylor. Description of
a multitasking kernal for the 128.
- "LITTLE READ READER: MS-DOS file reader/WRITER for the C128 and
1571/81", Craig Bruce.
Expanding the program with the capability to write files.
- Issue #6
- "The Demo Corner: DYCP -- Horizontal
Scrolling", Pasi Ojala of course :).
Making character go up and down as well as right to left in scrolls,
along with some awfully nice ASCII diagrams.
- "Opening the Borders", Pasi Ojala.
How to remove the borders: top,
bottom, and sides. Good stuff.
- "A Heavy-Duty Power Supply for the C=64", John
Andrews. Schematics
etc. for building -- guess what? :) -- a heavy duty power supply.
- "LZW Compression", Bill Lucier. Another title to make
my job easy.
Description+source.
- "THREE-KEY ROLLOVER for the C=128 and C=64",
Craig Bruce. Modifying
the KERNAL to use 3-key rollover (for you fast typists); gets
rid of port #1 extraneous input, too. Neat!
- Issue #7
- "Commodore Trivia Corner", Jim Brain.
- "Internet Resources for the Commodore 64/128",
Craig Taylor. Intro
to the internet; old ftp list.
- "Hiding Kilobytes", Marko Mäkelä
Memory management and different
memory configurations on the C=64, and lots of subtobics: hiding
underneath I/O, sitting in the stack, freezer cartridges.
- "FLD -- Scrolling the screen", Mark Klampar. Code
to demonstrate FLD.
- "Tech-tech -- More resolution to vertical shift",
Pasi Ojala. Cool.
- "ACE 128/64 PROGRAMMER'S REFERENCE GUIDE", Craig Bruce.
Title explains it all.
- Issue #8
- "Trivia Corner", Jim Brain.
- "RS232 Convertor", Walter Wickersham.
Another RS-232 interface for you to build.
- "Programming the Commodore RAM Expansion Units (REUs)",
Richard Hable. Description of REUs and how to program them.
- "A Different Perspective: Three Dimensional Graphics on
the C=64",
Stephen Judd, George Taylor. Rotations, projections, drawing
lines, etc. and an awful lot of text and crappily formatted code.
- "DESIGN OF A 'REAL' OPERATING SYSTEM FOR THE 128: PART
I", Craig Bruce.
Laying the groundwork for a new OS.
- Issue #9
- "Trivia Corner", Jim Brain.
- "A Different Perspective, Part II",
Stephen Judd, George Taylor.
Hidden faces, filled faces, mega-fast multiply, and some reasonably
formatted code.
- "2D Graphics Toolbox -- Circles",
Stephen Judd. An awfully neat
circle drawing algorithm, if I do say so myself. (See also issue 10
or 11).
- "AFLI-specs v1.0",
D'Arc/Topaz for Chief/Padua. Build upon FLI to
get even more colors.
- "Coding Tricks", compiled from comp.sys.cbm. Neat.
Includes stable raster code.
- "C.S. Bruce Interview", Craig Taylor. Neat.
- "Aligning 1541 Drives", Ward Shrake. Lots of good info.
- Issue #10
(Craig Taylor's last issue!)
- "Trivia", Jim Brain.
- "BFLI -- New Graphics Modes 2",
Pasi Ojala. Another FLI spinoff trick.
- "Making stable raster routines (C64 and VIC-20)",
Marko Mäkelä
How to make raster effects exactly where you want them (and how to
mask an NMI too! :)
- "A Different Perspective, part III",
by two old bums. Neat-o line
drawing enhancement, general polygon routine, general hidden face
removal, alternative filling method, and a misplaced and important
addendum to the Circle routine in issue 9.
- "Second SID Chip Installation",
Mark Dickenson. Add another SID to
your setup.
- "SOLVING LARGE SYSTEMS OF EQUATIONS ON A C64 WITHOUT
MEMORY", Alan
Jones. "Quartersolve" routine.
- "The World of IRC -- A new life for the C64/128",
Bill Lueck. What
every 64 user should know about IRC.
- "Swiftlink-232 Application Notes v1.0b",
CMD with source code by Craig
Bruce. All about Swiftlink and how to program it.
- "Design and implementation of a simple/efficient upload/download
protocol", Craig Bruce. Pretty neat protocol (FX) used by ACE.
- "DESIGN AND IMPLEMENTATION OF A 'REAL' OPERATING SYSTEM FOR
THE 128:
Part II", Craig Bruce. Further laying the groundwork for a
multitasking microkernal OS.
- Issue #11
- "Hi Tech Trickery: Sample Dither",
George Taylor. Dither a digital
sample to gain higher resolution.
- "Speed up RAMLink transfers with the Double-DMA
technique", Doug Cotton. Super-fast RAMlink programming.
- "The Graphics Toolbox: Ellipses",
Stephen L. Judd. Follow-up to
the circle drawing algorithm, logarithmic division.
- "Design and Implementation of an Advanced Text Editor",
Craig Bruce. Design and implementation of the very powerful ZED text
editor used with ACE.
- "Hacking Graphics: Let's get graphical",
Rick Mosdell. Hires file
formats: DOODLE!, Koala.
- "Errata",
fixes for 2nd SID chip and linear algebra article.
- Issue #12
- "RUN64: Moving to 64 Mode",
Doug Cotton. How to switch from 128 mode
to 64 mode (and expect it to work on just about any machine).
- "Polygonamy: A Study in Three Dimensions",
Stephen L. Judd. High
speed 3D virtual worlds for the 64. (Binary up above).
- "Underneath the hood of the SuperCPU",
Jim Brain. Description
and details of the SuperCPU.
- "Talking to TED: The MOS 7360/8360 Display IC's",
Levente Harsfalvi.
Programming TED on the +4 and C-16 (reg. desc., etc.)
- Issue #13
- "HEAVY MATH -- Part 0: History, Arithemtic, and Simple
Algorithms",
Alan Jones. History, introduction, etc.
- "OS/A65 -- A Multitasking/Multithreading
Operating System for 6502
Computers", Andre Fachat. Design and implementation.
- "Using UQWK with QWKRR128",
Gaelyne Moranec. Self-explanatory.
- "Brad Templeton: The Programmer's Friend",
by Jim Lawless. An
interview with Brad Templeton.
- "Dim4: A Mind-Expanding Experience",
Stephen L. Judd. 4D graphics
from a 4k contest. See above for source (all 115k of it) and
executables (all 4k of it :).
- "Exploiting the 65C816S CPU",
Jim Brain. Description of chip
design, regs, addressing modes, etc. and some SuperCPU
programming info.
- "Using HTML on the Commodore, Part 1",
Jim Brain. Introduction to
HTML and description of an HTML viewer for the 64.
- "Creating 3D Dungeon Crawls",
Todd Elliott. How to do 3D dungeons
a-la Bard's Tale.
- "The Error Channel",
updates to Double-DMA article, TED programming,
extra Polygonamy info.
- Issue #14
- "The Commodore Telnet BBS", Bo Zimmerman. Make
your C= telnettable.
- "Menu Toolbox III", Jeff Jones. User interface
subroutines: menus, disk io, etc.
- "The CMD Nirvana: The Guts and Glory", Todd Elliott.
Todd's souped-up 128D.
- "Jim Butterfield: The Commodore Guru - An Interview",
Jim Lawless.
- "Hi Tech Trickery", Alan Jones. More descriptions
of Linear Programming.
- "Hacking BASICs", Richard T. Cunningham. Detecting
drives and selective goto in BASIC.
- "Twiddling the Bits", Ward Shrake. VIC-20
cartridge exploration and archiving.
- Issue #15
(Jim Brain's last issue!)
- "Click to Mode Switch: The 40-80 Mouse switch",
Michael Nausch. Hardware mouse mod, mollifying monitor madness.
- "The Canonical List of Commodore Produced Products",
Jim Brain. v2.0
- "Scott Ballantyne : Blazing into Forth",
Jim Lawless. Interview with author of Blazin' FORTH.
- "Technical Information on the VIC-20", Ward Shrake.
Pinouts and technical notes.
- "Hacking BASICs", Dick Cunningham. BASIC tips
on 64/128 compatibility.
- "Twiddling the Bits", Frank Kontros. Update
of the DataPump UART project.
- Issue #16
(S. Judd's 1st issue)
- "PAL VIC20 goes NTSC", by Timo Raita and
Pasi 'Albert' Ojala. How to turn your
PAL VIC20 into an NTSC VIC20.
- "Starfields", S. Judd. Making simple hires
starfields.
- "Milestones of C64 Data Compression", by Pontus Berg.
A short history of data compression on the 64.
- "Compression Basics", by Pasi Ojala.
Part one of a two-part article on data compression, giving an
introduction to and overview of data compression and related
issues.
- "3D for the Masses: Cool World and the 3D Library",
S. Judd. The mother of all 3D articles.
- Issue #17
- "SuperCPU software repair", by S. Judd.
SuperCPU-fixing.
- "Pucrunch, part 2", by Pasi Ojala.
Continuation of article in issue 16.
Discussion of pucrunch compression and decompression methods and code.
- "VIC20 Disassembly Project", by Richard Cini.
First part of a complete ROM disassembly.
- "NTSC/PAL-fixing, part 1", Russel Reed, Robin
Harbron, S. Judd. Robin and Steve fix a demo.
- "The Herd Mentality", Bil Herd. Lusty stories
regaling the design and development of the C128.
- Files:
- Issue #18
- "Data Structures 101", by Pasi Ojala and S. Judd.
Linked lists and a nifty insertion sort.
- "Counting Sort", Pasi Ojala. Discussion of
the counting sort!
- "VIC20 Disassembly Project", by Richard Cini.
Part II: Interrupts.
- "GeoWrite128 disassembly notes", Todd Elliot.
Discussion of GEOS, Todd's patches to geoWrite128 to work with
more modern setups, and list of major geoWrite routines and
entry points.
- "NTSC/PAL-fixing, part 2: FLI and IFLI", Russel Reed,
Robin Harbron, S. Judd. Interactive tutorial on fixing FLI and IFLI
graphics.
- "Obj3d: The 3D object library", S. Judd.
Discussion of obj3d routines and example programs.
- Files:
- Issue #19
- "Burst fastloader for the C64", by Pasi Ojala.
Hardware modification and code for burst-loading on a 64.
- "8000's User Port and Centronics Printers",
by Ken Ross. The PET 8000's user port, and how to use it
to drive printers.
- "Sex, lies, and microkernal-based 65816 native OSes,
part 1", by Jolse Maginnis. OS design in general
and JOS design in detail.
- "VIC20 Disassembly Project", by Richard Cini.
Part III: Interrupts, continued (UDTIM, SCNKEY, etc.)
- "Decoding JPEGs", by S. Judd. Description of
JPEG decoding process, especially IDCT.
- "Bringing 'true-color' images to the 64",
by Adrian Gonzalez. Floyd-Steinberg dithering and the IFLI
renderer used in JPZ.
- Issue #20
- "Super/Turbo CPU VDC Hack", Henry Sopko.
Hardware mod to access the VDC using a SuperCPU64 or TurboCPU.
- "16K Memory Expansion for the VIC-20", Per
Olofsson. Hardware mod to add memory to the VIC-20.
- "Quick Quadratic Splines", S. Judd. Algorithms
to add curves and animations to programs.
- "VIC-20 Kernal ROM Disassembly Project", Richard
Cini. Part IV: device I/O routines.
- "MODs and Digital Mixing", Jolse Maginnis.
How to play MODs on a 64.
- "The C64 Digi", Robin Harbron, Levente
Hársfalvi,
Stephen Judd. Playing digis on the 64: theory, SID internals,
$d418 digis, and Pulse Width Modulation.
- Files:
- ADDENDUM: After releasing the issue, Levente came
up with a brilliant idea for playing high-resolution digis on a stock
machine, using PWM.
- Issue #21
- "Pulse Width Modulation, continued", Various.
Tying up some loose ends.
- "Introducing Full-Screen IFLI Mode With a SuperCPU",
Todd Elliot. Making those first three columns with FLI available.
- "VIC-20 Kernal Disassembly Project, Part IV", Richard
Cini. Making sense out of the tape drive code.
- "The Art of the Minigame", various. Six articles
discussing and disassembling some nifty minigames:
- Codebreaker, by David Holz
- TinyPlay, by S. Judd
- MagerTris, by Per Olofsson
- Compressing Tiny Programs, by S. Judd
- Tinyrinth, by Mark Seelye
- Tetrattack!, by S. Judd
Last Updated: 2/05/02
Stephen L. Judd
sjudd@ffd2.com --