The Motorola Users Group Library

Around 1974, Motorola started collecting programs that were of general interest to everyone. The programs that were submitted are listed below. While some of them are not very useful, they do provide a good view into programming for the MC6800 Microcomputer.

The architecture has not changed much over the years, so most of these routines can be assembled into either 6800, 6801, 6809, or 68HC11 code. Some changes may have to be done to to the programs to make them compatible with the lower performance 6805 members.

Note that, some of the programs were assembled with a Motorola development system in mind, which included Macro Assemblers, and such. These programs will have to be tailored to your specific needs and assembler.

Also note, that the code that I present here, although directly from the Mototola User's Group Library, is customized to assemble properly in the assembler that I wrote, written in SH/GAWK and run under Cygwin64. The line numbers may not match, but the code will.

USERS GROUP LIBRARY

The table on the right is an index of the Motorola Users Group Library. Each entry contains a brief description of the entry. Note that there are some cases where the source code is not available. Specifically entry 19 and 69. But these are cross compilers for some obsolete computer systems.

Group Entry# Description
MATH ROUTINES
Number Base,
Code Conversion
001 EXBUG ROUTINE, CBCDHX
Download TAR.GZ, Download RTF
Convert a hexadecimal character to a binary number.
I/O DRIVERS & ROUTINES
Keyboard
002 EXBUG ROUTINE, INCHNP
Download TAR.GZ, Download RTF
Input character with no parity.
I/O DRIVERS & ROUTINES
Keyboard
003 EXBUG ROUTINE, INCH
Download TAR.GZ, Download RTF
Input one character.
I/O DRIVERS & ROUTINES
Printer Drivers
004 EXBUG ROUTINE, OUTCH
Download TAR.GZ, Download RTF
Output one character.
I/O DRIVERS & ROUTINES
Printer Drivers
005 EXBUG ROUTINE, PDATA
Print CR/LF/DATA string.
MATH ROUTINES
Number Base,
Code Conversion
006 BINARY TO DECMAL ASCII CONVERSION
Converts a 16-bit binary number into five ASCII decimal characters.
MATH ROUTINES
Integer
007 HIGH-SPEED DOUBLE PRECISION MULTIPLY
Multiplies two 16-bit unsigned binary numbers resulting in a 32-bit product.
MATH ROUTINES
Integer
008 REENTRANT 16-BIT DIVIDE
Divides two 16-bit unsigned numbers giving a 16-bit results.
MATH ROUTINES
Integer
009 REENTRANT DOUBLE PRECISION MULTIPLY
A reentrant routine that multiplies two 16-bit unsigned binary numbers
to produce a 32-bit product.
I/O DRIVERS & ROUTINES
Printer Drivers
010 M6800 RESIDENT I/O PACKAGE - EXBUG VERSION (MEXRIO)
I/O routines for use with the Resident Editor and Resident Assembler
utilizing EXBUG 1.1 OR 1.2.
I/O DRIVERS & ROUTINES
Punch Drivers
011 M6800 RESIDENT I/O PACKAGE-MIKBUG VERSION (MKRIO)
I/O routines for use with the Resident Editor and Resident Assembler
utilizing MIKBUG Revision 9.
UTILITY ROUTINES
Test Program
012 MPU INSTRUCTION TEST To insure the operation of the instruction set.
UTILITY ROUTINES
Test Program
013 MEMORY TEST
To test memory. To verify that a particular data pattern can be
written to a specific location and read back error free.
UTILITY ROUTINES
Test Program
014 PIA TEST
Test program to functionally verify the EXORciser I/O Module (or PIAs).
MATH ROUTINES
Floating Point
015 32-BIT REENTRANT FLOATING POINT MULTIPLY
Takes two 32-bit floating point numbers and multiplies them. No
normalization is attempted. Exponent overflow is not detected.
I/O DRIVERS & ROUTINES
Card and Tape Reader
016 HIGH DENSITY TAPE LOAD
Loads a properly formatted binary object paper tape into memory from a teletype.
I/O DRIVERS & ROUTINES
Card and Tape Reader
017 HIGH DENSITY TAPE PUNCH
Punches a properly formatted binary paper tape from memory for loading
with the biload program.
I/O DRIVERS & ROUTINES
Printer Drivers
018 LPOUT
ACIA line printer driver.
SYSTEM ROUTINES
Cross-Computer
019 INTERDATA CROSS ASSEMBLER - Source Code Not Available
A cross assembler program that is written for an Interdata computer that
will assemble source programs written for the M6800 Microprocessor.
GAMES & DEMO
Games
020 TIC-TAC-TOE
Allows an operator to play the game of TIC-TAC-TOE at the EXORciser
console device.
UTILITY ROUTINES
PROM/EPROM Programmer
021 "PUNCH" FOR DATA I/O PROM PROGRAMMER
Punches a paper tape from any starting address in memory to any finish address.
MATH ROUTINES
BCD Routines
022 BCD TO BINARY CONVERSION
Convert four BCD digits to their binary equivalent.
MATH ROUTINES
Integer
023 SQUARE ROOT OF A 16-BIT NUMBER
Program finds square root of a 16-bit number.
MATH ROUTINES
Number Base,
Code Conversion
024 UPC (UNIVERSAL PRODUCT CODE) LABEL CONVERSION
Decodes the Universal Product Code symbol found on grocery store labels
when scanned with an eptical wand.
MATH ROUTINES
Number Base,
Code Conversion
025 ASCH DATA TO MORSE CODE CONVERSION
Take ASCH data from the keyborad of the EXORciser and convert it to Morse code.
MATH ROUTINES
Floating Point
026 32-BIT FLOATING POINT PACKAGE
Subroutines for adding, subtracting, multiplying, and dividing floating
point numbers of a specified format.
MATH ROUTINES
Integer
027 RANDOM NUMBER GENERATOR
Generates a (pseudo) random sequence of 16-bit binary numbers N(n) using
a linear congruential sequence.
UTILITY ROUTINES
PROM/EPROM Programmer
028 "PUNCH" FOR PROLOG SERIES 90 PROM PROGRAMMER
To generate a formatted tape for the PROLOG series 90 PROM programmer for
programming type 2708 Erasable PROMS.
SYSTEM ROUTINES
Monitors, Operating Systems
029 M6800 REAL-TIME OPERATING SYSTEM
A real-time operating system for the Motorola M6800 Microprocessor.
GAMES & DEMO
Games
030 BLACKJACK
EXORciser deals Blackjack.
MATH ROUTINES
BCD Routines
031 BINARY TO BCD CONVERSION
Converts a 16-bit binary number (unsigned) to packed BCD 5-digit (3 byte)
MATH ROUTINES
Floating Point
032 DECIMAL ARITHMETIC PACKAGE
This is a group of eight multiple-precision BCD arithmetic subroutines.
These subroutines are integer and floating point addition, subtraction,
multiplication, and division. Also included is a subroutine to move
the numbers to and from the scratchpad (operations: A+C, A-C, A*B, and, C/A).
UTILITY ROUTINES
General
033 DELAY SUBROUTINE
To generate a delay from 1-> 65,536 milliseconds. To test a PIA bit
(for either a one or zero) until either the test is met or a time-out occurs.
UTILITY ROUTINES
General
034 OFFSET LOAD MEMORY FROM TAPE
Load memory from paper tape reader (ASR33) at a location in memory at
a constant offset location from that specified on the tape.
MATH ROUTINES
Number Base, Code Conversion
035 BNASC
This subroutine converts an unsigned 16-bit number from binary to ASCH
of any base between 2 and 16.
UTILITY ROUTINES
General
036 CHRISTMAS CARD LIST
Prints address labels. Provision for index, loading, verification, and
deletion of individual labels.

