Compute’s Machine Language Routines for the Commodore 64 and 128 routine index (WIP)

This book has been a nice resource for learning 6502 assembly. I’ve spend a lot of time just scrolling through the document looking for things I need since the PDF isn’t searchable and the full-text version is somewhat unwieldy. I took a shot at making a quick layout of the index here. Hope this might help someone else too.

ADDBYT
Name: Add two bytes and store the result
Page: 81
ADDFP
Name: Add two floating-point numbers using the ROM routine
Page: 83
ADDINT
Name: Add to 2-byte values and store the result in memory
Page: 85
ALARM2
Name: Set up a time-of-day (TOD) alarm
Page: 87
ALPNTR
Name: Alphabetize by swapping pointers
Page: 91
ALSWAP
Name: Alphabetize a list by swapping string that are out of order
Page: 98
ANIMAT
Name: Animation: alternating character sets
Page: 103
B2SNIN
Name: Convert a signed byte value to a signed integer value
Page: 105
B2UNIN
Name: Convert a byte value (8 bits) to an unsigned integer value (16 bits)
Page 107
BCD2AX
Name: Convert a binary-coded decimal value to ASCII characters
Page: 108
BCD2BY
Name: Convert a bindary-coded decimal (BCD) to a byte value
Page: 110
BCKCOL
Name: Set the text screen background color
Page: 111
BEEPER
Name: Emit a beep sound
Page 113
BELLRG
Name: Emit a bell sound
BIGMAP
Name: Display in a virtual window portions of a much larger map
BITMAP
Name: Enable/Disable the hi-res screen (bitmap mode)
BORCOL
Name: Set the text screen border color
BUFCLR
Name: Clear the keyboard buffer
BYT1DL
Name: Cause a one-byte delay
BYT2DL
Name: Cause a two-byte delay
BYTASC
Name: Print a one-byte integer
CAS2IN
Name: Convert an ASCII number to a binary integer
CASSCR
Name: Convert Commodore ASCII characters into screen codes
CASTAS
Name: Convert Commodore ASCII characters to true ASCII
CB2ASC
Name: Convert a byte value to an ASCII number by using subtraction
CB2SCD
Name: Convert a bute value (0-99) to a BCD number
CB2HEX
Name: Convert a bute value to two hexadecimal digits (ASCII)
CFP2I
Name: See CI2FP
CHARX4
Name: Print semilarge (4x4) characters
CHARX8
Name: Print large (8x8) characters
CHK144
Name: Check peripheral status via location 144
CHOUTP
Name: Change the target screen memory address for CHROUT
CHRDEF
Name:Character redefinition
CHRGTR
Name: Get a character within an ASCII range
CHRGTS
Name: Get a specific character
CHRKER
Name: Get a character
CI2FP/CFP2I
Name: Convert signed integer values to floating point and vice versa
CI2HEX
Name: Convert a two-byte integer value to four hexadecimal (ASCII) digits
CLOSFL
Name: Close a file and restore default devices
CLRCHR
Name: Clear the screen with CHR$(147)
CLRFIL
Name: Clear the screen with a fill routine
CLRHRF
Name: Clear a hi-res screen using a fill method
CLRHRS
Name: Clear a hi-res screen using self-modifying code
CLRROM
Name: Clear the screen with a ROM routine
CNUMOT
Name: Print a two-byte integer value
CNVBFP
Name: Convert a two-byte value to a floating-point number, using a ROM routine
CNVERT
Name: Character conversion using a lookup table
COLDST
Name: Cold start
COLFIL
Name: Fill a text screen color memory
CONCAT
Name: Concatenate two files
COPYFL
Name: Copy a file to the same disk
CUST80 
Name:(128 only) Custom characters for the 80-column screen
DATAMK
Name: Create DATA statements from number in memroy
DERRCK
Name: Check the disk status and print a message
DIRBYT
Name: Read the directory as a stream of bytes
DIRPRG
Name: Load the directory as a program file
DISRSR
Name: Disable RUN/STOP?RESTORE
DISTOP
Name: Disable the STOP key bu changing the STOP vector
DIVBYT
Name: Divide one by value by another and store the result (and remainder) in memory
DIVFP
Name: Divide one floating-point number by another
DIVINT
Name: Divide one integer value into another
ERRRDT
Name: Change the ERROR vector
EXPLOD
Name: Produce an explosion sound
FACPRT
Name: Print the value in floating-point accumulator 1 to a specified number of decimal places
FETCH
Name: (128 only) Retrieve from expansion RAM memory
FILMEM
Name: General fill memory
FINDCR
Name: Find the cursor location
FINDME
Name: Find the program counter (from a subroutine)
FINDPC
Name: Find the program counter (in-line code)
FIREBT
Name: Read a joystick fire button
FORMAT
Name: Format a disk
FRESEC
Name: Print the number of free sectors remaining on the disk
GOTOBL
Name: Exit machine language and GOTO a BASIC line number
GOTOCP
Name: GOTO from a character input using sequential compares and branches
GOTOST
Name: GOTO from a character input and execute using the stack
HIDBIT
Name: Hide a two-byte instruction with the BIT instruction
HRCOLF
Name: Fill high-resolution color memory
HRPOLR
Name: Set or clear a point on the hi-res screen
INC2
Name: Increment a two-bute pointer
INITLZ
Name: Initialize a disk
INTDEL
Name: Produce a delay using an IRQ interrupt counter
INTMUS
Name: Interrupt-driven music
IRQINT
Name: Set up an IRQ interrupt routine
JIFDEL
Name: Jiffy clock delay
JIFFRD
Name: Read the jiffy clock
JIFPRT
Name: Print the jiffy clock reading
JIFSET
Name: Set the jiffy clock
JOY2SE
Name: Read both joysticks separately
JOY2TO
Name: Read the two jousticks together as one stick
JOYSTK
Name: Read a joystick
KEYDEL
Name: Wait for a keypress
LOADAB
Name: Load a program (ML or BASIC) to the location from which it was saved
LOADBS
Name: Load a BASIC program into the current BASIC text area
LOADRL
Name: Load a BASIC or ML program at a designated memory address
MATGET
Name: Geat a character using the keyboard matrix
MBU64 (64 only) Move BASIC text area above an ML program on the 64
MBU128
Name: (128 only) Move BASIC text area above an ML program on the 128
MELODY
Name: Tune player
MIXLOW
Name: Convert mixed-case characters to all lowercase
MIXUPP
Name: Convert mixed-case characters to all uppercase
MOVEDN
Name: Move a block of data downward in memory
MOVSAB
Name: Move sprite to an absolute (predetermined) screen location
MTCCOL
Name: Set the colors for multicolor mode
MTCMOD
Name: Turn multicolor mode on or off
MULAD1
Name: Multiply two numbers with successive adds
MULADD2
Name: Multiply two numbers with repeated addition (optimized version)
MULFP
Name: Multiply two floating-point numbers
MULSHF
Name: Multiply to unsiged integer values using bit shifts
MVU64
Name: (64 only) Move a block of data upward in memory
MVU128
Name: (128 only) Move a block of of data upward in memory
NMIINT
Name: Set up an NMI interrupt routine
NOTETB
Name: Create a table of standard frequencies (eight octaves/12 notes each)
NUMOUT
Name: Print two-byte integer values
OPENFL
Name: Open a sequential or program file
OPENPR
Name: Open a printer channel
PAINT
Name: Fill an irregular hi-res enclosed outline with a solid color
PASFMV
Name: (64 only) Pass values from BASIC to ML using the FRMEVL routine
PASMEM
Name: Pass values from BASIC to ML by POKEing to free memory
PASREG
Name: Pass values to an ML program directly through the registers
PASUSR
Name: Pass values from BASIC to ML via the USR function
PLOTCR
Name: Set the cursor location
POKRUR/PEKRUR
Name: (64 only) POKE RAM under ROM / PEEK RAM under ROM
POKSCR
Name: POKE to screen and color memory
PRTCHR
Name: Print a character on the screen
PRTOUT
Name: Send characters to the printer
PRTSTR
Name: Send a string to the printer
PTABAD
Name: Print a string from a lookup table of addresses
PTABCT
Name: Print a string from a table by using a counting method
RAS64
Name: (64 only) Set up a raster interrupt
RAS128
Name (128 only) Set up a rater interrupt
RD2BYT 
Name: Generate a random two-byte integer value using SID voice 3
RDBUFF
Name: Open a disk channel, read a sector, copy the disk bugger to memory
RDBYRG
Name: Generate a random-one-byte integer in range
RDSTAT
Name: Check the I/O status by using the Kernal READST routine
RE80CO/WR80CO
Name: (128 only) Read and write to the 80-column video chip
READBF
Name: Read butes from a sequential or program file into a bugger
READFL
Name: Read characters from a sequential or program file
RENAME
Name: Rename a disk file
RENUM1 
Name: Simple renumber routine (line numbers only)
RND1VL
Name: Generate a random floating-point number using BASIC's RND(1) function
RNDBYT Generate a random one-byte integer value (0-255) using SID voice 3
RPTKEY
Name: Set a repeat key flag
RSREGM
Name: Restore registers from memory
RSTVEC
Name: Restore a Kernal indirect vectors
SAVEBS
Name: Save a BASIC program
SAVEML
Name: Save a ML program
SCRCAS
Name: Convert screen codes to Commodore ASCII characters
SCRDN1
Name: (64 only) Scroll down a line with the INST character
SCRDN2 (64 only) Scroll the screen down a line with the ROM insert routine
SCRDN3
Name: Scroll down a line of the screen by copying screen and color memory
SCRTCH
Name: Scratch (erase) a disk file
SHFCHK
Name: Check the status of the shift keys
SIDCLR
Name: Clear the SID chip
SIDVOL
Name: Set the SID volume register
SIRENS
Name: Produce a siren sound
SPRINT
Name: Sprite interrupt routine - automatic sprite movement
SQROOT
Name: Calculate the integer square root of an integer value
SCRBIN
Name: Binary search of a sorted list
SRCLIN
Name: Linear search for a string or other value
STASH
Name: (128 only) Store system memory to expansion RAM
STP64 (64 only) Print a string with STROUT
STP123 (128 only) Print a string with PRIMM
STPFLG
Name: Check for STOP key by using the Kernal STOP flag
STPKER
Name: Check for the STOP key using the Kernal STOP routine
STRCPT
Name: Print a string with a custom printeing routine
STRLEN
Name: Determine string length
SUBBYT
Name: Subtract one byte value from another
SUBINT
Name: Subtract one 2-byte integer value from another
SVREGM
Name: Save processor registers in memory
SVREGS
Name: Save and restore registers on the stack within a routine (in-line code)
SWAPIT
Name: Memory swap
SWITCH
Name: Switch uppercase to lowercase and vice versa
TASCAS
Name: Convert characters from true ASCII to Commodore ASCII
TOD1DL
Name: Time-of-day (TOD) clock 1 delay
TOD1RD
Name: Read a time-of-day (TOD) clock
TOD2PR
Name: Print the time-of-day (TOD) time
TOD2ST/TOD1ST
Name: Set a time-of-day (TOD) clock
TXTCCH
Name: Set the text color using CHR$
TXTCIN
Name: Input a line of text using a custom routine
TXTCOL
Name: Set the text color
TXTINP
Name: Input a line of text using a custom routine
TXTCOL
Name: Set the text color
TXTINP
Name: Input a line of text with the ROM routine INLIN
VALIDT
Name: Validate a disk
VDCCOL
Name: (128 only) Write to 80-column video attribute memory
VERIFY
Name: Verify a disk file
VICADR
Name Change the text screen location
VIDBNK
Name: Change the video blank
WARMST
Name: Warm start
WINDOW
Name: (128 only) Set window boundaries with escape codes
WR80CO
Name: See RE80CO
WRBUFF
Name: Open a disk bugger and write a sector to disk
WRITBF
Name: Write a bugger to a sequential or program file
WRITFL
Name: Send characters to a sequential or program file
XBCCOL
Name: Set colors for extended background color mode
XBCMOD
Name: Turn extended background color mode on or off

Leave a Reply

Your email address will not be published. Required fields are marked *