elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  programar en lenguaje maquina
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: programar en lenguaje maquina  (Leído 32,779 veces)
D4RIO


Desconectado Desconectado

Mensajes: 1.004


U N I X


Ver Perfil WWW
Re: programar en lenguaje maquina
« Respuesta #10 en: 3 Febrero 2009, 03:00 am »

Agarren un editor hexa y editen un bootstrap que no trae formato. Eso es escribir binario. Si hacen q un programa en C escriba un unsigned char foo=0x04 tendran un 00000100 en el archivo (verifiquen con un editor hexa). Eso hace el ensamblador, reemplazar por code binario... el resto en un EXE o un ELF es formato y depende de la especificación de formato. Vamos, estudiar un poco y todo eso es teoría básica.
Un buen ejercicio es programar un pequeño ensamblador que ensamble unas pocas instrucciónes. No es difícil... hacerlo en ASM es más desafiante  ;D. (PD: no harian nada nuevo... FASM esta escrito en FASM)

Byebye!


En línea

OpenBSDFreeBSD
krackwar


Desconectado Desconectado

Mensajes: 900


Ver Perfil
Re: programar en lenguaje maquina
« Respuesta #11 en: 3 Febrero 2009, 13:50 pm »

Claro , FASM esta escrito ensamblado en FASM , para "programar" en binario bastaria con agarrar el FASM y escribir todo el ejecutable con 
Código:
db numerobinariob
(la b al final espara saber que es binario)


En línea

Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
D4RIO


Desconectado Desconectado

Mensajes: 1.004


U N I X


Ver Perfil WWW
Re: programar en lenguaje maquina
« Respuesta #12 en: 3 Febrero 2009, 14:05 pm »

Sisi... en realidad no es nada guaau... Si miramos cualquier bootstrap, incluido el de Linux y el de Minix si mal no recuerdo (y el de VisOpSis y otros) suelen usar binario cuando aplican máscaras para probar ciertos bits... por ejemplo en la prueba de flags del registro de flags, para hacer el checkeo de microprocesador.

Un "compilador" de binario tampoco es un gran desafío... solo se agrupan los ceros y unos y se escribe un byte como unsigned char (en C) o bien como mapa de bits, o como quieran.

La verdad el hilo no tiene mucha lógica. Sería más provechoso preguntar ¿Como funciona un ensamblador?

S2
En línea

OpenBSDFreeBSD
krackwar


Desconectado Desconectado

Mensajes: 900


Ver Perfil
Re: programar en lenguaje maquina
« Respuesta #13 en: 3 Febrero 2009, 14:18 pm »

Un enesamblador funciona primero aplica las macros y remplasa las constantes , luego que todo esta en Lenguaje ensamblador , hace el paso de cada instruccion a byte , cada ves que se usa una variable ees sumplatada por su posicion .

PD: Todo esto lo saco por logica y por lo que se y e visto , pero si me equivoco en algo por favor decirmelo :P
En línea

Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
>FedeX<

Desconectado Desconectado

Mensajes: 151



Ver Perfil WWW
Re: programar en lenguaje maquina
« Respuesta #14 en: 3 Febrero 2009, 14:26 pm »

Si te olvidaste de una variable al comienzo, ¡fuiste!... No se pueden manipular las direcciones de memoria como el asm las manipula. Quieres agregar algo en el medio del code, una mitad funciona y la otra no.

Entre asm y c, los programas en asm son los mas óptimos. Pero entre asm y lenguaje de máquina (yo creo que) es exactamente lo mismo.
En línea

D4RIO


Desconectado Desconectado

Mensajes: 1.004


U N I X


Ver Perfil WWW
Re: programar en lenguaje maquina
« Respuesta #15 en: 3 Febrero 2009, 15:47 pm »

Citar
Si te olvidaste de una variable al comienzo, ¡fuiste!... No se pueden manipular las direcciones de memoria como el asm las manipula. Quieres agregar algo en el medio del code, una mitad funciona y la otra no.
Porque debes arreglar los offsets. Si de un momento a otro agregas 15 bytes en medio y estabas programando en codigo de máquina, entonces todas las direcciónes posteriores se correrán 15 bytes, y sus referencias tambien.

No obstante, si haces un programa en ASM para que funcione como en C usaras pilas locales a las funciónes. y accederás con la base de la pila más el offset de la variable en la función, por lo que esas variables no darán problemas.

Citar
Entre asm y c, los programas en asm son los mas óptimos
Pero un buen programador en C sabe que es posible tener todo el acceso de bajo nivel y la rentabilidad de ASM desde C... depende que tanto lo conozcas  :rolleyes:

@krackwar: estas muy cerca  :xD
Citar
Un enesamblador funciona primero aplica las macros y remplasa las constantes
Aja...sisi, obviamente despues de hacer las inclusiones de archivos...
Citar
hace el paso de cada instruccion a byte , cada ves que se usa una variable ees sumplatada por su posicion .
Eso depende mucho del ensamblador y del modo... en binario puro sería algo muy similar a eso, pero en un ejecutable con formato se deben hacer muchas cosas más.
Los símbolos, como los Labels, son correctamente ubicados como offsets dentro del ejecutable... luego todos los offsets calculados son reemplazados por constantes literales (que es lo que encuentras al desensamblar), y entonces son ensamblados por el componente más primitivo que simplemente ensambla instrucciónes que vienen con sus operadores literales.
En línea

OpenBSDFreeBSD
krackwar


Desconectado Desconectado

Mensajes: 900


Ver Perfil
Re: programar en lenguaje maquina
« Respuesta #16 en: 3 Febrero 2009, 16:44 pm »

Claro , por ejemplo en el formato PE tiene que hacerlo para que windows entienda el archivo por que si no le aplicara este formato no andarian en windows , se ma abia olvidado los include :P lo que hace es leer el archivo e incluirlo tal cual y luego va aplicando las macros y constantes y luegpo lo traduce a bytes.
En línea

Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: programar en lenguaje maquina
« Respuesta #17 en: 4 Febrero 2009, 07:39 am »

Hola amigos.

Normalmente escribo en la sección de lenguaje c, porque es el que me interesa aprender , pero tengo una pregunta que me parece que es mas de esta sección que de aquella.

Porque siempre que busco en la internet un manual que enseñe a programar en lenguaje maquina, siempre salen son manuales de essambler.

Por lo que he leido una cosa es codigo maquina y otra muy diferente es el essambler, o es que de lenguaje maquina no existen manuales.

agradeciendoles.

atte inga

Puedes aprender ASM de los PIC  primero que son más fáciles y más útiles que los ASM modernos si es para aplicaciones caseras. En empresas me callo.