037 REENTRANT ASCII TO BAUDOT CONVERTER SUBROUTINE (ASTOBAUD)
Converts ASC11 characters to their BAUDOT equivalents including shift codes.
MATH ROUTINES
Number Base, Code Conversion
038 TEXT STRING (TXTSTG)
A test string is input via keyboard followed by EOT (CTRL/D) delimiter.
The text string is then printed repeatedly. Exit is by CPU Reset. Useful
as I/O checkout, general system functioning, and effective for demonstrations.
SYSTEM ROUTINES
Debug
039 DUMP/HEX/DISPLAY
Dumps a block of memory in hex and display mode. Can be called as a
subroutine or driven from the control console.
GAMES & DEMO
Games
040 HANGMAN
This is a game in which the computer selects a word from a programmed
list of words. The selection is randomized. The player then enters
guesses of letters in the word. The game is completed when the word
is correctly identified, or when eight incorrect guesses results in
display of the entire HANGMAN.

041 MEMORY DUMP TO DISKETTE (FDISK)
Dump the contents of memory onto an EDOS2 structured diskette in the Motorola
defined format (S0,S1,S9).
UTILITY ROUTINES
General
042 VERIFY PAPER TAPE COPIES (TAPVRF)
Compares paper tape copies punched in any format with the original paper tape.
SYSTEM ROUTINES
Debug
043 DEBUG
Debug package for M6800. The package provides commands for: examine
and/or change of memory locations, examine and/or change of processor
registers, step-by-step program execution, input of binary formatted
paper tape on teletype reader.
GAMES & DEMO
Demo
044 TOWERS OF HANOI SOLUTION
Solves the "Towers of Hanoi" puzzle for up to nine disks. Was written
to demonstrate how to write recursive programs on the M6800.
UTILITY ROUTINES
General
045 WL *03 (WIRE LISTER)
Creates, edits, and prints a file of signal names and pin coordinates
from a PC board. The printout could be used in an automatic
wirewrapping system.
MATH ROUTINES
Integer
046 NON-LINEAR CONVERSION TABLES (CVTBLS)
This program converts any X value between 0 and 10,240 to a Y value
between 0 and 10,240. The conversion utilizes look-up tables of 11
y values, with a linear interpolation between them.

