8085 Simulator IDE
Getting Started

There are six examples bundled with 8085 Simulator IDE. They are located in application folder. This is short step by step guide for the beginners that will help them to test these examples and in that way explore the most important features of 8085 Simulator IDE.


   Example 1
   Example 2
   Example 3
   Example 4
   Example 5
   Example 6

Example 1
 
- Examine memfill.asm file from the application folder. This assembler routine fills the memory range FF00H - FFFFH with values FFH - 00H respectively.
 
        MVI A,0FFH ;initial value in register A
        LXI B,0FF00H ;initial value in register pair BC
L1:     STAX B ;load value in A to the memory location addressed by BC
        INX B ;increment BC
        DCR A ;decrement A
        JNZ L1 ;loop until value in A is zero
        STAX B ;load value 00H to memory location FFFFH
        HLT ;halt cpu
        .END

 
- Start 8085 Simulator IDE.
- Click on Tools\Assembler.
- Click on File\Open.
- Select memfill.asm file and click on Open. The assembler source program will be displayed in the editor.
- Click on Tools\Assemble. After the operation is completed the assembler will generate two files: memfill.lst (assembler listing with assembled opcodes) and memfill.obj (binary image of assembled routine ready to be loaded into memory). The output listing file memfill.lst will be displayed.
- Click on Tools\Load. That will load the program file memfill.obj into 8085 Simulator IDE memory.
- Close assembler window.
- Select the option Options\Enable logging.
- Select the option Options\Refresh Memory Editor.
- Click on Tools\Memory Editor. That will open the Memory Editor window. 13 bytes of the program are in focus.
- Reposition the windows on the screen to get better view, if necessary use Always On Top option on Memory Editor window.
- Using the scroll bar select the memory range FF00-FFFF.
- Check that Options\HLT Stops Simulation option is selected.
- Check that Rate\Fast simulation rate is selected. You can change the simulation rate even when the simulation is running.
- Click on Simulation\Start. The simulation will start immediately.
- Watch how the program affect the selected memory range.
- The simulation will automatically stop in about one minute.
- Log file log.txt created during program simulation and located in application folder will be displayed in Notepad.
 
- Screenshot: view


 
 

Example 2
 
- Examine memfill2.asm file from the application folder. This is modified example 1. The value that will be used to fill the memory range FF00H - FFFFH is get from I/O port 01H. The routine is then repeated.
 
L2:     IN 01H ;get value on port 01H to be used for memory fill
        MVI D,0FFH ;initial value in counter register D
        LXI B,0FF00H ;initial value in pointer register pair BC
L1:     STAX B ;load value in A to the memory location addressed by BC
        INX B ;increment pointer BC
        DCR D ;decrement counter D
        JNZ L1 ;loop until value in D is zero
        STAX B ;fill the last memory location FFFFH
        JMP L2 ;repeat routine
        .END

 
- Start 8085 Simulator IDE.
- Click on Tools\Assembler.
- Click on File\Open.
- Select memfill2.asm file and click on Open. The assembler source program will be displayed in the editor.
- Click on Tools\Assemble. After the operation is completed the assembler will generate two files: memfill2.lst (assembler listing with assembled opcodes) and memfill2.obj (binary image of assembled routine ready to be loaded into memory). The output listing file memfill2.lst will be displayed.
- Close assembler window.
- Click on File\Load Program.
- Select memfill2.obj file and click on Open. That will load the program into 8085 Simulator IDE memory.
- Select the option Options\Refresh Memory Editor.
- Select the option Options\Prompt For Value Before IN Instruction.
- Click on Tools\Memory Editor. That will open the Memory Editor window. 17 bytes of the program are in focus.
- Reposition the windows on the screen to get better view, if necessary use Always On Top option on Memory Editor window.
- Using the scroll bar select the memory range FF00-FFFF.
- Check that Rate\Extremely Fast simulation rate is selected. You can change the simulation rate even when the simulation is running.
- Click on Simulation\Start. The simulation will start immediately.
- The simulator will display IN Instruction Entry Dialog where you should enter a value in the hex range 00-FF or click on Keyboard to easily get the ASCII code for any of the keyboard keys. Click on Enter to accept the selected value.
- Watch how the program affect the displayed memory range by loading the selected value to all those memory locations.
- The last two steps will be repeated until you stop the simulation by clicking on Simulation\Stop.
 
- Screenshot: view


 
 

Example 3
 
- Examine bin2bcd.asm file from the application folder. This example is a binary to BCD conversion routine.
 
START:  LXI SP,STACK ;initialize stack pointer
        LXI H,BINBYT ;point HL index to where binary number is stored
        MOV A,M ;transfer byte
        LXI H,OUTBUF ;point HL index to output-buffer memory
        CALL BINBCD
        HLT
 
