Learning the Small Computer Monitor

1,131 views
Skip to first unread message

simon christo

unread,
Oct 28, 2018, 5:21:01 AM10/28/18
to RC2014-Z80
I have just plug in the SCM program into by RC2014 mini and it boots up just fine.
I need to find out what parts of RAM the Monitor uses, so I can keep my programs
away from there.Where can I get ALL the commands for it, as all I want to do at 
this stage is enter a Assembely Program and test it through a set of I/O ports.
IT IS PLUGED IN THE MINI's ROM SOCKET.Thanks Simon.

Marten Feldtmann

unread,
Oct 28, 2018, 6:55:17 AM10/28/18
to RC2014-Z80
The Users Guide could be a good start:


or look at https://feldtmann.ddns.net/rc2014/doc/ under Software/Monitor as I have collect all the information about the SCM I needed for myself.


Marten


Steve Cousins

unread,
Oct 28, 2018, 1:23:06 PM10/28/18
to RC2014-Z80
Simon

Probably best start with the tutorial, then move on to the user guide. See www.scc.me.uk

Steve

simon christo

unread,
Nov 4, 2018, 9:57:17 AM11/4/18
to RC2014-Z80
Hi again.I have a Pageable ROM containing 32k BASIC, CP/M and the Small Computer Monitor.Because I'm just
starting out, I put the ROM in the RC2014 mini directly after removing the 32kB BASIC ROM.It should work I think
as the 8kB Assembeller is set with the mini's removable links.Will the Assembeller work properly installed in this fashion?
How do I type a program in Assembeller once I get the prompt? When I type 2000H it comes up with some value '7E' ,
which I assume is there because the RAM has'nt been cleared yet, and I can't find a way to change it.Thanks Simon.

Steve Cousins

unread,
Nov 5, 2018, 5:21:21 AM11/5/18
to RC2014-Z80
Hi Simon

Best place to start is the Small Computer Monitor Tutorial. This document can be found at www.scc.me.uk

If you follow that you will discover what SCM can do and how to use it.

After that the SCM User Guide should act as your reference document. This is also at www.scc.me.uk

Steve

simon christo

unread,
Nov 5, 2018, 5:46:40 PM11/5/18
to RC2014-Z80
Hi there folks! When I enter 'a 2000', the monitor ignores what I type in as demonstrated on page 11 of the 1.0 manual.
I'd say this is because the ROM is for the pageable card and not for the mini's ROM socket.Can anybody verify this?
Even if I go to edit, it still won't change when I type in a new value.Thanks Simon.

Steve Cousins

unread,
Nov 5, 2018, 6:22:10 PM11/5/18
to RC2014-Z80
A Mini only has RAM from 0x8000 to 0xFFFF. Only RAM can be modified with the monitor. Any attempt to modify other memory areas will therefore fail.

The example on page 11 of the guide uses memory address 0x8000 as all RC2014 systems have RAM at this address.

You can safely put your program and data from 0x8000 to 0xFBFF.

Steve

simon christo

unread,
Nov 5, 2018, 7:58:13 PM11/5/18
to RC2014-Z80
Hi.What should be the 'Start Address' for the 64kB RAM pcb using 32kb basic,CP/M or the SCM?
Thanks Simon.

simon christo

unread,
Nov 5, 2018, 11:42:14 PM11/5/18
to RC2014-Z80
G'day.I take it that if I have to disable the RAM and ROM of the mini, when I'm using the 64kB card and 
the pageable ROM, that both the RAM and ROM has to be removed from the mini.Unless tracks are cut,
I can't see anyway around it..Thanks Simon.

Steve Cousins

unread,
Nov 6, 2018, 4:40:35 PM11/6/18
to RC2014-Z80
Settings for the ROM and RAM boards depend on which configuration of SCM you are using. There are four configurations R1, R2, R3 and R4. 
R1 is the monitor only (requires 8k of ROM space)
R2 is the monitor plus BASIC (requires 16k of ROM space)
R3 is the monitor plus BASIC plus CP/M loader (requires 32k of ROM space)
R4 is the monitor plus BASIC plus CP/M loader (requires 16k of ROM space)

