I have compiled a library of programs for the MK14 and other SC/MP machines.
All source code files are in SBASM format.
MK14 Software
Application | Address | Size (bytes) |
Description | Author | Source Code | Assembler Listing | Object Code | ||
Load | Execute | Binary | Intel Hex | ||||||
Digital Alarm Clock | $0F12 | $0F20 | 113 | Gives a continuously changing display of the time in hours, minutes and seconds | MK14 Manual example* | digitalalarmclock.asm | digitalalarmclock.hex | ||
Decimal to Hex | $0F50 | $0F50 | 172 | Converts decimal number entered at keyboard to hex and displays result (relocatable) | MK14 Manual example* | dectohex.asm | dectohex.hex | ||
Divide | $0F80 | $0F80 | 54 | Divides an unsigned 16-bit number by an unsigned 8-bit number giving 16-bit quotient and 8-bit remainder (relocatable) | MK14 Manual example* | divide.asm | divide.hex | ||
Duckshoot | $0F12 | $0F12 | 69 | Simulates ducks flying across the skyline | MK14 Manual example* | duckshoot.asm | duckshoot.hex | ||
Function Generator | $0E80 | $0E80 | 31 | Produces a periodic waveform by outputting values from memory cyclically to a D/A | MK14 Manual example* | function_generator.asm | function_generator.hex | ||
Greatest Common Divider | $0F20 | $0F20 | 47 | Finds greatest common divisor of two 16-bit unsigned numbers, uses Euclid's algorithm (relocatable) | MK14 Manual example* | gcd.asm | gcd.hex | ||
Mastermind | $0F1C | $0F1C | 215 | The original code guessing game | MK14 Manual example* | mastermind.asm | mastermind.hex | ||
Message | $0F20 | $0F26 | 38 | Gives a moving display of segment arrangements according to the contents of memory | MK14 Manual example* | message.asm | message.hex | ||
Moon Landing | $0F05 | $0F52 | 87 | Simulates the landing of a rocket on the moon | MK14 Manual example* | moonlanding.asm | moonlanding.hex | ||
Multiply | $0F50 | $0F50 | 41 | Multiplies two unsigned 8-bit numbers (relocatable) | MK14 Manual example* | multiply.asm | multiply.hex | ||
Music Box | $0F12 | $0F46 | 171 | Plays tunes stored in memory in coded form | MK14 Manual example* | musicbox.asm | musicbox.hex | ||
Organ | $0F20 | $0F20 | 30 | Generates a different note for each key of the keyboard | MK14 Manual example* | organ.asm | organ.hex | ||
Pulse Delay | $0F20 | $0F20 | 28 | uses a block of memory as a long shift register(relocatable), uses Serial In/Out | MK14 Manual example* | pulsedelay.asm | pulsedelay.hex | ||
Random Noise | $0F20 | $0F20 | 20 | Generates a pseudo random sequence of 216-1 or 65535 bits at the flag output | MK14 Manual example* | randomnoise.asm | randomnoise.hex | ||
Reaction Timer | $0F20 | $0F20 | 170 | Gives a readout in mS of the time taken to respond to an unpredictable event | MK14 Manual example* | reaction_timer.asm | reaction_timer.hex | ||
Relocator | $0F20 | $0F20 | 54 | Moves a block of memory 'From' source start address 'T' destination start address, 'Length' = number of bytes (relocatable) | MK14 Manual example* | relocator.asm | relocator.hex | ||
Self Replicating Program | $0F12 | $0F12 | 24 | Makes a copy of itself at the next free memory location | MK14 Manual example* | replicate.asm | replicate.hex | ||
Serial In | $0000 | $0000 | 32 | Serial data input routine | MK14 Manual example* | serin.asm | serin.hex | ||
Serial out | $0000 | $0000 | 27 | Serial data output routine | MK14 Manual example* | serout.asm | serout.hex | ||
Silver Dollar | $0F12 | $0F28 | 220 | A game where a number of coins are moved along a line of squares | MK14 Manual example* | silverdollar.asm | silverdollar.hex | ||
Square Root | $0F20 | $0F20 | 39 | Gives square root of 16-bit unsigned number, integer part only (relocatable) | MK14 Manual example* | sqroot.asm | sqroot.hex | ||
Maze | $0F10 | $0F12 | 425 | A Maze game running on the 7-segment display | Computing Today May 1979, Assembler listing by Tim Gilberts | maze.asm | maze.list | maze.hex |
* MK14 Manual examples have been converted to SBASM by Slothie+
+Vintage Radio Forum members
MK14 Software for the VDU
Application | Address | Size (bytes) |
Description | Author | Source Code | Assembler Listing | Object Code | VDU Configuration | VDU Link Settings | |||
Load | Execute | Binary | Intel Hex | Original VDU | MK14E VDU | |||||||
Inside | $0200 | n/a | 512 | An 'SCMP Inside' image | SiriusHardware+ | n/a | n/a | inside.hex | Address: $0200-$03FF Graph/Char: High Reverse: Low Top: A8 |
b10: High; b11,12: Low b14: take High b15: take Low b17: link to b9 |
S1 3,4 On* LK3 removed LK2: fitted LK1: A8 |
|
Clive | $0200 | n/a | 512 | An image of Sir Clive Sinclair | SiriusHardware+ | n/a | n/a | clive.hex | Address: $0200-$03FF Graph/Char: High Reverse: Low Top: A8 |
b10: High; b11,12: Low b14: take High b15: take Low b17: link to b9 |
S1 3,4 On* LK3 removed LK2: fitted LK1: A8 |
|
Falling Man | $0F20 | $0F20 | 138 | The Falling Man | Practical Electronics December 1979 | the_falling_man.asm | the_falling_man.list | the_falling_man.bin | the_falling_man.hex | Address: $0B00-$0CFF Graph/Char: High Reverse: Low Top: A8 |
b10,12: High; b11: Low b14: take High b15: take Low b17: link to b9 |
S1 3 On* LK3 removed LK2: fitted LK1: A8 |
Invader2 | $0400 | $0400 | 1013 | A space invaders game | Realtime+ | invader2.asm | invader2.list | invader2.bin | invader2.hex | Address: $0200-$03FF Graph/Char: Low Reverse: High Top: A8 |
VDU Address: $0200 Graph/Char: Low Reverse: High Top: link to b9 |
S1 3,4 On* LK3 0V LK2: removed LK1: A8 |
VDU Test 1 | $0200 | n/a | 512 | A test screen for the VDU, actually just a sequence from $00 to $FF repeated | n/a | n/a | vdu_test1.bin | vdu_test1.hex | Address: $0200-$03FF Graph/Char: Low Reverse: Low Top: A8 |
b10: High; b11,12: Low b14: take Low b15: take Low b17: link to b9 |
S1 3,4 On* LK3 0V LK2: fitted LK1: A8 |
|
Moonlander | $0400 $0F14 $0B00 |
Realtime+ | moonlander.asm | moonlander.list | moonlander.hex | Address: $0200-$03FF Graph/Char: Low Reverse: Low Top: A8 |
b10: High; b11,12: Low b14: take Low b15: take Low b17: link to b9 |
S1 3,4 On* LK3 0V LK2: fitted LK1: A8 |
||||
Connect4 | $0400 $0B40 |
The classic Connect 4 game | Realtime+ | connect4_v1.hex | Address: $0200-$03FF Graph/Char: Low Reverse: Low Top: A8 |
b10: High; b11,12: Low b14: take Low b15: take Low b17: link to b9 |
S1 3,4 On* LK3 0V LK2: fitted LK1: A8 |
|||||
Solitaire O | $0200 $0400 $0880 $0B00 $0F3F |
$0400 | for Original VDU | Coolsnaz2+ | solitaire_v1o.asm | solitaire_v1o.list | solitaire_v1o.hex | Address: $0200-$03FF Graph/Char: Low Reverse: Low Top: A8 |
b10: High; b11,12: Low b14: take Low b15: take Low b17: link to b9 |
S1 3,4 On* LK3 0V LK2: fitted LK1: A8 |
||
Solitaire R | $0200 $0400 $0880 $0B00 $0F3F |
$0400 | for RealView VDU | Coolsnaz2+ | solitaire_v1r.asm | solitaire_v1r.list | solitaire_v1r.hex | Address: $0200-$03FF Graph/Char: Low Reverse: Low Top: A8 |
b10: High; b11,12: Low b14: take Low b15: take Low b17: link to b9 |
S1 3,4 On* LK3 0V LK2: fitted LK1: A8 |
||
Snake | $0200 $0F28 |
$0500 | A classic vintage game where you have to steer the snake around the screen and eat the 'apples'. | Realtime+ | snake_v1.asm | snake_v1.list | snake_v1.hex | Address: $0200-$03FF Graph/Char: Low Reverse: Low Top: A8 |
b10: High; b11,12: Low b14: take Low b15: take Low b17: link to b9 |
S1 3,4 On* LK3 0V LK2: fitted LK1: A8 |
||
Tetris | tetris_v21r.asm | tetris_v21r.list | tetris_v21r.hex | |||||||||
* all other S1 switches are OFF
+Vintage Radio Forum members
SC/MP Software for Other Platforms
To follow