BINBCD:
        MVI B,100 ;load 100 into register B (power of ten holding register)
        CALL BCD ;call conversion for BCD3
        MVI B,10 ;load 10 into register B
        CALL BCD ;call conversion for BCD2
        MOV M,A ;store BCD1
        RET
 
BCD:
        MVI M,0FFH ;load buffer with -1
STORE:  INR M ;clear buffer first and increment for each subtraction
        SUB B ;subtract power of ten from binary number
        JNC STORE ;if number is larger than power of ten, go back and add 1 to buffer
        ADD B ;if no, add power of ten to get back remainder
        INX H ;go to next buffer location
        RET
 
        .ORG 0100H
BINBYT  .DB 234 ;example binary number to be converted into a BCD number
OUTBUF  ;output-buffer memory location
 
STACK   .EQU 0FFFFH ;definition of stack pointer initialization address
        .END

 
- Start 8085 Simulator IDE.
- Click on Tools\Assembler.
- Click on File\Open.
- Select bin2bcd.asm file and click on Open. The assembler source program will be displayed in the editor.
- Click on Tools\Assemble. After the operation is completed the assembler will generate two files: bin2bcd.lst (assembler listing with assembled opcodes) and bin2bcd.obj (binary image of assembled routine ready to be loaded into memory). The output listing file bin2bcd2.lst will be displayed.
- Close assembler window.
- Click on File\Load Program.
- Select memfill2.obj file and click on Open. That will load the program into 8085 Simulator IDE memory.
- Select the option Options\Refresh Memory Editor.
- Click on Tools\Memory Editor. That will open the Memory Editor window.
- Reposition the windows on the screen to get better view, if necessary use Always On Top option on Memory Editor window.
- Using the scroll bar select the memory range 0100-01FF.
- Click on Tools\Simulation Log Viewer. That will open the Simulation Log Viewer window.
- Reposition the windows on the screen to get better view, if necessary use Always On Top option on Simulation Log Viewer window.
- Select the Keep Last Record In Focus option.
- Check that Rate\Fast simulation rate is selected. You can change the simulation rate even when the simulation is running.
- Check that Options\HLT Stops Simulation option is selected.
- Click on Simulation\Start. The simulation will start immediately.
- Watch how the program affect the selected memory range.
- The simulation will stop automatically when HLT instruction is reached.
 
- Screenshot: view


 
 

Example 4
 
- Examine interrupt.asm file from the application folder. This example shows how peripheral devices and interrupts interfaces are used. The routine first sends five data bytes to port 02H (should be treated as the initialization of the peripheral device) and then responds to generated interrupts by echoing the value received on port 01H to port 02H.
 
        JMP 0100H ;jump to main routine
 
        .ORG 003CH ;interrupt routine
        IN 01H ;get the value from port 01H
        OUT 02H ;echo that value to port 02H
        EI ;enable interrupts
        RET ;return from interrupt
 
        .ORG 0100H ;main rountine
        JMP L1 ;jump over data area
L2:     .DB 0AH ;data byte 1
        .DB 0BH ;data byte 2
        .DB 0CH ;data byte 3
        .DB 0DH ;data byte 4
        .DB 0EH ;data byte 5
L1:     MVI D,05H ;load counter register D
        LXI B,L2 ;load pointer register pair BC
L3:     LDAX B ;get the data byte
        OUT 02H ;send it to port 02H
        INX B ;increment pointer BC
        DCR D ;decrement counter D
        JNZ L3 ;loop until all data bytes are sent
        MVI A,0BH ;prepare interrupt mask
        SIM ;set interrupt mask
        EI ;enable interrupts
L4:     JMP L4 ;loop forever
        .END

 
- Start 8085 Simulator IDE.
- Click on Tools\Assembler.
- Click on File\Open.
- Select interrupt.asm file and click on Open. The assembler source program will be displayed in the editor.
- Click on Tools\Assemble. After the operation is completed the assembler will generate two files: interrupt.lst (assembler listing with assembled opcodes) and interrupt.obj (binary image of assembled routine ready to be loaded into memory). The output listing file interrupt.lst will be displayed.
- Close assembler window.
- Click on File\Load Program.
- Select interrupt.obj file and click on Open. That will load the program into 8085 Simulator IDE memory.
- Select the Rate\Normal simulation rate. You can change the simulation rate even when the simulation is running.
- UNSELECT the option Options\Prompt For Value Before IN Instruction.
- Select the option Options\Enable IN/OUT Instructions Logging.
- Click on Tools\Peripheral Devices. That will open the Peripheral Devices window.
- Reposition the windows on the screen to get better view, if necessary use Always On Top option on Peripheral Devices window.
- Turn on the Device 1 by clicking on its OFF button. Enter 01 for its port number.
- Select IN option button to configure it as an input device.
- Turn on the Device 2 by clicking on its OFF button. Enter 02 for its port number.
- Do not change its default configuration of an output device.
- Click on Simulation\Start. The simulation will start immediately.
- Watch the program sending 5 bytes 0A, 0B, 0C, 0D, 0E to the I/O device on port 02.
- By toggling individual bits of Device 1, prepare an arbitrary value (say AA). You can also prepare the value that will be supplied by this device by clicking on the value label next to the graphical representation. Then by clicking on Keyboard button you will be able to easily get the ASCII code for any of the keyboard keys.
- This program uses RST 7.5 interrupt, so after the EI instruction RST 7.5 button on interrupt interface is enabled (TRAP and INTR buttons will also be enabled, but they should not be used with this example.).
- Click on RST 7.5 button. That will send the interrupt signal to the 8085 Simulator, and the execution of the interrupt routine will start.
- The interrupt routine reads the byte supplied by the Device 1 and echoes it to the Device 2.
- The interrupt generation can be repeated.
- Click on Simulation\Stop to stop the simulation.
- Examine I/O log file io.txt from the application folder.
 