047 ASSEMBLER/EDITOR INTERNAL TRANSFER ROUTINE (EXBUG)-AETX.1
This program, when loaded after the co-resident Assembler/Editor
software, allows internal two-way transfer between the Assembler and
the Editor without the external tape transfers otherwise noted. Edit
buffer and assembler symbol table are separately maintained.
GAMES & DEMO
Demo
048 BIORHYTHM
Produces a plot of a person's biorhythm-physical, emotional, and
intellectual cycle.
SYSTEM ROUTINES
Debug
049 TRACE
Trace is a subroutine which the user jumps to at various "best points"
and is a new un-debugged program for the purpose of printing out the
address followed by the contents of the A and B registers. This
allows tracing of the flow of the new program up to the point at which
it "blows".
MATH ROUTINES
Floating Point
050 24-BIT REENTRANT FLOATING POINT PACKAGE
(1) addition; (2) subtractions; (3) multiplication; (4) division; (5) float;
(6) fix to 16-bit integer; (7) negate; (8) clear; (9) copy;
(10) compare*; (11) string to fit pnt*; (12) fit pnt to string*.

051 RDR1.B
RAM memory loader for Motorola format hex paper tape using 300
char/sec reader. Loads memory with a single program and halts.
GAMES & DEMO
Games
052 MISSIONARIES AND CANNIBALS (MISCAN)
The object of the game is to move three missionaries and three
cannibals across a river, in a boat that can only accommodate two
people.
SYSTEM ROUTINES
Debug
053 DUMP
Memory dump using MIKBUG for I/O.

054 CHARACTER GENERATION ON X-Y RECORDER.
The system accepts alphanumeric characters from keyboard and translates
them into a series of x-y displacement voltages, forming the shape of
entered character on x-y recorder.

055 CYCLIC REDUNDANCY CHECK CHARACTER GENERATOR
Calculation of the CRCC of a data buffer stored in locations Bebuffer - Ebuffer.
UTILITY ROUTINES
General
056 DECODE
Provides the convenience of a "backwards" assembler, that is, given a
machine-resident block of object code the program will analyze it and
provide a pseudo-source listing of code.
UTILITY ROUTINES
General
057 PRTMSG
A reentrant message printing routine.

058 DISK FILE TRANSFER
To give EXORciser users with single drive unit EXORdisks the capability
to copy a file from one diskette to another without using paper tape
or cassette as intermediate media.

059 QUICK LOAD (QLOAD)
Loads an EXORciser format object tape into memory without stopping the
tape after each record. Will detect and indicate checksum and no
change errors.

060 M6800 RESIDENT I/O PACKAGE - MINIBUG II VERSION (M2R1O)
I/O routines for use with the Resident Editor and Resident Assembler
utilizing MINIbug N.

061 MPL CORE SORT PROGRAM
Sorts data arrays in ascending order. Data array can either be BINARY
(1) or BINARY (2) and a data entry can be of arbitrary length. The
sort is done in place.

062 24-HOUR CLOCK
Maintains and displays 24-hour clock.
UTILITY ROUTINES
General
063 TTYIO
This is an input-output subroutine. It will output a defined character
string or store a character string in a defined buffer (location).

064 TELETYPE GRAPH GENERATOR
Collects variables during real-time data taking and prints out a graph
at the end of a run.
SYSTEM ROUTINES
Interpreters, Compilers
065 MICRO-BASIC
BASIC Interpreter for the M6800.

066 INSTRUMENT INTERFACER
Allows peripherals which do not comply with the IEEE standard for
programmable instruments to be connnected to a controller which does comply.
SYSTEM ROUTINES
Cross-Computer
067 M6800 CROSS ASSEMBLER FOR WANG 2200B
NOTE: SOURCE CODE FOR THIS PROGRAM IS NOT AVAILABLE.
An M6800 Cross Assembler for Wang 2200B with 4K memory.

068 GRAY CODE TO BINARY CONVERSION
Subroutine for conversion of 16-bit Gray code into 16-bit binary. (Reentrant)

069 PROM PROGRAMMER
For EDOS-2 system, this program allows programming of a 2708 type EPROM
with any origin from an object file on diskette.

070 EIA TO ACSII
Converts EIA coded paper tapes to ASC11 coded paper tape.
UTILITY ROUTINES
General
071 TELEPHONE DIALER
Provides properly timed pulses to a relay from a stored telephone number.
MATH ROUTINES
Integer
072 ISORT
Calculates the integer square root of any positive number up to 255. (Subroutine).
GAMES & DEMO
Demo
073 MUSIC
Allows the M6800 to play song sequences which are loaded into memory.
Written for the MEK6800D2 kit.

074 FALSE LOADER
Allows the object tape with EXORciser format to be loaded and verified
into a specific memory area.
MATH ROUTINES
Floating Point
075 FUNCTION exp (x). ln (x)
Calculates the exponent and natural log in hexadecimal floating point
format. (Subroutine).
MATH ROUTINES
Floating Point
076 FLOATING POINT MATH ROUTINES
FIX - Changes a floating point value to Integer.
FLOAT - Changes an integer value to floating point.
SQRT - Calculates square root of a floating point value.

077 BINA
Reentrant subroutine to convert an 8-bit binary value into ASCII
characters in any base. Also includes a reentrant 8-bit division
subroutine.
UTILITY ROUTINES
General
078 LPNT - MEMORY DUMP TO LINE PRINTER
Allows dumping of memory to line printer. Works like EXBUG function.

079 MECOPY
An MDOS program to copy ASCII MDOS files to an EDOS-2 diskette.

080 HP2644A INTERFACE I/O
Interfaces HP2644A CRT terminal to an EXORciser so that data cartridges
can be used for EXBUG functions.

081 CRT/EDOS
Four programs which modify EDOS 2.2 to work with CRT.

082 PROM
Converts PROM paper tapes from Weatherford format to a binary format
for DATA I/O PROM programmers.
UTILITY ROUTINES
General
083 MEMOVE
Reassembles object code to new memory location without reassembly of
source file, or moves a block of memory without alteration from one
location to another.

084 PNGEN
Allows preparation of PROM programmer input tapes in BNPF format.
GAMES & DEMO
Games
085 NIM GAME
Program plays the game of NIM against a human opponent.
GAMES & DEMO
Demo
086 MORSE CODE SEND AND RECEIVE
Converts Morse code to ASCII and prints on a terminal, or allows
operator to type on terminal keyboard and program sends Morse code
equivalent.
UTILITY ROUTINES
General
087 EXORCYB
Allows EXORciser to communicate with time-sharing computer via an
additional ACIA and modem.

088 CODEC - ASCII/BAUDOT
Performs the conversion in codes between ASC11 and Baudot and vice
versa.
MATH ROUTINES
Floating Point
089 MATH
24-bit floating point routines for addition, subtraction,
multiplication, division, square root, sine, cosine, and tangent.
SYSTEM ROUTINES
Monitors, Operating Systems
090 MONTR4
Provides extended monitor functions using MIKBUG I/O routines.

091 KEYBRD
Subroutine to interface hexadecimal keyboard to PIA and perform strobe,
debounce, and decode functions.

092 TRIG
Subroutine to calculate the SIN and COS of an angle.

093 QUMEPR
Routine for QUME Sprint Micro-3 (R) printer. Outputs ASCII data to
printer with provisions for both 10 and 12 pich printwheels, various
line spacing, and top of form control.
UTILITY ROUTINES
General
094 PPX
Two reentrant subroutines to perform the PUSH X and PULL X functions.
No registers are altered and works with interrupts.
MATH ROUTINES
Integer
095 INTEG
Subroutine Integrates a series of N evenly spaced points (N must be
between 7 and 255 inclusive.
MATH ROUTINES
Integer
096 SBBCD
Subroutine for subtraction of BCD numbers. Routine is reentrant and
works with double precision.

097 CONV
Four reentrant subroutines are provided to perform the following conversions.
DOAC - Converts a 2-byte binary number to octal ASCII.
OABC - Converts octal ASCII characters to 2-byte binary.
DABC - Converts a 2-byte binary number to decimal ASCII.
DDAC - Converts decimal ASCII characters to 2-byte binary.
MATH ROUTINES
BCD Routines
098 DCDRTN
This is a collection of 8-digit BCD subroutines including moves from a
working register (4 bytes), swap register, binary and 10's complements,
clear register, shift nibbles, character search, addition, and zero
word test.

099 FILETX
This program allow transfer of Xerox 560 disk files to/from MDOS disk files.
SYSTEM ROUTINES
Simulators
100 PDPSEM
This program emulates a DEC PDP-8 (Reg. T.M.) on the EXORciser. Every
program written for a PDP-8 will run on the EXORciser using this
program. It includes a monitor simulating the major function
switches of the PDP-8.
MATH ROUTINES
Floating Point
101 FPCMP
Floating Point Comparison routine compares two ANSI standard FORTRAN
single precision floating point numbers and sets condition codes to
allow conditional branch operations to take place. May be adapted to
various precisions.

102 DASCH
Performs the function of 8-channel digital-to-analog conversion by
pulse width modulation. Useful for driving chart recorder or dc
voltmeters.

103 DIABPD
Printer Driver for Diablo Hytype II. Outputs MDOS ASCII file from disk
to printer.

104 HSPTD
High-speed paper tape driver for Remex or equivalent-high-speed
punch/reader combination. Allow generation, checking, and loading of
hexadecimal format tapes.

105 PREMEX
Punches an MDOS disk file onto a high-speed punch (Remex).

106 CRDDRV
Loads a properly formatted source assembly file from cards into a
source assembly file on MDOS disk.

107 RSORT
Ripple sort subroutine to sort variably dimensioned data blocks.
SYSTEM ROUTINES
Simulators
108 SIMUL
M6800 resident simulator. Simulates a user program by following each
instruction and printing a register dump after every instruction.

109 FLAGX
ASCII TO 5x7 matrix character converter written to interface with
Remex paper tape punch.

110 LPDRV1
Line printer driver for MDOS using a 300 Baud RS-232C interface.
UTILITY ROUTINES
General
111 ALPHBT
Routine to output alphanumeric upper and lowercase characters on the
printer in large block style. Requires MDOS.
UTILITY ROUTINES
General
112 AUTOBD
This routine detects the baud rate of an EXORciser ACIA and programs
the ACIA for proper 11 or 10 - bit operation.

113 ARRAYP
120x128 bit array processor routines to initialize, read, and write to
the array.
SYSTEM ROUTINES
Debug
114 MARRS
This program provides a minimum set of program degbug features
including a disassembler and memory editor which uses assembler
op codes. (Minimum Assembler And Resident System)

115 ACIACK
Test most of the functions of the ACIA card.

116 DISKEY
A collection of five subroutines to perform LED display and keyboard
input functions on the MEK6800D2 kit. (D2 Kit).

117 KTIME
A short subroutine to use the D2 kit for a clock or elapsed timer.

118 RTCLK
A routine which performs functions of a real-time clock by counting
interrupts generated by a 60 Hz input. It tracks seconds, munutes,
hours, days, months, and years.
UTILITY ROUTINES
General
119 PTCG
This program punches paper tape which alphanumeric, human-readable
character, both upper and lower cases, and with both normal and
reversed background (character holes on solid background or solid
characters on hole background).
UTILITY ROUTINES
General
120 BIGBAN
This program prints very large block letters on a printer.
SYSTEM ROUTINES
Monitors, Operating Systems
121 PRMBUG
This is a monitor/debug type program, retaining MIKBUG address
compatibility, yet with improved I/O and commands.
GAMES & DEMO
Games
122 MSTRMD
Version of the game MASTERMIND played on the D2 kit.
SYSTEM ROUTINES
Monitors, Operating Systems
123 D2MON
This is a general-purpose monitor written for the D2 kit using an
ASCII terminal. There are 18 commands. It is written to be programmed
into two 1K EROMs.
UTILITY ROUTINES
General
124 PARITY
Subroutine to determine parity of an 8-bit word.
MATH ROUTINES
Integer
125 HEXCAL
Performs addition and subtraction in either base 10 or base 16,
converts back and forth between the two bases. Uses the hexadecimal
keyboard and displays of the D2 kit.

126 APRINT
Prints address labels in a user defined format. Addresses selected
from an easily created file format. This is done according to a
specified interest code associated with each record. Optional
facility to sort file into alphabetic order by company.

127 TTDIAL
Convert ASCII string to 2-of-8 code and output to touch-tone encoder.

128 COSLOD
Loads RCA/CDP 1802 "COSMAC" OBJECT TAPES TO EXORciser memory for use
with PROM Programmer II or III. (Tapes must be COSMAC development
system (UT20) compatible). User may supply an offset to the tape load
address; the load is verified using a read-after-write routine.

129 INDLD Indexed Loading Routine
This program loads a Motorola S-record object tape anywhere in memory
starting at the user specified location. This allows the user to load
object tapes that conflict with ROM areas into available RAM

130 QMPNTR
Provides a serial interface to a QUME Model SPRINT 3 at 300 baud.
Interface is RS-232C. (Serial to parallel printer interface.)

131 FILTST
FORTRAN callable routine written in assembler that tests for the
existance of an MDOS disk file.

132 LANDER
Moon landing game for PEK6800D2 kit. Simulates landing on moon.

133 VREACT
Determines the visual reaction time of the user and displays it on the
output device. Instructions for use are included in the program.
Output format is restricted to 32 columns/line.

134 FAST Real Time (Double Chip) Correlator
This program is a 32-channel real-time correlater, with sampling rates
of up to 1.64Khz using a 2 MHz 6800. As all of the processing is done
in software (without the need of a hardware multiplier) this program
could reduce the cost of a system.

135 DECODE09
Provide the convenience of a "backwards" assembler; that is, given a
machine resident block of MC6809 object code, the program will analyze
it and print a pseudo-source listing of the code that may optionally
include labels derived from a user-supplied symbol table. Invalid
codes are trapped.

136 B2716
This program is a MDOS command for programming the INTEL B2716
UVerasable PROM. It uses the Motorola PROM Programmer 1 (PP1). The
module has been modified as per the schematic enclosed. The program
will program, verify or read a PROM. The user must use the existing
"PROMPROG" to load a program from disk. Then "B2716" can be invoked
to program the PROM from memory loaded by "PROMPROG". Example is at
the end of the listing.

137 BIGTST
MC6802 "Total Instruction Diagnostic" attempts to verify all
noninterrupt oriented instructions for the MC6802.

138 DIVIDE
Divides two 16-bit unsigned numbers giving 32-bit result. The 32-bits
are for a 16-bit quotient and a 16-bit remainder.

139 NEWPRINT
This program prints the ASCII character set. It provides a continuous
output to a console or printer of the ASCII character set. The first
and last characters, and the number of characters per line may be
selected by re-assembly. The first character of each line is
incremented from the previous line.

140 DOUBLE PRECISION TWO'S COMPLEMENT HIGH/LOW COMPARE
The subroutine compares a 16-bit number (ACCA S ACCB) to a set of
signed upper and lower limits pointed to by the Index Register.
The Program is re-entrant, so it can be used in an interrupt driven
data collecting system for data checking. The comparison passes if
the following statement is true: low limit < data < high limit.

141 LIFE
Plays John H. Corman's game of Life. See attached documentation
pages. (Translation, expansion, and modification of CONVERSE program
written by John Kaufmann.)

142 12 or 24-HOUR CLOCK
Displays time in hours, minutes and seconds on the display of the D2
Evaluation Kit.

143 SEARCH
Searches the MDOS file named on the command line for all matches to
the string entered in response to the prompt "?" and will print out
on the system console all records that begin with that string.

144 BTDB
1. IBCD - Convert (4) packed BCD digits to 16-bit binary integer.
2. IBIN - Convert 16-bit integer to (4) packed BCD digits.
3. FBCD - Convert (4) packed BCD fractional digits to 16-bits binary fraction.
4. FBIN - Convert 16-bit binary fraction to (4) packed BCD fractional digits.

145 RELOCATING LOADER (RELLDR)
Loads Motorola S - record format object records into memory starting
a <destination starting address>. All references from <BEGA>
(supplied by user) are relocated.
Computation is:
address = <addr given> + <destination starting address>-<BEGA>

146 MTEST9
Fast memory test for 6809 with ACIA.

147 FINITE State Machine
Emulates the "Moore Machine", a deterministic machine with the
following properties:
(1) The next state is determined uniquely by the present state and
the present input (in this case the present input is a condition).
(2) The output is a function of only the present state and is
independent of the present input.

148 MELMOP:D2
Paper tape loader for MEK6800D2 "D2" kit utilizing format defined in
M6800 EXORciser User's Guide.

149 AUTOD2: Automatic Memory Read for D2 Kit
Allows the D2 kit to automatically step through memory while
displaying the contents of each location. This can be very useful
for verifying programs.

150 VICS13
An updated version of UGL program #13. This program will run in PROM,
but UGL #13 will not. See UGL program #13 for additional information.

151 REVASM dis-assembler for 6800/6801.
Generates a pseudo source listing of a memory image object program.
The input can be from memory or it can be from an MDOS memory image
'.LO') file. The output list can be routed to the console ('#CN'),
the line printer ('#LP'), the console punch ('#CP'), or an MDOS source
file ('.SA'). An option allows SWI Opcodes to be interpreted as MDOS
calls. Another option enables 6801 opcodes. The program assigns labels
to both internal and external references.

