Autor Tema: Parchar archivos .npl para usar en modo experto  (Leído 6766 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Mike79

  • PIC12
  • **
  • Mensajes: 72
    • Mike79
Parchar archivos .npl para usar en modo experto
« en: 12 de Mayo de 2008, 19:37:49 »
Aviso a los Moderadores del foro: Antes que nada, quiero aclarar que no pretendo incumplir con reglas del foro ni tampoco propagar ningún tipo de malware. Este programa es un .exe ligitimo, y si creen que no debe mostrarse este tema, acepto mensajes privados. Espero que NO me vuelen a borrar este post SIN dejarme siquiera un mensaje de por que fue borrado. Gracias.


Bueno, como ustedes saben, si se cambia a ModoExperto, Niple permite usar los registros del sistema, y los bits del registro del sistema.

Pero si ustedes quieran usar variables como PCLATH, es un poco engorroso por que solo puedes mover registros, no puedes editar los Bits ni mucho menos declararle bits propios para luego usarlos.

Es por eso que se me ocurrió hacer un pequeño programa para parchar los archivos .npl

Lo que hace este programa es definir los bits del registro, para poder usarse. Por ejemplo si queremos usar PCLATH entonces abrimos nuestro .npl, escojemos de la lista de registros   PCLATH y luego le damos Parchar.

Esto creara en nuestro archivo .npl los bits PCLATH0, PCLATH1, PCLATH2, PCLATH3, PCLATH4, PCLATH5, PCLATH6, PCLATH7 para poder usarlos.
El programa guarda el archivo original con una extensión .back para poder usarlo en caso de que algo salga mal.

Una vez parchado el archivo .npl, basta con abrirlo en niple y usar los bits, si intentan seleccionar primero el registro PCLATH para que les muestra los bits, niple les dira que este registro no tiene bits definidos (debe ser una validación que tiene ya niple), pero si ustedes seleccionan directamente el bit, sin seleccionar registro antes, niple lo acepta y compila sin ningún problema.

Esto sirve para declarar bits de cualquier registro, incluso de registros de usuario.

Adjunto el archivo comprimido en un zip.

Bueno, usenlo y disfrutenlo. Si tienen observaciones espero que las pongan aquí. Al igual se aceptan comentarios para mejorar el codigo.
Espero posteriormente publicar un diagrama de como hacer cambios de paginas usando este parche.
Yo se que funciona con Niple v3, v4 y v5.
Saludos!
-
Mike79


Desconectado Mike79

  • PIC12
  • **
  • Mensajes: 72
    • Mike79
Re: Parchar archivos .npl para usar en modo experto
« Respuesta #1 en: 12 de Mayo de 2008, 21:09:25 »
Bueno ahora si, ya tengo los pasos para hacer cambio de Pagina en niple.

Paso 1.- Crear un proyecto en niple y ponerle Guardar, es importante guardarlo despues de crearlo, si no, solo se guarda un archivo vacio.

Paso 2.- Cerrar Niple (O abrir otro archivo para evitar que niple sobreescriba el archivo ya parchado).

Paso 3.- Correr el programa parcheregistros-0-1.exe y abrir nuestro archivo .npl  luego escojer PCLATH de la lista de registros y darle parchar.

Paso 4.- Abrir nuevamente el archivo .npl en niple.

Paso 5.- Poner el bit PCLATH4=0 y el bit PCLATH3=1   Para cambiar a la pagina 1

Paso 6.- Crear una rutina nueva y en nuestro principal llamar el nombre de la rutina.

Paso 7.- Despues de llamar a nuestra rutina en nuestro principal, cambiar de nuevo los Bits 3 y 4 de PCLATH a 0 para asegurarnos que hemos cambiado a la página 0.

Paso 8.- Terminar nuestro programa, si lo hicieron bien, debe verse algo parecido a la figura 1.

Paso 9.- En la rutina que hemos creado (en mi caso le puse Pagina 1), yo puse para este ejemplo un nop, que tiene el comentario Insertar ORG 0x800 antes de esta rutina. Esto es para modificar nuestro archivo .asm a mano de una forma más facil.

Paso 10.- Generar el codigo .asm

Paso 11.- Una vez generado el .asm y antes de compilar, debemos hacer una modificación a mano, y es poner antes de nuestra rutina el comando ORG 0x800, por ejemplo, mi rutina se llama usr_Pagina1 entonces le damos buscar al archivo .asm y el codigo queda algo así:

;------------------------------------------------------------
;                  Declaración de Subrutinas
;------------------------------------------------------------

org 0x800  ; Apartir de aqui es pagina1

usr_pagina1
.... codigo de la rutina
   return


Hay que tener cuidado que si existen otras rutinas después de esta, entonces hay que hacer copy and paste para dejar el resto de las rutinas antes de la instrucción  org 0x800, de lo contrario quedarían en la página 1.

Paso 12.- Compilar y usar.  Parecen muchos pasos pero realmente son pocos.
Les muestro como quedan los diagramas en niple.




Espero sus comentarios, lo he probado con el depurador y funciona muy bien.
Saludos!
-
Mike79
« Última modificación: 13 de Mayo de 2008, 05:12:43 por Mike79 »

Desconectado jorgecano

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 230
Re: Parchar archivos .npl para usar en modo experto
« Respuesta #2 en: 15 de Mayo de 2008, 23:09:13 »
Mike,

Me hubieras avisado que querias que se generen los bits y lo haciamos.

Vamos a hacer que el programa genera automaticamente los bits del registro PCLATH.

saludos
Jorge.

Desconectado Mike79

  • PIC12
  • **
  • Mensajes: 72
    • Mike79
Re: Parchar archivos .npl para usar en modo experto
« Respuesta #3 en: 19 de Mayo de 2008, 20:44:47 »
Gracias Jorge, es que tenia rato sin saber de tí.

Ya sabes que cuando estoy de ocioso hago cosas así :P

Seria bueno que cuando pongas modo experto te deje editar cualquier Bit, aunque sean los de PCLATH o cualquier otro. :P
Digo, si estas en experto, tu sabes si estropeas algo

Saludos!
-
Mike79

Desconectado xiran

  • PIC16
  • ***
  • Mensajes: 100
Re: Parchar archivos .npl para usar en modo experto
« Respuesta #4 en: 12 de Junio de 2014, 01:17:51 »
Hola mike79! estoy bastante interesado en el programa q hiciste para modificar el archivo .npl (ya lo bajé, pero aun no lo pruebo), yo estoy en la version 5.6 de niple, y tengo el problema de q al chequear el estado de c2out, viene mal declarado (viene intercambiado el cmcon con el cvrcon, y el cmcon original, no tiene declarados los bits), me gustaria, de ser posible, si pudieras comentarme como podria hacerle para incluir funciones q tiene el pic, pero q no vienen en niple (un ejemplo, en el 18f2550, usar tblrd*+, o tblwt*+), o añadir registros en direcciones (por ejemplo, el registro tablat, no esta registrado) saludos!
Update: ya lo probé y efectivamente, parcha el registro declarado! Ya solo queda resolver los otros 2 problemas.


 

anything