R1 requires the ROM board to be set for a page size of 8k (or more). RAM can be set to start at the end of the ROM board's page size (or higher). Assuming you select the ROM page size of 8k, then RAM should start at 0x2000 (or higher). Configuration R1 has the code "9" on the label of the official ROM Spencer supplies.

R2 requires the ROM board to be set for a page size of 16k (or more). RAM can be set to start at the end of the ROM board's page size (or higher). Assuming you select the ROM page size of 16k, then RAM should start at 0x4000 (or higher). However, if the RAM does not start at 0x4000 the monitor will run but BASIC will not. So best set both to 16k (0x4000).

R3 requires the ROM board to be set for a page size of 32k. RAM must be set to paged mode (ie. RAM starts at 0x8000). R3 allows space for additional software in the ROM, which is why it is larger than R4

R4 requires the ROM board to be set for a page size of 16k (or more). RAM can be set to start at the end of the ROM board's page size (or higher). Assuming you select the ROM page size of 16k, then RAM should start at 0x4000 (or higher). However, to run CP/M you must have the RAM set to paged mode (ie. RAM starts at 0x8000). Configuration R4 has the code "88" on the label of the official ROM Spencer supplies.

Configurations R1, R2 and R3 are described in the Small Computer Monitor Installation Guide. This guide assumes you have programmed your own EPROM with SCM at the start of the chip, and details suitable settings for the ROM and RAM boards. It does not describe configuration R4 which was produced after the guide. It also does not explain settings for the official ROM chips Spencer supplies, which was also created after the guide was written.

Yes, I believe you would have to remove the RAM and ROM chips from the mini when using the separate ROM and RAM boards.

Steve

simon christo

unread,
Nov 7, 2018, 7:04:31 AM11/7/18
to RC2014-Z80
Hi again.Thanks Steve, your help is very beneficial.On a different note, my ASUS PC laptop is sometimes ignoring what I type in.I've tried different external keyboards and it still does it.I think the computer isn't keeping up, as videos sometimes "pixelate.
Its a I5 so it should be fast enough.Even with nothing else running, except for the "text editor", it still stuffs up.I'll try it with its own keyboard and I'll let you know.Thanks Simon.

simon christo

unread,
Nov 8, 2018, 5:48:38 AM11/8/18
to RC2014-Z80
Hi there.I removed the ROM & RAM from the mini.Set the page size to 16k and Start RAM to 16k.
On the R0881009 ROM ,the SMC starts at 16k too.With all this set, I installed the 64 kB RAM pcb &
the Pageable rom board, no CF board installed yet.It didn't work.Any ideas?Thanks Simon.

Steve Cousins

unread,
Nov 8, 2018, 6:17:09 AM11/8/18
to RC2014-Z80
Hi Simon

See attached photo of my RC2014 Pro ROM and RAM modules set to run SCM R4 (image 88) with paged mode enabled.

Steve
RC2014 jumpers for SCM R4.jpg

Steve Cousins

unread,
Nov 8, 2018, 6:31:58 AM11/8/18
to RC2014-Z80
Attached is a picture with the ROM and RAM boards set without using paging. This set up will run SCM and BASIC, but not CP/M. Try this in case your paging is not working properly.

Both this picture and the one in the previous post are from a Pro set up. As far as I know you should be able to achieve the same results using the Mini in the way you describe, providing the ROM and RAM boards are fully functional and the paging is implemented through the backplane or a flying lead. Perhaps someone with a Mini system can confirm this.

Steve



On Thursday, 8 November 2018 10:48:38 UTC, simon christo wrote:
RC2014 jumpers for SCM R4 unpaged.jpg

simon christo

