Nombre  : X8085 (UBZ/BZ+)
Tamao  : 11609.5 Bytes, cheksum: # 3554h
Lenguaje: System-Rpl / User-Rpl
Fecha   : 03/02/99

Autor   : Luis M. Gallardo D.
Web     : http://www.angelfire.com/ok/hp48g
E-mail  : hp48g@mailcity.com
               
Descripcin:
-----------
	El programa X8085 es un SIMULADOR del microprocesador 8085. Es importante no confundir
X8085 con un EMULADOR, ya que se SIMULA el funcionamiento de un microprocesador 8085. Con X8085
se puede compilar programas en mnemnicos, es decir traducirlos a cdigos hexadecimales, y se
pueden tambin correr dichos programas.
		       

Contenido de X8085.zip:
----------------------

        X8085.          El programa X8085 para la hp48
        EDT.prg         Programa editor de Textos (*)
        X8085.txt       Este archivo

(*) Este programa no es de mi autora. Desconozco el autor.


Archivos ejecutables:
---------------------

	Dentro del Directorio 'X8085' vienen los siguientes archivos ejecutables:

CRUN: 	Compila y carga al simulador X8085 un programa en mnemnico que	est en la pila. 

COMP:	Compila un programa en mnemnico que est en la pila y devuelve	su equivalente en cdigo
	hexadecimal. Los cdigos en hexadecimales quedan listos en la pila para verse con
	cualquier visor de textos como Lupa, Visor, EDT, etc.

RUN:	Ejecuta el simulador X8085 con un programa previamente cargado.

EJEM:	Ejemplo de un programa en mnemnico.

UBZ:	Programa descompresor de archivos. Este programa se puede eliminar si se tiene ya
	guardado en el directorio o si se tiene	instalada la librera BZ+. 


Argumentos de cada Programa:
---------------------------

CRUN: 	Requiere el programa en mnemnico en el nivel dos de la pila y en el nivel uno la
	direccin de la localidad de memoria donde se comenzar a cargar el programa. La
	localidad de memoria se	puede obviar y el simulador lo alojar a partir de la localidad
	#6000h. Ejemplo:

	2: "MVI A,30"			1: "MVI A,30"
	1: #7000h			(asume como direccin #6000h)

COMP:	Los mismos argumentos de CRUN.

RUN:	No requiere argumentos.


Funcionamiento del Simulador (RUN):
----------------------------------

	El simulador X8085 contiene las siguientes funciones:

PASO: 	Permite ejecutar una instruccin del programa cargado en el simulador.

EXE:	Permite ejecutar todas las instrucciones del programa hasta la instruccin "HLT", la cual
	detiene el funcionamiento del micro.

REGS:	Para alterar el contenido de los registros del 8085.

LOCM:	Permite alterar cualquier localidad de memoria, el valor del PC, as como el
	STACK POINTER del micro.

CODIG:	Muestra el cdigo en mnemnico de la instruccin actual del PC.

INFO:	Informacin sobre X8085.

[Arriba]:  Incrementa el valor del PC, pero sin ejecutar la instruccin.

[Abajo]:   Decrementa el valor del PC.

[Enter]:   Reinicia el simulador. Vuelve al inicio del programa.

[ON]:	   Salir.

[OFF]: 	   Apaga la calculadora.



Instrucciones del Microprocesador Intel 8085:
-------------------------------------------

Transferencia de datos:

MOV A,A		MOV A,B		MOV A,C		MOV A,D		MOV A,E		MOV A,H
MOV A,L		MOV A,M		MOV B,A		MOV B,B		MOV B,C		MOV B,D
MOV B,E		MOV B,H		MOV B,L		MOV B,M		MOV C,A		MOV C,B
MOV C,C		MOV C,D		MOV C,E		MOV C,H		MOV C,L		MOV C,M
MOV D,A		MOV D,B		MOV D,C		MOV D,D		MOV D,E		MOV D,H
MOV D,L		MOV D,M		MOV E,A		MOV E,B		MOV E,C		MOV E,D
MOV E,E		MOV E,H		MOV E,L		MOV E,M		MOV H,A		MOV H,B
MOV H,C		MOV H,D		MOV H,E		MOV H,H		MOV H,L		MOV H,M
MOV L,A		MOV L,B		MOV L,C		MOV L,D		MOV L,E		MOV L,H
MOV L,L		MOV L,M		MOV M,A		MOV M,B		MOV M,C		MOV M,D
MOV M,E		MOV M,H		MOV M,L		MOV M,M		MIV A		MIV B
MIV C		MIV D		MIV E		MIV H		MIV L		MIV M
LXI B		LXI D		LXI H		LXI SP		LDAX B		LDAX D
LHLD		LDA		STAX B		STAX D		SHLD		STA
XCHG