Código
  1. ;******************************************************************************
  2.  
  3. ;*                                VIDEO PIC 16F877                            *
  4.  
  5. ;*                              (C)2007 ESTEBAN P.A.                          *
  6.  
  7. ;*                                                                            *
  8.  
  9. ;* PROGRAMA PARA REPRESENTAR CARÁCTERES B/N EN UNA PANTALLA DE TELEVISIÓN PAL *
  10.  
  11. ;*                        UTILIZANDO UN PIC 16F877 A 20 MHZ                   *
  12.  
  13. ;*                                                                            *
  14.  
  15. ;******************************************************************************
  16.  
  17.  
  18.  
  19. ;MODO 0 --> MUESTRA UNA PANTALLA DE (X,Y) 20 x 8 CARÁCTERES
  20.  
  21. ;MODO 1 --> MUESTRA UNA PANTALLA DE (X,Y) 7 x 11 CARÁCTERES
  22.  
  23. ;TANTO EL MODO O COMO EL MODO 1 DISPONEN DE 31 CARÁCTERES
  24.  
  25. ;DE 8x8 PIXELS INDEPENDIENTES PARA CADA MODO DE VIDEO.
  26.  
  27.  
  28.  
  29. ;PARA CAMBIAR EL MODO DE VIDEO SE DEBE CAMBIAR EL VALOR DE
  30.  
  31. ;LA ETIQUETA MODO_PANT, LOS VALORES QUE ACEPTA SON 0 Y 1
  32.  
  33. ;0=MODO DE VIDEO 0(20x8 CARÁCTERES) Y MODO DE VIDEO=1(7x11 CARÁCTERES)
  34.  
  35.  
  36.  
  37. ;EL MODO 0 UTILIZA PARTE DE LOS REGISTROS DE MEMORIA DE LOS BANCOS 0 Y 1 DEL PIC,
  38.  
  39. ;LA PANTALLA EN MODO 0 ESTÁ DIVIDIDA EN DOS PARTES, LA PARTE 0(PARTE SUPERIOR DE LA PANTALLA)
  40.  
  41. ;QUE CONTIENE 80 REGISTROS DE MEMORIA DEL BANCO 0 Y LA PARTE 1(PARTE INFERIOR DE LA PANTALLA),
  42.  
  43. ;QUE CONTIENE OTROS 80 REGISTROS DE MEMORIA, PERO DEL BANCO1
  44.  
  45.  
  46.  
  47. ;EL MODO 1 UTILIZA 77 REGISTROS DE MEMORIA DEL BANCO 0
  48.  
  49.  
  50.  
  51. ;LA MAYORIA DE LOS CARÁCTERES GRÁFICOS QUE REPRESENTA EL PROGRAMA
  52.  
  53. ;EN LA TV HAN SIDO COPIADOS DEL MICROORDENADOR SINCLAIR ZX81
  54.  
  55.  
  56.  
  57. ;------------------------------------------------------------------------------
  58.  
  59. ;CONFIGURACIÓN, REGISTROS Y ETIQUETAS DEL PIC
  60.  
  61.  
  62.  
  63. __CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_HS_OSC&_BODEN_OFF&_LVP_OFF
  64.  
  65. list p=16f877A
  66.  
  67. #include p16f877A.inc
  68.  
  69.  
  70.  
  71. LONG_X EQU .20; NUM. MAX. DE CARÁCTERES DE FILA EN MODO 0
  72.  
  73. LONG_Y EQU .8; NUM. MAX. DE LÍNEAS DE UN CARÁCTER EN MODO 0
  74.  
  75. CHARMAXXY EQU .4; NUM. MAX DE CARÁCTERES DE COLUMNA EN MODO 0
  76.  
  77.  
  78.  
  79. LONGX_MODE1 EQU .7; NUM. MAX. DE CARÁCTERES DE FILA EN MODO 1
  80.  
  81. LONGY_MODE1 EQU .8; NUM. MAX DE LÍNEAS DE UN CARÁCTER EN MODO 1
  82.  
  83. CHARMAXY_MODE1 EQU .11; NUM. MAX. DE CARÁCTERES DE COLUMNA EN MODO 1
  84.  
  85.  
  86.  
  87.  
  88.  
  89. ;REGISTROS DE USO PARA EL PROGRAMA
  90.  
  91. CBLOCK 20H
  92.  
  93. CONT,LINE,BYTECHAR,NUMCHAR,NUMCOL
  94.  
  95. CONTCHAR,LINECHAR,BUFFER,CONTLINEA,FLAGSTV
  96.  
  97. INICPANT; DIRECCIÓN DE MEMORIA DONDE COMIENZA LA PARTE 0 DE LA PANTALLA EN MODO 0 Y 1
  98.  
  99. ENDC
  100.  
  101.  
  102.  
  103. PANT2 EQU 0A0H;DIRECCIÓN DE MEMORIA DONDE COMIENZA LA PARTE 1 DE LA PANTALLA EN MODO 0
  104.  
  105.  
  106.  
  107. MODO_PANT EQU .0; 0=PANTALLA EN MODO 0, 1=PANTALLA EN MODO 1
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115. ;------------------------------------------------------------------------------
  116.  
  117.  
  118.  
  119.  
  120.  
  121. ORG 00H
  122.  
  123. GOTO START
  124.  
  125.  
  126.  
  127. ORG 05H
  128.  
  129.  
  130.  
  131.  
  132.  
  133. ;---------------------------JUEGO DE CARÁCTERES--------------------------------
  134.  
  135.  
  136.  
  137. ;-------------------------SET 0 DE CARÁCTERES MODO 0---------------------------
  138.  
  139. BYTEPANT
  140.  
  141. ADDWF BYTECHAR,W
  142.  
  143. ADDWF PCL,F
  144.  
  145. RETLW B'00000000'
  146.  
  147. RETLW B'00000000'
  148.  
  149. RETLW B'00000000'
  150.  
  151. RETLW B'00000000'
  152.  
  153. RETLW B'00000000'; SPACE 0
  154.  
  155. RETLW B'00000000'
  156.  
  157. RETLW B'00000000'
  158.  
  159. RETLW B'00000000'
  160.  
  161.  
  162.  
  163.     RETLW B'00000000'
  164.  
  165. RETLW B'00111100'
  166.  
  167.   RETLW B'01000010'
  168.  
  169.   RETLW B'01000010'
  170.  
  171.   RETLW B'01111110';A 1
  172.  
  173.   RETLW B'01000010'
  174.  
  175.   RETLW B'01000010'
  176.  
  177.   RETLW B'00000000'
  178.  
  179.  
  180.  
  181. RETLW B'00000000'
  182.  
  183. RETLW B'01111100'
  184.  
  185. RETLW B'01000010'
  186.  
  187. RETLW B'01111100'
  188.  
  189. RETLW B'01000010';B 2
  190.  
  191. RETLW B'01000010'
  192.  
  193. RETLW B'01111100'
  194.  
  195. RETLW B'00000000'
  196.  
  197.  
  198.  
  199. RETLW B'00000000'
  200.  
  201. RETLW B'00111100'
  202.  
  203. RETLW B'01000010'
  204.  
  205. RETLW B'01000000'
  206.  
  207. RETLW B'01000000';C 3
  208.  
  209. RETLW B'01000010'
  210.  
  211. RETLW B'00111100'
  212.  
  213. RETLW B'00000000'
  214.  
  215.  
  216.  
  217. RETLW B'00000000'
  218.  
  219. RETLW B'01111000'
  220.  
  221. RETLW B'01000100'
  222.  
  223. RETLW B'01000010'
  224.  
  225. RETLW B'01000010';D 4
  226.  
  227. RETLW B'01000100'
  228.  
  229. RETLW B'01111000'
  230.  
  231. RETLW B'00000000'
  232.  
  233.  
  234.  
  235. RETLW B'00000000'
  236.  
  237. RETLW B'01111110'
  238.  
  239. RETLW B'01000000'
  240.  
  241. RETLW B'01111100'
  242.  
  243. RETLW B'01000000';E 5
  244.  
  245. RETLW B'01000000'
  246.  
  247. RETLW B'01111110'
  248.  
  249. RETLW B'00000000'
  250.  
  251.  
  252.  
  253. RETLW B'00000000'
  254.  
  255. RETLW B'01111110'
  256.  
  257. RETLW B'01000000'
  258.  
  259. RETLW B'01111100'
  260.  
  261. RETLW B'01000000'
  262.  
  263. RETLW B'01000000';F 6
  264.  
  265. RETLW B'01000000'
  266.  
  267. RETLW B'00000000'
  268.  
  269.  
  270.  
  271. RETLW B'00000000'
  272.  
  273. RETLW B'00111100'
  274.  
  275. RETLW B'01000010'
  276.  
  277. RETLW B'01000000'
  278.  
  279. RETLW B'01001110'
  280.  
  281. RETLW B'01000010';G 7
  282.  
  283. RETLW B'00111100'
  284.  
  285. RETLW B'00000000'
  286.  
  287.  
  288.  
  289. RETLW B'00000000'
  290.  
  291. RETLW B'01000010'
  292.  
  293. RETLW B'01000010'
  294.  
  295. RETLW B'01111110'
  296.  
  297. RETLW B'01000010'
  298.  
  299. RETLW B'01000010';H 8
  300.  
  301. RETLW B'01000010'
  302.  
  303. RETLW B'00000000'
  304.  
  305.  
  306.  
  307. RETLW B'00000000'
  308.  
  309. RETLW B'00111110'
  310.  
  311. RETLW B'00001000'
  312.  
  313. RETLW B'00001000'
  314.  
  315. RETLW B'00001000';I 9
  316.  
  317. RETLW B'00001000'
  318.  
  319. RETLW B'00111110'
  320.  
  321. RETLW B'00000000'
  322.  
  323.  
  324.  
  325. RETLW B'00000000'
  326.  
  327. RETLW B'00000010'
  328.  
  329. RETLW B'00000010'
  330.  
  331. RETLW B'00000010'
  332.  
  333. RETLW B'01000010'
  334.  
  335. RETLW B'01000010';J 10
  336.  
  337. RETLW B'00111100'
  338.  
  339. RETLW B'00000000'
  340.  
  341.  
  342.  
  343. RETLW B'00000000'
  344.  
  345. RETLW B'01000100'
  346.  
  347. RETLW B'01001000'
  348.  
  349. RETLW B'01110000'
  350.  
  351. RETLW B'01001000';K 11
  352.  
  353. RETLW B'01000100'
  354.  
  355. RETLW B'01000010'
  356.  
  357. RETLW B'00000000'
  358.  
  359.  
  360.  
  361. RETLW B'00000000'
  362.  
  363. RETLW B'01000000'
  364.  
  365. RETLW B'01000000'
  366.  
  367. RETLW B'01000000'
  368.  
  369. RETLW B'01000000';L 12
  370.  
  371. RETLW B'01000000'
  372.  
  373. RETLW B'01111110'
  374.  
  375. RETLW B'00000000'
  376.  
  377.  
  378.  
  379. RETLW B'00000000'
  380.  
  381. RETLW B'01000010'
  382.  
  383. RETLW B'01100110'
  384.  
  385. RETLW B'01011010'
  386.  
  387. RETLW B'01000010';M 13
  388.  
  389. RETLW B'01000010'
  390.  
  391. RETLW B'01000010'
  392.  
  393. RETLW B'00000000'
  394.  
  395.  
  396.  
  397. RETLW B'00000000'
  398.  
  399. RETLW B'01000010'
  400.  
  401. RETLW B'01100010'
  402.  
  403. RETLW B'01010010';N 14
  404.  
  405. RETLW B'01001010'
  406.  
  407. RETLW B'01000110'
  408.  
  409. RETLW B'01000010'
  410.  
  411. RETLW B'00000000'
  412.  
  413.  
  414.  
  415. RETLW B'00000000'
  416.  
  417. RETLW B'00111100'
  418.  
  419. RETLW B'01000010'
  420.  
  421. RETLW B'01000010'
  422.  
  423. RETLW B'01000010';O 15
  424.  
  425. RETLW B'01000010'
  426.  
  427. RETLW B'00111100'
  428.  
  429. RETLW B'00000000'
  430.  
  431.  
  432.  
  433. RETLW B'00000000'
  434.  
  435. RETLW B'01111100'
  436.  
  437. RETLW B'01000010'
  438.  
  439. RETLW B'01000010';P 16
  440.  
  441. RETLW B'01111100'
  442.  
  443. RETLW B'01000000'
  444.  
  445. RETLW B'01000000'
  446.  
  447. RETLW B'00000000'
  448.  
  449.  
  450.  
  451. RETLW B'00000000'
  452.  
  453. RETLW B'00111100'
  454.  
  455. RETLW B'01000010'
  456.  
  457. RETLW B'01000010'
  458.  
  459. RETLW B'01010010';Q 17
  460.  
  461. RETLW B'01001010'
  462.  
  463. RETLW B'00111100'
  464.  
  465. RETLW B'00000000'
  466.  
  467.  
  468.  
  469. RETLW B'00000000'
  470.  
  471. RETLW B'01111100'
  472.  
  473. RETLW B'01000010';R 18
  474.  
  475. RETLW B'01000010'
  476.  
  477. RETLW B'01111100'
  478.  
  479. RETLW B'01000100'
  480.  
  481. RETLW B'01000010'
  482.  
  483. RETLW B'00000000'
  484.  
  485.  
  486.  
  487. RETLW B'00000000'
  488.  
  489. RETLW B'00111100'
  490.  
  491. RETLW B'01000000'
  492.  
  493. RETLW B'00111100';S 19
  494.  
  495. RETLW B'00000010'
  496.  
  497. RETLW B'01000010'
  498.  
  499. RETLW B'00111100'
  500.  
  501. RETLW B'00000000'
  502.  
  503.  
  504.  
  505. RETLW B'00000000'
  506.  
  507. RETLW B'11111110'
  508.  
  509. RETLW B'00010000'
  510.  
  511. RETLW B'00010000'
  512.  
  513. RETLW B'00010000';T 20
  514.  
  515. RETLW B'00010000'
  516.  
  517. RETLW B'00010000'
  518.  
  519. RETLW B'00000000'
  520.  
  521.  
  522.  
  523. RETLW B'00000000'
  524.  
  525. RETLW B'01000010'
  526.  
  527. RETLW B'01000010'
  528.  
  529. RETLW B'01000010'
  530.  
  531. RETLW B'01000010';U 21
  532.  
  533. RETLW B'01000010'
  534.  
  535. RETLW B'00111100'
  536.  
  537. RETLW B'00000000'
  538.  
  539.  
  540.  
  541. RETLW B'00000000'
  542.  
  543. RETLW B'01000010'
  544.  
  545. RETLW B'01000010'
  546.  
  547. RETLW B'01000010'
  548.  
  549. RETLW B'01000010';V 22
  550.  
  551. RETLW B'00100100'
  552.  
  553. RETLW B'00011000'
  554.  
  555. RETLW B'00000000'
  556.  
  557.  
  558.  
  559. RETLW B'00000000'
  560.  
  561. RETLW B'01000010'
  562.  
  563. RETLW B'01000010'
  564.  
  565. RETLW B'01000010'
  566.  
  567. RETLW B'01000010';W 23
  568.  
  569. RETLW B'01011010'
  570.  
  571. RETLW B'00100100'
  572.  
  573. RETLW B'00000000'
  574.  
  575.  
  576.  
  577. RETLW B'00000000'
  578.  
  579. RETLW B'01000010'
  580.  
  581. RETLW B'00100100'
  582.  
  583. RETLW B'00011000'
  584.  
  585. RETLW B'00011000';X 24
  586.  
  587. RETLW B'00100100'
  588.  
  589. RETLW B'01000010'
  590.  
  591. RETLW B'00000000'
  592.  
  593.  
  594.  
  595. RETLW B'00000000'
  596.  
  597. RETLW B'10000010'
  598.  
  599. RETLW B'01000100'
  600.  
  601. RETLW B'00101000'
  602.  
  603. RETLW B'00010000';Y 25
  604.  
  605. RETLW B'00010000'
  606.  
  607. RETLW B'00010000'
  608.  
  609. RETLW B'00000000'
  610.  
  611.  
  612.  
  613. RETLW B'00000000'
  614.  
  615. RETLW B'01111110'
  616.  
  617. RETLW B'00000100'
  618.  
  619. RETLW B'00001000'
  620.  
  621. RETLW B'00010000';Z 26
  622.  
  623. RETLW B'00100000'
  624.  
  625. RETLW B'01111110'
  626.  
  627. RETLW B'00000000'
  628.  
  629.  
  630.  
  631. RETLW B'00000000'
  632.  
  633. RETLW B'00111100'
  634.  
  635. RETLW B'01000010'
  636.  
  637. RETLW B'00000010'
  638.  
  639. RETLW B'00111100';27 NÚMERO "2"
  640.  
  641. RETLW B'01000000'
  642.  
  643. RETLW B'01111110'
  644.  
  645. RETLW B'00000000'
  646.  
  647.  
  648.  
  649. RETLW B'00000000'
  650.  
  651. RETLW B'00111100'
  652.  
  653. RETLW B'01000110'
  654.  
  655. RETLW B'01001010'
  656.  
  657. RETLW B'01010010';28 NÚMERO "0"
  658.  
  659. RETLW B'01100010'
  660.  
  661. RETLW B'00111100'
  662.  
  663. RETLW B'00000000'
  664.  
  665.  
  666.  
  667. RETLW B'00000000'
  668.  
  669. RETLW B'01111110'
  670.  
  671. RETLW B'00000010'
  672.  
  673. RETLW B'00000100'
  674.  
  675. RETLW B'00001000';29 NÚMERO "7"
  676.  
  677. RETLW B'00010000'
  678.  
  679. RETLW B'00010000'
  680.  
  681. RETLW B'00000000'
  682.  
  683.  
  684.  
  685. RETLW B'01111100'
  686.  
  687. RETLW B'10000010'
  688.  
  689. RETLW B'10011010'
  690.  
  691. RETLW B'10100010'
  692.  
  693. RETLW B'10100010';30 COPYRIGHT
  694.  
  695. RETLW B'10011010'
  696.  
  697. RETLW B'10000010'
  698.  
  699. RETLW B'01111100'
  700.  
  701. ;------------------------------------------------------------------------------
  702.  
  703. NOP
  704.  
  705. NOP
  706.  
  707. NOP
  708.  
  709. ;--------------------------SET 1 DE CARÁCTERES MODO1---------------------------
  710.  
  711. BYTEPANT1
  712.  
  713. CLRF PCLATH
  714.  
  715. BSF PCLATH,0
  716.  
  717. ADDWF BYTECHAR,W
  718.  
  719. ADDWF PCL,F
  720.  
  721. RETLW B'00000000'
  722.  
  723. RETLW B'00000000'
  724.  
  725. RETLW B'00000000'
  726.  
  727. RETLW B'00000000'
  728.  
  729. RETLW B'00000000'; SPACE 0
  730.  
  731. RETLW B'00000000'
  732.  
  733. RETLW B'00000000'
  734.  
  735. RETLW B'00000000'
  736.  
  737.  
  738.  
  739. RETLW B'00000000'
  740.  
  741. RETLW B'00111100'
  742.  
  743. RETLW B'01000010'
  744.  
  745. RETLW B'01000010'
  746.  
  747. RETLW B'01111110';A 1
  748.  
  749. RETLW B'01000010'
  750.  
  751. RETLW B'01000010'
  752.  
  753. RETLW B'00000000'
  754.  
  755.  
  756.  
  757. RETLW B'00000000'
  758.  
  759. RETLW B'01111100'
  760.  
  761. RETLW B'01000010'
  762.  
  763. RETLW B'01111100'
  764.  
  765. RETLW B'01000010';B 2
  766.  
  767. RETLW B'01000010'
  768.  
  769. RETLW B'01111100'
  770.  
  771. RETLW B'00000000'
  772.  
  773.  
  774.  
  775. RETLW B'00000000'
  776.  
  777. RETLW B'00111100'
  778.  
  779. RETLW B'01000010'
  780.  
  781. RETLW B'01000000'
  782.  
  783. RETLW B'01000000';C 3
  784.  
  785. RETLW B'01000010'
  786.  
  787. RETLW B'00111100'
  788.  
  789. RETLW B'00000000'
  790.  
  791.  
  792.  
  793. RETLW B'00000000'
  794.  
  795. RETLW B'01111000'
  796.  
  797. RETLW B'01000100'
  798.  
  799. RETLW B'01000010'
  800.  
  801. RETLW B'01000010';D 4
  802.  
  803. RETLW B'01000100'
  804.  
  805. RETLW B'01111000'
  806.  
  807. RETLW B'00000000'
  808.  
  809.  
  810.  
  811. RETLW B'00000000'
  812.  
  813. RETLW B'01111110'
  814.  
  815. RETLW B'01000000'
  816.  
  817. RETLW B'01111100'
  818.  
  819. RETLW B'01000000';E 5
  820.  
  821. RETLW B'01000000'
  822.  
  823. RETLW B'01111110'
  824.  
  825. RETLW B'00000000'
  826.  
  827.  
  828.  
  829. RETLW B'00000000'
  830.  
  831. RETLW B'01111110'
  832.  
  833. RETLW B'01000000'
  834.  
  835. RETLW B'01111100'
  836.  
  837. RETLW B'01000000'
  838.  
  839. RETLW B'01000000';F 6
  840.  
  841. RETLW B'01000000'
  842.  
  843. RETLW B'00000000'
  844.  
  845.  
  846.  
  847. RETLW B'00000000'
  848.  
  849. RETLW B'00111100'
  850.  
  851. RETLW B'01000010'
  852.  
  853. RETLW B'01000000'
  854.  
  855. RETLW B'01001110'
  856.  
  857. RETLW B'01000010';G 7
  858.  
  859. RETLW B'00111100'
  860.  
  861. RETLW B'00000000'
  862.  
  863.  
  864.  
  865. RETLW B'00000000'
  866.  
  867. RETLW B'01000010'
  868.  
  869. RETLW B'01000010'
  870.  
  871. RETLW B'01111110'
  872.  
  873. RETLW B'01000010'
  874.  
  875. RETLW B'01000010';H 8
  876.  
  877. RETLW B'01000010'
  878.  
  879. RETLW B'00000000'
  880.  
  881.  
  882.  
  883. RETLW B'00000000'
  884.  
  885. RETLW B'00111110'
  886.  
  887. RETLW B'00001000'
  888.  
  889. RETLW B'00001000'
  890.  
  891. RETLW B'00001000';I 9
  892.  
  893. RETLW B'00001000'
  894.  
  895. RETLW B'00111110'
  896.  
  897. RETLW B'00000000'
  898.  
  899.  
  900.  
  901. RETLW B'00000000'
  902.  
  903. RETLW B'00000010'
  904.  
  905. RETLW B'00000010'
  906.  
  907. RETLW B'00000010'
  908.  
  909. RETLW B'01000010'
  910.  
  911. RETLW B'01000010';J 10
  912.  
  913. RETLW B'00111100'
  914.  
  915. RETLW B'00000000'
  916.  
  917.  
  918.  
  919. RETLW B'00000000'
  920.  
  921. RETLW B'01000100'
  922.  
  923. RETLW B'01001000'
  924.  
  925. RETLW B'01110000'
  926.  
  927. RETLW B'01001000';K 11
  928.  
  929. RETLW B'01000100'
  930.  
  931. RETLW B'01000010'
  932.  
  933. RETLW B'00000000'
  934.  
  935.  
  936.  
  937. RETLW B'00000000'
  938.  
  939. RETLW B'01000000'
  940.  
  941. RETLW B'01000000'
  942.  
  943. RETLW B'01000000'
  944.  
  945. RETLW B'01000000';L 12
  946.  
  947. RETLW B'01000000'
  948.  
  949. RETLW B'01111110'
  950.  
  951. RETLW B'00000000'
  952.  
  953.  
  954.  
  955. RETLW B'00000000'
  956.  
  957. RETLW B'01000010'
  958.  
  959. RETLW B'01100110'
  960.  
  961. RETLW B'01011010'
  962.  
  963. RETLW B'01000010';M 13
  964.  
  965. RETLW B'01000010'
  966.  
  967. RETLW B'01000010'
  968.  
  969. RETLW B'00000000'
  970.  
  971.  
  972.  
  973. RETLW B'00000000'
  974.  
  975. RETLW B'01000010'
  976.  
  977. RETLW B'01100010'
  978.  
  979. RETLW B'01010010';N 14
  980.  
  981. RETLW B'01001010'
  982.  
  983. RETLW B'01000110'
  984.  
  985. RETLW B'01000010'
  986.  
  987. RETLW B'00000000'
  988.  
  989.  
  990.  
  991. RETLW B'00000000'
  992.  
  993. RETLW B'00111100'
  994.  
  995. RETLW B'01000010'
  996.  
  997. RETLW B'01000010'
  998.  
  999. RETLW B'01000010';O 15
  1000.  
  1001. RETLW B'01000010'
  1002.  
  1003. RETLW B'00111100'
  1004.  
  1005. RETLW B'00000000'
  1006.  
  1007.  
  1008.  
  1009. RETLW B'00000000'
  1010.  
  1011. RETLW B'01111100'
  1012.  
  1013. RETLW B'01000010'
  1014.  
  1015. RETLW B'01000010';P 16
  1016.  
  1017. RETLW B'01111100'
  1018.  
  1019. RETLW B'01000000'
  1020.  
  1021. RETLW B'01000000'
  1022.  
  1023. RETLW B'00000000'
  1024.  
  1025.  
  1026.  
  1027. RETLW B'00000000'
  1028.  
  1029. RETLW B'00111100'
  1030.  
  1031. RETLW B'01000010'
  1032.  
  1033. RETLW B'01000010'
  1034.  
  1035. RETLW B'01010010';Q 17
  1036.  
  1037. RETLW B'01001010'
  1038.  
  1039. RETLW B'00111100'
  1040.  
  1041. RETLW B'00000000'
  1042.  
  1043.  
  1044.  
  1045. RETLW B'00000000'
  1046.  
  1047. RETLW B'01111100'
  1048.  
  1049. RETLW B'01000010';R 18
  1050.  
  1051. RETLW B'01000010'
  1052.  
  1053. RETLW B'01111100'
  1054.  
  1055. RETLW B'01000100'
  1056.  
  1057. RETLW B'01000010'
  1058.  
  1059. RETLW B'00000000'
  1060.  
  1061.  
  1062.  
  1063. RETLW B'00000000'
  1064.  
  1065. RETLW B'00111100'
  1066.  
  1067. RETLW B'01000000'
  1068.  
  1069. RETLW B'00111100';S 19
  1070.  
  1071. RETLW B'00000010'
  1072.  
  1073. RETLW B'01000010'
  1074.  
  1075. RETLW B'00111100'
  1076.  
  1077. RETLW B'00000000'
  1078.  
  1079.  
  1080.  
  1081. RETLW B'00000000'
  1082.  
  1083. RETLW B'11111110'
  1084.  
  1085. RETLW B'00010000'
  1086.  
  1087. RETLW B'00010000'
  1088.  
  1089. RETLW B'00010000';T 20
  1090.  
  1091. RETLW B'00010000'
  1092.  
  1093. RETLW B'00010000'
  1094.  
  1095. RETLW B'00000000'
  1096.  
  1097.  
  1098.  
  1099. RETLW B'00000000'
  1100.  
  1101. RETLW B'01000010'
  1102.  
  1103. RETLW B'01000010'
  1104.  
  1105. RETLW B'01000010'
  1106.  
  1107. RETLW B'01000010';U 21
  1108.  
  1109. RETLW B'01000010'
  1110.  
  1111. RETLW B'00111100'
  1112.  
  1113. RETLW B'00000000'
  1114.  
  1115.  
  1116.  
  1117. RETLW B'00000000'
  1118.  
  1119. RETLW B'01000010'
  1120.  
  1121. RETLW B'01000010'
  1122.  
  1123. RETLW B'01000010'
  1124.  
  1125. RETLW B'01000010';V 22
  1126.  
  1127. RETLW B'00100100'
  1128.  
  1129. RETLW B'00011000'
  1130.  
  1131. RETLW B'00000000'
  1132.  
  1133.  
  1134.  
  1135. RETLW B'00000000'
  1136.  
  1137. RETLW B'01000010'
  1138.  
  1139. RETLW B'01000010'
  1140.  
  1141. RETLW B'01000010'
  1142.  
  1143. RETLW B'01000010';W 23
  1144.  
  1145. RETLW B'01011010'
  1146.  
  1147. RETLW B'00100100'
  1148.  
  1149. RETLW B'00000000'
  1150.  
  1151.  
  1152.  
  1153. RETLW B'00000000'
  1154.  
  1155. RETLW B'01000010'
  1156.  
  1157. RETLW B'00100100'
  1158.  
  1159. RETLW B'00011000'
  1160.  
  1161. RETLW B'00011000';X 24
  1162.  
  1163. RETLW B'00100100'
  1164.  
  1165. RETLW B'01000010'
  1166.  
  1167. RETLW B'00000000'
  1168.  
  1169.  
  1170.  
  1171. RETLW B'00000000'
  1172.  
  1173. RETLW B'10000010'
  1174.  
  1175. RETLW B'01000100'
  1176.  
  1177. RETLW B'00101000'
  1178.  
  1179. RETLW B'00010000';Y 25
  1180.  
  1181. RETLW B'00010000'
  1182.  
  1183. RETLW B'00010000'
  1184.  
  1185. RETLW B'00000000'
  1186.  
  1187.  
  1188.  
  1189. RETLW B'00000000'
  1190.  
  1191. RETLW B'01111110'
  1192.  
  1193. RETLW B'00000100'
  1194.  
  1195. RETLW B'00001000'
  1196.  
  1197. RETLW B'00010000';Z 26
  1198.  
  1199. RETLW B'00100000'
  1200.  
  1201. RETLW B'01111110'
  1202.  
  1203. RETLW B'00000000'
  1204.  
  1205.  
  1206.  
  1207. RETLW B'00000000'
  1208.  
  1209. RETLW B'00011000'
  1210.  
  1211. RETLW B'00101000'
  1212.  
  1213. RETLW B'00001000'
  1214.  
  1215. RETLW B'00001000';27 NÚMERO "1"
  1216.  
  1217. RETLW B'00001000'
  1218.  
  1219. RETLW B'00111110'
  1220.  
  1221. RETLW B'00000000'
  1222.  
  1223.  
  1224.  
  1225. RETLW B'00011110'
  1226.  
  1227. RETLW B'00111111'
  1228.  
  1229. RETLW B'00011010'
  1230.  
  1231. RETLW B'00011111'
  1232.  
  1233. RETLW B'00011110';28 JET SET WILLY(1)
  1234.  
  1235. RETLW B'00001100'
  1236.  
  1237. RETLW B'00011110'
  1238.  
  1239. RETLW B'00111111'
  1240.  
  1241.  
  1242.  
  1243. RETLW B'01111111'
  1244.  
  1245. RETLW B'11111111'
  1246.  
  1247. RETLW B'11111111'
  1248.  
  1249. RETLW B'11011110'
  1250.  
  1251. RETLW B'00011111';29 JET SET WILLY(2)
  1252.  
  1253. RETLW B'00111011'
  1254.  
  1255. RETLW B'01100011'
  1256.  
  1257. RETLW B'01110011'
  1258.  
  1259.  
  1260.  
  1261. RETLW B'10000000'
  1262.  
  1263. RETLW B'11000000'
  1264.  
  1265. RETLW B'11000000'
  1266.  
  1267. RETLW B'11000000'
  1268.  
  1269. RETLW B'00000000';30 JET SET WILLY(3)
  1270.  
  1271. RETLW B'01000000'
  1272.  
  1273. RETLW B'11000000'
  1274.  
  1275. RETLW B'10000000'
  1276.  
  1277. ;------------------------------------------------------------------------------
  1278.  
  1279. NOP
  1280.  
  1281. NOP
  1282.  
  1283. NOP
  1284.  
  1285. ;------------------------------------------------------------------------------
  1286.  
  1287.  
  1288.  
  1289. TEXTO; EL SIGUIENTE TEXTO SE UBICARÁ EN LOS REGISTROS DE MEMORIA DEL BANCO 0
  1290.  
  1291. CLRF PCLATH
  1292.  
  1293. BSF PCLATH,1
  1294.  
  1295. MOVF BYTECHAR,W
  1296.  
  1297. ADDWF PCL,F
  1298.  
  1299. DT "      videopic      "
  1300.  
  1301. DT "                    "
  1302.  
  1303. DT "   este programa    "
  1304.  
  1305. DT " muestra caracteres "
  1306.  
  1307.  
  1308.  
  1309. TEXTO2; EL SIGUIENTE TEXTO SE UBICARÁ EN LOS REGISTROS DE MEMORIA DEL BANCO 1
  1310.  
  1311. CLRF PCLATH
  1312.  
  1313. BSF PCLATH,1
  1314.  
  1315. MOVF BYTECHAR,W
  1316.  
  1317. ADDWF PCL,F
  1318.  
  1319. DT " en una pantalla de "
  1320.  
  1321. DT " tv mediante un pic "
  1322.  
  1323. DT "                    "
  1324.  
  1325. DT "  ".126,.123,.124,.124,.125," esteban pa  "    
  1326.  
  1327.  
  1328.  
  1329. ;------------------------INICIALIZACIÓN DE LOS PUERTOS-------------------------
  1330.  
  1331. START
  1332.  
  1333. BSF STATUS,RP0
  1334.  
  1335. BCF STATUS,RP1
  1336.  
  1337. MOVLW B'11111110'
  1338.  
  1339. MOVWF TRISB
  1340.  
  1341. MOVLW B'00000110'
  1342.  
  1343. MOVWF ADCON1
  1344.  
  1345. MOVLW B'00000110'
  1346.  
  1347. MOVWF TRISA
  1348.  
  1349. MOVLW B'11010111'
  1350.  
  1351. MOVWF TRISC
  1352.  
  1353. MOVLW B'00000000'
  1354.  
  1355. MOVWF SSPSTAT
  1356.  
  1357. BCF STATUS,RP0
  1358.  
  1359. CLRF PORTB
  1360.  
  1361.  
  1362.  
  1363. ;---------RUTINA DE INICIALIZACIÓN Y ENLACE A LOS MODOS DE VIDEO---------------
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369. MOVLW MODO_PANT
  1370.  
  1371. MOVWF FLAGSTV
  1372.  
  1373. MOVLW B'00100000'
  1374.  
  1375. MOVWF SSPCON
  1376.  
  1377. CALL BORRAPANT; INSERTA EN LOS REGISTROS DE MEMORIA EL VALOR "0"
  1378.  
  1379. CALL CONV_CHAR; CONVIERTE LOS VALORES ASCII DE LOS TEXTOS A VALORES
  1380.  
  1381. CALL CONV_CHAR2;PARA QUE PUEDAN SER UTILIZADOS POR EL PROGRAMA
  1382.  
  1383. BTFSS FLAGSTV,0
  1384.  
  1385. GOTO START_MODE0; PONE LA PANTALLA EN MODO 0
  1386.  
  1387. GOTO START_MODE1; PONE LA PANTALLA EN MODO 1
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395. ;----------------------------------MODO DE VIDEO 0-----------------------------
  1396.  
  1397. PAUSA2US
  1398.  
  1399. NOP
  1400.  
  1401. NOP
  1402.  
  1403. NOP
  1404.  
  1405. NOP
  1406.  
  1407. NOP
  1408.  
  1409. NOP
  1410.  
  1411. RETURN
  1412.  
  1413.  
  1414.  
  1415. STARTMODE0
  1416.  
  1417. NOP; ESTOS DOS NOP SON PARA SINCRONIZAR LOS 20 PRIMEROS
  1418.  
  1419. NOP; CARACTERES CON EL RESTO DE LINEAS
  1420.  
  1421. MODE0
  1422.  
  1423. CLRF SSPCON
  1424.  
  1425. CLRF PORTC
  1426.  
  1427. BCF PORTA,0; INICIO DEL PULSO DE SINCRONISMO HORIZONTAL
  1428.  
  1429. NOP
  1430.  
  1431. NOP
  1432.  
  1433. NOP
  1434.  
  1435. NOP
  1436.  
  1437. NOP
  1438.  
  1439. NOP
  1440.  
  1441. NOP
  1442.  
  1443. NOP
  1444.  
  1445. NOP
  1446.  
  1447. NOP
  1448.  
  1449. NOP
  1450.  
  1451. NOP
  1452.  
  1453. NOP
  1454.  
  1455. NOP
  1456.  
  1457. NOP
  1458.  
  1459. NOP
  1460.  
  1461. NOP
  1462.  
  1463. NOP
  1464.  
  1465. BSF PORTA,0; FIN DEL PULSO DE SINCRONISMO HORIZONTAL
  1466.  
  1467. CALL PAUSA4US
  1468.  
  1469. CALL PAUSA4US
  1470.  
  1471.  
  1472.  
  1473. CALL PAUSA2US
  1474.  
  1475. BSF SSPCON,5
  1476.  
  1477. NOP
  1478.  
  1479. MOVF INDF,W; COMIENZO DE LOS 20 CARÁCTERES
  1480.  
  1481. CALL BYTEPANT
  1482.  
  1483. MOVWF SSPBUF
  1484.  
  1485. INCF FSR,F
  1486.  
  1487. MOVF INDF,W
  1488.  
  1489. CALL BYTEPANT
  1490.  
  1491. MOVWF SSPBUF
  1492.  
  1493. INCF FSR,F
  1494.  
  1495. MOVF INDF,W
  1496.  
  1497. CALL BYTEPANT
  1498.  
  1499. MOVWF SSPBUF
  1500.  
  1501. INCF FSR,F
  1502.  
  1503. MOVF INDF,W
  1504.  
  1505. CALL BYTEPANT
  1506.  
  1507. MOVWF SSPBUF
  1508.  
  1509. INCF FSR,F
  1510.  
  1511. MOVF INDF,W
  1512.  
  1513. CALL BYTEPANT
  1514.  
  1515. MOVWF SSPBUF
  1516.  
  1517. INCF FSR,F
  1518.  
  1519. MOVF INDF,W
  1520.  
  1521. CALL BYTEPANT
  1522.  
  1523. MOVWF SSPBUF
  1524.  
  1525. INCF FSR,F
  1526.  
  1527. MOVF INDF,W
  1528.  
  1529. CALL BYTEPANT
  1530.  
  1531. MOVWF SSPBUF
  1532.  
  1533. INCF FSR,F
  1534.  
  1535. MOVF INDF,W
  1536.  
  1537. CALL BYTEPANT
  1538.  
  1539. MOVWF SSPBUF
  1540.  
  1541. INCF FSR,F
  1542.  
  1543. MOVF INDF,W
  1544.  
  1545. CALL BYTEPANT
  1546.  
  1547. MOVWF SSPBUF
  1548.  
  1549. INCF FSR,F
  1550.  
  1551. MOVF INDF,W
  1552.  
  1553. CALL BYTEPANT
  1554.  
  1555. MOVWF SSPBUF
  1556.  
  1557. INCF FSR,F
  1558.  
  1559. MOVF INDF,W
  1560.  
  1561. CALL BYTEPANT
  1562.  
  1563. MOVWF SSPBUF
  1564.  
  1565. INCF FSR,F
  1566.  
  1567. MOVF INDF,W
  1568.  
  1569. CALL BYTEPANT
  1570.  
  1571. MOVWF SSPBUF
  1572.  
  1573. INCF FSR,F
  1574.  
  1575. MOVF INDF,W
  1576.  
  1577. CALL BYTEPANT
  1578.  
  1579. MOVWF SSPBUF
  1580.  
  1581. INCF FSR,F
  1582.  
  1583. MOVF INDF,W
  1584.  
  1585. CALL BYTEPANT
  1586.  
  1587. MOVWF SSPBUF
  1588.  
  1589. INCF FSR,F
  1590.  
  1591. MOVF INDF,W
  1592.  
  1593. CALL BYTEPANT
  1594.  
  1595. MOVWF SSPBUF
  1596.  
  1597. INCF FSR,F
  1598.  
  1599. MOVF INDF,W
  1600.  
  1601. CALL BYTEPANT
  1602.  
  1603. MOVWF SSPBUF
  1604.  
  1605. INCF FSR,F
  1606.  
  1607. MOVF INDF,W
  1608.  
  1609. CALL BYTEPANT
  1610.  
  1611. MOVWF SSPBUF
  1612.  
  1613. INCF FSR,F
  1614.  
  1615. MOVF INDF,W
  1616.  
  1617. CALL BYTEPANT
  1618.  
  1619. MOVWF SSPBUF
  1620.  
  1621. INCF FSR,F
  1622.  
  1623. MOVF INDF,W
  1624.  
  1625. CALL BYTEPANT
  1626.  
  1627. MOVWF SSPBUF
  1628.  
  1629. INCF FSR,F
  1630.  
  1631. MOVF INDF,W
  1632.  
  1633. CALL BYTEPANT
  1634.  
  1635. MOVWF SSPBUF
  1636.  
  1637. INCF FSR,F
  1638.  
  1639. NOP
  1640.  
  1641. NOP
  1642.  
  1643. NOP
  1644.  
  1645. NOP
  1646.  
  1647. NOP
  1648.  
  1649. NOP
  1650.  
  1651. NOP
  1652.  
  1653. BCF SSPBUF,5
  1654.  
  1655. CALL PAUSA4US
  1656.  
  1657. CALL PAUSA2US
  1658.  
  1659. NOP
  1660.  
  1661. NOP
  1662.  
  1663. NOP
  1664.  
  1665. NOP
  1666.  
  1667. NOP
  1668.  
  1669. NOP
  1670.  
  1671. INCF BYTECHAR,F
  1672.  
  1673. DECFSZ NUMCHAR,F; CARACTERES 8*8 COMPLETOS?
  1674.  
  1675. GOTO NOCOMPLETOS
  1676.  
  1677. CLRF BYTECHAR
  1678.  
  1679. MOVLW LONG_Y
  1680.  
  1681. MOVWF NUMCHAR
  1682.  
  1683. DECFSZ NUMCOL,F;COLUMNA COMPLETA DE CARACTERES?
  1684.  
  1685. GOTO MODE0
  1686.  
  1687. NOP; COMIENZO DE LA SEGUNDA PARTE DE LA PANTALLA
  1688.  
  1689. NOP
  1690.  
  1691. MODE0_ZONA2
  1692.  
  1693. CLRF SSPCON
  1694.  
  1695. CLRF PORTC
  1696.  
  1697. BCF PORTA,0; INICIO SYNC
  1698.  
  1699. BTFSS FLAGSTV,0
  1700.  
  1701. GOTO REG_ZONA2
  1702.  
  1703. NOP
  1704.  
  1705. NOP
  1706.  
  1707. NOP
  1708.  
  1709. NOP
  1710.  
  1711. NOP
  1712.  
  1713. NOP
  1714.  
  1715. NOP
  1716.  
  1717. NOP
  1718.  
  1719. NOP
  1720.  
  1721. SIGUE_ZONA2
  1722.  
  1723. NOP
  1724.  
  1725. NOP
  1726.  
  1727. NOP
  1728.  
  1729. NOP
  1730.  
  1731. NOP
  1732.  
  1733. NOP
  1734.  
  1735. NOP
  1736.  
  1737. BSF PORTA,0; FIN SYNC
  1738.  
  1739. CALL PAUSA4US
  1740.  
  1741. CALL PAUSA4US
  1742.  
  1743. CALL PAUSA2US
  1744.  
  1745. BSF SSPCON,5
  1746.  
  1747. NOP
  1748.  
  1749. MOVF INDF,W; COMIENZO DE LOS 20 CARACTERES
  1750.  
  1751. CALL BYTEPANT
  1752.  
  1753. MOVWF SSPBUF
  1754.  
  1755. INCF FSR,F
  1756.  
  1757. MOVF INDF,W
  1758.  
  1759. CALL BYTEPANT
  1760.  
  1761. MOVWF SSPBUF
  1762.  
  1763. INCF FSR,F
  1764.  
  1765. MOVF INDF,W
  1766.  
  1767. CALL BYTEPANT
  1768.  
  1769. MOVWF SSPBUF
  1770.  
  1771. INCF FSR,F
  1772.  
  1773. MOVF INDF,W
  1774.  
  1775. CALL BYTEPANT
  1776.  
  1777. MOVWF SSPBUF
  1778.  
  1779. INCF FSR,F
  1780.  
  1781. MOVF INDF,W
  1782.  
  1783. CALL BYTEPANT
  1784.  
  1785. MOVWF SSPBUF
  1786.  
  1787. INCF FSR,F
  1788.  
  1789. MOVF INDF,W
  1790.  
  1791. CALL BYTEPANT
  1792.  
  1793. MOVWF SSPBUF
  1794.  
  1795. INCF FSR,F
  1796.  
  1797. MOVF INDF,W
  1798.  
  1799. CALL BYTEPANT
  1800.  
  1801. MOVWF SSPBUF
  1802.  
  1803. INCF FSR,F
  1804.  
  1805. MOVF INDF,W
  1806.  
  1807. CALL BYTEPANT
  1808.  
  1809. MOVWF SSPBUF
  1810.  
  1811. INCF FSR,F
  1812.  
  1813. MOVF INDF,W
  1814.  
  1815. CALL BYTEPANT
  1816.  
  1817. MOVWF SSPBUF
  1818.  
  1819. INCF FSR,F
  1820.  
  1821. MOVF INDF,W
  1822.  
  1823. CALL BYTEPANT
  1824.  
  1825. MOVWF SSPBUF
  1826.  
  1827. INCF FSR,F
  1828.  
  1829. MOVF INDF,W
  1830.  
  1831. CALL BYTEPANT
  1832.  
  1833. MOVWF SSPBUF
  1834.  
  1835. INCF FSR,F
  1836.  
  1837. MOVF INDF,W
  1838.  
  1839. CALL BYTEPANT
  1840.  
  1841. MOVWF SSPBUF
  1842.  
  1843. INCF FSR,F
  1844.  
  1845. MOVF INDF,W
  1846.  
  1847. CALL BYTEPANT
  1848.  
  1849. MOVWF SSPBUF
  1850.  
  1851. INCF FSR,F
  1852.  
  1853. MOVF INDF,W
  1854.  
  1855. CALL BYTEPANT
  1856.  
  1857. MOVWF SSPBUF
  1858.  
  1859. INCF FSR,F
  1860.  
  1861. MOVF INDF,W
  1862.  
  1863. CALL BYTEPANT
  1864.  
  1865. MOVWF SSPBUF
  1866.  
  1867. INCF FSR,F
  1868.  
  1869. MOVF INDF,W
  1870.  
  1871. CALL BYTEPANT
  1872.  
  1873. MOVWF SSPBUF
  1874.  
  1875. INCF FSR,F
  1876.  
  1877. MOVF INDF,W
  1878.  
  1879. CALL BYTEPANT
  1880.  
  1881. MOVWF SSPBUF
  1882.  
  1883. INCF FSR,F
  1884.  
  1885. MOVF INDF,W
  1886.  
  1887. CALL BYTEPANT
  1888.  
  1889. MOVWF SSPBUF
  1890.  
  1891. INCF FSR,F
  1892.  
  1893. MOVF INDF,W
  1894.  
  1895. CALL BYTEPANT
  1896.  
  1897. MOVWF SSPBUF
  1898.  
  1899. INCF FSR,F
  1900.  
  1901. MOVF INDF,W
  1902.  
  1903. CALL BYTEPANT
  1904.  
  1905. MOVWF SSPBUF
  1906.  
  1907. INCF FSR,F
  1908.  
  1909. NOP
  1910.  
  1911. NOP
  1912.  
  1913. NOP
  1914.  
  1915. NOP
  1916.  
  1917. NOP
  1918.  
  1919. NOP
  1920.  
  1921. NOP
  1922.  
  1923. BCF SSPBUF,5
  1924.  
  1925. CALL PAUSA4US
  1926.  
  1927. CALL PAUSA2US
  1928.  
  1929. NOP
  1930.  
  1931. NOP
  1932.  
  1933. NOP
  1934.  
  1935. NOP
  1936.  
  1937. NOP
  1938.  
  1939. NOP
  1940.  
  1941. INCF BYTECHAR,F
  1942.  
  1943. DECFSZ NUMCHAR,F; CARACTERES 8*8 COMPLETOS?
  1944.  
  1945. GOTO NOCOMPLETOS_ZONA2
  1946.  
  1947. CLRF BYTECHAR
  1948.  
  1949. MOVLW LONG_Y
  1950.  
  1951. MOVWF NUMCHAR
  1952.  
  1953. DECFSZ NUMCOL,F;COLUMNA COMPLETA DE CARACTERES?
  1954.  
  1955. GOTO MODE0_ZONA2
  1956.  
  1957. RETURN
  1958.  
  1959.  
  1960.  
  1961. NOCOMPLETOS_ZONA2
  1962.  
  1963. NOP
  1964.  
  1965. MOVLW LONG_X
  1966.  
  1967. SUBWF FSR,F
  1968.  
  1969. GOTO MODE0_ZONA2
  1970.  
  1971.  
  1972.  
  1973. REG_ZONA2
  1974.  
  1975. MOVLW CHARMAXXY
  1976.  
  1977. MOVWF NUMCOL
  1978.  
  1979. MOVLW PANT2
  1980.  
  1981. MOVWF FSR
  1982.  
  1983. BSF FLAGSTV,0
  1984.  
  1985. GOTO SIGUE_ZONA2
  1986.  
  1987.  
  1988.  
  1989. NOCOMPLETOS
  1990.  
  1991. NOP
  1992.  
  1993. MOVLW LONG_X
  1994.  
  1995. SUBWF FSR,F
  1996.  
  1997. GOTO MODE0
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003. ;---------------------------SINCRONISMO VERTICAL-------------------------------
  2004.  
  2005. PAUSA4P5
  2006.  
  2007. NOP
  2008.  
  2009. NOP
  2010.  
  2011. NOP
  2012.  
  2013. NOP
  2014.  
  2015. NOP
  2016.  
  2017. NOP
  2018.  
  2019. NOP
  2020.  
  2021. NOP
  2022.  
  2023. NOP
  2024.  
  2025. NOP
  2026.  
  2027. NOP
  2028.  
  2029. NOP
  2030.  
  2031. NOP
  2032.  
  2033. NOP
  2034.  
  2035. NOP
  2036.  
  2037. NOP
  2038.  
  2039. NOP
  2040.  
  2041. RETURN
  2042.  
  2043.  
  2044.  
  2045. PAUSA27P4
  2046.  
  2047. CALL PAUSA4P5
  2048.  
  2049. CALL PAUSA4P5
  2050.  
  2051. CALL PAUSA4P5
  2052.  
  2053. CALL PAUSA4P5
  2054.  
  2055. CALL PAUSA4P5
  2056.  
  2057. CALL PAUSA4P5
  2058.  
  2059. RETURN
  2060.  
  2061.  
  2062.  
  2063. PIGUALADORES
  2064.  
  2065. BCF PORTA,0
  2066.  
  2067. CALL PAUSA27P4
  2068.  
  2069. BSF PORTA,0
  2070.  
  2071. CALL PAUSA4P5
  2072.  
  2073. BCF PORTA,0
  2074.  
  2075. CALL PAUSA27P4
  2076.  
  2077. BSF PORTA,0
  2078.  
  2079. CALL PAUSA4P5
  2080.  
  2081. BCF PORTA,0
  2082.  
  2083. CALL PAUSA27P4
  2084.  
  2085. BSF PORTA,0
  2086.  
  2087. CALL PAUSA4P5
  2088.  
  2089. BCF PORTA,0
  2090.  
  2091. CALL PAUSA27P4
  2092.  
  2093. BSF PORTA,0
  2094.  
  2095. CALL PAUSA4P5
  2096.  
  2097. BCF PORTA,0
  2098.  
  2099. CALL PAUSA27P4
  2100.  
  2101. BSF PORTA,0
  2102.  
  2103. CALL PAUSA4P5
  2104.  
  2105. BCF PORTA,0
  2106.  
  2107. CALL PAUSA27P4
  2108.  
  2109. BSF PORTA,0
  2110.  
  2111. CALL PAUSA4P5
  2112.  
  2113. RETURN
  2114.  
  2115.  
  2116.  
  2117. PVERTICALESALM
  2118.  
  2119. BSF PORTA,0
  2120.  
  2121. CALL PAUSA27P4
  2122.  
  2123. BCF PORTA,0
  2124.  
  2125. CALL PAUSA4P5
  2126.  
  2127. BSF PORTA,0
  2128.  
  2129. CALL PAUSA27P4
  2130.  
  2131. BCF PORTA,0
  2132.  
  2133. CALL PAUSA4P5
  2134.  
  2135. BSF PORTA,0
  2136.  
  2137. CALL PAUSA27P4
  2138.  
  2139. BCF PORTA,0
  2140.  
  2141. CALL PAUSA4P5
  2142.  
  2143. BSF PORTA,0
  2144.  
  2145. CALL PAUSA27P4
  2146.  
  2147. BCF PORTA,0
  2148.  
  2149. CALL PAUSA4P5
  2150.  
  2151. BSF PORTA,0
  2152.  
  2153. CALL PAUSA27P4
  2154.  
  2155. BCF PORTA,0
  2156.  
  2157. CALL PAUSA4P5
  2158.  
  2159. BSF PORTA,0
  2160.  
  2161. CALL PAUSA27P4
  2162.  
  2163. BCF PORTA,0
  2164.  
  2165. CALL PAUSA4P5
  2166.  
  2167. RETURN
  2168.  
  2169.  
  2170.  
  2171. SYNCVERT
  2172.  
  2173. CLRF SSPCON
  2174.  
  2175. CLRF PORTC
  2176.  
  2177. CALL PIGUALADORES
  2178.  
  2179. CALL PVERTICALESALM
  2180.  
  2181. CALL PIGUALADORES
  2182.  
  2183. RETURN
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189. PAUSA4US
  2190.  
  2191. NOP
  2192.  
  2193. NOP
  2194.  
  2195. NOP
  2196.  
  2197. NOP
  2198.  
  2199. NOP
  2200.  
  2201. NOP
  2202.  
  2203. NOP
  2204.  
  2205. NOP
  2206.  
  2207. NOP
  2208.  
  2209. NOP
  2210.  
  2211. NOP
  2212.  
  2213. NOP
  2214.  
  2215. NOP
  2216.  
  2217. NOP
  2218.  
  2219. NOP
  2220.  
  2221. NOP
  2222.  
  2223. RETURN
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229. ;----------------------------------LINEA NEGRA---------------------------------
  2230.  
  2231. LINEA64US
  2232.  
  2233. CLRF SSPCON
  2234.  
  2235. CLRF PORTC
  2236.  
  2237. BCF PORTA,0
  2238.  
  2239. CALL PAUSA4US
  2240.  
  2241. BSF PORTA,0
  2242.  
  2243. CALL PAUSA4US
  2244.  
  2245. CALL PAUSA4US
  2246.  
  2247. CALL PAUSA4US
  2248.  
  2249. CALL PAUSA4US
  2250.  
  2251. CALL PAUSA4US
  2252.  
  2253. CALL PAUSA4US
  2254.  
  2255. CALL PAUSA4US
  2256.  
  2257. CALL PAUSA4US
  2258.  
  2259. CALL PAUSA4US
  2260.  
  2261. CALL PAUSA4US
  2262.  
  2263. CALL PAUSA4US
  2264.  
  2265. CALL PAUSA4US
  2266.  
  2267. CALL PAUSA4US
  2268.  
  2269. CALL PAUSA4US
  2270.  
  2271. NOP
  2272.  
  2273. NOP
  2274.  
  2275. NOP
  2276.  
  2277. NOP
  2278.  
  2279. NOP
  2280.  
  2281. NOP
  2282.  
  2283. NOP
  2284.  
  2285. NOP
  2286.  
  2287. NOP
  2288.  
  2289. NOP
  2290.  
  2291. NOP
  2292.  
  2293. NOP
  2294.  
  2295. NOP
  2296.  
  2297. NOP
  2298.  
  2299. NOP
  2300.  
  2301. NOP
  2302.  
  2303. RETURN
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309. ;---------------------GENERACION DE UN CUADRO DE TV EN MODO 0------------------
  2310.  
  2311. START_MODE0
  2312.  
  2313. PANTALLA
  2314.  
  2315. CLRF FLAGSTV
  2316.  
  2317. CLRF BYTECHAR
  2318.  
  2319. MOVLW CHARMAXXY
  2320.  
  2321. MOVWF NUMCOL
  2322.  
  2323. MOVLW LONG_Y
  2324.  
  2325. MOVWF NUMCHAR
  2326.  
  2327. MOVLW INICPANT
  2328.  
  2329. MOVWF FSR
  2330.  
  2331. MOVLW .124
  2332.  
  2333. MOVWF LINE
  2334.  
  2335. NL1 CALL LINEA64US
  2336.  
  2337. DECFSZ LINE,F
  2338.  
  2339. GOTO NL1
  2340.  
  2341. CALL STARTMODE0
  2342.  
  2343. MOVLW .124
  2344.  
  2345. MOVWF LINE
  2346.  
  2347. NL3 CALL LINEA64US
  2348.  
  2349. DECFSZ LINE,F
  2350.  
  2351. GOTO NL3
  2352.  
  2353. BCF PORTA,0
  2354.  
  2355. CALL PAUSA4US
  2356.  
  2357. BSF PORTA,0
  2358.  
  2359. CALL PAUSA4US
  2360.  
  2361. CALL PAUSA4US
  2362.  
  2363. CALL PAUSA4US
  2364.  
  2365. CALL PAUSA4US
  2366.  
  2367. CALL PAUSA4US
  2368.  
  2369. CALL PAUSA4US
  2370.  
  2371. CALL PAUSA4US
  2372.  
  2373. CALL SYNCVERT
  2374.  
  2375. GOTO PANTALLA
  2376.  
  2377.  
  2378.  
  2379. ;-----------------GENERACION DE UN CUADRO DE TV EN MODO 1----------------------
  2380.  
  2381.  
  2382.  
  2383. START_MODE1
  2384.  
  2385. MOVLW B'00100001'
  2386.  
  2387. MOVWF SSPCON
  2388.  
  2389. PANTALLA_MODE1
  2390.  
  2391. CLRF BYTECHAR
  2392.  
  2393. MOVLW CHARMAXY_MODE1
  2394.  
  2395. MOVWF NUMCOL
  2396.  
  2397. MOVLW LONGY_MODE1
  2398.  
  2399. MOVWF NUMCHAR
  2400.  
  2401. MOVLW INICPANT
  2402.  
  2403. MOVWF FSR
  2404.  
  2405. MOVLW .30
  2406.  
  2407. MOVWF LINE
  2408.  
  2409. NM1 CALL LINEA64US
  2410.  
  2411. DECFSZ LINE,F
  2412.  
  2413. GOTO NM1
  2414.  
  2415. CALL MODE1
  2416.  
  2417. MOVLW .18
  2418.  
  2419. MOVWF LINE
  2420.  
  2421. NM3 CALL LINEA64US
  2422.  
  2423. DECFSZ LINE,F
  2424.  
  2425. GOTO NM3
  2426.  
  2427. BCF PORTA,0
  2428.  
  2429. CALL PAUSA4US
  2430.  
  2431. BSF PORTA,0
  2432.  
  2433. CALL PAUSA4US
  2434.  
  2435. CALL PAUSA4US
  2436.  
  2437. CALL PAUSA4US
  2438.  
  2439. CALL PAUSA4US
  2440.  
  2441. CALL PAUSA4US
  2442.  
  2443. CALL PAUSA4US
  2444.  
  2445. CALL PAUSA4US
  2446.  
  2447. CALL SYNCVERT
  2448.  
  2449. GOTO PANTALLA_MODE1
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455. ;------------------------------MODO DE VIDEO 1---------------------------------
  2456.  
  2457.  
  2458.  
  2459. MODE1
  2460.  
  2461. CLRF SSPCON
  2462.  
  2463. CLRF PORTC
  2464.  
  2465. BCF PORTA,0; INICIO DEL PULSO DE SINCRONISMO HORIZONTAL
  2466.  
  2467. NOP
  2468.  
  2469. NOP
  2470.  
  2471. NOP
  2472.  
  2473. NOP
  2474.  
  2475. NOP
  2476.  
  2477. NOP
  2478.  
  2479. NOP
  2480.  
  2481. NOP
  2482.  
  2483. NOP
  2484.  
  2485. NOP
  2486.  
  2487. NOP
  2488.  
  2489. NOP
  2490.  
  2491. NOP
  2492.  
  2493. NOP
  2494.  
  2495. NOP
  2496.  
  2497. NOP
  2498.  
  2499. NOP
  2500.  
  2501. NOP
  2502.  
  2503. NOP
  2504.  
  2505. BSF PORTA,0; FIN DEL PULSO DE SINCRONISMO HORIZONTAL
  2506.  
  2507. CALL PAUSA4US
  2508.  
  2509. NOP
  2510.  
  2511. NOP
  2512.  
  2513. NOP
  2514.  
  2515. NOP
  2516.  
  2517. NOP
  2518.  
  2519. NOP
  2520.  
  2521. NOP
  2522.  
  2523. NOP
  2524.  
  2525. NOP
  2526.  
  2527. NOP
  2528.  
  2529. NOP
  2530.  
  2531. MOVLW B'00100001'
  2532.  
  2533. MOVWF SSPCON
  2534.  
  2535. MOVF INDF,W; COMIENZO DE LOS 7 CARACTERES
  2536.  
  2537. CALL BYTEPANT1
  2538.  
  2539. MOVWF SSPBUF
  2540.  
  2541. CALL DELAY_MODE1
  2542.  
  2543. INCF FSR,F
  2544.  
  2545. MOVF INDF,W
  2546.  
  2547. CALL BYTEPANT1
  2548.  
  2549. MOVWF SSPBUF
  2550.  
  2551. CALL DELAY_MODE1
  2552.  
  2553. INCF FSR,F
  2554.  
  2555. MOVF INDF,W
  2556.  
  2557. CALL BYTEPANT1
  2558.  
  2559. MOVWF SSPBUF
  2560.  
  2561. CALL DELAY_MODE1
  2562.  
  2563. INCF FSR,F
  2564.  
  2565. MOVF INDF,W
  2566.  
  2567. CALL BYTEPANT1
  2568.  
  2569. MOVWF SSPBUF
  2570.  
  2571. CALL DELAY_MODE1
  2572.  
  2573. INCF FSR,F
  2574.  
  2575. MOVF INDF,W
  2576.  
  2577. CALL BYTEPANT1
  2578.  
  2579. MOVWF SSPBUF
  2580.  
  2581. CALL DELAY_MODE1
  2582.  
  2583. INCF FSR,F
  2584.  
  2585. MOVF INDF,W
  2586.  
  2587. CALL BYTEPANT1
  2588.  
  2589. MOVWF SSPBUF
  2590.  
  2591. CALL DELAY_MODE1
  2592.  
  2593. INCF FSR,F
  2594.  
  2595. MOVF INDF,W
  2596.  
  2597. CALL BYTEPANT1
  2598.  
  2599. MOVWF SSPBUF
  2600.  
  2601. CALL DELAY_MODE1
  2602.  
  2603. INCF FSR,F; FIN DE LOS 7 CARACTERES
  2604.  
  2605. NOP
  2606.  
  2607. NOP
  2608.  
  2609. NOP
  2610.  
  2611. NOP
  2612.  
  2613. NOP
  2614.  
  2615. NOP
  2616.  
  2617. NOP
  2618.  
  2619. CLRF SSPBUF
  2620.  
  2621. NOP
  2622.  
  2623. NOP
  2624.  
  2625. NOP
  2626.  
  2627. NOP
  2628.  
  2629. NOP
  2630.  
  2631. NOP
  2632.  
  2633. NOP
  2634.  
  2635. NOP
  2636.  
  2637. NOP
  2638.  
  2639. NOP
  2640.  
  2641. NOP
  2642.  
  2643. NOP
  2644.  
  2645. NOP
  2646.  
  2647. NOP
  2648.  
  2649. NOP
  2650.  
  2651. INCF BYTECHAR,F
  2652.  
  2653. NOP
  2654.  
  2655. NOP
  2656.  
  2657. NOP
  2658.  
  2659. MOVLW LONGX_MODE1
  2660.  
  2661. SUBWF FSR,F
  2662.  
  2663. DECF BYTECHAR,F
  2664.  
  2665. NOP
  2666.  
  2667. NOP
  2668.  
  2669. ;REPITE LA LINEA
  2670.  
  2671. CLRF SSPCON
  2672.  
  2673. CLRF PORTC
  2674.  
  2675. BCF PORTA,0; INICIO DEL SINCRONISMO HORIZONTAL
  2676.  
  2677. NOP
  2678.  
  2679. NOP
  2680.  
  2681. NOP
  2682.  
  2683. NOP
  2684.  
  2685. NOP
  2686.  
  2687. NOP
  2688.  
  2689. NOP
  2690.  
  2691. NOP
  2692.  
  2693. NOP
  2694.  
  2695. NOP
  2696.  
  2697. NOP
  2698.  
  2699. NOP
  2700.  
  2701. NOP
  2702.  
  2703. NOP
  2704.  
  2705. NOP
  2706.  
  2707. NOP
  2708.  
  2709. NOP
  2710.  
  2711. NOP
  2712.  
  2713. NOP
  2714.  
  2715. BSF PORTA,0; FIN DEL SINCRONISMO HORIZONTAL
  2716.  
  2717. CALL PAUSA4US
  2718.  
  2719. NOP
  2720.  
  2721. NOP
  2722.  
  2723. NOP
  2724.  
  2725. NOP
  2726.  
  2727. NOP
  2728.  
  2729. NOP
  2730.  
  2731. NOP
  2732.  
  2733. NOP
  2734.  
  2735. NOP
  2736.  
  2737. NOP
  2738.  
  2739. NOP
  2740.  
  2741. MOVLW B'00100001'
  2742.  
  2743. MOVWF SSPCON
  2744.  
  2745. MOVF INDF,W; COMIENZO DE LOS 7 CARACTERES
  2746.  
  2747. CALL BYTEPANT1
  2748.  
  2749. MOVWF SSPBUF
  2750.  
  2751. CALL DELAY_MODE1
  2752.  
  2753. INCF FSR,F
  2754.  
  2755. MOVF INDF,W
  2756.  
  2757. CALL BYTEPANT1
  2758.  
  2759. MOVWF SSPBUF
  2760.  
  2761. CALL DELAY_MODE1
  2762.  
  2763. INCF FSR,F
  2764.  
  2765. MOVF INDF,W
  2766.  
  2767. CALL BYTEPANT1
  2768.  
  2769. MOVWF SSPBUF
  2770.  
  2771. CALL DELAY_MODE1
  2772.  
  2773. INCF FSR,F
  2774.  
  2775. MOVF INDF,W
  2776.  
  2777. CALL BYTEPANT1
  2778.  
  2779. MOVWF SSPBUF
  2780.  
  2781. CALL DELAY_MODE1
  2782.  
  2783. INCF FSR,F
  2784.  
  2785. MOVF INDF,W
  2786.  
  2787. CALL BYTEPANT1
  2788.  
  2789. MOVWF SSPBUF
  2790.  
  2791. CALL DELAY_MODE1
  2792.  
  2793. INCF FSR,F
  2794.  
  2795. MOVF INDF,W
  2796.  
  2797. CALL BYTEPANT1
  2798.  
  2799. MOVWF SSPBUF
  2800.  
  2801. CALL DELAY_MODE1
  2802.  
  2803. INCF FSR,F
  2804.  
  2805. MOVF INDF,W
  2806.  
  2807. CALL BYTEPANT1
  2808.  
  2809. MOVWF SSPBUF
  2810.  
  2811. CALL DELAY_MODE1
  2812.  
  2813. INCF FSR,F; FIN DE LOS 7 CARACTERES
  2814.  
  2815. NOP
  2816.  
  2817. NOP
  2818.  
  2819. NOP
  2820.  
  2821. NOP
  2822.  
  2823. NOP
  2824.  
  2825. NOP
  2826.  
  2827. NOP
  2828.  
  2829. CLRF SSPBUF
  2830.  
  2831. NOP
  2832.  
  2833. NOP
  2834.  
  2835. NOP
  2836.  
  2837. NOP
  2838.  
  2839. NOP
  2840.  
  2841. NOP
  2842.  
  2843. NOP
  2844.  
  2845. NOP
  2846.  
  2847. NOP
  2848.  
  2849. NOP
  2850.  
  2851. NOP
  2852.  
  2853. NOP
  2854.  
  2855. NOP
  2856.  
  2857. NOP
  2858.  
  2859. NOP
  2860.  
  2861. INCF BYTECHAR,F
  2862.  
  2863. NOP
  2864.  
  2865. NOP
  2866.  
  2867. NOP
  2868.  
  2869. MOVLW LONGX_MODE1
  2870.  
  2871. SUBWF FSR,F
  2872.  
  2873. DECF BYTECHAR,F
  2874.  
  2875. NOP
  2876.  
  2877. NOP
  2878.  
  2879. ;REPITE LA LINEA
  2880.  
  2881. CLRF SSPCON
  2882.  
  2883. CLRF PORTC
  2884.  
  2885. BCF PORTA,0; INICIO DEL SINCRONISMO HORIZONTAL
  2886.  
  2887. NOP
  2888.  
  2889. NOP
  2890.  
  2891. NOP
  2892.  
  2893. NOP
  2894.  
  2895. NOP
  2896.  
  2897. NOP
  2898.  
  2899. NOP
  2900.  
  2901. NOP
  2902.  
  2903. NOP
  2904.  
  2905. NOP
  2906.  
  2907. NOP
  2908.  
  2909. NOP
  2910.  
  2911. NOP
  2912.  
  2913. NOP
  2914.  
  2915. NOP
  2916.  
  2917. NOP
  2918.  
  2919. NOP
  2920.  
  2921. NOP
  2922.  
  2923. NOP
  2924.  
  2925. BSF PORTA,0; FIN DEL SINCRONISMO HORIZONTAL
  2926.  
  2927. CALL PAUSA4US
  2928.  
  2929. NOP
  2930.  
  2931. NOP
  2932.  
  2933. NOP
  2934.  
  2935. NOP
  2936.  
  2937. NOP
  2938.  
  2939. NOP
  2940.  
  2941. NOP
  2942.  
  2943. NOP
  2944.  
  2945. NOP
  2946.  
  2947. NOP
  2948.  
  2949. NOP
  2950.  
  2951. MOVLW B'00100001'
  2952.  
  2953. MOVWF SSPCON
  2954.  
  2955. MOVF INDF,W; COMIENZO DE LOS 7 CARACTERES
  2956.  
  2957. CALL BYTEPANT1
  2958.  
  2959. MOVWF SSPBUF
  2960.  
  2961. CALL DELAY_MODE1
  2962.  
  2963. INCF FSR,F
  2964.  
  2965. MOVF INDF,W
  2966.  
  2967. CALL BYTEPANT1
  2968.  
  2969. MOVWF SSPBUF
  2970.  
  2971. CALL DELAY_MODE1
  2972.  
  2973. INCF FSR,F
  2974.  
  2975. MOVF INDF,W
  2976.  
  2977. CALL BYTEPANT1
  2978.  
  2979. MOVWF SSPBUF
  2980.  
  2981. CALL DELAY_MODE1
  2982.  
  2983. INCF FSR,F
  2984.  
  2985. MOVF INDF,W
  2986.  
  2987. CALL BYTEPANT1
  2988.  
  2989. MOVWF SSPBUF
  2990.  
  2991. CALL DELAY_MODE1
  2992.  
  2993. INCF FSR,F
  2994.  
  2995. MOVF INDF,W
  2996.  
  2997. CALL BYTEPANT1
  2998.  
  2999. MOVWF SSPBUF
  3000.  
  3001. CALL DELAY_MODE1
  3002.  
  3003. INCF FSR,F
  3004.  
  3005. MOVF INDF,W
  3006.  
  3007. CALL BYTEPANT1
  3008.  
  3009. MOVWF SSPBUF
  3010.  
  3011. CALL DELAY_MODE1
  3012.  
  3013. INCF FSR,F
  3014.  
  3015. MOVF INDF,W
  3016.  
  3017. CALL BYTEPANT1
  3018.  
  3019. MOVWF SSPBUF
  3020.  
  3021. CALL DELAY_MODE1
  3022.  
  3023. INCF FSR,F; FIN DE LOS 7 CARACTERES
  3024.  
  3025. NOP
  3026.  
  3027. NOP
  3028.  
  3029. NOP
  3030.  
  3031. NOP
  3032.  
  3033. NOP
  3034.  
  3035. NOP
  3036.  
  3037. NOP
  3038.  
  3039. CLRF SSPBUF
  3040.  
  3041. NOP
  3042.  
  3043. NOP
  3044.  
  3045. NOP
  3046.  
  3047. NOP
  3048.  
  3049. NOP
  3050.  
  3051. NOP
  3052.  
  3053. NOP
  3054.  
  3055. NOP
  3056.  
  3057. NOP
  3058.  
  3059. NOP
  3060.  
  3061. NOP
  3062.  
  3063. NOP
  3064.  
  3065. NOP
  3066.  
  3067. NOP
  3068.  
  3069. NOP
  3070.  
  3071. INCF BYTECHAR,F
  3072.  
  3073. DECFSZ NUMCHAR,F; CARACTERES 8*8 COMPLETOS?
  3074.  
  3075. GOTO NOCOMPLETOS_MODE1
  3076.  
  3077. CLRF BYTECHAR
  3078.  
  3079. MOVLW LONGY_MODE1
  3080.  
  3081. MOVWF NUMCHAR
  3082.  
  3083. DECFSZ NUMCOL,F;COLUMNA COMPLETA DE CARACTERES?
  3084.  
  3085. GOTO MODE1
  3086.  
  3087. RETURN
  3088.  
  3089.  
  3090.  
  3091. NOCOMPLETOS_MODE1
  3092.  
  3093. NOP
  3094.  
  3095. MOVLW LONGX_MODE1
  3096.  
  3097. SUBWF FSR,F
  3098.  
  3099. GOTO MODE1
  3100.  
  3101.  
  3102.  
  3103. DELAY_MODE1
  3104.  
  3105. NOP
  3106.  
  3107. NOP
  3108.  
  3109. NOP
  3110.  
  3111. NOP
  3112.  
  3113. NOP
  3114.  
  3115. NOP
  3116.  
  3117. NOP
  3118.  
  3119. NOP
  3120.  
  3121. NOP
  3122.  
  3123. NOP
  3124.  
  3125. NOP
  3126.  
  3127. NOP
  3128.  
  3129. NOP
  3130.  
  3131. NOP
  3132.  
  3133. NOP
  3134.  
  3135. NOP
  3136.  
  3137. NOP
  3138.  
  3139. NOP
  3140.  
  3141. RETURN
  3142.  
  3143. ;------------------------------------------------------------------------------
  3144.  
  3145.  
  3146.  
  3147. ;PONE A "0" LOS REGISTROS DE MEMORIA DEL BANCO 0 Y 1 ,QUE UTILIZA
  3148.  
  3149. ;EL PROGRAMA PARA REPRESENTAR LOS CARACTERES EN PANTALLA.
  3150.  
  3151. BORRAPANT
  3152.  
  3153. BCF STATUS,RP0
  3154.  
  3155. BCF STATUS,RP1
  3156.  
  3157. MOVLW .80
  3158.  
  3159. MOVWF CONT
  3160.  
  3161. MOVLW INICPANT
  3162.  
  3163. MOVWF FSR
  3164.  
  3165. BORRA
  3166.  
  3167. MOVLW B'00000000'
  3168.  
  3169. MOVWF INDF
  3170.  
  3171. INCF FSR,F
  3172.  
  3173. DECFSZ CONT,F
  3174.  
  3175. GOTO BORRA
  3176.  
  3177. BORRAPANT2
  3178.  
  3179. BCF STATUS,RP0
  3180.  
  3181. BCF STATUS,RP1
  3182.  
  3183. MOVLW .80
  3184.  
  3185. MOVWF CONT
  3186.  
  3187. MOVLW PANT2
  3188.  
  3189. MOVWF FSR
  3190.  
  3191. BORRA2
  3192.  
  3193. MOVLW B'00000000'
  3194.  
  3195. MOVWF INDF
  3196.  
  3197. INCF FSR,F
  3198.  
  3199. DECFSZ CONT,F
  3200.  
  3201. GOTO BORRA2
  3202.  
  3203. RETURN
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209. ;------------------------------------------------------------------------------
  3210.  
  3211.  
  3212.  
  3213. ;CONVIERTE LOS CARACTERES ASCII DE LOS TEXTOS A CARÁCTERES PARA QUE PUEDAN SER UTILIZADOS POR EL PROGRAMA
  3214.  
  3215. CONV_CHAR
  3216.  
  3217. MOVLW .80; NUMERO DE CARACTERES A MOSTRAR EN EL BANCO0
  3218.  
  3219. MOVWF CONT
  3220.  
  3221. MOVLW INICPANT
  3222.  
  3223. MOVWF FSR
  3224.  
  3225. CLRF BYTECHAR; CONTIENE EL PUNTERO DE LA POSICION DE TEXTO
  3226.  
  3227. OTRAVEZ
  3228.  
  3229. CALL TEXTO
  3230.  
  3231. MOVWF INDF
  3232.  
  3233. MOVLW .96
  3234.  
  3235. MOVWF LINE
  3236.  
  3237. MOVF LINE,W
  3238.  
  3239. SUBWF INDF,F
  3240.  
  3241. BCF STATUS,C
  3242.  
  3243. RLF INDF
  3244.  
  3245. BCF STATUS,C
  3246.  
  3247. RLF INDF
  3248.  
  3249. BCF STATUS,C
  3250.  
  3251. RLF INDF
  3252.  
  3253. INCF BYTECHAR,F
  3254.  
  3255. INCF FSR,F
  3256.  
  3257. DECFSZ CONT,F
  3258.  
  3259. GOTO OTRAVEZ
  3260.  
  3261. CLRF PCLATH
  3262.  
  3263. RETURN
  3264.  
  3265.  
  3266.  
  3267. CONV_CHAR2
  3268.  
  3269. MOVLW .80; NUMERO DE CARACTERES A MOSTRAR EN EL BANCO1
  3270.  
  3271. MOVWF CONT
  3272.  
  3273. MOVLW PANT2
  3274.  
  3275. MOVWF FSR
  3276.  
  3277. CLRF BYTECHAR; CONTIENE EL PUNTERO DE LA POSICION DE TEXTO
  3278.  
  3279. OTRAVEZ2
  3280.  
  3281. CALL TEXTO2
  3282.  
  3283. MOVWF INDF
  3284.  
  3285. MOVLW .96
  3286.  
  3287. MOVWF LINE
  3288.  
  3289. MOVF LINE,W
  3290.  
  3291. SUBWF INDF,F
  3292.  
  3293. BCF STATUS,C
  3294.  
  3295. RLF INDF
  3296.  
  3297. BCF STATUS,C
  3298.  
  3299. RLF INDF
  3300.  
  3301. BCF STATUS,C
  3302.  
  3303. RLF INDF
  3304.  
  3305. INCF BYTECHAR,F
  3306.  
  3307. INCF FSR,F
  3308.  
  3309. DECFSZ CONT,F
  3310.  
  3311. GOTO OTRAVEZ2
  3312.  
  3313. CLRF PCLATH
  3314.  
  3315. RETURN
  3316.  
  3317.  
  3318.  
  3319. END
  3320.  