unread,
Nov 9, 2018, 9:12:46 PM11/9/18
to RC2014-Z80
Hi there.I tried both with and without paging and it unfortunatly didn't wok.So it looks like Ill have to 
bring out the oscillilosocpe out and start fault finding!

So, I do beleive that the 'R0881009' ROM should work in the mini -directy for the SCM.
It says 'SMC' for any RAM/ROM/UART, which is what the '9' stands for.

The mini is wired to only work wirh a 8kB ROM, which this ROM is.

But ther are some exucutable problems I've found;
API 1, instruction says, 'It waits for a key to be pressed for the console and displays 'a' if 'a' is pressed'.
But my system displays 0A 0001, why?

API 2 21 works, and displays !21 0021 which is correct.

DEVICES says '1=6850 ACIA #1 (@80), which should say (@40) acording to manual .

Also, I can't chnge the data in a particular address by typing after following a ASSEMBELE or EDIT 
command.If I do the location doesn't change - Why?

Thanks Simon..

simon christo

unread,
Nov 15, 2018, 10:28:30 AM11/15/18
to RC2014-Z80
Hi again.I'm trying to find out why my SMC does'nt change the data value when requested.
For the R0881009 ROM, MS BASIC is in the first of 8kB of the ROM and should work in 
the mini's ROM socket with 32kB RAM.I've selected the first bank and it does'nt boot up in 
MS BASIC.It boots up in SMC when the jumpers are set, but again has the problem that the 
'A 2000' has no way of changing the data in  that location.Is there a hint why MS BASIC does'nt work?
Thanks Simon.

Steve Cousins

unread,
Nov 15, 2018, 10:51:06 AM11/15/18
to RC2014-Z80
Simon

What happens if you try 'A 8000' instead of 'A 2000'?

Or put another way, are you able to modify memory at 0x8000?

Steve

simon christo

unread,
Nov 16, 2018, 7:13:07 PM11/16/18
to RC2014-Z80
Yes, A 8000 works.Could you tell me the Memory Map if this ROM is fitted directly in the mini.
I need to know what RAM the ROM uses for 'house - keeping' tasks , and what RAM I can use
for my own programs.Also, why did'nt MS BASIC work in this version of ROM? Thanks Simon. 

simon christo

unread,
Nov 17, 2018, 12:49:07 PM11/17/18
to RC2014-Z80
Does the 'API' function work when using the SMC in the 'mini'?If not, how do I print                               i 
a character on the screen?Thanks Simon.

Steve Cousins

unread,
Nov 17, 2018, 5:58:49 PM11/17/18
to RC2014-Z80
Hi Simon

When fitted direct in the Mini's ROM socket only 8k of ROM is available. So ROM is from 0x0000 to 0x1FFF.

SCM configuration R1 is 8k long, so works fine in the Mini's ROM socket. This is image '9' in the ROM labelled R0881009.

SCM configuration R4 is 16k long, so can not be used fully in the Mini's ROM socket. This is image '88' in the ROM labelled R0881009. If you try to run this on the Mini only the first half of the 16k of code is accessible. As a result I think the monitor will work, but BASIC will not.

SCM uses RAM from 0xFC00 to 0xFFFF for workspace, so avoid using this area. All other RAM is free for your programs. With a standard Mini that means RAM from 0x8000 to 0xFBFF is free.

If you use the set up you described with the paged ROM board you should be able to use SCM R4 fully and thus run BASIC as well as the monitor.

Further details of configurations and memory use can be found in the SCM documents: Tutorial, User Guide and Installation Guide. Source code is also available if you want to find out even more. See www.scc.me.uk for documentation and source code.

Steve

Steve Cousins

unread,
Nov 17, 2018, 6:00:50 PM11/17/18
to RC2014-Z80
The API should work on the standard Mini when running SCM configuration R1 (image '9' is the RC2014 ROM).

All the API functions described in the SCM User Guide should work as documented.

Steve

simon christo

unread,
Nov 17, 2018, 9:30:51 PM11/17/18
to RC2014-Z80
Yep, I've looked up the manual and have no troubles with printing a character on the screen.
But I have troubles using the 'keyboard input' routine.
The following does'nt seem to work;

8000 LD C,$01
8002 RST 30
8003 RET

This is on page 45 of the manual, and says there are no paramaters.

I want to recieve the letter through the PC keyboard via the Pi Zero.
I also tried API $10, form a specified device.
Device '1' worked on the API $11 as an output program -Page 60.
As an input, I did get a program to work and noticed that the letter 
pressed was only present for a very short time, and kept displaying 
a 'no pressed' character when nothing was pressed.

What character is the 'no pressed' letter, I can't make it out.

Could you please supply me with a program that loops and displays 
what is pressed on the Pi zero Keypad on the screen.
Thanks Simon...

simon christo

unread,
Nov 18, 2018, 2:30:08 AM11/18/18
to RC2014-Z80
I managed to work out the input routine!Thanks!
On a different note;Where can I get a HEX LOADER for the SCM with the ROM fitted directly in the mini.Thanks Simon.

simon christo

unread,
Nov 18, 2018, 8:18:31 AM11/18/18
to RC2014-Z80
Could you get me all the words the SCM understands.Eg: SP($FB00) didn't work to
set the stack pointer.Also , how does the SCM determine
between a Op-code and a simple data-value? Thanks Simon.

Steve Cousins

unread,
Nov 18, 2018, 4:35:47 PM11/18/18
to RC2014-Z80
The monitor has a hex loader built in. You simply "send" a hex file from the terminal and the monitor will load it into memory. The terminology depends on the terminal program. It is often described as "send a file" but might also be described as pasting a file. The monitor recognises the incoming text as a hex file if the line starts with a colon (":").  This is detailed on page 31 of the SCM user guide.

Steve Cousins

unread,
Nov 18, 2018, 4:44:43 PM11/18/18
to RC2014-Z80
All the command words and parameters are described in the SCM user guide. The register display and edit command is documented on page 26. There is also a reference sheet containing a summary of commands and API functions (see attached PDF).

I assume you are asking how the assemble command determines if a parameter is numeric data or a register value. This is done mainly by context, but where there is a conflict, such as register name 'B' and hex value 'B', it defaults to a register value. You can force a parameter to be numeric by prefixing with a $. See page 12 of the user guide.
SCMon-v1-0-reference-e1-0-0.pdf

simon christo

unread,
Nov 20, 2018, 4:54:31 AM11/20/18
to RC2014-Z80
Does anybody know how to set up the Terminal Program on a Raspberry Pi to accept
serial from the USB port from the RC2014 mini? Thanks Simon.

Paul Bigwood

unread,
Nov 20, 2018, 3:41:58 PM11/20/18
to RC2014-Z80
Hi Simon,

you need to use a terminal emulator like minicom to connect the RC2014 to the Raspberry Pi.

From the Raspberry PI console terminal type the following commands in terminating each line by pressing Enter. The '$' is the Linux console prompt

$ sudo apt-get update
$ sudo apt-get upgrade 
$ sudo apt-get install minicom
after it has installed itself, plug your RC2014 FTDI USB serial port into one of the USB ports on the Raspberry Pi and then find out which port has been assigned 

$ dmesg

at the bottom of the screen printout will be the port assignment, will look something like this
[927.827413] usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0

The ttyUSB0 is the port assigned to the USB terminal device.

so now run the minicom program 

$ minicom -s . The -s is for setup.

you will see a configuration screen and the 3rd item is Serial Port setup, Selection A is Serial Device. type A to edit the serial device to /dev/ttyUSB0. press enter to
exit and save the file, and you should be able to talk to the RC2014. CTRL-A Z is the minicom command help menu. Minicom supports sending and receiving hex files as well as Kermit protocol. it can be used to send and receive HEX files from the SCM monitor with no problem .

Hope this helps.

Paul 

simon christo