152 DISKEX
Lead and error check of every sector on an MDOS diskette, reporting
all errors. This command specifies that a diskette is error free
(headers and CRC only). Or it will report bad sectors together with
error type (standard E-format). It takes 27 seconds to run on a
good diskette, several minutes on a very bad one.

153 PROMO 6
Upgrading the MEX68PP1 Prom Programmer Module in order to handle
programming the single voltage EPROM types Motorola TMS2516 or INTEL 2716.

154 MPLUTIL
A library of utility routines for MPL programs.

155 MACEPP
Extracts a particular byte from the Microword produced by MACE in a
format that is suitable for the MOTOROLA PROM programmer III or II.

156 SORT
Disk file sort for MDOS ASCII files. Uses SHELLMETZNEP, algorithym
for minimum number of compares. Uses resident 5 character assist
keys and virtual memory overlay buffers for minimum disk reads. User
has extensive controls of how to build keys. Optional features for
sorting all words in limited record reformatting capability.

157 PG2708
Programs 2708 type EPROM's using the D2 kit. The four modes if
operation are:
(1) Program ($0000 - programs the EPROM from RAM
(2) Verify ($0003) - verifies the EPROM from RAM
(3) Download ($0006) - reads the EPROM into RAM
(4) ERASED ($0009) - verifies that the EPROM is erased.

158 RINTM VERL 1.2
Output driver and formatter for 40 column printers that contain
internal controllers. Specific printer used is a DATEL AIP40
which uses the LCP 40 printer mechanism.

159 "FILES"
To printout an MDOS directory in alphabetic order, sorted either by
filename first or suffix first.

160 BINARY TO UNPACKED BCD OR DECIMAL ASCII CONVERSION.
Converts n-byte binary number to n-byte unpacked (1 byte/1 digit,
right justified) BCD-number or to n-byte decimal ACSII-number. 2
entry points: BINBCD and BINASC. Add 3-algorithm is used. m and n
are specified by defining start and end addresses of numbers in
assembly time.

161 CRCGEW COMPUTE CRC-16
Compute CRC-16 (-x16-x15-x2-1), which is used in Bi-Sync, for data
buffer. The routine is reentrant. It can be used to compute the
CRC-16 of an incoming message.

162 GPM
General pupose macro generator for M6800.

163 MTAPE
To prepare a magnetic tape, from a paper tape.Input from High Speed
Reader, via P.I.A. (Parallel Interface Adapter). Output via
T.I. Silent 700, and ACIA (EXORciser). Suitable for assembly
language or machine code tapes.

164 STEPDRV
To run a stepping motor with user defined acceleration and
deceletation profiles, enabling perfromance optimization.

165 PRMBOL
This program generates the bit pattern necessary for programming
a 256x4 bit PROM (82S129). User can specify any present address lines
and the state of unprogrammed bits. The user then specifies each
output bit of the PROM with a Boolean equation, where the address
lines are the variables.

166 DATE
To convert a date expression from the form YY/MM/DD to either LLL NN,
NNNN or LLL NN where LLL represents a 3-letter abbreviation of the
name of the month, NN represents a two-digit number for the date
(leading zero suppressed), and NNNN represents the four-digit year.

167 SURFACE COMMAND (MDOS)
Performs MDOS ROM copies/read-test on disk in drive 1. Asks if drive
1 scratch,and record PSN in error if test fails.

Note: If you click on the table headers ( Group, Entry#, and Description ), the table will be sorted according to that header. One click will sort in alphabetical/numerical order. Another click will reverse the order.

On the left, and below the index, are groupings of specific entries. The groups are GAMES & DEMO, SYSTEM ROUTINES, MATH ROUTINES, I/O DRIVERS & ROUTINES, and UTILITY ROUTINES.

  • GAMES & DEMO
    Games
    20TIC-TAC-TOE
    ,
    30BLACKJACK
    ,
    40HANGMAN
    ,
    52MISS & CANN
    ,
    85NIM GAME
    ,
    122MASTERMIND

    Demo
    25, 44, 48, 73, 86
  • SYSTEM ROUTINES
    Monitors, Operating Systems
    29, 90, 100, 114, 121, 123
    Simulators
    100, 108
    Debug Routines
    39, 43, 49, 53, 114
    Interpreters, Compilers
    65
    Cross-Computer
    19, 67
  • MATH ROUTINES
    Integer - 7, 8, 9, 23, 27,
    32, 46, 72, 95, 96, 125
    Floating Point -
    15, 32, 50, 75, 76, 89, 101
    BCD Routines -
    22, 31, 32, 96, 98
    Functions - 23, 27, 55,
    72, 75, 76, 89, 92, 95, 113
    Number Base, Code Conversion
    1, 6, 22, 24, 25, 31, 35, 37, 46,
    68, 70, 77, 86, 88, 97, 125
  • I/O DRIVERS & ROUTINES
    Printer Drivers
    4, 5, 10, 11, 18, 60, 93, 103, 110
    Punch Drivers
    10, 11, 17, 60, 104, 105, 109
    Card and Tape Reader
    10, 11, 16, 51, 59, 60, 104, 106
    Keyboard
    2, 3, 10, 11, 60, 91, 116
    Plotter and Graphing
    54, 64
    Disk
    41, 58, 79, 81, 99, 106
    Miscellaneous I/O
    66, 80, 102
  • UTILITY ROUTINES
    Sort
    61, 107
    Clocks
    62, 117, 118
    Cross-Computer
    87, 99
    D2 Kit
    73, 116, 117, 122, 123, 125
    Test Programs
    12, 13, 14, 38, 115, 124
    PROM/EPROM Programmer
    21, 28, 69, 83, 84
    General - 33, 34, 36, 42, 45, 53,
    56, 57, 63, 71, 78, 83, 87, 94,
    111, 112, 119, 120, 124
M6800 USERS GROUP LIBRARY SUBMITTAL FORM
M6800 USER GROUP LIBRARY SUBMITTAL FORM
PROGRAM TITLE: EXBUG CBCDHX Subroutine (Convert a Hexadecimal character to a binary number)
FUNCTION: Verify input is a hexadecimal digit character. Convert character to a 4-Bit binary number with high order 4-Bits equal to zero. Set "N" (Negative) condition code for non-hexadecimal character; Call:
JSR CBCDHX
PARAMETERS: Character to convert must be in Accumulator A.
RESULTS: If Hexadecimal character input, Accumulator A contains the 4-Bit binary number represented by the input character and the "N" (negative) condition code cleared. If non-hexadecimal character input, accumulator A contains the character input and the "N" (negative) condition code is set.