V20-MBC Assembly Language Programs (cp/m-86)

by coopzone in Circuits > Software

1142 Views, 2 Favorites, 0 Comments

V20-MBC Assembly Language Programs (cp/m-86)

Untitled.png

These are two very simple 8088/8086 assembly language programs, to be used as examples, hopefully to get people started!

They are for the V20-MBC SBC computer designed by just4fun, found here:

https://hackaday.io/project/170924-v20-mbc-a-v20-8...

The programs show how to control the USER LED / USER SWITCH and how to control the GPIO output to control an LED in this case.

They are written for ASM86 that's provided under CP/M-86 1.1 on the computer.

Supplies

I would suggest getting a V20-MBC, either from the shop supporting them or have a search round auction / sales sites, places like EBAY etc.

You will also need a laptop/computer to run a terminal program on in order to talk to the SBC over a USB/TTY adaptor.

See the web site provided by the author above. This hardware / software is mostly under GPLv3 and the site contains all the info you need to build your own V20-MBC if you prefer.

Get the Examples

The software can be found on GitHub to download, this is by far the best way to get the source code. Once you have it you can copy it to the V20-MBC by:

1, Manually typing it in. Just like the 1980's computer mags!

2, Use the Xmodem program to transfer the files, normally installed on drive F: (sorry beyond the scope of this instructable to show this)

3, Copy the files to the SD-CARD using your PC and the cpmtools package. (again beyond this instructable)

They can be found at:

https://github.com/coopzone-dc/v20-mbc-examples

The files ending with A86 and for running on CP/M-86 and are in 8086 code
The files ending in ASM are for cp/m 2.2 and written in 8080 code

Steps to Compile

Once you have the source code under CP/M-86 on your V20-MBC, you can compile them like this (i assume you have copied them to drive H: here, you should use whatever driver letter you put the files on):

1, check you have them:

F>h:
H>dir
H: LED      A86 : GPIO     A86                                                  
H><br>

2, Now compile them (i've just shown the GPIO.A86 one here as an example)

H>                                                                              
H>a:asm86 gpio                                                                  
                                                                                
CP/M 8086 ASSEMBLER VER 1.1                                                     
END OF PASS 1                                                                   
END OF PASS 2                                                                   
END OF ASSEMBLY.  NUMBER OF ERRORS:   0.  USE FACTOR:  0%                       
                                                                                
H>

3, This actually produces several files, most of these are for info and debuging (normally on much larger programs!):

SYM - the symbol file, details of the labels used etc

LST - a listing file, shows assembled code. Originally designed to be printed out.

H86 - the assembled code in intel Hex format, see next step for converting this to a cmd file.

DIR example

H>dir                                                                           
H: LED      A86 : GPIO     A86 : GPIO     LST : GPIO     H86                    
H: GPIO     SYM                                                                 
H><br>

Create an Executable CMD File

Once you have compiled your programs, you need to convert the Intel Hex file into a CMD file that cp/m-86 can load into the TPA and run:

1, Produce a CMD file

H>                                                                              
H>a:gencmd gpio                                                                 
                                                                                
BYTES READ    0241                                                              
RECORDS WRITTEN 08                                                              
                                                                                
                                                                                
H>

This step will produce a final file called GPIO.CMD

2, Run the program:

H>gpio                                                                          
User GPIO test, press w for diagram, any key to exit                            
Demo HW wiring (See A250220-sch.pdf schematic):                                 
 GPIO                                                                           
 (J7)                                                                           
+-----+                                                                         
| 1 2 |                                                                         
| 3 4 |   LED         RESISTOR                                                  
| 5 6 |                 680                                                     
| 7 8-+--->|-----------/\/\/--+                                                 
| 9 10|                       |                                                 
|11 12|                       |                                                 
|13 14|                       |                                                 
|15 16|                       |                                                 
|17 18|                       |                                                 
|19 20+-----------------------+ GND                                             
+-----+                                                                         
User GPIO test, press w for diagram, any key to exit          <br>

At this point, if you have connect an LED (as shown above after i pressed w for diagram) it should be blinking on and off.

Press a key (including the USRKEY) to exit the program.

Try the LED one next, it's more or less the same, but does not look for the letter 'w'

Thanks