unread,
Nov 21, 2018, 8:40:07 AM11/21/18
to RC2014-Z80
OK I've installed mincom on the Raspberry Pi.How do I save the Assembeller program to the Pi's SD card?
I got told that a ';' will be the prefix for a hex-dump,but I can't seem to get it to work.Thanks Simon.

Francis Pierot

unread,
Nov 23, 2018, 3:59:33 AM11/23/18
to RC2014-Z80
Hello Simon,

First, you don't save Hex files on the Pi SD card:  you paste them in the terminal window, then minicom sends them to the RC2014 serial port, and from there the RC2014 SC Monitor receives and interprets them.

Beware the prefix for hexfiles is ':' and not ';'. Following is a sequence of hex digits: number of bytes, address, the bytes themselves, and a control byte. I don't dive in too much details as the right way to get the hex files is either finding one, either using a program to create them.

You can also paste assembler sources too, just like you would type them in the terminal prompt: the monitor will get them te same way. You have to use te SC Monitor assembler syntax of course.

Your resources for using the RC2014 SC Monitor are where he's hosted by its author at  https://smallcomputercentral.com/documentation/. Get to the end of page and you'll find great documentation on the monitor, its assembler and functions etc. Everything told in the documentation can be tried in your terminal window.

simon christo

unread,
Nov 24, 2018, 12:32:16 PM11/24/18
to RC2014-Z80
Apparantly, I could only load 20% of ASM80 on the Raspberry Pi.Why is this so?
I had troubles with the serial link to the RC2014 'stop typing' for no reason, even 
though I changed computers from a PC to a Raspberry Pi.Could it be the FDTI 
cable, or a software problem? Thanks Simon.

simon christo

unread,
Nov 24, 2018, 9:15:17 PM11/24/18
to RC2014-Z80
Hi there.Does anybody know what the hex code in the Intel Hex Dump means?
On page 31 of the SCM Users Guide it has;
:1040000021354006090E80EDB3061A3E41F5DB80EE.
Is it possible to work out the adresses and data fields?
I've tried and it is a bit confuseing.Also my previous question needs answering too.
Thanks Simon.

Nils-Arne Dahlberg

unread,
Nov 25, 2018, 3:06:50 AM11/25/18
to RC2014-Z80
As long as you only use 0x0000 to 0xffff as address space it is quite easy:
First byte is number of data bytes.
Then comes 2 adress bytes
After that 1 byte (00-05) that is the type of record (00=data, 01=end of file, the rest is different addressing modes, that in most cases can be ignored.)
after that all butes following, except the last are data
Last byte is a checksum


/Nils-Arne

simon christo

unread,
Nov 25, 2018, 8:51:40 AM11/25/18
to RC2014-Z80
Hi again.Just a question on the ASM80 site;
How does the site know that I need the program to start at $8000?
There's no line numbers in the demo program.
I'm still having troubles converting the ASM80 program to the Intel 
Hex Dump.Thanks Simon.

Steve Cousins

unread,
Nov 25, 2018, 2:39:25 PM11/25/18
to RC2014-Z80
Hi Simon

Have you seen my Asm80 tutorial (at www.scc.me.uk)

It is a screen by screen example including downloading the hex file to an RC2014 running SCM.

Steve

simon christo

unread,
Nov 30, 2018, 7:56:24 PM11/30/18
to RC2014-Z80
Hello.How do you gat a image converted to bit-mapped, and then 'Intel Hex Dumped' into 
a part of the RC2014's memory.Thanks Simon.

simon christo

unread,
Nov 30, 2018, 10:24:20 PM11/30/18
to RC2014-Z80
Just a question on installing the 3X Input Board & the 3X Output Board together.
I take it that the number of inputs and outputs through the I/O boards is 256.
This means the I/O number can't be duplicated for a Input & Output - I think?
So it looks like I'll have to put 'some links' on the Input board to keep the I/O numbers
seperated.If any rework is required, I only need 3X Input & 3x Output boards
anyway.Thanks Simon. 