- Screenshot: view


 
 

Example 5
 
- Examine basmul.bas file from the application folder. This is Basic source program that will be compiled using integrated Basic compiler. It is an integer multiply routine that will multiply two integer numbers 123 and 234.
 
Dim a As Integer
Dim b As Integer
Dim c As Integer
 
a = 123 'First number
b = 234 'Second number
c = a * b

 
- Start 8085 Simulator IDE.
- Click on Tools\BASIC Compiler.
- Click on File\Open.
- Select basmul.bas file and click on Open. The basic source program will be displayed in the editor.
- Click on Tools\Compile. The compiler will generate basmul.asm file with assembler source.
- Close BASIC Compiler window.
- Click on Tools\Assembler.
- Click on File\Open.
- Select basmul.asm file and click on Open. The assembler source program will be displayed in the editor.
- Click on Tools\Assemble. After the operation is completed the assembler will generate two files: basmul.lst (assembler listing with assembled opcodes) and basmul.obj (binary image of assembled routine ready to be loaded into memory). The output listing file basmul.lst will be displayed.
- Click on Tools\Load. That will load the program file basmul.obj into 8085 Simulator IDE memory.
- Close assembler window.
- Check that Options\HLT Stops Simulation option is selected.
- Select the option Options\Refresh Breakpoints Manager.
- Click on Tools\Breakpoints Manager. That will open the Breakpoints Manager window.
- Reposition the windows on the screen to get better view, if necessary use Always On Top option on Breakpoints Manager window.
- Click on the line corresponding to 003E address to define the breakpoint on this instruction. That is the beginning of integer multiplication routine.
- Select the Hold PC In Focus option.
- Select the Rate\Fast simulation rate.
- Click on Simulation\Start. The simulation will start immediately.
- When the 8085 Simulator IDE reach the breakpoint it will automatically switch to Step By Step simulation rate.
- Click on Rate\Fast to continue with simulation.
- Watch the program execution on the Breakpoints Manager.
- The simulation will stop when the HLT instruction is reached. The result of multiplication 28782 (706EH) will reside in HL register pair and also in memory locations assigned to variable 'c'.
 
- Screenshot: view


 
 

Example 6
 
- Examine basprint.bas file from the application folder. This is Basic source program that will be compiled using integrated Basic compiler. It is an integer multiply routine that will multiply two integer numbers -123 and 234 and then send the formatted text showing the result of the operation to the I/O port number 1.
 
Dim a As Integer
Dim b As Integer
Dim c As Integer
 
a = -123 'First number
b = 234 'Second number
c = a * b
 
Print 1, "Number ", a, CrLf
Print 1, "multiplied by ", b, CrLf
Print 1, "equals ", c, "!", CrLf

 
- Start 8085 Simulator IDE.
- Click on Tools\BASIC Compiler.
- Click on File\Open.
- Select basprint.bas file and click on Open. The basic source program will be displayed in the editor.
- Click on Tools\Compile. The compiler will generate basprint.asm file with assembler source.
- Close BASIC Compiler window.
- Click on Tools\Assembler.
- Click on File\Open.
- Select basprint.asm file and click on Open. The assembler source program will be displayed in the editor.
- Click on Tools\Assemble. After the operation is completed the assembler will generate two files: basprint.lst and basprint.obj. The output listing file basprint.lst will be displayed.
- Click on Tools\Load. That will load the program file basprint.obj into 8085 Simulator IDE memory.
- Close assembler window.
- Click on Tools\Peripheral Devices. That will open the Peripheral Devices window.
- Reposition the windows on the screen to get better view, if necessary use Always On Top option on Peripheral Devices window.
- Turn on the Output Terminal by clicking on its OFF button. Enter 1 for its I/O port number.
- Check that Options\HLT Stops Simulation option is selected.
- Select the Rate\Extremely Fast simulation rate.
- Click on Simulation\Start. The simulation will start immediately.
- PRINT routines are slow and it will take some time until the HLT instruction is reached. The program will display formatted text showing the result of the operation on the Output Terminal.
 
- Screenshot: view