Lgicas y aritmticas:

ADD A	ADD B	ADD C	ADD D	ADD E	ADD H	ADD L	ADD M	ADC A	ADC B	ADC C	ADC D
ADC E	ADC H	ADC L	ADC M	SUB A	SUB B	SUB C	SUB D	SUB E	SUB H	SUB L	SUB M
SBB A	SBB B	SBB C	SBB D	SBB E	SBB H	SBB L	SBB M	DAD B	DAD D	DAD H	DAD SP
INR A	INR B	INR C	INR D	INR E	INR H	INR L	INR M	INX B	INX D	INX H	INX SP
DCR A	DCR B	DCR C	DCR D	DCR E	DCR H	DCR L	DCR M	DCX B	DCX D	DCX H	DCX SP
DAA	CMA STC	CMC	RLC	RRC	RAL	RAR	ANA A	ANA B	ANA C	ANA D	ANA E
ANA H	ANA L	ANA M	XRA A	XRA B	XRA C	XRA D	XRA E	XRA H	XRA L	XRA M	ORA A
ORA B	ORA C	ORA D	ORA E	ORA H	ORA L	ORA M	CMP A	CMP B	CMP C	CMP D	CMP E
CMP H	CMP L	CMP M	ADI	ACI	SUI	SBI	ANI	XRI	ORI	CPI

Bifurcacin:

JMP	JNZ	JZ	JNC	JC	JPO	JPE	JP	JM	PCHL	CALL	CNZ
CZ	CNC	CC	CPO	CPE	CP	CM	RET	RNZ	RZ	RNC	RC
RPO	RPE	RP	RM	RST 0	RST 1	RST 2	RST 3	RST 4	RST 5	RST 6	RST 7

Pila, I/O y control de la mquina (8085):

PUSH B		PUSH D		PUSH H		PUSH PSW	POP B		POP D
POP H		POP PSW		XTHL		SPHL		OUT		IN
DI		EI		NOP		HLT		RIM		SI


Consideraciones de X8085:
------------------------

	Cuando se trabaje con X8085 se tiene que tomar en cuenta las siguientes consideraciones
para el correcto funcionamiento:

1.- 	El compilador de X8085 en muy sensible. Se debe colocar toda la instruccin en mayscula.
	Terminada cada instruccin se debe dar un salto de lnea (solo uno). Tambin se debe
	evitar terminar con un salto de lnea. El compilador detectar cualquier instruccin
	incorrecta e indicar que en cual nmero de lnea se encuentra el error.
2.-	Las localidades de memoria RAM disponibles en el simulador van desde la direccin #6000h
	hasta la #7FFFh. Cualquier operacin del simulador fuera de este rango generar un
	mensaje de error y su inmediata cancelacin.
3.-	Cuando se intente reescribir una localidad de memoria fuera del	rango de RAM, el
	simulador sobre escribir por defecto la direccin #7FFFh.
4.-	Cuando se tenga que trabajar con subrutinas, estas se deben declarar con su respectivo
	nombre y seguida de dos puntos (:).
	Ejemplo:

		MVI B,15
		RETORNO:	(DECLARACIN DE SUBRUTINA RETORNO)
		DCR B
		JNZ RETORNO	(SALTO A SUBRUTINA RETORNO)
		HLT

5.-	No todas las instrucciones estn simuladas en X8085, ya que algunas solo se pueden hacer
	con el microprocesador en si. Las instrucciones no simuladas son las siguientes:

		1) RST 1	2) RST 2	3) RST 3	4) RST 4
		5) RST 5	6) RST 6	7) OUT		8) IN
		9) DI	       10) EI	       11) RIM	       12) SIM

6.-	Para mostrar en los displays se ha proporcionado una combinacin de funciones para tal
	fin. Para mostrar algn valor en los displays de usa la siguiente sintaxis:

				1) MVI A,A  B
				2) MVI C,0  1
				3) RST 7

	A) Si el registro A vale #Ah indica que se mostrar datos en los displays. Si el registro
	   A vale #Bh los displays son puestos en blanco.
	B) Si el registro C vale #0h se mostrar en los 2 displays de la derecha el valor
	   contenido en el registro L (2 Bytes). Si vale #1h se mostrar en los 4 displays de la
	   izquierda el valor de H y L (4 Bytes). Todo lo anterior es vlido si el registro A
	   vale #Ah.




Luis M. Gallardo D.

Dudas, comentarios o sugerencias:

E-mail: hp48g@mailcity.com

VISITA MI PAGINA: http://www.angelfire.com/ok/hp48g