Mark T

unread,
Dec 1, 2018, 12:25:20 AM12/1/18
to RC2014-Z80
If by the I/O number you mean the address, then yes you can have an input port at the same address as an output port. The z80 uses the RD line to control the input port and the WR line to control the output port.

You should not have two input ports on the same address, as both input devices would drive the data bus at the same time, possibly to different logic levels and short each other's outputs.

You could possibly put two output ports on the same address, but then both output devices are written with the same data for every output to that address.

Dave Everett

unread,
Dec 1, 2018, 5:12:08 AM12/1/18
to RC2014-Z80


You can't have them on the same address. Both boards use WR as a selector on the 138 chip. So if you had addresses 0,1,2 for the output board, then the 1st available address for the input board is 3.

Dave

Mark T

unread,
Dec 1, 2018, 12:45:49 PM12/1/18
to RC2014-Z80
Input boards are selected with WR high and output boards with WR low.

simon christo

unread,
Dec 3, 2018, 3:54:15 AM12/3/18
to RC2014-Z80
Can I get software that converts a Bit-Mapped image into a Intel Hex Dump file?
It's for the RC2014.Thanks Simon.

simon christo

unread,
Dec 5, 2018, 8:04:00 AM12/5/18
to RC2014-Z80
How do I get a Bit-Mapped picture loaded into the RC2014?
Thanks Simon.

Steve Cousins

unread,
Dec 6, 2018, 4:50:18 PM12/6/18
to RC2014-Z80
Hi Simon

It doesn't look like anyone has an answer to this question.

I guess if you already have a bitmap in the format you want then you could rename the file .HEX and use SCM's hex download. Perhaps there is more to your question than that.

If you need to convert a bitmap file, then you could write a utility to do it. The file formats are most likely well documented on the net, and if you start with one of the simpler formats the utility will not be complex. I've done this in the past to convert a .BMP into a proprietary format for use in a microcontroller. 

Other than the above, I can't think of anything to help with getting bit-mapped pictures into the RC2014.

Steve

djrm

unread,
Dec 6, 2018, 5:16:02 PM12/6/18
to RC2014-Z80

Hi Simon,


As Steve says I expect there is more to your question than is apparent. However if you need to convert a bitmap to some other format there are several tools to help you to do this, a google search shows the kind of thing I'm thinking of, for example: 

Conversion to and from Intel hex to binary can be performed with many  file conversion tools, I've been successfully using this one recently:
It can import and export a hex file as well as loading and saving binary files. Recently I've used it for manipulating eprom contents.

What you do with a bitmap when it is on the RC2014 I cant imagine.

hth David.

simon christo

unread,
Dec 7, 2018, 5:49:52 PM12/7/18
to RC2014-Z80
Hi again.I need to get a  2 colour B/W bit-mapped mage into the RC2014 around 12kB in size,
to  be displayed on a  240 X 128 pixel LCD  display.I believe that converting the 
file to HEX will work.Thanks Simon. 

simon christo

unread,
Dec 7, 2018, 6:27:01 PM12/7/18
to RC2014-Z80
Hello.I'm using a photo package called 'Irfan view' and it does not allow me to copy the HEX
file.How do I upload my HEX file to the on-line ASM80 editor from my HDD?Thanks Simon.

simon christo

unread,
Dec 7, 2018, 9:42:50 PM12/7/18
to RC2014-Z80
Hi.I was just thinking, under ASM80 there needs to be a db prefix for 'data bit'.So I take it that it's pretty hard to find a program that will load a bit-mapped image automatically once the ORG 8000 has been set.Thanks Simon.

Виталий Головач

unread,
Dec 7, 2018, 11:47:40 PM12/7/18
to RC2014-Z80
Hi! And what if you write such a program yourself! This will be good practice in C, BASIC, or assembly language.

суббота, 8 декабря 2018 г., 5:42:50 UTC+3 пользователь simon christo написал:
Reply all
Reply to author
Forward
0 new messages