En esta web veo interesante este tipo de ASM.
http://usuarios.lycos.es/zootronica/modules.php?name=News&file=article&sid=32

Cuadno ya sepas algo, ya puedes hacer el de PC.

También puedes hacer cosas con PIC y Puerto serie RS232 y interfaz Visual C#.

http://www.abcdatos.com/tutoriales/tutorial/z9521.html

Saludos.
« Última modificación: 4 Febrero 2009, 07:43 am por Meta » En línea

krackwar


Desconectado Desconectado

Mensajes: 900


Ver Perfil
Re: programar en lenguaje maquina
« Respuesta #18 en: 4 Febrero 2009, 15:51 pm »

Siempre me a interesado la programacion de los PIC pero nunca lo e aprendido  :-\ , no se si alguien me pudiera facilitar algunos manuales ,cuales son las herramientas necesarias , etc.. . aprovechando que se toco el tema.
En línea

Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: programar en lenguaje maquina
« Respuesta #19 en: 4 Febrero 2009, 15:54 pm »

Donde aprendes seguro es con este  libro www.pic16f84a.org y en ese libro te enseña las bases necesarias y grbadores. Puedes leer el contenido en dicha Web, te viene con ejemplos incluidos.

IC-Prog.
http://www.abcdatos.com/tutoriales/tutorial/z9316.html

WinPic800
http://www.abcdatos.com/tutoriales/tutorial/z9157.html

Saludos.
En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines