Hacked by Owls Magazine5:(HMAG5.TXT):22/04/1996 << Back To Hacked by Owls Magazine5


------------------------------------------------------------------------------ H B O M a g a z i n e ------------------------------------------------------------------------------ Hacked by Owls Magazine, Volumen 1 - Numero 5. X de Febrero de 1995 - X de Abril de 1996 Indice ====== Editorial...............................................0x01050000 CONCURSO: "Hello World".................................0x01050001 Telefonia Publica.......................................0x01050002 1. Conceptos <-------- by all of us 1.5 Se#alizacion <-------- by OPii 2. Tarjetas, fichas, etc <----- by Cut&Paste 3. Dos Modelos a analizar: 3.1 TELECOM <-- Logical Backdoor && Casper 3.1.1 Telefono publico modular de Telecom 3.1.2 Analisis estructural y de componentes 3.1.3 Analisis del codigo del Z80 3.1.4 Analisis del codigo del i8051 3.1.5 Patches, posibilidades... 3.1.6 Conceptos de seguridad fisica POCSAG <-------- by Pelaca.............................0x01050003 My First Backdoor Toolkit #3............................0x01050004 - NONOSEQUE <------ by [ME] Conferencias varias ....................................0x01050005 - HOPE 94 - GonzoCon 94 - Summercon 95 <---- by Saltamontes Nuestra Conferencia 96..................................0x01050006 Readshit................................................0x01050007 - Bull Rocket #1 <---- by Logical backdoor - Llaneros solitarios... - Entrevistas Hacking for Dummies #2 <---- by everybody...............0x01050008 ContactUs...............................................0x01050009 Agradecimientos y fuckyous..............................0x0105000A Disclaimer..............................................0x0105000B -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= PGP -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= HBO Staff> - Janx Spirit - Logical Backdoor - OPii - Saltamontes Colaboradores del numero 5> - [ME] - Casper - Pelaca 0x01050000 - Editorial ====================== Evidentemente hay una nota fuerte en esta revista, y es la de Telefonia Publica... esta claro que la mayoria de ustedes se preguntaban muchas de las cosas que se dicen en esta nota, ahora mi pregunta es: por que no hicieron algo al respecto? ehh? pero bueno, HBO esta en todo... tirando la primera punta por lo menos... como veran el codigo no esta analizado exahustivamente, ni estan solucionados todos los problemas que se plantean en los patches e ideas... bueno, es sencillamente una tarea muy grande y somos bastante pocos incluyendo nuestros amigos y colaboradores, asi que a todos los que laburen en estos u otros temas les proponemos mantenernos en contacto, y HBOMAG junto con los bbs por los que rondamos son buenas maneras de hacerlo... este es un tema bastante apasionante y se por oidas que mucha gente prueba y encuentra boludeces al respecto... Seguimos con algunas columnas que se estan haciendo habituales, y ya empezamos a mandar nueva fruta como podran ver... XXXXXXXXXXXXXXXXXXXXXX CENSORED XXXXXXXXXXXXXXXXXXXXXXXX Amigos, amigas, hackerwannabees de todo el mundo, seguimos con la secuela de Hacking for Dummies que se que les gusto mucho... bahh, no es nada... siguen las anecdotas y demas. Y como siempre estamos intentando satisfacer a nuestro querido publico, volvemos con otro nuevo concurso, que no va a ser nada tan "complicado" como un killme.c, sino algo tan sencillo como un "Hello World". Interesados? Bueno, no importa, igualmente esta el articulo para que lo lean y ganen fabulosos premios. Y mas MFBT parte 3, READSHIT como siempre... Entrevistamos a Fernando Bosembiante y a Raquel Roberti, los responsables de la primera infamia en lengua castellana publicada sobre hackers. Nuestra seccion correo es re-inagurada por el heroe de todos los chicos, el autentico The Chacal. en fin, pasen y venas. eructen. HBO =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =============================================================================== 0x01050001 - CONCURSO: "Hello World\n" ====================================== Buenas noches, ladies and gentlemans, bon soire - sean bienvenidos a la segunda entrega del concurso mas sexy, mas alto y mas tonto del mundo... uhhggg?? ahhhh! apaguen la radio... apaguen al tipo ese con cara de hippie... arhghghghg No recibimos tu wav charlando con diego? hmmm too bad, te quedaste con ganas de la pizza, o de las remeras HBO?? El segundo concurso de HBO, donde podes demostrarle al mundo entero tus capacidades de fingerwalking... bah. printf("%s",titulo); Eso es todo lo que hay que hacer. Por supuesto que esto tiene un pequenio catch. (obviando que tiene que tener main() y todas esas cosas para que funcione) El programa sera evaluado segun la cantidad, calidad y variedad de warnings que produzca. Las reglas son las siguientes: 1- Lo unico que tiene que hacer el programa es poner "Hello World" (mas \n, explicacion aparte para que ningun boludo se crea que es una trampa) Lo que hagan para llegar a eso no imorta, pero con un limite de 15 ";" . 2- Sera compilado con gcc y todos los warnings del compilador seran prendidos. La maquina va a ser un linux 1.3.x (la version del gcc sera aquella que venga con la correspondiente distribucion) 3- Que funcione. Bueno, es simple, rapido y puede ser divertido. Habra menciones especiales a todos aquellos capaces de hacer algo interesante. Los premios? Bueno: Primer premio: Entrada a MendozaConch + Noche de trashing por la ciudad guiada por el maravilloso staff de esta revista tan increible. Segundo premio: Entrada a MendozaConch + Remera HBO (modelos en HMAG #4) Premio Consuelo: Salida a MendozaConch + Remera 'I Suck' Nota: Siendo el concurso tan interesante se les permite participar a los miembros del staff y amigos y familiares, siendo los premios en este caso respectivamente una manteada y un puente chino, y pasando los premios anteriores a los primeros 3 no HomeFriends Ok?.(No quiero ensuciarme de vuelta con mis amigos y que para colmo me lo hagan de favor) El primer premio se publicara en la HBOMAG #6 Manden los programas a Satanic Brain BBS (383-7480), lean contact-us o publiquenlos en el diario, por mi es igual... =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =============================================================================== 0x01050002 - Telefonia Publica ============================== 1. Conceptos Aja, entre sacar el titulo de conceptos y reacomodar el indice, prefiero escribir conceptos, ya que para eso no tengo que pensar. me decia a mi mismo. entonces por lo tanto a implica b y yo les cuento que esto es una nota de Telefonia publica, y bastante agradable. La verdad, estoy orgulloso de nosotros mismos por haber logrado esto y etc etc etc. Supongo que ustedes se toparon alguna vez con un telefono por ahi no? bueh, y desde bell en adelante naides se pudo hacer el pelotudo pero nosotros no. bah. No creo en lo personal, que tenga mucho que agregar aca, solo hacer mas larga la espera, asi que un lector interesado en la raw meat puede pasar directamente al punto siguiente. De paso, no viene al caso pero una vez me cole en una reunion de la asi llamada 2600 argentina, y algun pelotudo me dijo noseque sobre el prehacking de aca y el prejaquin de alla, y yo pienso: si se escribe phreaking y viene de phone y de freak, se pronuncia fric, pero bahh. punto aparte -- [OP] Interrumpo esta interesantisima disgregacion de nuestro amigo el psicopata LBD para recordarle que esto es un puto articulo sobre telefonia y que si quiere psicoanalisis que consulte a algun psicolo de eso que pululan por bsas. -- [LBD] nos parece que confundis esquizofrenia con psicopatia. pero bah nadie nos entiende. -- [SM] LBD, no queres ir a tomar aire un rato...? -- [OP] SAltamontes, si queres ser mi amigo aprende a escribir en un teclado en espanis gilun. Que LBD sea psicopate no quita que pueda ser esquizofrenico tambien ( ver teoria de como matar esta bien). -- [LBD1] alguno de mis yos talvez. [LBD2] quien yo? -- [SM] ...y a proposito de monitores subaquaticos, por que no terminas con tu disgregacion, y seguis deleitandonos con tus patologias que divertiran en demasia a tu padre... -- [LBDi, i=1 to n] esto se empieza a parecer demasiado a mis terapias de grupo. En fin, las siguientes son una serie de notas sobre telefonia, en este numero empezamos con senializacion y con telefonos publicos de TELECOM, en numero siguientes seguiremos con senializacion y veremos los mamotretos de Telefonica. Y algunas cosas mas... y terminaremos todos en cana. 1.5 Sistemas de senializacion en la Argentina. PARTE I ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ por OPii. Introduccion ~~~~~~~~~~~~ Bueno, este articulo describe el sistema de senializacion que se usa en la Argentina. Supongo que saben que es la senializacion telefonica ya que todos hicieron alguna vez bluebox y espero que lo hayan hecho sabiendo que carajo estaban haciendo, no como en el libro ese trucho de Bostandante que aparecen los chabones diciendo "..y manda el tonito ese piru-piru y despues mandas 1 que es la maxima prioridad del satelite y despues el numero de telefono... ", etc,etc. *NO* . La idea es entender que mierda pasa, no apretar teclas como un gil, para eso dedicate a data entry que encima te pagan. Aclaracion: El articulo se divide en 2 partes, ya que soy muy pajero y si esperaramos a que todos terminen sus articulos para publicar cada numero de la revista no tomaria 3 o 4 anios publicarlo, en lugar de 2 como sucede normalmente. La primera parte es mas que nada introductoria, la segunda tiene informacion mas interesante... BAH! Igual en caso de que no sepan de que diablos estoy hablando va una breve explicacion. A fin de que la cosa sea clara voy a hacer un esquema de la red telefonica de HBO, LatexTEL. Esta red tiene muchos abonados, incluso ni ellos mismos saben que son abonados, pero para el ejemplo basta con dos abonados: B _________ ________ _________ _________ / | | | | | | | | / | CO | ===========| C1 |********| C2 |=======| CD |/ | | | | | | | | --------- -------- --------- --------- / * * / * ---------- * / * | | * A *****| C3 |******************* | | ---------- "A" es El Chachal, que quiere llamar a su Noviecita Menor de Edad, cuyo nombre no conozco asi que llamemosla "B" [o NMdE]. "CO" es la Central de Origen, la central a la que A [EC] tiene tiene "conectado su telefono" [para hacer esto mas corto supongamos que esto es asi, que no hay ninguna caja en el medio, ni multipares ni filtros de linea ni multiplexers, etc, etc. EC tiene un cable de 2 hilos que va de su choza a CO, lo mismo para NMdE, la novia menor de edad del chacal, que esta conectada a CD]. "CD" es la Central de Destino. Ci (i = 1..3) son centrales intermedias que pueden o no tener abonados conectados a ellas, las llamamos centrales de transito, tandem o cualquier otro termino apropiado que se les ocurra, por ejemplo centrales de garcha, que me parece bastante apropiado para las Pentaconta. Las lineas dibujadas con "*" y "=" son troncales entre centrales , de distintas capaciades, cada troncal puede transportar las seniales de varias comunicaciones [correspondientes a varias lineas de abonados] utilizando tecnicas que esta demas describir aca. [ multiplexion por division de tiempo, de frecuencia, etc, etc]. A quiere llamar a B, para invitarla a salir a dar vueltas en roller por la autopista. Para eso tiene que descolgar su telefono y marcar el numero de B, el telefono de B suena y B descuelga y escucha a A... "Hola mi vida, tesorito, queres salir en roller conmigo?" "Si, si, vamos a la autopista asi nos pisan...", etc, etc. AHORA BIEN, COMO SE COMUNICO A CON B? Por arte de magia??? Para que sirven los numeros de telefono? Que gusto tiene la sal?? El objetivo de la senializacion es permitir que las centrales [switches] intercambien la informacion necesaria para establecer y "liberar" una comunicacion, o para supervisar y modificar el funcionamiento general de la red [ de aca en mas cuando pongo red me refiero al la red publica conmutada, que es como les gusta decirle a los tipos de telefonica/telecom, o tambien RPC o PSN iniglish o PSTN o algun otro termino que se me ocurra en el momento es decir, la red de telefonos/centrales/equipos-asociados ok??? mas claro tomate un whisky]. Entonces, hm en que ... ahh, las funciones de la senializacion son: Supervision. E'cir detectar la modificacion del estado de algun elemento de la RPC. Por ejemplo, detectar cuando algun abonado descuelga, o cuando se libera un circuito, etc. Direccionamiento. Se refiere al intercambio de la informacion ne'saria para el establecimiento de una llamada, por ejemplo mandar y/o recibir el numero del abonado llamado, el numero del abonado llamante, el tipo de abonado, seniales para retransmitir informacion que no se recibio a tiempo,etc. Explotacion Son seniales que permiten la optimizacion del uso de los recursos de la red [blah, optimizacion las bolas, en fin.. mas adelante veremos], o realizar tareas de gestion y contabilidad. Por ejemplo las seniales de tasacion [o "tarificacion" como les gusta decir a los gallegos de Teleforrisca], etc. Sistemas de senializacion ~~~~~~~~~~~~~~~~~~~~~~~~~ Existen 2 sistemas de senializacion: 1). Senializacion por canal asociado. En este caso, todas las seniales se mandan por un canal asociado a la llamada, puede ser el mismo o no, lo importante es que cada llamada tiene un canal que se usa para mandar y recibir la informacion de senializacion de esa llamada. 2). Senializacion por canal comun. Aca hay un canal por el cual se envia y recibe la informacion de varias llamadas, informacion sobre el estado de la red y sus diversos circuitos, switches, etc. El sistema mas conocido es el CCIS (Common Channel Interoffice Signalling) desarrollado por AT&T y que dio origen al CCITT #7 o SS#7 o sistema 7 como prefieran llamarlo. Estamos hablando de un enlace digital por el cual se mandan paquetes con la informacion, cada paquete tiene una "etiqueta" que indica de que tipo es y a que circuito pertenece. Bueno, en este articulo nos dedicamos exclusivamente a la senializacion por canal asociado. Tipos de senializacion ~~~~~~~~~~~~~~~~~~~~~~ Hay dos (2) tipos de senializacion: Senializacion de linea y senializacion de registro. SENIALIZACION DE LINEA. La senializacion de linea sirve [obviamente] para controlar el estado de los circuitos y supervisarlo antes, durante y despues de la comunicacion [toma de linea (seize), liberacion forzada hacia adelante (clear fwd), hacia atras, etc.]. Aca viene al caso aclarar que cuando hacen BB los 2 primeros tonos que mandan corresponden a este tipo de senializacion, estan mandando un clear fwd para liberar la linea que estan usando seguido de un seize (toma) para tomar la linea nuevamente... Pueden usarse distinto metodos de transmision para este tipo de senializacion: - Corriente continua (generalmente entre viejas centrales electromecanicas) - Dentro de banda ( en la Argentina no se usa, por lo menos no en los circuitos de la Argentina, llamar a un "pais directo" ya es otra cosa... ) - Fuera de banda ( e'cir fuera del rango de voz que puede emitir el abonado ) - MIC SENIALIZACION DE REGISTRO. Seniales que se transmiten entre registros de las centrales para identificar el numero al que se llama, numero del que llama, categoria del abonado, estado de la linea, troncales de salida, etc. Puede realizarse por medio de los siguientes metodos: - Impulsos decadicos (corriente continua o fuera de banda), o sea el famoso "uhg discar por pulso", mismo que TAMBIEN hace la central al comunicarse con otra central (once again estamos hablando de centrales garcha de cuando mi abuelo todavia tenia pelo). Un ejemplo de esto es verificable si llaman a La Plata, aunque Uds. tenga discado por tono, discan y van a escuchar, una vez que terminaron de discar, los pulsos que manda alguna central a la de alla. [ En realidad no se si sigue siendo asi ya que cambiaron muchas centrales por la zona sur ultimamente, blah igual es una ejemplo, prueben y vean] - Multifrecuencia. Le seniales se obtiene combiando varias frecuencias (2) dentro de banda. Hay 2 formas de hacer la senializacion: 1. Tramo a tramo. En este caso las seniales se transmiten desde CO a C1, que la procesa y la retransmite (toda o parte de ella) a C2 o C3 que a su vez hacen lo mismo y la transmiten a CD. CD finalmente establece la comunicacion, con lo cual se crea un camino virtual de voz entre EC y su NMdE (A y B). 2. Extremo a extremo. Aca CO transmite a cada central solo la informacion necesaria para el establecimiento de la conexion con la central siguiente, el control de la conexion entre CO y CD lo mantiene CO. La senializacion de linea es tramo a tramo, la de registro puede ser tramo a tramo [TaT] o extremo a extremo [EaE]. Senializacion Abonado-Central ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Esta completamente demas explicar que es la informacion que se intercambian el telefono del abonado con la central correspondiente, EC (A) con CO y NMdE (B) con CD. Algunas seniales de interes son: A colgado: El circuito de A esta abierto, imp. >= 100 KOhm A descolgado: Circuito cerrado, imp. <= 600 Ohm Discado: -Por pulso, entre 8 y 16 pulsos por segundo, que cierran y abren el circuito, con una relacion 1/3 cerrado y 2/3 abierto. Tolerancia de +/- 10%. -Por tono, de acuerdo a la recomendacion Q.23 de ITU (CCITT). El conocido DTMF, en el que hay 16 seniales, 10 para los digitos y 6 de reserva, cada senial se compone de 2 frecuencias, tomadas de 2 grupos de 4 frecuencias cada uno. Hz. 1209 1336 1477 1633 |-----|-----|-----|-----| | | | | | Cada frecuencia tiene una 697 | 1 | 2 | 3 | A | tolerancia de +- 1,8% de la frecuencia | | | | | indicada. |-----|-----|-----|-----| | | | | | 770 | 4 | 5 | 6 | B | El nivel de ruido debe ser como minimo | | | | | 20dB menos que el de las frecuencias. |-----|-----|-----|-----| | | | | | 852 | 7 | 8 | 9 | C | | | | | | |-----|-----|-----|-----| | | | | | 941 | * | 0 | # | D | | | | | | |-----|-----|-----|-----| -Tono de invitacion a discar. Es el tono que se escucha cuando uno desculea el telefono. Tono cuntinuado de frecuencia unica de 425Hz. -Tono de retorno de llamada. Tono que manda CD a A para indicar que B esta libre y esta dandole aviso de que A llama, el ring,ring que uno escucha cuando llama a alguien. Aca hay multiples variaciones y basicamente los distintos tonos de este tipo nos pueden dar una idea de con que tipo de central/pbx nos estamos comunicando. Las especificaciones son: Frecuencia de 425Hz. Se transmite entre 0,67 y 1,5 segundos seguido de 3 a 5 segundos de silencio. Segun las normas de Telescum y Teleforrica se establecen los siguientes tiempos como "estandares", aunque todos sabemos que esto varia de acuerdo a las condiciones climaticas, la influencia de la actividad solar en las antenas de transmision satelital, la polinizacion del aire, la humedad ambiente y cualquier otra cosa que a uno se le pueda ocurrir, en la realidad el tono es cualquiera y distinto en cada central o tipo de central. Decia, los tiempos definidos como estandares son: Tono: 1 seg. Silencio: 4 seg. -Tono de ocupado. La envia CO/Ci/CD a EC (A) cuando la linea de NMdE (B) esta ocupada porque esta hablando con su amante, o cuando las recepcion de alguna senial para el discado da timeout. El ciclo de tono-silencio completo debe durar enetre 300 y 1000ms. La relacion T/S debe estar entre 0,67 y 1,5. La frecuencia es la misma, 425Hz. En la practica Telescum y Teleforrisca usan T=300ms y S=200ms. -Tono de congestion. La envia CO/Ci/CD a EC cuando la llamada a NMdE no puede completarse o cuando: Alguna de las centrales del camino recibe una senial A4 o B4 hacia atras [ mas adelante vemos que son estas seniales]. Hay congestion o falla en alguno de los circuitos de la central. Frec. 425Hz. T=300ms. S=400ms. -Tono de indicacion de servicio suplementario activado. Este tono lo manda CO a EC cuando activa algun servicio [tipo Plustel] extra, como por ejemplo aprete FLASH y recibe este tono y despues tono de discar [ EC quiere llamar a F.BostaGrande para hacer una conferencia con NMdE y el y convencerlo de que use rollers y vaya a la autopista con ellos]. En realidad jamas escuche este tono, excepto cuando llamo desde un interno de un PBX, pero nunca desde la RPC. Si alguien escucho este tono aviseme ... Frec. = 425Hz. T=1s S=0,25s -Tono de indicacion de llamada en espera. Tonito que escucha EC mientras esta hablando con NMdE cuando FBG lo llama para decirle que no tiene rollers y no puede salir porque tiene que salir a tomar algo con Fabian Garcia (FG). Frec.=425Hz. T=0,3s S=10s -Tono de indicacion de spera/entretenimiento. Esto es lo que escucha NMdE mientras EC hace flash y disca el telefono de FG para decirle que no salga mas con FBG porque el lo engania con otra, err, digo otro. [ No se que mierda tiene de entretenimiento, en realidad es completamente aburrido escuchar esta mierda mientras el otro disca para entrar en conferencia o toma una llamada en espera] Frec.=425Hz. T=0,4s S1=0,2s S2=4s. La senial se forma asi: T-S1-T-S2-T-S1... -Tono de indicacion de fin de servicio tripartito [ BULLSHIT!@#$] Este tono lo envia CO a todos los abonados que estan en conferencia cuando esta termina. [Jamas lo escuche, si alguien lo hizo aviseme] Frec.=950/1400/1800Hz. T=3x0,33s -Tono de aviso. Se envia a EC y NMdE para indicarles la proxima intervencion de la operadora, o sea es lo que esuchan antes de que entre la operadora en la linea y les diga que corten porque a EC lo llama alguien de Alemania que quiere hablar sobre el mitico Altos. Frec.=1400Hz. +-50Hz. T=100ms S=1900ms -Tono de indicacion de procedimiento anormal. Es el tono que se escucha cuando NMdE corta y EC deja el telefono descolgado durante mucho tiempo. Se mandan 2 tonos alternados de la misma o distinta frecuencia, mayor o igual que 900Hz. a un nivel de potencia mayor que 3dBm0 -Impulso de computo. Tono que se envia al abonado llamante (si es un TP o tiene medidor en su extremo) para que compute el costo de la llamada... Frec.=16Khz y entre 120 y 180 ms. de duracion, algunos TPs reciben un tono de 50Hz. +/- 10% de 150ms +/- 5%. Senializacion entre Centrales ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Bueno, esta es la parte mas interesante de la senializacion, para la senializacion entre centrales hay 2 tipos de seniales, seniales hacia adelante y hacia atras. La seniales hacia adelante van desde CO o alguna central de transito hacia CD o alguna central de transito que le sigue en su camino hacia CD. Igualmente, las seniales hacia atras van hacia CO o alguna central de transito anterior a la central que las manda. Seniales hacia adelante. 1. TOMA (seize). Se manda al principio de la llamada para que el circuito pase de estado de reposo a 'en uso', en C1 provoca que se conecten al circuito los equipos correspondientes (registros,etc). Existen 2 seniales de toma, toma corta (la que hace el abonado) y toma larga (la hace una operadora), la unica diferencia entre ellas es la duracion. Si bien esto no esta especificado en las normas de Telefonica y Telecom, la recomendacion Q.79 del CCITT dice que la senial corta debe tener una duracion de 150ms +/- 20% y la larga de 600ms +/- 20%. 2. LIBERACION (EC cuelga [de un arbol]).Se transmite para terminar la llamada o el intento de establecerla, con esta senial se 'liberan' en las sucesivas centrales de transito y CD todos los equipos asignados a la llamada. Ademas de interrumpir la conexion, esta senial finaliza la tasacion. (El famoso clear-forward, ok?) 3. DISCADO DECADICO. En el caso de que entre las centrales no haya senializacion de registro R2 se envia esta senial. Consiste en un determinado numero de impulsos para identificar cada digito y una pausa entre digito y digito. Para senializacion LOOP ya dijimos que se usa una cadencia de entre 8 y 16 pulsos por segundo, para senializacion E y M el tiempo de iduracion de los impulsos es de 50ms +/- 20%. Para la pausa entre digitos hay un tiempo minicom de 600ms. y maximo de 15s. Seniales hacia atras. 1. RESPUESTA ( NMdE descuelga o CONTESTACION). Transmitida por CD para indicar que NMdE levanto el tubo (uhuh), inicia la tarifacion (se considera como el primer impulso de computo). 2. COLGAR (NMdE cuelga o LIBERACION FORZADA). Tranmitida por CD para indicar que NMdE colgo y se fue a ponerse los rollers para salir a la autopista. Cuando se recibe esta senial se realizan 2 cosas de acuerdo a si el tramo del circuito por donde se recibe es con computo o sin computo. Si es con computo se interpreta como una senial de LIBERACION FORZADA y se manda la senial hacia adelante LIBERACION. Si es sin computo CO o la Ci (para el i apropiado), hace un ... digamos un alarm(60) [si no saben C de unix lo lamento] y manda hacia adelante (despues de los 60s y si EC todavia no colgo) la senial de LIBERACION, mandando tono de ocupado a EC. Esto es lo que permite que si A llama a B y despues de hablar, B corta pero A no lo hace, B puede levantar el tubo y todavia esta A ahi, jerking off. Pero lo bueno dura poco, y en este caso son solo 60s. Sin embargo, en las antiguas centrales SxS (pasoapasoqueledicen) uno podia llamar a X y dejar descolgado, bloqueandole efectivamente el telefono al boludo de X, que seguramente se lo merecia... bah en fin, continuemos.... 3. BLOQUEO. Transmitida por algun circuito libre hacia CO para provocar que ese circuito se bloquee e impedir que sea tomado, es la responsable del ritmo-de-samba que se experimenta, antes de establecer la comunicacion, en algunas centrales cuando uno llama... p.e. la zona de Belgrano (bah, no se si todavia sigue pasando). 4. REPOSO o CONTROL DE LIBERACION. Transmitida hacia CO en respuesta a una de LIBERACION (EC cuelga) para indicar que esta ultima senial efectivamente puso los equipos de conmutacion en estado de reposo en CD (o Ci, para el i correspondiente). El circuito esta protegido contra cualquier nueva toma hasta que en CO se realicen las operaciones de desconexion de sus equipos de conmutacion. 5. SEGURIDAD DE LIBERACION. Esta senial se transmite hacia CO despues de haberse recibido una senial de liberacion, con el fin de confirmarla, se sigue una secuencia obligada para este tipo de 'negociacion'. En definitiva es una especie de ACK que ademas sirve para verificar fallas en los canales de onda portadora (se usa en senializacion de E Y M) y bloquearlos si corresponde. 6. COMPUTO. Senial aplicada por el centro de tasacion para hacer que EC pague por llamar a NMdE. Si considera como primera senial de computo a le senial de RESPUESTA, a partir de ese momento el centro de tasacion, alguna de las centrales 'en camino'a CD, manda seniales de COMPUTO a intervalos regulares (el famoso *pulso* tictic). 7. ACUSE DE RECIBO DE TOMA. Se transmite hacia CO indicando que una canal a sido tomado (con seize) y esta en estado de 'en uso'. Cuando CO recibe esta senial se completa la parte de senializacion de linea, y se puede comenzar la senializacion de registro que es la identificacion del DN a llamar y del DN llamante. Ok, existen 2 formas de senializacion de acuerdo a las caracteristicas del trunk sobre el que se senializa, analogico o digital. Para ambos casos hablaremos de senializacion con computo. Version analogica [B.P.O]. ~~~~~~~~~~~~~~~~~ Funciona con inversion de la polaridad en los hilos de la linea, p1,polaridad normal: -48v en hilo a, tierra hilo b. p2,polaridad inversa: tierra en (a), -48v en (b). alta resistencia: >= 12 KOhm baja resistencia: <= 6.6 KOhm En REPOSO (idle, bah) hay alta resistencia en el trunk, para la toma CO cierra el circuito y baja la resistencia, Ci/CD reconoce p1. Para el discado CO cierra y abre el circuito alternativamente, mas o menos entre 8-16 impulsos por segundo ( discado decadico osea), Ci debe reconocer p1/p2 en esta parte. Cuando se libera el canal, se abre el circuito nuevamente. Es importante poder distinguir una inversion de polaridad (p1 <-> p2) de una completa falta de tension en la linea, lo ultimo indica BLOQUEO. Bue, esto no es demasiado interesante ya que teoricamente no quedan trunks analogicos en el AMBA y el resto de la areas urbanas de Argentina, y quedan muy pocas centrales analogicas... Version digital [L.M.E] ~~~~~~~~~~~~~~~ En un canal digital, linea E1 de 64kbs hay 32 canales, multiplexados por division de tiempo (TDM), de ellos se toman 30 canales para comunicacion telefonica, sampleando a 8khz y usando PCM de 8 bits. Existe por lo tanto un intervalo de tiempo (timeslot) que corresponde a cada canal del E1. Se denomina una *trama* al conjunto de intervalos de tiempo (timeslots) consecutivos desde el timeslot de un canal al siguiente timeslot del mismo canal. Los ts de 1-15 y 17-31 corresponden a los 30 canales telefonicos En el ts0 se transmite la senial de alineacion de trama, una vez cada dos tramas, alternada con una senial sin informacion de alineacion. Esto se usa para que cada extremo pueda mantener la sincronia y no perder informacion ni mezclar timeslots que corresponden a distintos canales, esto si seria interesante!@#$. Ok, la senial de alineacion de trama es algo asi como: bit # 0 1 2 3 4 5 6 7 --------------- valor x 0 0 1 1 0 1 1 x: Reservado uso internacional, por ahora x=1 El ts0 *SIN* alineacion de trama es: bit # 0 1 2 3 4 5 6 7 --------------- valor x 1 y z z z z z x: Reservado uso internacional, por ahora x=1 y: Indicacion de alarma para el extremo distante, en caso de falla en el multiplexor. z: Reservado uso nacional, por ahora z=1 El ts16 se usa para senializacion, cuando se emplea senializacion por canal asociado (caso de argentina) 16 tramas consecutivas forman una multitrama. En el ts16 se asignan los bits de cada trama de la siguiente manera: ts16-trama0: 00001y11 y: Utilizado para perdida de alineacion en multitrama. ts16-trama1 : abcd abcd canal1 canal16 ts16-trama2 : abcd abcd canal2 canal17 ts16-trama15: abcd abcd canal15 canal30 Bits de senializacion ~~~~~~~~~~~~~~~~~~~~~ Hay 8 bits para la senializacion por cada circuito telefonico, 4 hacia adelante y 4 hacia atras, los llamaremos Af Bf Cf Df y Ab Bb Cb Db por f de forward y b de backward. En la senializacion R2 digital se utilizan solo 2 bits en cada sentido, Af y Bf y Ab y Bb. Af indica el estado de CO osea si EC [recordemos, nuestro amiguito El Chacal] tiene su telefono colgado o descolgado. Ab indica el estado de Ci o CD , colgado o descolgado. Bf y Bb indican el estado del circuito desde CO y CD respectivamente, puede ser en reposo (idle) o en ocupacion (erhmm seized). Los bits C y D toman valores fijos: Cf == Cb == 0; Df == Db == 1; Inicialmente un canal esta en idle ( af=1;bf=0;ab=1;bb=0), esto lo podemos representar, visto desde CO, como: Tx Rx Tx Rx ----- o si incluimos los bits C y D : --------- 10 10 1001 1001 CO quiere tomar un canal, entonces vemos: 00 10 Ci recibe la toma y manda un seizure acknogledge: 00 11 Aqui CO pasa a senializacion de registro, mandando los digitos del numero a discar y la identificacion del abonado llamante (si es necesario) Una vez terminado esto CD hace la conexion y la noviecitamenordeedaddelchachal levanta el tubo [ del telefono]. Vemos: 00 01 Cuando EC quiere colgar (clear forward) CO pasa el bit Af de 0 a 1. Cuendo NMdE quiere colgar CD pasa el bit Ab de 0 a 1. En conclusion: EC le cuelga a NMdE cuando terminan de hablar: 00 01 -> 10 01 -> 10 11 -> 10 10 y el canal esta otra vez en idle. NMdE le cuelga a EC: 00 01 -> 00 00 -> 10 00 -> 10 10 y el canal esta idle. La condicion de canal bloqueado se reconoce por el estado 11 hacia adelante o hacia atras. Por ejemplo, si CD esta bloqueando el canal CO ve: Rx Tx ------- [ CO transmite idle pero CD transmite bloqueo ] 10 11 Cuando las dos centrales estan bloqueando el canal tenemos: Rx Tx -------- 11 11 Bueno, es bastante sencillo creo, fijense que cuando hay un cambio de estado SOLO se modifica UN bit, con lo cual es facil detectar fallas y equipo que esta funcionando fuera de la norma. Como un codigo de hrmm hmm Grey? En la segunda parte del articulo vemos mas en detalle esto, pasamos a la etapa de senializacion de registro y pongo algunos ejemplos de senializacion entre centrales de distinto tipo en Argentina. Es mas, este articulo deberia ser una sola parte, pero es el momento de que me dedique a cosas menos productivas. Ver ContacUs si quieren mandar feedback,comentarios,etc. 2. Tarjetas fichas, etc by Cut&Paste Lo siguiente es un cut&paste de otra gente, incluido por un motivo de completitud. y para que no tengan que aprender a manejar los multiples files en su editor de cabecera. =============================================================================== What you need to know about electronics telecards quien hizo esto? fuck, alguien deberia acordarse... =============================================================================== Content --------- I ) The cards from Gemplus, Solaic, Schlumberger, Oberthur: I-1) Introduction: I-2) SCHEMATICS of the chip: I-3) PINOUT of the connector: I-4) Main features: I-5) TIME DIAGRAMS: I-6) Memory MAP of cards from France and Monaco: I-5) Memory MAP of cards from other countries: II ) The cards from ODS: (German cards) II-1) Introduction: II-2) Pinout: II-3) Main features: II-4) Time Diagrams: II-5) Memory Map: II-6) Electrical features: III) Schematics of Readers: III-1) Reader 1: III-2) Reader 2: IV) The program: ------------------------------------------------------------------------------- I ) The cards from Gemplus, Solaic, Schlumberger, Oberthur: (French cards) ====================================================================== I-1) Introduction: ------------ Since the middle of 80's have appeared a new generation of cards ( the smart-cards or chip cards ) that have replaced most of the magnetics cards applications notably for telecom payement and also for credit cards. These cards are far more secure than the magnetics cards, and there are several kind of cards following the application. The simplier ones are the Simple Memory cards like the one used as Telecard for the telecom payement in the public phone-booths ( Generaly all the memory content is readable, and there is a maker-area that is unwritable ) , then there are more sofisticated cards: Memeory Cards with some area read protected by a key, these cards can contain some private informations in the read-protected area. At the end there are microprocessor-cards (cards working following the ISO-7816 protocol), that are the safiest ones since these cards have their own internal Operating System that prevent I/O if the Pin code has not been entered in the cards before ( These cards are used when confidentiality is needed, like in bank cards, crypted TV access cards, health cards, etc ... ). About telecards, even if these cards are the less safe ones, don't think that you are going to phone freely for that, in fact no. All the data are readable since there are no confidential data inside, the the cards are well done enough to be very secure for the payement of telecom communications in public booth. So, what is a phonecard exactly ? In fact generaly it's a 256 bits EPROM ( French likde cards ), or a 128 bits EEPROM (German like cards) with a serial output and some other control pins. Then why can it not be refilled ? Well, indeed to refill the card you will have to erase the cards with UV, knowing that the cards is coated in UV opaqued resin that prevent UV from reaching the silicium chip, and even if you could to erase the chip you will have to program the manufactuer area that is write-protected by a lock-out fuse that was fused after the card programming in factory. Neithertheless it can be very interesting to study how these cards work, to see which kind of data are inside and how the data are maped inside or to see how many units are left inside for exemple. Besides there are a great number of applications of these cards when there are used (only for personal use of course) , since you can use them as key to open a door, or you can also use them as key to secure a program, etc .... French Telecards have been created in 1984 and at this time constructors decided to build these cards in NMOS technology but now, they plan to change by 1994 all readers in the public booths and use CMOS technology. Also they plan to use EEPROM to secure the cards and to add many usefull infornations in, and you will perhaps use phone cards to buy you bread or any thing else. These cards are called Second Generation Telecards. I-2) SCHEMATICS of the chip: ---------------------- .-------------------. | | --|> Clk | | _ | --| R/W | | | --| Reset | | | --| Fuse | | | --| Vpp | | | | | '-. .-' | | .-------------------. | Out |-- serial output '-------------------' I-3) PINOUT of the connector: ------------------------- AFNOR CHIP ISO CHIP ---------- -------- -------------+------------- -------------+------------- | 8 | 4 | | 1 | 5 | | | | | | | +-------\ | /-------+ +-------\ | /-------+ | 7 +----+----+ 3 | | 2 +----+ + 6 | | | | | | | | | +--------| |--------+ +--------| |--------+ | 6 | | 2 | | 3 | | 7 | | + +----+ | | +----+----+ | +-------/ | \-------+ +-------/ | \-------+ | 5 | 1 | | 4 | 8 | | | | | | | -------------+------------- -------------+------------- NB: only the position of the chip is ISO standardized and not the pinout PINOUT: 1 : Vcc = 5V 5 : Gnd ------ 2 : R/W 6 : Vpp = 21V 3 : Clock 7 : I/O 4 : Reset 8 : Fuse I-4) Main features: --------------- - Synchronous protocol. - N-MOS technology. - 256x1 bit organisation. - 96 written protected by a lock-out fuse. - Low power 85mW in read mode. - 21 V programming voltage. - Access time: 500ns - Operating range: -100C +700C - Ten year data rentention. I-5) TIME DIAGRAMS: --------------- +21V _____________ +5V ____________________________________| |_________________ Vpp : : +5V ___________________:_____________:_________________ Reset 0V ________________| : : : : : +5V ____ : ____ : ______:______ 0V ___| |_______:_____| |________:______| : |__________ Clock : : : : : : : : : +5V : : : : : :______:______: : _ 0V ___:____:_______:_____:____:________| : |______:__________ R/W : : : : : : : : : +5V : : :_____: :________: : : :__________ 0V XXXXXXXXXXXXXXXXX_____XXXXXX________XXXXXXXXXXXXXXXXXXXXXX__________ Out : : : : : :<-----><---->: : : : : : : :10 to 10 to : : : : : : :50 ms 50ms : Reset Bit 1 Bit2 Bit 3 card reading reading Bit2 writing to 1 reading I-6) MEMORY MAP of cards from France and Monaco: -------------------------------------------- Bytes Bits Binary Hexa +-----------+-----+ 1 1 --> 8 | | | ---> Builder code. +-----------+-----+ 2 9 --> 16 | 0000 0011 | $03 | ---> a french telecard +-----------+-----+ 3 17 --> 24 | | | +-----------+-----+ 4 25 --> 32 | | | +-----------+-----+ 5 33 --> 40 | | | +-----------+-----+ 6 41 --> 48 | | | +-----------+-----+ 7 49 --> 56 | | | +-----------+-----+ 8 57 --> 64 | | | +-----------+-----+ 9 65 --> 72 | | | +-----------+-----+ 10 73 --> 80 | | | +-----------+-----+ 11 81 --> 88 | | | +-----------+-----+ 12 33 --> 40 | 0001 0011 | $13 | ---> 120 units card | 0000 0110 | $06 | ---> 50 units card | 0000 0101 | $05 | ---> 40 units card +-----------+-----+ 13-31 97 --> 248 | | | ---> The units area: each time a unit | | | is used, then a bit is set to "1"; | | | Generaly the first ten units are | | | fused in factory as test. | | | | | | | | | +-----------+-----+ 32 249 --> 256 | 1111 1111 | $FF | ---> the card is empty +-----------+-----+ I-7) MEMORY MAP of the other cards: ------------------------------- Bytes Bits Binary Hexa +-----------+-----+ 1 1 --> 8 | | | +-----------+-----+ 2 9 --> 16 | 1000 0011 | $83 | ---> a telecard +-----------+-----+-----------+-----+ 3-4 17 --> 32 | 1000 0000 | $80 | 0001 0010 | $12 | ---> 10 units card | | | 0010 0100 | $24 | ---> 22 units card | | | 0010 0111 | $27 | ---> 25 units card | | | 0011 0010 | $32 | ---> 30 units card | | | 0101 0010 | $52 | ---> 50 units card | | | 0110 0010 | $62 | ---> 60 units card | | | 1000 0010 | $82 | ---> 80 units card | 1000 0001 | $81 | 0000 0010 | $02 | ---> 100 untis card | | | 0010 0010 | $22 | ---> 120 units card | | | 0101 0010 | $52 | ---> 150 units card +-----------+-----+-----------+-----+ 5 33 --> 40 | | | ---> $00 for sweden. +-----------+-----+ 6 41 --> 48 | | | +-----------+-----+ 7 49 --> 56 | | | +-----------+-----+ 8 57 --> 64 | | | +-----------+-----+ 9 65 --> 72 | | | +-----------+-----+ 10 73 --> 80 | | | +-----------+-----+ 11 81 --> 88 | | | ---> $11 for sweden +-----------+-----+ 12 89 --> 96 | 0001 1110 | $1E | ---> Sweden | 0010 0010 | $22 | ---> Spain | 0011 0000 | $30 | ---> Norway | 0011 0011 | $33 | ---> Andorra | 0011 1100 | $3C | ---> Ireland | 0100 0111 | $47 | ---> Portugal | 0101 0101 | $55 | ---> Czech Republic | 0101 1111 | $5F | ---> Gabon | 0110 0101 | $65 | ---> Finland +-----------+-----+ 13-31 97 --> 248 | | | ---> The units area: each time a unit | | | is used, then a bit is set to "1"; | | | | | | Generaly the first two units are | | | fused in factory as test. | | | | | | +-----------+-----+ 32 249 --> 256 | 0000 0000 | $00 | +-----------+-----+ II ) The cards from ODS, Giesecke & Devrient, ORGA Karten systeme, ============================================================= Uniqua, Gemplus, Schlumberger and Oldenbourg Kartensysteme: =========================================================== II-1) Introduction: ------------ These cards are in fact 128 bit memory in NMOS technology, and the map of these cards are the following: 64 bit EPROM written protected (manufaturer area). 40 bit EEPROM (5x8 bits). 24 bits set to "1". II-2) Pinout: -------- ISO 7816-2 -------------+------------- | 1 | 5 | Pinout: | | | ------- +-------\ | /-------+ | 2 +----+ + 6 | 1 : Vcc = 5V 5 : Gnd | | | | 2 : Reset 6 : n.c. +--------| |--------+ 3 : Clock 7 : I/O | 3 | | 7 | 4 : n.c. 8 : n.c. | +----+----+ | +-------/ | \-------+ n.c. : not connected | 4 | 8 | | | | -------------+------------- II-3) Main features: --------------- - ISO 7816- 1/2 compatible. - use a single 5V power supply. - low power consuption. - NMOS technology. II-4) Time Diagrams: ---------------- Reset: ------ The address counter is reset to 0 when the clock line CLK is raised while the control line R is high. Note that the address counter can not be reset when it is in the range 0 to 7. __________________ _____| |_____________________________________________ Reset : : : _____ : _____ _____ _____ _____ _____:_______| |____:_| |_____| |_____| |_____| |_ Clk : : : : : : : : : : : _____:_______:__________:_:_____:_____:_____:_____:_____:_____:_____:_ _____:___n___|_____0____:_|_____1_____|_____2_____|_____3_____|___4_:_ (Address) : : : : : : _____: :_______:___________:___________:___________:_ _____XXXXXXXXXXXXXXXXXXXX_______|___________|___________|___________|_ Data Bit n Bit 0 Bit 1 Bit2 Bit3 The address counter is incremented by 1 with each rising edge of the clock signal Clk, for as long as the control line R remains low. The data held in each addressed bit is output to I/O contact each time Clk falls. It is not impossible to decrement the address counter, therefore to address an earlier bit, the address counter must be reset then incremented to require value. Write: ------ All unwritten or erased bits in the address 64-104 may be unwritten to. When a memory cell is unwritten to, it is set to 0. The addressed cell is unwritten to by the following sequence. 1- R is raised while Clk is low, to disable address counter increment for one clock pulse. 2- Clk is then raised for a minimum of 10ms to write to the address bit. When to write operation ends, and Clk falls, the address counter is unlocked, and the content of the written cell, which is now 0, is output to I/O contact if the operation is correct. The next Clk pulse will increment the address by one, then the write sequence can be repeated to write the next bit. _____ _____ _____________| |______________________________| |_______________ Reset : : ___ : _____ ___ : _____ ____| |____:__________| |_________| |_____:__________| |____ Clk : : : : : : : : : ____:________:__________:_____:_________:___:_____:__________:_____:_____ n | n+1 | n+2 | : n+3 | : (Address) ----'--------:----------'-----:---------'---:-----:----------'-----:----- : : : : : : : _________ _: : : ____________: ___: : : _________XXX_XXXXXXXXXXXXXXXXXXX____________ XX___XXXXXXXXXXXXXXXXXXXXXXX I/O n n+1 : : n+1 n+2 : : : : : : write write WriteCarry: ----------- A counter is erased by performing the WRITECARRY sequence on the stage of the next highest weighing to that to be erased. The writecarry sequence is as follows: 1 - Set the address counter to an unwritten bit in the next highest counter stage to that to be erased. 2 - Increment is disabled on the following rising edge of R where Clk remains low. 3 - Clk is then raised for a minimum of 10ms, while R is low, to write to the next address bit. 4 - R is the raised again while Clk remains low to disable increment a second time. 5 - Clk is the raised for a minimum of 1ms, while R is low, to write to the addressed bit a second time, erasing the counter level immediately below that the addressed bit. _____ _____ ______| |____________________| |_________________________________ Rst : : : _______ : _______ ___ ______:___________| |______:_____________| |______| |______ Clk : : : : : : : : : : : : : : : : <------------------------- address n ------------------------>:<--- n+1 ------ : : : : : : : : : : : : : : ______: : :______: : :__________: _____ ______XXXXXXXXXXXXXXXXXXXXX______XXXXXXXXXXXXXXXXXXXXXXX__________XX_____ I/O : : n : : n n+1 : : : : Write Erase II-5) Memory Map: ------------- Bytes Bits Binary Hexa +-----------+-----+ 1 1 --> 8 | | | +-----------+-----+ 2 9 --> 16 | 0010 1111 | $2F | ---> Germany | 0011 0111 | $37 | ---> Netherland | 0011 1011 | $3B | ---> Greece +-----------+-----+ 3 17 --> 24 | | | 4 25 --> 32 | | | ---> Issuer area (written protected) 5 33 --> 40 | | | 6 41 --> 48 | | | 7 49 --> 56 | | | 8 57 --> 64 | | | +-----------+-----+ 9 65 --> 72 | | | ---> c4096 ) 10 73 --> 80 | | | ---> c512 ) 11 81 --> 88 | | | ---> c64 ) 5 stage octal counter 12 89 --> 96 | | | ---> c8 ) 13 97 --> 104 | | | ---> c0 ) +-----------+-----+ 14 105 --> 112 | 1111 1111 | $FF | 15 113 --> 120 | 1111 1111 | $FF | ---> area of bits set to "1" 16 120 --> 128 | 1111 1111 | $FF | +-----------+-----+ The Issuer area: ---------------- This issuer consists of 40 bits. The contents of the issuer area are specified by the card issuer, and are fixed during the manufacturing process. The contents of the issuer area will include data such as serial numbers, dates, and distribution centers. This area may only be read. The Counter area: ----------------- The counter area stores the card's units. Its initial value is specified by the card issuer and set during manufacturing. The counter area is divided into a 5 stage abacus. The octal value of each stage is defined by the number of bits set to '1' and this stage value must be weighted by the coeficient 8^n ( where n is among [4..0] ). Exemple: For a card with 15818 units (or money units) left. -------- Byte9 Byte10 Byte11 Byte12 Byte13 -------------------------------------------------------------- 00000111 - 00111111 - 01111111 - 00000001 - 00000011 -------------------------------------------------------------- (3)octal (6)octal (7)octal (1)octal (2)octal -------------------------------------------------------------- Value = 3*8^4 + 6*8^3 + 7*8^2 + 1*8^1 + 2*8^ -------------------------------------------------------------- TOTAL = 15818 Units Note that you can only decrease the counter and it is not authorised to write in the counter a value greater than the old value. I-6) Electrical features: -------------------- Maximum ratings: ---------------- +--------+------+------+------+ | Symbol | Min | Max | Unit | +----------------------+--------+------+------+------+ | Supply voltage | Vcc | -0.3 | 6 | V | +----------------------+--------+------+------+------+ | Input voltage | Vss | -0.3 | 6 | V | +----------------------+--------+------+------+------+ | Storage temperature | Tstg | -20 | +55 | 0C | +----------------------+--------+------+------+------+ | Power dissipassion | Pd | - | 50 | mW | +----------------------+--------+------+------+------+ DC caracteristics: ------------------ +--------+-----+-----+-----+------+ | Symbol | Min.| Typ.| Max.| Unit | +---------------------------+--------+-----+-----+-----+------+ | Suplly current | Icc | - | - | 5 | mA | +---------------------------+--------+-----+-----+-----+------+ | Input Voltage (low) | Vl | 0 | - | 0.8 | V | +---------------------------+--------+-----+-----+-----+------+ | Input voltage (high) | Vh | 3.5 | - | Vcc | V | +---------------------------+--------+-----+-----+-----+------+ | Input current R | Ih | - | - | 100 | uA | +---------------------------+--------+-----+-----+-----+------+ | Input current Clk | Il | - | - | 100 | uA | +---------------------------+--------+-----+-----+-----+------+ | Output current (Vol=0.5V) | Iol | - | - | 10 | uA | +---------------------------+--------+-----+-----+-----+------+ | Output current (Voh=5V) | Ioh | - | - | 0.5 | mA | +---------------------------+--------+-----+-----+-----+------+ AC caracteristics: ------------------ +--------+------+------+------+ | Symbol | Min. | Max. | Unit | +----------------------+--------+------+------+------+ | Pulse duration | tr | 50 | - | us | | R address reset | | | | | +----------------------+--------+------+------+------+ | Pulse duration | ts | 10 | - | us | | R write | | | | | +----------------------+--------+------+------+------+ | High level Clk | th | 8 | - | us | +----------------------+--------+------+------+------+ | Low level Clk | tl | 12 | - | us | +----------------------+--------+------+------+------+ | Write window | Twrite | 10 | - | ms | +----------------------+--------+------+------+------+ | Erase window | Terase | 10 | - | ms | +----------------------+--------+------+------+------+ | | tv1 | 5 | - | us | +----------------------+--------+------+------+------+ | | tv2 | 3.5 | - | us | +----------------------+--------+------+------+------+ | | tv3 | 3.5 | - | us | +----------------------+--------+------+------+------+ | | tv4 | 3.5 | - | us | +----------------------+--------+------+------+------+ | | tv5 | 3.5 | - | us | +----------------------+--------+------+------+------+ | | tv6 | 5 | - | us | +----------------------+--------+------+------+------+ | | tv7 | 5 | - | us | +----------------------+--------+------+------+------+ | | tv8 | 10 | - | us | +----------------------+--------+------+------+------+ III) Schematics of Readers: ======================= III-1) Reader 1: ---------- External 5V (Optional) 5V o------, | / T2 PNP d13 r7 10 0V o--, | / BC 177 |\ | _____ | | ,-------o/ o--*------. E C .--| >+-[_____]--------, __+__ | | | \ / |/ | | \\\\\ | __|__ Batery | \ / | | - 22.5V | --------- | ....... | | | _____ | _____ | : | __+__ +--[_____]--*--[_____]--, | D2 : | \\\\\ r6 150k r5 15k | | 4 o-------|---------------------------*------------------|-------------, | : | | r3 220k / C | | Ack : | | _____ |/ T1 - NPN | | 10 o------|--------. '--[_____]-*---| BC107 | | : | | _____ | |\ | | : ,-, ,-, +--[_____]-' \ E | | : | |r2 | |r1 | r4 390k | | | : | |220 | |22k __+__ __+__ | | : |_| |_| \\\\\ \\\\\ | | : | |\ | | | | : *--| >+--|----------------*----------------------------------|--* : | |/ | | ,-----|-----------------------------, | | : | d1 | | | ,----------,----------, | | | : | | | *---|--* Fuse | Reset *--|---' | | : | | | | |----------|----------| | | D0 : | | | ,-|---|--* I/O | Clk *--|---, | | 2 o-------|--------|----------' | | |----------|----------| | | | : | | | '---|--* Vpp | R/W *--|---|----' | Busy : | | | |----------|----------| | | 11 o------|--------|--------------' ,---|--* Gnd | 5V * | | | : | | | '----------'-------|--' | | D1 : | | __+__ Chip connector | | | 3 o-------|--------|--------, \\\\\ | | | : | | '------------------------------|------' | Str : | |\ | | | | 1 o-------*--| >+--*----*----*----*----*-------------------' | : d2|/ | |d3 |d4 |d5 |d6 |d7 | : -+- -+- -+- -+- -+- | : /_\ /_\ /_\ /_\ /_\ | D3 : | | | | | |\ | d8 | 5 o----------------*----|----|----|----|---| >+-------*-------------------' : | | | | |/ | | : | | | | | D4 : | | | | |\ | d9 | 6 o---------------------*----|----|----|---| >+-------* : | | | |/ | | : | | | | D5 : | | | |\ | d10 | 7 o--------------------------*----|----|---| >+-------* : | | |/ | | : | | | D6 : | | |\ | d11 | 8 o-------------------------------*----|---| >+-------* : | |/ | | : | | D7 : | |\ | d12 | 9 o------------------------------------*---| >+-------' : |/ | : : 25 o------. : | .......: | d1 to d13: 1N4148 __+__ \\\\\ Centronic port III-2) Reader 2: --------- Zener 3.3V 2x1N4001 ________ 150 |\ | |\ | | | _____ | /| (6) o----, ,--+ >+--*--+ >+--*---+ 7824 +----*--o o-|_____|-+< +-*----o Vpp | | |/ | | |/ | | |________| | | \| | )||( 220F | 220F | | ===== 0.22F _+_ 220V )||( 25V | + 40V | + | | / \ 1N4148 )||( ===== ===== __+__ __+__ '-+-' ~ )||( | - | - \\\\\ \\\\\ ,+, | | ___ | | | | 12 o----' '--o o-* __+__ | | card | \\\\\ ________ '+' 12 present | |\ | | | | _____ (1) '--+ >+------+ 7805 +------*-------------------*--|_____|-o Vcc |/ | |________| | | 1N4001 | _+_ | | \ / ---> ,+, __+__ -+- ---> | | \\\\\ | | | 4.7k ,+, '+' | | | (7) | | 680 *----------o I/O '+' | | Busy (11) o | (4) __+__ D0 (2) o-----*----o Raz \\\\\ | 4.7nF ===== | __+__ \\\\\ (3) D1 (3) o----------o Clk (2) D2 (4) o----------o W Gnd (25) o | fuse (8) *--~~~~~---o Fus __+__ \\\\\ IV) The program: =========== The following program will enable you to read telecards on you PC if you build the precedent reader. --------------- cut here (begin) (*****************************************************************************) (* T E L E C A R D . PAS *) (*****************************************************************************) (* This program enable you to dumb the memory of electronics phonecards *) (* from all over the world, so that you will be able to see which country *) (* the card is from how many units are left and so on .... *) (*****************************************************************************) USES crt,dos; CONST port_address=$378; (* Select Printer PORT 1 *) TYPE string8=string[8]; string2=string[2]; VAR reg : registers; i,j : integer; Data : array[1..32] of byte; car : char; byte_number : integer; displaying : char; {-----------------------------------------------------------------------------} { PROCEDURE Send(b:byte); } { } { - Send a byte on the selected printer port. } {-----------------------------------------------------------------------------} PROCEDURE Send(b:byte); BEGIN port[port_address]:=b; END; {-----------------------------------------------------------------------------} { FUNCTION Get:byte; } { } { - Get a byte from the status register of the selected printer port. } {-----------------------------------------------------------------------------} FUNCTION Get:byte; BEGIN get:=port[port_address+1]; END; {-----------------------------------------------------------------------------} { FUNCTION dec2hexa_one(decimal_value):hexa_character_representation; } { } { - convert a 4 bit long decimal number to hexadecimal. } {-----------------------------------------------------------------------------} FUNCTION dec2hexa(value:byte):char; BEGIN case value of 0..9 : dec2hexa:=chr(value+$30); 10..15 : dec2hexa:=chr(value+$37); END; END; {-----------------------------------------------------------------------------} { FUNCTION d2h(decimal_byte):string2; } { } { - convert a decimal byte to its hexadecimal representation. } {-----------------------------------------------------------------------------} FUNCTION d2h(value:byte):string2; BEGIN d2h:=dec2hexa(value div $10) + dec2hexa(value and $0F); END; {-----------------------------------------------------------------------------} { FUNCTION Binary(byte):string8; } { } { - Convert a byte to its binary representation. } {-----------------------------------------------------------------------------} FUNCTION Binary( b : byte):string8; VAR weigth : byte; s : string8; BEGIN weigth:=$80; s:=''; while (weigth > 0) do BEGIN if ((b and weigth) = weigth) then s:=s+'1' else s:=s+'0'; weigth:=weigth div $02; END; Binary:=s; END; {-----------------------------------------------------------------------------} FUNCTION Units:byte; VAR u, i : integer; s : string8; BEGIN u:=0; i:=13; while (Data[i] = $FF) do BEGIN u:=u+8; i:=i+1; END; s:=Binary(Data[i]); while(s[1]='1') do BEGIN inc(u); s:=copy(s,2,length(s)); END; units:=u; END; {-----------------------------------------------------------------------------} FUNCTION Octal_Unit_Count:LongInt; FUNCTION BitCount( Data : integer ):integer; VAR i : integer; BEGIN i:=0; while ((Data and $01)=$01) do BEGIN Data:=Data div 2; inc(i); END; BitCount:=i; END; BEGIN Octal_Unit_Count:= 4096*BitCount(Data[9])+512*BitCount(Data[10]) +64*BitCount(Data[11])+8*BitCount(Data[12]) +BitCount(Data[13]); END; {-----------------------------------------------------------------------------} PROCEDURE Card_Type; BEGIN case Data[2] of $03: BEGIN write('Telecard - France - '); case Data[12] of $13: write('120 Units - ',units-130,' Units left'); $06: write('50 Units - ',units-60,' Units left'); $15: write('40 Units - ',units-40,' Units left'); END; END; $2F:write('Telecard - Germany - ', Octal_Unit_Count, ' Pfennigs left'); $37:write('Telecard - Neitherland - ',Octal_Unit_Count,' Units left'); $3B:write('Telecard - Greece - ', Octal_Unit_Count, ' Units left'); $83:BEGIN write('Telecard'); case Data[12] of $1E: write(' - Sweden'); $30: write(' - Norway'); $33: write(' - Andorra'); $3C: write(' - Ireland'); $47: write(' - Portugal'); $55: write(' - Czech Republic'); $5F: write(' - Gabon'); $65: write(' - Finland'); END; if (Data[12] in [$30,$33,$3C,$47,$55,$65]) then BEGIN case ((Data[3] and $0F)*$100+Data[4]) of $012: write (' - 10 Units - ',units-12,' Units left'); $024: write (' - 22 Units - ',units-24,' Units left'); $027: write (' - 25 Units - ',units-27,' Units left'); $032: write (' - 30 Units - ',units-32,' Units left'); $052: write (' - 50 Units - ',units-52,' Units left'); $067: write (' - 65 Units - ',units-62,' Units left'); $070: write (' - 70 Units - ',units-70,' Units left'); $102: write (' - 100 Units - ',units-102,' Units left'); $152: write (' - 150 Units - ',units-152,' Units left'); END; END; { write(' - N0 ',Data[5]*$100+Data[6]);} END; END; END; {-----------------------------------------------------------------------------} PROCEDURE waiting; BEGIN send($00); write('Enter a card in the reader and press a key ...'); repeat until keypressed; gotoxy(1, wherey); clreol; END; {-----------------------------------------------------------------------------} PROCEDURE Full_Displaying; BEGIN writeln('Memory dump:'); for i:=1 to 80 do write('-'); for i:=1 to (byte_number div 6 + 1) do BEGIN for j:=1 to 6 do if j+6*(i-1) <= byte_number then write(binary(Data[j+6*(i-1)]):9) else write(' '); write(' '); for j:=1 to 6 do if j+6*(i-1) <= byte_number then write(d2h(Data[j+6*(i-1)]),' '); writeln; END; for i:=1 to 80 do write('-'); Card_Type; writeln; END; {-----------------------------------------------------------------------------} PROCEDURE Short_Displaying; VAR j : integer; BEGIN for j:=1 to byte_number do BEGIN write(d2h(Data[j]),' '); END; writeln; END; {-----------------------------------------------------------------------------} PROCEDURE Reading; VAR i, j : integer; Value : byte; BEGIN send($FE); send($F8); for i:=1 to 32 do BEGIN Value:=0; for j:=1 to 8 do BEGIN Value:=Value*$02 + ((get and $08) div $08); send($FB); delay(1); send($F8); END; Data[i]:=Value; END; case displaying of 'F':full_displaying; 'S':short_displaying; END; END; {-----------------------------------------------------------------------------} PROCEDURE writting; VAR i,n:integer; car:char; BEGIN write('Which bit do you want to set to "1" : '); readln(n); waiting; car:=readkey; send($FA); send($F8); for i:=1 to n do BEGIN send($F9); if i=n then BEGIN send($FD); delay(20); send($FF); delay(20); END; send($FB); END; reading; END; {-----------------------------------------------------------------------------} PROCEDURE Saving; VAR filename : string; f : text; i : word; BEGIN write('Enter the filename: '); readln(filename); assign(f, filename); rewrite(f); writeln(f,'Memory dump:'); for i:=1 to 80 do write(f,'-'); for i:=1 to (byte_number div 6 + 1) do BEGIN for j:=1 to 6 do if j+6*(i-1) <= byte_number then write(f,binary(Data[j+6*(i-1)]):9) else write(f,' '); write(f,' '); for j:=1 to 6 do if j+6*(i-1) <= byte_number then write(f,d2h(Data[j+6*(i-1)]),' '); writeln(f); END; for i:=1 to 80 do write(f,'-'); close(f); END; {-----------------------------------------------------------------------------} PROCEDURE initialize; VAR i : integer; BEGIN byte_number:=32; displaying:='F'; clrscr; writeln(' 1 - to dump a 256 bits card'); writeln(' 2 - to dump a 128 bits card'); writeln(' F - to display in full format'); window(41,1,80,25); writeln(' S - to display in short format'); writeln(' F2 - to save in a file'); writeln(' Q - to exit the program'); window(1,4,80,25); for i:=1 to 80 do write('='); window(1,5,80,25); END; {=============================================================================} BEGIN initialize; repeat waiting; car:=upcase(readkey); case car of 'W':writting; 'Q':; '1':byte_number:=32; '2':byte_number:=16; 'F','S':displaying:=car; #00: BEGIN car:=readkey; if car=#60 then saving; END; else reading; END; until car='Q'; END. 3. Dos modelos a analizar 3.1 TELECOM - TELESCUM - TELECOME - TELECUM - TELACOME 3.1.1 Telefono publico modular: Nos estamos refiriendo, y lo haremos durante todo el punto 3.1 al telefono celeste que no acepta fichas, al mamotreto de alguna aleacion con hierro que nos guinia el ojo cada vez que pasamos. [ Lo que sigue es una obra de ficcion. Cualquier semejanza con la realidad queda en la mente de los lectores. (N.de los A.)] Que gracioso seria que todos los telefonos publicos modulares de Telecom (TPMTc) se abrieran con la misma y exacta llave. En ese caso si, por ejemplo, llegaramos alguna vez a tener una llave podriamos ir al lugar mas oscuro de la ciudad y, digamos, abrir uno para observarlo. Supongamos que, hipoteticamente, todo esto sucedio para que no nos volvamos chinos pensando como articular las frases en tiempo de verbo condicional, recordemos que hace unos anios abandonamos la primaria. La primera buena impresion que te llevas(arias, recordemos) al abrirlos es cuando descubris que son realmente modulares, es decir, podes sacar cualquier placa, cualquier componente, con el minimo esfuerzo. Desmontar todo el telefono, en caso de que quieras estudiarlo mejor, no es mucho mas dificil. Tiene cuatro tornillos montados sobre el soporte, que se ajustan con cuatro tuercas del lado de adentro. A pesar de que las tuercas estan muy pegadas a los bordes no seria dificil sacarlas con una llave tubo 16, o si estan flojas con los dedos. Imaginamos que el paso siguiente seria usar tu MakeitJew (el pelacables rojito con cabeza negra) para cortar el cable con la linea, en la parte de abajo a la derecha. No es muy pesado para cargarlo hasta casa, se te cruza por el cerebro mientras tiras del mamotreto para atras. Me iria con el hasta New York, ahhh. Llegamos a casa, y tratando de que la vieja no se despierte lo tiramos arriba de la cama. Lo abrimos y lo damos vueltas con cara de asombro. Lo primero que se nos ocurre es: le afanamos las fichas y las vendemos. Despues recordamos que el telefono no tiene fichas, y de todas maneras se supone que somos Hackers, y que lo hacemos para investigar y descubrir cosas, no para llenarnos de oro (para eso llevemonos el de telefonica). Lo siguiente que se nos ocurre es conectarlo a la linea y llamar a nuestros amigos y contarles: - vieja??, a que no sabes de donde te estoy llamando??. Lo intentamos durante un rato y no lo logramos. La linea debe tener una masa diferente, o algo asi. Entonces que hacemos??? supongo que solo nos queda tratar de ver como y por que funciona. Lo abrimos de nuevo. 3.1.2 Analisis estructural y de componentes Sacamos todas las placas, que bien podrian ser las siguientes: - Hibrido telefonico y control de linea (URL PF12), nada worth-mentioning al respecto, excepto que en esta placa se encuentran los dos sensores magneticos del telefono, el de puerta abierta (abajo a la derecha) y el de tubo levantado (abajo a la izquierda). - El MainBoard, una primera y rapida inspeccion nos dice que tiene un conector libre (el modem? pensamos), que tiene, si senior, un Z80 y un 80C31 (interesante pensamos), cuatro bancos de memoria, de los cuales dos estan ocupados con memorias rotuladas 'ARGENTINA' algunas vergas mas y una dice 'U11' y la otra 'U28' y los otros dos estan libres (??). Creo que nuestro ojo clinico no dice nada mas por ahora. - El lector de tarjetas, plastico, y lo unico que tiene un tornillo para desmontarlo, salen dos cables, y a simple vista se ve una soldadura medio trucha cruzando dos placas, hmmm vamos a investigar mejor eso mas adelante. - El display, facil de sacar. Cute, parecido a otros modelos comerciales, en fin. Un Display, con infinidad de usos en el hogar. - El Teclado, robusto. Pesado. Brilloso, con forma de teclado, con botones de teclado, re-buchon, y tiene una etiqueta ilustrativa que nos dice 'TELECOM - Teclado' por si no lo sabiamos. Y ademas como la mayoria de las placas de este bicho tiene el nombre del fabricante, Schlumberger (algo que no habiamos dicho antes y es util saber). - Bateria, 6 volts, (5 pilas de 1.2v 600mah) para cuando se corta la linea, se recargan de la linea suponemos. Listo, tratemos de imaginar como se veria... (Puerta Layer #1) (Puerta Layer #2) ┌───────────────────────────┐ │ Display 2 x 20 │ (J4) └───────────────────────────┘ Teclado MainBoard ┌───────────────────┐ ┌──────────────────────────┐ │ ( ) (1) (2) (3) │ │ ═════════ │ │ │ │ (J4) │ │ ( ) (4) (5) (6) │ (J2) │ (J7)║ │ │ │ │ ┌─┐ ║ │ │ Bis (7) (8) (9) │ │ └─┘ ┌─┐ │ │ │ │ C31 │Z│ │ │ ( ) (*) (0) (#) │ │ │8│ ║ │ │ (R) │ │ │0│ ║ │ └───────────────────┘ │ └─┘ (J8)║ │ Lector │ ║ │ ┌─────────────┐ │ ║ │ │ │ │ │ ║ │ │ │ │ (J3) │ ║ (J2) │ │ ├──────── │ │pila (J3) │ │ │ │ │ [-] ═════ │ └─────────────┘ └──────────────────────────┘ (Base) Hibrido Telefonico ┌──────────────────────────────────────────┐ │ [-] bateria extra │ │ ┌─┐ al │ │ └─┘ tubo ║ (J8) │ │ ║ │ │ ║ puerta│ │ peine extra#o (s)┌┐ │ (s) means sensor │ tubo (s) ┌────────┐ ┌─────┐ ││ │ │ ═══════ └────────┘ │linea│ └┘ │ └───────────────────────────┴─────┴────────┘ Donde el Layer #2 va sobre el #1, ambos montados en la puerta, y el hibrido telefonico va en la base del telefono, los (Jxx) son los conectores. Con esto tendriamos para una primera noche, pero al dia siguiente tendriamos ganas de saber que son TODAS las cosas que tiene. Construiriamos entonces la Lista de Chips del MainBoard: U26 - Z80ACPU (2x20 patas) U12 - 80C31HB-3 (4x11 patas) U11, U28 - Eproms 27256 (2x14 patas), 32k U9, U34 - zocalos vacios (iguales a los de las eproms) U2, U16, U23, U38 - CXK58257AM-10L (32k SRAM) (una al lado cada eprom) (para buffers??) U35 - TCM5089N (DTMF dialer) y NANDS y muchos chipos de logica digital, bah... Un Jumper (J6) para elegir entre DTMF o decadico. 2 botones, uno rojo para Reset y el azul rotulado maint (??) Y seguiriamos investigando... Como seguramente estemos pensando en hacer una tarjeta que funcione sin tener que pagarle al quioskero nos ponemos a analizar el lector de tarjetas. Tiene 2x8 contactos, de los cuales en las tarjetas comunes se usan solo 8, pregunta: existira una tarjeta con mas contactos que tenga acceso a mas funciones?? (algo asi como una tarjeta de Capo) o simplemente es el standard.? El lector tiene un microswitch para detectar cuando la tarjeta esta puesta. Rodeando los conectores por el lado de afuera (donde entra la tarjeta) vemos una chapa de cobre que pasa de un lado y de otro de esta manera: (De frente) ─────────────────────────────┐ chapa tarjeta ──────────────────────────── │ ─────────────────────────────┘ (de arriba) ┌────────────────────┐ │ tarjeta │ afuera │ │ - - -│- - - ╔═════════════╪═════ chapa - - - - - │ ║ | │ ║ | adentro │ ║ ┌──────────┐ │ ║ │ contactos│ │ ║ │ │ │ ║ └──────────┘ | chapa Al intentar poner una tarjeta con pistas hacia afuera para probar cosas nos dice indefectiblemente 'TARJETA INVALIDA' y suponemos que esto tiene que ver con la chapa. La chapa funciona como un 'sensor de permeabilidad magnetica'(tomamate) es decir, la tarjeta actua como nucleo del inductor y cambia el valor de inductancia (o algo asi). De todas maneras esta chapa es la que nos dificulta el trabajo en este sentido. (Ella explica entre otras cosas por que el modelo de tarjeta homemade que esta dando vueltas por algunos lados funciona en los telefonos de telefonica y no en los de telecom, (de telefonica vamos a hablar en la proxima HMAG, por un problema de espacio)). De todas maneras, un puntito mas para Schlumberger aca. Y por ahora terminamos con el Hard. Nos aprovisionamos de un buen Lecto/Grabador de Eproms, de una luz ultravioleta y de un compilador de Z80 y nos ponemos con el codigo. Suponemos antes de empezar que el Z80 se encarga del funcionamiento general y el 80C31 como es un microcontrolador se encargara de las entradas y salidas (de la tarjeta basicamente y del tarifado suponemos). 3.1.2 Analisis del codigo del Z80 Lo que viene ahora es largo, y puede ser perjudicial para la salud. El codigo no esta analizado exahustivamente por que es MUY LARGOOOOOOOO. Pero hicimos nuestro mejor esfuerzo en lo que va del momento en reverse engineering con este bicho, y ademas dio frutos. Cualquier comentario al respecto, ampliaciones, y demas vamos a estar encantados de recibirlas... Este es el disassembly del codigo de la U28. -------------------------------> TELE1.Z <------------------------------ Cortar_Key EQU '?' _*_KEY EQU ':' _#_KEY EQU ';' VOL_KEY EQU 'B' Espanol EQU 0170h Ingles EQU 0530h Aleman EQU 08F0h Italiano EQU 0710h Portugues EQU 0350h IRQ: Lo que hacen las IRQs #1 Dial DTMF (P68) = Get Buffer #6 // OutPortB(0x068, Get(buffer #6)) (P48) = Get Buffer #4 // OutPortB(0x048, Get(buffer #4)) #2 Timer #1 #3 Put Buffer #5 = (P68) (P68) = Get Buffer #6 #4 Put Buffer #3 = (P48) (P48) = Get Buffer #4 #5 In (P20) #6 In (P20) #7 Nada #8 Keyboard #10 Timer #2 1 Second +/- Ports: 00 = Matriz del Teclado al escribir se escribe en las filas al leer se lee de las columnas 41 bit 0 = -(Tone Inhibit) del DTMF chip bit 3 = 0 = Colgado 1 = Descolgado 48 = Lo que pone aca lo saca del Buffer #4 60 = bits 7..4 = Filas de la Matriz de entrada al DTMF chip bits 3..0 = Columnas de la Matriz de entrada al DTMF chip 61 = Multiproposito paralelo mapeado por bits output bit 5 = Display Light 68 = Lo que pone aca lo saca del Buffer #6 E0 = Display Control ¿? E1 = Display Data ASCII Memory: 3D23-3D2A = Tabla de conversion Hexa -> Display 6000-6013 = Display Buffer de la primer linea 6014-6027 = Display Buffer de la segunda linea 6045... Inicializado decodificando de la ROM Area 61CD-6679 se llena a 0 cada vez que se Resetea 61CD-61DC Buffer #1 Key Pressed 61DD WORD Pointer to Next Avail Byte in Buffer #1 61DF WORD Pointer to Next Free Slot in Buffer #1 61E1-61F4 Buffer #2 Numero Marcado 61F5 WORD Pointer to Next Avail Byte in Buffer #2 61F7 WORD Pointer to Next Free Slot in Buffer #2 61F9-6238 Buffer #5 Lo que pone en este Buffer lo saca de (P68) 6239 WORD Pointer to Next Avail Byte in Buffer #5 623B WORD Pointer to Next Free Slot in Buffer #5 623D-627C Buffer #6 Lo que saca de este buffer lo pone en (P68) 627D WORD Pointer to Next Avail Byte in Buffer #6 627F WORD Pointer to Next Free Slot in Buffer #6 6281-6300 Buffer #3 Lo que pone en este Buffer lo saca de (P48) 6301 WORD Pointer to Next Avail Byte in Buffer #3 6303 WORD Pointer to Next Free Slot in Buffer #3 6305-6384 Buffer #4 Lo que saca de este buffer lo pone en (P48) 6385 WORD Pointer to Next Avail Byte in Buffer #4 6387 WORD Pointer to Next Free Slot in Buffer #4 6389-63C8 Buffer #7 Internal Commands 63C9 WORD Pointer to Next Avail Byte in Buffer #7 63CB WORD Pointer to Next Free Slot in Buffer #7 63CD-640C Buffer #8 ?Who knows? 640D WORD Pointer to Next Avail Byte in Buffer #8 640F WORD Pointer to Next Free Slot in Buffer #8 6411-6416 Tabla de TIMERS BYTE (6 timers) 6417 BYTE = 3 Despues de Discar un numero apretado. 6419-6420 = Tabla de TIMERS BYTE ( 8 TIMERS ) 641A = Si NO esta puesta -> 1 ???? = tarjeta puesta -> <> 1 6421-642A Tabla de TIMERS WORD ( 5 TIMERS ) 6429 WORD Timer 5W = Timer de fuera de Servicio. 642B BYTE = Habilita timers 6B,... 642C BYTE = bit 7 Inicializado a 1 if (P64.6)==0 642E BYTE = 00h => ' ( ) FUERA | DE SERVICIO' 02h => Todo OK! 04h => ' ( ) SOLO | EMERGENCIAS' 08h => ' ( ) FUERA | DE SERVICIO' 643C BYTE Fila de la Ultima tecla presionada 643D BYTE Columna de la Ultima tecla presionada 643E BYTE Salida de la Matriz (columnas) de la fila de la ultima tecla presionada 643F-6443 Salida del barrido de la matriz del teclado, un byte por fila 6445 BYTE = 1 Despues de Discar un numero apretado. 6448 BYTE = Inicializado a 1 if (P64.4)==1 6449 BYTE = Inicializado a 1 if (P44.6)==1 644A BYTE = Inicializado a 1 if (P44.5)==0 644B BYTE != 06 => Se anula el Timer 1W 07 Timer ? 6458 BYTE = Fichas Restantes 645B = 0Ah - > Tarjeta invalida Area 65BA-6653 es llenada con 0 65BA BYTE = Cantidad de Bytes en el Buffer #1 65BB BYTE = Cantidad de Bytes en el Buffer #2 65BC BYTE = Cantidad de Bytes en el Buffer #5 65BD BYTE = Cantidad de Bytes en el Buffer #6 65BE BYTE = Cantidad de Bytes en el Buffer #3 65BF BYTE = Cantidad de Bytes en el Buffer #4 65C0 BYTE = Cantidad de Bytes en el Buffer #8 65C1 BYTE = Cantidad de Bytes en el Buffer #7 65C5 BYTE = 1 Despues de Discar un numero apretado. 65CD = Flag de cancelacion. (Puerta abierta?, Tarjeta sacada?) (Colgar? ) == 00 Si hay puesta una tarjeta 65D6 WORD == 0 => Anula el Timer 1W 65E3 BYTE = Contador de Idioma. 0..4 = Castellano, Ingles, Aleman, Italiano, Portugues 6606 == 3 => FICHAS != 3 PULSOS 661C WORD = Fichas Restantes 661E WORD = Pulsos/Fichas Restantes 6620 WORD = Fichas Restantes 662C WORD = Fichas restantes 662F BYTE = 0C => Credito agotado 6650 WORD = Offset a sumar para cada idioma 6652 BYTE = Codigo de Idioma 6670 = Address de la primer linea a imprimir 6672 = Address de la segunda linea a imprimir 6674 = Bits de Display de Variables 6677 BYTE = Inicializado a (P64) 6678 BYTE = Inicializado a (P44) 667A WORD = Puntero al Proximo caracter del Log Buffer 667D-6E7C = Log Buffer 7BFF = Stack (decrece) ; ORG 00000H LD SP,07BFFH ; 0000 XOR A ; 0003 LD (06676H),A ; 0004 LD C,00CH ; 0007 LD B,004H ; 0009 OUT (C),A ; 000B OUT (C),A ; 000D OUT (C),A ; 000F OUT (C),A ; 0011 OUT (C),A ; 0013 DJNZ 0000BH ; 0015 JP 00EC7H ; 0017 RST 38H ; 001A RST 38H ; 001B RST 38H ; 001C RST 38H ; 001D RST 38H ; 001E RST 38H ; 001F RST 38H ; 0020 RST 38H ; 0021 RST 38H ; 0022 RST 38H ; 0023 RST 38H ; 0024 RST 38H ; 0025 RST 38H ; 0026 RST 38H ; 0027 RST 38H ; 0028 RST 38H ; 0029 RST 38H ; 002A RST 38H ; 002B RST 38H ; 002C RST 38H ; 002D RST 38H ; 002E RST 38H ; 002F RST 38H ; 0030 RST 38H ; 0031 RST 38H ; 0032 RST 38H ; 0033 RST 38H ; 0034 RST 38H ; 0035 RST 38H ; 0036 RST 38H ; 0037 RST 38H ; 0038 RST 38H ; 0039 RST 38H ; 003A RST 38H ; 003B RST 38H ; 003C RST 38H ; 003D RST 38H ; 003E RST 38H ; 003F RST 38H ; 0040 RST 38H ; 0041 RST 38H ; 0042 RST 38H ; 0043 RST 38H ; 0044 RST 38H ; 0045 RST 38H ; 0046 RST 38H ; 0047 RST 38H ; 0048 RST 38H ; 0049 RST 38H ; 004A RST 38H ; 004B RST 38H ; 004C RST 38H ; 004D RST 38H ; 004E RST 38H ; 004F RST 38H ; 0050 RST 38H ; 0051 RST 38H ; 0052 RST 38H ; 0053 RST 38H ; 0054 RST 38H ; 0055 RST 38H ; 0056 RST 38H ; 0057 RST 38H ; 0058 RST 38H ; 0059 RST 38H ; 005A RST 38H ; 005B RST 38H ; 005C RST 38H ; 005D RST 38H ; 005E RST 38H ; 005F RST 38H ; 0060 RST 38H ; 0061 RST 38H ; 0062 RST 38H ; 0063 RST 38H ; 0064 RST 38H ; 0065 LD A,(06676H) ; 0066 CP 005H ; 0069 JR C,0006EH ; 006B HALT ; 006D LD C,00CH ; 006E LD B,004H ; 0070 OUT (C),A ; 0072 OUT (C),A ; 0074 OUT (C),A ; 0076 OUT (C),A ; 0078 OUT (C),A ; 007A DJNZ 00072H ; 007C JP 00000H ; 007E RETN ; 0081 RST 38H ; 0083 RST 38H ; 0084 RST 38H ; 0085 RST 38H ; 0086 RST 38H ; 0087 RST 38H ; 0088 RST 38H ; 0089 RST 38H ; 008A RST 38H ; 008B SUB E ; 008C INC (HL) ; 008D LD D,032H ; 008E CALL Z,0D534H ; 0090 INC L ; 0093 LD DE,02235H ; 0094 DEC (HL) ; 0097 LD E,(HL) ; 0098 DEC (HL) ; 0099 SBC D ; 009A DEC (HL) ; 009B JR 000D3H ; 009C RRA ; 009E DEC (HL) ; 009F RST 38H ; 00A0 RST 38H ; 00A1 RST 38H ; 00A2 RST 38H ; 00A3 RST 38H ; 00A4 RST 38H ; 00A5 RST 38H ; 00A6 RST 38H ; 00A7 RST 38H ; 00A8 RST 38H ; 00A9 RST 38H ; 00AA RST 38H ; 00AB RST 38H ; 00AC RST 38H ; 00AD RST 38H ; 00AE RST 38H ; 00AF RST 38H ; 00B0 RST 38H ; 00B1 RST 38H ; 00B2 RST 38H ; 00B3 RST 38H ; 00B4 RST 38H ; 00B5 RST 38H ; 00B6 RST 38H ; 00B7 RST 38H ; 00B8 RST 38H ; 00B9 RST 38H ; 00BA RST 38H ; 00BB RST 38H ; 00BC RST 38H ; 00BD RST 38H ; 00BE RST 38H ; 00BF RST 38H ; 00C0 RST 38H ; 00C1 RST 38H ; 00C2 RST 38H ; 00C3 RST 38H ; 00C4 RST 38H ; 00C5 RST 38H ; 00C6 RST 38H ; 00C7 RST 38H ; 00C8 RST 38H ; 00C9 RST 38H ; 00CA RST 38H ; 00CB RST 38H ; 00CC RST 38H ; 00CD RST 38H ; 00CE RST 38H ; 00CF RST 38H ; 00D0 RST 38H ; 00D1 RST 38H ; 00D2 RST 38H ; 00D3 RST 38H ; 00D4 RST 38H ; 00D5 RST 38H ; 00D6 RST 38H ; 00D7 RST 38H ; 00D8 RST 38H ; 00D9 RST 38H ; 00DA RST 38H ; 00DB RST 38H ; 00DC RST 38H ; 00DD RST 38H ; 00DE RST 38H ; 00DF RST 38H ; 00E0 RST 38H ; 00E1 RST 38H ; 00E2 RST 38H ; 00E3 RST 38H ; 00E4 RST 38H ; 00E5 RST 38H ; 00E6 RST 38H ; 00E7 RST 38H ; 00E8 RST 38H ; 00E9 RST 38H ; 00EA RST 38H ; 00EB RST 38H ; 00EC RST 38H ; 00ED RST 38H ; 00EE RST 38H ; 00EF RST 38H ; 00F0 RST 38H ; 00F1 RST 38H ; 00F2 RST 38H ; 00F3 RST 38H ; 00F4 RST 38H ; 00F5 RST 38H ; 00F6 RST 38H ; 00F7 RST 38H ; 00F8 RST 38H ; 00F9 RST 38H ; 00FA RST 38H ; 00FB RST 38H ; 00FC RST 38H ; 00FD RST 38H ; 00FE RST 38H ; 00FF 0100 04 00 04 02 01 11 0E 00 0A 00 11 11 11 11 0E 00 ................ 0110 0A 00 0E 11 1F 11 11 00 0A 00 0E 11 11 11 0E 00 ................ 0120 43 49 45 52 52 45 20 4C 41 20 50 55 45 52 54 41 CIERRE LA PUERTA 0130 20 20 20 20 20 50 52 55 45 42 41 20 54 45 43 4C PRUEBA TECL 0140 41 44 4F 20 20 20 20 20 20 50 52 55 45 42 41 20 ADO PRUEBA 0150 45 53 50 49 41 20 3F 20 20 20 20 20 49 4E 49 43 ESPIA ? INIC 0160 49 41 4C 49 5A 41 43 49 4F 4E 20 3F 20 20 20 20 IALIZACION ? 0170 20 20 20 44 45 53 43 55 45 4C 47 55 45 20 20 20 DESCUELGUE 0180 20 20 20 20 28 20 20 29 20 46 55 45 52 41 20 20 ( ) FUERA 0190 20 20 20 20 20 20 20 20 20 20 44 45 20 53 45 52 DE SER 01A0 56 49 43 49 4F 20 20 20 20 20 20 20 28 20 20 29 VICIO ( ) 01B0 20 53 4F 4C 4F 20 20 20 20 20 20 20 20 20 20 20 SOLO 01C0 20 20 45 4D 45 52 47 45 4E 43 49 41 53 20 20 20 EMERGENCIAS 01D0 20 20 20 20 49 4E 53 45 52 54 45 20 54 41 52 4A INSERTE TARJ 01E0 45 54 41 20 20 20 20 20 4E 55 4D 45 52 4F 20 4D ETA NUMERO M 01F0 41 52 43 41 44 4F 3A 20 20 20 20 20 20 20 20 20 ARCADO: 0200 43 55 45 4C 47 55 45 20 20 20 20 20 20 20 20 20 CUELGUE 0210 20 20 49 4E 55 54 49 4C 49 5A 41 42 4C 45 20 20 INUTILIZABLE 0220 20 20 20 20 45 53 50 45 52 45 20 50 4F 52 20 46 ESPERE POR F 0230 41 56 4F 52 20 20 20 20 52 45 54 49 52 41 52 20 AVOR RETIRAR 0240 54 41 52 4A 45 54 41 20 20 20 20 20 43 52 45 44 TARJETA CRED 0250 49 54 4F 20 41 47 4F 54 41 44 4F 20 20 20 20 20 ITO AGOTADO 0260 54 41 52 4A 45 54 41 20 49 4E 56 41 4C 49 44 41 TARJETA INVALIDA 0270 20 20 20 20 20 20 20 20 20 20 50 55 4C 53 4F 53 PULSOS 0280 20 20 20 20 20 20 20 20 4D 41 52 51 55 45 20 45 MARQUE E 0290 4C 20 4E 55 4D 45 52 4F 20 20 20 20 20 20 20 20 L NUMERO 02A0 50 52 4F 42 4C 45 4D 41 20 20 20 20 20 20 20 20 PROBLEMA 02B0 20 4F 54 52 41 20 54 41 52 4A 45 54 41 3F 20 20 OTRA TARJETA? 02C0 20 20 20 20 20 4E 55 45 56 41 20 54 41 52 4A 45 NUEVA TARJE 02D0 54 41 20 20 20 20 20 20 43 55 45 4C 47 55 45 20 TA CUELGUE 02E0 44 45 53 50 55 45 53 20 20 20 20 20 20 44 45 20 DESPUES DE 02F0 4C 41 20 4C 4C 41 4D 41 44 41 20 20 20 20 20 20 LA LLAMADA 0300 4C 4C 41 4D 41 44 41 20 45 4E 54 52 41 4E 54 45 LLAMADA ENTRANTE 0310 20 20 20 20 20 4E 4F 20 41 43 43 45 53 49 42 4C NO ACCESIBL 0320 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E 0330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0340 20 20 46 49 43 48 41 53 20 20 20 20 20 20 20 20 FICHAS 0350 4C 45 56 41 4E 54 45 20 4F 20 4D 49 43 52 4F 20 LEVANTE O MICRO 0360 20 20 20 20 28 20 20 29 20 46 41 4C 48 41 20 20 ( ) FALHA 0370 20 20 20 20 20 20 20 20 20 20 20 54 45 43 4E 49 TECNI 0380 43 41 20 20 20 20 20 20 20 20 20 20 28 20 20 29 CA ( ) 0390 20 53 4F 20 20 20 20 20 20 20 20 20 20 20 20 20 SO 03A0 20 4E 55 4D 45 52 4F 20 47 52 41 54 49 53 20 20 NUMERO GRATIS 03B0 20 20 20 20 20 49 4E 53 45 52 49 52 20 43 41 52 INSERIR CAR 03C0 54 41 4F 20 20 20 20 20 4E 55 4D 45 52 4F 20 4D TAO NUMERO M 03D0 41 52 43 41 44 4F 3A 20 20 20 20 20 20 50 4F 55 ARCADO: POU 03E0 53 45 20 4F 20 4D 49 43 52 4F 20 20 20 20 20 20 SE O MICRO 03F0 20 20 49 4E 55 54 49 4C 49 5A 41 56 45 4C 20 20 INUTILIZAVEL 0400 20 20 20 20 45 53 50 45 52 45 20 50 4F 52 20 46 ESPERE POR F 0410 41 56 4F 52 20 20 20 20 52 45 54 49 52 45 20 4F AVOR RETIRE O 0420 20 43 41 52 54 41 4F 20 20 20 20 20 43 41 52 54 CARTAO CART 0430 41 4F 20 45 53 47 4F 54 41 44 4F 20 20 20 20 20 AO ESGOTADO 0440 43 41 52 54 41 4F 20 49 4E 56 41 4C 49 44 4F 20 CARTAO INVALIDO 0450 20 20 20 20 20 20 20 20 20 20 20 55 4E 49 44 41 UNIDA 0460 44 45 53 20 20 20 20 20 4D 41 52 51 55 45 20 50 DES MARQUE P 0470 4F 52 20 46 41 56 4F 52 20 20 20 20 20 46 41 4C OR FAVOR FAL 0480 48 41 20 54 45 43 4E 49 43 41 20 20 20 20 20 20 HA TECNICA 0490 20 4F 55 54 52 4F 20 43 41 52 54 41 4F 20 3F 20 OUTRO CARTAO ? 04A0 20 20 20 20 20 20 4E 4F 56 4F 20 43 41 52 54 41 NOVO CARTA 04B0 4F 20 20 20 20 20 20 20 20 50 4F 55 53 45 20 4F O POUSE O 04C0 20 4D 49 43 52 4F 20 20 20 20 20 20 51 55 41 4E MICRO QUAN 04D0 44 4F 20 54 45 52 4D 49 4E 41 52 20 20 20 20 20 DO TERMINAR 04E0 43 48 41 4D 41 44 41 20 43 48 45 47 41 44 41 20 CHAMADA CHEGADA 04F0 20 20 20 20 20 20 49 4E 44 49 53 50 4F 4E 49 56 INDISPONIV 0500 45 4C 20 20 20 20 20 20 20 20 20 20 20 20 20 20 EL 0510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0520 20 20 46 49 43 48 41 53 20 20 20 20 20 20 20 20 FICHAS 0530 20 4C 49 46 54 20 52 45 43 45 49 56 45 52 20 20 LIFT RECEIVER 0540 20 20 20 20 28 20 20 29 20 4F 55 54 20 20 20 20 ( ) OUT 0550 20 20 20 20 20 20 20 20 20 20 4F 46 20 4F 52 44 OF ORD 0560 45 52 20 20 20 20 20 20 20 20 20 20 28 20 20 29 ER ( ) 0570 20 4F 4E 4C 59 20 20 20 20 20 20 20 20 20 20 20 ONLY 0580 20 20 45 4D 45 52 47 45 4E 43 49 45 20 20 20 20 EMERGENCIE 0590 20 20 20 20 20 20 49 4E 53 45 52 54 20 43 41 52 INSERT CAR 05A0 44 20 20 20 20 20 20 20 44 49 41 4C 45 44 20 4E D DIALED N 05B0 55 4D 42 45 52 3A 20 20 20 20 20 20 20 50 4C 45 UMBER: PLE 05C0 41 53 45 20 48 41 4E 47 20 55 50 20 20 20 20 20 ASE HANG UP 05D0 20 20 20 57 52 4F 4E 47 20 43 41 52 44 20 20 20 WRONG CARD 05E0 20 20 20 20 20 20 50 4C 45 41 53 45 20 57 41 49 PLEASE WAI 05F0 54 20 20 20 20 20 20 20 52 45 4D 4F 56 45 20 59 T REMOVE Y 0600 4F 55 52 20 43 41 52 44 20 20 20 20 20 20 43 52 OUR CARD CR 0610 45 44 49 54 3A 5A 45 52 4F 20 20 20 20 20 20 20 EDIT:ZERO 0620 20 43 41 52 44 20 52 45 4A 45 43 54 45 44 20 20 CARD REJECTED 0630 20 20 20 20 20 20 20 20 20 20 50 55 4C 53 45 53 PULSES 0640 20 20 20 20 20 20 20 20 20 20 50 4C 45 41 53 45 PLEASE 0650 20 44 49 41 4C 20 20 20 20 20 20 20 20 20 20 20 DIAL 0660 20 46 41 55 4C 54 20 20 20 20 20 20 20 20 20 20 FAULT 0670 20 43 48 41 4E 47 45 20 43 41 52 44 20 3F 20 20 CHANGE CARD ? 0680 20 20 20 20 20 20 20 20 4E 45 57 20 43 41 52 44 NEW CARD 0690 20 20 20 20 20 20 20 20 20 48 41 4E 47 20 55 50 HANG UP 06A0 20 41 54 20 45 4E 44 20 20 20 20 20 20 20 20 20 AT END 06B0 4F 46 20 43 41 4C 4C 20 20 20 20 20 20 20 20 20 OF CALL 06C0 20 49 4E 43 4F 4D 49 4E 47 20 43 41 4C 4C 20 20 INCOMING CALL 06D0 20 20 20 20 20 4E 4F 54 20 41 43 43 45 53 53 49 NOT ACCESSI 06E0 42 4C 45 20 20 20 20 20 20 20 20 20 20 20 20 20 BLE 06F0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0700 20 20 54 4F 4B 45 4E 53 20 20 20 20 20 20 20 20 TOKENS 0710 20 20 20 53 47 41 4E 43 49 41 52 45 20 20 20 20 SGANCIARE 0720 20 20 20 20 28 20 20 29 20 41 50 50 41 52 45 43 ( ) APPAREC 0730 43 48 49 4F 20 20 20 20 20 46 55 4F 52 49 20 53 CHIO FUORI S 0740 45 52 56 49 5A 49 4F 20 20 20 20 20 28 20 20 29 ERVIZIO ( ) 0750 20 53 4F 4C 4F 20 20 20 20 20 20 20 20 20 20 20 SOLO 0760 20 4E 55 4D 45 52 49 20 47 52 41 54 49 53 20 20 NUMERI GRATIS 0770 20 20 20 20 49 4E 54 52 4F 44 55 52 52 45 20 43 INTRODURRE C 0780 41 52 54 41 20 20 20 20 4E 55 4D 45 52 4F 20 43 ARTA NUMERO C 0790 48 49 41 4D 41 54 4F 3A 20 20 20 20 20 20 52 49 HIAMATO: RI 07A0 41 47 47 41 4E 43 49 41 52 45 20 20 20 20 20 20 AGGANCIARE 07B0 43 41 52 54 41 20 4E 4F 20 56 41 4C 49 44 41 20 CARTA NO VALIDA 07C0 20 20 20 20 20 20 20 41 54 54 45 4E 44 45 52 45 ATTENDERE 07D0: 20 20 20 20 20 20 20 20 20 52 49 54 49 52 41 52 RITIRAR 07E0: 45 20 43 41 52 54 41 20 20 20 20 20 20 20 43 52 E CARTA CR 07F0: 45 44 49 54 4F 3A 5A 45 52 4F 20 20 20 20 20 20 EDITO:ZERO 0800: 43 41 52 54 41 20 4E 4F 4E 20 56 41 4C 49 44 41 CARTA NON VALIDA 0810: 20 20 20 20 20 20 20 20 20 20 55 4E 49 54 41 27 UNITA' 0820: 20 20 20 20 20 20 20 20 20 46 41 52 45 20 49 4C FARE IL 0830: 20 4E 55 4D 45 52 4F 20 20 20 20 20 20 20 20 20 NUMERO 0840: 41 4E 4F 4D 41 4C 49 41 20 20 20 20 20 20 20 20 ANOMALIA 0850: 43 41 4D 42 49 4F 20 44 49 20 43 41 52 54 41 3F CAMBIO DI CARTA? 0860: 20 20 20 20 20 20 4E 55 4F 56 41 20 43 41 52 54 NUOVA CART 0870: 41 20 20 20 20 20 20 20 20 52 49 41 54 54 41 43 A RIATTAC 0880: 43 41 54 45 20 41 20 20 20 20 20 20 46 49 4E 45 CATE A FINE 0890: 20 44 45 20 43 48 49 41 4D 41 54 41 20 20 20 20 DE CHIAMATA 08A0: 43 48 49 41 4D 41 54 41 20 41 52 52 49 56 4F 20 CHIAMATA ARRIVO 08B0: 20 20 20 20 20 4E 4F 20 41 43 43 45 53 53 49 42 NO ACCESSIB 08C0: 49 4C 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ILE 08D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 08E0: 20 20 47 45 54 54 4F 4E 45 53 20 20 20 20 20 20 GETTONES 08F0: 20 20 20 44 45 43 52 4F 43 48 45 5A 20 20 20 20 DECROCHEZ 0900: 20 20 20 20 28 20 20 29 20 41 50 50 41 52 45 49 ( ) APPAREI 0910: 4C 20 20 20 20 20 20 20 20 48 4F 52 53 20 53 45 L HORS SE 0920: 52 56 49 43 45 20 20 20 20 20 20 20 28 20 20 29 RVICE ( ) 0930: 20 53 45 55 4C 45 4D 45 4E 54 20 20 20 20 20 20 SEULEMENT 0940: 4E 55 4D 45 52 4F 53 20 47 52 41 54 55 49 54 53 NUMEROS GRATUITS 0950: 20 20 20 20 49 4E 54 52 4F 44 55 49 52 45 20 43 INTRODUIRE C 0960: 41 52 54 45 20 20 20 20 20 4E 55 4D 45 52 4F 20 ARTE NUMERO 0970: 41 50 50 45 4C 45 3A 20 20 20 20 20 20 52 41 43 APPELE: RAC 0980: 43 52 4F 43 48 45 5A 20 53 56 50 20 20 20 20 20 CROCHEZ SVP 0990: 20 4E 4F 4E 20 55 54 49 4C 49 53 41 42 4C 45 20 NON UTILISABLE 09A0: 20 20 20 20 20 50 41 54 49 45 4E 54 45 5A 20 53 PATIENTEZ S 09B0: 56 50 20 20 20 20 20 20 52 45 54 49 52 45 5A 20 VP RETIREZ 09C0: 4C 41 20 43 41 52 54 45 20 20 20 20 20 43 52 45 LA CARTE CRE 09D0: 44 49 54 3A 45 50 55 49 53 45 20 20 20 20 20 20 DIT:EPUISE 09E0: 20 43 41 52 54 45 20 52 45 46 55 53 45 45 20 20 CARTE REFUSEE 09F0: 20 20 20 20 20 20 20 20 20 20 55 4E 49 54 45 53 UNITES 0A00: 20 20 20 20 20 20 20 20 20 20 20 4E 55 4D 45 52 NUMER 0A10: 4F 54 45 5A 20 20 20 20 20 20 20 20 20 20 20 20 OTEZ 0A20: 41 4E 4F 4D 41 4C 49 45 20 20 20 20 20 20 20 20 ANOMALIE 0A30: 20 43 48 41 4E 47 45 52 20 43 41 52 54 45 3F 20 CHANGER CARTE? 0A40: 20 20 20 20 20 4E 4F 55 56 45 4C 4C 45 20 43 41 NOUVELLE CA 0A50: 52 54 45 20 20 20 20 20 52 41 43 43 52 4F 43 48 RTE RACCROCH 0A60: 452 5A 20 41 50 52 45 53 20 20 20 20 4C 41 20 43 EZ APRES LA C 0A70: 4F 4D 4D 55 4E 49 43 41 54 49 4F 4E 20 20 20 20 OMMUNICATION 0A80: 20 41 50 50 45 4C 20 41 52 52 49 56 45 45 20 20 APPEL ARRIVEE 0A90: 20 20 20 20 41 50 50 45 4C 20 49 4D 50 4F 53 53 APPEL IMPOSS 0AA0: 49 42 4C 45 20 20 20 20 20 20 20 20 20 20 20 20 IBLE 0AB0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0AC0: 20 20 4A 45 54 4F 4E 53 20 20 20 20 20 20 20 20 JETONS ; Delay() LD A,0FFH ; 0AD0 LD (06028H),A ; 0AD2 LD A,(06028H) ; 0AD5 DEC A ; 0AD8 LD (06028H),A ; 0AD9 JR NZ,00AD5H ; 0ADC RET ; 0ADE XOR A ; 0ADF LD (065E9H),A ; 0AE0 LD BC,00184H ; 0AE3 Write '( ) FUERA ' LD HL,00198H ; 0AE6 ' DE SERVICIO ' XOR A ; 0AE9 SET 0,A ; 0AEA En el lugar del ' ' Pone (65B8) JP 00D8DH ; 0AEC XOR A ; 0AEF LD (065E9H),A ; 0AF0 LD BC,001D4H ; 0AF3 Write 'INSERTE TARJETA ' LD HL,00328H ; 0AF6 ' ' XOR A ; 0AF9 JP 00D8DH ; 0AFA XOR A ; 0AFD LD (065E9H),A ; 0AFE LD BC,001E8H ; 0B01 Write 'NUMERO MARCADO ' LD HL,00328H ; 0B04 ' ' XOR A ; 0B07 SET 5,A ; 0B08 Pone el Numero Marcado en la segunda JP 00D8DH ; 0B0A linea del buffer LD BC,(06670H) ; 0B0D Repite la linea de arriba LD HL,001FCH ; 0B11 ' CUELGUE ' LD A,(06674H) ; 0B14 AND 007H ; 0B17 JP 00D8DH ; 0B19 LD A,001H ; 0B1C Actualiza el Indicador de Pulsos LD (065E9H),A ; 0B1E LD A,(06606H) ; 0B21 Carga flag pulsos/fichas CP 003H ; 0B24 LD BC,00274H ; 0B26 Write ' PULSOS ' JR NZ,00B2EH ; 0B29 LD BC,0033CH ; 0B2B Write ' FICHAS ' LD HL,(06672H) ; 0B2E LD A,(06674H) ; 0B31 AND 0F8H ; 0B34 SET 2,A ; 0B36 Write Nro de Pulsos restantes JP 00D8DH ; 0B38 LD A,001H ; 0B3B LD (065E9H),A ; 0B3D CALL 03CB4H ; 0B40 Prende el Bit 7 del Port 61 y 641E=2 LD BC,0024CH ; 0B43 Write ' CREDITO AGOTADO ' LD HL,001FCH ; 0B46 ' CUELGUE ' XOR A ; 0B49 JP 00D8DH ; 0B4A LD A,001H ; 0B4D LD (065E9H),A ; 0B4F CALL 03CB4H ; 0B52 Prende el Bit 7 del Port 61 y 641E=2 LD BC,00210H ; 0B55 Write ' INUTILIZABLE ' LD HL,00328H ; 0B58 ' ' XOR A ; 0B5B JP 00D8DH ; 0B5C XOR A ; 0B5F LD (065E9H),A ; 0B60 LD BC,00224H ; 0B63 Write 'ESPERE POR FAVOR ' LD HL,00328H ; 0B66 ' ' XOR A ; 0B69 JP 00D8DH ; 0B6A LD A,001H ; 0B6D LD (065E9H),A ; 0B6F CALL 03CB4H ; 0B72 Prende el Bit 7 del Port 61 y 641E=2 LD BC,00260H ; 0B75 Write 'TARJETA INVALIDA ' LD HL,001FCH ; 0B78 ' CUELGUE ' XOR A ; 0B7B JP 00D8DH ; 0B7C LD A,001H ; 0B7F LD (065E9H),A ; 0B81 CALL 03CB4H ; 0B84 Prende el Bit 7 del Port 61 y 641E=2 LD A,(06606H) ; 0B87 (6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 0B8A LD BC,00274H ; 0B8C Write ' PULSOS ' JR NZ,00B94H ; 0B8F LD BC,0033CH ; 0B91 Write ' FICHAS ' LD HL,002B0H ; 0B94 ' OTRA TARJETA ? ' XOR A ; 0B97 SET 2,A ; 0B98 Write Nro de Pulsos restantes JP 00D8DH ; 0B9A LD A,001H ; 0B9D LD (065E9H),A ; 0B9F LD A,(06606H) ; 0BA2 (6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 0BA5 LD BC,00274H ; 0BA7 Write ' PULSOS ' JR NZ,00BAFH ; 0BAA LD BC,0033CH ; 0BAC Write ' FICHAS ' LD HL,002C4H ; 0BAF ' NUEVA TARJETA ' XOR A ; 0BB2 SET 2,A ; 0BB3 Write Nro de Pulsos restantes JP 00D8DH ; 0BB5 CALL 03CB4H ; 0BB8 Prende el Bit 7 del Port 61 y 641E=2 LD A,(065E9H) ; 0BBB OR A ; 0BBE JR NZ,00BCEH ; 0BBF LD A,(06674H) ; 0BC1 AND 0F8H ; 0BC4 LD (06674H),A ; 0BC6 LD BC,00328H ; 0BC9 ' ' JR 00BD2H ; 0BCC LD BC,(06670H) ; 0BCE Mantiene la linea superior LD HL,00238H ; 0BD2 'RETIRAR TARJETA ' LD A,(06674H) ; 0BD5 AND 007H ; 0BD8 JP 00D8DH ; 0BDA XOR A ; 0BDD LD (065E9H),A ; 0BDE LD BC,002D8H ; 0BE1 Write 'CUELGUE DESPUES ' LD HL,002ECH ; 0BE4 'DE LA LLAMADA ' XOR A ; 0BE7 JP 00D8DH ; 0BE8 LD A,001H ; 0BEB LD (065E9H),A ; 0BED LD A,(06606H) ; 0BF0 (6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 0BF3 LD BC,00274H ; 0BF5 Write ' PULSOS ' JR NZ,00BFDH ; 0BF8 ' MARQUE EL NUMERO ' LD BC,0033CH ; 0BFA Write ' FICHAS ' LD HL,00288H ; 0BFD ' MARQUE EL NUMERO ' XOR A ; 0C00 SET 2,A ; 0C01 Write Nro de Pulsos restantes JP 00D8DH ; 0C03 CALL 03CB4H ; 0C06 Prende el Bit 7 del Port 61 y 641E=2 LD A,001H ; 0C09 LD (065E9H),A ; 0C0B LD A,(06606H) ; 0C0E (6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 0C11 LD BC,00274H ; 0C13 Write ' PULSOS ' JR NZ,00C1BH ; 0C16 'RETIRAR TARJETA ' LD BC,0033CH ; 0C18 Write ' FICHAS ' LD HL,00238H ; 0C1B 'RETIRAR TARJETA ' XOR A ; 0C1E SET 2,A ; 0C1F Write Nro de Pulsos restantes JP 00D8DH ; 0C21 CALL 03CB4H ; 0C24 Prende el Bit 7 del Port 61 y 641E=2 LD A,001H ; 0C27 Write ' PROBLEMA ' LD (065E9H),A ; 0C29 ' CUELGUE ' LD BC,0029CH ; 0C2C LD HL,001FCH ; 0C2F XOR A ; 0C32 JP 00D8DH ; 0C33 CALL 03CB4H ; 0C36 Prende el Bit 7 del Port 61 y 641E=2 LD A,001H ; 0C39 Repite la linea de arriva y LD (065E9H),A ; 0C3B ' PROBLEMA ' LD BC,(06670H) ; 0C3E LD HL,0029CH ; 0C42 LD A,(06674H) ; 0C45 AND 007H ; 0C48 JP 00D8DH ; 0C4A XOR A ; 0C4D Write 'CIERRE LA PUERTA ' LD (065E9H),A ; 0C4E ' ' LD HL,00000H ; 0C51 LD (06650H),HL ; 0C54 LD BC,00120H ; 0C57 LD HL,00328H ; 0C5A XOR A ; 0C5D JP 00D8DH ; 0C5E XOR A ; 0C61 Write ' PRUEBA TECLADO ' LD (065E9H),A ; 0C62 ' ' LD HL,00000H ; 0C65 LD (06650H),HL ; 0C68 LD BC,00134H ; 0C6B LD HL,00328H ; 0C6E XOR A ; 0C71 SET 3,A ; 0C72 Caracter 10 de la linea 2 = (643A) JP 00D8DH ; 0C74 LD HL,00000H ; 0C77 Write ' PRUEBA ESPIA ? ' LD (06650H),HL ; 0C7A ' ' LD BC,00148H ; 0C7D LD HL,00328H ; 0C80 LD A,010H ; 0C83 LD (06600H),A ; 0C85 XOR A ; 0C88 SET 5,A ; 0C89 Cambia la linea 2 del Display Buffer JP 00D8DH ; 0C8B LD HL,00000H ; 0C8E LD (06650H),HL ; 0C91 LD BC,0015CH ; 0C94 Write ' INICIALIZACION ? ' LD HL,00328H ; 0C97 ' ' XOR A ; 0C9A JP 00D8DH ; 0C9B XOR A ; 0C9E LD (065E9H),A ; 0C9F LD BC,00170H ; 0CA2 Write ' DESCUELGUE ' LD HL,00328H ; 0CA5 ' ' XOR A ; 0CA8 JP 00D8DH ; 0CA9 XOR A ; 0CAC LD (065E9H),A ; 0CAD LD BC,00170H ; 0CB0 Write ' DESCUELGUE ' LD HL,00300H ; 0CB3 'LLAMADA ENTRANTE ' XOR A ; 0CB6 JP 00D8DH ; 0CB7 CALL 03CB4H ; 0CBA Prende el Bit 7 del Port 61 y 641E=2 LD A,001H ; 0CBD LD (065E9H),A ; 0CBF LD BC,00314H ; 0CC2 Write ' NO ACCESIBLE ' LD HL,001FCH ; 0CC5 ' CUELGUE ' XOR A ; 0CC8 JP 00D8DH ; 0CC9 XOR A ; 0CCC LD (065E9H),A ; 0CCD LD BC,001ACH ; 0CD0 Write ' ( ) SOLO ' LD HL,001C0H ; 0CD3 ' EMERGENCIAS ' XOR A ; 0CD6 SET 0,A ; 0CD7 En el lugar del ' ' Pone (65B8) JP 00D8DH ; 0CD9 LD A,001H ; 0CDC LD (065E9H),A ; 0CDE CALL 03CB4H ; 0CE1 Prende el Bit 7 del Port 61 y 641E=2 LD A,(06606H) ; 0CE4 (6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 0CE7 LD BC,00274H ; 0CE9 Write ' PULSOS ' JR NZ,00CF1H ; 0CEC ' MARQUE EL NUMERO ' LD BC,0033CH ; 0CEE Write ' FICHAS ' LD HL,00288H ; 0CF1 ' MARQUE EL NUMERO ' XOR A ; 0CF4 SET 2,A ; 0CF5 Write Nro de Pulsos restantes JP 00D8DH ; 0CF7 LD A,001H ; 0CFA LD (065E9H),A ; 0CFC LD A,(06606H) ; 0CFF (6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 0D02 LD BC,00274H ; 0D04 Write ' PULSOS ' JR NZ,00D0CH ; 0D07 ' ESPERE POR FAVOR ' LD BC,0033CH ; 0D09 Write ' FICHAS ' LD HL,00224H ; 0D0C ' ESPERE POR FAVOR ' XOR A ; 0D0F SET 2,A ; 0D10 Write Nro de Pulsos restantes JP 00D8DH ; 0D12 LD A,001H ; 0D15 Actuaiza los pulsos Arriva y LD (065E9H),A ; 0D17 Repite la linea de abajo LD BC,00328H ; 0D1A LD HL,(06672H) ; 0D1D LD A,(06674H) ; 0D20 AND 0F8H ; 0D23 JP 00D8DH ; 0D25 LD BC,(06670H) ; 0D28 Borra la linea de abajo LD HL,00328H ; 0D2C y repite la de arriva LD A,(06674H) ; 0D2F AND 007H ; 0D32 JP 00D8DH ; 0D34 LD A,001H ; 0D37 Init Display OUT (0E0H),A ; 0D39 (E0h)=01 CALL 00AD0H ; 0D3B Delay LD A,038H ; 0D3E OUT (0E0H),A ; 0D40 (E0h)=38 CALL 00AD0H ; 0D42 Delay LD A,00CH ; 0D45 OUT (0E0H),A ; 0D47 (E0h)=0C CALL 00AD0H ; 0D49 Delay LD A,006H ; 0D4C OUT (0E0H),A ; 0D4E (E0h)=06 CALL 00AD0H ; 0D50 Delay LD HL,06000H ; 0D53 LD A,020H ; 0D56 LD B,028H ; 0D58 LD (HL),A ; 0D5A INC HL ; 0D5B Fill Display Buffer with Spaces DJNZ 00D5AH ; 0D5C LD A,040H ; 0D5E OUT (0E0H),A ; 0D60 E0=40 CALL 00AD0H ; 0D62 Delay LD HL,00100H ; 0D65 LD B,008H ; 0D68 CALL 00EACH ; 0D6A 8*(10xIn(E0), Out(E1h,HL++)) LD HL,00108H ; 0D6D LD B,008H ; 0D70 CALL 00EACH ; 0D72 8*(10xIn(E0), Out(E1h,HL++)) LD HL,00110H ; 0D75 LD B,008H ; 0D78 CALL 00EACH ; 0D7A 8*(10xIn(E0), Out(E1h,HL++)) LD HL,00118H ; 0D7D LD B,008H ; 0D80 CALL 00EACH ; 0D82 8*(10xIn(E0), Out(E1h,HL++)) LD A,080H ; 0D85 OUT (0E0H),A ; 0D87 CALL 00AD0H ; 0D89 Delay RET ; 0D8C LD (06674H),A ; 0D8D LD (06670H),BC ; 0D90 LD (06672H),HL ; 0D94 CALL 00D9BH ; 0D97 Imprime (6670)&(6672), Vars=(6674) RET ; 0D9A CALL 00DFBH ; 0D9B Copy (6670h)->6000 y (6672)->6014 20 byte con el idioma correspondiente (6650h) CALL 00E1CH ; 0D9E Pone las variables en el Display Buffer LD A,002H ; 0DA1 OUT (0E0H),A ; 0DA3 E0=02 CALL 00AD0H ; 0DA5 Delay LD A,(07C00H) ; 0DA8 BIT 1,A ; 0DAB JR NZ,00DB9H ; 0DAD LD HL,06000H ; 0DAF LD B,014H ; 0DB2 CALL 00EACH ; 0DB4 20d*(10xIn(E0), Out(E1h,HL++)) JR 00DC4H ; 0DB7 CALL 00E78H ; 0DB9 In(E0), Out(E1,20h) LD HL,06000H ; 0DBC LD B,014H ; 0DBF CALL 00EACH ; 0DC1 20d*(10xIn(E0), Out(E1h,HL++)) IN A,(0E0H) ; 0DC4 LD A,0C0H ; 0DC8 OUT (0E0H),A ; 0DCA Out(E0,C0h) CALL 00AD0H ; 0DCC Delay LD A,(07C00H) ; 0DCF BIT 1,A ; 0DD2 JR NZ,00DE0H ; 0DD4 LD HL,06014H ; 0DD6 LD B,014H ; 0DD9 CALL 00EACH ; 0DDB 20d*(10xIn(E0), Out(E1h,HL++)) JR 00DEBH ; 0DDE CALL 00E78H ; 0DE0 In(E0), Out(E1,20h) LD HL,06014H ; 0DE3 LD B,012H ; 0DE6 CALL 00EACH ; 0DE8 20d*(10xIn(E0), Out(E1h,HL++)) CALL 00DEFH ; 0DEB Turn Light ON and Set Light Timer = 3s RET ; 0DEE LD A,003H ; 0DEF Turn Light ON and Set Light Timer = 3s LD (0641FH),A ; 0DF1 Timer 7B IN A,(061H) ; 0DF4 SET 5,A ; 0DF6 OUT (061H),A ; 0DF8 RET ; 0DFA LD DE,(06670H) ; 0DFB LD HL,(06650H) ; 0DFF ADD HL,DE ; 0E02 LD BC,00014H ; 0E03 LD DE,06000H ; 0E06 LDIR ; 0E09 LD DE,(06672H) ; 0E0B LD HL,(06650H) ; 0E0F ADD HL,DE ; 0E12 LD BC,00014H ; 0E13 LD DE,06014H ; 0E16 LDIR ; 0E19 RET ; 0E1B ; Formatea las variables para la salida por el Display y las ; pone en el Display Buffer ; Input: A: Bit 0=1 Buffer[1,1..2]=Word(65B8) ['CC','CI','??'] ; Bit 2=1 Buffer[1,1..4]=ASCII String de Nro de Pulsos ; Bit 3=1 Buffer[2,10] = Byte (643A) ; Bit 5=1 Buffer[2,0..16] = (65F0++) LD A,(06674H) ; 0E1C BIT 5,A ; 0E1F CALL NZ,00E41H ; 0E21 BIT 0,A ; 0E24 CALL NZ,00E66H ; 0E26 Word (6001) = Word (65B8) BIT 2,A ; 0E29 CALL NZ,00E34H ; 0E2B Nro de Pulsos -> Display Buffer BIT 3,A ; 0E2E CALL NZ,00E6FH ; 0E30 Byte (601E) = Byte (643A) RET ; 0E33 ;--------------------------------------------- PUSH AF ; 0E34 LD IY,06001H ; 0E35 LD DE,0661EH ; 0E39 Carga en DE los pulsos restantes CALL 04042H ; 0E3C Makes 6001->ASCII String of Word(661E) POP AF ; 0E3F RET ; 0E40 PUSH AF ; 0E41 Pone o no (dependiendo del valor de LD HL,065F0H ; 0E42 (6600) y (6675)) algo en la segunda LD DE,06014H ; 0E45 linea del Display Buffer LD A,(06675H) ; 0E48 OR A ; 0E4B JR NZ,00E5FH ; 0E4C LD A,(06600H) ; 0E4E LD B,A ; 0E51 OR A ; 0E52 JR Z,00E64H ; 0E53 LD A,(HL) ; 0E55 OR 030H ; 0E56 LD (DE),A ; 0E58 INC HL ; 0E59 INC DE ; 0E5A DJNZ 00E55H ; 0E5B JR 00E64H ; 0E5D LD BC,00010H ; 0E5F LDIR ; 0E62 POP AF ; 0E64 RET ; 0E65 PUSH AF ; 0E66 Word (6001) = Word (65B8) LD HL,(065B8H) ; 0E67 LD (06001H),HL ; 0E6A POP AF ; 0E6D RET ; 0E6E PUSH AF ; 0E6F Byte (601E) = Byte (643A) LD A,(0643AH) ; 0E70 LD (0601EH),A ; 0E73 POP AF ; 0E76 RET ; 0E77 IN A,(0E0H) ; 0E78 In(E0), Out(E1,20h) LD A,020H ; 0E7A OUT (0E1H),A ; 0E7C ; ORG 00E7FH IN A,(0E0H) ; 0E7F IN A,(0E0H) ; 0E81 IN A,(0E0H) ; 0E83 IN A,(0E0H) ; 0E85 IN A,(0E0H) ; 0E87 IN A,(0E0H) ; 0E89 IN A,(0E0H) ; 0E8B IN A,(0E0H) ; 0E8D IN A,(0E0H) ; 0E8F IN A,(0E0H) ; 0E91 LD A,020H ; 0E93 OUT (0E1H),A ; 0E95 IN A,(0E0H) ; 0E97 IN A,(0E0H) ; 0E99 IN A,(0E0H) ; 0E9B IN A,(0E0H) ; 0E9D IN A,(0E0H) ; 0E9F IN A,(0E0H) ; 0EA1 IN A,(0E0H) ; 0EA3 IN A,(0E0H) ; 0EA5 IN A,(0E0H) ; 0EA7 IN A,(0E0H) ; 0EA9 RET ; 0EAB ; Stringout IN A,(0E0H) ; 0EAC B*(10xIn(E0), Out(E1h,HL++)) IN A,(0E0H) ; 0EAE IN A,(0E0H) ; 0EB0 IN A,(0E0H) ; 0EB2 IN A,(0E0H) ; 0EB4 IN A,(0E0H) ; 0EB6 IN A,(0E0H) ; 0EB8 IN A,(0E0H) ; 0EBA IN A,(0E0H) ; 0EBC IN A,(0E0H) ; 0EBE LD A,(HL) ; 0EC0 OUT (0E1H),A ; 0EC1 INC HL ; 0EC3 DJNZ 00EACH ; 0EC4 RET ; 0EC6 ; main() DI ; 0EC7 CALL 028C8H ; 0EC8 Inicializa muchos Ports, El Display, ; Llena 61CD-6679 con 0 ; Escribe 'ESPERE POR FAVOR' y decodifica ; un area de la ROM que pasa a RAM. CALL 029D6H ; 0ECB Init Buffers & Idioma CALL 02978H ; 0ECE Init 6448,6449,644A,6677,6678 ; Scan Keyboard ; Fuera de Servicio Timer = 5700d EI ; 0ED1 CALL 03B2EH ; 0ED2 Changes P02,P46,P41,P61,P40,(6604h)=0 LD A,001H ; 0ED5 CALL 00F16H ; 0ED7 Push #9 (01h,(642Eh),FFh,90+Fichas) LD A,002H ; 0EDA LD (06419H),A ; 0EDC LD A,(06419H) ; 0EDF OR A ; 0EE2 JR NZ,00EDFH ; 0EE3 Wait 2 Seconds LD A,00EH ; 0EE5 CALL 03F5BH ; 0EE7 Put Buffer #7 (Internal Commands) LD A,002H ; 0EEA LD (0644BH),A ; 0EEC (644Bh)=02h ; Main LOOP LD A,(0644BH) ; 0EEF CP 002H ; 0EF2 JR NZ,00EFCH ; 0EF4 CALL 02AB1H ; 0EF6 JP 00EEFH ; 0EF9 CP 005H ; 0EFC JR NZ,00F06H ; 0EFE CALL 0171EH ; 0F00 JP 00EEFH ; 0F03 CP 006H ; 0F06 JP NZ,00F11H ; 0F08 CALL 01417H ; 0F0B JP 00EEFH ; 0F0E CALL 02758H ; 0F11 JR 00EEFH ; 0F14 Loop Main LOOP PUSH AF ; 0F16 Push #9 (A,(642Eh),FFh,90+Fichas) PUSH BC ; 0F17 CALL 03FBCH ; 0F18 Put Log Buffer LD A,(0642EH) ; 0F1B CALL 03FBCH ; 0F1E Put Log Buffer LD A,0FFH ; 0F21 CALL 03FBCH ; 0F23 Put Log Buffer LD A,(06606H) ; 0F26 (6606h):3 == FICHAS: 1 == PULSOS LD B,A ; 0F29 LD A,090H ; 0F2A OR B ; 0F2C CALL 03FBCH ; 0F2D Put Log Buffer POP BC ; 0F30 POP AF ; 0F31 RET ; 0F32 LD A,011H ; 0F33 LD (06552H),A ; 0F35 ; Inicializacion de tarjeta? CALL 03C26H ; 0F38 2xIn(61h), Out(66h,13h), Out(67h,E6h) CALL 03940H ; 0F3B ; Lectura de tarjeta? LD A,(0642CH) ; 0F3E ; Cambio de tarjeta ... BIT 3,A ; 0F41 JR NZ,00FAEH ; 0F43 LD A,(06450H) ; 0F45 CP VOL_KEY ; 0F48 JR Z,00F51H ; 0F4A CALL 0117EH ; 0F4C ; * JR 00FAEH ; 0F4F LD A,(06451H) ; 0F51 CP 008H ; 0F54 JR NZ,00F71H ; 0F56 LD A,(0645BH) ; 0F58 CP 00AH ; 0F5B JR NZ,00F64H ; 0F5D CALL 011F1H ; 0F5F Write 'TARJETA INVALIDA | CUELGUE' JR 00FAEH ; 0F62 CALL 00FB9H ; 0F64 CALL 03C42H ; 0F67 (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 LD A,001H ; 0F6A LD (06606H),A ; 0F6C (6606h)=1 => PULSOS JR 00F87H ; 0F6F CP 009H ; 0F71 JR NZ,00F82H ; 0F73 CALL 00FFBH ; 0F75 CALL 03C42H ; 0F78 (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 LD A,003H ; 0F7B LD (06606H),A ; 0F7D (6606h)=3 => FICHAS JR 00F87H ; 0F80 CALL 011ECH ; 0F82 Write 'INUTILIZABLE | ' JR 00FAEH ; 0F85 LD A,(06606H) ; 0F87 (6606h)=3 => FICHAS =/=> PULSOS CP 001H ; 0F8A JR Z,00F92H ; 0F8C CP 003H ; 0F8E JR NZ,00FAEH ; 0F90 LD B,006H ; 0F92 LD DE,06624H ; 0F94 LD HL,06665H ; 0F97 CALL 04080H ; 0F9A CmpStrings (HL) & (DE). B = Len JR NZ,00FAEH ; 0F9D LD A,(0662EH) ; 0F9F LD C,A ; 0FA2 LD A,(0666FH) ; 0FA3 CP C ; 0FA6 JR NZ,00FAEH ; 0FA7 LD A,001H ; 0FA9 LD (06623H),A ; 0FAB XOR A ; 0FAE LD (06610H),A ; 0FAF LD (06611H),A ; 0FB2 CALL 01A6EH ; 0FB5 RET ; 0FB8 CALL 01062H ; 0FB9 Copy (6452..) -> (6624..) & Decodes XOR A ; 0FBC LD B,A ; 0FBD LD A,(0662FH) ; 0FBE CP 000H ; 0FC1 JR Z,00FD4H ; 0FC3 CP 001H ; 0FC5 JR Z,00FD4H ; 0FC7 CP 00BH ; 0FC9 JR Z,00FD4H ; 0FCB CP 00CH ; 0FCD JR Z,00FF7H ; 0FCF LD A,001H ; 0FD1 LD B,A ; 0FD3 LD A,(0645CH) ; 0FD4 BIT 6,A ; 0FD7 JR NZ,00FDEH ; 0FD9 XOR A ; 0FDB JR 00FE0H ; 0FDC LD A,040H ; 0FDE OR B ; 0FE0 LD (0662FH),A ; 0FE1 OR A ; 0FE4 JR NZ,00FFAH ; 0FE5 RET LD HL,(0662CH) ; 0FE7 Fichas Restantes LD (0661CH),HL ; 0FEA Fichas Restantes LD (06620H),HL ; 0FED Fichas Restantes LD (0661EH),HL ; 0FF0 Fichas Restantes LD A,H ; 0FF3 OR L ; 0FF4 JR NZ,00FFAH ; 0FF5 CALL 011E2H ; 0FF7 Write 'CREDITO AGOTADO | CUELGUE' RET ; 0FFA ;----------------------- ; CALL 0102EH ; 0FFB LD B,000H ; 0FFE OR A ; 1000 JR Z,0100DH ; 1001 CP 009H ; 1003 JR Z,0100DH ; 1005 CP 008H ; 1007 JR Z,0102AH ; 1009 LD B,001H ; 100B INC HL ; 100D LD A,(HL) ; 100E BIT 6,A ; 100F LD A,040H ; 1011 JR NZ,01016H ; 1013 XOR A ; 1015 -- Salteado OR B ; 1016 LD (0662FH),A ; 1017 JR NZ,0102DH ; 101A LD HL,(0662CH) ; 101C Fichas Restantes LD (0661CH),HL ; 101F Fichas Restantes LD (06620H),HL ; 1022 Fichas Restantes LD (0661EH),HL ; 1025 Fichas Restantes LD A,H ; 1028 OR L ; 1029 CALL Z,011E2H ; 102A Write 'CREDITO AGOTADO | CUELGUE' RET ; 102D LD HL,06452H ; 102E LD A,(HL) ; 1031 (6452h) LD (06624H),A ; 1032 INC HL ; 1035 LD A,(HL) ; 1036 (6453h) LD (06625H),A ; 1037 XOR A ; 103A LD (06626H),A ; 103B INC HL ; 103E LD DE,06627H ; 103F LD BC,00003H ; 1042 LDIR ; 1045 XOR A ; 1047 LD (0662AH),A ; 1048 LD (0662BH),A ; 104B LD A,(HL) ; 104E (6454h) LD (0662CH),A ; 104F Fichas Restantes INC HL ; 1052 LD A,(HL) ; 1053 (6455h) LD (0662DH),A ; 1054 LD A,028H ; 1057 LD (0662EH),A ; 1059 INC HL ; 105C LD A,(HL) ; 105D (6456h) LD (0662FH),A ; 105E RET ; 1061 LD HL,06452H ; 1062 LD A,(HL) ; 1065 (6452h) LD (06624H),A ; 1066 INC HL ; 1069 LD A,(HL) ; 106A (6453h) RRC A ; 106B RRC A ; 106D RRC A ; 106F RRC A ; 1071 AND 00FH ; 1073 LD (06625H),A ; 1075 LD A,(HL) ; 1078 (6453h) AND 00FH ; 1079 LD (06626H),A ; 107B INC HL ; 107E LD DE,06627H ; 107F LD BC,00007H ; 1082 LDIR ; 1085 LD A,05CH ; 1087 LD (0662EH),A ; 1089 LD A,(HL) ; 108C (6454h) LD (0662FH),A ; 108D RET ; 1090 LD A,001H ; 1091 LD (06607H),A ; 1093 LD A,011H ; 1096 LD (06552H),A ; 1098 CALL 03C26H ; 109B 2xIn(61h), Out(66h,13h), Out(67h,E6h) CALL 03940H ; 109E ; Lectura de tajeta ? LD A,(0642CH) ; 10A1 BIT 3,A ; 10A4 JP NZ,01176H ; 10A6 LD A,(06450H) ; 10A9 CP VOL_KEY ; 10AC JR Z,010B6H ; 10AE CALL 0117EH ; 10B0 JP 01176H ; 10B3 LD A,(06451H) ; 10B6 CP 008H ; 10B9 JR Z,010F3H ; 10BB CP 009H ; 10BD JP NZ,01169H ; 10BF CALL 0102EH ; 10C2 LD B,000H ; 10C5 OR A ; 10C7 JR Z,010D4H ; 10C8 CP 008H ; 10CA JR Z,010D4H ; 10CC CP 009H ; 10CE JR Z,010D4H ; 10D0 LD B,001H ; 10D2 INC HL ; 10D4 LD A,(HL) ; 10D5 BIT 6,A ; 10D6 LD A,040H ; 10D8 JR NZ,010DDH ; 10DA XOR A ; 10DC OR B ; 10DD LD (0662FH),A ; 10DE LD A,(06459H) ; 10E1 CP 009H ; 10E4 JP Z,01169H ; 10E6 LD A,(06606H) ; 10E9 (6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 10EC JP NZ,01169H ; 10EE JR 01141H ; 10F1 LD A,(0645BH) ; 10F3 CP 00AH ; 10F6 JR Z,01169H ; 10F8 LD A,(06606H) ; 10FA (6606h)=3 => FICHAS =/=> PULSOS CP 001H ; 10FD JR NZ,01169H ; 10FF LD A,(0645BH) ; 1101 CP 00CH ; 1104 JR NZ,0110FH ; 1106 XOR A ; 1108 LD (06459H),A ; 1109 LD (0645AH),A ; 110C CALL 01062H ; 110F XOR A ; 1112 LD B,A ; 1113 LD A,(0662FH) ; 1114 CP 000H ; 1117 JR Z,0112AH ; 1119 CP 001H ; 111B JR Z,0112AH ; 111D CP 00BH ; 111F JR Z,0112AH ; 1121 CP 00CH ; 1123 JR Z,0112AH ; 1125 LD A,001H ; 1127 LD B,A ; 1129 LD A,(0645CH) ; 112A BIT 6,A ; 112D JR NZ,01134H ; 112F XOR A ; 1131 JR 01136H ; 1132 LD A,040H ; 1134 OR B ; 1136 LD (0662FH),A ; 1137 LD A,(0645BH) ; 113A CP 00BH ; 113D JR Z,01169H ; 113F LD A,(0662FH) ; 1141 OR A ; 1144 JR NZ,01169H ; 1145 LD HL,(0662CH) ; 1147 Fichas Restantes LD A,H ; 114A OR L ; 114B JR Z,01169H ; 114C LD BC,(0662CH) ; 114E Fichas Restantes LD (0661CH),BC ; 1152 Fichas Restantes LD HL,(06620H) ; 1156 Fichas Restantes ADD HL,BC ; 1159 LD (06620H),HL ; 115A Fichas Restantes XOR A ; 115D LD (06610H),A ; 115E LD (06611H),A ; 1161 CALL 01A6EH ; 1164 JR 01176H ; 1167 LD A,001H ; 1169 LD (06608H),A ; 116B CALL 011DDH ; 116E Write '????| PROBLEMA' LD A,005H ; 1171 LD (0641BH),A ; 1173 Timer B XOR A ; 1176 LD (06607H),A ; 1177 CALL 03C42H ; 117A (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 RET ; 117D LD A,(06452H) ; 117E CALL 011BAH ; 1181 LD A,(06451H) ; 1184 BIT 7,A ; 1187 JR NZ,011ACH ; 1189 LD A,(06451H) ; 118B OR A ; 118E JR Z,0119BH ; 118F LD B,002H ; 1191 CALL 013FBH ; 1193 Log A,B,(644Fh),(6606h) CALL 011D8H ; 1196 Write 'PROBLEMA | CUELGUE' JR 011B4H ; 1199 LD A,(06450H) ; 119B LD B,003H ; 119E CALL 013FBH ; 11A0 Log A,B,(644Fh),(6606h) CP 003H ; 11A3 JR Z,011ACH ; 11A5 CALL 011D8H ; 11A7 Write 'PROBLEMA | CUELGUE' JR 011B4H ; 11AA CALL 011ECH ; 11AC Write 'INUTILIZABLE | ' JR 011B4H ; 11AF CALL 011E2H ; 11B1 Write 'CREDITO AGOTADO | CUELGUE' LD A,005H ; 11B4 LD (0641BH),A ; 11B6 Timer B RET ; 11B9 OR A ; 11BA JR Z,011D7H ; 11BB RET PUSH AF ; 11BD CALL 011D8H ; 11BE Write 'PROBLEMA | CUELGUE' POP AF ; 11C1 LD B,001H ; 11C2 CALL 013FBH ; 11C4 Log A,B,(644Fh),(6606h) BIT 7,A ; 11C7 JR Z,011D7H ; 11C9 LD A,(0642DH) ; 11CB SET 1,A ; 11CE LD (0642DH),A ; 11D0 XOR A ; 11D3 LD (06435H),A ; 11D4 RET ; 11D7 CALL 00C24H ; 11D8 Write 'PROBLEMA | CUELGUE' JR 011F6H ; 11DB CALL 00C36H ; 11DD Write '????| PROBLEMA' JR 011F6H ; 11E0 CALL 00B3BH ; 11E2 Write 'CREDITO AGOTADO | CUELGUE'61=80h JR 011F6H ; 11E5 CALL 00B4DH ; 11E7 Write 'INUTILIZABLE | ' JR 011F6H ; 11EA CALL 00B4DH ; 11EC Write 'INUTILIZABLE | ' JR 011F6H ; 11EF CALL 00B6DH ; 11F1 Write 'TARJETA INVALIDA | CUELGUE' JR 011F6H ; 11F4 LD A,005H ; 11F6 LD (0641BH),A ; 11F8 Timer B LD A,(06607H) ; 11FB OR A ; 11FE JR Z,01208H ; 11FF LD A,001H ; 1201 LD (06608H),A ; 1203 JR 01210H ; 1206 LD A,001H ; 1208 LD (065EDH),A ; 120A CALL 03C42H ; 120D (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 RET ; 1210 LD A,(06606H) ; 1211 (6606h)=3 => FICHAS =/=> PULSOS CP 001H ; 1214 JR Z,0121CH ; 1216 CP 003H ; 1218 JR NZ,0122AH ; 121A CALL 03C26H ; 121C 2xIn(61h), Out(66h,13h), Out(67h,E6h) CALL 0122EH ; 121F CALL 03C42H ; 1222 (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 CALL 0129DH ; 1225 JR 0122DH ; 1228 CALL 011D8H ; 122A Write 'PROBLEMA | CUELGUE' RET ; 122D CALL 0125FH ; 122E LD A,(0642CH) ; 1231 BIT 3,A ; 1234 JR NZ,0125EH ; 1236 LD HL,06452H ; 1238 LD A,(HL) ; 123B (6452h) AND 0C4H ; 123C JR Z,01249H ; 123E LD A,(HL) ; 1240 (6452h) LD B,004H ; 1241 CALL 013FBH ; 1243 Log A,B,(644Fh),(6606h) CALL 011D8H ; 1246 Write 'PROBLEMA | CUELGUE' LD A,(06452H) ; 1249 (6452h) AND 0D6H ; 124C JR Z,01258H ; 124E LD B,A ; 1250 LD A,(0661BH) ; 1251 OR B ; 1254 LD (0661BH),A ; 1255 LD A,(06453H) ; 1258 LD (06616H),A ; 125B RET ; 125E XOR A ; 125F LD (06616H),A ; 1260 LD HL,06552H ; 1263 LD A,015H ; 1266 LD (HL),A ; 1268 INC HL ; 1269 LD A,(06614H) ; 126A LD (HL),A ; 126D CALL 03940H ; 126E Lectura de tarjeta? LD A,(0642CH) ; 1271 BIT 3,A ; 1274 JR NZ,0129CH ; 1276 LD A,(06450H) ; 1278 CP 052H ; 127B JR Z,01296H ; 127D LD B,020H ; 127F CALL 013FBH ; 1281 Log A,B,(644Fh),(6606h) CALL 011D8H ; 1284 Write 'PROBLEMA | CUELGUE' LD A,001H ; 1287 LD (065EDH),A ; 1289 LD A,(0642CH) ; 128C SET 3,A ; 128F LD (0642CH),A ; 1291 JR 0129CH ; 1294 LD A,(06456H) ; 1296 CALL 011BAH ; 1299 RET ; 129C XOR A ; 129D LD D,A ; 129E LD A,(06616H) ; 129F LD E,A ; 12A2 LD HL,(0660CH) ; 12A3 ADD HL,DE ; 12A6 LD (0660CH),HL ; 12A7 LD HL,(0660EH) ; 12AA ADD HL,DE ; 12AD LD (0660EH),HL ; 12AE LD HL,(06610H) ; 12B1 ADD HL,DE ; 12B4 LD (06610H),HL ; 12B5 LD HL,(0661CH) ; 12B8 Fichas Restantes OR A ; 12BB SBC HL,DE ; 12BC LD (0661CH),HL ; 12BE Fichas Restantes CALL 01A6EH ; 12C1 RET ; 12C4 LD A,001H ; 12C5 LD (06607H),A ; 12C7 (6607h)=01h LD A,(06614H) ; 12CA INC A ; 12CD INC A ; 12CE LD (06614H),A ; 12CF CALL 03C26H ; 12D2 2xIn(61h), Out(66h,13h), Out(67h,E6h) CALL 0125FH ; 12D5 CALL 03C42H ; 12D8 (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 LD A,(0642CH) ; 12DB BIT 3,A ; 12DE JR NZ,0134AH ; 12E0 LD A,(06452H) ; 12E2 AND 0C4H ; 12E5 JR Z,012F2H ; 12E7 LD A,(HL) ; 12E9 LD B,004H ; 12EA CALL 013FBH ; 12EC Log A,B,(644Fh),(6606h) CALL 011DDH ; 12EF Write '????| PROBLEMA' LD A,(06452H) ; 12F2 AND 0DEH ; 12F5 LD (0661BH),A ; 12F7 LD HL,06453H ; 12FA LD A,(HL) ; 12FD (6453h) LD B,A ; 12FE LD A,(06614H) ; 12FF SUB B ; 1302 LD B,A ; 1303 CP 000H ; 1304 JR NZ,01314H ; 1306 DEC (HL) ; 1308 DEC (HL) ; 1309 LD A,(06614H) ; 130A DEC A ; 130D DEC A ; 130E LD (06614H),A ; 130F JR 0133CH ; 1312 CP 001H ; 1314 JR NZ,01323H ; 1316 DEC (HL) ; 1318 LD A,(06614H) ; 1319 DEC A ; 131C DEC A ; 131D LD (06614H),A ; 131E JR 0133CH ; 1321 CP 002H ; 1323 JR NZ,0132DH ; 1325 LD A,(HL) ; 1327 LD (06614H),A ; 1328 JR 0133CH ; 132B LD A,(HL) ; 132D LD B,004H ; 132E CALL 013FBH ; 1330 Log A,B,(644Fh),(6606h) PUSH HL ; 1333 CALL 011DDH ; 1334 Write '????| PROBLEMA' POP HL ; 1337 LD A,(HL) ; 1338 LD (06614H),A ; 1339 LD A,(HL) ; 133C LD (06616H),A ; 133D LD (0661CH),A ; 1340 Fichas Restantes XOR A ; 1343 LD (0661DH),A ; 1344 CALL 0129DH ; 1347 XOR A ; 134A LD (06607H),A ; 134B RET ; 134E LD A,012H ; 134F LD (06552H),A ; 1351 CALL 03C26H ; 1354 2xIn(61h), Out(66h,13h), Out(67h,E6h) CALL 03940H ; 1357 Lectura de tarjeta? LD A,(06606H) ; 135A (6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 135D JR Z,0137AH ; 135F LD A,(0642CH) ; 1361 BIT 3,A ; 1364 JR NZ,01377H ; 1366 LD A,(06452H) ; 1368 AND 090H ; 136B LD B,A ; 136D LD A,(06454H) ; 136E AND 0C4H ; 1371 OR B ; 1373 LD (0661BH),A ; 1374 CALL 011BAH ; 1377 RET ; 137A LD A,014H ; 137B LD (06552H),A ; 137D CALL 03C26H ; 1380 2xIn(61h), Out(66h,13h), Out(67h,E6h) CALL 03940H ; 1383 Lectura de tarjeta? CALL 03C42H ; 1386 (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 RET ; 1389 LD A,018H ; 138A LD (06552H),A ; 138C LD B,000H ; 138F LD A,(06448H) ; 1391 OR A ; 1394 JR NZ,013FAH ; 1395 RET LD A,(0642CH) ; 1397 RES 3,A ; 139A LD (0642CH),A ; 139C LD A,(0642DH) ; 139F BIT 1,A ; 13A2 JR Z,013ADH ; 13A4 RES 1,A ; 13A6 LD (0642DH),A ; 13A8 LD B,002H ; 13AB LD A,(0642DH) ; 13AD BIT 3,A ; 13B0 JR Z,013BDH ; 13B2 RES 3,A ; 13B4 LD (0642DH),A ; 13B6 LD A,001H ; 13B9 OR B ; 13BB LD B,A ; 13BC LD A,(0662FH) ; 13BD AND 040H ; 13C0 LD C,A ; 13C2 LD A,(0661BH) ; 13C3 AND 040H ; 13C6 OR C ; 13C8 JR Z,013CFH ; 13C9 LD A,001H ; 13CB OR B ; 13CD LD B,A ; 13CE LD A,B ; 13CF LD (06553H),A ; 13D0 CALL 03C26H ; 13D3 2xIn(61h), Out(66h,13h), Out(67h,E6h) CALL 03940H ; 13D6 Lectura de tarjeta? CALL 03C42H ; 13D9 (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 LD A,(06450H) ; 13DC AND 080H ; 13DF JR Z,013EBH ; 13E1 LD A,(0642DH) ; 13E3 SET 1,A ; 13E6 LD (0642DH),A ; 13E8 LD A,(06450H) ; 13EB AND 040H ; 13EE JR Z,013FAH ; 13F0 RET LD A,(0642DH) ; 13F2 SET 3,A ; 13F5 LD (0642DH),A ; 13F7 RET ; 13FA PUSH AF ; 13FB Log A,B,(644Fh),(6606h) PUSH BC ; 13FC CALL 03FBCH ; 13FD Put Log Buffer LD A,B ; 1400 CALL 03FBCH ; 1401 Put Log Buffer LD A,(0644FH) ; 1404 CALL 03FBCH ; 1407 Put Log Buffer LD A,(06606H) ; 140A (6606h)=3 => FICHAS =/=> PULSOS LD B,A ; 140D LD A,050H ; 140E OR B ; 1410 CALL 03FBCH ; 1411 Put Log Buffer POP BC ; 1414 POP AF ; 1415 RET ; 1416 XOR A ; 1417 LD (065E6H),A ; 1418 CALL 03BAAH ; 141B (P40.6)=0 CALL 03BA1H ; 141E (P41.3) = 1 (Descuelga) LD HL,(06425H) ; 1421 Timer 3W LD A,H ; 1424 OR L ; 1425 JP Z,01673H ; 1426 LD A,(065EDH) ; 1429 OR A ; 142C JP NZ,01673H ; 142D CALL 00D9BH ; 1430 Refresca el Display XOR A ; 1433 LD HL,(0660AH) ; 1434 PUSH HL ; 1437 POP DE ; 1438 LD BC,(0660CH) ; 1439 SBC HL,BC ; 143D JP C,014B6H ; 143F JP Z,014B6H ; 1442 LD (06614H),HL ; 1445 LD DE,(0661CH) ; 1448 Fichas Restantes LD A,D ; 144C OR E ; 144D JR Z,0145DH ; 144E Write 'CREDITO AGOTADO | CUELGUE'61=80h XOR A ; 1450 SBC HL,DE ; 1451 JR C,01463H ; 1453 JR Z,01463H ; 1455 CALL 00BB8H ; 1457 Write ' | RETIRAR TARJETA' JP 01673H ; 145A CALL 00B3BH ; 145D Write 'CREDITO AGOTADO | CUELGUE'61=80h JP 01673H ; 1460 CALL 01211H ; 1463 LD A,(0642CH) ; 1466 AND 008H ; 1469 JP NZ,01673H ; 146B LD HL,(065D8H) ; 146E LD A,H ; 1471 OR L ; 1472 JR NZ,0147EH ; 1473 LD HL,(0661CH) ; 1475 Fichas Restantes LD A,H ; 1478 OR L ; 1479 JR Z,014ABH ; 147A JR 014B0H ; 147C LD BC,(0661CH) ; 147E Fichas Restantes LD DE,(065D6H) ; 1482 CALL 040B8H ; 1486 HL = BC Mod DE PUSH BC ; 1489 LD BC,(065D8H) ; 148A LD DE,0000AH ; 148E CALL 040B8H ; 1491 HL = BC Mod 10 LD D,B ; 1494 LD E,C ; 1495 POP HL ; 1496 CALL 04097H ; 1497 IX:IY = HL * DE PUSH IY ; 149A POP HL ; 149C LD A,H ; 149D OR L ; 149E JR NZ,014B0H ; 149F PUSH IX ; 14A1 POP HL ; 14A3 LD DE,(06421H) ; 14A4 Timer 1W ADD HL,DE ; 14A8 JR 014B3H ; 14A9 LD HL,00168H ; 14AB JR 014B3H ; 14AE LD HL,00E10H ; 14B0 LD (06427H),HL ; 14B3 Timer 4W LD A,(06606H) ; 14B6 (=6606h)=3 => FICHAS =/=> PULSOS OR A ; 14B9 JR Z,014E7H ; 14BA XOR A ; 14BC LD HL,(06620H) ; 14BD Fichas Restantes LD DE,(0660AH) ; 14C0 SBC HL,DE ; 14C4 JR C,014E7H ; 14C6 LD (0661EH),HL ; 14C8 Fichas Restantes XOR A ; 14CB LD HL,(06614H) ; 14CC LD A,(06616H) ; 14CF LD D,000H ; 14D2 LD E,A ; 14D4 SBC HL,DE ; 14D5 PUSH HL ; 14D7 POP DE ; 14D8 LD HL,(0661EH) ; 14D9 Fichas Restantes ADD HL,DE ; 14DC LD (0661EH),HL ; 14DD Fichas Restantes LD A,(0641BH) ; 14E0 Timer B OR A ; 14E3 CALL Z,00B1CH ; 14E4 Actualiza el indicador de Pulsos LD A,(06608H) ; 14E7 OR A ; 14EA JP NZ,01599H ; 14EB LD A,(065E6H) ; 14EE OR A ; 14F1 JP NZ,0151BH ; 14F2 LD A,(06606H) ; 14F5 (=6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 14F8 JP Z,0151BH ; 14FA LD HL,(06427H) ; 14FD Timer 4W LD A,H ; 1500 OR A ; 1501 JR NZ,0151BH ; 1502 LD A,L ; 1504 CP 01FH ; 1505 JR NC,0151BH ; 1507 LD A,(07C01H) ; 1509 BIT 2,A ; 150C JR Z,0151BH ; 150E CALL 00B7FH ; 1510 Write ' ??? PULSOS|OTRA TARJETA?' LD A,001H ; 1513 LD (065E8H),A ; 1515 LD (065E6H),A ; 1518 LD A,(065EBH) ; 151B OR A ; 151E JP Z,01599H ; 151F LD A,(06448H) ; 1522 OR A ; 1525 JR Z,01573H ; 1526 LD A,(065E7H) ; 1528 OR A ; 152B JR Z,01599H ; 152C CALL 01091H ; 152E XOR A ; 1531 LD HL,(06620H) ; 1532 Fichas Restantes LD DE,(0660AH) ; 1535 SBC HL,DE ; 1539 JR NC,01540H ; 153B LD HL,00000H ; 153D LD (0661EH),HL ; 1540 Fichas Restantes LD A,(0641BH) ; 1543 Timer B OR A ; 1546 CALL Z,00B1CH ; 1547 Actualiza el indicador de Pulsos LD A,000H ; 154A LD (065E7H),A ; 154C LD A,(06608H) ; 154F OR A ; 1552 JR NZ,0157DH ; 1553 LD A,001H ; 1555 CALL 03F5BH ; 1557 Put Buffer #7 (Internal Commands) XOR A ; 155A LD (065C4H),A ; 155B LD A,000H ; 155E LD (065EBH),A ; 1560 CALL 00D28H ; 1563 Borra la linea de abajo LD A,000H ; 1566 LD (065E6H),A ; 1568 LD HL,00E10H ; 156B LD (06427H),HL ; 156E Timer 4W JR 01599H ; 1571 CALL 00B9DH ; 1573 Write ' ??? PULSOS|NUEVA TARJETA?' LD A,001H ; 1576 LD (065E7H),A ; 1578 JR 01599H ; 157B LD A,(0662FH) ; 157D OR A ; 1580 JR Z,0158CH ; 1581 LD A,001H ; 1583 CALL 03F5BH ; 1585 Put Buffer #7 (Internal Commands) XOR A ; 1588 LD (065C4H),A ; 1589 CALL 00BB8H ; 158C Write ' | RETIRAR TARJETA' LD A,005H ; 158F LD (0641BH),A ; 1591 Timer B LD A,001H ; 1594 LD (065E6H),A ; 1596 LD A,(065C4H) ; 1599 OR A ; 159C JR Z,015C6H ; 159D LD A,(065B4H) ; 159F OR A ; 15A2 JR Z,015C6H ; 15A3 AND 080H ; 15A5 CALL NZ,0134FH ; 15A7 XOR A ; 15AA LD (0661CH),A ; 15AB Fichas Restantes LD (0661DH),A ; 15AE LD (065B4H),A ; 15B1 LD (065E8H),A ; 15B4 LD BC,(0662CH) ; 15B7 Fichas Restantes LD HL,(06620H) ; 15BB Fichas Restantes SBC HL,BC ; 15BE LD (06620H),HL ; 15C0 Fichas Restantes JP C,01673H ; 15C3 CALL 03DA3H ; 15C6 Get Key Pressed Carry On Error JP C,01655H ; 15C9 CP Cortar_Key ; 15CC JP NZ,01613H ; 15CE LD A,(07C01H) ; 15D1 BIT 3,A ; 15D4 JP Z,01673H ; 15D6 LD A,(065CDH) ; 15D9 OR A ; 15DC JP NZ,01673H ; 15DD LD A,(065C4H) ; 15E0 OR A ; 15E3 JP Z,01660H ; 15E4 LD A,(06606H) ; 15E7 (6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 15EA JP Z,01673H ; 15EC LD A,000H ; 15EF LD (065E2H),A ; 15F1 LD A,001H ; 15F4 LD (06623H),A ; 15F6 LD A,000H ; 15F9 LD (065DAH),A ; 15FB CALL 03B8FH ; 15FE (P41.3) = 0 (Cuelga) LD A,006H ; 1601 CALL 03F5BH ; 1603 Put Buffer #7 (Internal Commands) LD A,005H ; 1606 LD (0644BH),A ; 1608 LD A,010H ; 160B LD (065EAH),A ; 160D JP 0167DH ; 1610 CP '@' ; 1613 JR NZ,0164EH ; 1615 LD A,(065E8H) ; 1617 OR A ; 161A JP Z,01655H ; 161B CALL 00CFAH ; 161E Write ' ??? PULSOS | ESPERE POR FAVOR' LD A,000H ; 1621 LD (065E8H),A ; 1623 LD HL,(0661CH) ; 1626 Fichas Restantes LD (06614H),HL ; 1629 CALL 012C5H ; 162C LD A,(06608H) ; 162F OR A ; 1632 JP NZ,01646H ; 1633 LD A,000H ; 1636 LD (065E7H),A ; 1638 LD A,001H ; 163B LD (065EBH),A ; 163D CALL 00C06H ; 1640 Write 'PULSOS | RETIRAR TARJETA' JP 01655H ; 1643 LD A,001H ; 1646 LD (065E6H),A ; 1648 JP 01655H ; 164B CP VOL_KEY ; 164E JR NZ,01655H ; 1650 CALL 00D9BH ; 1652 Refresca el Display LD A,(065BBH) ; 1655 Buffer #2 Counter (Numero Marcado) OR A ; 1658 JR NZ,01660H ; 1659 LD A,001H ; 165B LD (065E2H),A ; 165D LD A,(0641BH) ; 1660 Timer B CP 001H ; 1663 JR NZ,0166DH ; 1665 CALL 00D28H ; 1667 Borra la linea de abajo CALL 00B1CH ; 166A Actualiza el indicador de Pulsos CALL 03BB3 ; 166D Espera IRQ y vuelve JP 01421H ; 1670 LD A,008H ; 1673 CALL 03F5BH ; 1675 Put Buffer #7 (Internal Commands) LD A,007H ; 1678 LD (0644BH),A ; 167A RET ; 167D LD A,001H ; 167E LD (06675H),A ; 1680 LD A,(0642CH) ; 1683 SET 1,A ; 1686 LD (0642CH),A ; 1688 LD A,(0642EH) ; 168B CP 000H ; 168E CALL NZ,028B7H ; 1690 LD A,001H ; 1693 LD (065EDH),A ; 1695 LD HL,00000H ; 1698 LD (06650H),HL ; 169B LD A,020H ; 169E LD (0643AH),A ; 16A0 CALL 00C61H ; 16A3 Write 'PRUEBA TECLADO' LD A,014H ; 16A6 LD (06419H),A ; 16A8 Timer B TIMEOUT Para prueba de teclado CALL 03BB3H ; 16AB Espera IRQ y vuelve LD A,(065CDH) ; 16AE ; Flag de tecla inic. OR A ; 16B1 JP NZ,01716H ; 16B2 LD A,(06419H) ; 16B5 Timer B OR A ; 16B8 JR Z,016D1H ; 16B9 CALL 03DA3H ; 16BB Get Key Pressed Carry On Error JR C,016ABH ; 16BE LD (0643AH),A ; 16C0 CP 'A' ; 16C3 JR Z,016D1H ; 16C5 LD A,014H ; 16C7 ; valor para el TIMER de teclado LD (06419H),A ; 16C9 Timer B CALL 00C61H ; 16CC Write 'PRUEBA TECLADO' JR 016ABH ; 16CF LD B,010H ; 16D1 LD A,020H ; 16D3 LD HL,065F0H ; 16D5 LD (HL),A ; 16D8 INC HL ; 16D9 DJNZ 016D8H ; 16DA (65F0..6600) = ' ' CALL 00C77H ; 16DC Write 'PRUEBA ESPIA ?' LD HL,(0667AH) ; 16DF Puntero al Proximo char del Log Buffer CALL 03BB3H ; 16E2 Espera IRQ y vuelve LD A,(065CDH) ; 16E5 OR A ; 16E8 JP NZ,01716H ; 16E9 CALL 03DA3H ; 16EC Get Key Pressed Carry On Error JR C,016E2H ; 16EF CP 'A' ; 16F1 JR Z,016FFH ; 16F3 CALL 03FE4H ; 16F5 Makes 65F2h=4-Hexs String of (HL..HL+3) PUSH HL ; 16F8 CALL 00C77H ; 16F9 Write 'PRUEBA ESPIA ?' POP HL ; 16FC JR 016E2H ; 16FD CALL 00C8EH ; 16FF Write 'INICIALIZACION ?' CALL 03BB3H ; 1702 Espera IRQ y vuelve LD A,(065CDH) ; 1705 OR A ; 1708 JP NZ,01716H ; 1709 CALL 03DA3H ; 170C Get Key Pressed Carry On Error JR C,01702H ; 170F CP 'A' ; 1711 CALL Z,02A56H ; 1713 LD A,000H ; 1716 LD (06675H),A ; 1718 RET ; 171B LD B,E ; 171C LD C,C ; 171D ; ORG 0171FH LD A,(06606H) ; 171F (=6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 1722 JR Z,01778H ; 1724 LD A,(06419H) ; 1726 Timer B LD B,A ; 1729 LD A,(065C4H) ; 172A OR B ; 172D JR NZ,01755H ; 172E LD A,001H ; 1730 LD (065EDH),A ;3 1732 LD HL,(0171CH) ; 1735 LD (065B8H),HL ; 1738 (65B8) = 'CI' LD A,005H ; 173B LD (06419H) ,A ; 173D Timer B CALL 00ADFH ; 1740 Write '( ) FUERA | DE SERVICIO' LD A,(06419H) ; 1743 Timer B OR A ; 1746 JR Z,01755H ; 1747 LD A,(06449H) ; 1749 OR A ; 174C JR Z,01755H ; 174D LD A,(06448H) ; 174F OR A ; 1752 JR NZ,0174 3H ; 1753 LD A,(065C4H) ; 1755 OR A ; 1758 JR Z,0177DH ; 1759 LD A,(065B4H) ; 175B OR A ; 175E JR NZ,01769H ; 175F LD A,(0662FH) ; 1761 OR A ; 1764 JR Z,01778H ; 1765 JR 0176EH ; 1767 AND 080H ; 1769 CALL NZ,0134FH ; 176B CALL 00B6DH ; 176E Write 'TARJETA INVALIDA | CUELGUE' LD A,001H ; 1771 LD (065EDH),A ; 1773 JR 0177DH ; 1776 LD A,001H ; 1778 LD (065DBH),A ; 177A LD A,(065EAH) ; 177D CP 010H ; 1780 JR NZ,01789H ; 1782 CALL 017E1H ; 1784 JR 01799H ; 1787 CP 016H ; 1789 JR NZ,01792H ; 178B CALL 0186FH ; 178D JR 01799H ; 1790 CP 015H ; 1792 JR NZ,01799H ; 1794 CALL 018C8H ; 1796 LD A,(065CDH) ; 1799 CP 001H ; 179C JR Z,017BFH ; 179E LD A,(065C9H) ; 17A0 OR A ; 17A3 JR Z,017ABH ; 17A4 CALL 00CBAH ; 17A6 Write 'NO ACCESIBLE | CUELGUE' JR 017BFH ; 17A9 LD A,(065EDH) ; 17AB CP 001H ; 17AE JR Z,017BFH ; 17B0 LD A,(0644BH) ; 17B2 CP 005H ; 17B5 JP Z,0171FH ; 17B7 CALL 03BC6H ; 17BA No tone on DTMF chip's output JR 017E0H ; 17BD CALL 03BC6H ; 17BF No tone on DTMF chip's output LD A,007H ; 17C2 LD (0644BH),A ; 17C4 LD A,004H ; 17C7 LD (06419H),A ; 17C9 Timer B LD A,(06419H) ; 17CC Timer B OR A ; 17CF JR Z,017DBH ; 17D0 LD A,(06590H) ; 17D2 OR A ; 17D5 JR NZ,017CCH ; 17D6 LD (065BBH),A ; 17D8 Buffer #2 Counter (Numero Marcado) LD A,008H ; 17DB CALL 03F5BH ; 17DD Put Buffer #7 (Internal Commands) RET ; 17E0 XOR A ; 17E1 LD (065C7H),A ; 17E2 LD (065C8H),A ; 17E5 LD (065DEH),A ; 17E8 LD (065DFH),A ; 17EB CALL 03D14H ; 17EE CALL 03B98H ; 17F1 (P40.6) = 1 LD A,(06606H) ; 17F4 (=6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 17F7 JR NZ,0180EH ; 17F9 CALL 03BC6H ; 17FB No tone on DTMF chip's output LD A,015H ; 17FE LD (065EAH),A ; 1800 LD A,000H ; 1803 LD (06664H),A ; 1805 CALL 01975H ; 1808 JP 0186EH ; 180B CALL 03BBFH ; 180E Play 701.3 Hz on DTMF chip LD A,016H ; 1811 LD (065EAH),A ; 1813 LD A,014H ; 1816 LD (06419H),A ; 1818 Timer B DI ; 181B LD HL,061E1H ; 181C LD (061F7H),HL ; 181F INC HL ; 1822 LD (061F5H),HL ; 1823 XOR A ; 1826 LD (065BBH),A ; 1827 Buffer #2 Counter (Numero Marcado) LD (065C5H),A ; 182A EI ; 182D LD A,000H ; 182E LD (06600H),A ; 1830 LD B,00AH ; 1833 XOR A ; 1835 LD HL,06665H ; 1836 LD (HL),A ; 1839 INC HL ; 183A DJNZ 01839H ; 183B LD (0666FH),A ; 183D LD A,(06606H) ; 1840 (=6606h)=3 => FICHAS =/=> PULSOS CP 002H ; 1843 JR NZ,01852H ; 1845 LD A,(06622H) ; 1847 OR A ; 184A JR Z,01852H ; 184B CALL 0199DH ; 184D JR 0186BH ; 1850 LD A,(06623H) ; 1852 OR A ; 1855 JR Z,01862H ; 1856 LD A,(06423H) ; 1858 Timer 2W LD B,A ; 185B LD A,(06424H) ; 185C OR B ; 185F JR NZ,0186BH ; 1860 XOR A ; 1862 LD (06664H),A ; 1863 LD A,001H ; 1866 LD (06623H),A ; 1868 CALL 00BEBH ; 186B Write 'PULSOS | MARQUE EL NUMERO' RET ; 186E LD A,(065BAH) ; 186F Buffer #1 Counter OR A ; 1872 JR Z,018B9H ; 1873 CALL 03DA3H ; 1875 Get Key Pressed Carry On Error LD (0643AH),A ; 1878 CP '>' ; 187B JR NZ,0188CH ; 187D LD A,(06606H) ; 187F (6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 1882 JR Z,018BFH ; 1884 CALL 0199DH ; 1886 JP 018C7H ; 1889 CP 039H ; 188C JR NC,018B2H ; 188E Key > '9' Compare with another Key CP 030H ; 1890 JR C,018B2H ; 1892 Key < '0' Compare with another Key CALL 03BC6H ; 1894 No tone on DTMF chip's output LD A,015H ; 1897 LD (065EAH),A ; 1899 LD A,(0643AH) ; 189C AND 00FH ; 189F LD (065F0H),A ; 18A1 CALL 03E02H ; 18A4 Put Buffer #2 (Numero Marcado) LD A,001H ; 18A7 LD (06600H),A ; 18A9 CALL 00AFDH ; 18AC Write 'NUMERO MARCADO | el numero' JP 018C7H ; 18AF CP 'B' ; 18B2 JR NZ,018B9H ; 18B4 CALL 00BEBH ; 18B6 Write 'PULSOS | MARQUE EL NUMERO' LD A,(06419H) ; 18B9 Timer B OR A ; 18BC JR Z,018C4H ; 18BD CALL 03BB3H ; 18BF Espera IRQ y vuelve JR 018C7H ; 18C2 CALL 01A3AH ; 18C4 RET ; 18C7 LD HL,(06425H) ; 18C8 Timer 3W LD A,H ; 18CB OR L ; 18CC JP Z,0196AH ; 18CD LD A,(06606H) ; 18D0 (=6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 18D3 JR Z,018FDH ; 18D5 CALL 01A16H ; 18D7 LD A,(065C4H) ; 18DA OR A ; 18DD JR Z,01909H ; 18DE LD A,(065B4H) ; 18E0 OR A ; 18E3 JR NZ,018EEH ; 18E4 LD A,(0662FH) ; 18E6 OR A ; 18E9 JR Z,018FDH ; 18EA JR 018F3H ; 18EC AND 080H ; 18EE CALL NZ,0134FH ; 18F0 CALL 00B6DH ; 18F3 Write 'TARJETA INVALIDA | CUELGUE' LD A,001H ; 18F6 LD (065EDH),A ; 18F8 JR 01909H ; 18FB LD A,(065C7H) ; 18FD CP 001H ; 1900 JR NZ,01909H ; 1902 CALL 019C5H ; 1904 JR 01974H ; 1907 LD A,(065BAH) ; 1909 Buffer #1 Counter OR A ; 190C JR Z,01971H ; 190D CALL 03DA3H ; 190F Get Key Pressed Carry On Error LD (0643AH),A ; 1912 CP 039H ; 1915 JR NC,01929H ; 1917 CP 030H ; 1919 JR C,01929H ; 191B LD A,(06622H) ; 191D OR A ; 1920 JR NZ,01971H ; 1921 CALL 01975H ; 1923 JP 01974H ; 1926 CP Cortar_Key ; 1929 JR NZ,01963H ; 192B LD A,(06606H) ; 192D (6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 1930 JR Z,0196AH ; 1932 LD A,010H ; 1934 LD (065EAH),A ; 1936 LD A,004H ; 1939 LD (06419H),A ; 193B Timer B LD A,(06419H) ; 193E Timer B OR A ; 1941 JR Z,0196AH ; 1942 LD A,(065EDH) ; 1944 OR A ; 1947 JR NZ,0196AH ; 1948 LD A,(06590H) ; 194A OR A ; 194D JR NZ,0193EH ; 194E LD (065BBH),A ; 1950 Buffer #2 Counter (Numero Marcado) LD A,(065C5H) ; 1953 OR A ; 1956 JR Z,01974H ; 1957 CALL 03B8FH ; 1959 (P41.3) = 0 (Cuelga) LD A,006H ; 195C CALL 03F5BH ; 195E Put Buffer #7 (Internal Commands) JR 01974H ; 1961 CP VOL_KEY ; 1963 CALL Z,00AFDH ; 1965 Write 'NUMERO MARCADO | el numero' JR 01971H ; 1968 LD A,001H ; 196A LD (065EDH),A ; 196C JR 01974H ; 196F CALL 03BB3H ; 1971 Espera IRQ y vuelve RET ; 1974 LD A,(06600H) ; 1975 INC A ; 1978 CP 011H ; 1979 JR NC,0199CH ; 197B LD (06600H),A ; 197D LD A,(0643AH) ; 1980 AND 00FH ; 1983 LD (0643AH),A ; 1985 CALL 03E02H ; 1988 Put Buffer #2 (Numero Marcado) LD HL,065EFH ; 198B LD B,000H ; 198E LD A,(06600H) ; 1990 LD C,A ; 1993 ADD HL,BC ; 1994 LD A,(0643AH) ; 1995 LD (HL),A ; 1998 CALL 00AFDH ; 1999 Write 'NUMERO MARCADO | el numero' RET ; 199C LD A,(06664H) ; 199D OR A ; 19A0 JR Z,019C4H ; 19A1 LD A,015H ; 19A3 LD (065EAH),A ; 19A5 LD HL,06654H ; 19A8 LD DE,065F0H ; 19AB LD A,(06664H) ; 19AE LD (06600H),A ; 19B1 LD B,A ; 19B4 LD A,(HL) ; 19B5 LD (DE),A ; 19B6 CALL 03E02H ; 19B7 Put Buffer #2 (Numero Marcado) INC HL ; 19BA INC DE ; 19BB DJNZ 019B5H ; 19BC CALL 03BC6H ; 19BE No tone on DTMF chip's output CALL 00AFDH ; 19C1 Write 'NUMERO MARCADO | el numero' RET ; 19C4 LD DE,(065D2H) ; 19C5 LD HL,(0661EH) ; 19C9 Fichas Restantes XOR A ; 19CC SBC HL,DE ; 19CD JR NC,019D6H ; 19CF CALL 01A2FH ; 19D1 JR 01A15H ; 19D4 LD A,(06606H) ; 19D6 (=6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 19D9 JR Z,01A00H ; 19DB LD HL,(0660AH) ; 19DD LD DE,(065D2H) ; 19E0 XOR A ; 19E4 ADD HL,DE ; 19E5 LD (0660AH),HL ; 19E6 LD BC,(065D4H) ; 19E9 LD DE,0000AH ; 19ED CALL 040B8H ; 19F0 HL = BC Mod DE LD (06421H),BC ; 19F3 Timer 1W LD (065DEH),HL ; 19F7 CALL 00B1CH ; 19FA Actualiza el indicador de Pulsos CALL 00D28H ; 19FD Borra la linea de abajo LD A,006H ; 1A00 LD (0644BH),A ; 1A02 CALL 01A16H ; 1A05 LD DE,00E11H ; 1A08 LD (06427H),DE ; 1A0B Timer 4W LD HL,00000H ; 1A0F LD (0660EH),HL ; 1A12 RET ; 1A15 LD A,(06600H) ; 1A16 LD (06664H),A ; 1A19 LD B,000H ; 1A1C LD C,A ; 1A1E LD HL,065F0H ; 1A1F LD DE,06654H ; 1A22 LDIR ; 1A25 LD DE,00E11H ; 1A27 LD (06423H),DE ; 1A2A Timer 2W RET ; 1A2E PUSH AF ; 1A2F LD A,001H ; 1A30 LD (065EDH),A ; 1A32 CALL 00CBAH ; 1A35 Write 'NO ACCESIBLE | CUELGUE' POP AF ; 1A38 RET ; 1A39 PUSH AF ; 1A3A LD A,001H ; 1A3B LD (065EDH),A ; 1A3D CALL 00C24H ; 1A40 Write 'PROBLEMA | CUELGUE' POP AF ; 1A43 RET ; 1A44 LD HL,02614H ; 1A45 LD (06031H),HL ; 1A48 CALL 02200H ; 1A4B Decode Memory ¿¿¿??? LD HL,0604DH ; 1A4E LD DE,060CDH ; 1A51 LD BC,00080H ; 1A54 LDIR ; 1A57 LD HL,0261CH ; 1A59 LD (06031H),HL ; 1A5C CALL 02200H ; 31A5F Decode Memory ¿¿¿??? LD HL,0604DH ; 1A62 LD DE,0614DH ; 1A65 LD BC,00080H ; 1A68 LDIR ; 1A6B RET ; 1A6D LD DE,06029H ; 1A6E LD HL,06610H ; 1A71 LD B,(HL) ; 1A74 INC HL ; 1A75 LD A,(HL) ; 1A76 LD (DE),A ; 1A77 INC DE ; 1A78 LD A,B ; 1A79 LD (DE),A ; 1A7A INC DE ; 1A7B LD HL,065B5H ; 1A7C LD BC,00003H ; 1A7F LDIR ; 1A82 LD HL,065B5H ; 1A84 LD BC,00003H ; 1A87 LDIR ; 1A8A DEC HL ; 1A8C LD A,(HL) ; 1A8D BIT 0,A ; 1A8E JR NZ,01A97H ; 1A90 LD HL,060CDH ; 1A92 JR 01A9AH ; 1A95 LD HL,0614DH ; 1A97 LD DE,0604DH ; 1A9A LD BC,00080H ; 1A9D LDIR ; 1AA0 CALL 01AB4H ; 1AA2 LD A,(06030H) ; 1AA5 LD HL,(06610H) ; 1AA8 DI ; 1AAB LD (06619H),A ; 1AAC LD (06612H),HL ; 1AAF EI ; 1AB2 RET ; 1AB3 CALL 01AE0H ; 1AB4 LD B,010H ; 1AB7 LD HL,0604DH ; 1AB9 LD (06031H),HL ; 1ABC PUSH BC ; 1ABF CALL 01D0DH ; 1AC0 LD IX,0603DH ; 1AC3 LD HL,(06031H) ; 1AC7 CALL 01FD5H ; 1ACA LD (06031H),HL ; 1ACD CALL 02016H ; 1AD0 CALL 02097H ; 1AD3 CALL 021ACH ; 1AD6 POP BC ; 1AD9 DJNZ 01ABFH ; 1ADA CALL 01DB2H ; 1ADC RET ; 1ADF LD IX,06029H ; 1AE0 LD IY,06035H ; 1AE4 XOR A ; 1AE8 BIT 6,(IX+000H) ; 1AE9 JR Z,01AF1H ; 1AED OR 001H ; 1AEF BIT 6,(IX+001H) ; 1AF1 JR Z,01AF9H ; 1AF5 OR 002H ; 1AF7 BIT 6,(IX+002H) ; 1AF9 JR Z,01B01H ; 1AFD OR 004H ; 1AFF BIT 6,(IX+003H) ; 1B01 JR Z,01B09H ; 1B05 OR 008H ; 1B07 BIT 6,(IX+004H) ; 1B09 JR Z,01B11H ; 1B0D OR 010H ; 1B0F BIT 6,(IX+005H) ; 1B11 JR Z,01B19H ; 1B15 OR 020H ; 1B17 BIT 6,(IX+006H) ; 1B19 JR Z,01B21H ; 1B1D OR 040H ; 1B1F BIT 6,(IX+007H) ; 1B21 JR Z,01B29H ; 1B25 OR 080H ; 1B27 LD (IY+000H),A ; 1B29 XOR A ; 1B2C BIT 4,(IX+000H) ; 1B2D JR Z,01B35H ; 1B31 OR 001H ; 1B33 BIT 4,(IX+001H) ; 1B35 JR Z,01B3DH ; 1B39 OR 002H ; 1B3B BIT 4,(IX+002H) ; 1B3D JR Z,01B45H ; 1B41 OR 004H ; 1B43 BIT 4,(IX+003H) ; 1B45 JR Z,01B4DH ; 1B49 OR 008H ; 1B4B BIT 4,(IX+004H) ; 1B4D JR Z,01B55H ; 1B51 OR 010H ; 1B53 BIT 4,(IX+005H) ; 1B55 JR Z,01B5DH ; 1B59 OR 020H ; 1B5B BIT 4,(IX+006H) ; 1B5D JR Z,01B65H ; 1B61 OR 040H ; 1B63 BIT 4,(IX+007H) ; 1B65 JR Z,01B6DH ; 1B69 OR 080H ; 1B6B LD (IY+001H),A ; 1B6D XOR A ; 1B70 BIT 2,(IX+000H) ; 1B71 JR Z,01B79H ; 1B75 OR 001H ; 1B77 BIT 2,(IX+001H) ; 1B79 JR Z,01B81H ; 1B7D OR 002H ; 1B7F BIT 2,(IX+002H) ; 1B81 JR Z,01B89H ; 1B85 OR 004H ; 1B87 BIT 2,(IX+003H) ; 1B89 JR Z,01B91H ; 1B8D OR 008H ; 1B8F BIT 2,(IX+004H) ; 1B91 JR Z,01B99H ; 1B95 OR 010H ; 1B97 BIT 2,(IX+005H) ; 1B99 JR Z,01BA1H ; 1B9D OR 020H ; 1B9F BIT 2,(IX+006H) ; 1BA1 JR Z,01BA9H ; 1BA5 OR 040H ; 1BA7 BIT 2,(IX+007H) ; 1BA9 JR Z,01BB1H ; 1BAD OR 080H ; 1BAF LD (IY+002H),A ; 1BB1 XOR A ; 1BB4 BIT 0,(IX+000H) ; 1BB5 JR Z,01BBDH ; 1BB9 OR 001H ; 1BBB BIT 0,(IX+001H) ; 1BBD JR Z,01BC5H ; 1BC1 OR 002H ; 1BC3 BIT 0,(IX+002H) ; 1BC5 JR Z,01BCDH ; 1BC9 OR 004H ; 1BCB BIT 0,(IX+003H) ; 1BCD JR Z,01BD5H ; 1BD1 OR 008H ; 1BD3 BIT 0,(IX+004H) ; 1BD5 JR Z,01BDDH ; 1BD9 OR 010H ; 1BDB BIT 0,(IX+005H) ; 1BDD JR Z,01BE5H ; 1BE1 OR 020H ; 1BE3 BIT 0,(IX+006H) ; 1BE5 JR Z,01BEDH ; 1BE9 OR 040H ; 1BEB BIT 0,(IX+007H) ; 1BED JR Z,01BF5H ; 1BF1 OR 080H ; 1BF3 LD (IY+003H),A ; 1BF5 LD IY,06039H ; 1BF8 XOR A ; 1BFC BIT 7,(IX+000H) ; 1BFD JR Z,01C05H ; 1C01 OR 001H ; 1C03 BIT 7,(IX+001H) ; 1C05 JR Z,01C0DH ; 1C09 OR 002H ; 1C0B BIT 7,(IX+002H) ; 1C0D JR Z,01C15H ; 1C11 OR 004H ; 1C13 BIT 7,(IX+003H) ; 1C15 JR Z,01C1DH ; 1C19 OR 008H ; 1C1B BIT 7,(IX+004H) ; 1C1D JR Z,01C25H ; 1C21 OR 010H ; 1C23 BIT 7,(IX+005H) ; 1C25 JR Z,01C2DH ; 1C29 OR 020H ; 1C2B BIT 7,(IX+006H) ; 1C2D JR Z,01C35H ; 1C31 OR 040H ; 1C33 BIT 7,(IX+007H) ; 1C35 JR Z,01C3DH ; 1C39 OR 080H ; 1C3B LD (IY+000H),A ; 1C3D XOR A ; 1C40 BIT 5,(IX+000H) ; 1C41 JR Z,01C49H ; 1C45 OR 001H ; 1C47 BIT 5,(IX+001H) ; 1C49 JR Z,01C51H ; 1C4D OR 002H ; 1C4F BIT 5,(IX+002H) ; 1C51 JR Z,01C59H ; 1C55 OR 004H ; 1C57 BIT 5,(IX+003H) ; 1C59 JR Z,01C61H ; 1C5D OR 008H ; 1C5F BIT 5,(IX+004H) ; 1C61 JR Z,01C69H ; 1C65 OR 010H ; 1C67 BIT 5,(IX+005H) ; 1C69 JR Z,01C71H ; 1C6D OR 020H ; 1C6F BIT 5,(IX+006H) ; 1C71 JR Z,01C79H ; 1C75 OR 040H ; 1C77 BIT 5,(IX+007H) ; 1C79 JR Z,01C81H ; 1C7D OR 080H ; 1C7F LD (IY+001H),A ; 1C81 XOR A ; 1C84 BIT 3,(IX+000H) ; 1C85 JR Z,01C8DH ; 1C89 OR 001H ; 1C8B BIT 3,(IX+001H) ; 1C8D JR Z,01C95H ; 1C91 OR 002H ; 1C93 BIT 3,(IX+002H) ; 1C95 JR Z,01C9DH ; 1C99 OR 004H ; 1C9B BIT 3,(IX+003H) ; 1C9D JR Z,01CA5H ; 1CA1 OR 008H ; 1CA3 BIT 3,(IX+004H) ; 1CA5 JR Z,01CADH ; 1CA9 OR 010H ; 1CAB BIT 3,(IX+005H) ; 1CAD JR Z,01CB5H ; 1CB1 OR 020H ; 1CB3 BIT 3,(IX+006H) ; 1CB5 JR Z,01CBDH ; 1CB9 OR 040H ; 1CBB BIT 3,(IX+007H) ; 1CBD JR Z,01CC5H ; 1CC1 OR 080H ; 1CC3 LD (IY+002H),A ; 1CC5 XOR A ; 1CC8 BIT 1,(IX+000H) ; 1CC9 JR Z,01CD1H ; 1CCD OR 001H ; 1CCF BIT 1,(IX+001H) ; 1CD1 JR Z,01CD9H ; 1CD5 OR 002H ; 1CD7 BIT 1,(IX+002H) ; 1CD9 JR Z,01CE1H ; 1CDD OR 004H ; 1CDF BIT 1,(IX+003H) ; 1CE1 JR Z,01CE9H ; 1CE5 OR 008H ; 1CE7 BIT 1,(IX+004H) ; 1CE9 JR Z,01CF1H ; 1CED OR 010H ; 1CEF BIT 1,(IX+005H) ; 1CF1 JR Z,01CF9H ; 1CF5 OR 020H ; 1CF7 BIT 1,(IX+006H) ; 1CF9 JR Z,01D01H ; 1CFD OR 040H ; 1CFF BIT 1,(IX+007H) ; 1D01 JR Z,01D09H ; 1D05 OR 080H ; 1D07 LD (IY+003H),A ; 1D09 RET ; 1D0C LD IX,06039H ; 1D0D LD IY,0603DH ; 1D11 LD C,(IX+000H) ; 1D15 LD A,C ; 1D18 AND 01FH ; 1D19 SLA A ; 1D1B BIT 7,(IX+001H) ; 1D1D JR Z,01D25H ; 1D21 OR 001H ; 1D23 LD (IY+001H),A ; 1D25 LD A,C ; 1D28 AND 0F8H ; 1D29 SRL A ; 1D2B SRL A ; 1D2D SRL A ; 1D2F BIT 0,(IX+003H) ; 1D31 JR Z,01D39H ; 1D35 OR 020H ; 1D37 LD (IY+000H),A ; 1D39 LD C,(IX+001H) ; 1D3C LD A,C ; 1D3F AND 01FH ; 1D40 SLA A ; 1D42 BIT 7,(IX+002H) ; 1D44 JR Z,01D4CH ; 1D48 OR 001H ; 1D4A LD (IY+003H),A ; 1D4C LD A,C ; 1D4F AND 0F8H ; 1D50 SRL A ; 1D52 SRL A ; 1D54 SRL A ; 1D56 BIT 0,(IX+000H) ; 1D58 JR Z,01D60H ; 1D5C OR 020H ; 1D5E LD (IY+002H),A ; 1D60 LD C,(IX+002H) ; 1D63 LD A,C ; 1D66 AND 01FH ; 1D67 SLA A ; 1D69 BIT 7,(IX+003H) ; 1D6B JR Z,01D73H ; 1D6F OR 001H ; 1D71 LD (IY+005H),A ; 1D73 LD A,C ; 1D76 AND 0F8H ; 1D77 SRL A ; 1D79 SRL A ; 1D7B SRL A ; 1D7D BIT 0,(IX+001H) ; 1D7F JR Z,01D87H ; 1D83 OR 020H ; 1D85 LD (IY+004H),A ; 1D87 LD C,(IX+003H) ; 1D8A LD A,C ; 1D8D AND 01FH ; 1D8E SLA A ; 1D90 BIT 7,(IX+000H) ; 1D92 JR Z,01D9AH ; 1D96 OR 001H ; 1D98 LD (IY+007H),A ; 1D9A LD A,C ; 1D9D AND 0F8H ; 1D9E SRL A ; 1DA0 SRL A ; 1DA2 SRL A ; 1DA4 BIT 0,(IX+002H) ; 1DA6 JR Z,01DAEH ; 1DAA OR 020H ; 1DAC LD (IY+006H),A ; 1DAE RET ; 1DB1 LD HL,06029H ; 1DB2 LD IX,06035H ; 1DB5 LD IY,06039H ; 1DB9 XOR A ; 1DBD BIT 0,(IY+003H) ; 1DBE JR Z,01DC6H ; 1DC2 OR 001H ; 1DC4 BIT 0,(IX+003H) ; 1DC6 JR Z,01DCEH ; 1DCA OR 002H ; 1DCC BIT 0,(IY+002H) ; 1DCE JR Z,01DD6H ; 1DD2 OR 004H ; 1DD4 BIT 0,(IX+002H) ; 1DD6 JR Z,01DDEH ; 1DDA OR 008H ; 1DDC BIT 0,(IY+001H) ; 1DDE JR Z,01DE6H ; 1DE2 OR 010H ; 1DE4 BIT 0,(IX+001H) ; 1DE6 JR Z,01DEEH ; 1DEA OR 020H ; 1DEC BIT 0,(IY+000H) ; 1DEE JR Z,01DF6H ; 1DF2 OR 040H ; 1DF4 BIT 0,(IX+000H) ; 1DF6 JR Z,01DFEH ; 1DFA OR 080H ; 1DFC LD (HL),A ; 1DFE INC HL ; 1DFF XOR A ; 1E00 BIT 1,(IY+003H) ; 1E01 JR Z,01E09H ; 1E05 OR 001H ; 1E07 BIT 1,(IX+003H) ; 1E09 JR Z,01E11H ; 1E0D OR 002H ; 1E0F BIT 1,(IY+002H) ; 1E11 JR Z,01E19H ; 1E15 OR 004H ; 1E17 BIT 1,(IX+002H) ; 1E19 JR Z,01E21H ; 1E1D OR 008H ; 1E1F BIT 1,(IY+001H) ; 1E21 JR Z,01E29H ; 1E25 OR 010H ; 1E27 BIT 1,(IX+001H) ; 1E29 JR Z,01E31H ; 1E2D OR 020H ; 1E2F BIT 1,(IY+000H) ; 1E31 JR Z,01E39H ; 1E35 OR 040H ; 1E37 BIT 1,(IX+000H) ; 1E39 JR Z,01E41H ; 1E3D OR 080H ; 1E3F LD (HL),A ; 1E41 INC HL ; 1E42 XOR A ; 1E43 BIT 2,(IY+003H) ; 1E44 JR Z,01E4CH ; 1E48 OR 001H ; 1E4A BIT 2,(IX+003H) ; 1E4C JR Z,01E54H ; 1E50 OR 002H ; 1E52 BIT 2,(IY+002H) ; 1E54 JR Z,01E5CH ; 1E58 OR 004H ; 1E5A BIT 2,(IX+002H) ; 1E5C JR Z,01E64H ; 1E60 OR 008H ; 1E62 BIT 2,(IY+001H) ; 1E64 JR Z,01E6CH ; 1E68 OR 010H ; 1E6A BIT 2,(IX+001H) ; 1E6C JR Z,01E74H ; 1E70 OR 020H ; 1E72 BIT 2,(IY+000H) ; 1E74 JR Z,01E7CH ; 1E78 OR 040H ; 1E7A BIT 2,(IX+000H) ; 1E7C JR Z,01E84H ; 1E80 OR 080H ; 1E82 LD (HL),A ; 1E84 INC HL ; 1E85 XOR A ; 1E86 BIT 3,(IY+003H) ; 1E87 JR Z,01E8FH ; 1E8B OR 001H ; 1E8D BIT 3,(IX+003H) ; 1E8F JR Z,01E97H ; 1E93 OR 002H ; 1E95 BIT 3,(IY+002H) ; 1E97 JR Z,01E9FH ; 1E9B OR 004H ; 1E9D BIT 3,(IX+002H) ; 1E9F JR Z,01EA7H ; 1EA3 OR 008H ; 1EA5 BIT 3,(IY+001H) ; 1EA7 JR Z,01EAFH ; 1EAB OR 010H ; 1EAD BIT 3,(IX+001H) ; 1EAF JR Z,01EB7H ; 1EB3 OR 020H ; 1EB5 BIT 3,(IY+000H) ; 1EB7 JR Z,01EBFH ; 1EBB OR 040H ; 1EBD BIT 3,(IX+000H) ; 1EBF JR Z,01EC7H ; 1EC3 OR 080H ; 1EC5 LD (HL),A ; 1EC7 INC HL ; 1EC8 XOR A ; 1EC9 BIT 4,(IY+003H) ; 1ECA JR Z,01ED2H ; 1ECE OR 001H ; 1ED0 BIT 4,(IX+003H) ; 1ED2 JR Z,01EDAH ; 1ED6 OR 002H ; 1ED8 BIT 4,(IY+002H) ; 1EDA JR Z,01EE2H ; 1EDE OR 004H ; 1EE0 BIT 4,(IX+002H) ; 1EE2 JR Z,01EEAH ; 1EE6 OR 008H ; 1EE8 BIT 4,(IY+001H) ; 1EEA JR Z,01EF2H ; 1EEE OR 010H ; 1EF0 BIT 4,(IX+001H) ; 1EF2 JR Z,01EFAH ; 1EF6 OR 020H ; 1EF8 BIT 4,(IY+000H) ; 1EFA JR Z,01F02H ; 1EFE OR 040H ; 1F00 BIT 4,(IX+000H) ; 1F02 JR Z,01F0AH ; 1F06 OR 080H ; 1F08 LD (HL),A ; 1F0A INC HL ; 1F0B XOR A ; 1F0C BIT 5,(IY+003H) ; 1F0D JR Z,01F15H ; 1F11 OR 001H ; 1F13 BIT 5,(IX+003H) ; 1F15 JR Z,01F1DH ; 1F19 OR 002H ; 1F1B BIT 5,(IY+002H) ; 1F1D JR Z,01F25H ; 1F21 OR 004H ; 1F23 BIT 5,(IX+002H) ; 1F25 JR Z,01F2DH ; 1F29 OR 008H ; 1F2B BIT 5,(IY+001H) ; 1F2D JR Z,01F35H ; 1F31 OR 010H ; 1F33 BIT 5,(IX+001H) ; 1F35 JR Z,01F3DH ; 1F39 OR 020H ; 1F3B BIT 5,(IY+000H) ; 1F3D JR Z,01F45H ; 1F41 OR 040H ; 1F43 BIT 5,(IX+000H) ; 1F45 JR Z,01F4DH ; 1F49 OR 080H ; 1F4B LD (HL),A ; 1F4D INC HL ; 1F4E XOR A ; 1F4F BIT 6,(IY+003H) ; 1F50 JR Z,01F58H ; 1F54 OR 001H ; 1F56 BIT 6,(IX+003H) ; 1F58 JR Z,01F60H ; 1F5C OR 002H ; 1F5E BIT 6,(IY+002H) ; 1F60 JR Z,01F68H ; 1F64 OR 004H ; 1F66 BIT 6,(IX+002H) ; 1F68 JR Z,01F70H ; 1F6C OR 008H ; 1F6E BIT 6,(IY+001H) ; 1F70 JR Z,01F78H ; 1F74 OR 010H ; 1F76 BIT 6,(IX+001H) ; 1F78 JR Z,01F80H ; 1F7C OR 020H ; 1F7E BIT 6,(IY+000H) ; 1F80 JR Z,01F88H ; 1F84 OR 040H ; 1F86 BIT 6,(IX+000H) ; 1F88 JR Z,01F90H ; 1F8C OR 080H ; 1F8E LD (HL),A ; 1F90 INC HL ; 1F91 XOR A ; 1F92 BIT 7,(IY+003H) ; 1F93 JR Z,01F9BH ; 1F97 OR 001H ; 1F99 BIT 7,(IX+003H) ; 1F9B JR Z,01FA3H ; 1F9F OR 002H ; 1FA1 BIT 7,(IY+002H) ; 1FA3 JR Z,01FABH ; 1FA7 OR 004H ; 1FA9 BIT 7,(IX+002H) ; 1FAB JR Z,01FB3H ; 1FAF OR 008H ; 1FB1 BIT 7,(IY+001H) ; 1FB3 JR Z,01FBBH ; 1FB7 OR 010H ; 1FB9 BIT 7,(IX+001H) ; 1FBB JR Z,01FC3H ; 1FBF OR 020H ; 1FC1 BIT 7,(IY+000H) ; 1FC3 JR Z,01FCBH ; 1FC7 OR 040H ; 1FC9 BIT 7,(IX+000H) ; 1FCB JR Z,01FD3H ; 1FCF OR 080H ; 1FD1 LD (HL),A ; 1FD3 RET ; 1FD4 LD A,(IX+000H) ; 1FD5 XOR (HL) ; 1FD8 LD (IX+000H),A ; 1FD9 INC HL ; 1FDC LD A,(IX+001H) ; 1FDD XOR (HL) ; 1FE0 LD (IX+001H),A ; 1FE1 INC HL ; 1FE4 LD A,(IX+002H) ; 1FE5 XOR (HL) ; 1FE8 LD (IX+002H),A ; 1FE9 INC HL ; 1FEC LD A,(IX+003H) ; 1FED XOR (HL) ; 1FF0 LD (IX+003H),A ; 1FF1 INC HL ; 1FF4 LD A,(IX+004H) ; 1FF5 XOR (HL) ; 1FF8 LD (IX+004H),A ; 1FF9 INC HL ; 1FFC LD A,(IX+005H) ; 1FFD XOR (HL) ; 2000 LD (IX+005H),A ; 2001 INC HL ; 2004 LD A,(IX+006H) ; 2005 XOR (HL) ; 2008 LD (IX+006H),A ; 2009 INC HL ; 200C LD A,(IX+007H) ; 200D XOR (HL) ; 2010 LD (IX+007H),A ; 2011 INC HL ; 2014 RET ; 2015 LD IY,0603DH ; 2016 LD BC,02624H ; 201A LD L,(IY+000H) ; 201D LD H,000H ; 2020 ADD HL,BC ; 2022 LD A,(HL) ; 2023 AND 0F0H ; 2024 LD B,A ; 2026 PUSH BC ; 2027 LD BC,02624H ; 2028 LD L,(IY+001H) ; 202B LD H,000H ; 202E ADD HL,BC ; 2030 LD A,(HL) ; 2031 AND 00FH ; 2032 POP BC ; 2034 OR B ; 2035 LD (IY+000H),A ; 2036 LD BC,02664H ; 2039 LD L,(IY+002H) ; 203C LD H,000H ; 203F ADD HL,BC ; 2041 LD A,(HL) ; 2042 AND 0F0H ; 2043 LD B,A ; 2045 PUSH BC ; 2046 LD BC,02664H ; 2047 LD L,(IY+003H) ; 204A LD H,000H ; 204D ADD HL,BC ; 204F LD A,(HL) ; 2050 AND 00FH ; 2051 POP BC ; 2053 OR B ; 2054 LD (IY+001H),A ; 2055 LD BC,026A4H ; 2058 LD L,(IY+004H) ; 205B LD H,000H ; 205E ADD HL,BC ; 2060 LD A,(HL) ; 2061 AND 0F0H ; 2062 LD B,A ; 2064 PUSH BC ; 2065 LD BC,026A4H ; 2066 LD L,(IY+005H) ; 2069 LD H,000H ; 206C ADD HL,BC ; 206E LD A,(HL) ; 206F AND 00FH ; 2070 POP BC ; 2072 OR B ; 2073 LD (IY+002H),A ; 2074 LD BC,026E4H ; 2077 LD L,(IY+006H) ; 207A LD H,000H ; 207D ADD HL,BC ; 207F LD A,(HL) ; 2080 AND 0F0H ; 2081 LD B,A ; 2083 PUSH BC ; 2084 LD BC,026E4H ; 2085 LD L,(IY+007H) ; 2088 LD H,000H ; 208B ADD HL,BC ; 208D LD A,(HL) ; 208E AND 00FH ; 208F POP BC ; 2091 OR B ; 2092 LD (IY+003H),A ; 2093 RET ; 2096 LD IX,0603DH ; 2097 XOR A ; 209B BIT 7,(IX+002H) ; 209C JR Z,020A4H ; 20A0 OR 001H ; 20A2 BIT 4,(IX+003H) ; 20A4 JR Z,020ACH ; 20A8 OR 002H ; 20AA BIT 4,(IX+001H) ; 20AC JR Z,020B4H ; 20B0 OR 004H ; 20B2 BIT 3,(IX+003H) ; 20B4 JR Z,020BCH ; 20B8 OR 008H ; 20BA BIT 3,(IX+002H) ; 20BC JR Z,020C4H ; 20C0 OR 010H ; 20C2 BIT 4,(IX+002H) ; 20C4 JR Z,020CCH ; 20C8 OR 020H ; 20CA BIT 1,(IX+000H) ; 20CC JR Z,020D4H ; 20D0 OR 040H ; 20D2 BIT 0,(IX+001H) ; 20D4 JR Z,020DCH ; 20D8 OR 080H ; 20DA LD (IX+004H),A ; 20DC XOR A ; 20DF BIT 6,(IX+001H) ; 20E0 JR Z,020E8H ; 20E4 OR 001H ; 20E6 BIT 1,(IX+003H) ; 20E8 JR Z,020F0H ; 20EC OR 002H ; 20EE BIT 6,(IX+002H) ; 20F0 JR Z,020F8H ; 20F4 OR 004H ; 20F6 BIT 3,(IX+000H) ; 20F8 JR Z,02100H ; 20FC OR 008H ; 20FE BIT 6,(IX+003H) ; 2100 JR Z,02108H ; 2104 OR 010H ; 2106 BIT 1,(IX+002H) ; 2108 JR Z,02110H ; 210C OR 020H ; 210E BIT 1,(IX+001H) ; 2110 JR Z,02118H ; 2114 OR 040H ; 2116 BIT 7,(IX+000H) ; 2118 JR Z,02120H ; 211C OR 080H ; 211E LD (IX+005H),A ; 2120 XOR A ; 2123 BIT 7,(IX+001H) ; 2124 JR Z,0212CH ; 2128 OR 001H ; 212A BIT 5,(IX+000H) ; 212C JR Z,02134H ; 2130 OR 002H ; 2132 BIT 5,(IX+003H) ; 2134 JR Z,0213CH ; 2138 OR 004H ; 213A BIT 0,(IX+003H) ; 213C JR Z,02144H ; 2140 OR 008H ; 2142 BIT 2,(IX+001H) ; 2144 JR Z,0214CH ; 2148 OR 010H ; 214A BIT 0,(IX+002H) ; 214C JR Z,02154H ; 2150 OR 020H ; 2152 BIT 0,(IX+000H) ; 2154 JR Z,0215CH ; 2158 OR 040H ; 215A BIT 6,(IX+000H) ; 215C JR Z,02164H ; 2160 OR 080H ; 2162 LD (IX+006H),A ; 2164 XOR A ; 2167 BIT 7,(IX+003H) ; 2168 JR Z,02170H ; 216C OR 001H ; 216E BIT 4,(IX+000H) ; 2170 JR Z,02178H ; 2174 OR 002H ; 2176 BIT 5,(IX+001H) ; 2178 JR Z,02180H ; 217C OR 004H ; 217E BIT 2,(IX+002H) ; 2180 JR Z,02188H ; 2184 OR 008H ; 2186 BIT 2,(IX+000H) ; 2188 JR Z,02190H ; 218C OR 010H ; 218E BIT 2,(IX+003H) ; 2190 JR Z,02198H ; 2194 OR 020H ; 2196 BIT 3,(IX+001H) ; 2198 JR Z,021A0H ; 219C OR 040H ; 219E BIT 5,(IX+002H) ; 21A0 JR Z,021A8H ; 21A4 OR 080H ; 21A6 LD (IX+007H),A ; 21A8 RET ; 21AB LD IX,0603DH ; 21AC LD IY,06035H ; 21B0 LD HL,06039H ; 21B4 LD A,(IX+004H) ; 21B7 XOR (IY+000H) ; 21BA LD (IX+004H),A ; 21BD LD A,(IX+005H) ; 21C0 XOR (IY+001H) ; 21C3 LD (IX+005H),A ; 21C6 LD A,(IX+006H) ; 21C9 XOR (IY+002H) ; 21CC LD (IX+006H),A ; 21CF LD A,(IX+007H) ; 21D2 XOR (IY+003H) ; 21D5 LD (IX+007H),A ; 21D8 LD A,(HL) ; 21DB LD (IY+000H),A ; 21DC LD A,(IX+004H) ; 21DF LD (HL),A ; 21E2 INC HL ; 21E3 LD A,(HL) ; 21E4 LD (IY+001H),A ; 21E5 LD A,(IX+005H) ; 21E8 LD (HL),A ; 21EB INC HL ; 21EC LD A,(HL) ; 21ED LD (IY+002H),A ; 21EE LD A,(IX+006H) ; 21F1 LD (HL),A ; 21F4 INC HL ; 21F5 LD A,(HL) ; 21F6 LD (IY+003H),A ; 21F7 LD A,(IX+007H) ; 21FA LD (HL),A ; 21FD INC HL ; 21FE RET ; 21FF XOR A ; 2200 LD (06033H),A ; 2201 LD (06034H),A ; 2204 CALL 0222BH ; 2207 Decode Memory ¿¿¿??? LD B,010H ; 220A LD IY,0604DH ; 220C PUSH BC ; 2210 PUSH IY ; 2211 CALL 02418H ; 2213 Decode Memory ¿¿¿??? CALL 0246FH ; 2216 Decode Memory ¿¿¿??? LD DE,00008H ; 2219 POP IY ; 221C ADD IY,DE ; 221E LD A,(06033H) ; 2220 INC A ; 2223 LD (06033H),A ; 2224 POP BC ; 2227 DJNZ 02210H ; 2228 RET ; 222A LD IX,(06031H) ; 222B LD IY,06045H ; 222F XOR A ; 2233 BIT 7,(IX+000H) ; 2234 JR Z,0223CH ; 2238 OR 001H ; 223A BIT 7,(IX+001H) ; 223C JR Z,02244H ; 2240 OR 002H ; 2242 BIT 7,(IX+002H) ; 2244 JR Z,0224CH ; 2248 OR 004H ; 224A BIT 7,(IX+003H) ; 224C JR Z,02254H ; 2250 OR 008H ; 2252 BIT 7,(IX+004H) ; 2254 JR Z,0225CH ; 2258 OR 010H ; 225A BIT 7,(IX+005H) ; 225C JR Z,02264H ; 2260 OR 020H ; 2262 BIT 7,(IX+006H) ; 2264 JR Z,0226CH ; 2268 OR 040H ; 226A BIT 7,(IX+007H) ; 226C JR Z,02274H ; 2270 OR 080H ; 2272 LD (IY+000H),A ; 2274 XOR A ; 2277 BIT 6,(IX+000H) ; 2278 JR Z,02280H ; 227C OR 001H ; 227E BIT 6,(IX+001H) ; 2280 JR Z,02288H ; 2284 OR 002H ; 2286 BIT 6,(IX+002H) ; 2288 JR Z,02290H ; 228C OR 004H ; 228E BIT 6,(IX+003H) ; 2290 JR Z,02298H ; 2294 OR 008H ; 2296 BIT 6,(IX+004H) ; 2298 JR Z,022A0H ; 229C OR 010H ; 229E BIT 6,(IX+005H) ; 22A0 JR Z,022A8H ; 22A4 OR 020H ; 22A6 BIT 6,(IX+006H) ; 22A8 JR Z,022B0H ; 22AC OR 040H ; 22AE BIT 6,(IX+007H) ; 22B0 JR Z,022B8H ; 22B4 OR 080H ; 22B6 LD (IY+001H),A ; 22B8 XOR A ; 22BB BIT 5,(IX+000H) ; 22BC JR Z,022C4H ; 22C0 OR 001H ; 22C2 BIT 5,(IX+001H) ; 22C4 JR Z,022CCH ; 22C8 OR 002H ; 22CA BIT 5,(IX+002H) ; 22CC JR Z,022D4H ; 22D0 OR 004H ; 22D2 BIT 5,(IX+003H) ; 22D4 JR Z,022DCH ; 22D8 OR 008H ; 22DA BIT 5,(IX+004H) ; 22DC JR Z,022E4H ; 22E0 OR 010H ; 22E2 BIT 5,(IX+005H) ; 22E4 JR Z,022ECH ; 22E8 OR 020H ; 22EA BIT 5,(IX+006H) ; 22EC JR Z,022F4H ; 22F0 OR 040H ; 22F2 BIT 5,(IX+007H) ; 22F4 JR Z,022FCH ; 22F8 OR 080H ; 22FA LD (IY+002H),A ; 22FC XOR A ; 22FF BIT 4,(IX+004H) ; 2300 JR Z,02308H ; 2304 OR 010H ; 2306 BIT 4,(IX+005H) ; 2308 JR Z,02310H ; 230C OR 020H ; 230E BIT 4,(IX+006H) ; 2310 JR Z,02318H ; 2314 OR 040H ; 2316 BIT 4,(IX+007H) ; 2318 JR Z,02320H ; 231C OR 080H ; 231E LD (IY+003H),A ; 2320 LD IY,06049H ; 2323 XOR A ; 2327 BIT 1,(IX+000H) ; 2328 JR Z,02330H ; 232C OR 001H ; 232E BIT 1,(IX+001H) ; 2330 JR Z,02338H ; 2334 OR 002H ; 2336 BIT 1,(IX+002H) ; 2338 JR Z,02340H ; 233C OR 004H ; 233E BIT 1,(IX+003H) ; 2340 JR Z,02348H ; 2344 OR 008H ; 2346 BIT 1,(IX+004H) ; 2348 JR Z,02350H ; 234C OR 010H ; 234E BIT 1,(IX+005H) ; 2350 JR Z,02358H ; 2354 OR 020H ; 2356 BIT 1,(IX+006H) ; 2358 JR Z,02360H ; 235C OR 040H ; 235E BIT 1,(IX+007H) ; 2360 JR Z,02368H ; 2364 OR 080H ; 2366 LD (IY+000H),A ; 2368 XOR A ; 236B BIT 2,(IX+000H) ; 236C JR Z,02374H ; 2370 OR 001H ; 2372 BIT 2,(IX+001H) ; 2374 JR Z,0237CH ; 2378 OR 002H ; 237A BIT 2,(IX+002H) ; 237C JR Z,02384H ; 2380 OR 004H ; 2382 BIT 2,(IX+003H) ; 2384 JR Z,0238CH ; 2388 OR 008H ; 238A BIT 2,(IX+004H) ; 238C JR Z,02394H ; 2390 OR 010H ; 2392 BIT 2,(IX+005H) ; 2394 JR Z,0239CH ; 2398 OR 020H ; 239A BIT 2,(IX+006H) ; 239C JR Z,023A4H ; 23A0 OR 040H ; 23A2 BIT 2,(IX+007H) ; 23A4 JR Z,023ACH ; 23A8 OR 080H ; 23AA LD (IY+001H),A ; 23AC XOR A ; 23AF BIT 3,(IX+000H) ; 23B0 JR Z,023B8H ; 23B4 OR 001H ; 23B6 BIT 3,(IX+001H) ; 23B8 JR Z,023C0H ; 23BC OR 002H ; 23BE BIT 3,(IX+002H) ; 23C0 JR Z,023C8H ; 23C4 OR 004H ; 23C6 BIT 3,(IX+003H) ; 23C8 JR Z,023D0H ; 23CC OR 008H ; 23CE BIT 3,(IX+004H) ; 23D0 JR Z,023D8H ; 23D4 OR 010H ; 23D6 BIT 3,(IX+005H) ; 23D8 JR Z,023E0H ; 23DC OR 020H ; 23DE BIT 3,(IX+006H) ; 23E0 JR Z,023E8H ; 23E4 OR 040H ; 23E6 BIT 3,(IX+007H) ; 23E8 JR Z,023F0H ; 23EC OR 080H ; 23EE LD (IY+002H),A ; 23F0 XOR A ; 23F3 BIT 4,(IX+000H) ; 23F4 JR Z,023FCH ; 23F8 OR 010H ; 23FA BIT 4,(IX+001H) ; 23FC JR Z,02404H ; 2400 OR 020H ; 2402 BIT 4,(IX+002H) ; 2404 JR Z,0240CH ; 2408 OR 040H ; 240A BIT 4,(IX+003H) ; 240C JR Z,02414H ; 2410 OR 080H ; 2412 LD (IY+003H),A ; 2414 RET ; 2417 LD HL,02724H ; 2418 LD DE,(06033H) ; 241B ADD HL,DE ; 241F LD C,(HL) ; 2420 LD IX,06045H ; 2421 CALL 02434H ; 2425 LD IX,06049H ; 2428 CALL 02434H ; 242C DEC C ; 242F JP NZ,02421H ; 2430 RET ; 2433 BIT 7,(IX+000H) ; 2434 JR Z,02440H ; 2438 SET 3,(IX+003H) ; 243A JR 02444H ; 243E RES 3,(IX+003H) ; 2440 LD B,003H ; 2444 SLA (IX+000H) ; 2446 BIT 7,(IX+001H) ; 244A JR Z,0245AH ; 244E SET 0,(IX+000H) ; 2450 INC IX ; 2454 DJNZ 02446H ; 2456 JR 02462H ; 2458 RES 0,(IX+000H) ; 245A INC IX ; 245E DJNZ 02446H ; 2460 SLA (IX+000H) ; 2462 LD A,(IX+000H) ; 2466 AND 0F0H ; 2469 LD (IX+000H),A ; 246B RET ; 246E LD IX,06045H ; 246F XOR A ; 2473 BIT 3,(IX+000H) ; 2474 JR Z,0247CH ; 2478 OR 001H ; 247A BIT 7,(IX+000H) ; 247C JR Z,02484H ; 2480 OR 002H ; 2482 BIT 0,(IX+002H) ; 2484 JR Z,0248CH ; 2488 OR 004H ; 248A BIT 5,(IX+001H) ; 248C JR Z,02494H ; 2490 OR 008H ; 2492 BIT 7,(IX+002H) ; 2494 JR Z,0249CH ; 2498 OR 010H ; 249A BIT 2,(IX+001H) ; 249C JR Z,024A4H ; 24A0 OR 020H ; 24A2 LD (IY+000H),A ; 24A4 XOR A ; 24A7 BIT 6,(IX+001H) ; 24A8 JR Z,024B0H ; 24AC OR 001H ; 24AE BIT 3,(IX+002H) ; 24B0 JR Z,024B8H ; 24B4 OR 002H ; 24B6 BIT 2,(IX+000H) ; 24B8 JR Z,024C0H ; 24BC OR 004H ; 24BE BIT 1,(IX+001H) ; 24C0 JR Z,024C8H ; 24C4 OR 008H ; 24C6 BIT 4,(IX+003H) ; 24C8 JR Z,024D0H ; 24CC OR 010H ; 24CE BIT 5,(IX+000H) ; 24D0 JR Z,024D8H ; 24D4 OR 020H ; 24D6 LD (IY+001H),A ; 24D8 XOR A ; 24DB BIT 0,(IX+000H) ; 24DC JR Z,024E4H ; 24E0 OR 001H ; 24E2 BIT 6,(IX+003H) ; 24E4 JR Z,024ECH ; 24E8 OR 002H ; 24EA BIT 4,(IX+000H) ; 24EC JR Z,024F4H ; 24F0 OR 004H ; 24F2 BIT 4,(IX+001H) ; 24F4 JR Z,024FCH ; 24F8 OR 008H ; 24FA BIT 5,(IX+002H) ; 24FC JR Z,02504H ; 2500 OR 010H ; 2502 BIT 1,(IX+002H) ; 2504 JR Z,0250CH ; 2508 OR 020H ; 250A LD (IY+002H),A ; 250C XOR A ; 250F BIT 6,(IX+000H) ; 2510 JR Z,02518H ; 2514 OR 001H ; 2516 BIT 3,(IX+001H) ; 2518 JR Z,02520H ; 251C OR 002H ; 251E BIT 4,(IX+002H) ; 2520 JR Z,02528H ; 2524 OR 004H ; 2526 BIT 5,(IX+003H) ; 2528 JR Z,02530H ; 252C OR 008H ; 252E BIT 1,(IX+000H) ; 2530 JR Z,02538H ; 2534 OR 010H ; 2536 BIT 0,(IX+001H) ; 2538 JR Z,02540H ; 253C OR 020H ; 253E LD (IY+003H),A ; 2540 XOR A ; 2543 BIT 5,(IX+007H) ; 2544 JR Z,0254CH ; 2548 OR 001H ; 254A BIT 5,(IX+006H) ; 254C JR Z,02554H ; 2550 OR 002H ; 2552 BIT 7,(IX+005H) ; 2554 JR Z,0255CH ; 2558 OR 004H ; 255A BIT 5,(IX+004H) ; 255C JR Z,02564H ; 2560 OR 008H ; 2562 BIT 0,(IX+006H) ; 2564 JR Z,0256CH ; 2568 OR 010H ; 256A BIT 3,(IX+005H) ; 256C JR Z,02574H ; 2570 OR 020H ; 2572 LD (IY+004H),A ; 2574 XOR A ; 2577 BIT 4,(IX+006H) ; 2578 JR Z,02580H ; 257C OR 001H ; 257E BIT 3,(IX+004H) ; 2580 JR Z,02588H ; 2584 OR 002H ; 2586 BIT 7,(IX+006H) ; 2588 JR Z,02590H ; 258C OR 004H ; 258E BIT 1,(IX+006H) ; 2590 JR Z,02598H ; 2594 OR 008H ; 2596 BIT 4,(IX+005H) ; 2598 JR Z,025A0H ; 259C OR 010H ; 259E BIT 6,(IX+004H) ; 25A0 JR Z,025A8H ; 25A4 OR 020H ; 25A6 LD (IY+005H),A ; 25A8 XOR A ; 25AB BIT 7,(IX+007H) ; 25AC JR Z,025B4H ; 25B0 OR 001H ; 25B2 BIT 2,(IX+004H) ; 25B4 JR Z,025BCH ; 25B8 OR 002H ; 25BA BIT 4,(IX+007H) ; 25BC JR Z,025C4H ; 25C0 OR 004H ; 25C2 BIT 5,(IX+005H) ; 25C4 JR Z,025CCH ; 25C8 OR 008H ; 25CA BIT 3,(IX+006H) ; 25CC JR Z,025D4H ; 25D0 OR 010H ; 25D2 BIT 0,(IX+005H) ; 25D4 JR Z,025DCH ; 25D8 OR 020H ; 25DA LD (IY+006H),A ; 25DC XOR A ; 25DF BIT 4,(IX+004H) ; 25E0 JR Z,025E8H ; 235E4 OR 001H ; 25E6 BIT 7,(IX+004H) ; 25E8 JR Z,025F0H ; 25EC OR 002H ; 25EE BIT 0,(IX+004H) ; 25F0 JR Z,025F8H ; 25F4 OR 004H ; 25F6 BIT 2,(IX+006H) ; 25F8 JR Z,02600H ; 25FC OR 008H ; 25FE BIT 2,(IX+005H) ; 2600 JR Z,02608H ; 2604 OR 010H ; 2606 BIT 6,(IX+006H) ; 2608 JR Z,02610H ; 260C OR 020H ; 260E LD (IY+007H),A ; 2610 RET ; 2613 251C:2710 DD 23 10 EE-18 08 DD CB 00 86 DD 23 .#.........# 251C:2720 10 E4 DD CB 00 26 DD 7E-00 E6 F0 DD 77 00 C9 DD .....&.~....w... 251C:2730 21 45 60 AF DD CB 00 5E-28 02 F6 01 DD CB 00 7E !E`....^(......~ 251C:2740 28 02 F6 02 DD CB 02 46-28 02 F6 04 DD CB 01 6E (......F(......n 251C:2750 28 02 F6 08 DD CB 02 7E-28 02 F6 10 DD CB 01 56 (......~(......V 251C:2760 28 02 F6 20 FD 77 00 AF-DD CB 01 76 28 02 F6 01 (.. .w.....v(... 251C:2770 DD CB 02 5E 28 02 F6 02-DD CB 00 56 28 02 F6 04 ...^(......V(... 251C:2780 DD CB 01 4E 28 02 F6 08-DD CB 03 66 28 02 F6 10 ...N(......f(... 251C:2790 DD CB 00 6E 28 02 F6 20-FD 77 01 AF DD CB 00 46 ...n(.. .w.....F 251C:27A0 28 02 F6 01 DD CB 03 76-28 02 F6 02 DD CB 00 66 (......v(......f 251C:27B0 28 02 F6 04 DD CB 01 66-28 02 F6 08 DD CB 02 6E (......f(......n 251C:27C0 28 02 F6 10 DD CB 02 4E-28 02 F6 20 FD 77 02 AF (......N(.. .w.. 251C:27D0 DD CB 00 76 28 02 F6 01-DD CB 01 5E 28 02 F6 02 ...v(......^(... 251C:27E0 DD CB 02 66 28 02 F6 04-DD CB 03 6E 28 02 F6 08 ...f(......n(... 251C:27F0 DD CB 00 4E 28 02 F6 10-DD CB 01 46 28 02 F6 20 ...N(......F(.. 251C:2800 FD 77 03 AF DD CB 07 6E-28 02 F6 01 DD CB 06 6E .w.....n(......n 251C:2810 28 02 F6 02 DD CB 05 7E-28 02 F6 04 DD CB 04 6E (......~(......n 251C:2820 28 02 F6 08 DD CB 06 46-28 02 F6 10 DD CB 05 5E (......F(......^ 251C:2830 28 02 F6 20 FD 77 04 AF-DD CB 06 66 28 02 F6 01 (.. .w.....f(... 251C:2840 DD CB 04 5E 28 02 F6 02-DD CB 06 7E 28 02 F6 04 ...^(......~(... 251C:2850 DD CB 06 4E 28 02 F6 08-DD ...N(.... CALL 03BE7H ; 2758 Turn Off DTMF Tone & Output CALL 03B98H ; 275B (P40.6) = 1 CALL 03B8FH ; 275E (P41.3) = 0 (Cuelga) LD A,(0642EH) ; 2761 CP 000H ; 2764 JP Z,02812H ; 2766 LD A,(065CDH) ; 2769 OR A ; 276C JP NZ,02812H ; 276D LD A,(06448H) ; 2770 OR A ; 2773 CALL NZ,00BB8H ; 2774 Write ' | RETIRE TARJETA' LD A,(0642BH) ; 2777 Timer 6W CP 020H ; 277A JR C,0278DH ; 277C LD A,(065CDH) ; 277E OR A ; 2781 JP NZ,02812H ; 2782 CALL 00BB8H ; 2785 Write ' | RETIRE TARJETA' CALL 03BB3H ; 2788 Espera IRQ y vuelve JR 02777H ; 278B CALL 0138AH ; 278D CALL 03C9EH ; 2790 CALL 028B7H ; 2793 LD A,(0644AH) ; 2796 OR A ; 2799 CALL NZ,00C4DH ; 279A Write 'CIERRE LA PUERTA' CALL 00D28H ; 279D Borra la linea de abajo LD A,(065CDH) ; 27A0 OR A ; 27A3 JR NZ,02812H ; 27A4 LD A,(0644AH) ; 27A6 OR A ; 27A9 JR Z,027B7H ; 27AA CALL 03BB3H ; 27AC HALT y Vuelve CALL 03DA3H ; 27AF Get Key Pressed Carry On Error CALL NC,00D9BH ; 27B2 Refresca el Display JR 027A0H ; 27B5 LD A,(0642CH) ; 27B7 RES 6,A ; 27BA LD (0642CH),A ; 27BC LD A,(0642CH) ; 27BF RES 1,A ; 27C2 LD (0642CH),A ; 27C4 CALL 028B7H ; 27C7 CALL 00D15H ; 27CA Actualiza los Pulsos en el Display LD A,(06449H) ; 27CD OR A ; 27D0 CALL NZ,00B0DH ; 27D1 Write 'la misma linea| CUELGUE' LD A,(065CDH) ; 27D4 OR A ; 27D7 JR NZ,02812H ; 27D8 LD A,(0644AH) ; 27DA OR A ; 27DD JR Z,027EBH ; 27DE CALL 028B7H ; 27E0 CALL 00C4DH ; 27E3 Write 'CIERRE LA PUERTA' CALL 00D28H ; 27E6 Borra la linea de abajo JR 027A0H ; 27E9 LD A,(06449H) ; 27EB OR A ; 27EE JR Z,027FCH ; 27EF CALL 03BB3H ; 27F1 Espera IRQ y vuelve CALL 03DA3H ; 27F4 Get Key Pressed Carry On Error CALL NC,00D9BH ; 27F7 Refresca el Display JR 027D4H ; 27FA CALL 00B5FH ; 27FC Write 'ESPERE POR FAVOR' LD A,(065E4H) ; 27FF OR A ; 2802 JR Z,0280CH ; 2803 LD BC,04343H ; 2805 LD (065B8H),BC ; 2808 (65B8) = 'CC' CALL 0284CH ; 280C CALL 028B7H ; 280F LD A,(065C1H) ; 2812 Buffer #7 Counter OR A ; 2815 JR NZ,02812H ; 2816 LD A,(065CDH) ; 2818 PUSH AF ; 281B LD A,(065D1H) ; 281C PUSH AF ; 281F CALL 029D6H ; 2820 Init Buffers & Idioma DI ; 2823 CALL 029FBH ; 2824 Init Buffer Counters & Head-Tail Ptrs EI ; 2827 POP AF ; 2828 LD (065D1H),A ; 2829 POP AF ; 282C LD (065CDH),A ; 282D CALL 01A6EH ; 2830 LD A,002H ; 2833 LD (0644BH),A ; 2835 RET ; 2838 LD DE,00002H ; 2839 LD B,008H ; 283C RRA ; 283E JR C,02844H ; 283F ADD HL,DE ; 2841 DJNZ 0283EH ; 2842 LD C,(HL) ; 2844 INC HL ; 2845 LD B,(HL) ; 2846 LD (065B8H),BC ; 2847 RET ; 284B LD A,(0642EH) ; 284C OR A ; 284F JR Z,0289EH ; 2850 LD HL,02734H ; 2852 LD A,(0642CH) ; 2855 AND 010H ; 2858 JR NZ,02866H ; 285A LD HL,02746H ; 285C LD A,(0642DH) ; 285F AND 004H ; 2862 JR Z,02870H ; 2864 CALL 02839H ; 2866 LD A,008H ; 2869 LD (0642EH),A ; 286B JR 02893H ; 286E LD HL,02734H ; 2870 LD A,(0642CH) ; 2873 AND 0CAH ; 2876 JR NZ,02884H ; 2878 LD HL,02746H ; 287A LD A,(0642DH) ; 287D AND 01AH ; 2880 JR Z,0288EH ; 2882 CALL 02839H ; 2884 LD A,004H ; 2887 LD (0642EH),A ; 2889 JR 02893H ; 288C LD A,002H ; 288E LD (0642EH),A ; 2890 LD DE,0642FH ; 2893 LD BC,00003H ; 2896 LD HL,0642CH ; 2899 LDIR ; 289C RET ; 289E LD A,(065D1H) ; 289F OR A ; 28A2 JR NZ,028B6H ; 28A3 LD B,003H ; 28A5 LD HL,0642CH ; 28A7 LD DE,06432H ; 28AA LD C,(HL) ; 28AD LD A,(DE) ; 28AE XOR C ; 28AF JR NZ,028B6H ; 28B0 INC HL ; 28B2 INC DE ; 28B3 DJNZ 028ADH ; 28B4 RET ; 28B6 DI ; 28B7 CALL 0289FH ; 28B8 JR Z,028C6H ; 28BB CALL 0284CH ; 28BD EI ; 28C0 LD A,001H ; 28C1 LD (065D1H),A ; 28C3 EI ; 28C6 RET ; 28C7 ; Subrutina llamada desde la primer linea de maIn() LD B,0FFH ; 28C8 LD C,0D2H ; 28CA CALL 02A6EH ; 28CC OUT (0Ah),66 OUT (D2h),FFh LD C,0D3H ; 28CF CALL 02A6EH ; 28D1 OUT (0Ah),66 OUT (D3h),FFh LD B,001H ; 28D4 LD C,0C9H ; 28D6 CALL 02A6EH ; 28D8 OUT (0Ah),66 OUT (C9h),01h LD B,000H ; 28DB LD C,0D1H ; 28DD CALL 02A6EH ; 28DF OUT (0Ah),66 OUT (D1h),00h IN A,(0D0H) ; 28E2 INC B ; 28E4 LD C,0D6H ; 28E5 CALL 02A6EH ; 28E7 OUT (0Ah),66 OUT (D6h),01h DEC B ; 28EA LD C,0C7H ; 28EB CALL 02A6EH ; 28ED OUT (0Ah),66 OUT (C7h),00h DEC C ; 28F0 CALL 02A6EH ; 28F1 OUT (0Ah),66 OUT (C6h),00h DEC C ; 28F4 CALL 02A6EH ; 28F5 OUT (0Ah),66 OUT (C5h),00h DEC C ; 28F8 CALL 02A6EH ; 28F9 OUT (0Ah),66 OUT (C4h),00h DEC C ; 28FC CALL 02A6EH ; 28FD OUT (0Ah),66 OUT (C3h),00h LD B,0FFH ; 2900 LD C,0D5H ; 2902 CALL 02A6EH ; 2904 OUT (0Ah),66 OUT (D5h),FFh LD B,020H ; 2907 LD C,0D1H ; 2909 CALL 02A6EH ; 290B OUT (0Ah),66 OUT (D1h),20h LD A,0FFH ; 290E OUT (000H),A ; 2910 Port de la matriz del teclado OUT (060H),A ; 2912 Out (60h),FFh LD A,0C0H ; 2914 CALL 03CCDH ; 2916 Out (40h),Bit 5 de A=Bit 1 de In(42h) LD A,036H ; 2919 OUT (065H),A ; 291B Out (65h),36h LD A,018H ; 291D OUT (045H),A ; 291F Out (45h),18h LD A,040H ; 2921 OUT (061H),A ; 2923 Out (61h),40h XOR A ; 2925 OUT (002H),A ; 2926 Out (02h),0 OUT (062H),A ; 2928 Out (62h),0 OUT (067H),A ; 292A Out (67h),0 OUT (047H),A ; 292C Out (47h),0 OUT (080H),A ; 292E Out (80h),0 LD A,080H ; 2930 OUT (041H),A ; 2932 Out (41h),80h LD A,0FFH ; 2934 OUT (063H),A ; 2936 Out (63h),FFh OUT (043H),A ; 2938 Out (43h),FFh OUT (064H),A ; 293A Out (64h),FFh OUT (044H),A ; 293C Out (44h),FFh XOR A ; 293E OUT (046H),A ; 293F Out (46h),0 IN A,(045H) ; 2941 In (45h) XOR A ; 2943 OUT (000H),A ; 2944 Port de la Matriz del Teclado OUT (004H),A ; 2946 OUT (006H),A ; 2948 OUT (008H),A ; 294A IN A,(020H) ; 294C IN A,(028H) ; 294E OUT (00CH),A ; 2950 LD HL,06679H ; 2952 LD BC,061CDH ; 2955 XOR A ; 2958 SBC HL,BC ; 2959 LD DE,00000H ; 295B XOR A ; 295E OUT (00CH),A ; 295F LD (BC),A ; 2961 INC BC ; 2962 DEC HL ; 2963 LD A,H ; 2964 OR L ; 2965 JR NZ,0295EH ; 2966 Llena 61CD-6679 con 0 LD A,000H ; 2968 LD I,A ; 296A IM 2 ; 296C CALL 00D37H ; 296E Init Display CALL 00B5FH ; 2971 Write 'ESPERE POR FAVOR' CALL 01A45H ; 2974 Decode Memory ¿¿¿??? ROM -> RAM RET ; 2977 IN A,(002H) ; 2978 SET 5,A ; 297A SET 6,A ; 297C OUT (002H),A ; 297E (P02.5)=1 (P02.6)=1 LD B,004H ; 2980 LD C,0D1H ; 2982 CALL 02A6EH ; 2984 (P0A)=6h6 (PD1)=04h IN A,(0D0H) ; 2987 LD A,084H ; 2989 OUT (063H),A ; 298B (P63)=84h OUT (064H),A ; 298D (P64)=84h IN A,(064H) ; 298F LD (06677H),A ; 2991 (6677h)=(P64) LD A,01FH ; 2994 OUT (043H),A ; 2996 (P43)=1Fh OUT (044H),A ; 2998 (P44)=1Fh IN A,(044H) ; 299A LD (06678H),A ; 299C (6678h)=(P44) CALL 03C97H ; 299F ZeroF = !(P44h.6) JR Z,029A9H ; 29A2 LD A,001H ; 29A4 LD (06449H),A ; 29A6 (6449h)=1 if (P44.6)==1 IN A,(044H) ; 29A9 AND 020H ; 29AB JR NZ,029B4H ; 29AD LD A,001H ; 29AF LD (0644AH),A ; 29B1 (644Ah)=1 if (P44.5)==0 CALL 03C90H ; 29B4 ZeroF = !(P64h.4) JR NZ,029BEH ; 29B7 LD A,001H ; 29B9 LD (06448H),A ; 29BB (6448h)=1 if (P64.4)==1 IN A,(064H) ; 29BE AND 040H ; 29C0 JR NZ,029CCH ; 29C2 LD A,(0642CH) ; 29C4 SET 7,A ; 29C7 LD (0642CH),A ; 29C9 (642C.7)=1 if (P64.6)==0 LD HL,01645H ; 29CC LD (06429H),HL ; 29CF Fuera de servicio Timer = 1645h = 5701d CALL 03702H ; 29D2 Scan Keyboard, if Pressed Play & Push Key RET ; 29D5 ; Segunda rutina llamada desde Main(), tambien se llama desde un lado + ; Inicializa los Buffer Counter a 0 ; Inicializa el Next Avail Byte & Next Free Slot de cada buffer a ; BuffHead y BuffHead+1 ; Inicializa el Offset a sumar para el idioma a Castellano ; Inicializa el Codigo de Idioma a Castellano ; Llena con ceros el area 65BAh-6653h LD HL,06653H ; 29D6 LD BC,065BAH ; 29D9 Buffer #1 Counter XOR A ; 29DC SBC HL,BC ; 29DD LD DE,00000H ; 29DF XOR A ; 29E2 OUT (00CH),A ; 29E3 LD (BC),A ; 29E5 INC BC ; 29E6 DEC HL ; 29E7 Llena con ceros el area 65BAh-6653h y LD A,H ; 29E8 manda al port (0Ch) tantos 0 como bytes OR L ; 29E9 hay en ese area. JR NZ,029E2H ; 29EA CALL 029FBH ; 29EC Init Buffer Counters & Head-Tail Ptrs LD HL,00000H ; 29EF LD (06650H),HL ; 29F2 Offset Para Cada Idioma = 0 Castellano LD A,000H ; 29F5 LD (06652H),A ; 29F7 Codigo de Idioma RET ; 29FA XOR A ; 29FB LD HL,065BAH ; 29FC Buffer #1 Counter LD B,018H ; 29FF LD (HL),A ; 2A01 Buffer #1 Counter = 0 INC HL ; 2A02 DJNZ 02A01H ; 2A03 Pone todos los Buffer Counters a 0 LD HL,061CDH ; 2A05 Buffer #1 Head LD (061DFH),HL ; 2A08 INC HL ; 2A0B LD (061DDH),HL ; 2A0C LD HL,061E1H ; 2A0F Buffer #2 Head (Numero Marcado) LD (061F7H),HL ; 2A12 INC HL ; 2A15 LD (061F5H),HL ; 2A16 LD HL,0623DH ; 2A19 Buffer #6 Head LD (0627FH),HL ; 2A1C INC HL ; 2A1F LD (0627DH),HL ; 2A20 LD HL,061F9H ; 2A23 Buffer #5 Head LD (0623BH),HL ; 2A26 INC HL ; 2A29 LD (06239H),HL ; 2A2A LD HL,06305H ; 2A2D Buffer #4 Head LD (06387H),HL ; 2A30 INC HL ; 2A33 LD (06385H),HL ; 2A34 LD HL,06281H ; 2A37 Buffer #3 Head LD (06303H),HL ; 2A3A INC HL ; 2A3D LD (06301H),HL ; 2A3E LD HL,06389H ; 2A41 Buffer #7 Head LD (063CBH),HL ; 2A44 INC HL ; 2A47 LD (063C9H),HL ; 2A48 LD HL,063CDH ; 2A4B Buffer #8 Head LD (0640FH),HL ; 2A4E INC HL ; 2A51 LD (0640DH),HL ; 2A52 RET ; 2A55 LD HL,06E7CH ; 2A56 LD BC,0667DH ; 2A59 XOR A ; 2A5C SBC HL,BC ; 2A5D INC HL ; 2A5F LD A,066H ; 2A60 OUT (00CH),A ; 2A62 LD A,0FFH ; 2A64 LD (BC),A ; 2A66 INC BC ; 2A67 DEC HL ; 2A68 LD A,H ; 2A69 OR L ; 2A6A JR NZ,02A60H ; 2A6B RET ; 2A6D PUSH AF ; 2A6E (P0A)=66h (P C)=B LD A,066H ; 2A6F OUT (00AH),A ; 2A71 OUT (C),B ; 2A73 POP AF ; 2A75 RET ; 2A76 LD B,0FFH ; 2A77 Turn off Hardware Time Out LD C,0D2H ; 2A79 CALL 02A6EH ; 2A7B OUT (0A),66 OUT (D2),FF LD C,0D3H ; 2A7E CALL 02A6EH ; 2A80 OUT (0A),66 OUT (D3),FF LD C,0D5H ; 2A83 CALL 02A6EH ; 2A85 OUT (0A),66 OUT (D5),FF LD B,000H ; 2A88 LD C,0C7H ; 2A8A CALL 02A6EH ; 2A8C OUT (0A),66 OUT (C7),00 LD C,0C6H ; 2A8F CALL 02A6EH ; 2A91 OUT (0A),66 OUT (C6),00 LD C,0C5H ; 2A94 CALL 02A6EH ; 2A96 OUT (0A),66 OUT (C5),00 LD B,001H ; 2A99 LD C,0CCH ; 2A9B CALL 02A6EH ; 2A9D OUT (0A),66 OUT (CC),1 LD B,080H ; 2AA0 LD C,0D1H ; 2AA2 CALL 02A6EH ; 2AA4 OUT (0A),66 OUT (D1),80 LD B,001H ; 2AA7 LD C,0D6H ; 2AA9 CALL 02A6EH ; 2AAB OUT (0A),66 OUT (D6),1 IN A,(0D0H) ; 2AAE RET ; 2AB0 LD A,(065EAH) ; 2AB1 CP 001H ; 2AB4 JR NZ,02B23H ; 2AB6 CALL 00B5FH ; 2AB8 Write 'ESPERE POR FAVOR' CALL 00F33H ; 2ABB Lectura de tarjeta ... LD A,(06606H) ; 2ABE (=6606h)=3 => FICHAS =/=> PULSOS LD (06435H),A ; 2AC1 LD A,(065CDH) ; 2AC4 OR A ; 2AC7 JP NZ,02CA2H ; 2AC8 (65EAh) = 03h RET LD A,(065EDH) ; 2ACB CP 001H ; 2ACE JP Z,02C98H ; 2AD0 LD A,000H ; 2AD3 CALL 03F5BH ; 2AD5 Put Buffer #7 (Internal Commands) LD A,010H ; 2AD8 LD (06419H),A ; 2ADA Timer 1B=10h LD A,000H ; 2ADD LD (065DBH),A ; 2ADF LD A,(0662FH) ; 2AE2 OR A ; 2AE5 JP NZ,02B1DH ; 2AE6 JP 02C5DH ; 2AE9 CALL 03BB3H ; 2AEC Espera IRQ y vuelve CALL 03DA3H ; 2AEF Get Key Pressed Carry On Error CALL NC,00D9BH ; 2AF2 Refresca el Display LD A,(065CDH) ; 2AF5 OR A ; 2AF8 JP NZ,02CA2H ; 2AF9 LD A,(06419H) ; 2AFC Timer 1B OR A ; 2AFF JP Z,02C90H ; 2B00 LD A,(065C4H) ; 2B03 OR A ; 2B06 JR Z,02AECH ; 2B07 LD A,(065B4H) ; 2B09 OR A ; 2B0C JR NZ,02B18H ; 2B0D LD A,(0662FH) ; 2B0F OR A ; 2B12 JP Z,02C5DH ; 2B13 JR 02B1DH ; 2B16 AND 080H ; 2B18 CALL NZ,0134FH ; 2B1A CALL 00B6DH ; 2B1D Write 'TARJETA INVALIDA | CUELGUE' JP 02C85H ; 2B20 CP 003H ; 2B23 JP NZ,02B98H ; 2B25 DI ; 2B28 LD HL,06389H ; 2B29 LD (063CBH),HL ; 2B2C INC HL ; 2B2F LD (063C9H),HL ; 2B30 LD HL,061E1H ; 2B33 LD (061F7H),HL ; 2B36 INC HL ; 2B39 LD (061F5H),HL ; 2B3A XOR A ; 2B3D LD (065C1H),A ; 2B3E Buffer #7 Counter LD (065BBH),A ; 2B41 Buffer #2 Counter (Numero Marcado) EI ; 2B44 CALL 03B8FH ; 2B45 (P41.3) = 0 (Cuelga) CALL 03BC6H ; 2B48 No tone on DTMF chip's output LD A,(0642EH) ; 2B4B CP 000H ; 2B4E JP Z,02C95H ; 2B50 CP 008H ; 2B53 JP Z,02C95H ; 2B55 CALL 00CACH ; 2B58 Write 'DESCUELGUE | LLAMADA ENTRANTE' LD A,(0641EH) ; 2B5B Timer B OR A ; 2B5E CALL Z,03CB4H ; 2B5F Prende el Bit 7 del Port 61 y 641E=2 CALL 03BB3H ; 2B62 Espera IRQ y vuelve LD A,(065EDH) ; 2B65 OR A ; 2B68 JP NZ,02C90H ; 2B69 CALL 03DA3H ; 2B6C Get Key Pressed Carry On Error CALL NC,00CACH ; 2B6F Write 'DESCUELGUE | LLAMADA ENTRANTE' LD A,(06449H) ; 2B72 OR A ; 2B75 JR Z,02B5BH ; 2B76 LD A,001H ; 2B78 LD (065E5H),A ; 2B7A LD A,00CH ; 2B7D CALL 03F5BH ; 2B7F Put Buffer #7 (Internal Commands) CALL 00BDDH ; 2B82 Write 'CUELGUE DESPUES|DE LA LLAMADA' LD DE,00E11H ; 2B85 LD (06427H),DE ; 2B88 Timer 4W LD (06425H),DE ; 2B8C Timer 3W LD A,006H ; 2B90 LD (0644BH),A ; 2B92 JP 02CA7H ; 2B95 RET XOR A ; 2B98 LD (065E5H),A ; 2B99 CALL 02CA8H ; 2B9C Case (642Eh): 'DESC','EMERG','FUERA' CALL 03BB3H ; 2B9F Espera IRQ y vuelve LD A,(0641AH) ; 2BA2 Timer 2B CP 001H ; 2BA5 JR Z,02BB0H ; 2BA7 LD A,(06652H) ; 2BA9 Codigo de Idioma CP 000H ; 2BAC JR Z,02BC5H ; 2BAE LD A,(0642EH) ; 2BB0 CP 000H ; 2BB3 si (642E)=0 o (6449)=0 va a 2BC2h JR NZ,02BC2H ; 2BB5 LD A,(06449H) ; 2BB7 OR A ; 2BBA JR Z,02BC2H ; 2BBB sino ... CALL 03DA3H ; 2BBD Get Key Pressed Carry On Error JR C,02BC5H ; 2BC0 CALL 00D9BH ; 2BC2 Refresca el Display LD HL,01645H ; 2BC5 LD (06429H),HL ; 2BC8 Fuera de servicio Timer = 1645h = 5701d LD A,(0644AH) ; 2BCB OR A ; 2BCE CALL NZ,0167EH ; 2BCF (Puerta Abierta) LD A,(065CDH) ; 2BD2 OR A ; 2BD5 JP NZ,02CA2H ; 2BD6 LD A,(065EDH) ; 2BD9 OR A ; 2BDC JP NZ,02C98H ; 2BDD LD A,(06449H) ; 2BE0 OR A ; 2BE3 JR NZ,02BEEH ; 2BE4 CALL 03DA3H ; 2BE6 Get Key Pressed Carry On Error CALL NC,02CA8H ; 2BE9 Case (642Eh): 'DESC','EMERG','FUERA' JR 02B9FH ; 2BEC LD A,001H ; 2BEE LD (065E5H),A ; 2BF0 LD A,(0642EH) ; 2BF3 CP 000H ; 2BF6 JP Z,02B9FH ; 2BF8 CP 008H ; 2BFB JP Z,02C95H ; 2BFD CALL 03BBFH ; 2C00 Play 701.3 Hz on DTMF chip LD A,014H ; 2C03 Timer de inserte tarjeta LD (06419H),A ; 2C05 Timer B LD A,(0642EH) ; 2C08 Timer CP 004H ; 2C0B JR NZ,02C14H ; 2C0D CALL 00AFDH ; 2C0F Write 'NUMERO MARCADO | el numero' JR 02C17H ; 2C12 CALL 00AEFH ; 2C14 Write 'INSERTE TARJETA | ' CALL 03BB3H ; 2C17 Espera IRQ y vuelve LD A,(0641AH) ; 2C1A TIMER 2B CP 001H ; 2C1D JR NZ,02C24H ; 2C1F CALL 00D9BH ; 2C21 Reimprime 'INSERTE..' 641A = 1 LD A,(065CDH) ; 2C24 OR A ; 2C27 JP NZ,02CA2H ; 2C28 ; Cancelar, salir, terminal, finalizar LD A,(065EDH) ; 2C2B (065EDH) OR A ; 2C2E JR NZ,02C98H ; 2C2F LD A,(06419H) ; 2C31 Timer B OR A ; 2C34 JR Z,02C98H ; 2C35 ; TimeOut? LD A,(0642EH) ; 2C37 (0642Eh) CP 002H ; 2C3A JR NZ,02C4EH ; 2C3C LD A,(06448H) ; 2C3E (06448H) OR A ; 2C41 JR Z,02C4EH ; 2C42 LD A,001H ; 2C44 LD (065EAH),A ; 2C46 (065EAH) CALL 03BC6H ; 2C49 No tone on DTMF chip's output JR 02CA7H ; 2C4C CALL 03DA3H ; 2C4E Get Key Pressed Carry On Error JR C,02C17H ; 2C51 Buffer Vacio? Trata de leer otra vez CP _*_KEY ; 2C53 JR NC,02C08H ; 2C55 A >= ':' ? Numero marcado LD (0643AH),A ; 2C57 CALL 03BC6H ; 2C5A No tone on DTMF chip's output LD A,(06606H) ; 2C5D (=6606h)=3 => FICHAS =/=> PULSOS CP 001H ; 2C60 JR Z,02C6FH ; 2C62 CP 003H ; 2C64 JR Z,02C6FH ; 2C66 LD A,000H ; 2C68 CALL 03F5BH ; 2C6A Put Buffer #7 (Internal Commands) JR 02C72H ; 2C6D CALL 0137BH ; 2C6F LD DE,00E11H ; 2C72 LD (06425H),DE ; 2C75 Timer 3W LD A,005H ; 2C79 LD (0644BH),A ; 2C7B LD A,010H ; 2C7E LD (065EAH),A ; 2C80 JR 02CA7H ; 2C83 RET LD A,008H ; 2C85 CALL 03F5BH ; 2C87 Put Buffer #7 (Internal Commands) JR 02C98H ; 2C8A XOR A ; 2C8C LD (065CDH),A ; 2C8D LD A,008H ; 2C90 CALL 03F5BH ; 2C92 Put Buffer #7 (Internal Commands) CALL 00D15H ; 2C95 Actualiza los Pulsos en el Display CALL 03BC6H ; 2C98 No tone on DTMF chip's output LD A,007H ; 2C9B LD (0644BH),A ; 2C9D JR 02CA7H ; 2CA0 RET LD A,003H ; 2CA2 LD (065EAH),A ; 2CA4 RET ; 2CA7 LD A,(0642EH) ; 2CA8 Case (642Eh): 'DESC','EMERG','FUERA' CP 004H ; 2CAB JR Z,02CBCH ; 2CAD CP 000H ; 2CAF JR Z,02CC1H ; 2CB1 CP 008H ; 2CB3 JR Z,02CC1H ; 2CB5 CALL 00C9EH ; 2CB7 Write 'DESCUELGUE' JR 02CC4H ; 2CBA CALL 00CCCH ; 2CBC Write ' ( ) SOLO | EMERGENCIAS' JR 02CC4H ; 2CBF CALL 00ADFH ; 2CC1 Write '( ) FUERA | DE SERVICIO' RET ; 2CC4 LD BC,0050CH ; 2CC5 LD (BC),A ; 2CC8 ADD HL,BC ; 2CC9 LD BC,00103H ; 2CCA INC B ; 2CCD LD BC,00104H ; 2CCE LD BC,00706H ; 2CD1 RLCA ; 2CD4 ; Interrupt #1 PUSH AF ; 2CD5 PUSH BC ; 2CD6 PUSH DE ; 2CD7 PUSH HL ; 2CD8 PUSH IX ; 2CD9 PUSH IY ; 2CDB OUT (008H),A ; 2CDD LD IX,06417H ; 2CDF LD DE,06418H ; 2CE3 LD A,(IX+000H) ; 2CE6 CP 000H ; 2CE9 JR Z,02CF1H ; 2CEB DEC A ; 2CED LD (IX+000H),A ; 2CEE PUSH IX ; 2CF1 POP HL ; 2CF3 SBC HL,DE ; 2CF4 JR Z,02CFCH ; 2CF6 INC IX ; 2CF8 JR 02CE6H ; 2CFA CALL 02D8DH ; 2CFC LD A,(07C00H) ; 2CFF BIT 0,A ; 2D02 JR Z,02D48H ; 2D04 LD A,(065DBH) ; 2D06 OR A ; 2D09 JR Z,02D48H ; 2D0A LD A,(06417H) ; 2D0C OR A ; 2D0F CALL NZ,0408FH ; 2D10 (6418h)=0Ch JR NZ,02D48H ; 2D13 LD A,(06445H) ; 2D15 CP 001H ; 2D18 JR Z,02D3BH ; 2D1A LD A,(065BBH) ; 2D1C Buffer #2 Counter (Numero Marcado) OR A ; 2D1F JR Z,02D48H ; 2D20 CALL 03DE8H ; 2D22 Get Buffer #2 (Numero Marcado) AND 00FH ; 2D25 CALL 03BCDH ; 2D27 Dial Number A in DTMF LD A,001H ; 2D2A LD (065C5H),A ; 2D2C LD A,003H ; 2D2F LD (06417H),A ; 2D31 LD A,001H ; 2D34 LD (06445H),A ; 2D36 JR 02D48H ; 2D39 LD A,000H ; 2D3B LD (06445H),A ; 2D3D CALL 03BE7H ; 2D40 Turn Off DTMF Tone & Output LD A,003H ; 2D43 LD (06417H),A ; 2D45 LD A,(06602H) ; 2D48 ; Flag externo que indica comienzo de ; lectura . ? . OR A ; 2D4B JR NZ,02D5EH ; 2D4C LD A,(065BDH) ; 2D4E Buffer #6 Counter OR A ; 2D51 JR Z,02D5EH ; 2D52 CALL 03EFCH ; 2D54 Get Buffer #6 Carry On Error OUT (068H),A ; 2D57 LD A,001H ; 2D59 LD (06602H),A ; 2D5B LD A,(06603H) ; 2D5E OR A ; 2D61 JR NZ,02D7BH ; 2D62 LD A,(06604H) ; 2D64 CP 000H ; 2D67 JR NZ,02D7BH ; 2D69 LD A,(065BFH) ; 2D6B Buffer #4 Counter OR A ; 2D6E JR Z,02D7BH ; 2D6F CALL 03E72H ; 2D71 Get Buffer #4 Carry On Error OUT (048H),A ; 2D74 LD A,001H ; 2D76 LD (06603H),A ; 2D78 LD A,(06416H) ; 2D7B Timer 6BB OR A ; 2D7E CALL NZ,0408FH ; 2D7F (6418h)=0Ch POP IY ; 2D82 POP IX ; 2D84 POP HL ; 2D86 POP DE ; 2D87 POP BC ; 2D88 POP AF ; 2D89 EI ; 2D8A RETI ; 2D8B LD A,(06444H) ; 2D8D CP 001H ; 2D90 JP Z,02E03H ; 2D92 CP 002H ; 2D95 JP Z,02E52H ; 2D97 LD A,(065C0H) ; 2D9A Buffer #8 Counter OR A ; 2D9D JR Z,02DB4H ; 2D9E CALL 03F89H ; 2DA0 Get Buffer #8 Carry On Error CP 055H ; 2DA3 JP NZ,02E6AH ; 2DA5 RET LD A,001H ; 2DA8 LD (06444H),A ; 2DAA XOR A ; 2DAD LD (06594H),A ; 2DAE JP 02E6AH ; 2DB1 RET LD A,(06416H) ; 2DB4 Timer 6BB OR A ; 2DB7 JP NZ,02E6AH ; 2DB8 RET LD A,(065CBH) ; 2DBB LD B,A ; 2DBE LD A,(065C1H) ; 2DBF Buffer #7 Counter OR B ; 2DC2 LD B,A ; 2DC3 LD A,(065D1H) ; 2DC4 OR B ; 2DC7 JR NZ,02DE0H ; 2DC8 LD A,(07C00H) ; 2DCA BIT 0,A ; 2DCD JP NZ,02E6AH ; 2DCF RET LD A,(065BBH) ; 2DD2 Buffer #2 Counter (Numero Marcado) OR A ; 2DD5 JP Z,02E6AH ; 2DD6 RET LD A,(065DBH) ; 2DD9 OR A ; 2DDC JP Z,02E6AH ; 2DDD RET LD A,(06592H) ; 2DE0 OR A ; 2DE3 JP NZ,02E6AH ; 2DE4 RET XOR A ; 2DE7 LD (06591H),A ; 2DE8 LD A,001H ; 2DEB LD (06590H),A ; 2DED LD A,0AAH ; 2DF0 LD HL,0657CH ; 2DF2 LD (HL),A ; 2DF5 (657Ch)=AAh LD A,001H ; 2DF6 LD (0657BH),A ; 2DF8 LD A,002H ; 2DFB LD (06444H),A ; 2DFD JP 02E6AH ; 2E00 RET LD A,(065C0H) ; 2E03 Buffer #8 Counter OR A ; 2E06 JR Z,02E42H ; 2E07 CALL 03F89H ; 2E09 Get Buffer #8 Carry On Error LD B,A ; 2E0C LD A,(06594H) ; 2E0D OR A ; 2E10 JR NZ,02E19H ; 2E11 LD A,B ; 2E13 LD (06595H),A ; 2E14 JR 02E25H ; 2E17 XOR A ; 2E19 LD D,A ; 2E1A LD HL,06595H ; 2E1B LD A,(06594H) ; 2E1E LD E,A ; 2E21 ADD HL,DE ; 2E22 LD A,B ; 2E23 LD (HL),A ; 2E24 LD A,(06595H) ; 2E25 LD B,A ; 2E28 LD A,(06594H) ; 2E29 CP B ; 2E2C JR Z,02E38H ; 2E2D LD A,(06594H) ; 2E2F INC A ; 2E32 LD (06594H),A ; 2E33 JR 02E6AH ; 2E36 RET CALL 02E6BH ; 2E38 LD A,000H ; 2E3B LD (06444H),A ; 2E3D JR 02E6AH ; 2E40 RET LD A,(06416H) ; 2E42 Timer 6BB OR A ; 2E45 JR NZ,02E6AH ; 2E46 RET CALL 031FCH ; 2E48 LD A,000H ; 2E4B LD (06444H),A ; 2E4D JR 02E6AH ; 2E50 RET LD A,(06591H) ; 2E52 OR A ; 2E55 JR NZ,02E61H ; 2E56 LD A,(06416H) ; 2E58 Timer 6BB OR A ; 2E5B JR NZ,02E6AH ; 2E5C RET CALL 03034H ; 2E5E XOR A ; 2E61 LD (06590H),A ; 2E62 LD A,000H ; 2E65 LD (06444H),A ; 2E67 RET ; 2E6A LD A,(06595H) ; 2E6B LD B,A ; 2E6E XOR A ; 2E6F LD D,A ; 2E70 LD HL,02CC5H ; 2E71 LD A,(06596H) ; 2E74 LD E,A ; 2E77 ADD HL,DE ; 2E78 LD A,(HL) ; 2E79 CP B ; 2E7A CALL NZ,031FCH ; 2E7B JP NZ,02F75H ; 2E7E LD HL,06596H ; 2E81 LD A,(HL) ; 2E84 INC HL ; 2E85 CP 002H ; 2E86 JR Z,02EA9H ; 2E88 CP 004H ; 2E8A JR Z,02ECCH ; 2E8C CP 005H ; 2E8E JR Z,02EDFH ; 2E90 CP 007H ; 2E92 JR Z,02EF2H ; 2E94 CP 009H ; 2E96 JR Z,02F0FH ; 2E98 CP 00BH ; 2E9A JR Z,02F16H ; 2E9C CP 00FH ; 2E9E JP Z,02F39H ; 2EA0 CALL 031FCH ; 2EA3 JP 02F75H ; 2EA6 LD A,(065C3H) ; 2EA9 LD B,A ; 2EAC LD A,(065C2H) ; 2EAD OR B ; 2EB0 JP Z,02F75H ; 2EB1 LD A,(065C4H) ; 2EB4 CP 000H ; 2EB7 JP NZ,02F75H ; 2EB9 LD A,001H ; 2EBC LD (065C4H),A ; 2EBE LD DE,065B4H ; 2EC1 LD BC,00004H ; 2EC4 LDIR ; 2EC7 JP 02F75H ; 2EC9 LD A,001H ; 2ECC LD (065C6H),A ; 2ECE CALL 02FE0H ; 2ED1 LD A,(0644BH) ; 2ED4 CP 005H ; 2ED7 CALL Z,03BA1H ; 2ED9 (P41.3) = 1 (Descuelga) JP 02F75H ; 2EDC LD A,001H ; 2EDF LD (065C7H),A ; 2EE1 LD A,(065C6H) ; 2EE4 .... OR A ; 2EE7 JR NZ,02EEFH ; 2EE8 ; LD A,001H ; 2EEA LD (065EDH),A ; 2EEC JP 02F75H ; 2EEF LD A,001H ; 2EF2 LD (065C9H),A ; 2EF4 LD (065EDH),A ; 2EF7 LD A,000H ; 2EFA LD (065CDH),A ; 2EFC flag en cero LD HL,06389H ; 2EFF LD (063CBH),HL ; 2F02 INC HL ; 2F05 LD (063C9H),HL ; 2F06 XOR A ; 2F09 LD (065C1H),A ; 2F0A Buffer #7 Counter JR 02F75H ; 2F0D LD A,001H ; 2F0F LD (065CBH),A ; 2F11 JR 02F75H ; 2F14 LD A,(07C01H) ; 2F16 BIT 0,A ; 2F19 JP Z,02F75H ; 2F1B LD A,(0644BH) ; 2F1E CP 006H ; 2F21 JP Z,02F75H ; 2F23 LD A,(0642EH) ; 2F26 CP 002H ; 2F29 JR Z,02F32H ; 2F2B CP 004H ; 2F2D JP NZ,02F75H ; 2F2F LD A,001H ; 2F32 LD (065CDH),A ; 2F34 ; flag en uno JR 02F75H ; 2F37 LD DE,0642EH ; 2F39 LD A,(HL) ; 2F3C LD (DE),A ; 2F3D (HL) -> 642E LD (06431H),A ; 2F3E CP 000H ; 2F41 JR NZ,02F4CH ; 2F43 XOR A ; 2F45 LD (065B8H),A ; 2F46 LD (065B9H),A ; 2F49 (65B8) = 0000 INC HL ; 2F4C LD DE,07C00H ; 2F4D LD C,00AH ; 2F50 LD B,066H ; 2F52 LD A,002H ; 2F54 PUSH AF ; 2F56 LD A,(HL) ; 2F57 OUT (C),B ; 2F58 LD (DE),A ; 2F5A INC HL ; 2F5B INC DE ; 2F5C POP AF ; 2F5D DEC A ; 2F5E JR NZ,02F56H ; 2F5F LD DE,065B5H ; 2F61 LD BC,00003H ; 2F64 LDIR ; 2F67 LD A,001H ; 2F69 LD (065D1H),A ; 2F6B LD (065EDH),A ; 2F6E XOR A ; 2F71 LD (0641CH),A ; 2F72 Timer B RET ; 2F75 LD HL,(065D2H) ; 2F76 LD A,L ; 2F79 CP 004H ; 2F7A JR NZ,02FA1H ; 2F7C LD A,H ; 2F7E CP 000H ; 2F7F JR NZ,02FA1H ; 2F81 LD HL,(065D6H) ; 2F83 LD A,L ; 2F86 CP 004H ; 2F87 JR NZ,02FA1H ; 2F89 LD A,H ; 2F8B CP 000H ; 2F8C JR NZ,02FA1H ; 2F8E LD HL,00001H ; 2F90 LD (065D6H),HL ; 2F93 LD (065D2H),HL ; 2F96 LD A,001H ; 2F99 LD (065DAH),A ; 2F9B JP 02FDFH ; 2F9E LD HL,(065D8H) ; 2FA1 LD BC,03333H ; 2FA4 LD A,H ; 2FA7 CP B ; 2FA8 JR C,02FB6H ; 2FA9 JR NZ,02FB1H ; 2FAB LD A,L ; 2FAD CP C ; 2FAE JR C,02FB6H ; 2FAF LD HL,0FFFFH ; 2FB1 JR 02FBCH ; 2FB4 LD D,H ; 2FB6 LD E,L ; 2FB7 ADD HL,DE ; 2FB8 ADD HL,DE ; 2FB9 ADD HL,DE ; 2FBA ADD HL,DE ; 2F3BB LD (065D8H),HL ; 2FBC LD HL,(065D4H) ; 2FBF LD A,H ; 2FC2 CP B ; 2FC3 JR C,02FD1H ; 2FC4 JR NZ,02FCCH ; 2FC6 LD A,L ; 2FC8 CP C ; 2FC9 JR C,02FD1H ; 2FCA LD HL,0FFFFH ; 2FCC JR 02FD7H ; 2FCF LD D,H ; 2FD1 LD E,L ; 2FD2 ADD HL,DE ; 2FD3 ADD HL,DE ; 2FD4 ADD HL,DE ; 2FD5 ADD HL,DE ; 2FD6 LD (065D4H),HL ; 2FD7 LD A,002H ; 2FDA LD (065DAH),A ; 2FDC RET ; 2FDF LD D,H ; 2FE0 LD E,L ; 2FE1 LD A,(065DAH) ; 2FE2 CP 001H ; 2FE5 JR Z,03008H ; 2FE7 CP 002H ; 2FE9 JR NZ,03021H ; 2FEB LD A,(HL) ; 2FED CP 004H ; 2FEE JR NZ,03021H ; 2FF0 INC HL ; 2FF2 LD A,(HL) ; 2FF3 CP 000H ; 2FF4 JR NZ,03021H ; 2FF6 INC HL ; 2FF8 INC HL ; 2FF9 INC HL ; 2FFA LD A,(HL) ; 2FFB CP 004H ; 2FFC JR NZ,03021H ; 2FFE INC HL ; 3000 LD A,(HL) ; 3001 CP 000H ; 3002 JR NZ,03021H ; 3004 JR 03033H ; 3006 LD A,(HL) ; 3008 CP 004H ; 3009 JR NZ,03033H ; 300B INC HL ; 300D LD A,(HL) ; 300E CP 000H ; 300F JR NZ,03033H ; 3011 INC HL ; 3013 INC HL ; 3014 INC HL ; 3015 LD A,(HL) ; 3016 CP 004H ; 3017 JR NZ,03033H ; 3019 INC HL ; 301B LD A,(HL) ; 301C CP 000H ; 301D JR NZ,03033H ; 301F LD H,D ; 3021 LD L,E ; 3022 LD DE,065D2H ; 3023 LD BC,00008H ; 3026 LDIR ; 3029 LD A,(06606H) ; 302B (=6606h)=3 => FICHAS =/=> PULSOS CP 003H ; 302E CALL Z,02F76H ; 3030 RET ; 3033 LD HL,0657CH ; 3034 LD A,(065CBH) ; 3037 OR A ; 303A JR Z,0305EH ; 303B LD A,005H ; 303D LD (0657BH),A ; 303F DEC A ; 3042 LD (HL),A ; 3043 INC HL ; 3044 LD A,00AH ; 3045 LD (HL),A ; 3047 INC HL ; 3048 LD A,(06612H) ; 3049 LD (HL),A ; 304C INC HL ; 304D LD A,(06613H) ; 304E LD (HL),A ; 3051 INC HL ; 3052 LD A,(06619H) ; 3053 LD (HL),A ; 3056 XOR A ; 3057 LD (065CBH),A ; 3058 JP 031FBH ; 305B RET LD A,(065D1H) ; 305E OR A ; 3061 JP NZ,031B9H ; 3062 LD A,(065C1H) ; 3065 Buffer #7 Counter OR A ; 3068 JR Z,03097H ; 3069 CALL 03F41H ; 306B Get Buffer #7 Carry On Error LD HL,0657CH ; 306E CP 000H ; 3071 JP Z,030C9H ; 3073 Command 00 30C9 CP 001H ; 3076 JP Z,030FFH ; 3078 Command 01 30FF CP 006H ; 307B JP Z,03124H ; 307D Command 06 3124 CP 008H ; 3080 JP Z,03146H ; 3082 Command 08 3146 CP 00CH ; 3085 JP Z,0317DH ; 3087 Command 0C 317D CP 00EH ; 308A JP Z,0318EH ; 308C Command 0E 318E CP 00DH ; 308F JP Z,031B9H ; 3091 Command 0D 31B9 JP 031FBH ; 3094 RET LD A,(07C00H) ; 3097 BIT 0,A ; 309A JP NZ,031FBH ; 309C RET LD A,(065DBH) ; 309F OR A ; 30A2 JP Z,031FBH ; 30A3 RET LD A,(065BBH) ; 30A6 Buffer #2 Counter (Numero Marcado) OR A ; 30A9 JP Z,031FBH ; 30AA RET LD A,003H ; 30AD LD (0657BH),A ; 30AF DEC A ; 30B2 LD (HL),A ; 30B3 INC HL ; 30B4 LD A,003H ; 30B5 LD (HL),A ; 30B7 INC HL ; 30B8 CALL 03DE8H ; 30B9 Get Buffer #2 (Numero Marcado) AND 00FH ; 30BC OR 0F0H ; 30BE LD (HL),A ; 30C0 LD A,001H ; 30C1 LD (065C5H),A ; 30C3 JP 031FBH ; 30C6 RET ; Command 00 LD A,001H ; 30C9 LD (065C2H),A ; 30CB LD A,(06606H) ; 30CE (=6606h)=3 => FICHAS =/=> PULSOS CP 000H ; 30D1 JR NZ,030E3H ; 30D3 LD A,002H ; 30D5 LD (0657BH),A ; 30D7 (657Bh)=02h DEC A ; 30DA LD (HL),A ; 30DB (657Ch)=01h INC HL ; 30DC LD A,000H ; 30DD LD (HL),A ; 30DF (657Dh)=00h JP 031FBH ; 30E0 RET LD A,00EH ; 30E3 (6606h)!=0 LD (0657BH),A ; 30E5 (657Bh)=0Eh (14d) DEC A ; 30E8 LD (HL),A ; 30E9 (657Ch)=0Dh (13d) INC HL ; 30EA LD A,000H ; 30EB LD (HL),A ; 30ED (657Dh)=00h INC HL ; 30EE LD DE,06624H ; 30EF EX DE,HL ; 30F2 DE=657Eh LD BC,0000BH ; 30F3 LDIR ; 30F6 LD A,(0662FH) ; 30F8 LD (DE),A ; 30FB JP 031FBH ; 30FC RET ; Command 01 LD A,001H ; 30FF LD (065C3H),A ; 3101 LD A,00EH ; 3104 LD (0657BH),A ; 3106 DEC A ; 3109 LD (HL),A ; 310A (657Ch) INC HL ; 310B LD A,001H ; 310C LD (HL),A ; 310E (657Dh) INC HL ; 310F LD DE,06624H ; 3110 EX DE,HL ; 3113 DE=657Eh LD BC,0000BH ; 3114 LDIR ; 3117 LD A,(0661BH) ; 3119 LD (DE),A ; 311C XOR A ; 311D LD (0661BH),A ; 311E JP 031FBH ; 3121 RET ; Command 06 LD A,001H ; 3124 LD (065C8H),A ; 3126 (65C8h)=01h LD A,000H ; 3129 LD (065C6H),A ; 312B (65C6h)=00h LD A,004H ; 312E LD (0657BH),A ; 3130 (657Bh)=04h DEC A ; 3133 LD (HL),A ; 3134 (657Ch)=03h INC HL ; 3135 LD A,006H ; 3136 LD (HL),A ; 3138 (657Dh)=06h INC HL ; 3139 LD A,(0660EH) ; 313A LD (HL),A ; 313D (657Eh)=(660Eh) INC HL ; 313E LD A,(0660FH) ; 313F LD (HL),A ; 3142 (657Fh)=(660Fh) JP 031FBH ; 3143 RET ; Command 08 LD A,001H ; 3146 LD (065CAH),A ; 3148 LD A,005H ; 314B LD (0657BH),A ; 314D DEC A ; 3150 LD (HL),A ; 3151 (657Ch) INC HL ; 3152 LD A,008H ; 3153 LD (HL),A ; 3155 (657Dh) INC HL ; 3156 LD A,(0660EH) ; 3157 LD (HL),A ; 315A (657Eh) INC HL ; 315B LD A,(0660FH) ; 315C LD (HL),A ; 315F (657Fh) INC HL ; 3160 LD A,(0662FH) ; 3161 LD B,A ; 3164 LD A,(0661BH) ; 3165 OR B ; 3168 LD (HL),A ; 3169 (6580h) LD BC,00006H ; 316A LD HL,06624H ; 316D LD DE,06665H ; 3170 LDIR ; 3173 LD A,(0662EH) ; 3175 LD (0666FH),A ; 3178 JR 031FBH ; 317B RET ; Command 0C XOR A ; 317D LD (065CDH),A ; 317E LD A,002H ; 3181 LD (0657BH),A ; 3183 DEC A ; 3186 LD (HL),A ; 3187 INC HL ; 3188 LD A,00CH ; 3189 LD (HL),A ; 318B JR 031FBH ; 318C RET ; Command 0D LD A,008H ; 318E LD (0657BH),A ; 3190 DEC A ; 3193 LD (HL),A ; 3194 INC HL ; 3195 LD A,00EH ; 3196 LD (HL),A ; 3198 INC HL ; 3199 LD A,001H ; 319A LD (HL),A ; 319C INC HL ; 319D LD A,012H ; 319E LD (HL),A ; 31A0 INC HL ; 31A1 LD A,021H ; 31A2 LD (HL),A ; 31A4 INC HL ; 31A5 LD A,(0642EH) ; 31A6 LD (HL),A ; 31A9 INC HL ; 31AA LD A,003H ; 31AB LD (HL),A ; 31AD INC HL ; 31AE LD A,00DH ; 31AF LD (HL),A ; 31B1 LD A,020H ; 31B2 LD (0641CH),A ; 31B4 Timer B JR 031FBH ; 31B7 RET ; Command 0E LD A,00AH ; 31B9 LD (0657BH),A ; 31BB DEC A ; 31BE LD (HL),A ; 31BF INC HL ; 31C0 LD A,00DH ; 31C1 LD (HL),A ; 31C3 INC HL ; 31C4 LD DE,0642FH ; 31C5 EX DE,HL ; 31C8 LD BC,00003H ; 31C9 LDIR ; 31CC EX DE,HL ; 31CE LD A,(07C00H) ; 31CF LD (HL),A ; 31D2 INC HL ; 31D3 LD A,(07C01H) ; 31D4 LD (HL),A ; 31D7 INC HL ; 31D8 LD A,001H ; 31D9 LD (HL),A ; 31DB INC HL ; 31DC LD A,012H ; 31DD LD (HL),A ; 31DF INC HL ; 31E0 LD A,021H ; 31E1 LD (HL),A ; 31E3 XOR A ; 31E4 LD (065D1H),A ; 31E5 LD HL,0642FH ; 31E8 LD DE,06432H ; 31EB LD BC,00003H ; 31EE LDIR ; 31F1 LD A,(0642CH) ; 31F3 RES 5,A ; 31F6 LD (0642CH),A ; 31F8 RET ; 31FB PUSH AF ; 31FC LD A,(06596H) ; 31FD CALL 03FBCH ; 3200 Put Log Buffer LD A,(06595H) ; 3203 CALL 03FBCH ; 3206 Put Log Buffer LD A,(06594H) ; 3209 CALL 03FBCH ; 320C Put Log Buffer LD A,021H ; 320F CALL 03FBCH ; 3211 Put Log Buffer POP AF ; 3214 RET ; 3215 ; Interrupt #2 PUSH AF ; 3216 PUSH BC ; 3217 PUSH DE ; 3218 PUSH HL ; 3219 PUSH IX ; 321A PUSH IY ; 321C OUT (004H),A ; 321E OUT (00CH),A ; 3220 LD C,004H ; 3222 LD IX,06436H ; 3224 CALL 0402AH ; 3228 (IX)=(P4)-(IX+1) , (IX+1) = (P4) LD IX,06411H ; 322B LD DE,06416H ; 322F LD A,(IX+000H) ; 3232 CP 000H ; 3235 JR Z,0323DH ; 3237 DEC A ; 3239 LD (IX+000H),A ; 323A PUSH IX ; 323D POP HL ; 323F SBC HL,DE ; 3240 JR Z,03248H ; 3242 INC IX ; 3244 JR 03232H ; 3246 Decrementa los Timers 1BB..6BB LD A,(06592H) ; 3248 OR A ; 324B JR NZ,03255H ; 324C LD A,(0657BH) ; 324E OR A ; 3251 JP NZ,03362H ; 3252 XOR A ; 3255 LD HL,(06E80H) ; 3256 LD B,000H ; 3259 LD A,(06436H) ; 325B LD C,A ; 325E ADC HL,BC ; 325F LD (06E80H),HL ; 3261 LD A,(06414H) ; 3264 Timer 4BB OR A ; 3267 JP NZ,03362H ; 3268 ; Timer 4BB == 0 LD A,(06415H) ; 326B Timer 5BB OR A ; 326E JP NZ,03362H ; 326F ; Timers 4BB==0, 5BB == 0 LD A,(06592H) ; 3272 CP 001H ; 3275 JR Z,032C7H ; 3277 CP 002H ; 3279 JP Z,032F6H ; 327B CP 003H ; 327E JP Z,03344H ; 3280 CP 010H ; 3283 JP Z,0335DH ; 3285 LD A,(06416H) ; 3288 Timer 6BB CP 028H ; 328B JR NC,0329FH ; 328D ; Timer BB6 < 40d LD A,(06436H) ; 328F CP 016H ; 3292 JP C,03362H ; 3294 CP 052H ; 3297 JR NC,032B0H ; 3299 LD A,002H ; 329B JR 032B2H ; 329D LD A,(06436H) ; 329F CP 04DH ; 32A2 JP C,03362H ; 32A4 CP 052H ; 32A7 JP NC,03362H ; 32A9 LD A,002H ; 32AC JR 032B2H ; 32AE LD A,001H ; 32B0 LD (06415H),A ; 32B2 Timer 5BB = 01h LD A,001H ; 32B5 LD (06592H),A ; 32B7 LD A,(06436H) ; 32BA LD C,A ; 32BD LD B,000H ; 32BE LD (06E80H),BC ; 32C0 JP 03362H ; 32C4 CALL 03473H ; 32C7 (6E80h)<76h? A=1:A=0 Carry=A JR C,032E9H ; 32CA LD A,050H ; 32CC LD (06416H),A ; 32CE Timer 6BB = 50h LD A,002H ; 32D1 LD (06592H),A ; 32D3 LD A,003H ; 32D6 LD (06415H),A ; 32D8 Timer 5BB = 03h LD A,008H ; 32DB LD (06E86H),A ; 32DD XOR A ; 32E0 LD (06E82H),A ; 32E1 LD (06E84H),A ; 32E4 JR 032EEH ; 32E7 LD A,000H ; 32E9 LD (06592H),A ; 32EB LD HL,00000H ; 32EE LD (06E80H),HL ; 32F1 JR 03362H ; 32F4 LD A,(06E86H) ; 32F6 OR A ; 32F9 JR Z,03315H ; 32FA CALL 03473H ; 32FC (6E80h)<76h? A=1:A=0 Carry=A LD B,A ; 32FF LD A,(06E82H) ; 3300 RR A ; 3303 LD (06E82H),A ; 3305 LD A,B ; 3308 OR A ; 3309 JR Z,03313H ; 330A LD A,(06E84H) ; 330C INC A ; 330F LD (06E84H),A ; 3310 JR 03330H ; 3313 CALL 03473H ; 3315 (6E80h)<76h? A=1:A=0 Carry=A LD B,A ; 3318 LD A,(06E84H) ; 3319 CPL ; 331C AND 001H ; 331D CP B ; 331F JR NZ,03326H ; 3320 LD A,003H ; 3322 JR 0332DH ; 3324 LD A,001H ; 3326 CALL 03481H ; 3328 LD A,010H ; 332B LD (06592H),A ; 332D LD HL,00000H ; 3330 LD (06E80H),HL ; 3333 LD A,003H ; 3336 LD (06415H),A ; 3338 Timer BB5 LD A,(06E86H) ; 333B DEC A ; 333E LD (06E86H),A ; 333F JR 03362H ; 3342 CALL 03473H ; 3344 (6E80h)<76h? A=1:A=0 Carry=A JR NC,03351H ; 3347 LD A,(06E82H) ; 3349 CALL 03FA3H ; 334C Put Buffer #8 Carry On Error JR 03356H ; 334F LD A,002H ; 3351 CALL 03481H ; 3353 LD A,000H ; 3356 LD (06592H),A ; 3358 JR 03362H ; 335B LD A,000H ; 335D LD (06592H),A ; 335F LD A,(06592H) ; 3362 OR A ; 3365 JP NZ,033DBH ; 3366 LD A,(06414H) ; 3369 Timer BB4 OR A ; 336C JR NZ,033C2H ; 336D LD A,(06E87H) ; 336F OR A ; 3372 JR NZ,033BDH ; 3373 LD A,(0657BH) ; 3375 OR A ; 3378 JR Z,033DBH ; 3379 CALL 03CF1H ; 337B (P41.7)=1, (P80)=90h LD A,(0657AH) ; 337E LD C,A ; 3381 INC A ; 3382 LD (0657AH),A ; 3383 LD B,000H ; 3386 LD HL,0657CH ; 3388 XOR A ; 338B ADC HL,BC ; 338C LD A,(HL) ; 338E LD (06E83H),A ; 338F LD B,008H ; 3392 LD C,000H ; 3394 SRL A ; 3396 JR C,0339BH ; 3398 INC C ; 339A DJNZ 03396H ; 339B LD A,C ; 339D A=Bits en 1 de A CPL ; 339E AND 001H ; 339F LD (06E85H),A ; 33A1 LD A,000H ; 33A4 LD (06593H),A ; 33A6 CALL 03D06H ; 33A9 LD A,00AH ; 33AC LD (06E87H),A ; 33AE LD A,003H ; 33B1 LD (06414H),A ; 33B3 Timer BB4 LD A,05EH ; 33B6 LD (06416H),A ; 33B8 Timer BB6 JR 033DBH ; 33BB CALL 033E6H ; 33BD JR 033DBH ; 33C0 LD A,(06593H) ; 33C2 CP 001H ; 33C5 JR NZ,033DBH ; 33C7 LD A,(06590H) ; 33C9 OR A ; 33CC JR Z,033DBH ; 33CD LD A,(06436H) ; 33CF CP 02CH ; 33D2 JR C,033DBH ; 33D4 LD A,001H ; 33D6 LD (06591H),A ; 33D8 POP IY ; 33DB POP IX ; 33DD POP HL ; 33DF POP DE ; 33E0 POP BC ; 33E1 POP AF ; 33E2 EI ; 33E3 RETI ; 33E4 LD A,003H ; 33E6 LD (06414H),A ; 33E8 Timer BB4 LD A,(06E87H) ; 33EB CP 001H ; 33EE JR Z,0340EH ; 33F0 CP 002H ; 33F2 JR Z,03404H ; 33F4 CP 003H ; 33F6 JR C,03456H ; 33F8 LD HL,06E83H ; 33FA SRL (HL) ; 33FD CALL 0345EH ; 33FF JR 03456H ; 3402 LD A,(06E85H) ; 3404 SRL A ; 3407 CALL 0345EH ; 3409 JR 03456H ; 340C CALL 03D0DH ; 340E LD A,(0657BH) ; 3411 DEC A ; 3414 LD (0657BH),A ; 3415 JR NZ,03426H ; 3418 LD (0657AH),A ; 341A LD A,(06590H) ; 341D OR A ; 3420 JR NZ,03426H ; 3421 CALL 03CFCH ; 3423 LD A,001H ; 3426 LD (06593H),A ; 3428 LD A,(06590H) ; 342B OR A ; 342E JR Z,03456H ; 342F LD A,(06591H) ; 3431 OR A ; 3434 JR Z,0344EH ; 3435 LD A,00AH ; 3437 LD (06416H),A ; 3439 Timer BB6 XOR A ; 343C LD (06E87H),A ; 343D LD (06414H),A ; 3440 Timer BB LD (0657AH),A ; 3443 LD (0657BH),A ; 3446 CALL 03CFCH ; 3449 JR 03456H ; 344C LD A,00AH ; 344E LD (06416H),A ; 3450 Timer BB LD (06414H),A ; 3453 Timer BB LD A,(06E87H) ; 3456 DEC A ; 3459 LD (06E87H),A ; 345A RET ; 345D JR NC,0346AH ; 345E LD A,001H ; 3460 LD (06593H),A ; 3462 CALL 03D0DH ; 3465 JR 03472H ; 3468 LD A,000H ; 346A LD (06593H),A ; 346C CALL 03D06H ; 346F RET ; 3472 LD HL,(06E80H) ; 3473 (6E80h)<76h? A=1:A=0 Carry=A LD BC,00076H ; 3476 118d XOR A ; 3479 SBC HL,BC ; 347A JR NC,03480H ; 347C LD A,001H ; 347E RET ; 3480 CALL 03FBCH ; 3481 Put Log Buffer LD A,(06E82H) ; 3484 CALL 03FBCH ; 3487 Put Log Buffer CALL 03FBCH ; 348A Put Log Buffer LD A,020H ; 348D CALL 03FBCH ; 348F Put Log Buffer RET ; 3492 ; Interrupt #3 PUSH AF ; 3493 PUSH DE ; 3494 PUSH BC ; 3495 PUSH HL ; 3496 PUSH IX ; 3497 PUSH IY ; 3499 IN A,(068H) ; 349B LD C,A ; 349D IN A,(065H) ; 349E LD B,A ; 34A0 AND 00EH ; 34A1 JR NZ,034C1H ; 34A3 Exit ISR LD A,B ; 34A5 AND 001H ; 34A6 JR Z,034AEH ; 34A8 LD A,C ; 34AA CALL 03ED1H ; 34AB Put Buffer #5 Carry On Error LD A,B ; 34AE AND 030H ; 34AF JR Z,034C1H ; 34B1 Exit ISR CALL 03EFCH ; 34B3 Get Buffer #6 Carry On Error JR NC,034BFH ; 34B6 LD A,000H ; 34B8 LD (06602H),A ; 34BA JR 034C1H ; 34BD Exit ISR OUT (068H),A ; 34BF POP IY ; 34C1 POP IX ; 34C3 POP HL ; 34C5 POP BC ; 34C6 POP DE ; 34C7 POP AF ; 34C8 EI ; 34C9 RETI ; 34CA ; Interrupt #4 PUSH AF ; 34CC PUSH DE ; 34CD PUSH BC ; 34CE PUSH HL ; 34CF PUSH IX ; 34D0 PUSH IY ; 34D2 IN A,(048H) ; 34D4 LD C,A ; 34D6 IN A,(045H) ; 34D7 LD B,A ; 34D9 AND 00EH ; 34DA JR NZ,03506H ; 34DC LD A,B ; 34DE AND 001H ; 34DF JR Z,034E7H ; 34E1 LD A,C ; 34E3 CALL 03E47H ; 34E4 Put Buffer #3 Carry On Error LD A,B ; 34E7 AND 030H ; 34E8 JR Z,03506H ; 34EA CALL 03E72H ; 34EC Get Buffer #4 Carry On Error JR NC,03504H ; 34EF LD A,000H ; 34F1 LD (06603H),A ; 34F3 LD A,(06604H) ; 34F6 CP 001H ; 34F9 JR NZ,03506H ; 34FB LD A,001H ; 34FD LD (06605H),A ; 34FF JR 03506H ; 3502 OUT (048H),A ; 3504 POP IY ; 3506 POP IX ; 3508 POP HL ; 350A POP BC ; 350B POP DE ; 350C POP AF ; 350D EI ; 350E RETI ; 350F ; Interrupt #5 PUSH AF ; 3511 IN A,(020H) ; 3512 POP AF ; 3514 EI ; 3515 RETI ; 3516 ; Interrupt #6 PUSH AF ; 3518 IN A,(028H) ; 3519 POP AF ; 351B EI ; 351C RETI ; 351D ; Interrupt #7 EI ; 351F RETI ; 3520 ; Interrupt #8 PUSH AF ; 3522 PUSH BC ; 3523 PUSH DE ; 3524 PUSH HL ; 3525 PUSH IX ; 3526 PUSH IY ; 3528 OUT (064H),A ; 352A IN A,(064H) ; 352C LD B,A ; 352E LD HL,06677H ; 352F XOR (HL) ; 3532 LD (0643BH),A ; 3533 LD A,B ; 3536 LD (HL),A ; 3537 LD A,(0643BH) ; 3538 AND 008H ; 353B CALL NZ,03702H ; 353D Scan Keyboard, if Pressed Play & Save Key LD A,(0643BH) ; 3540 AND 010H ; 3543 CALL NZ,0386EH ; 3545 LD A,(0643B2H) ; 3548 AND 040H ; 354B CALL NZ,038BDH ; 354D CALL 0408FH ; 3550 (6418h)=0Ch POP IY ; 3553 POP IX ; 3555 POP HL ; 3557 POP DE ; 3558 POP BC ; 3559 POP AF ; 355A EI ; 355B RETI ; 355C ; Interrupt #9 PUSH AF ; 355E PUSH BC ; 355F PUSH DE ; 3560 PUSH HL ; 3561 PUSH IX ; 3562 PUSH IY ; 3564 OUT (044H),A ; 3566 CALL 0408FH ; 3568 (6418h)=0Ch IN A,(044H) ; 356B LD B,A ; 356D LD HL,06678H ; 356E XOR (HL) ; 3571 LD (0643BH),A ; 3572 LD A,B ; 3575 LD (HL),A ; 3576 LD A,(0643BH) ; 3577 AND 040H ; 357A CALL NZ,0389FH ; 357C LD A,(0643BH) ; 357F AND 080H ; 3582 CALL NZ,038D7H ; 3584 LD A,(0643BH) ; 3587 AND 020H ; 358A CALL NZ,038EAH ; 358C POP IY ; 358F POP IX ; 3591 POP HL ; 3593 POP DE ; 3594 POP BC ; 3595 POP AF ; 3596 EI ; 3597 RETI ; 3598 ; Interrupt #10 PUSH AF ; 359A PUSH BC ; 359B PUSH DE ; 359C PUSH HL ; 359D PUSH IX ; 359E PUSH IY ; 35A0 IN A,(0D0H) ; 35A2 EI ; 35A4 LD IX,06421H ; 35A5 Timer 1W LD DE,0642BH ; 35A9 Timer 6W ; BUCLE LD L,(IX+000H) ; 35AC L = 06421 + 0 LD H,(IX+001H) ; 35AF LD A,L ; 35B2 A = L OR H ; 35B3 H or L JR Z,035BDH ; 35B4 Son ambos 0? DEC HL ; 35B6 Si no son 0 los decrementa LD (IX+000H),L ; 35B7 Guarda el word decrementado LD (IX+001H),H ; 35BA INC IX ; 35BD Proximo IX ( IX=IX + 2 ) INC IX ; 35BF XOR A ; 35C1 PUSH IX ; 35C2 POP HL ; 35C4 SBC HL,DE ; 35C5 Llega al final? JR NZ,035ACH ; 35C7 Salto al BUCLE ; 6 TIMERS de tipo BYTE ; BUCLE 2 LD IX,06419H ; 35C9 LD DE,06420H ; 35CD Timer 8B LD A,(IX+000H) ; 35D0 ; COMIENZO DEL BUCLE CP 000H ; 35D3 JR Z,035DBH ; 35D5 DEC A ; 35D7 LD (IX+000H),A ; 35D8 PUSH IX ; 35DB POP HL ; 35DD SBC HL,DE ; 35DE JR Z,035E6H ; 35E0 ; Salida del BUCLE INC IX ; 35E2 JR 035D0H ; 35E4 ; FIN BUCLE 2 ; Un CASE buscando los timers en cero ; LD HL,(06421H) ; 35E6 Timer 1W LD A,L ; 35E9 OR H ; 35EA JR NZ,0361AH ; 35EB Termina con el Timer 1W ; ; Timer 1W == 0 ; LD A,(0644BH) ; 35ED CP 006H ; 35F0 JR NZ,0361AH ; 35F2 Termina con el Timer 1W LD HL,(065D6H) ; 35F4 LD A,L ; 35F7 OR H ; 35F8 JR Z,0361AH ; 35F9 LD BC,(0660AH) ; 35FB ADD HL,BC ; 35FF LD (0660AH),HL ; 3600 (660A)+=(65D6) LD BC,(065D8H) ; 3603 LD HL,(065DEH) ; 3607 ADD HL,BC ; 360A PUSH HL ; 360B POP BC ; 360C BC = (65D8)+(65DE) LD DE,0000AH ; 360D CALL 040B8H ; 3610 HL = BC Mod 10d LD (06421H),BC ; 3613 Timer 1W LD (065DEH),HL ; 3617 ; ; Primer timer WORD (envia comando lectura?) ; LD A,(06420H) ; 361A Timer 8B CP 001H ; 361D JR NZ,0363EH ; 361F ; Timer 8B == 1 DI ; 3621 CALL 03702H ; 3622 Scan Keyboard, if Pressed Play & Push Key EI ; 3625 LD A,(06420H) ; 3626 Timer 8B OR A ; 3629 JR Z,0363EH ; 362A ; Timer 8B sigue siendo 1 (no paso 1 tick desde que se innicio esto) LD A,001H ; 362C LD (06420H),A ; 362E Timer 8B = 1 de nuevo LD (065EDH),A ; 3631 ; (65ED) = 1 DI ; 3634 LD A,(0642CH) ; 3635 SET 4,A ; 3638 LD (0642CH),A ; 363A EI ; 363D ; LD A,(0642BH) ; 363E Timer 6W OR A ; 3641 JR Z,0366FH ; 3642 ; LD A,(0644BH) ; 3644 CP 007H ; 3647 JR Z,03655H ; 3649 CP 002H ; 364B JR NZ,0366FH ; 364D LD A,(065EAH) ; 364F OR A ; 3652 JR NZ,0366FH ; 3653 LD A,(0642BH) ; 3655 Timer 6W CP 001H ; 3658 JR NZ,0366BH ; 365A DI ; 365C LD A,(0642DH) ; 365D SET 4,A ; 3660 ; Setea el bit 4 LD (0642DH),A ; 3662 EI ; 3665 LD A,001H ; 3666 LD (065EDH),A ; 3668 DEC A ; 366B LD (0642BH),A ; 366C Timer 6W Lo pone en cero, igual , era . ; ; TIMER 6B Solo utilizar si Timer 6W == 0 o (644Bh) == 02 LD A,(0641EH) ; 366F Timer 6B CP 002H ; 3672 CALL NZ,03CC6H ; 3674 ; TIMER 7B LD A,(0641FH) ; 3677 Timer 7B OR A ; 367A JR Z,03687H ; 367B ; <> 0 CP 001H ; 367D JR NZ,03687H ; 367F ; TIMER 7B = 1 IN A,(061H) ; 3681 RES 5,A ; 3683 OUT (061H),A ; 3685 Apaga la Luz ; TIMER 7B <> 1 LD HL,(06429H) ; 3687 Fuera de servicio Timer LD A,L ; 368A OR H ; 368B JR NZ,03696H ; 368C ; TIMER 5W = 0 RESET! LD A,000H ; 368E LD (0642EH),A ; 3690 Fuera de Servicio ?! JP 00000H ; 3693 (RESET!) ; ; TIMER 4B ; LD A,(0641CH) ; 3696 Timer B CP 001H ; 3699 JR NZ,036A2H ; 369B ; timer 4B = 1 LD A,00EH ; 369D CALL 03F5BH ; 369F Put Buffer #7 (Internal Commands) ; ; SIEMPRE! ; IN A,(044H) ; 36A2 AND 002H ; 36A4 JR NZ,036AEH ; 36A6 XOR A ; 36A8 LD (06676H),A ; 36A9 JR 036C1H ; 36AC LD A,(06676H) ; 36AE INC A ; 36B1 LD (06676H),A ; 36B2 CP 005H ; 36B5 JR C,036C1H ; 36B7 DI ; 36B9 CALL 02A77H ; 36BA Turn off Hardware Time Out CALL 03919H ; 36BD Push Log Buffer (33h,33h,33h,30h) HALT ; 36C0 LD A,(0644BH) ; 36C1 CP 002H ; 36C4 JR NZ,036F3H ; 36C6 LD A,(06449H) ; 36C8 OR A ; 36CB JR NZ,036F3H ; 36CC LD A,(06652H) ; 36CE Codigo de Idioma CP 000H ; 36D1 JR Z,036F3H ; 36D3 LD A,(0641AH) ; 36D5 Timer 2B OR A ; 36D8 JR Z,036ECH ; 36D9 CP 001H ; 36DB JR NZ,036F7H ; 36DD ; Timer 2B == 1 LD A,000H ; 36DF LD (06652H),A ; 36E1 Codigo de Idioma LD HL,00000H ; 36E4 LD (06650H),HL ; 36E7 JR 036F7H ; 36EA LD A,006H ; 36EC LD (0641AH),A ; 36EE Timer 2B = 6 segundos JR 036F7H ; 36F1 XOR A ; 36F3 LD (0641AH),A ; 36F4 Timer 2B = 0 POP IY ; 36F7 POP IX ; 36F9 POP HL ; 36FB POP DE ; 36FC POP BC ; 36FD POP AF ; 36FE EI ; 36FF RETI ; 3700 ; ; Llamado si timer 8B = 1 (WORD) (comando de lectura??) ; Un tick antes de finalizacion del tiempo ; LECTURA DE TECLADO? LD A,(06412H) ; 3702 Timer BB OR A ; 3705 JP NZ,0384AH ; 3706 RET LD A,003H ; 3709 LD (06412H),A ; 370B Timer BB2=03h LD A,0FFH ; 370E LD (0643EH),A ; 3710 (643Eh)=FFh LD HL,0643FH ; 3713 LD C,0FEH ; 3716 LD B,000H ; 3718 LD A,C ; 371A OUT (000H),A ; 371B Port de la Matriz del teclado NOP ; 371F IN A,(000H) ; 371E Port de la Matriz del teclado OR 0E0H ; 3720 LD (HL),A ; 3722 INC HL ; 3723 INC B ; 3724 RLC C ; 3725 LD A,005H ; 3727 CP B ; 3729 JR NZ,0371AH ; 372A XOR A ; 372C OUT (000H),A ; 372D Port de la Matriz del teclado LD B,000H ; 372F LD HL,0643FH ; 3731 LD A,(HL) ; 3734 CP 0FFH ; 3735 JR NZ,0373BH ; 3737 If Key Pressed on this line Go On JR 0375FH ; 3739 Do Looping LD A,B ; 373B LD (0643CH),A ; 373C (643Ch) = Fila de la Tecla Presionada LD D,000H ; 373F LD A,(HL) ; 3741 LD E,A ; 3742 BIT 0,E ; 3743 JR NZ,03757H ; 3745 LD A,(0643EH) ; 3747 (643Eh) = Salida de la Matriz CP 0FFH ; 374A JP NZ,03825H ; 374C Restart Timer 8B and RET LD A,(HL) ; 374F LD (0643EH),A ; 3750 (643Eh) = Salida de la Matriz LD A,D ; 3753 LD (0643DH),A ; 3754 (643Dh) = Columna de la Tecla Presionada RR E ; 3757 INC D ; 3759 LD A,005H ; 375A CP D ; 375C JR NZ,03743H ; 375D INC HL ; 375F INC B ; 3760 LD A,005H ; 3761 CP B ; 3763 JR NZ,03734H ; 3764 Loop LD A,(0643EH) ; 3766 CP 0FFH ; 3769 JP Z,0382CH ; 376B If no Key Pressed 382Ch LD DE,00005H ; 376E LD HL,0384BH ; 3771 Matrix Layout LD A,(0643CH) ; 3774 Fila de la Tecla Presionada U to D OR A ; 3777 CP 000H ; 3778 JR Z,03780H ; 377A ADD HL,DE ; 377C DEC A ; 377D JR 03777H ; 377E LD A,(0643DH) ; 3780 Columna de la Tecla Presionada R to L OR A ; 3783 CP 000H ; 3784 JR Z,0378CH ; 3786 INC HL ; 3788 DEC A ; 3789 JR 03783H ; 378A LD A,(HL) ; 378C HL = Puntero a el ASCII de la Tecla Pressionada CP VOL_KEY ; 378D JR NZ,037BAH ; 378F ; VOL_KEY Pressed; LD A,(065E3H) ; 3791 Codigo de Idioma INC A ; 3794 CP 004H ; 3795 JR C,037AAH ; 3797 XOR A ; 3799 Codigo de Idioma > 4 ? => LD (065E3H),A ; 379A Codigo de Idioma = 00 IN A,(041H) ; 379D SET 4,A ; 379F OUT (041H),A ; 37A1 Si el Codigo de Idioma == 0 RES 4,A ; 37A3 (P41.4) = 1, (P41.4) = 0 OUT (041H),A ; 37A5 JP 037DEH ; 37A7 LD (065E3H),A ; 37AA Codigo de Idioma++ IN A,(041H) ; 37AD SET 6,A ; 37AF OUT (041H),A ; 37B1 Si el Codigo de Idioma == 0 RES 6,A ; 37B3 (P41.6) = 1, (P41.6) = 0 OUT (041H),A ; 37B5 JP 037DEH ; 37B7 LD A,(065E2H) ; 37BA OR A ; 37BD JR Z,037DEH ; 37BE LD A,(HL) ; 37C0 CP 03Fh ; 37C1 JR NC,037CEH ; 37C3 A >= 03F? LD A,(HL) ; 37C5 AND 00FH ; 37C6 CALL 03BCDH ; 37C8 Dial Number A in DTMF JP 03825H ; 37CB Restart Timer 8B and RET CP _*_KEY ; 37CE JR Z,037D6H ; 37D0 CP _#_KEY ; 37D2 JR NZ,037DEH ; 37D4 AND 00FH ; 37D6 CALL 03BCDH ; 37D8 Dial Number A in DTMF JP 03825H ; 37DB Restart Timer 8B and RET LD A,(HL) ; 37DE CALL 03DBDH ; 37DF Put Key in Buffer #1 Carry On Error LD A,(HL) ; 37E2 CP VOL_KEY ; 37E3 JR Z,037E9H ; 37E5 JR 03825H ; 37E7 Restart Timer 8B and RET ; VOL_KEY Pressed; LD A,(06675H) ; 37E9 OR A ; 37EC JR NZ,03825H ; 37ED Restart Timer 8B and RET LD A,(0644AH) ; 37EF OR A ; 37F2 JR NZ,03825H ; 37F3 Restart Timer 8B and RET LD A,(06652H) ; 37F5 Codigo de Idioma CP 004H ; 37F8 JR Z,03818H ; 37FA INC A ; 37FC LD (06652H),A ; 37FD Codigo de Idioma SLA A ; 3800 LD HL,03864H ; 3802 LD C,A ; 3805 LD B,000H ; 3806 ADD HL,BC ; 3808 LD E,(HL) ; 3809 INC HL ; 380A LD D,(HL) ; 380B EX DE,HL ; 380C XOR A ; 380D LD BC,Espanol ; 380E SBC HL,BC ; 3811 LD (06650H),HL ; 3813 JR 03825H ; 3816 Restart Timer 8B and RET LD A,000H ; 3818 LD (06652H),A ; 381A Codigo de Idioma LD HL,00000H ; 381D LD (06650H),HL ; 3820 JR 03825H ; 3823 Restart Timer 8B and RET LD A,014H ; 3825 LD (06420H),A ; 3827 Timer 8B = 14h JR 0384AH ; 382A RET LD A,(065E2H) ; 382C OR A ; 382F JR Z,03835H ; 3830 CALL 03BE7H ; 3832 Turn Off DTMF Tone & Output XOR A ; 3835 LD (06420H),A ; 3836 Timer 8B =0 LD A,(0642CH) ; 3839 BIT 4,A ; 383C JR Z,0384AH ; 383E RES 4,A ; 3840 LD (0642CH),A ; 3842 LD A,001H ; 3845 LD (065EDH),A ; 3847 RET ; 384A ; FIN (EL FINAL) (FINNALE MOLTO GRANDIOSO) 384B db '321', 0ffh, '@' 3850 db '654', 0ffh, 'B' 3855 db '987', 0ffh, '>' 385A db ';0:', 0ffh, 'A' 385F db 0ffh,0ffh,0ffh,0ffh, '?' 3864 dw Espanol,Ingles,Aleman,Italiano,Portugues LD A,(06677H) ; 386E AND 010H ; 3871 JR NZ,03894H ; 3873 XOR A ; 3875 LD (06448H),A ; 3876 LD (06435H),A ; 3879 LD (0642BH),A ; 387C Timer 6W LD A,(0642DH) ; 387F AND 0EEH ; 3882 LD (0642DH),A ; 3884 LD A,(065EBH) ; 3887 OR A ; 388A JR NZ,0389EH ; 388B LD A,001H ; 388D LD (065EDH),A ; 388F JR 0389EH ; 3892 LD A,001H ; 3894 LD (06448H),A ; 3896 LD A,02EH ; 3899 LD (0642BH),A ; 389B Timer 6W RET ; 389E LD A,(06678H) ; 389F AND 040H ; 38A2 JR Z,038B7H ; 38A4 XOR A ; 38A6 LD (06449H),A ; 38A7 LD A,(065ECH) ; 38AA OR A ; 38AD JR NZ,038BCH ; 38AE LD A,001H ; 38B0 LD (065EDH),A ; 38B2 JR 038BCH ; 38B5 LD A,001H ; 38B7 LD (06449H),A ; 38B9 RET ; 38BC LD A,(06677H) ; 38BD AND 040H ; 38C0 JR Z,038CEH ; 38C2 LD A,(0642CH) ; 38C4 RES 7,A ; 38C7 LD (0642CH),A ; 38C9 JR 038D6H ; 38CC LD A,(0642CH) ; 38CE SET 7,A ; 38D1 LD (0642CH),A ; 38D3 RET ; 38D6 LD A,(06678H) ; 38D7 AND 080H ; 38DA JR Z,038E4H ; 38DC XOR A ; 38DE LD (06601H),A ; 38DF JR 038E9H ; 38E2 LD A,001H ; 38E4 LD (06601H),A ; 38E6 RET ; 38E9 LD A,(06678H) ; 38EA AND 020H ; 38ED JR Z,038FCH ; 38EF XOR A ; 38F1 LD (0644AH),A ; 38F2 LD A,001H ; 38F5 LD (065E5H),A ; 38F7 JR 03918H ; 38FA LD A,001H ; 38FC LD (0644AH),A ; 38FE LD A,(065E5H) ; 3901 OR A ; 3904 JR Z,03918H ; 3905 LD A,(0642CH) ; 3907 SET 6,A ; 390A LD (0642CH),A ; 390C LD A,001H ; 390F LD (065EDH),A ; 3911 XOR A ; 3914 LD (065E5H),A ; 3915 RET ; 3918 LD A,'3' ; 3919 Push Log Buffer (33h,33h,33h,30h) CALL 03FBCH ; 391B Put Log Buffer CALL 03FBCH ; 391E Put Log Buffer CALL 03FBCH ; 3921 Put Log Buffer LD A,'0' ; 3924 CALL 03FBCH ; 3926 Put Log Buffer RET ; 3929 3A20 03 03 0F 03 04 06 3A30 10 04 03 04 03 03 03 03-03 03 03 03 06 03 03 03 PUSH AF ; 3940 PUSH BC ; 3941 PUSH DE ; 3942 PUSH HL ; 3943 XOR A ; 3944 LD (06E89H),A ; 3945 (6E89h)=0 LD A,(06E88H) ; 3948 INC A ; 394B LD (06E88H),A ; 394C (6E88h)++ DI ; 394F Disable Interrupt XOR A ; 3950 LD (065BDH),A ; 3951 LD HL,0623DH ; 3954 LD (0627FH),HL ; 3957 INC HL ; 395A LD (0627DH),HL ; 395B Clear Buffer #6 XOR A ; 395E LD (065BCH),A ; 395F LD HL,061F9H ; 3962 LD (0623BH),HL ; 3965 INC HL ; 3968 LD (06239H),HL ; 3969 Clear Buffer #5 LD A,000H ; 396C LD (06602H),A ; 396E 6602 = 0 EI ; 3971 Enable Interrupt LD A,002H ; 3972 CALL 03F16H ; 3974 Buffered (P68)=02 LD HL,0392AH ; 3977 LD A,(06552H) ; 397A SUB 011H ; 397D LD E,A ; 397F LD D,000H ; 3980 ADD HL,DE ; 3982 LD A,(HL) ; 3983 A=(392Ah+(6552h)-11h) LD (06550H),A ; 3984 LD B,A ; 3987 CALL 03F16H ; 3988 Buffered (P68)=A DEC B ; 398B LD A,(06E88H) ; 398C CALL 03F16H ; 398F Buffered (P68)=A DEC B ; 3992 LD HL,06552H ; 3993 XOR A ; 3996 XOR (HL) ; 3997 PUSH AF ; 3998 LD A,(HL) ; 3999 CALL 03F16H ; 399A Buffered (P68)=(++6552)^(6552++) POP AF ; 399D INC HL ; 399E DJNZ 03997H ; 399F LD B,A ; 39A1 LD A,003H ; 39A2 CALL 03F16H ; 39A4 Buffered (P68)=03 LD A,B ; 39A7 CALL 03F16H ; 39A8 Buffered (P68)=(++6552)^(6552++) LD A,(06552H) ; 39AB CP 015H ; 39AE JR NZ,039BDH ; 39B0 LD A,(06553H) ; 39B2 CP 032H ; 39B5 JR C,039BDH ; 39B7 LD A,02DH ; 39B9 JR 039BFH ; 39BB LD A,014H ; 39BD LD (0641DH),A ; 39BF Timer 5B=14h Segs LD A,002H ; 39C2 LD (06E8CH),A ; 39C4 (6E8Ch)=02 CALL 03EB7H ; 39C7 Buffered A=(P68) JR NC,039EDH ; 39CA LD A,(06E8CH) ; 39CC CP 002H ; 39CF JR NZ,039DDH ; 39D1 LD A,(0641DH) ; 39D3 Timer 5B OR A ; 39D6 JR NZ,039C7H ; 39D7 LD A,011H ; 39D9 JR 039E7H ; 39DB LD A,(06413H) ; 39DD Timer BB OR A ; 39E0 JR NZ,039C7H ; 39E1 LD A,012H ; 39E3 JR 039E7H ; 39E5 CALL 03AECH ; 39E7 Algo al Log Buffer y 'PROBLEMA | CUELGUE' JP 03ADFH ; 39EA LD B,A ; 39ED LD A,(06E8CH) ; 39EE CP 002H ; 39F1 JR Z,03A4CH ; 39F3 CP 003H ; 39F5 JP Z,03A7EH ; 39F7 CP 004H ; 39FA JP Z,03A8EH ; 39FC CP 005H ; 39FF JP Z,03AA3H ; 3A01 CP 006H ; 3A04 JP Z,03AC8H ; 3A06 CP 007H ; 3A09 JR Z,03A3DH ; 3A0B LD A,B ; 3A0D CALL 03B00H ; 3A0E Algo Al Log Buffer LD A,B ; 3A11 CP 003H ; 3A12 JR NZ,03A1FH ; 3A14 LD A,(06E88H) ; 3A16 INC A ; 3A19 LD (06E88H),A ; 3A1A JR 03A27H ; 3A1D CP 004H ; 3A1F JR NZ,03A27H ; 3A21 XOR A ; 3A23 LD (06E88H),A ; 3A24 LD A,(06E89H) ; 3A27 INC A ; 3A2A LD (06E89H),A ; 3A2B CP 003H ; 3A2E JR Z,03A35H ; 3A30 JP 0394FH ; 3A32 LD A,013H ; 3A35 CALL 03AECH ; 3A37 Algo al Log Buffer y 'PROBLEMA | CUELGUE' JP 03ADFH ; 3A3A LD A,(06E8BH) ; 3A3D CP B ; 3A40 JP Z,03ADFH ; 3A41 LD A,014H ; 3A44 CALL 03AECH ; 3A46 Algo al Log Buffer y 'PROBLEMA | CUELGUE' JP 03ADFH ; 3A49 LD A,002H ; 3A4C CP B ; 3A4E JR NZ,03A65H ; 3A4F LD A,003H ; 3A51 LD (06E8CH),A ; 3A53 LD HL,0644DH ; 3A56 XOR A ; 3A59 LD (06E8BH),A ; 3A5A LD A,00AH ; 3A5D LD (06413H),A ; 3A5F Timer BB JP 039C7H ; 3A62 LD A,015H ; 3A65 CP B ; 3A67 JR Z,03A71H ; 3A68 LD A,015H ; 3A6A CALL 03AECH ; 3A6C Algo al Log Buffer y 'PROBLEMA | CUELGUE' JR 03ADFH ; 3A6F LD A,00AH ; 3A71 LD (06413H),A ; 3A73 Timer BB LD A,008H ; 3A76 LD (06E8CH),A ; 3A78 JP 039C7H ; 3A7B LD A,B ; 3A7E LD (HL),A ; 3A7F INC HL ; 3A80 LD A,004H ; 3A81 LD (06E8CH),A ; 3A83 LD A,00AH ; 3A86 LD (06413H),A ; 3A88 Timer BB JP 039C7H ; 3A8B LD A,B ; 3A8E LD (HL),A ; 3A8F INC HL ; 3A90 LD A,002H ; 3A91 LD (06E8AH),A ; 3A93 LD A,005H ; 3A96 LD (06E8CH),A ; 3A98 LD A,00AH ; 3A9B LD (06413H),A ; 3A9D Timer BB JP 039C7H ; 3AA0 LD A,B ; 3AA3 LD (HL),A ; 3AA4 LD A,(06E8BH) ; 3AA5 XOR (HL) ; 3AA8 INC HL ; 3AA9 LD (06E8BH),A ; 3AAA LD A,(06E8AH) ; 3AAD INC A ; 3AB0 LD (06E8AH),A ; 3AB1 LD B,A ; 3AB4 LD A,(0644DH) ; 3AB5 CP B ; 3AB8 JR NZ,03AC0H ; 3AB9 LD A,006H ; 3ABB LD (06E8CH),A ; 3ABD LD A,00AH ; 3AC0 LD (06413H),A ; 3AC2 Timer BB JP 039C7H ; 3AC5 LD A,003H ; 3AC8 CP B ; 3ACA JR NZ,03ADAH ; 3ACB LD A,007H ; 3ACD LD (06E8CH),A ; 3ACF LD A,00AH ; 3AD2 LD (06413H),A ; 3AD4 Timer BB JP 039C7H ; 3AD7 LD A,016H ; 3ADA CALL 03AECH ; 3ADC Algo al Log Buffer y 'PROBLEMA | CUELGUE' LD A,004H ; 3ADF CALL 03F16H ; 3AE1 Buffered (P68)=A CALL 0408FH ; 3AE4 (6418h)=0Ch POP HL ; 3AE7 POP DE ; 3AE8 POP BC ; 3AE9 POP AF ; 3AEA RET ; 3AEB CALL 03B00H ; 3AEC Algo Al Log Buffer LD A,001H ; 3AEF LD (065EDH),A ; 3AF1 LD A,(0642CH) ; 3AF4 SET 3,A ; 3AF7 LD (0642CH),A ; 3AF9 CALL 011D8H ; 3AFC Write 'PROBLEMA | CUELGUE' RET ; 3AFF PUSH AF ; 3B00 PUSH BC ; 3B01 CALL 03FBCH ; 3B02 Put Log Buffer LD A,(06E88H) ; 3B05 CALL 03FBCH ; 3B08 Put Log Buffer LD A,(06552H) ; 3B0B CALL 03FBCH ; 3B0E Put Log Buffer LD A,(06606H) ; 3B11 (6606h)=3 => FICHAS =/=> PULSOS LD B,A ; 3B14 LD A,040H ; 3B15 OR B ; 3B17 CALL 03FBCH ; 3B18 Put Log Buffer POP BC ; 3B1B POP AF ; 3B1C RET ; 3B1D 3B1E _0 db 0D7h ; 1101-0111 1331.7-935.1 3B1F _1 db 0EEh ; 1110-1110 1215.9-701.3 3B20 _2 db 0DEh ; 1101-1110 1331.7-701.3 3B21 _3 db 0BEh ; 1011-1110 1471.9-701.3 3B22 _4 db 0EDh ; 1110-1101 1215.9-771.4 3B23 _5 db 0DDh ; 1101-1101 1331.7-771.4 3B24 _6 db 0BDh ; 1011-1101 1471.9-771.4 3B25 _7 db 0EBh ; 1110-1011 1215.9-857.2 3B26 _8 db 0DBh ; 1101-1011 1331.7-857.2 3B27 _9 db 0BBh ; 1011-1011 1471.9-857.2 3B28 _* db 0E7h ; 1110-0111 1215.9-935.1 3B29 _# db 0B7h ; 1011-0111 1471.9-935.1 3B2A _Tone db 0CEh ; 1100-1110 -701.3 PUSH AF ; 3B2E Changes P02,P46,P41,P61,P40,(6604h)=0 IN A,(002H) ; 3B2F AND 0F0H ; 3B31 OR 004H ; 3B33 OUT (002H),A ; 3B35 (P02)=(P02) & 1111.0000 | 0000.0100 XOR A ; 3B37 LD (06604H),A ; 3B38 (6604h)=0 IN A,(046H) ; 3B3B RES 5,A ; 3B3D OUT (046H),A ; 3B3F (P46.5)=0 IN A,(041H) ; 3B41 AND 002H ; 3B43 OR 090H ; 3B45 OUT (041H),A ; 3B47 (P41)=(P41) & 0000.0010 | 1001.000 AND 002H ; 3B49 OR 0A0H ; 3B4B OUT (041H),A ; 3B4D (P41)=(P41) & 0000.0010 | 1010.0000 IN A,(061H) ; 3B4F AND 0B4H ; 3B51 OR 008H ; 3B53 OUT (061H),A ; 3B55 (P61)=(P61) & 1011.0100 | 0000.1000 LD A,0E1H ; 3B57 CALL 03CDFH ; 3B59 A.5=!(P42.1) (P40)=A CALL 03B7CH ; 3B5C Delay(6) LD A,0E4H ; 3B5F CALL 03CDFH ; 3B61 A.5=!(P42.1) (P40)=A CALL 03B7CH ; 3B64 Delay(6) LD A,0E0H ; 3B67 CALL 03CDFH ; 3B69 A.5=!(P42.1) (P40)=A POP AF ; 3B6C RET ; 3B6D LD A,098H ; 3B6E Delay(250d) LD (06411H),A ; 3B70 Timer BB JR 03B88H ; 3B73 LD A,020H ; 3B75 Delay(32d) LD (06411H),A ; 3B77 Timer BB JR 03B88H ; 3B7A LD A,006H ; 3B7C Delay(6d) LD (06411H),A ; 3B7E Timer BB JR 03B88H ; 3B81 LD A,002H ; 3B83 Delay(2d) LD (06411H),A ; 3B85 Timer BB LD A,(06411H) ; 3B88 Timer BB OR A ; 3B8B JR NZ,03B88H ; 3B8C RET ; 3B8E PUSH AF ; 3B8F (P41.3) = 0 (Cuelga) IN A,(041H) ; 3B90 RES 3,A ; 3B92 OUT (041H),A ; 3B94 POP AF ; 3B96 RET ; 3B97 PUSH AF ; 3B98 (P40.6) = 1 IN A,(040H) ; 3B99 SET 6,A ; 3B9B OUT (040H),A ; 3B9D POP AF ; 3B9F RET ; 3BA0 PUSH AF ; 3BA1 (P41.3) = 1 (Descuelga) IN A,(041H) ; 3BA2 SET 3,A ; 3BA4 OUT (041H),A ; 3BA6 POP AF ; 3BA8 RET ; 3BA9 PUSH AF ; 3BAA (P40.6)=0 IN A,(040H) ; 3BAB RES 6,A ; 3BAD OUT (040H),A ; 3BAF POP AF ; 3BB1 RET ; 3BB2 ;----- ; Lo primero que se hace luego de imprimir 'Inserte tarjeta' ; Esta rutina espera cualquier IRQ ; LD A,(06418H) ; 3BB3 - Semaforo - Run Condition OR A ; 3BB6 JR NZ,03BBDH ; 3BB7 OUT (00EH),A ; 3BB9 ; port 0e <- JR 03BBEH ; 3BBB HALT ; 3BBD Espera que se se lea la tarjeta RET ; 3BBE PUSH AF ; 3BBF LD A,09EH ; 3BC0 OUT (060H),A ; 3BC2 (P60)=9Eh POP AF ; 3BC4 Play 701.3 Hz on DTMF chip RET ; 3BC5 PUSH AF ; 3BC6 (P60) = FFh LD A,0FFH ; 3BC7 OUT (060H),A ; 3BC9 POP AF ; 3BCB RET ; 3BCC PUSH AF ; 3BCD PUSH BC ; 3BCE PUSH HL ; 3BCF CALL 03B8FH ; 3BD0 (P41.3) = 0 (Cuelga) LD HL,03B1EH ; 3BD3 LD B,000H ; 3BD6 LD C,A ; 3BD8 ADD HL,BC ; 3BD9 LD A,(HL) ; 3BDA OUT (060H),A ; 3BDB IN A,(041H) ; 3BDD SET 0,A ; 3BDF OUT (041H),A ; 3BE1 (P41.0) = 1 POP HL ; 3BE3 POP BC ; 3BE4 POP AF ; 3BE5 RET ; 3BE6 ;------------------------------------- ; PUSH AF ; 3BE7 LD A,0FFH ; 3BE8 OUT (060H),A ; 3BEA Turn off DTMF dialer chip IN A,(041H) ; 3BEC RES 0,A ; 3BEE OUT (041H),A ; 3BF0 Inhibit DTMF Output LD A,(0644BH) ; 3BF2 CP 006H ; 3BF5 CALL Z,03BA1H ; 3BF7 (P41.3) = 1 (Descuelga) POP AF ; 3BFA RET ; 3BFB PUSH AF ; 3BFC LD A,098H ; 3BFD LD (06411H),A ; 3BFF Timer BB LD A,(06411H) ; 3C02 Timer BB OR A ; 3C05 JR Z,03C24H ; 3C06 LD A,(06603H) ; 3C08 OR A ; 3C0B JR NZ,03C02H ; 3C0C LD A,(06604H) ; 3C0E OR A ; 3C11 JR Z,03C24H ; 3C12 LD A,(06411H) ; 3C14 Timer BB OR A ; 3C17 JR Z,03C24H ; 3C18 LD A,(06605H) ; 3C1A OR A ; 3C1D JR Z,03C24H ; 3C1E CP 003H ; 3C20 JR NZ,03C14H ; 3C22 POP AF ; 3C24 RET ; 3C25 ;--------------------------------------------- ; Inicilizacion de tarjeta ;------------------------------------- PUSH AF ; 3C26 IN A,(061H) ; 3C27 SET 4,A ; 3C29 OUT (061H),A ; 3C2B IN A,(061H) ; 3C2D SET 2,A ; 3C2F OUT (061H),A ; 3C31 CALL 03B7CH ; 3C33 Delay(6) LD A,013H ; 3C36 OUT (066H),A ; 3C38 LD A,0E6H ; 3C3A OUT (067H),A ; 3C3C IN A,(065H) ; 3C3E POP AF ; 3C40 RET ; 3C41 PUSH AF ; 3C42 (P61.4)=0 (P61.2)=0 (P66)=0 (P67)=0 IN A,(061H) ; 3C43 RES 4,A ; 3C45 OUT (061H),A ; 3C47 (P61.4) = 0 CALL 03B7CH ; 3C49 Delay(6) CALL 03B7CH ; 3C4C Delay(6) IN A,(061H) ; 3C4F RES 2,A ; 3C51 OUT (061H),A ; 3C53 (P61.2) = 0 XOR A ; 3C55 OUT (066H),A ; 3C56 (P66) = 0 OUT (067H),A ; 3C58 (P67) = 0 POP AF ; 3C5A RET ; 3C5B PUSH AF ; 3C5C PUSH HL ; 3C5D LD A,0E6H ; 3C5E OUT (047H),A ; 3C60 LD A,013H ; 3C62 OUT (046H),A ; 3C64 IN A,(045H) ; 3C66 XOR A ; 3C68 LD (065BFH),A ; 3C69 Buffer #4 Counter LD HL,06305H ; 3C6C LD (06387H),HL ; 3C6F INC HL ; 3C72 LD (06385H),HL ; 3C73 XOR A ; 3C76 LD (065BEH),A ; 3C77 Buffer #3 Counter LD HL,06281H ; 3C7A LD (06303H),HL ; 3C7D INC HL ; 3C80 LD (06301H),HL ; 3C81 POP HL ; 3C84 POP AF ; 3C85 RET ; 3C86 PUSH AF ; 3C87 CALL 03BFCH ; 3C88 XOR A ; 3C8B OUT (046H),A ; 3C8C POP AF ; 3C8E RET ; 3C8F ; ZeroF = !(P64h.4) IN A,(064H) ; 3C90 AND 010H ; 3C92 CP 010H ; 3C94 RET ; 3C96 ; ZeroF = !(P44h.6) IN A,(044H) ; 3C97 AND 040H ; 3C99 CP 040H ; 3C9B RET ; 3C9D IN A,(042H) ; 3C9E AND 001H ; 3CA0 JR Z,03CABH ; 3CA2 LD A,(0642DH) ; 3CA4 SET 2,A ; 3CA7 JR 03CB0H ; 3CA9 LD A,(0642DH) ; 3CAB RES 2,A ; 3CAE LD (0642DH),A ; 3CB0 RET ; 3CB3 LD A,(0641EH) ; 3CB4 Timer 6B 641E==0 OR A ; 3CB7 Prende el Bit 7 del Port 61 JR NZ,03CC5H ; 3CB8 y Hace 641E=02 IN A,(061H) ; 3CBA OR 080H ; 3CBC OUT (061H),A ; 3CBE LD A,002H ; 3CC0 LD (0641EH),A ; 3CC2 Timer 6B RET ; 3CC5 IN A,(061H) ; 3CC6 Apaga el Bit 7 del Port 61 AND 07FH ; 3CC8 OUT (061H),A ; 3CCA RET ; 3CCC ; Subrutina PUSH AF ; 3CCD IN A,(042H) ; 3CCE AND 002H ; 3CD0 JR NZ,03CD9H ; 3CD2 POP AF ; 3CD4 RES 5,A ; 3CD5 JR 03CDCH ; 3CD7 POP AF ; 3CD9 SET 5,A ; 3CDA OUT (040H),A ; 3CDC RET ; 3CDE PUSH AF ; 3CDF IN A,(042H) ; 3CE0 AND 002H ; 3CE2 JR NZ,03CEBH ; 3CE4 POP AF ; 3CE6 SET 5,A ; 3CE7 JR 03CEEH ; 3CE9 POP AF ; 3CEB RES 5,A ; 3CEC OUT (040H),A ; 3CEE RET ; 3CF0 IN A,(041H) ; 3CF1 (P41.7)=1, (P80)=90h SET 7,A ; 3CF3 OUT (041H),A ; 3CF5 LD A,009H ; 3CF7 OUT (080H),A ; 3CF9 RET ; 3CFB XOR A ; 3CFC OUT (080H),A ; 3CFD IN A,(041H) ; 3CFF RES 7,A ; 3D01 OUT (041H),A ; 3D03 RET ; 3D05 IN A,(041H) ; 3D06 SET 1,A ; 3D08 OUT (041H),A ; 3D0A RET ; 3D0C IN A,(041H) ; 3D0D RES 1,A ; 3D0F OUT (041H),A ; 3D11 RET ; 3D13 XOR A ; 3D14 LD (065E3H),A ; 3D15 IN A,(041H) ; 3D18 SET 4,A ; 3D1A OUT (041H),A ; 3D1C RES 4,A ; 3D1E OUT (041H),A ; 3D20 RET ; 3D22 DB 01h,02h,04h,08h,16h,32h,64h,FFh ; HL = Comiezo del Buffer ; IX = Fin del Buffer PUSH HL ; 3D2B PUSH IX ; 3D2C POP HL ; 3D2E XOR A ; 3D2F SBC HL,DE ; 3D30 POP HL ; 3D32 JR Z,03D5FH ; 3D33 IX == DE ? 3D5F DEC IX ; 3D35 PUSH HL ; 3D37 PUSH DE ; 3D38 PUSH IX ; 3D39 POP DE ; 3D3B DE = IX-1 INC IX ; 3D3C XOR A ; 3D3E SBC HL,DE ; 3D3F POP DE ; 3D41 POP HL ; 3D42 JR Z,03D5CH ; 3D43 Si HL == IX-1? Set Carry & Exit PUSH HL ; 3D45 XOR A ; 3D46 SBC HL,BC ; 3D47 Si HL == BC => HL = DE POP HL ; 3D49 JR Z,03D4FH ; 3D4A INC HL ; 3D4C JR 03D51H ; 3D4D PUSH DE ; 3D4F POP HL ; 3D50 LD A,(IY+000H) ; 3D51 DEC A ; 3D54 LD (IY+000H),A ; 3D55 XOR A ; 3D58 LD A,(HL) ; 3D59 JR 03D68H ; 3D5A SCF ; 3D5C Set Carry Flag & A = 0 JR 03D68H ; 3D5D PUSH HL ; 3D5F XOR A ; 3D60 SBC HL,BC ; 3D61 POP HL ; 3D63 JR Z,03D5CH ; 3D64 HL == BC ? Set Carry & Exit JR 03D4CH ; 3D66 RET ; 3D68 PUSH HL ; 3D69 PUSH DE ; 3D6A PUSH IX ; 3D6B POP DE ; 3D6D OR A ; 3D6E SBC HL,DE ; 3D6F POP DE ; 3D71 POP HL ; 3D72 JR Z,03D8FH ; 3D73 IX == HL ? Set Carry & Ret LD (IX+000H),A ; 3D75 PUSH HL ; 3D78 PUSH IX ; 3D79 POP HL ; 3D7B XOR A ; 3D7C SBC HL,BC ; 3D7D POP HL ; 3D7F JR Z,03D86H ; 3D80 INC IX ; 3D82 JR 03D89H ; 3D84 PUSH DE ; 3D86 POP IX ; 3D87 INC (IY+000H) ; 3D89 XOR A ; 3D8C JR 03D90H ; 3D8D SCF ; 3D8F RET ; 3D90 LD HL,(061DFH) ; 3D91 LD DE,061CDH ; 3D94 LD BC,061DCH ; 3D97 LD IX,(061DDH) ; 3D9A LD IY,065BAH ; 3D9E Buffer #1 Counter RET ; 3DA2 ; Get Key Pressed PUSH BC ; 3DA3 PUSH HL ; 3DA4 PUSH DE ; 3DA5 PUSH IX ; 3DA6 PUSH IY ; 3DA8 CALL 03D91H ; 3DAA Inicializa algunos valores CALL 03D2BH ; 3DAD JR C,03DB5H ; 3DB0 LD (061DFH),HL ; 3DB2 POP IY ; 3DB5 POP IX ; 3DB7 POP DE ; 3DB9 POP HL ; 3DBA POP BC ; 3DBB RET ; 3DBC ; Put Buffer #1 PUSH BC ; 3DBD PUSH HL ; 3DBE PUSH DE ; 3DBF PUSH IX ; 3DC0 PUSH IY ; 3DC2 CALL 03D91H ; 3DC4 CALL 03D69H ; 3DC7 Buffer Insert LD (061DDH),IX ; 3DCA POP IY ; 3DCE POP IX ; 3DD0 POP DE ; 3DD2 POP HL ; 3DD3 POP BC ; 3DD4 RET ; 3DD5 LD HL,(061F7H) ; 3DD6 LD DE,061E1H ; 3DD9 LD BC,061F4H ; 3DDC LD IX,(061F5H) ; 3DDF LD IY,065BBH ; 3DE3 Buffer #2 Counter (Numero Marcado) RET ; 3DE7 ; Get Buffer #2 (Numero Marcado) PUSH BC ; 3DE8 PUSH HL ; 3DE9 PUSH DE ; 3DEA PUSH IX ; 3DEB PUSH IY ; 3DED CALL 03DD6H ; 3DEF ; HL = (061F7H) ; DE = 61E1h CALL 03D2BH ; 3DF2 JR C,03DFAH ; 3DF5 LD (061F7H),HL ; 3DF7 POP IY ; 3DFA POP IX ; 3DFC POP DE ; 3DFE POP HL ; 3DFF POP BC ; 3E00 RET ; 3E01 ; Put Buffer #2 (Numero Marcado) PUSH BC ; 3E02 PUSH HL ; 3E03 PUSH DE ; 3E04 PUSH IX ; 3E05 PUSH IY ; 3E07 CALL 03DD6H ; 3E09 CALL 03D69H ; 3E0C Buffer Insert LD (061F5H),IX ; 3E0F POP IY ; 3E13 POP IX ; 3E15 POP DE ; 3E17 POP HL ; 3E18 POP BC ; 3E19 RET ; 3E1A LD HL,(06303H) ; 3E1B LD DE,06281H ; 3E1E LD BC,06300H ; 3E21 LD IX,(06301H) ; 3E24 LD IY,065BEH ; 3E28 Buffer #3 Counter RET ; 3E2C ; Get Buffer #3 PUSH BC ; 3E2D PUSH HL ; 3E2E PUSH DE ; 3E2F PUSH IX ; 3E30 PUSH IY ; 3E32 CALL 03E1BH ; 3E34 CALL 03D2BH ; 3E37 JR C,03E3FH ; 3E3A LD (06303H),HL ; 3E3C POP IY ; 3E3F POP IX ; 3E41 POP DE ; 3E43 POP HL ; 3E44 POP BC ; 3E45 RET ; 3E46 ; Put Buffer #3 PUSH BC ; 3E47 PUSH HL ; 3E48 PUSH DE ; 3E49 PUSH IX ; 3E4A PUSH IY ; 3E4C CALL 03E1BH ; 3E4E CALL 03D69H ; 3E51 Buffer Insert LD (06301H),IX ; 3E54 POP IY ; 3E58 POP IX ; 3E5A POP DE ; 3E5C POP HL ; 3E5D POP BC ; 3E5E RET ; 3E5F LD HL,(06387H) ; 3E60 LD DE,06305H ; 3E63 LD BC,06384H ; 3E66 LD IX,(06385H) ; 3E69 LD IY,065BFH ; 3E6D Buffer #4 Counter RET ; 3E71 ; Get Buffer #4 PUSH BC ; 3E72 PUSH HL ; 3E73 PUSH DE ; 3E74 PUSH IX ; 3E75 PUSH IY ; 3E77 CALL 03E60H ; 3E79 CALL 03D2BH ; 3E7C JR C,03E84H ; 3E7F LD (06387H),HL ; 3E81 POP IY ; 3E84 POP IX ; 3E86 POP DE ; 3E88 POP HL ; 3E89 POP BC ; 3E8A RET ; 3E8B ; Put Buffer #4 PUSH BC ; 3E8C PUSH HL ; 3E8D PUSH DE ; 3E8E PUSH IX ; 3E8F PUSH IY ; 3E91 CALL 03E60H ; 3E93 CALL 03D69H ; 3E96 Buffer Insert LD (06385H),IX ; 3E99 POP IY ; 3E9D POP IX ; 3E9F POP DE ; 3EA1 POP HL ; 3EA2 POP BC ; 3EA3 RET ; 3EA4 LD HL,(0623BH) ; 3EA5 LD DE,061F9H ; 3EA8 LD BC,06238H ; 3EAB LD IX,(06239H) ; 3EAE LD IY,065BCH ; 3EB2 Buffer #5 Counter RET ; 3EB6 ; Get Buffer #5 PUSH BC ; 3EB7 PUSH HL ; 3EB8 PUSH DE ; 3EB9 PUSH IX ; 3EBA PUSH IY ; 3EBC CALL 03EA5H ; 3EBE CALL 03D2BH ; 3EC1 JR C,03EC9H ; 3EC4 LD (0623BH),HL ; 3EC6 POP IY ; 3EC9 POP IX ; 3ECB POP DE ; 3ECD POP HL ; 3ECE POP BC ; 3ECF RET ; 3ED0 ; Put Buffer #5 PUSH BC ; 3ED1 PUSH HL ; 3ED2 PUSH DE ; 3ED3 PUSH IX ; 3ED4 PUSH IY ; 3ED6 CALL 03EA5H ; 3ED8 CALL 03D69H ; 3EDB Buffer Insert LD (06239H),IX ; 3EDE POP IY ; 3EE2 POP IX ; 3EE4 POP DE ; 3EE6 POP HL ; 3EE7 POP BC ; 3EE8 RET ; 3EE9 LD HL,(0627FH) ; 3EEA LD DE,0623DH ; 3EED LD BC,0627CH ; 3EF0 LD IX,(0627DH) ; 3EF3 LD IY,065BDH ; 3EF7 Buffer #6 Counter RET ; 3EFB ; Get Buffer #6 PUSH BC ; 3EFC PUSH HL ; 3EFD PUSH DE ; 3EFE PUSH IX ; 3EFF PUSH IY ; 3F01 CALL 03EEAH ; 3F03 CALL 03D2BH ; 3F06 JR C,03F0EH ; 3F09 LD (0627FH),HL ; 3F0B POP IY ; 3F0E POP IX ; 3F10 POP DE ; 3F12 POP HL ; 3F13 POP BC ; 3F14 RET ; 3F15 ; Put Buffer #6 PUSH BC ; 3F16 PUSH HL ; 3F17 PUSH DE ; 3F18 PUSH IX ; 3F19 PUSH IY ; 3F1B CALL 03EEAH ; 3F1D CALL 03D69H ; 3F20 Buffer Insert LD (0627DH),IX ; 3F23 POP IY ; 3F27 POP IX ; 3F29 POP DE ; 3F2B POP HL ; 3F2C POP BC ; 3F2D RET ; 3F2E LD HL,(063CBH) ; 3F2F LD DE,06389H ; 3F32 LD BC,063C8H ; 3F35 LD IX,(063C9H) ; 3F38 LD IY,065C1H ; 3F3C Buffer #7 Counter RET ; 3F40 ; Get Buffer #7 PUSH BC ; 3F41 PUSH HL ; 3F42 PUSH DE ; 3F43 PUSH IX ; 3F44 PUSH IY ; 3F46 CALL 03F2FH ; 3F48 CALL 03D2BH ; 3F4B JR C,03F53H ; 3F4E LD (063CBH),HL ; 3F50 POP IY ; 3F53 POP IX ; 3F55 POP DE ; 3F57 POP HL ; 3F58 POP BC ; 3F59 RET ; 3F5A ; Put Buffer #7 CALL 0408FH ; 3F5B (6418h)=0Ch PUSH BC ; 3F5E PUSH HL ; 3F5F PUSH DE ; 3F60 PUSH IX ; 3F61 PUSH IY ; 3F63 CALL 03F2FH ; 3F65 CALL 03D69H ; 3F68 Buffer Insert LD (063C9H),IX ; 3F6B POP IY ; 3F6F POP IX ; 3F71 POP DE ; 3F73 POP HL ; 3F74 POP BC ; 3F75 RET ; 3F76 LD HL,(0640FH) ; 3F77 LD DE,063CDH ; 3F7A LD BC,0640CH ; 3F7D LD IX,(0640DH) ; 3F80 LD IY,065C0H ; 3F84 Buffer #8 Counter RET ; 3F88 ; Get Buffer #8 PUSH BC ; 3F89 PUSH HL ; 3F8A PUSH DE ; 3F8B PUSH IX ; 3F8C PUSH IY ; 3F8E CALL 03F77H ; 3F90 CALL 03D2BH ; 3F93 JR C,03F9BH ; 3F96 LD (0640FH),HL ; 3F98 POP IY ; 3F9B POP IX ; 3F9D POP DE ; 3F9F POP HL ; 3FA0 POP BC ; 3FA1 RET ; 3FA2 ; Put Buffer #8 PUSH BC ; 3FA3 PUSH HL ; 3FA4 PUSH DE ; 3FA5 PUSH IX ; 3FA6 PUSH IY ; 3FA8 CALL 03F77H ; 3FAA CALL 03D69H ; 3FAD Buffer Insert LD (0640DH),IX ; 3FB0 POP IY ; 3FB4 POP IX ; 3FB6 POP DE ; 3FB8 POP HL ; 3FB9 POP BC ; 3FBA RET ; 3FBB ; Put Log Buffer PUSH AF ; 3FBC PUSH BC ; 3FBD PUSH DE ; 3FBE PUSH HL ; 3FBF PUSH AF ; 3FC0 LD DE,06E7CH ; 3FC1 LD BC,0667DH ; 3FC4 LD HL,(0667AH) ; 3FC7 Puntero al Proximo char del Log Buffer PUSH HL ; 3FCA XOR A ; 3FCB SBC HL,BC ; 3FCC POP HL ; 3FCE JR C,03FD8H ; 3FCF (667Ah)<667Dh ? 3FD8 PUSH HL ; 3FD1 XOR A ; 3FD2 SBC HL,DE ; 3FD3 POP HL ; 3FD5 JR C,03FD9H ; 3FD6 (667Ah)<6E7Ch ? 3FD9 EX DE,HL ; 3FD8 HL = 6E7Ch POP AF ; 3FD9 LD (HL),A ; 3FDA DEC HL ; 3FDB LD (0667AH),HL ; 3FDC Puntero al Proximo char del Log Buffer POP HL ; 3FDF POP DE ; 3FE0 POP BC ; 3FE1 POP AF ; 3FE2 RET ; 3FE3 ; Copy (HL..HL+3) to a String of 4 Hex values like '30 FF FF 10' PUSH AF ; 3FE4 Makes 65F2h=4-Hexs String of (HL..HL+3) PUSH BC ; 3FE5 PUSH DE ; 3FE6 LD DE,065F2H ; 3FE7 LD B,004H ; 3FEA PUSH BC ; 3FEC LD BC,06E7CH ; 3FED Log Buffer end XOR A ; 3FF0 PUSH HL ; 3FF1 SBC HL,BC ; 3FF2 POP HL ; 3FF4 JR NC,03FFAH ; 3FF5 HL>6E7C ? HL = Buffer Start INC HL ; 3FF7 HL++ JR 03FFDH ; 3FF8 LD HL,0667DH ; 3FFA Log Buffer Start LD A,(HL) ; 3FFD A=Last byte Saved in Log Buffer AND 0F0H ; 3FFE RRC A ; 4000 RRC A ; 4002 RRC A ; 4004 RRC A ; 4006 CP 00AH ; 4008 JR C,0400EH ; 400A ADD A,007H ; 400C ADD A,'0' ; 400E LD (DE),A ; 4010 (65F2h) = ASCII de Hi Nibble de A INC DE ; 4011 LD A,(HL) ; 4012 AND 00FH ; 4013 CP 00AH ; 4015 JR C,0401BH ; 4017 ADD A,007H ; 4019 ADD A,'0' ; 401B LD (DE),A ; 401D (65F3h) = ASCII de Lo Nibble de A INC DE ; 401E LD A,020H ; 401F LD (DE),A ; 4021 (65F4h) = ' ' INC DE ; 4022 POP BC ; 4023 DJNZ 03FECH ; 4024 4 veces POP DE ; 4026 POP BC ; 4027 POP AF ; 4028 RET ; 4029 ; Espera una cambio en el port (C) o 5 probadas y ; despues almacena la diferencia entre el valor ; de ese desde la ultima llamada y esta en (IX) ; y almacena el valor de esta llamada del Port (C) ; en (IX+1) LD H,005H ; 402A IN A,(C) ; 402C LD B,A ; 402E IN A,(C) ; 402F CP B ; 4031 JR Z,04037H ; 4032 DEC H ; 4034 JR NZ,0402EH ; 4035 Espera un cambio en el Port (C) SUB (IX+001H) ; 4037 LD (IX+000H),A ; 403A (IX) = (P(C))-(IX+1) LD A,B ; 403D LD (IX+001H),A ; 403E (IX+1) = (P(C)) anterior RET ; 4041 ; Word to String ; Input: DE -> Word ; IY -> Buffer ; Output: IY -> ASCII String del Word ptr (DE) PUSH AF ; 4042 PUSH HL ; 4043 PUSH BC ; 4044 PUSH IX ; 4045 PUSH IY ; 4047 PUSH DE ; 4049 POP IX ; 404A LD H,(IX+001H) ; 404C LD L,(IX+000H) ; 404F LD BC,0FC18H ; 4052 BC = -1000d CALL 04072H ; 4055 CALL 04063H ; 4058 POP IY ; 405B POP IX ; 405D POP BC ; 405F POP HL ; 4060 POP AF ; 4061 RET ; 4062 LD BC,0FF9CH ; 4063 BC = -100d CALL 04072H ; 4066 LD BC,0FFF6H ; 4069 BC = -10d CALL 04072H ; 406C LD BC,0FFFFH ; 406F BC = -1d ; Input: BC,HL,IY ; Output: (IY)=A=HL div -BC LD A,02FH ; 4072 INC A ; 4074 ADD HL,BC ; 4075 JR C,04074H ; 4076 SBC HL,BC ; 4078 LD (IY+000H),A ; 407A (IY) = HL div -BC INC IY ; 407D RET ; 407F ; Busca diferencias en Strings ; Input: (HL) -> String1 ; (DE) -> String2 ; B = String Max Len ; Output: (HL) & (DE) Unmodified ; B = Input B - Equal Characters PUSH HL ; 4080 PUSH DE ; 4081 LD A,(HL) ; 4082 LD C,A ; 4083 LD A,(DE) ; 4084 CP C ; 4085 JR NZ,0408CH ; 4086 INC HL ; 4088 INC DE ; 4089 DJNZ 04082H ; 408A POP DE ; 408C POP HL ; 408D RET ; 408E ; (6418h)=0Ch PUSH AF ; 408F LD A,00CH ; 4090 LD (06418H),A ; 4092 POP AF ; 4095 RET ; 4096 ;-------------------------------- ; Input: DE, HL ;Output: IY:IX = HL * DE LD B,010H ; 4097 LD IX,00000H ; 4099 LD IY,00000H ; 409D ADD IY,IY ; 40A1 ADD IX,IX ; 40A3 JR NC,040A9H ; 40A5 INC IY ; 40A7 SLA L ; 40A9 RL H ; 40AB JR NC,040B5H ; 40AD ADD IX,DE ; 40AF JR NC,040B5H ; 40B1 INC IY ; 40B3 DJNZ 040A1H ; 40B5 RET ; 40B7 LD A,B ; 40B8 HL = BC Mod DE LD B,010H ; 40B9 LD HL,00000H ; 40BB RL C ; 40BE RLA ; 40C0 ADC HL,HL ; 40C1 SBC HL,DE ; 40C3 JR NC,040C8H ; 40C5 ADD HL,DE ; 40C7 CCF ; 40C8 DJNZ 040BEH ; 40C9 RL C ; 40CB RLA ; 40CD LD B,A ; 40CE RET ; 40CF 0EDD: 19x2E --------------------------------- TELE1.Z --------------------------------- Supongamos que en un TPMTc hay un codigo parecido a ese que paso, aunque es imposible asegurarlo, si es asi, podriamos decir lo siguiente: Esos fueron 170k de codigo. Tenemos algunas pistas que fuimos sacando del analisis de el mamotreto este. No pudimos encontrar el codigo que lee la tarjeta, o bien no es el codigo de un telefono o la tarjeta la lee el 80C31 (nos inclinamos por la segunda opcion, por algunas razones que no vamos a publicar) Hay una serie de Timers de Byte (14 en total) y otra serie de timers word (5), que se usan para diversos fines, por ahi nombrados y se actualizan por IRQ. Y hay tambien una serie de 8 buffers circulares, que estan explicados por ahi tambien. Y esas dos cosas son las dos herramientas en las que se basan para hacer todo, un concepto bastante sencillo, tipico de electronicos. Por la manera en que esta el codigo esta claro que fue programado directamente en assembler, pero seguramente en un Macro-assembler, y con muchos macros (digno de destacar los procedimientos para hacer put en buffers que nunca hacen put y asi sucesivamente). So, leanlo detenidamente, lleva bastante tiempo entender algo, pero VALE LA PENA. Si se cuelgan un rato con unas rutinas que hacen algunas cosas de math, seguramente no van a comprender que se trata de un MUL y un DIV, esta bien, no lo comprendan. Pero creanselo, eso hacen. Recuerden quel el Z80 no tiene instrucciones homologas. Nota: hay un chequeo de hard que se activa cuando el telefono se resetea, y si no se desactiva al cabo de un tiempo hay que resetear el telefono (cortocircuitar la pila o abrir y cerrar la puerta). 3.1.2 Analisis del codigo del i80C31 ------------------------------> TELE2.Z <--------------------------- IRQ: #1 ??? IRQ #0 #2 Nada Timer #0 IRQ #1 Timer #1 Siempre inicializado a $F45A (62554) Ports P1.4 Tarjeta I/O P1.6 Tarjeta Puesta? Bit Memory 01 Pueso a 1 cuando W(23) se pone a 100d 02 Apagado desde la IRQ #0, 0B00 espera que se apague para seguir... 0D Controla una mascara (0111.1111) sobre 0108 Internal Memory: 23 Word Contador Decendiente inicializado a 100 o 1 25 Byte = 30 En Timer #1 26 Byte Card[0] Sacado de la tabla en 1315 segun la tarjeta 27 Byte Mascara para (x0109) 28 Byte Mascara para (x0109) 29 Byte Card[1] Sacado de la tabla en 1315 segun la tarjeta 2A Byte Card[2] Sacado de la tabla en 1315 segun la tarjeta External Memory: 0003 BYTE bit mapped 0004 BYTE copia del 0107 0005 BYTE copia del 0108 bit mapped lo copia a 18 0006 BYTE Conjetura: Port de la tarjeta: bit 0 Clock 0008 lo copia a 19 0010 BYTE copia del 0110 0101 BYTE Stack Pointer Auxiliar 0102 WORD Pointer = $ 0108 0109 BYTE bit mapped 3132 BYTE Cambiado desde adentro de la IRQ #1 = (2D)+6 3133 BYTE Cambiado desde adentro de la IRQ #1 = #F7 o #CC o #02 o #A2 3134 BYTE Seteado a 90 despues de leer la tarjeta 3135 BYTE Seteado a 10 o 00 despues de leer la tarjeta. (depende de la T) 3139..315C Tarjeta 0000 LJMP 0100 ; 0003 LJMP 0F44 ; IRQ #0 0006 MOV R7,A ; 0007 MOV R7,A ; 0008 MOV R7,A ; 0009 MOV R7,A ; 000A MOV R7,A ; 000B LJMP 026A ; Timer #0 000E MOV R7,A ; 000F MOV R7,A ; 0010 MOV R7,A ; 0011 MOV R7,A ; 0012 MOV R7,A ; 0013 LJMP 030D ; IRQ #1 0016 MOV R7,A ; 0017 MOV R7,A ; 0018 MOV R7,A ; 0019 MOV R7,A ; 001A MOV R7,A ; 001B LJMP 026B ; Timer #1 001E MOV R7,A ; 001F MOV R7,A ; 0020 MOV R7,A ; 0021 MOV R7,A ; 0022 MOV R7,A ; 0023 MOV R7,A ; 0024 MOV R7,A ; 0025 MOV R7,A ; 0026 MOV R7,A ; 0027 MOV R7,A ; 0028 MOV R7,A ; 0029 MOV R7,A ; 002A MOV R7,A ; 002B MOV R7,A ; 002C MOV R7,A ; 002D MOV R7,A ; 002E MOV R7,A ; 002F MOV R7,A ; 0030 MOV R7,A ; 0031 MOV R7,A ; 0032 MOV R7,A ; 0033 MOV R7,A ; 0034 MOV R7,A ; 0035 MOV R7,A ; 0036 MOV R7,A ; 0037 MOV R7,A ; 0038 MOV R7,A ; 0039 MOV R7,A ; 003A MOV R7,A ; 003B MOV R7,A ; 003C MOV R7,A ; 003D MOV R7,A ; 003E MOV R7,A ; 003F MOV R7,A ; 0040 ADD A,R2 ; 0041 ADD A,R2 ; 0042 JNB 31,0075 ; 0045 JNB 2A,3FF2 ; 0048 MOV R2,2A ; 004A CJNE R3,#BB,0077 ; 004D ADD A,R2 ; 004E MOV R7,A ; 004F MOV R7,A ; 0050 MOV R7,A ; 0051 MOV R7,A ; 0052 MOV R7,A ; 0053 MOV R7,A ; 0054 MOV R7,A ; 0055 MOV R7,A ; 0056 MOV R7,A ; 0057 MOV R7,A ; 0058 MOV R7,A ; 0059 MOV R7,A ; 005A MOV R7,A ; 005B MOV R7,A ; 005C MOV R7,A ; 005D MOV R7,A ; 005E MOV R7,A ; 005F MOV R7,A ; 0060 MOV R7,A ; 0061 MOV R7,A ; 0062 MOV R7,A ; 0063 MOV R7,A ; 0064 MOV R7,A ; 0065 MOV R7,A ; 0066 MOV R7,A ; 0067 MOV R7,A ; 0068 MOV R7,A ; 0069 MOV R7,A ; 006A MOV R7,A ; 006B MOV R7,A ; 006C MOV R7,A ; 006D MOV R7,A ; 006E MOV R7,A ; 006F MOV R7,A ; 0070 MOV R7,A ; 0071 MOV R7,A ; 0072 MOV R7,A ; 0073 MOV R7,A ; 0074 MOV R7,A ; 0075 MOV R7,A ; 0076 MOV R7,A ; 0077 MOV R7,A ; 0078 MOV R7,A ; 0079 MOV R7,A ; 007A MOV R7,A ; 007B MOV R7,A ; 007C MOV R7,A ; 007D MOV R7,A ; 007E MOV R7,A ; 007F MOV R7,A ; 0080 LJMP 10C8 ; 0083 LJMP 032D ; 0086 LJMP 0DA2 ; 0089 LJMP 0DFB ; 008C LJMP 1288 ; 008F LJMP 0E41 ; 0092 LJMP 11B4 ; 0095 LJMP 1211 ; 0098 LJMP 1234 ; 009B LJMP 00CB ; 009E LJMP 00CB ; 00A1 LJMP 0E8A ; 00A4 LJMP 0EB4 ; 00A7 LJMP 0ECE ; 00AA LJMP 0F24 ; 00AD LJMP 0F34 ; 00B0 LJMP 00CB ; 00B3 LJMP FFFF ; 00B6 LJMP FFFF ; 00B9 LJMP FFFF ; 00BC LJMP FFFF ; 00BF LJMP FFFF ; 00C2 LJMP FFFF ; 00C5 LJMP FFFF ; 00C8 LCALL 023D ; R2=(R6R7) R3=(R6R7+1) R6R7+=2 00CB RET ; 00CC MOV R7,A ; 00CD MOV R7,A ; 00CE MOV R7,A ; 00CF MOV R7,A ; 00D0 MOV R7,A ; 00D1 MOV R7,A ; 00D2 MOV R7,A ; 00D3 MOV R7,A ; 00D4 MOV R7,A ; 00D5 MOV R7,A ; 00D6 MOV R7,A ; 00D7 MOV R7,A ; 00D8 MOV R7,A ; 00D9 MOV R7,A ; 00DA MOV R7,A ; 00DB MOV R7,A ; 00DC MOV R7,A ; 00DD MOV R7,A ; 00DE MOV R7,A ; 00DF MOV R7,A ; 00E0 MOV R7,A ; 00E1 MOV R7,A ; 00E2 MOV R7,A ; 00E3 MOV R7,A ; 00E4 MOV R7,A ; 00E5 MOV R7,A ; 00E6 MOV R7,A ; 00E7 MOV R7,A ; 00E8 MOV R7,A ; 00E9 MOV R7,A ; 00EA MOV R7,A ; 00EB MOV R7,A ; 00EC MOV R7,A ; 00ED MOV R7,A ; 00EE MOV R7,A ; 00EF MOV R7,A ; 00F0 MOV R7,A ; 00F1 MOV R7,A ; 00F2 MOV R7,A ; 00F3 MOV R7,A ; 00F4 MOV R7,A ; 00F5 MOV R7,A ; 00F6 MOV R7,A ; 00F7 MOV R7,A ; 00F8 MOV R7,A ; 00F9 MOV R7,A ; 00FA MOV R7,A ; 00FB MOV R7,A ; 00FC MOV R7,A ; 00FD MOV R7,A ; 00FE MOV R7,A ; 00FF MOV R7,A ; ; main 0100 ORL P1,#BF ; 0103 ANL P1,#BF ; (P1)=BFh 0106 CLR D3 ; 0108 CLR D4 ; Select Register's Bank 0000 010A MOV SP,#33 ; SP=33h 010D MOV R0,#7F ; 010F CLR A ; 0110 MOV @R0,A ; 0111 DJNZ R0,0110 ; (00..7F)=00 0113 CLR 07 ; 0115 CLR 08 ; 0117 MOV P3,#FF ; (P3)=FFh 011A CLR A ; 011B MOV DPTR,#0107 ; 011E MOVX @DPTR,A ; 011F MOV DPTR,#0108 ; 0122 MOVX @DPTR,A ; 0123 MOV DPTR,#0109 ; 0126 MOVX @DPTR,A ; 0127 MOV DPTR,#010A ; 012A MOVX @DPTR,A ; 012B MOV DPTR,#010B ; 012E MOVX @DPTR,A ; 012F INC DPTR ; 0130 MOVX @DPTR,A ; (0100..010C)=00 0131 MOV DPTR,#0004 ; 0134 MOVX @DPTR,A ; (0004)=00 0135 MOV DPTR,#0006 ; 0138 MOVX @DPTR,A ; (0006)=00 0139 MOV DPTR,#0007 ; 013C MOVX @DPTR,A ; (0007)=00 R2R3 R4R5 R6R7 013D LCALL 0197 ; (0100..010F)=00 (R2..R7) = 1321 1321 010F 0140 MOV R6,#03 ; R6=03 0142 MOV R7,#0F ; R7=0F 030F 0144 LCALL 0302 ; Enable IRQs 0147 LCALL 02EE ; Enable Timer #1 014A LCALL 026B ; Call Timer #1 IRQ 014D MOV DPTR,#4000 ; 0150 MOVX A,@DPTR ; 0151 CJNE A,#AA,015B ; 0154 INC DPTR ; 0155 MOVX A,@DPTR ; 0156 CJNE A,#55,015B ; 0159 SJMP 018E ; 015B MOV R2,#00 ; 015D MOV R3,#FF ; 015F LCALL 0236 ; (R6R7-2)=R2 (R6R7-1)=R3 R6R7-=2 0162 MOV R2,#41 ; 0164 MOV R3,#00 ; 0166 MOV DPTR,#0004 ; 0169 LCALL 0DFB ; 016C MOV R2,#00 ; 016E MOV R3,#AA ; 0170 LCALL 0236 ; (R6R7-2)=R2 (R6R7-1)=R3 R6R7-=2 0173 MOV R2,#40 ; 0175 MOV R3,#00 ; 0177 MOV DPTR,#0004 ; 017A LCALL 0DFB ; 017D MOV R2,#00 ; 017F MOV R3,#55 ; 0181 LCALL 0236 ; (R6R7-2)=R2 (R6R7-1)=R3 R6R7-=2 0184 MOV R2,#40 ; 0186 MOV R3,#01 ; 0188 MOV DPTR,#0004 ; 018B LCALL 0DFB ; 018E MOV DPTR,#0000 ; 0191 LCALL 200C ; 0194 LCALL 0E41 ; 0197 MOV DPTR,#010F ; 019A MOV R2,DPH ; 019C MOV R3,DPL ; 019E MOV DPTR,#0100 ; 01A1 LCALL 01F2 ; (0100..010F)=00 01A4 MOV DPTR,#1321 ; 01A7 MOV R2,DPH ; 01A9 MOV R3,DPL ; R2R3=#1321 01AB MOV DPTR,#1321 ; 01AE LCALL 01FD ; CMP R2R3,DPTR 01B1 JZ 01DF ; 01B3 PUSH 02 ; 01B5 PUSH 03 ; 01B7 PUSH DPL ; 01B9 PUSH DPH ; 01BB MOV R0,#02 ; 01BD MOV R1,#04 ; 01BF CLR A ; 01C0 MOVC A,@A+DPTR ; 01C1 MOV @R0,A ; 01C2 INC DPTR ; 01C3 INC R0 ; 01C4 DJNZ R1,01BF ; 01C6 MOV DPL,R3 ; 01C8 MOV DPH,R2 ; 01CA MOV 02,R4 ; 01CC MOV 03,R5 ; 01CE LCALL 01F2 ; (DPTR..R2R3)=0 01D1 POP DPH ; 01D3 POP DPL ; 01D5 POP 03 ; 01D7 POP 02 ; 01D9 INC DPTR ; 01DA INC DPTR ; 01DB INC DPTR ; 01DC INC DPTR ; 01DD SJMP 01AE ; 01DF LCALL 0206 ; 01E2 13 21 13 21 01 00 ; (R2..R7) = 13 21 13 21 01 0F 01E8 LCALL 0206 ; 01EB 13 21 13 21 01 0F ; (R2..R7) = 13 21 13 21 01 0F 01F1 RET ; 01F2 LCALL 01FD ; CMP R2R3,DPTR 01F5 JNZ 01F8 ; 01F7 RET ; 01F8 CLR A ; 01F9 MOVX @DPTR,A ; 01FA INC DPTR ; 01FB SJMP 01F2 ; 01FD MOV A,R3 ; CMP R2R3,DPTR 01FE XRL A,DPL ; 0200 JNZ 0205 ; 0202 MOV A,R2 ; 0203 XRL A,DPH ; 0205 RET ; 0206 POP DPH ; 0208 POP DPL ; DPTR = Return Address 020A MOV R0,#02 ; 020C MOV R1,#06 ; 020E CLR A ; 020F MOVC A,@A+DPTR ; 0210 MOV @R0,A ; 0211 INC DPTR ; 0212 INC R0 ; 0213 DJNZ R1,020E ; (R2..R7)=ROM (Return Address++) 0215 PUSH DPL ; 0217 PUSH DPH ; DPTR=Return Address+6 0219 MOV DPL,R5 ; 021B MOV DPH,R4 ; 021D LCALL 01FD ; CMP R2R3,DPTR 0220 JZ 0235 ; 0222 CLR A ; 0223 MOVC A,@A+DPTR ; 0224 INC DPTR ; 0225 MOV R5,DPL ; 0227 MOV R4,DPH ; 0229 MOV DPL,R7 ; 022B MOV DPH,R6 ; 022D MOVX @DPTR,A ; 022E INC DPTR ; 022F MOV R7,DPL ; 0231 MOV R6,DPH ; 0233 SJMP 0219 ; 0235 RET ; 0236 MOV R0,#02 ; (R6R7-2)=R2 (R6R7-1)=R3 R6R7-=2 0238 MOV R1,#02 ; 023A LJMP 0244 ; 023D MOV R0,#02 ; 023F MOV R1,#02 ; 0241 LJMP 0257 ; 0244 MOV A,R7 ; 0245 CLR C ; 0246 SUBB A,R0 ; 0247 MOV R7,A ; 0248 MOV A,R6 ; 0249 SUBB A,#00 ; 024B MOV R6,A ; R6R7=R6R7-2 024C MOV DPL,R7 ; 024E MOV DPH,R6 ; 0250 MOV A,@R1 ; 0251 MOVX @DPTR,A ; R6R7=2 0252 INC DPTR ; 0253 INC R1 ; 0254 DJNZ R0,0250 ; 0256 RET ; 0257 PUSH ACC ; R2=(R6R7) R3=(R6R7+1) R6R7+=2 0259 MOV DPL,R7 ; 025B MOV DPH,R6 ; 025D MOVX A,@DPTR ; 025E MOV @R1,A ; 025F INC DPTR ; 0260 INC R1 ; 0261 DJNZ R0,025D ; 0263 MOV R6,DPH ; 0265 MOV R7,DPL ; 0267 POP ACC ; 0269 RET ; ; Timer IRQ #0 ; 026A RETI ; ; Timer IRQ #1 ; 026B PUSH PSW ; 026D PUSH ACC ; 026F PUSH DPH ; 0271 PUSH DPL ; 0273 PUSH B ; 0275 SETB D4 ; 0277 CLR D3 ; Select Register's Bank 0010 0279 LCALL 02FB ; Timer #1 = $F45A 62554=31277*2 027C JNB 04,02D1 ; Bit 4 = 0 ?  02D1 W(23)-- Exit 027F MOV DPTR,#0109 ; 0282 MOVX A,@DPTR ; A = (x0109) 0283 JB E0,0294 ; 0286 ORL A,#01 ; 0288 MOVX @DPTR,A ; 0289 MOV DPTR,#0006 ; 028C MOVX @DPTR,A ; 028D MOV A,30 ; 028F MOV 25,A ; 0291 LJMP 02D1 ; W(23)-- Exit 0294 PUSH ACC ; 0296 MOV A,25 ; 0298 CLR C ; 0299 SUBB A,#0A ; 029B MOV 25,A ; 029D CJNE A,#00,02C5 ; 02A0 POP ACC ; 02A2 ANL A,#FE ; 02A4 MOVX @DPTR,A ; 02A5 MOV DPTR,#0006 ; 02A8 MOVX @DPTR,A ; 02A9 JNB 06,02BB ; 02AC MOV C,P1.4 ; Card I/O 02AE CPL C ; 02AF CLR A ; 02B0 CJNE A,2E,02B6 ; 02B3 LJMP 02BB ; 02B6 JC 02CA ; 02B8 DJNZ 2E,027F ; 02BB MOV C,P1.4 ; Card I/O 02BD CPL C ; 02BE MOV 00,C ; 02C0 CLR 04 ; 02C2 LJMP 02D1 ; W(23)-- Exit 02C5 POP ACC ; 02C7 LJMP 02D1 ; W(23)-- Exit 02CA MOV 2E,#00 ; 02CD SETB 00 ; 02CF SJMP 027F ; 02D1 MOV A,24 ; 02D3 JZ 02DA ; 02D5 DEC A ; 02D6 MOV 24,A ; 02D8 SJMP 02E3 ; 02DA MOV A,23 ; 02DC JZ 02E3 ; 02DE DEC A ; 02DF MOV 23,A ; 02E1 DEC 24 ; 02E3 POP B ; W(23)-- Exit 02E5 POP DPL ; 02E7 POP DPH ; 02E9 POP ACC ; 02EB POP PSW ; 02ED RETI ; 02EE MOV TMOD,#10 ; Timer Mode 02F1 MOV TH1,#F4 ; 02F4 MOV TL1,#5A ; 02F7 MOV TCON,#40 ; Timer Control = 0100 0000 02FA RET ; Timer 1 ON Type 0 Edge 0 02FB MOV TH1,#F4 ; 02FE MOV TL1,#5A ; 0301 RET ; Timer #1 = $F45A = 62554 0302 CLR IT0 ; IRQ 0 Type 0304 CLR IT1 ; IRQ 1 Type 0306 MOV IP,#05 ; IRQ 0 Priority, IRQ 1 Priority 0309 MOV IE,#81 ; External IRQ Enabled, Global IRQ Enabled 030C RET ; ; IRQ #1 ; 030D SETB 08 ; b08 = 1 030F LCALL 1062 ; 0312 JNB 07,032A ; ?  Exit 0315 MOV A,#CC ; 0317 JB 96,031C ; IRQ #1 Input = 1 ?  031C 031A MOV A,#F7 ; 031C LCALL 10AA ; (x3132)=(2D)+6 (2D)=0 (x3133)=F7/CC R2=0 R3=F7 031F LCALL 09C4 ; Disable TIRQ #1 (x0108)&=0000 0111 0322 MOV DPTR,#0101 ; 0325 MOVX A,@DPTR ; 0326 POP PSW ; 0328 MOV SP,A ; SP=(x0101) 032A CLR AA ; Disable IRQ #1 032C RETI ; 032D CLR AA ; Disable IRQ #1 032F PUSH PSW ; 0331 NOP ; 0332 NOP ; 0333 MOV DPTR,#0101 ; 0336 MOV A,SP ; 0338 DEC A ; 0339 MOVX @DPTR,A ; (x0101)=SP-1 033A NOP ; 033B NOP ; 033C SETB 07 ; 033E MOV DPH,R2 ; 0340 MOV DPL,R3 ; 0342 MOV 31,R2 ; 0344 MOV 32,R3 ; 0346 MOV A,#FB ; 0348 JNB P1.6,0384 ; No hay Terjeta Puesta ?  0384 034B SETB D3 ; Select Register's Bank 0011 034D SETB D4 ; 034F CLR A ; 0350 MOV 2D,A ; 0352 MOV A,#01 ; 0354 LCALL 0DD4 ; DPTR++ 0357 MOVX A,@DPTR ; 0358 MOV DPTR,#0366 ; 035B LCALL 0DE8 ; 035E MOV B,#03 ; 0361 MUL AB ; 0362 MOV DPTR,#036C ; 0365 JMP @A+DPTR ; 0366 DB 05,00,01,02,03,04 036C LJMP 037E ; 036F LJMP 038A ; Read Card, Validate Telecard, Read Size? 0372 LJMP 03CE ; 0375 LJMP 03B4 ; 0378 LJMP 03AE ; 037B LJMP 03C8 ; 037E MOV A,#84 ; 0380 SJMP 0384 ; 0382 MOV A,#F7 ; 0384 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=84 R2=0 R3=84 0387 LJMP 03DB ; RET 038A MOV DPTR,#0100 ; 038D MOV A,#03 ; 038F MOVX @DPTR,A ; 0390 CLR P1.7 ; P1 = 0xxxxxxx 0392 LCALL 1034 ; P1 & Delays 0395 SETB IE.2 ; Enable IRQ #1 0397 LCALL 03E3 ; Read Card, Validate Telecard, Read Size? 039A MOV A,03 ; 039C CJNE A,#02,03DB ; 039F MOV DPTR,#0100 ; 03A2 MOVX A,@DPTR ; 03A3 DEC A ; 03A4 MOVX @DPTR,A ; 03A5 JNZ 0395 ; 03A7 CLR IE.2 ; Disable IRQ #1 03A9 LCALL 1062 ; P1 & Delays 03AC SJMP 03DB ; RET 03AE LCALL 1062 ; 03B1 CLR A ; 03B2 SJMP 0384 ; 03B4 MOV A,2F ; 03B6 JZ 0382 ; 03B8 LCALL 0FC9 ; 03BB SETB IE.2 ; Enable IRQ #1 03BD MOV A,2F ; 03BF CJNE A,#01,03C8 ; 03C2 LCALL 0B62 ; 03C5 LJMP 03D8 ; RET 03C8 LCALL 060E ; 03CB LJMP 03D8 ; RET 03CE MOV A,2F ; 03D0 JZ 0382 ; 03D2 DEC A ; 03D3 JNZ 03C8 ; 03D5 LCALL 0C7F ; 03D8 LCALL 0FDE ; 03DB CLR 07 ; 03DD CLR IE.3 ; Disable Timer #1 Interrupt 03DF POP PSW ; 03E1 RET ; 03E2 MOV R7,A ; 03E3 MOV 27,#08 ; Read Card, Validate Telecard, Read Size? 03E6 MOV 28,#04 ; 03E9 MOV R0,#02 ; 03EB MOV 2F,R0 ; 03ED MOV R1,#24 ; 03EF MOV R6,#00 ; 03F1 MOV R7,#00 ; 03F3 MOV DPH,31 ; 03F6 MOV DPL,32 ; 03F9 MOV A,#07 ; 03FB LCALL 0DD4 ; DPTR=3139 03FE LCALL 04BA ; Lee Tarjeta R1 Bytes to DPTR[] 0401 JNZ 041F ; Tarjeta no puesta?  041F 0403 MOV DPH,31 ; 0406 MOV DPL,32 ; 0409 MOV A,#08 ; 040B LCALL 0DD4 ; DPTR=313A 040E MOVX A,@DPTR ; 040F XRL A,#FF ; 0411 JZ 0430 ; Tarjeta Quemada???? ?  0430 0413 MOVX A,@DPTR ; 0414 CJNE A,#83,0419 ; 0417 SJMP 0449 ; 0419 MOV A,#04 ; Not a Telecard ? 041B MOV 2F,A ; 2F = 04 041D SJMP 0462 ; hace algo y RET 041F MOV R0,2F ; Tarjeta Quemada???? 0421 DJNZ R0,03EB ; trata de volver a leer. 0423 MOV A,27 ; 0425 CJNE A,#08,0430 ; 0428 MOV 27,#04 ; si no pudo leer 3 veces 042B MOV 28,#08 ; Invierte los bits de Read y Write 042E SJMP 03E9 ; y vuelve a tratar 3 veces mas 0430 JNB 0C,0446 ; 0433 PUSH 12 ; 0435 MOV DPTR,#0109 ; 0438 MOVX A,@DPTR ; 0439 MOV R3,A ; 043A MOV DPTR,#03E2 ; 043D MOVX A,@DPTR ; 043E ORL A,R3 ; 043F MOVX @DPTR,A ; 0440 MOV DPTR,#0109 ; 0443 MOVX @DPTR,A ; 0444 POP 12 ; 0446 LJMP 09D2 ; 0449 MOV 2B,A ; Telecard: 044B MOV DPH,31 ; 044E MOV DPL,32 ; 0451 MOV A,#11 ; 0453 LCALL 0DD4 ; DPTR=3143 0456 MOVX A,@DPTR ; 0457 ANL A,#F0 ; A = CardByte[11] & 1111.0000 0459 MOV DPTR,#1310 ; 045C LCALL 0DE8 ; A = 0 if CardByte[11] !in [80,20,10,00] 045F LJMP 0469 ; else A = [04,03,02,01] 0462 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A R2=0 R3=A 0465 LCALL 1062 ; 0468 RET ; 0469 MOV DPTR,#1315 ; 046C DEC A ; 046D CLR C ; 046E MOV B,A ; 0470 RLC A ; 0471 ADD A,B ; 0473 PUSH ACC ; 0475 MOVC A,@A+DPTR ; 0476 MOV 26,A ; 26 = CardX0[0] 0478 POP ACC ; 047A INC A ; 047B PUSH ACC ; 047D MOVC A,@A+DPTR ; 047E MOV 2A,A ; 2A = CardX0[1] 0480 POP ACC ; 0482 INC A ; 0483 MOVC A,@A+DPTR ; 0484 MOV 29,A ; 29 = CardX0[2] 0486 MOV DPTR,#1304 ; 0489 CLR C ; 048A RLC A ; 048B PUSH ACC ; A = CardX0[2]*2 048D MOVC A,@A+DPTR ; 048E MOV B,A ; 0490 POP ACC ; 0492 INC A ; 0493 MOVC A,@A+DPTR ; 0494 LCALL 108F ; (2D)+=2. (3134)=B (3135)=A 0497 MOV DPH,31 ; 049A MOV DPL,32 ; 049D MOV A,#08 ; 049F LCALL 0DD4 ; DPTR=313A 04A2 MOVX A,@DPTR ; 04A3 SETB 02 ; 04A5 MOV A,#03 ; 04A7 LJMP 04B0 ; RET 04AA MOV DPTR,#04B4 ; 04AD MOV A,2F ; 04AF MOVC A,@A+DPTR ; 04B0 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A R2=0 R3=A 04B3 RET ; 04B4 LJMP 0501 ; 04B7 INC @R1 ; 04B8 INC R1 ; 04B9 INC A ; 04BA PUSH DPH ; 04BC PUSH DPL ; 04BE MOV DPTR,#0109 ; 04C1 MOV A,#30 ; 04C3 MOVX @DPTR,A ; (x0109)=0011 0000 04C4 MOV DPTR,#0006 ; 04C7 MOVX @DPTR,A ; (x0006)=0011 0000 04C8 POP DPL ; 04CA POP DPH ; 04CC LCALL 05A9 ; Lee Tarjeta R1 Bytes to DPTR[] 04CF RET ; 04D0 CLR IE.7 ; Reset Card Counter 04D2 MOV A,#00 ; A = 0000.0000 04D4 SJMP 04E8 ; A=00 04D6 CLR IE.7 ; Disable Global Interrupt 04D8 MOV A,27 ; A = 0000.1000 o 0000.0100 04DA SJMP 04E8 ; 04DC CLR IE.7 ; Disable Global Interrupt 04DE MOV A,28 ; A = 0000.0100 o 0000.1000 04E0 SJMP 04E8 ; 04E2 CLR IE.7 ; Write & Clock 04E4 MOV A,#0C ; A = 0000.1100 04E6 SJMP 04E8 ; 04E8 MOV B,A ; 04EA MOV DPTR,#0109 ; 04ED MOVX A,@DPTR ; 04EE ORL A,B ; 04F0 MOV DPTR,#0006 ; 04F3 MOVX @DPTR,A ; 04F4 NOP ; 04F5 ORL A,#01 ; 04F7 MOVX @DPTR,A ; A |= 0000.0001 04F8 NOP ; 04F9 NOP ; 04FA NOP ; 04FB NOP ; 04FC NOP ; 04FD NOP ; 04FE ANL A,#FE ; A &= 1111.1110 0500 MOVX @DPTR,A ; 0501 MOV DPTR,#0109 ; 0504 MOVX A,@DPTR ; 0505 MOV DPTR,#0006 ; 0508 MOVX @DPTR,A ; 0509 NOP ; 050A NOP ; 050B NOP ; 050C NOP ; 050D NOP ; 050E NOP ; 050F NOP ; 0510 NOP ; 0511 MOV C,P1.4 ; 0513 CPL C ; 0514 SETB IE.7 ; Enable Global Interrupt 0516 RET ; 0517 CLR 00 ; 0519 PUSH ACC ; 051B MOV DPTR,#0109 ; 051E MOVX A,@DPTR ; 051F ORL A,#0C ; 0521 MOVX @DPTR,A ; 0522 MOV DPTR,#0006 ; 0525 MOVX @DPTR,A ; 0526 POP ACC ; 0528 MOV A,29 ; 052A MOV B,2A ; 052D SETB IE.3 ; Enable Timer #1 Interrupt 052F SETB 06 ; 0531 MOV 30,B ; 0534 MOV 2E,A ; 0536 CJNE A,#01,053B ; 0539 CLR 06 ; 053B SETB 04 ; 053D JB 04,053D ; 0540 PUSH ACC ; 0542 MOV DPTR,#0109 ; 0545 MOVX A,@DPTR ; 0546 ANL A,#30 ; 0548 MOVX @DPTR,A ; 0549 MOV DPTR,#0006 ; 054C MOVX @DPTR,A ; 054D POP ACC ; 054F MOV C,P1.4 ; Card I/O 0551 CPL C ; 0552 CLR AB ; Disable Timer #1 Interrupt 0554 RET ; 0555 PUSH 1F ; Avanza R6R7 veces el Card Conuter 0557 PUSH 1E ; 0559 MOV A,27 ; 055B MOV B,A ; 055D MOV DPTR,#0109 ; 0560 MOVX A,@DPTR ; 0561 ORL A,B ; 0563 MOV DPTR,#0006 ; 0566 MOVX @DPTR,A ; 0567 CJNE R7,#00,0571 ; 056A CJNE R6,#00,0570 ; 056D LJMP 057D ; 0570 DEC R6 ; 0571 DEC R7 ; 0572 ORL A,#01 ; 0574 MOVX @DPTR,A ; 0575 NOP ; 0576 NOP ; 0577 NOP ; 0578 ANL A,#FE ; 057A MOVX @DPTR,A ; 057B SJMP 0567 ; 057D MOV DPTR,#0109 ; 0580 MOVX A,@DPTR ; 0581 MOV DPTR,#0006 ; 0584 MOVX @DPTR,A ; 0585 POP 1E ; 0587 POP 1F ; 0589 MOV C,P1.4 ; 058B CPL C ; 058C RET ; 058D CLR C ; Avanza hastal byte R6R7 el Card Counter 058E MOV A,R7 ; 058F RLC A ; 0590 MOV R7,A ; 0591 MOV A,R6 ; 0592 RLC A ; 0593 MOV R6,A ; 0594 CLR C ; 0595 MOV A,R7 ; 0596 RLC A ; 0597 MOV R7,A ; 0598 MOV A,R6 ; 0599 RLC A ; 059A MOV R6,A ; 059B CLR C ; 059C MOV A,R7 ; 059D RLC A ; 059E MOV R7,A ; 059F MOV A,R6 ; 05A0 RLC A ; 05A1 MOV R6,A ; SHL R7R6,3 05A2 LCALL 04D0 ; Reset Card Counter 05A5 LCALL 0555 ; Avanza R6R7 veces el Card Conuter 05A8 RET ; 05A9 PUSH DPH ; Lee Tarjeta R1 Bytes to DPTR[] 05AB PUSH DPL ; 05AD LCALL 058D ; Avanza hastal byte R6R7 el Card Counter 05B0 POP DPL ; 05B2 POP DPH ; 05B4 JNB P1.6,060D ; P1.6 = 0 ?  RET 05B7 PUSH DPH ; 05B9 PUSH DPL ; 05BB MOV R0,#08 ; 05BD CLR A ; 05BE MOV C,P1.4 ; 05C0 CPL C ; Complement Carry 05C1 RLC A ; 05C2 PUSH ACC ; 05C4 LCALL 04D6 ; Read Card & Clock 05C7 POP ACC ; 05C9 DJNZ R0,05C1 ; 05CB POP DPL ; 05CD POP DPH ; 05CF MOVX @DPTR,A ; (DPTR++) = GetCardByte() 05D0 INC DPTR ; 05D1 MOV A,R1 ; 05D2 CJNE A,#24,060A ; 05D5 PUSH DPH ; 05D7 PUSH DPL ; 05D9 CLR A ; 05DA MOV C,P1.4 ; 05DC CPL C ; 05DD RLC A ; A= (A<<1) + GetCardBit(); 05DE PUSH ACC ; 05E0 LCALL 04D6 ; Read Card & Clock 05E3 MOV DPTR,#0109 ; 05E6 MOVX A,@DPTR ; 05E7 ORL A,#0C ; A |= 1100.0000 05E9 MOV DPTR,#0006 ; 05EC MOVX @DPTR,A ; 05ED ORL A,#01 ; A |= 0000.0001 05EF MOVX @DPTR,A ; 05F0 ANL A,#FE ; A &= 1111.1110 05F2 MOVX @DPTR,A ; 05F3 MOV DPTR,#0109 ; 05F6 MOVX A,@DPTR ; 05F7 MOV DPTR,#0006 ; 05FA MOVX @DPTR,A ; 05FB POP ACC ; 05FD POP DPL ; 05FF POP DPH ; 0601 DEC R1 ; 0602 MOV R0,#07 ; 0604 PUSH DPH ; 0606 PUSH DPL ; 0608 SJMP 05BE ; 060A DJNZ R1,05B7 ; 060C CLR A ; 060D RET ; 060E MOV DPH,31 ; 0611 MOV DPL,32 ; 0614 MOV A,#03 ; 0616 LCALL 0DD4 ; DPTR=3135 0619 MOVX A,@DPTR ; 061A MOV DPTR,#0636 ; 061D LCALL 0DE8 ; 0620 MOV B,#03 ; 0623 MUL AB ; 0624 MOV DPTR,#0640 ; 0627 JMP @A+DPTR ; 0628 MOV A,#00 ; 062A MOV B,#6D ; 062D LCALL 108F ; (2D)+=2. (3134)=006D 0630 MOV A,#84 ; 0632 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A R2=0 R3=A 0635 RET ; 0636 INC R1 ; 0637 POP P3 ; 0639 ORL C,/C0 ; 063B MOVX A,@DPTR ; 063C MOVX @DPTR,A ; 063D MOV R2,A ; 063E MOV R3,A ; 063F MOV R4,A ; 0640 LJMP 0628 ; 0643 LJMP 065E ; 0646 LJMP 071F ; 0649 LJMP 075D ; 064C LJMP 0801 ; 064F LJMP 0763 ; 0652 LJMP 0778 ; 0655 LJMP 083B ; 0658 LJMP 0854 ; 065B LJMP 0860 ; 065E MOV DPH,31 ; 0661 MOV DPL,32 ; 0664 MOV A,#04 ; 0666 LCALL 0DD4 ; DPTR=3136 0669 MOVX A,@DPTR ; 066A MOV R6,A ; 066B INC DPTR ; 066C MOVX A,@DPTR ; 066D MOV R7,A ; 066E JB 02,0694 ; 0671 ANL A,#03 ; 0673 JNZ 067C ; 0675 INC DPTR ; 0676 MOVX A,@DPTR ; 0677 CJNE A,#04,0688 ; 067A SJMP 0694 ; 067C MOV A,#00 ; 067E MOV B,#6B ; 0681 LCALL 108F ; (2D)+=2. (3134)=006B 0684 MOV A,#84 ; 0686 SJMP 0703 ; 0688 MOV A,#00 ; 068A MOV B,#67 ; 068D LCALL 108F ; (2D)+=2. (3134)=0067 0690 MOV A,#84 ; 0692 SJMP 0703 ; 0694 CLR 00 ; 0696 LCALL 058D ; Avanza hastal byte R6R7 el Card Counter 0699 MOV DPH,31 ; 069C MOV DPL,32 ; 069F MOV A,#06 ; 06A1 LCALL 0DD4 ; DPTR=3138 06A4 MOVX A,@DPTR ; 06A5 MOV R1,A ; 06A6 INC DPTR ; 06A7 MOVX A,@DPTR ; 06A8 JB 02,06AD ; 06AB ANL A,#7F ; 06AD PUSH DPH ; 06AF PUSH DPL ; 06B1 MOV R0,#08 ; 06B3 RLC A ; 06B4 PUSH ACC ; 06B6 JC 06BF ; 06B8 LCALL 04D6 ; Read Card & Clock 06BB MOV 17,C ; 06BD SJMP 06DA ; 06BF PUSH DPH ; 06C1 PUSH DPL ; 06C3 PUSH ACC ; 06C5 MOV DPTR,#0010 ; 06C8 MOVX A,@DPTR ; 06C9 JNB E1,0707 ; 06CC POP ACC ; 06CE POP DPL ; 06D0 POP DPH ; 06D2 LCALL 0517 ; 06D5 MOV 17,C ; 06D7 LCALL 04D6 ; Read Card & Clock 06DA POP ACC ; 06DC MOV C,17 ; 06DE DJNZ R0,06B3 ; 06E0 POP DPL ; 06E2 POP DPH ; 06E4 RLC A ; 06E5 MOVX @DPTR,A ; 06E6 INC DPTR ; 06E7 MOVX A,@DPTR ; 06E8 DJNZ R1,06AD ; 06EA JB 00,06F9 ; 06ED MOV A,#00 ; 06EF MOV B,#6F ; 06F2 LCALL 108F ; (2D)+=2. (3134)=006F 06F5 MOV A,#84 ; 06F7 SJMP 0703 ; 06F9 MOV A,#00 ; 06FB MOV B,#90 ; 06FE LCALL 108F ; (2D)+=2. (3134)=0090 0701 MOV A,#00 ; 0703 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A R2=0 R3=A 0706 RET ; 0707 POP ACC ; 0709 POP DPL ; 070B POP DPH ; 070D POP ACC ; 070F POP DPL ; 0711 POP DPH ; 0713 MOV A,#00 ; 0715 MOV B,#CC ; 0718 LCALL 108F ; (2D)+=2. (3134)=00CC 071B MOV A,#CC ; 071D SJMP 0703 ; 071F MOV DPH,31 ; 0722 MOV DPL,32 ; 0725 MOV A,#06 ; 0727 LCALL 0DD4 ; DPTR=3138 072A MOVX A,@DPTR ; 072B CJNE A,#00,073C ; 072E MOV A,#00 ; 0730 MOV B,#90 ; 0733 LCALL 108F ; (2D)+=2. (3134)=0090 0736 MOV A,#00 ; 0738 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A R2=0 R3=A 073B RET ; 073C MOV R1,A ; 073D MOV DPH,31 ; 0740 MOV DPL,32 ; 0743 MOV A,#04 ; 0745 LCALL 0DD4 ; DPTR=3136 0748 MOVX A,@DPTR ; 0749 MOV R6,A ; 074A INC DPTR ; 074B MOVX A,@DPTR ; 074C MOV R7,A ; R6R7=W(3136) 074D MOV DPH,31 ; 0750 MOV DPL,32 ; 0753 MOV A,#07 ; 0755 LCALL 0DD4 ; DPTR=3139 0758 LCALL 05A9 ; Lee Tarjeta R1 Bytes to DPTR[] 075B SJMP 072E ; 075D LCALL 080D ; A = GetCardBit(W(3138)), DPRT=3139 0760 LJMP 08BB ; 0763 LCALL 080D ; A = GetCardBit(W(3138)), DPRT=3139 0766 PUSH DPL ; 0768 PUSH DPH ; 076A LCALL 04E2 ; Write & Clock 076D CLR A ; 076E RLC A ; 076F POP DPH ; 0771 POP DPL ; 0773 MOVX @DPTR,A ; 0774 INC DPTR ; 0775 LJMP 08BB ; 0778 LCALL 04D0 ; Reset Card Counter 077B MOV DPH,31 ; 077E MOV DPL,32 ; 0781 MOV A,#06 ; 0783 LCALL 0DD4 ; DPTR = 3138 0786 CLR C ; 0787 MOV A,#08 ; 0789 PUSH ACC ; 078B MOVX A,@DPTR ; 078C MOV R1,#08 ; 078E PUSH DPH ; 0790 PUSH DPL ; 0792 RLC A ; 0793 PUSH ACC ; 0795 JNC 079A ; 0797 LCALL 04E2 ; Write & Clock 079A LCALL 04D6 ; Read Card & Clock 079D POP ACC ; 079F DJNZ R1,0792 ; 07A1 POP DPL ; 07A3 POP DPH ; 07A5 INC DPTR ; 07A6 POP ACC ; 07A8 DEC A ; 07A9 JNZ 0789 ; 07AB MOV R6,#00 ; 07AD MOV R7,#80 ; 07AF LCALL 0555 ; Avanza R6R7 veces el Card Conuter 07B2 MOV DPH,31 ; 07B5 MOV DPL,32 ; 07B8 MOV A,#07 ; 07BA LCALL 0DD4 ; DPTR+=07 07BD MOV R1,#08 ; 07BF PUSH DPH ; 07C1 PUSH DPL ; 07C3 MOV R0,#08 ; 07C5 CLR A ; 07C6 MOV C,P1.4 ; Card I/O 07C8 CPL C ; 07C9 RLC A ; 07CA PUSH ACC ; 07CC LCALL 04D6 ; Read Card & Clock 07CF POP ACC ; 07D1 DJNZ R0,07C9 ; 07D3 POP DPL ; 07D5 POP DPH ; 07D7 MOVX @DPTR,A ; 07D8 INC DPTR ; 07D9 DJNZ R1,07BF ; 07DB CLR A ; 07DC PUSH DPH ; 07DE PUSH DPL ; 07E0 RLC A ; 07E1 PUSH ACC ; 07E3 LCALL 04D6 ; Read Card & Clock 07E6 POP ACC ; 07E8 RLC A ; 07E9 PUSH ACC ; 07EB LCALL 04D6 ; Read Card & Clock 07EE POP ACC ; 07F0 RLC A ; 07F1 PUSH ACC ; 07F3 LCALL 04D6 ; Read Card & Clock 07F6 POP ACC ; 07F8 RLC A ; 07F9 POP DPL ; 07FB POP DPH ; 07FD MOVX @DPTR,A ; 07FE LJMP 08BB ; 0801 LCALL 080D ; A = GetCardBit(W(3138)), DPRT=3139 0804 LCALL 04E2 ; Write & Clock 0807 LCALL 04E2 ; Write & Clock 080A LJMP 08BB ; 080D LCALL 04D0 ; A = GetCardBit(W(3138)), DPRT=3139 0810 MOV DPH,31 ; 0813 MOV DPL,32 ; 0816 MOV A,#06 ; 0818 LCALL 0DD4 ; DPTR=3138 081B MOVX A,@DPTR ; 081C MOV R7,A ; 081D INC DPTR ; 081E MOVX A,@DPTR ; 081F MOV R6,A ; R6R7=W(x3138) 0820 MOV DPH,31 ; 0823 MOV DPL,32 ; 0826 MOV A,#07 ; 0828 LCALL 0DD4 ; DPTR=3139 082B PUSH DPL ; 082D PUSH DPH ; 082F LCALL 0555 ; Avanza R6R7 veces el Card Conuter 0832 CLR A ; 0833 RLC A ; 0834 POP DPH ; 0836 POP DPL ; 0838 MOVX @DPTR,A ; 0839 CLR A ; 083A RET ; 083B LCALL 080D ; A = GetCardBit(W(3138)), DPRT=3139 083E MOV A,#08 ; 0840 PUSH ACC ; 0842 LCALL 04E2 ; Write & Clock 0845 LCALL 04D6 ; Read Card & Clock 0848 LCALL 04D6 ; Read Card & Clock 084B POP ACC ; 084D DEC A ; 084E CJNE A,#00,0840 ; 0851 LJMP 08BB ; 0854 LCALL 080D ; A = GetCardBit(W(3138)), DPRT=3139 0857 LCALL 04E2 ; Write & Clock 085A LCALL 04E2 ; Write & Clock 085D LJMP 08BB ; 0860 MOV DPH,31 ; 0863 MOV DPL,32 ; 0866 MOV A,#06 ; 0868 LCALL 0DD4 ; DPTR+=06 086B MOVX A,@DPTR ; 086C PUSH ACC ; 086E LCALL 080D ; A = GetCardBit(W(3138)), DPRT=3139 0871 POP ACC ; 0873 PUSH ACC ; 0875 PUSH ACC ; 0877 LCALL 04D6 ; Read Card & Clock 087A POP ACC ; 087C INC A ; 087D JNC 0875 ; 087F PUSH ACC ; 0881 LCALL 04E2 ; Write & Clock 0884 LCALL 04E2 ; Write & Clock 0887 POP ACC ; 0889 MOV B,A ; 088B POP ACC ; 088D CJNE A,#60,08AA ; 0890 MOV A,B ; 0892 PUSH ACC ; 0894 LCALL 04D6 ; Read Card & Clock 0897 POP ACC ; 0899 INC A ; 089A CJNE A,#77,0892 ; 089D PUSH ACC ; 089F LCALL 04E2 ; Write & Clock 08A2 LCALL 04E2 ; Write & Clock 08A5 POP ACC ; 08A7 LJMP 08AC ; 08AA MOV A,B ; 08AC PUSH ACC ; 08AE LCALL 04D6 ; Read Card & Clock 08B1 POP ACC ; 08B3 INC A ; 08B4 CJNE A,#7F,08AC ; 08B7 LCALL 04E2 ; Write & Clock 08BA RET ; 08BB MOV A,#00 ; 08BD MOV B,#90 ; 08C0 LCALL 108F ; (2D)+=2. (3134)=0090 08C3 MOV A,#00 ; 08C5 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A R2=0 R3=A 08C8 RET ; 08C9 db 0C, 03, 2B, 3B 08CD db 13, 83, AB, BB, 08D1 db 93, CB, EB, FB, DB 08C9 INC R4 ; 08CA RR A ; 08CB ADD A,R3 ; 08CC ADDC A,R3 ; 08CD RRC A ; 08CE MOVC A,@A+PC ; 08CF MOV R3,BB ; 08D1 MOVC A,@A+DPTR ; 08D2 XCH A,R3 ; 08D3 MOV A,R3 ; 08D4 MOV R3,A ; 08D5 DJNZ R3,0897 ; 08D6 PUSH DPH ; (x0109)&=0111.0000 |= 0000.0011 Delay? 08D8 PUSH DPL ; 08DA MOV DPTR,#0109 ; 08DD MOVX A,@DPTR ; 08DE ANL A,#70 ; 08E0 ORL A,#03 ; 08E2 MOVX @DPTR,A ; 08E3 MOV DPTR,#0006 ; 08E6 MOVX @DPTR,A ; 08E7 MOV A,#0A ; 08E9 LCALL 0E6A ; Delay?(A) 08EC POP DPL ; 08EE POP DPH ; 08F0 RET ; 08F1 PUSH DPH ; (x0109)|=0000.0100 08F3 PUSH DPL ; 08F5 MOV DPTR,#0109 ; 08F8 MOVX A,@DPTR ; 08F9 ORL A,#04 ; 08FB MOVX @DPTR,A ; 08FC MOV DPTR,#0006 ; 08FF MOVX @DPTR,A ; 0900 POP DPL ; 0902 POP DPH ; 0904 RET ; 0905 PUSH DPL ; W(23) = 100d, b01=1, (x0108)|=10011000[& 0907 PUSH DPH ; 0909 MOV R0,#00 ; R0 = #00 090B MOV DPTR,#0108 ; 090E MOVX A,@DPTR ; 090F ORL A,#98 ; A = (x0108) | 1001 1000 0911 JB 0D,0916 ; 0914 ANL A,#7F ; b0D 0916 MOVX @DPTR,A ; (x0108) = (x0108)| 10011000 [& 01111111] 0917 MOV DPTR,#0005 ; 091A MOVX @DPTR,A ; (x0005) = x0108 091B MOV 23,#00 ; 091E MOV 24,#64 ; W(23) = 100d 0921 SETB 01 ; b01 = 1 0923 POP DPH ; 0925 POP DPL ; 0927 RET ; 0928 PUSH DPL ; 092A PUSH DPH ; 092C MOV R0,#00 ; 092E MOV DPTR,#0108 ; 0931 MOVX A,@DPTR ; 0932 ANL A,#DF ; 0934 ORL A,#98 ; 0936 JB 0D,093B ; 0939 ANL A,#7F ; 093B MOVX @DPTR,A ; 093C MOV DPTR,#0005 ; 093F MOVX @DPTR,A ; 0940 POP DPH ; 0942 POP DPL ; 0944 RET ; 0945 PUSH DPH ; 0947 PUSH DPL ; 0949 MOV DPTR,#0108 ; 094C MOVX A,@DPTR ; 094D ANL A,#6F ; 094F ORL A,#28 ; 0951 MOVX @DPTR,A ; 0952 MOV DPTR,#0005 ; 0955 MOVX @DPTR,A ; 0956 POP DPL ; 0958 POP DPH ; 095A RET ; 095B PUSH DPL ; 095D PUSH DPH ; 095F JNB 09,096C ; 0962 LJMP 098D ; 0965 CLR 09 ; 0967 INC DPTR ; 0968 PUSH DPL ; 096A PUSH DPH ; 096C MOV DPTR,#0108 ; 096F MOV A,R4 ; 0970 RRC A ; 0971 MOVX A,@DPTR ; 0972 MOV E6,C ; 0974 MOVX @DPTR,A ; 0975 MOV DPTR,#0005 ; 0978 MOVX @DPTR,A ; 0979 MOV A,R3 ; 097A MOV DPTR,#0008 ; 097D MOVX @DPTR,A ; 097E MOV DPTR,#010B ; 0981 MOVX @DPTR,A ; 0982 SETB 02 ; 0984 MOV A,R2 ; 0985 DEC A ; 0986 JNZ 098D ; 0988 POP DPH ; 098A POP DPL ; 098C RET ; 098D POP DPH ; 098F POP DPL ; 0991 MOV A,2B ; 0993 MOV B,A ; 0995 MOVX A,@DPTR ; 0996 MOV C,D0 ; 0998 JNB F7,099C ; 099B CPL C ; 099C RLC A ; 099D MOV R4,A ; 099E RRC A ; 099F JB F4,09A3 ; 09A2 CPL A ; 09A3 MOV R3,A ; 09A4 JB F5,09BF ; 09A7 MOV A,R4 ; 09A8 MOV C,E0 ; 09AA CPL C ; 09AB MOV E0,C ; 09AD MOV R4,A ; 09AE MOV A,R3 ; 09AF MOV B,#00 ; 09B2 MOV R0,#08 ; 09B4 RRC A ; 09B5 XCH A,B ; 09B7 RLC A ; 09B8 XCH A,B ; 09BA DJNZ R0,09B4 ; 09BC XCH A,B ; 09BE MOV R3,A ; 09BF JB 09,0965 ; 09C2 SJMP 098C ; 09C4 CLR AB ; Disable TIRQ #1 (x0108)&=0000 0111 09C6 MOV DPTR,#0108 ; 09C9 MOVX A,@DPTR ; 09CA ANL A,#07 ; 09CC MOVX @DPTR,A ; (x0108)&=0000 0111 09CD MOV DPTR,#0005 ; 09D0 MOVX @DPTR,A ; (x0005)=(x0108) 09D1 RET ; 09D2 SETB IE.3 ; Enable Timer #1 Interrupt 09D4 SETB 0D ; 09D6 MOV 2D,#00 ; 09D9 LCALL 08D6 ; (x0109)&=0111.0000 |= 0000.0011 Delay? 09DC MOV DPH,31 ; 09DF MOV DPL,32 ; 09E2 MOV A,#07 ; 09E4 LCALL 0DD4 ; DPTR = 3139 09E7 LCALL 0905 ; W(23) = 100d, b01=1, (x0108)|=10011000[& 09EA SETB 02 ; 09EC LCALL 08F1 ; (x0109)|=0000.0100 09EF MOV 2B,#3B ; 09F2 LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 09F5 JZ 0A57 ; W(23) = 00 ?  0A57 09F7 MOV A,R1 ; 09F8 ANL A,#01 ; 09FA JZ 0A00 ; 09FC CLR 0D ; 09FE SJMP 09D6 ; 0A00 MOV A,R0 ; 0A01 MOVX @DPTR,A ; 0A02 PUSH DPH ; 0A04 PUSH DPL ; 0A06 MOV DPTR,#08C9 ; 0A09 LCALL 0DE8 ; 0A0C POP DPL ; 0A0E POP DPH ; 0A10 JZ 0A57 ; 0A12 MOV 2B,R0 ; 0A14 MOV A,R0 ; 0A15 MOVX @DPTR,A ; 0A16 INC DPTR ; 0A17 INC 2D ; 0A19 LCALL 0928 ; 0A1C SETB 02 ; 0A1E LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 0A21 MOV A,R1 ; 0A22 ANL A,#01 ; 0A24 JNZ 0A1C ; 0A26 MOV A,R0 ; 0A27 MOVX @DPTR,A ; 0A28 INC DPTR ; 0A29 INC 2D ; 0A2B ANL A,#0F ; 0A2D MOV R4,A ; 0A2E MOV A,R0 ; 0A2F MOV R2,#00 ; 0A31 MOV R3,#04 ; 0A33 MOV R5,A ; 0A34 RLC A ; 0A35 JNC 0A38 ; 0A37 INC R2 ; 0A38 DJNZ R3,0A34 ; 0A3A MOV A,R2 ; 0A3B JZ 0A5A ; 0A3D LCALL 0928 ; 0A40 SETB 02 ; 0A42 LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 0A45 MOV A,R1 ; 0A46 ANL A,#01 ; 0A48 JNZ 0A3D ; 0A4A MOV A,R0 ; 0A4B MOVX @DPTR,A ; 0A4C INC DPTR ; 0A4D INC 2D ; 0A4F DJNZ R2,0A3D ; 0A51 MOV A,R5 ; 0A52 JNB E7,0A5A ; 0A55 SJMP 0A2E ; 0A57 LJMP 0B2A ; 0A5A LCALL 0928 ; 0A5D SETB 02 ; 0A5F LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 0A62 MOV A,R1 ; 0A63 ANL A,#01 ; 0A65 JNZ 0A5A ; 0A67 MOV A,R0 ; 0A68 MOVX @DPTR,A ; 0A69 INC DPTR ; 0A6A INC 2D ; 0A6C DJNZ R4,0A5A ; 0A6E MOV DPH,31 ; 0A71 MOV DPL,32 ; 0A74 MOV A,#07 ; 0A76 LCALL 0DD4 ; DPTR+=A 0A79 MOVX A,@DPTR ; 0A7A MOV B,A ; 0A7C JB F4,0A80 ; 0A7F CPL A ; 0A80 JB F5,0A92 ; 0A83 MOV B,#00 ; 0A86 MOV R0,#08 ; 0A88 RRC A ; 0A89 XCH A,B ; 0A8B RLC A ; 0A8C XCH A,B ; 0A8E DJNZ R0,0A88 ; 0A90 XCH A,B ; 0A92 MOVX @DPTR,A ; 0A93 INC DPTR ; 0A94 MOV 26,#FA ; 0A97 MOV 29,#00 ; 0A9A MOV 2A,#0A ; 0A9D MOVX A,@DPTR ; 0A9E INC DPTR ; 0A9F CLR C ; 0AA0 RRC A ; 0AA1 RRC A ; 0AA2 RRC A ; 0AA3 RRC A ; 0AA4 RRC A ; 0AA5 JNC 0AA8 ; 0AA7 INC DPTR ; 0AA8 RRC A ; 0AA9 JNC 0AB9 ; 0AAB PUSH ACC ; 0AAD MOVX A,@DPTR ; 0AAE ANL A,#1F ; 0AB0 MOV B,#0A ; 0AB3 MUL AB ; 0AB4 MOV 26,A ; 0AB6 POP ACC ; 0AB8 INC DPTR ; 0AB9 RRC A ; 0ABA JNC 0AC4 ; 0ABC PUSH ACC ; 0ABE MOVX A,@DPTR ; 0ABF INC DPTR ; 0AC0 MOV 29,A ; 0AC2 POP ACC ; 0AC4 RRC A ; 0AC5 JNC 0AEB ; 0AC7 MOVX A,@DPTR ; 0AC8 INC DPTR ; 0AC9 CLR C ; 0ACA RRC A ; 0ACB RRC A ; 0ACC RRC A ; 0ACD RRC A ; 0ACE RRC A ; 0ACF JNC 0AD2 ; 0AD1 INC DPTR ; 0AD2 RRC A ; 0AD3 JNC 0ADD ; 0AD5 PUSH ACC ; 0AD7 MOVX A,@DPTR ; 0AD8 MOV 26,A ; 0ADA INC DPTR ; 0ADB POP ACC ; 0ADD RRC A ; 0ADE JNC 0AE8 ; 0AE0 PUSH ACC ; 0AE2 MOVX A,@DPTR ; 0AE3 MOV 2A,A ; 0AE5 INC DPTR ; 0AE6 POP ACC ; 0AE8 RRC A ; 0AE9 JC 0B2A ; 0AEB MOV A,#00 ; 0AED MOV B,#90 ; 0AF0 LCALL 108F ; (2D)+=2. (3134)=0090 0AF3 MOV A,#05 ; 0AF5 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A R2=0 R3=A 0AF8 MOV A,#01 ; 0AFA MOV 2F,A ; 0AFC LCALL 09C4 ; Disable TIRQ #1 (x0108)&=0000 0111 0AFF RET ; ; Subrutine. ; W(23) == 0? => A = #00 ; W(23) != 0 => ; Wait until (IRQ #0) or W(23) == 0 ; W(23) == 0 => A = #00 ; (bF5 == 1) & (bF4 == 0) => R0 = !R0, A = #FF ; (bF5 == 0) => R0=bits-inverted(R0), A = #FF ; (bF5 == 1) & (bF4 == 1) => A = #FF 0B00 MOV A,23 ; Si W(23) = 0 Return 0B02 JNZ 0B08 ; 0B04 MOV A,24 ; 0B06 JZ 0B29 ; ?  RET 0B08 JB 02,0B00 ; Espera que se apague el bit 2 (IRQ #0)  0B0B MOV A,R0 ; 0B0C MOV B,2B ; 0B0F JB F4,0B14 ; Si bF5==1 y bF4==0 => R0=!R0, A=#FF 0B12 CPL A ; 0B13 MOV R0,A ; 0B14 JB F5,0B27 ; 0B17 MOV B,#00 ; Si bF5==0 => R0=bits-inverted(R0), A=FF 0B1A MOV R0,#08 ; 0B1C RRC A ; 0B1D XCH A,B ; 0B1F RLC A ; 0B20 XCH A,B ; 0B22 DJNZ R0,0B1C ; 0B24 XCH A,B ; 0B26 MOV R0,A ; 0B27 MOV A,#FF ; A = FF 0B29 RET ; 0B2A JNB 96,0B36 ; P1.6 == 0 ?  0B36 0B2D MOV A,#02 ; 0B2F LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=02 R2=0 R3=02 0B32 LCALL 09C4 ; Disable TIRQ #1 (x0108)&=0000 0111 0B35 RET ; 0B36 MOV 2D,#00 ; (2D) = 00 0B39 MOV A,#F7 ; 0B3B LCALL 10AA ; (3132)=06 (2D)=0 (3133h)=F7 R2=0 R3=F7 0B3E LCALL 09C4 ; Disable TIRQ #1 (x0108)&=0000 0111 0B41 RET ; 0B42 JNB 96,0B36 ; P1.6 = 0 ?  0B36 0B45 MOV A,#02 ; 0B47 MOV B,#90 ; 0B4A LCALL 108F ; (2D)+=2. (3134)=0290 0B4D MOV A,#A2 ; 0B4F LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A2 R2=0 R3=A2 0B52 LCALL 09C4 ; Disable TIRQ #1 (x0108)&=0000 0111 0B55 RET ; 0B56 MOV 2D,#00 ; 0B59 MOV A,#CC ; 0B5B LCALL 10AA ; (3132)=06 (2D)=00 (3133h)=CC R2=0 R3=CC 0B5E LCALL 09C4 ; Disable TIRQ #1 (x0108)&=0000 0111 0B61 RET ; 0B62 SETB IE.3 ; Enable Timer #1 Interrupt 0B64 MOV A,26 ; 0B66 CJNE A,#D2,0B73 ; 0B69 MOV DPTR,#0010 ; 0B6C MOVX A,@DPTR ; 0B6D JB E1,0B73 ; 0B70 LJMP 0B56 ; 0B73 MOV DPH,31 ; 0B76 MOV DPL,32 ; 0B79 MOV A,#02 ; 0B7B LCALL 0DD4 ; DPTR+=A 0B7E MOV 2D,#00 ; 0B81 MOV R2,#05 ; 0B83 MOV R5,#03 ; 0B85 LCALL 0945 ; 0B88 SETB 09 ; 0B8A LCALL 0D89 ; 0B8D LCALL 095B ; 0B90 INC DPTR ; 0B91 JB 02,0B91 ; 0B94 MOV A,R1 ; 0B95 ANL A,#08 ; 0B97 JZ 0BAB ; 0B99 JB 96,0B9F ; IRQ #1 Input = 1 ?  0B9F 0B9C LJMP 0B36 ; 0B9F DJNZ R5,0BA4 ; 0BA1 LJMP 0B42 ; 0BA4 LCALL 0DDF ; 0BA7 LCALL 0DDF ; 0BAA INC R2 ; 0BAB DJNZ R2,0B8A ; 0BAD MOV A,2A ; 0BAF JZ 0BBC ; 0BB1 MOV B,#0A ; 0BB4 MUL AB ; 0BB5 MOV 24,A ; 0BB7 MOV 23,B ; 0BBA SJMP 0BC5 ; 0BBC LCALL 0D89 ; 0BBF MOV 24,#01 ; 0BC2 MOV 23,#00 ; 0BC5 LCALL 0928 ; 0BC8 SETB 02 ; 0BCA LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 0BCD JNZ 0BD2 ; 0BCF LJMP 0B42 ; 0BD2 MOV A,R1 ; 0BD3 ANL A,#01 ; 0BD5 JNZ 0BC5 ; 0BD7 MOV A,R0 ; 0BD8 ANL A,#F0 ; 0BDA CJNE A,#60,0BE5 ; 0BDD MOV A,R0 ; 0BDE ANL A,#0F ; 0BE0 JZ 0BAD ; 0BE2 LJMP 0D62 ; 0BE5 CJNE A,#90,0BEB ; 0BE8 LJMP 0D62 ; 0BEB MOV DPH,31 ; 0BEE MOV DPL,32 ; 0BF1 MOV A,#03 ; 0BF3 LCALL 0DD4 ; DPTR+=A 0BF6 MOVX A,@DPTR ; 0BF7 XCH A,R0 ; 0BF8 MOV B,A ; 0BFA ANL A,#FE ; 0BFC CJNE A,18,0C0E ; 0BFF MOV A,B ; 0C01 SETB 06 ; 0C03 JB E0,0C1A ; 0C06 CLR AA ; Disable IRQ #1 0C08 LCALL 0FDE ; 0C0B LJMP 0C1A ; 0C0E MOV A,B ; 0C10 CLR 06 ; 0C12 JNB E0,0C1A ; 0C15 CLR AA ; Disable IRQ #1 0C17 LCALL 0FDE ; 0C1A MOV DPH,31 ; 0C1D MOV DPL,32 ; 0C20 MOV A,#06 ; 0C22 LCALL 0DD4 ; DPTR+=A 0C25 MOV R5,#03 ; 0C27 MOVX A,@DPTR ; 0C28 MOV R2,A ; 0C29 CJNE R2,#00,0C2E ; 0C2C SJMP 0BC5 ; 0C2E INC DPTR ; 0C2F SETB 09 ; 0C31 JNB 06,0C62 ; 0C34 LCALL 0945 ; 0C37 LCALL 0D89 ; 0C3A LCALL 095B ; 0C3D INC DPTR ; 0C3E JB 02,0C3E ; 0C41 MOV A,R1 ; 0C42 ANL A,#08 ; 0C44 JZ 0C5A ; 0C46 JB 96,0C4C ; IRQ #1 Input = 1 ?  0C4C 0C49 LJMP 0B36 ; 0C4C DJNZ R5,0C51 ; 0C4E LJMP 0B42 ; 0C51 LCALL 0DDF ; 0C54 LCALL 0DDF ; 0C57 INC R2 ; 0C58 SETB 09 ; 0C5A DJNZ R2,0C37 ; 0C5C LJMP 0BAD ; 0C5F LJMP 0B42 ; 0C62 MOV A,2D ; 0C64 LCALL 0DD4 ; DPTR+=A 0C67 LCALL 0945 ; 0C6A LCALL 0D89 ; 0C6D LCALL 095B ; 0C70 JB 02,0C70 ; 0C73 MOV A,R1 ; 0C74 ANL A,#08 ; 0C76 JZ 0C7A ; 0C78 SJMP 0C62 ; 0C7A INC 2D ; 0C7C LJMP 0BAD ; 0C7F SETB IE.3 ; Enable Timer #1 Interrupt 0C81 MOV DPH,31 ; 0C84 MOV DPL,32 ; 0C87 MOV A,#02 ; 0C89 LCALL 0DD4 ; DPTR+=A 0C8C MOV 2D,#00 ; 0C8F MOV R2,#05 ; 0C91 MOV R5,#03 ; 0C93 LCALL 0945 ; 0C96 SETB 09 ; 0C98 LCALL 0D89 ; 0C9B LCALL 095B ; 0C9E INC DPTR ; 0C9F JB 02,0C9F ; 0CA2 MOV A,R1 ; 0CA3 ANL A,#08 ; 0CA5 JZ 0CBB ; 0CA7 JB 96,0CAD ; IRQ #1 Input = 1 ?  0CAD 0CAA LJMP 0B36 ; 0CAD DJNZ R5,0CB2 ; 0CAF LJMP 0B42 ; 0CB2 LCALL 0DDF ; 0CB5 LCALL 0DDF ; 0CB8 INC R2 ; 0CB9 SETB 09 ; 0CBB DJNZ R2,0C98 ; 0CBD MOV A,2A ; 0CBF JZ 0CCC ; 0CC1 MOV B,#0A ; 0CC4 MUL AB ; 0CC5 MOV 24,A ; 0CC7 MOV 23,B ; 0CCA SJMP 0CD5 ; 0CCC LCALL 0D89 ; 0CCF MOV 24,#01 ; 0CD2 MOV 23,#00 ; 0CD5 LCALL 0928 ; 0CD8 SETB 02 ; 0CDA LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 0CDD JZ 0C5F ; 0CDF MOV A,R1 ; 0CE0 ANL A,#01 ; 0CE2 JNZ 0CD5 ; 0CE4 MOV A,R0 ; 0CE5 ANL A,#F0 ; 0CE7 CJNE A,#60,0CF2 ; 0CEA MOV A,R0 ; 0CEB ANL A,#0F ; 0CED JZ 0CBD ; 0CEF LJMP 0D62 ; 0CF2 CJNE A,#90,0CF8 ; 0CF5 LJMP 0D62 ; 0CF8 MOV DPH,31 ; 0CFB MOV DPL,32 ; 0CFE MOV A,#03 ; 0D00 LCALL 0DD4 ; DPTR+=A 0D03 MOVX A,@DPTR ; 0D04 XCH A,R0 ; 0D05 ANL A,#FE ; 0D07 JNB E0,0D15 ; 0D0A PUSH ACC ; 0D0C CLR IE.2 ; Disable IRQ #1 0D0E LCALL 0FC9 ; 0D11 SETB IE.2 ; Enable IRQ #1 0D13 POP ACC ; 0D15 CJNE A,18,0D1D ; 0D18 SETB 06 ; 0D1A LJMP 0D1F ; 0D1D CLR 06 ; 0D1F MOV DPH,31 ; 0D22 MOV DPL,32 ; 0D25 MOV A,#06 ; 0D27 LCALL 0DD4 ; DPTR+=A 0D2A MOVX A,@DPTR ; 0D2B MOV R2,A ; 0D2C INC DPTR ; 0D2D JZ 0CD5 ; 0D2F JNB 06,0D4A ; 0D32 SETB 02 ; 0D34 LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 0D37 JZ 0D47 ; 0D39 MOV A,R1 ; 0D3A ANL A,#01 ; 0D3C JNZ 0D32 ; 0D3E MOV A,R0 ; 0D3F MOVX @DPTR,A ; 0D40 INC DPTR ; 0D41 INC 2D ; 0D43 DJNZ R2,0D32 ; 0D45 SJMP 0CD5 ; 0D47 LJMP 0B42 ; 0D4A MOV A,2D ; 0D4C LCALL 0DD4 ; DPTR+=2D 0D4F SETB 02 ; 0D51 LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 0D54 JZ 0D47 ; 0D56 MOV A,R1 ; 0D57 ANL A,#01 ; 0D59 JNZ 0D4A ; 0D5B MOV A,R0 ; 0D5C MOVX @DPTR,A ; 0D5D INC 2D ; 0D5F LJMP 0CD5 ; 0D62 PUSH 18 ; 0D64 LCALL 0928 ; 0D67 SETB 02 ; 0D69 LCALL 0B00 ; A=(W(23)!=0), R0 = !R0 o bitinv(R0) o R0 0D6C JNZ 0D75 ; 0D6E POP B ; 0D70 LCALL 09C4 ; Disable TIRQ #1 (x0108)&=0000 0111 0D73 SJMP 0D47 ; 0D75 MOV A,R1 ; 0D76 ANL A,#01 ; 0D78 JNZ 0D64 ; 0D7A MOV A,R0 ; 0D7B POP B ; 0D7D LCALL 108F ; (2D)+=2. (3134)=B (3135)=A 0D80 MOV A,#00 ; 0D82 LCALL 10AA ; (3132)=(2D)+6 (2D)=0 (3133h)=A R2=0 R3=A 0D85 LCALL 09C4 ; Disable TIRQ #1 (x0108)&=0000 0111 0D88 RET ; 0D89 MOV A,#01 ; 0D8B LCALL 0E6A ; Delay(A) 0D8E MOV A,29 ; 0D90 JZ 0DA1 ; 0D92 PUSH B ; 0D94 MOV B,#03 ; 0D97 DIV AB ; 0D98 JNZ 0D9C ; 0D9A MOV A,#01 ; 0D9C LCALL 0E6A ; Delay(A) 0D9F POP B ; 0DA1 RET ; 0DA2 PUSH PSW ; 0DA4 MOV 02,#00 ; R2=0 0DA7 MOV 03,#00 ; R3=0 0DAA MOV C,96 ; 0DAC JNC 0DB1 ; 0DAE MOV 03,#01 ; R3=1 0DB1 POP PSW ; 0DB3 RET ; 0DB4 MOV A,R4 ; 0DB5 MOV B,R6 ; 0DB7 CJNE A,B,0DC1 ; 0DBA MOV A,R5 ; 0DBB MOV B,R7 ; 0DBD CJNE A,B,0DC1 ; 0DC0 CLR C ; 0DC1 RET ; 0DC2 PUSH DPH ; 0DC4 PUSH DPL ; 0DC6 MOV DPH,R6 ; 0DC8 MOV DPL,R7 ; 0DCA INC DPTR ; 0DCB MOV R6,DPH ; 0DCD MOV R7,DPL ; 0DCF POP DPL ; 0DD1 POP DPH ; 0DD3 RET ; 0DD4 ADD A,DPL ; DPTR+=A DPTR+=A 0DD6 MOV DPL,A ; 0DD8 MOV A,DPH ; 0DDA ADDC A,#00 ; 0DDC MOV DPH,A ; 0DDE RET ; 0DDF MOV A,DPL ; 0DE1 DEC DPL ; 0DE3 JNZ 0DE7 ; 0DE5 DEC DPH ; 0DE7 RET ; 0DE8 MOV 18,A ; 0DEA CLR A ; 0DEB MOVC A,@A+DPTR ; 0DEC PUSH ACC ; 0DEE MOVC A,@A+DPTR ; 0DEF CJNE A,18,0DF5 ; 0DF2 POP ACC ; 0DF4 RET ; 0DF5 POP ACC ; 0DF7 DJNZ ACC,0DEC ; 0DFA RET ; 0DFB MOV DPH,R2 ; 0DFD MOV DPL,R3 ; 0DFF PUSH DPH ; 0E01 PUSH DPL ; 0E03 LCALL 023D ; R2=(R6R7) R3=(R6R7+1) R6R7+=2 0E06 POP DPL ; 0E08 POP DPH ; 0E0A MOV A,DPH ; 0E0C MOV C,E7 ; 0E0E MOV A,R3 ; 0E0F LCALL 0E26 ; (x0000)=R3,(xDPTR)=R3,Delay(3A) 0E12 JC 0E18 ; 0E14 MOVX A,@DPTR ; 0E15 LJMP 0E1A ; 0E18 CLR A ; 0E19 MOVC A,@A+DPTR ; 0E1A CJNE A,03,0E21 ; 0E1D MOV R3,#00 ; 0E1F SJMP 0E23 ; 0E21 MOV R3,#01 ; 0E23 MOV R2,#00 ; 0E25 RET ; 0E26 CLR IE.7 ; Disable Timer #1 Interrupt 0E28 PUSH DPH ; (x0000)=A,(xDPTR)=A,Delay(3A) 0E2A PUSH DPL ; 0E2C MOV DPTR,#0000 ; 0E2F MOVX @DPTR,A ; 0E30 POP DPL ; 0E32 POP DPH ; 0E34 MOVX @DPTR,A ; 0E35 PUSH ACC ; 0E37 MOV A,#3A ; 0E39 DEC A ; 0E3A JNZ 0E39 ; 0E3C POP ACC ; 0E3E SETB IE.7 ; Enable Global Interrupt 0E40 RET ; 0E41 LCALL 1062 ; 0E44 ORL PCON,#02 ; 0E47 SJMP 0E44 ; 0E49 PUSH PSW ; Delay (98*(A+100d*B)) 0E4B ORL PSW,#18 ; 0E4E PUSH 19 ; R1\ 0E50 JZ 0E5C ; 0E52 MOV R1,A ; 0E53 MOV A,#62 ; 0E55 DEC A ; 0E56 CJNE A,#00,0E55 ; 0E59 NOP ; 0E5A DJNZ R1,0E53 ; Delay 62*A 0E5C MOV A,#64 ; 0E5E DEC B ; 0E60 MOV R1,B ; 0E62 CJNE R1,#FF,0E52 ; Delay 62*64*B 0E65 POP 19 ; R1\ 0E67 POP PSW ; 0E69 RET ; ; Subrutine ; Input: ; A ; B ; Output: 0E6A SETB D3 ; 0E6C SETB D4 ; Select Register's Bank 0011 0E6E PUSH 19 ; 11.R0 0E70 MOV R1,A ; R1 = A 0E71 PUSH 18 ; 11.R1 0E73 MOV R0,#0A ; R0 = 0A 0E75 PUSH ACC ; 0E77 PUSH B ; 0E79 DIV AB ; A=A div B B=A mod B 0E7A MUL AB ; BA=(A div B)*(A mod B) 0E7B NOP ; 0E7C POP B ; 0E7E POP ACC ; 0E80 DJNZ R0,0E75 ; 0E82 POP 18 ; 0E84 NOP ; 0E85 DJNZ R1,0E71 ; 0E87 POP 19 ; 0E89 RET ; 0E8A PUSH PSW ; 0E8C PUSH ACC ; 0E8E SETB P1.0 ; 0E90 CLR P1.1 ; 0E92 CLR P1.2 ; P1=xxxx x001 0E94 PUSH 19 ; 0E96 MOV R1,#FF ; 0E98 MOV A,#14 ; 0E9A DEC A ; 0E9B CJNE A,#00,0E9A ; 0E9E DJNZ R1,0E98 ; Delay de 20*255 ciclos 0EA0 POP 19 ; 0EA2 MOV DPTR,#010D ; 0EA5 MOVX A,@DPTR ; 0EA6 ORL A,#08 ; 0EA8 MOVX @DPTR,A ; (x010D)|=00001000 0EA9 MOV DPTR,#0010 ; 0EAC MOVX @DPTR,A ; (x0010)=(x010D) 0EAD SETB P1.5 ; P1=xx1x xxxx 0EAF POP ACC ; 0EB1 POP PSW ; 0EB3 RET ; 0EB4 PUSH PSW ; 0EB6 PUSH ACC ; 0EB8 CLR P1.0 ; 0EBA CLR P1.1 ; 0EBC CLR P1.2 ; P1=xxxxx000 0EBE MOV DPTR,#010D ; 0EC1 MOVX A,@DPTR ; 0EC2 ANL A,#F7 ; 0EC4 MOVX @DPTR,A ; (x010D)&=11110111 0EC5 MOV DPTR,#0010 ; 0EC8 MOVX @DPTR,A ; (x0010)=(x010D) 0EC9 POP ACC ; 0ECB POP PSW ; 0ECD RET ; 0ECE PUSH PSW ; 0ED0 PUSH ACC ; 0ED2 MOV A,P1 ; 0ED4 ORL A,P1 ; 0ED6 ANL A,P1 ; 0ED8 PUSH ACC ; 0EDA SETB P1.0 ; 0EDC CLR P1.1 ; 0EDE CLR P1.2 ; P1=xxxxx001 0EE0 MOV DPTR,#010D ; 0EE3 MOVX A,@DPTR ; 0EE4 ORL A,#08 ; 0EE6 MOV DPTR,#0010 ; 0EE9 MOVX @DPTR,A ; 0EEA CLR P1.5 ; 0EEC PUSH 19 ; 0EEE MOV R1,#FF ; 0EF0 MOV A,#14 ; 0EF2 DEC A ; 0EF3 CJNE A,#00,0EF2 ; 0EF6 DJNZ R1,0EF0 ; Delay de 20*255 ciclos 0EF8 POP 19 ; 0EFA MOV DPTR,#0010 ; 0EFD MOVX A,@DPTR ; 0EFE ANL A,#01 ; 0F00 MOV 02,#00 ; 0F03 MOV 03,#00 ; 0F06 JNZ 0F0B ; 0F08 MOV 03,#01 ; 0F0B CLR P1.0 ; 0F0D CLR P1.1 ; 0F0F CLR P1.2 ; P1=xxxxx000 0F11 MOV DPTR,#010D ; 0F14 MOVX A,@DPTR ; 0F15 MOV DPTR,#0010 ; 0F18 MOVX @DPTR,A ; 0F19 POP ACC ; 0F1B ORL P1,A ; 0F1D ANL P1,A ; (P1)=A 0F1F POP ACC ; 0F21 POP PSW ; 0F23 RET ; 0F24 PUSH PSW ; 0F26 MOV DPTR,#010D ; 0F29 MOVX A,@DPTR ; 0F2A ORL A,#02 ; 0F2C MOVX @DPTR,A ; 0F2D MOV DPTR,#0010 ; 0F30 MOVX @DPTR,A ; 0F31 POP PSW ; 0F33 RET ; 0F34 PUSH PSW ; 0F36 MOV DPTR,#010D ; 0F39 MOVX A,@DPTR ; 0F3A ANL A,#FD ; 0F3C MOVX @DPTR,A ; 0F3D MOV DPTR,#0010 ; 0F40 MOVX @DPTR,A ; 0F41 POP PSW ; 0F43 RET ; ; IRQ #0 ; 0F44 PUSH PSW ; 0F46 PUSH ACC ; 0F48 PUSH DPH ; 0F4A PUSH DPL ; 0F4C PUSH B ; 0F4E MOV DPTR,#0005 ; 0F51 MOVX A,@DPTR ; A = (x0005) 0F52 MOV B,A ; B = (x0005) 0F54 ANL A,#30 ; A&=0011 0000 0F56 JZ 0F6B ; Si no estaban prendidos 0011 0000  0F6B 0F58 ANL A,#10 ; 0F5A JZ 0F62 ; si solo estaba prendido 0010 0000  0F62 0F5C MOV DPTR,#0008 ; Si (x0005).4 esta prendido => 0F5F MOVX A,@DPTR ; 18=(x0008) 0F60 MOV 18,A ; Si (x0005).4 no esta prendido => 0F62 MOV A,B ; 18=(x0005) 0F64 MOV 19,A ; 19=(x0005) 0F66 CLR 02 ; 0.2=0 0F68 LJMP 0FBE ; IRET 0F6B CLR D3 ; Si no estan prendidos ni x5.4 ni x5.5 0F6D SETB D4 ; Select Register's Bank 0010 0F6F PUSH 0B ; R1 0F71 PUSH 0D ; R3 0F73 MOV DPTR,#0003 ; 0F76 MOVX A,@DPTR ; A=(x0003) 0F77 MOV DPTR,#010E ; 0F7A MOVX @DPTR,A ; (x010E)=(x0003) 0F7B MOV B,A ; B=(0x0003) 0F7D MOV DPTR,#0001 ; 0F80 MOVX A,@DPTR ; A=(x0001) 0F81 MOV DPTR,#0106 ; 0F84 MOVX @DPTR,A ; (x0106)=(x0001) 0F85 MOV R3,A ; R3=(x0001) 0F86 JNB F0,0FB8 ; 0F89 MOV A,B ; A=(x0003) 0F8B ANL A,#50 ; A&=0101 0000 0F8D JZ 0F91 ; 0F8F SETB 0A ; Si estan prendidos x3.4 o x3.6 =>b.0A=1 0F91 MOV A,B ; 0F93 ANL A,#0A ; 0F95 JNZ 0FBA ; 0F97 MOV DPTR,#0102 ; Si estan prendidos x4.5 o x3.7 0F9A MOVX A,@DPTR ; 0F9B MOV R1,A ; 0F9C MOV DPTR,#0103 ; 0F9F MOVX A,@DPTR ; 0FA0 MOV DPL,A ; 0FA2 MOV DPH,R1 ; DPTR=W(x0102) $C110 0FA4 CLR F0 ; b.F0 = 0 0FA6 MOV A,B ; 0FA8 MOVX @DPTR,A ; (W(x0102)) = (x0003) 0FA9 INC DPTR ; DPTR=W(x0102)+1 0FAA MOVX A,@DPTR ; 0FAB MOV R1,A ; R1=(W(x0102)+1) 0FAC INC A ; 0FAD MOVX @DPTR,A ; (W(x0102)+1)++ 0FAE MOV A,#02 ; 0FB0 ADD A,R1 ; 0FB1 LCALL 0DD4 ; DPTR+=02 0FB4 MOV A,R3 ; 0FB5 MOVX @DPTR,A ; 0FB6 SJMP 0FBA ; 0FB8 SETB 0A ; 0FBA POP 0D ; 0FBC POP 0B ; 0FBE POP B ; 0FC0 POP DPL ; 0FC2 POP DPH ; 0FC4 POP ACC ; 0FC6 POP PSW ; 0FC8 RETI ; 0FC9 CLR P1.3 ; P1 = xxxx0xxx 0FCB JB 0B,0FD1 ; 0FCE LCALL 1004 ; P1 = xxxxx010,Del,xxxxxx01,Del,xxxxxx1x,Del 0FD1 MOV A,26 ; 0FD3 LCALL 0FED ; (x0004),(x0107)=A-Dh,(x0109),(x0006)!=10 0FD6 MOV B,#01 ; 0FD9 CLR A ; 0FDA LCALL 0E49 ; Delay (1s) 0FDD RET ; 0FDE CLR AA ; Disable IRQ #1 0FE0 MOV A,#32 ; 0FE2 LCALL 0FED ; (x0004),(x0107)=A-Dh,(x0109),(x0006)!=10 0FE5 SETB P1.3 ; P1=xxxx1xxx 0FE7 MOV A,#01 ; 0FE9 LCALL 0E6A ; Delay(1) 0FEC RET ; 0FED CLR C ; (x0004),(x0107)=A-Dh,(x0109),(x0006)!=10 0FEE SUBB A,#0D ; 0FF0 MOV DPTR,#0004 ; 0FF3 MOVX @DPTR,A ; 0FF4 MOV DPTR,#0107 ; 0FF7 MOVX @DPTR,A ; 0FF8 MOV DPTR,#0109 ; 0FFB MOVX A,@DPTR ; (x0009) |= 0001.0000 0FFC ORL A,#10 ; 0FFE MOVX @DPTR,A ; 0FFF MOV DPTR,#0006 ; (x0006) |= 0001.0000 1002 MOVX @DPTR,A ; 1003 RET ; 1004 CLR P1.2 ; 1006 SETB P1.1 ; 1008 CLR P1.0 ; P1=xxxxx010 100A MOV B,#00 ; 100D MOV A,#24 ; 100F LCALL 0E49 ; Delay (0.36s) 1012 CLR P1.1 ; 1014 SETB P1.0 ; P1=xxxxxx01 1016 MOV B,#00 ; 1019 MOV A,#3C ; 101B LCALL 0E49 ; Delay (0.60s) 101E SETB P1.1 ; P1=xxxxxx1x 1020 MOV B,#00 ; 1023 MOV A,#2D ; 1025 LCALL 0E49 ; Delay (0.45s) 1028 SETB 0B ; 102A RET ; 102B CLR P1.0 ; (P1.0)=0 (P1.1)=0 (P1.2)=0 (21h.7)=0 102D CLR P1.1 ; 102F CLR P1.2 ; 1031 CLR 21.7 ; 1033 RET ; 1034 LCALL 102B ; P1=xxxxx000 (21h.7)=0 1037 MOV A,#00 ; 1039 MOV DPTR,#0004 ; 103C MOVX @DPTR,A ; (x0104)=0 103D MOV DPTR,#0107 ; 1040 MOVX @DPTR,A ; (x0107)=0 1041 MOV DPTR,#0109 ; 1044 MOVX A,@DPTR ; (x0109)=0 1045 ORL A,#20 ; 1047 MOVX @DPTR,A ; (x0109)=0010.0000 1048 MOV DPTR,#0006 ; 104B MOVX @DPTR,A ; (x0006)=0010.0000 104C MOV A,#01 ; 104E LCALL 0E6A ; Delay(1) 1051 LCALL 0FDE ; 1054 MOV B,#00 ; 1057 MOV A,#02 ; 1059 LCALL 0E49 ; Delay (0.02s) 105C MOV A,#01 ; 105E LCALL 0E6A ; Delay(1) 1061 RET ; 1062 CLR AA ; Disable IRQ #1 1064 MOV DPTR,#0109 ; 1067 MOVX A,@DPTR ; 1068 ANL A,#EF ; 106A MOVX @DPTR,A ; (x0109)&=11101111b 106B MOV DPTR,#0006 ; 106E MOVX @DPTR,A ; (x0006)=(x0109) 106F LCALL 102B ; (P1.0)=0 (P1.1)=0 (P1.2)=0 (21h.7)=0 1072 MOV A,#00 ; 1074 MOV DPTR,#0004 ; 1077 MOVX @DPTR,A ; (x0004)=00 1078 MOV DPTR,#0107 ; 107B MOVX @DPTR,A ; (x0107)=00 107C MOV A,#01 ; A=01 107E LCALL 0E6A ; Delay(1) 1081 CLR A ; 1082 MOV DPTR,#0109 ; 1085 MOVX @DPTR,A ; (x0109)=00 1086 MOV DPTR,#0006 ; 1089 MOVX @DPTR,A ; (x0006)=00 108A CLR P1.3 ; P1.3=0 108C CLR P1.4 ; P1.4=0 108E RET ; 108F MOV DPH,31 ; (2D)+=2. (3134)=B (3135)=A 1092 MOV DPL,32 ; 1095 PUSH ACC ; 1097 MOV A,#02 ; 1099 LCALL 0DD4 ; DPTR+=02 109C MOV A,B ; 109E MOVX @DPTR,A ; 109F INC DPTR ; 10A0 POP ACC ; 10A2 MOVX @DPTR,A ; 10A3 MOV A,2D ; 10A5 INC A ; 10A6 INC A ; 10A7 MOV 2D,A ; 10A9 RET ; 10AA MOV DPH,31 ; (x3132)=(2D)+6 (2D)=0 (x3133)=A R2=0 R3=A 10AD MOV DPL,32 ; 10B0 PUSH ACC ; 10B2 MOV A,2D ; 10B4 ADD A,#06 ; 10B6 MOV 2D,#00 ; (2D)=00 10B9 MOVX @DPTR,A ; (x3132)=(2D)+06 10BA MOV A,#01 ; 10BC LCALL 0DD4 ; DPTR+=01 10BF POP ACC ; 10C1 MOVX @DPTR,A ; (x3133)=A 10C2 MOV 02,#00 ; 10C5 MOV 03,A ; 10C7 RET ; 10C8 PUSH PSW ; 10CA PUSH ACC ; 10CC PUSH DPH ; 10CE PUSH DPL ; 10D0 SETB D3 ; Select Register's Bank 0011 10D2 SETB D4 ; 10D4 CLR A ; 10D5 MOV R0,A ; 10D6 MOV R1,A ; 10D7 MOV R2,A ; 10D8 MOV R3,#10 ; 10DA MOV DPH,A ; 10DC MOV DPL,A ; 10DE LCALL 1196 ; 10E1 CLR A ; 10E2 MOV R2,A ; 10E3 MOV R3,#08 ; 10E5 MOV DPTR,#0030 ; 10E8 LCALL 1196 ; 10EB CLR A ; 10EC XCH A,R3 ; 10ED SUBB A,#4E ; 10EF RRC A ; 10F0 MOV R3,A ; 10F1 MOV R2,#3F ; 10F3 MOV DPTR,#004E ; 10F6 LCALL 1196 ; 10F9 MOV DPTR,#0047 ; 10FC CLR A ; 10FD MOVC A,@A+DPTR ; 10FE XRL A,R0 ; 10FF JNZ 114E ; 1101 INC DPTR ; 1102 CLR A ; 1103 MOVC A,@A+DPTR ; 1104 XRL A,R1 ; 1105 JNZ 114E ; 1107 PUSH 18 ; 1109 PUSH 19 ; 110B MOV R0,A ; 110C MOV R1,A ; 110D MOV R2,#40 ; 110F MOV R3,#00 ; 1111 MOV DPH,#80 ; 1114 MOV DPL,A ; 1116 LCALL 1196 ; 1119 MOV DPTR,#004A ; 111C CLR A ; 111D MOVC A,@A+DPTR ; 111E XRL A,R0 ; 111F JNZ 114E ; 1121 INC DPTR ; 1122 CLR A ; 1123 MOVC A,@A+DPTR ; 1124 XRL A,R1 ; 1125 JNZ 114E ; 1127 POP 1B ; 1129 POP 1A ; 112B MOV A,R2 ; 112C XRL A,R0 ; 112D MOV R0,A ; 112E MOV A,R3 ; 112F XRL A,R1 ; 1130 MOV R1,A ; 1131 CLR A ; 1132 PUSH ACC ; 1134 LCALL 116A ; 1137 MOV A,R0 ; 1138 MOVX @DPTR,A ; 1139 INC DPTR ; 113A MOV A,R1 ; 113B MOVX @DPTR,A ; 113C INC DPTR ; 113D POP ACC ; 113F MOVX @DPTR,A ; 1140 MOV 03,A ; 1142 CLR A ; 1143 MOV 02,A ; 1145 POP DPL ; 1147 POP DPH ; 1149 POP ACC ; 114B POP PSW ; 114D RET ; 114E MOV DPTR,#0047 ; 1151 CLR A ; 1152 MOVC A,@A+DPTR ; 1153 MOV R0,A ; 1154 INC DPTR ; 1155 CLR A ; 1156 MOVC A,@A+DPTR ; 1157 MOV R1,A ; 1158 MOV DPTR,#004A ; 115B CLR A ; 115C MOVC A,@A+DPTR ; 115D XRL A,R0 ; 115E MOV R0,A ; 115F INC DPTR ; 1160 CLR A ; 1161 MOVC A,@A+DPTR ; 1162 XRL A,R1 ; 1163 MOV R1,A ; 1164 MOV A,#01 ; 1166 PUSH ACC ; 1168 SJMP 1134 ; 116A MOV DPTR,#0042 ; 116D MOV R3,#04 ; 116F CLR A ; 1170 MOVC A,@A+DPTR ; 1171 PUSH ACC ; 1173 INC DPTR ; 1174 DJNZ R3,116F ; 1176 MOV A,03 ; 1178 ADD A,#03 ; 117A MOV R5,A ; 117B MOV DPL,A ; 117D MOV A,02 ; 117F ADDC A,#00 ; 1181 MOV R4,A ; 1182 MOV DPH,A ; 1184 MOV R3,#04 ; 1186 POP ACC ; 1188 MOVX @DPTR,A ; 1189 LCALL 0DDF ; 118C DJNZ R3,1186 ; 118E MOV A,R5 ; 118F MOV DPL,A ; 1191 MOV A,R4 ; 1192 MOV DPH,A ; 1194 INC DPTR ; 1195 RET ; 1196 CLR A ; 1197 MOVC A,@A+DPTR ; 1198 XRL A,R0 ; 1199 MOV R0,A ; 119A INC DPTR ; 119B CLR A ; 119C MOVC A,@A+DPTR ; 119D XRL A,R1 ; 119E MOV R1,A ; 119F INC DPTR ; 11A0 LCALL 11A6 ; 11A3 JNZ 1196 ; 11A5 RET ; 11A6 MOV A,R3 ; 11A7 JNZ 11B0 ; 11A9 MOV R3,#FF ; 11AB MOV A,R2 ; 11AC DEC A ; 11AD MOV R2,A ; 11AE ORL A,R3 ; 11AF RET ; 11B0 DEC A ; 11B1 MOV R3,A ; 11B2 ORL A,R2 ; 11B3 RET ; ; Subrutine ; Input: ; R2R3 Puntero = $10C1 11B4 PUSH PSW ; 11B6 CLR IE.0 ; Disable IRQ #0 11B8 MOV DPTR,#0108 ; 11BB MOVX A,@DPTR ; 11BC ORL A,#01 ; 11BE MOVX @DPTR,A ; (x0108)|=0000 0001 11BF MOV DPTR,#0005 ; (x0005)=(x0108) 11C2 MOVX @DPTR,A ; 11C3 MOV DPTR,#0102 ; 11C6 MOV A,R2 ; 11C7 MOVX @DPTR,A ; 11C8 MOV DPTR,#0103 ; 11CB MOV A,R3 ; 11CC MOVX @DPTR,A ; W(x0102)=R2R3 11CD LCALL 023D ; R2=(R6R7) R3=(R6R7+1) R6R7+=2 11D0 MOV A,R2 ; 11D1 ANL A,#07 ; 11D3 MOV DPTR,#0105 ; 11D6 MOVX @DPTR,A ; 11D7 MOV DPTR,#0003 ; 11DA MOVX @DPTR,A ; 11DB MOV A,R2 ; 11DC ANL A,#08 ; 11DE JZ 120A ; 11E0 MOV A,R3 ; 11E1 SETB E7 ; 11E3 MOV DPTR,#0104 ; 11E6 MOVX @DPTR,A ; 11E7 MOV DPTR,#0002 ; 11EA MOVX @DPTR,A ; 11EB MOV DPTR,#0003 ; 11EE MOVX A,@DPTR ; 11EF MOV DPTR,#0102 ; 11F2 MOVX A,@DPTR ; 11F3 MOV B,A ; 11F5 MOV DPTR,#0103 ; 11F8 MOVX A,@DPTR ; 11F9 MOV DPL,A ; 11FB MOV A,B ; 11FD MOV DPH,A ; DPTR = W(x0102) 11FF MOV A,R2 ; 1200 ANL A,#F0 ; 1202 SETB E0 ; 1204 MOVX @DPTR,A ; 1205 CLR A ; 1206 INC DPTR ; 1207 MOVX @DPTR,A ; 1208 INC DPTR ; 1209 MOVX @DPTR,A ; 120A SETB IE.0 ; Enable IRQ #0 120C SETB 0A ; 120E POP PSW ; 1210 RET ; 1211 PUSH PSW ; 1213 PUSH B ; 1215 MOV DPTR,#0003 ; 1218 MOVX A,@DPTR ; 1219 CLR A ; 121A JNB 0A,121A ; 121D CLR 0A ; 121F MOV DPTR,#0001 ; 1222 MOV A,R3 ; 1223 MOVX @DPTR,A ; 1224 MOV DPTR,#0003 ; 1227 MOVX A,@DPTR ; 1228 MOV C,E5 ; 122A CLR A ; 122B MOV E0,C ; 122D MOV 03,A ; 122F POP B ; 1231 POP PSW ; 1233 RET ; 1234 PUSH PSW ; 1236 PUSH B ; 1238 CLR IE.0 ; Disable IRQ #0 123A MOV DPTR,#0102 ; 123D MOVX A,@DPTR ; 123E MOV B,A ; 1240 MOV DPTR,#0103 ; 1243 MOVX A,@DPTR ; 1244 MOV DPL,A ; 1246 MOV A,B ; 1248 MOV DPH,A ; DPTR = W(x0102) 124A SETB D3 ; Select Register's Bank 0011 124C SETB D4 ; 124E MOV R3,#00 ; 1250 MOVX A,@DPTR ; 1251 MOV B,A ; 1253 MOV 02,A ; 1255 JB F0,1281 ; 1258 PUSH DPH ; 125A PUSH DPL ; 125C INC DPTR ; 125D MOVX A,@DPTR ; 125E MOV R1,A ; 125F INC DPTR ; 1260 MOVX A,@DPTR ; 1261 MOV R2,A ; 1262 INC DPTR ; 1263 LCALL 0DD4 ; DPTR+=A 1266 MOVX A,@DPTR ; 1267 MOV 03,A ; 1269 INC R2 ; 126A MOV A,R1 ; 126B CLR C ; 126C SUBB A,R2 ; 126D JNZ 1274 ; 126F SETB F0 ; 1271 CLR A ; 1272 MOV R1,A ; 1273 MOV R2,A ; 1274 POP DPL ; 1276 POP DPH ; 1278 MOV A,B ; 127A MOVX @DPTR,A ; 127B INC DPTR ; 127C MOV A,R1 ; 127D MOVX @DPTR,A ; 127E INC DPTR ; 127F MOV A,R2 ; 1280 MOVX @DPTR,A ; 1281 SETB IE.0 ; Enable IRQ #0 1283 POP B ; 1285 POP PSW ; 1287 RET ; 1288 PUSH PSW ; 128A MOV 1E,R2 ; 128C MOV 1F,R3 ; 128E LCALL 023D ; R2=(R6R7) R3=(R6R7+1) R6R7+=2 1291 MOV A,R2 ; 1292 JNZ 1297 ; 1294 MOV A,R3 ; 1295 JZ 12D4 ; 1297 SETB D3 ; Select Register's Bank 0011 1299 SETB D4 ; 129B MOV R5,#00 ; 129D MOV R2,02 ; 129F MOV R3,03 ; 12A1 MOV A,R5 ; 12A2 RL A ; 12A3 RL A ; 12A4 RL A ; 12A5 MOV R5,A ; 12A6 MOV DPH,R6 ; 12A8 MOV DPL,R7 ; 12AA MOVX A,@DPTR ; 12AB INC DPTR ; 12AC MOV R7,DPL ; 12AE MOV R6,DPH ; 12B0 XRL A,R5 ; 12B1 MOV B,A ; 12B3 ANL A,#0F ; 12B5 MOV DPTR,#12D7 ; 12B8 MOVC A,@A+DPTR ; 12B9 MOV R5,A ; 12BA MOV A,B ; 12BC ANL A,#F0 ; 12BE RR A ; 12BF RR A ; 12C0 RR A ; 12C1 RR A ; 12C2 MOV DPTR,#12E7 ; 12C5 MOVC A,@A+DPTR ; 12C6 XRL A,R5 ; 12C7 MOV R5,A ; 12C8 DJNZ R3,12A1 ; 12CA MOV A,R2 ; 12CB JZ 12CF ; 12CD DJNZ R2,12A1 ; 12CF MOV 02,#00 ; 12D2 MOV 03,R5 ; 12D4 POP PSW ; 12D6 RET ; 12D0 00-05 0A 0F 14 11 1E 1B 0D ......... 12E0 08 07 02 19 1C 13 16 00-1A 11 0B 07 1D 16 0C 0E ................ 12F0 14 1F 05 09 13 18 02 0C-82 83 84 85 02 03 DC E8 ................ 1300 E4 E2 E1 FD 12D7 NOP ; 12D8 INC 0A ; 12DA INC R7 ; 12DB DEC A ; 12DC ACALL 101E ; 12DE DEC R3 ; 12DF INC R5 ; 12E0 INC R0 ; 12E1 INC @R1 ; 12E2 LJMP 191C ; 12E5 RRC A ; 12E6 DEC @R0 ; 12E7 NOP ; 12E8 DEC R2 ; 12E9 ACALL 100B ; 12EB INC @R1 ; 12EC DEC R5 ; 12ED DEC @R0 ; 12EE INC R4 ; 12EF INC R6 ; 12F0 DEC A ; 12F1 DEC R7 ; 12F2 INC 09 ; 12F4 RRC A ; 12F5 DEC R0 ; 12F6 LJMP 0C82 ; 12F9 MOVC A,@A+PC ; 12FA DIV AB ; 12FB MOV 03,02 ; 12FE DJNZ R4,12E8 ; 1300 CLR A ; 1301 MOVX A,@R0 ; 1302 AJMP 17FD ; 1304 DB 90, 00, 90, 10 1308 DB 90, 20, 90, 40 130A DB 90, 80, 90, 00 1310 DB CardCount 04 1311 DB CardSize 00, 10, 20, 80 1315 DB Card80 FA, 32, 01 ;(250,50,1) 1318 DB Card20 D2, 32, 01 ;(210,50,1) 131B DB Card10 D2, 0A, 05 ;(210,10,5) 131E DB Card00 00, 0A, 01 ;(0,10,1) 2000 JB 20,2023 ; 2003 JB 20,2026 ; 2006 NOP ; 2007 NOP ; 2008 JB 0C,2061 ; 200B MOV R4,A ; 200C LJMP 5034 ; 200F PUSH PSW ; 2011 PUSH DPH ; 2013 PUSH DPL ; 2015 CLR D3 ; Select Register's Bank 0000 2017 CLR D4 ; 2019 MOV 04,R2 ; 201B MOV 05,R3 ; 201D LCALL 5667 ; 2020 MOV DPH,R2 ; 2022 MOV DPL,R3 ; 2024 MOV R2,04 ; 2026 MOV R3,05 ; 2028 MOV A,#00 ; 202A MOV R0,A ; 202B MOVX A,@DPTR ; 202C XRL A,R0 ; 202D MOV R0,A ; 202E INC DPTR ; 202F DJNZ R3,202B ; 2031 MOV A,R0 ; 2032 MOV 02,00 ; 2035 MOV 03,A ; 2037 POP DPL ; 2039 POP DPH ; 203B POP PSW ; 203D RET ; 203E PUSH PSW ; 2040 PUSH DPH ; 2042 PUSH DPL ; 2044 CLR D3 ; Select Register's Bank 0000 2046 CLR D4 ; 2048 MOV 04,R2 ; 204A MOV 05,R3 ; 204C LCALL 5667 ; 204F MOV DPH,04 ; 2052 MOV DPL,05 ; 2055 MOV 04,#00 ; 2058 MOVX A,@DPTR ; 2059 MOV R2,#08 ; 205B CLR C ; 205C RLC A ; 205D JC 2060 ; 205F INC R4 ; 2060 DJNZ R2,205C ; 2062 INC DPTR ; 2063 DJNZ R3,2058 ; 2065 MOV 02,#00 ; 2068 MOV 03,04 ; 206B POP DPL ; 206D POP DPH ; 206F POP PSW ; 2071 RET ; 2072 PUSH PSW ; 2074 PUSH DPH ; 2076 PUSH DPL ; 2078 CLR D3 ; Select Register's Bank 0000 207A CLR D4 ; 207C MOV 04,R2 ; 207E MOV 05,R3 ; 2080 LCALL 5667 ; 2083 MOV A,R3 ; 2084 DEC A ; 2085 MOV DPH,04 ; 2088 MOV DPL,05 ; 208B CLR C ; 208C MOVX A,@DPTR ; 208D RRC A ; 208E MOVX @DPTR,A ; 208F INC DPTR ; 2090 DJNZ R3,208C ; 2092 POP DPL ; 2094 POP DPH ; 2096 POP PSW ; 2098 RET ; 2099 PUSH PSW ; 209B PUSH DPH ; 209D PUSH DPL ; 209F CLR D3 ; Select Register's Bank 0000 20A1 CLR D4 ; 20A3 MOV 04,R2 ; 20A5 MOV 05,R3 ; 20A7 LCALL 5667 ; 20AA MOV A,R3 ; 20AB DEC A ; 20AC MOV DPH,04 ; 20AF MOV DPL,05 ; 20B2 LCALL 20E5 ; 20B5 CLR C ; 20B6 MOVX A,@DPTR ; 20B7 RLC A ; 20B8 MOVX @DPTR,A ; 20B9 LCALL 20F0 ; 20BC DJNZ R3,20B6 ; 20BE POP DPL ; 20C0 POP DPH ; 20C2 POP PSW ; 20C4 RET ; 20C5 MOV A,R4 ; 20C6 MOV B,R6 ; 20C8 CJNE A,B,20D2 ; 20CB MOV A,R5 ; 20CC MOV B,R7 ; 20CE CJNE A,B,20D2 ; 20D1 CLR C ; 20D2 RET ; 20D3 PUSH DPH ; 20D5 PUSH DPL ; 20D7 MOV DPH,R6 ; 20D9 MOV DPL,R7 ; 20DB INC DPTR ; 20DC MOV R6,DPH ; 20DE MOV R7,DPL ; 20E0 POP DPL ; 20E2 POP DPH ; 20E4 RET ; 20E5 ADD A,DPL ; 20E7 MOV DPL,A ; 20E9 MOV A,DPH ; 20EB ADDC A,#00 ; 20ED MOV DPH,A ; 20EF RET ; 20F0 MOV A,DPL ; 20F2 JNZ 20FD ; 20F4 MOV DPL,#FF ; 20F7 MOV A,DPH ; 20F9 DEC A ; 20FA MOV DPH,A ; 20FC RET ; 20FD DEC A ; 20FE MOV DPL,A ; 2100 RET ; 2101 MOV 18,A ; 2103 CLR A ; 2104 MOVC A,@A+DPTR ; 2105 PUSH ACC ; 2107 MOVC A,@A+DPTR ; 2108 CJNE A,18,210E ; 210B POP ACC ; 210D RET ; 210E POP ACC ; 2110 DJNZ ACC,2105 ; 2113 RET ; 2114 CLR A ; 2115 MOV R0,#00 ; 2117 MOV R1,#08 ; 2119 LCALL 55DB ; 211C MOV R3,#52 ; 211E MOV DPTR,#1405 ; 2121 MOV A,R3 ; 2122 MOVX @DPTR,A ; (x1405)=52 2123 MOV R3,#04 ; 2125 MOV DPTR,#1406 ; 2128 MOV A,R3 ; 2129 MOVX @DPTR,A ; (x1406)=04 212A MOV R3,#80 ; 212C MOV DPTR,#1407 ; 212F MOV A,R3 ; 2130 MOVX @DPTR,A ; (x1407)=80 2131 MOV R3,#02 ; 2133 MOV DPTR,#1408 ; 2136 MOV A,R3 ; 2137 MOVX @DPTR,A ; (x1408)=02 2138 MOV R3,#00 ; 213A MOV DPTR,#140A ; 213D MOV A,R3 ; 213E MOVX @DPTR,A ; (x140A)=00 213F MOV DPTR,#1409 ; 2142 MOV A,R3 ; 2143 MOVX @DPTR,A ; (x1409)=00 2144 MOV R3,#02 ; 2146 MOV DPTR,#11C5 ; 2149 MOV A,R3 ; 214A MOVX @DPTR,A ; (x11C5)=02 214B MOV R3,#00 ; 214D MOV DPTR,#11C6 ; 2150 MOV A,R3 ; 2151 MOVX @DPTR,A ; (x11C6)=00 2152 MOV R3,#C5 ; 2154 MOV R2,#11 ; 2156 MOV DPTR,#0002 ; 2159 LCALL 32FF ; 215C LCALL 53B7 ; 215F INC A ; 2160 NOP ; 2161 LCALL 537E ; 2164 INC A ; 2165 NOP ; 2166 MOV R3,#03 ; 2168 LCALL 5159 ; 216B JNZ 2170 ; 216D LJMP 2305 ; 2170 MOV R3,#00 ; 2172 LCALL 53B7 ; 2175 INC @R0 ; 2176 NOP ; 2177 MOV DPTR,#4102 ; 217A MOVX A,@DPTR ; 217B MOV R3,A ; 217C LCALL 53B7 ; 217F INC 00 ; 2181 MOV R5,#02 ; 2183 MOV A,#05 ; 2185 ADD A,R7 ; 2186 MOV R3,A ; 2187 CLR A ; 2188 ADDC A,R6 ; 2189 MOV R2,A ; 218A MOV DPH,R2 ; 218C MOV DPL,R3 ; 218E MOVX A,@DPTR ; 218F ADD A,R5 ; 2190 MOVX @DPTR,A ; 2191 MOV R3,A ; 2192 MOV A,#05 ; 2194 ADD A,R7 ; 2195 MOV R3,A ; 2196 CLR A ; 2197 ADDC A,R6 ; 2198 MOV R2,A ; 2199 MOV DPTR,#0002 ; 219C LCALL 38D7 ; 219F LCALL 53B7 ; 21A2 INC A ; 21A3 NOP ; 21A4 LCALL 537E ; 21A7 INC A ; 21A8 NOP ; 21A9 MOV R3,#84 ; 21AB LCALL 5159 ; 21AE JZ 21E3 ; 21B0 MOV A,#06 ; 21B2 ADD A,R7 ; 21B3 MOV R3,A ; 21B4 CLR A ; 21B5 ADDC A,R6 ; 21B6 MOV R2,A ; 21B7 LCALL 5234 ; 21BA AJMP 2012 ; 21BC ANL 7E,#06 ; 21BF NOP ; 21C0 MOV R3,#03 ; 21C2 LCALL 5159 ; 21C5 JZ 21D0 ; 21C7 MOV R3,#01 ; 21C9 LCALL 53B7 ; 21CC INC A ; 21CD NOP ; 21CE SJMP 2237 ; 21D0 MOV R5,#FD ; 21D2 MOV A,#05 ; 21D4 ADD A,R7 ; 21D5 MOV R3,A ; 21D6 CLR A ; 21D7 ADDC A,R6 ; 21D8 MOV R2,A ; 21D9 MOV DPH,R2 ; 21DB MOV DPL,R3 ; 21DD MOVX A,@DPTR ; 21DE ADD A,R5 ; 21DF MOVX @DPTR,A ; 21E0 MOV R3,A ; 21E1 SJMP 222D ; 21E3 LCALL 5378 ; 21E6 INC A ; 21E7 NOP ; 21E8 JZ 21F6 ; 21EA LCALL 537E ; 21ED INC A ; 21EE NOP ; 21EF MOV R3,#FF ; 21F1 LCALL 5159 ; 21F4 JZ 222B ; 21F6 MOV R3,#00 ; 21F8 LCALL 53B7 ; 21FB INC @R0 ; 21FC NOP ; 21FD LCALL 537E ; 2200 INC A ; 2201 NOP ; 2202 MOV R3,#40 ; 2204 MOV A,R3 ; 2205 ANL A,R5 ; 2206 MOV R3,A ; 2207 MOV 05,R3 ; 2209 MOV R3,#09 ; 220B MOV R2,#14 ; 220D MOV DPH,R2 ; 220F MOV DPL,R3 ; 2211 MOVX A,@DPTR ; 2212 ORL A,R5 ; 2213 MOVX @DPTR,A ; 2214 MOV R3,A ; 2215 MOV R3,#00 ; 2217 LCALL 53B7 ; 221A INC A ; 221B NOP ; 221C MOV A,#05 ; 221E ADD A,R7 ; 221F MOV R3,A ; 2220 CLR A ; 2221 ADDC A,R6 ; 2222 MOV R2,A ; 2223 MOV DPTR,#0002 ; 2226 LCALL 2680 ; 2229 SJMP 222D ; 222B SJMP 2237 ; 222D LCALL 5378 ; 2230 INC 00 ; 2232 JZ 2237 ; 2234 LJMP 2181 ; 2237 LCALL 5378 ; 223A INC A ; 223B NOP ; 223C JZ 2241 ; 223E LJMP 2305 ; 2241 MOV R3,#00 ; 2243 MOV DPTR,#1408 ; 2246 MOV A,R3 ; 2247 MOVX @DPTR,A ; 2248 MOV R3,#07 ; 224A MOV DPTR,#11C5 ; 224D MOV A,R3 ; 224E MOVX @DPTR,A ; 224F MOV R3,#01 ; 2251 MOV DPTR,#11C6 ; 2254 MOV A,R3 ; 2255 MOVX @DPTR,A ; 2256 MOV R3,#00 ; 2258 MOV DPTR,#11C7 ; 225B MOV A,R3 ; 225C MOVX @DPTR,A ; 225D MOV R3,#B0 ; 225F MOV DPTR,#11C8 ; 2262 MOV A,R3 ; 2263 MOVX @DPTR,A ; 2264 MOV R3,#00 ; 2266 MOV DPTR,#11C9 ; 2269 MOV A,R3 ; 226A MOVX @DPTR,A ; 226B MOV R3,#00 ; 226D MOV DPTR,#11CA ; 2270 MOV A,R3 ; 2271 MOVX @DPTR,A ; 2272 MOV R3,#20 ; 2274 MOV DPTR,#11CB ; 2277 MOV A,R3 ; 2278 MOVX @DPTR,A ; 2279 MOV R3,#C5 ; 227B MOV R2,#11 ; 227D MOV DPTR,#0002 ; 2280 LCALL 32FF ; 2283 LCALL 5378 ; 2286 INC A ; 2287 NOP ; 2288 JZ 2296 ; 228A LCALL 537E ; 228D INC A ; 228E NOP ; 228F MOV R3,#FF ; 2291 LCALL 5159 ; 2294 JZ 2305 ; 2296 LCALL 537E ; 2299 INC A ; 229A NOP ; 229B MOV R3,#40 ; 229D MOV A,R3 ; 229E ANL A,R5 ; 229F MOV R3,A ; 22A0 MOV 05,R3 ; 22A2 MOV R3,#09 ; 22A4 MOV R2,#14 ; 22A6 MOV DPH,R2 ; 22A8 MOV DPL,R3 ; 22AA MOVX A,@DPTR ; 22AB ORL A,R5 ; 22AC MOVX @DPTR,A ; 22AD MOV R3,A ; 22AE MOV R3,#20 ; 22B0 MOV R2,#00 ; 22B2 LCALL 5652 ; 22B5 MOV R3,#04 ; 22B7 MOV R2,#41 ; 22B9 LCALL 5652 ; 22BC MOV R3,#CC ; 22BE MOV R2,#11 ; 22C0 MOV DPTR,#0006 ; 22C3 LCALL 3BA1 ; 22C6 LCALL 53B7 ; 22C9 INC @R1 ; 22CA NOP ; 22CB LCALL 537E ; 22CE INC @R1 ; 22CF NOP ; 22D0 MOV R3,#01 ; 22D2 LCALL 5159 ; 22D5 JZ 22F7 ; 22D7 MOV R3,#04 ; 22D9 MOV DPTR,#1407 ; 22DC MOV A,R3 ; 22DD MOVX @DPTR,A ; 22DE MOV DPTR,#0000 ; 22E1 LCALL 3A42 ; 22E4 MOV A,R3 ; 22E5 JNZ 22F5 ; 22E7 MOV R5,#10 ; 22E9 MOV R3,#07 ; 22EB MOV R2,#14 ; 22ED MOV DPH,R2 ; 22EF MOV DPL,R3 ; 22F1 MOVX A,@DPTR ; 22F2 ORL A,R5 ; 22F3 MOVX @DPTR,A ; 22F4 MOV R3,A ; 22F5 SJMP 2305 ; 22F7 MOV R5,#04 ; 22F9 MOV R3,#09 ; 22FB MOV R2,#14 ; 22FD MOV DPH,R2 ; 22FF MOV DPL,R3 ; 2301 MOVX A,@DPTR ; 2302 ORL A,R5 ; 2303 MOVX @DPTR,A ; 2304 MOV R3,A ; 2305 MOV DPTR,#1408 ; 2308 MOVX A,@DPTR ; 2309 JZ 235D ; 230B LCALL 5378 ; 230E INC A ; 230F NOP ; 2310 LCALL 5516 ; 2313 RL A ; 2314 ADD A,R1 ; 2315 AJMP 2023 ; 2317 ADDC A,R1 ; 2318 DIV AB ; 2319 RL A ; 231A ADDC A,R1 ; 231B MOV C,23 ; 231D ORL TL2,A ; 231F RL A ; 2320 ORL A,R3 ; 2321 MOV @R1,A ; 2322 RL A ; 2323 ORL A,R3 ; 2324 MOV R3,A ; 2325 NOP ; 2326 NOP ; 2327 RL A ; 2328 ANL A,#7D ; 232A SJMP 23A7 ; 232C INC R1 ; 232D MOV R2,#14 ; 232F MOV DPH,R2 ; 2331 MOV DPL,R3 ; 2333 MOVX A,@DPTR ; 2334 ORL A,R5 ; 2335 MOVX @DPTR,A ; 2336 MOV R3,A ; 2337 SJMP 235D ; 2339 MOV R3,#20 ; 233B MOV DPTR,#140A ; 233E MOV A,R3 ; 233F MOVX @DPTR,A ; 2340 SJMP 235D ; 2342 MOV R3,#80 ; 2344 MOV DPTR,#140A ; 2347 MOV A,R3 ; 2348 MOVX @DPTR,A ; 2349 SJMP 235D ; 234B MOV R3,#20 ; 234D MOV DPTR,#1409 ; 2350 MOV A,R3 ; 2351 MOVX @DPTR,A ; 2352 SJMP 235D ; 2354 MOV R3,#04 ; 2356 MOV DPTR,#1409 ; 2359 MOV A,R3 ; 235A MOVX @DPTR,A ; 235B SJMP 235D ; 235D LJMP 561F ; 2360 CLR A ; 2361 MOV R0,#00 ; 2363 MOV R1,#05 ; 2365 LCALL 55DB ; 2368 MOV R3,#00 ; 236A LCALL 53B7 ; 236D INC A ; 236E NOP ; 236F MOV DPTR,#13F5 ; 2372 MOVX A,@DPTR ; 2373 MOV R3,A ; 2374 MOV DPTR,#1404 ; 2377 MOV A,R3 ; 2378 MOVX @DPTR,A ; 2379 MOV DPTR,#13E0 ; 237C MOV A,R3 ; 237D MOVX @DPTR,A ; 237E MOV DPTR,#13E0 ; 2381 MOVX A,@DPTR ; 2382 MOV R3,A ; 2383 LCALL 5516 ; 2386 RL A ; 2387 SUBB A,R4 ; 2388 ACALL 2023 ; 238A CJNE R0,#12,23B0 ; 238D DA A ; 238E DEC A ; 238F RL A ; 2390 MOVX @DPTR,A ; 2391 DEC 24 ; 2393 INC R3 ; 2394 DEC R0 ; 2395 ADD A,#26 ; 2397 DEC R2 ; 2398 NOP ; 2399 NOP ; 239A ADD A,#41 ; 239C MOV DPTR,#14B8 ; 239F MOVX A,@DPTR ; 23A0 MOV R5,A ; 23A1 MOV R3,#01 ; 23A3 LCALL 5159 ; 23A6 JZ 23B5 ; 23A8 MOV R3,#01 ; 23AA LCALL 53B7 ; 23AD INC A ; 23AE NOP ; 23AF MOV DPTR,#0000 ; 23B2 LCALL 27B2 ; 23B5 LJMP 2466 ; 23B8 MOV DPTR,#14B8 ; 23BB MOVX A,@DPTR ; 23BC MOV R5,A ; 23BD MOV R3,#01 ; 23BF LCALL 5159 ; 23C2 JZ 23D1 ; 23C4 MOV R3,#01 ; 23C6 LCALL 53B7 ; 23C9 INC A ; 23CA NOP ; 23CB MOV DPTR,#0000 ; 23CE LCALL 3D23 ; 23D1 LJMP 2466 ; 23D4 MOV DPTR,#14B8 ; 23D7 MOVX A,@DPTR ; 23D8 MOV R5,A ; 23D9 MOV R3,#01 ; 23DB LCALL 5159 ; 23DE JZ 23ED ; 23E0 MOV R3,#01 ; 23E2 LCALL 53B7 ; 23E5 INC A ; 23E6 NOP ; 23E7 MOV DPTR,#0000 ; 23EA LCALL 3D57 ; 23ED LJMP 2466 ; 23F0 MOV DPTR,#14B8 ; 23F3 MOVX A,@DPTR ; 23F4 MOV R5,A ; 23F5 MOV R3,#02 ; 23F7 LCALL 5159 ; 23FA JZ 2409 ; 23FC MOV R3,#01 ; 23FE LCALL 53B7 ; 2401 INC A ; 2402 NOP ; 2403 MOV DPTR,#0000 ; 2406 LCALL 3D9A ; 2409 SJMP 2466 ; 240B MOV DPTR,#14B8 ; 240E MOVX A,@DPTR ; 240F MOV R5,A ; 2410 MOV R3,#02 ; 2412 LCALL 5159 ; 2415 JZ 2424 ; 2417 MOV R3,#01 ; 2419 LCALL 53B7 ; 241C INC A ; 241D NOP ; 241E MOV DPTR,#0000 ; 2421 LCALL 454A ; 2424 SJMP 2466 ; 2426 MOV DPTR,#14B8 ; 2429 MOVX A,@DPTR ; 242A MOV R5,A ; 242B MOV R3,#02 ; 242D LCALL 5159 ; 2430 JZ 243F ; 2432 MOV R3,#01 ; 2434 LCALL 53B7 ; 2437 INC A ; 2438 NOP ; 2439 MOV DPTR,#0000 ; 243C LCALL 4658 ; 243F SJMP 2466 ; 2441 MOV R3,#01 ; 2443 MOV DPTR,#1405 ; 2446 MOV A,R3 ; 2447 MOVX @DPTR,A ; 2448 MOV R3,#00 ; 244A MOV DPTR,#1406 ; 244D MOV A,R3 ; 244E MOVX @DPTR,A ; 244F MOV R3,#01 ; 2451 MOV DPTR,#1407 ; 2454 MOV A,R3 ; 2455 MOVX @DPTR,A ; 2456 MOV R3,#04 ; 2458 MOV DPTR,#14B8 ; 245B MOV A,R3 ; 245C MOVX @DPTR,A ; 245D MOV R3,#01 ; 245F LCALL 53B7 ; 2462 INC A ; 2463 NOP ; 2464 SJMP 2466 ; 2466 LCALL 5378 ; 2469 INC A ; 246A NOP ; 246B JNZ 2489 ; 246D MOV R3,#01 ; 246F MOV DPTR,#1405 ; 2472 MOV A,R3 ; 2473 MOVX @DPTR,A ; 2474 MOV R3,#00 ; 2476 MOV DPTR,#1406 ; 2479 MOV A,R3 ; 247A MOVX @DPTR,A ; 247B MOV R3,#02 ; 247D MOV DPTR,#1407 ; 2480 MOV A,R3 ; 2481 MOVX @DPTR,A ; 2482 MOV R3,#04 ; 2484 MOV DPTR,#14B8 ; 2487 MOV A,R3 ; 2488 MOVX @DPTR,A ; 2489 LJMP 561F ; 248C MOV A,#02 ; 248E MOV R0,#00 ; 2490 MOV R1,#0B ; 2492 LCALL 55DB ; 2495 MOV R3,#00 ; 2497 LCALL 53B7 ; 249A INC 00 ; 249C MOV R3,#00 ; 249E LCALL 53B7 ; 24A1 INC @R0 ; 24A2 NOP ; 24A3 MOV R3,#00 ; 24A5 LCALL 53B7 ; 24A8 INC R2 ; 24A9 NOP ; 24AA MOV R3,#80 ; 24AC LCALL 53B7 ; 24AF INC A ; 24B0 NOP ; 24B1 MOV R3,#00 ; 24B3 LCALL 53B7 ; 24B6 INC @R1 ; 24B7 NOP ; 24B8 LCALL 53B7 ; 24BB INC R0 ; 24BC NOP ; 24BD MOV R5,#00 ; 24BF LCALL 5384 ; 24C2 INC R5 ; 24C3 NOP ; 24C4 LCALL 564B ; 24C7 MOV 05,R3 ; 24C9 MOV 04,R2 ; 24CB MOV R3,#02 ; 24CD MOV R2,#00 ; 24CF LCALL 53EA ; 24D2 LCALL 5660 ; 24D5 LCALL 532D ; 24D8 LCALL 5644 ; 24DB LCALL 5388 ; 24DE INC R6 ; 24DF NOP ; 24E0 MOV R3,#01 ; 24E2 MOV R2,#00 ; 24E4 LCALL 53EA ; 24E7 LCALL 5660 ; 24EA LCALL 532D ; 24ED MOV 05,R3 ; 24EF LCALL 5384 ; 24F2 INC R5 ; 24F3 NOP ; 24F4 LCALL 532D ; 24F7 MOV R3,#00 ; 24F9 LCALL 53B7 ; 24FC INC R1 ; 24FD NOP ; 24FE LCALL 537E ; 2501 INC R1 ; 2502 NOP ; 2503 MOV R3,#A0 ; 2505 LCALL 510C ; 2508 JNZ 250D ; 250A LJMP 267D ; 250D LCALL 5388 ; 2510 INC R3 ; 2511 NOP ; 2512 LCALL 5378 ; 2515 INC 00 ; 2517 MOV R2,#00 ; 2519 LCALL 53EA ; 251C MOV DPH,R2 ; 251E MOV DPL,R3 ; 2520 MOVX A,@DPTR ; 2521 MOV R3,A ; 2522 MOV R2,#00 ; 2524 MOV 05,R3 ; 2526 MOV 04,R2 ; 2528 LCALL 5378 ; 252B INC A ; 252C NOP ; 252D MOV R2,#00 ; 252F LCALL 5325 ; 2532 JZ 2554 ; 2534 LCALL 5388 ; 2537 INC R5 ; 2538 NOP ; 2539 MOV R3,#02 ; 253B MOV R2,#00 ; 253D LCALL 53EA ; 2540 LCALL 5234 ; 2543 AJMP 207B ; 2545 AJMP 2012 ; 2547 ANL B7,#08 ; 254A NOP ; 254B MOV R3,#00 ; 254D LCALL 53B7 ; 2550 INC @R1 ; 2551 NOP ; 2552 SJMP 257D ; 2554 LCALL 537E ; 2557 INC R0 ; 2558 NOP ; 2559 MOV R3,#03 ; 255B LCALL 510C ; 255E JZ 2572 ; 2560 LCALL 5378 ; 2563 INC R0 ; 2564 NOP ; 2565 JZ 2572 ; 2567 MOV A,#08 ; 2569 ADD A,R7 ; 256A MOV R3,A ; 256B CLR A ; 256C ADDC A,R6 ; 256D MOV R2,A ; 256E LCALL 5234 ; 2571 AJMP 2074 ; 2573 INC @R1 ; 2574 ADD A,R7 ; 2575 MOV R3,A ; 2576 CLR A ; 2577 ADDC A,R6 ; 2578 MOV R2,A ; 2579 LCALL 5234 ; 257C AJMP 2012 ; 257E ANL 7E,#08 ; 2581 NOP ; 2582 MOV R3,#03 ; 2584 LCALL 5159 ; 2587 JZ 2599 ; 2589 LCALL 5384 ; 258C INC R5 ; 258D NOP ; 258E LCALL 5234 ; 2591 AJMP 207B ; 2593 NOP ; 2594 LCALL 53B7 ; 2597 INC R0 ; 2598 NOP ; 2599 LCALL 537E ; 259C INC @R1 ; 259D NOP ; 259E MOV R3,#03 ; 25A0 LCALL 5159 ; 25A3 JNZ 25A8 ; 25A5 LJMP 2633 ; 25A8 LCALL 5378 ; 25AB INC R2 ; 25AC NOP ; 25AD JZ 25B2 ; 25AF LJMP 2633 ; 25B2 MOV R3,#01 ; 25B4 LCALL 53B7 ; 25B7 INC R2 ; 25B8 NOP ; 25B9 LCALL 5388 ; 25BC INC R5 ; 25BD NOP ; 25BE MOV R3,#01 ; 25C0 MOV R2,#00 ; 25C2 LCALL 53EA ; 25C5 MOV DPH,R2 ; 25C7 MOV DPL,R3 ; 25C9 MOVX A,@DPTR ; 25CA JNZ 2622 ; 25CC LCALL 537E ; 25CF INC 00 ; 25D1 MOV R3,#03 ; 25D3 MOV R4,#00 ; 25D5 LCALL 530A ; 25D8 MOV 05,R3 ; 25DA LCALL 5378 ; 25DD INC @R0 ; 25DE NOP ; 25DF MOV A,R3 ; 25E0 ADD A,R5 ; 25E1 MOV R3,A ; 25E2 MOV 05,R3 ; 25E4 MOV R3,#FE ; 25E6 MOV A,R3 ; 25E7 ADD A,R5 ; 25E8 MOV R3,A ; 25E9 LCALL 5644 ; 25EC LCALL 5388 ; 25EF INC R6 ; 25F0 NOP ; 25F1 MOV R3,#01 ; 25F3 MOV R2,#00 ; 25F5 LCALL 53EA ; 25F8 LCALL 5660 ; 25FB LCALL 532D ; 25FE LCALL 5388 ; 2601 INC R5 ; 2602 NOP ; 2603 MOV R3,#01 ; 2605 MOV R2,#00 ; 2607 LCALL 53EA ; 260A MOV DPH,R2 ; 260C MOV DPL,R3 ; 260E MOVX A,@DPTR ; 260F JNZ 2622 ; 2611 MOV R3,#01 ; 2613 MOV R2,#00 ; 2615 LCALL 5652 ; 2618 MOV R3,#03 ; 261A MOV R2,#41 ; 261C MOV DPTR,#0004 ; 261F LCALL 0089 ; 2622 MOV R5,#00 ; 2624 LCALL 5384 ; 2627 INC R5 ; 2628 NOP ; 2629 LCALL 532D ; 262C MOV R3,#00 ; 262E LCALL 53B7 ; 2631 INC @R1 ; 2632 NOP ; 2633 MOV R5,#01 ; 2635 MOV A,#04 ; 2637 ADD A,R7 ; 2638 MOV R3,A ; 2639 CLR A ; 263A ADDC A,R6 ; 263B MOV R2,A ; 263C LCALL 5068 ; 263F MOV A,#06 ; 2641 ADD A,R7 ; 2642 MOV R3,A ; 2643 CLR A ; 2644 ADDC A,R6 ; 2645 MOV R2,A ; 2646 LCALL 5234 ; 2649 AJMP 2012 ; 264B ANL 7E,#06 ; 264E NOP ; 264F MOV R3,#08 ; 2651 LCALL 5159 ; 2654 JZ 266F ; 2656 MOV R3,#00 ; 2658 LCALL 53B7 ; 265B INC @R0 ; 265C NOP ; 265D MOV A,#05 ; 265F ADD A,R7 ; 2660 MOV R3,A ; 2661 CLR A ; 2662 ADDC A,R6 ; 2663 MOV R2,A ; 2664 LCALL 5234 ; 2667 AJMP 207B ; 2669 SJMP 267D ; 266B ANL B7,#04 ; 266E NOP ; 266F MOV A,#09 ; 2671 ADD A,R7 ; 2672 MOV R3,A ; 2673 CLR A ; 2674 ADDC A,R6 ; 2675 MOV R2,A ; 2676 LCALL 5234 ; 2679 AJMP 2002 ; 267B ADD A,#FE ; 267D LJMP 561F ; 2680 MOV A,#02 ; 2682 MOV R0,#00 ; 2684 MOV R1,#0B ; 2686 LCALL 55DB ; 2689 MOV R3,#80 ; 268B LCALL 53B7 ; 268E INC @R1 ; 268F NOP ; 2690 MOV R3,#00 ; 2692 LCALL 53B7 ; 2695 INC R0 ; 2696 NOP ; 2697 MOV R3,#10 ; 2699 MOV R2,#41 ; 269B LCALL 53BD ; 269E INC R1 ; 269F NOP ; 26A0 LCALL 5384 ; 26A3 INC R3 ; 26A4 NOP ; 26A5 MOV DPH,R2 ; 26A7 MOV DPL,R3 ; 26A9 MOVX A,@DPTR ; 26AA MOV R3,A ; 26AB MOV 05,R3 ; 26AD MOV R3,#03 ; 26AF MOV R4,#00 ; 26B1 LCALL 52EF ; 26B4 LCALL 53B7 ; 26B7 INC @R0 ; 26B8 NOP ; 26B9 LCALL 5384 ; 26BC INC R3 ; 26BD NOP ; 26BE MOV DPH,R2 ; 26C0 MOV DPL,R3 ; 26C2 MOVX A,@DPTR ; 26C3 MOV R3,A ; 26C4 MOV 05,R3 ; 26C6 MOV R3,#07 ; 26C8 MOV A,R3 ; 26C9 ANL A,R5 ; 26CA MOV R3,A ; 26CB LCALL 53B7 ; 26CE INC 00 ; 26D0 LCALL 537E ; 26D3 INC 00 ; 26D5 MOV A,#07 ; 26D7 ADD A,R7 ; 26D8 MOV R3,A ; 26D9 CLR A ; 26DA ADDC A,R6 ; 26DB MOV R2,A ; 26DC LCALL 5068 ; 26DF LCALL 5384 ; 26E2 INC R3 ; 26E3 NOP ; 26E4 MOV DPH,R2 ; 26E6 MOV DPL,R3 ; 26E8 MOVX A,@DPTR ; 26E9 MOV R3,A ; 26EA LCALL 53B7 ; 26ED INC A ; 26EE NOP ; 26EF MOV R5,#00 ; 26F1 LCALL 5384 ; 26F4 INC R3 ; 26F5 NOP ; 26F6 LCALL 532D ; 26F9 LCALL 537E ; 26FC INC @R0 ; 26FD NOP ; 26FE MOV R3,#14 ; 2700 LCALL 510C ; 2703 JNZ 2708 ; 2705 LJMP 27AF ; 2708 LCALL 5388 ; 270B INC R1 ; 270C NOP ; 270D LCALL 5378 ; 2710 INC @R0 ; 2711 NOP ; 2712 MOV R2,#00 ; 2714 LCALL 53EA ; 2717 MOV DPH,R2 ; 2719 MOV DPL,R3 ; 271B MOVX A,@DPTR ; 271C MOV R3,A ; 271D MOV R2,#00 ; 271F MOV 05,R3 ; 2721 MOV 04,R2 ; 2723 LCALL 5378 ; 2726 INC @R1 ; 2727 NOP ; 2728 MOV R2,#00 ; 272A LCALL 5325 ; 272D JNZ 273C ; 272F MOV A,#08 ; 2731 ADD A,R7 ; 2732 MOV R3,A ; 2733 CLR A ; 2734 ADDC A,R6 ; 2735 MOV R2,A ; 2736 LCALL 5234 ; 2739 AJMP 2080 ; 273B INC @R1 ; 273C MOV R3,#00 ; 273E LCALL 53B7 ; 2741 INC R0 ; 2742 NOP ; 2743 LCALL 537E ; 2746 INC R0 ; 2747 NOP ; 2748 MOV R3,#03 ; 274A LCALL 5159 ; 274D JZ 2765 ; 274F LCALL 537E ; 2752 INC A ; 2753 NOP ; 2754 MOV R3,#FE ; 2756 MOV A,R3 ; 2757 ADD A,R5 ; 2758 MOV R3,A ; 2759 MOV 05,R3 ; 275B LCALL 5384 ; 275E INC R3 ; 275F NOP ; 2760 LCALL 532D ; 2763 SJMP 27AF ; 2765 MOV R5,#01 ; 2767 MOV A,#07 ; 2769 ADD A,R7 ; 276A MOV R3,A ; 276B CLR A ; 276C ADDC A,R6 ; 276D MOV R2,A ; 276E LCALL 5068 ; 2771 MOV A,#05 ; 2773 ADD A,R7 ; 2774 MOV R3,A ; 2775 CLR A ; 2776 ADDC A,R6 ; 2777 MOV R2,A ; 2778 LCALL 5234 ; 277B AJMP 2074 ; 277D INC A ; 277E ADD A,R7 ; 277F MOV R3,A ; 2780 CLR A ; 2781 ADDC A,R6 ; 2782 MOV R2,A ; 2783 LCALL 5234 ; 2786 AJMP 2012 ; 2788 ANL 7E,#05 ; 278B NOP ; 278C MOV R3,#08 ; 278E LCALL 5159 ; 2791 JZ 27AC ; 2793 MOV R3,#80 ; 2795 LCALL 53B7 ; 2798 INC @R1 ; 2799 NOP ; 279A MOV R3,#00 ; 279C LCALL 53B7 ; 279F INC 00 ; 27A1 MOV A,#06 ; 27A3 ADD A,R7 ; 27A4 MOV R3,A ; 27A5 CLR A ; 27A6 ADDC A,R6 ; 27A7 MOV R2,A ; 27A8 LCALL 5234 ; 27AB AJMP 2002 ; 27AD ADD A,@R0 ; 27AE MOV R1,A ; 27AF LJMP 561F ; 27B2 CLR A ; 27B3 MOV R0,#00 ; 27B5 MOV R1,#04 ; 27B7 LCALL 55DB ; 27BA MOV R3,#02 ; 27BC MOV DPTR,#1405 ; 27BF MOV A,R3 ; 27C0 MOVX @DPTR,A ; 27C1 MOV R3,#00 ; 27C3 MOV DPTR,#1406 ; 27C6 MOV A,R3 ; 27C7 MOVX @DPTR,A ; 27C8 MOV R3,#00 ; 27CA MOV DPTR,#1407 ; 27CD MOV A,R3 ; 27CE MOVX @DPTR,A ; 27CF MOV R3,#04 ; 27D1 MOV DPTR,#14B8 ; 27D4 MOV A,R3 ; 27D5 MOVX @DPTR,A ; 27D6 MOV R3,#02 ; 27D8 MOV DPTR,#11C5 ; 27DB MOV A,R3 ; 27DC MOVX @DPTR,A ; 27DD MOV R3,#00 ; 27DF MOV DPTR,#11C6 ; 27E2 MOV A,R3 ; 27E3 MOVX @DPTR,A ; 27E4 MOV R3,#C5 ; 27E6 MOV R2,#11 ; 27E8 MOV DPTR,#0002 ; 27EB LCALL 0083 ; 27EE LCALL 5516 ; 27F1 ADD A,R0 ; 27F2 ADD A,R6 ; 27F3 AJMP 2028 ; 27F5 ADDC A,@R1 ; 27F6 LJMP 2849 ; 27F9 RR A ; 27FA ADD A,R0 ; 27FB ADD A,R6 ; 27FC INC A ; 27FD ADD A,R0 ; 27FE ADD A,R6 ; 27FF INC 28 ; 2801 ADD A,R6 ; 2802 INC @R0 ; 2803 ADD A,R0 ; 2804 ADD A,R6 ; 2805 INC @R1 ; 2806 ADD A,R0 ; 2807 ADD A,R6 ; 2808 INC R1 ; 2809 ADD A,R0 ; 280A ADD A,84 ; 280C ADD A,R0 ; 280D ADD A,A2 ; 280F ADD A,R0 ; 2810 JC 27DE ; 2812 ADD A,R0 ; 2813 DEC R4 ; 2814 MOV @R1,A ; 2815 ADD A,R0 ; 2816 DEC R4 ; 2817 MOV R3,A ; 2818 NOP ; 2819 NOP ; 281A ADD A,R0 ; 281B ACALL 2A7B ; 281D JB 90,2834 ; P1.0 = 1 ?  2834 2820 INC @R0 ; 2821 MOV A,R3 ; 2822 MOVX @DPTR,A ; 2823 SJMP 285A ; 2825 MOV R3,#20 ; 2827 MOV DPTR,#1407 ; 282A MOV A,R3 ; 282B MOVX @DPTR,A ; 282C SJMP 285A ; 282E MOV R3,#03 ; 2830 MOV DPTR,#1405 ; 2833 MOV A,R3 ; 2834 MOVX @DPTR,A ; 2835 SJMP 285A ; 2837 MOV R3,#80 ; 2839 MOV DPTR,#1406 ; 283C MOV A,R3 ; 283D MOVX @DPTR,A ; 283E SJMP 285A ; 2840 MOV R3,#80 ; 2842 MOV DPTR,#1407 ; 2845 MOV A,R3 ; 2846 MOVX @DPTR,A ; 2847 SJMP 285A ; 2849 MOV DPTR,#0000 ; 284C LCALL 285D ; 284F SJMP 285A ; 2851 MOV R3,#0F ; 2853 MOV DPTR,#1405 ; 2856 MOV A,R3 ; 2857 MOVX @DPTR,A ; 2858 SJMP 285A ; 285A LJMP 561F ; 285D CLR A ; 285E MOV R0,#00 ; 2860 MOV R1,#11 ; 2862 LCALL 55DB ; 2865 MOV R3,#00 ; 2867 MOV DPTR,#1410 ; 286A MOV A,R3 ; 286B MOVX @DPTR,A ; 286C MOV DPTR,#140F ; 286F MOV A,R3 ; 2870 MOVX @DPTR,A ; 2871 MOV DPTR,#140E ; 2874 MOV A,R3 ; 2875 MOVX @DPTR,A ; 2876 MOV DPTR,#1412 ; 2879 MOV A,R3 ; 287A MOVX @DPTR,A ; 287B MOV DPTR,#1411 ; 287E MOV A,R3 ; 287F MOVX @DPTR,A ; 2880 MOV R3,#0F ; 2882 MOV DPTR,#14B8 ; 2885 MOV A,R3 ; 2886 MOVX @DPTR,A ; 2887 MOV R3,#01 ; 2889 MOV DPTR,#1410 ; 288C MOV A,R3 ; 288D MOVX @DPTR,A ; 288E MOV R3,#41 ; 2890 MOV DPTR,#1405 ; 2893 MOV A,R3 ; 2894 MOVX @DPTR,A ; 2895 MOV R3,#08 ; 2897 MOV DPTR,#1406 ; 289A MOV A,R3 ; 289B MOVX @DPTR,A ; 289C MOV R3,#41 ; 289E MOV R2,#00 ; 28A0 LCALL 5652 ; 28A3 MOV R3,#01 ; 28A5 MOV R2,#41 ; 28A7 MOV DPTR,#0004 ; 28AA LCALL 0089 ; 28AD MOV R3,#07 ; 28AF MOV DPTR,#11C5 ; 28B2 MOV A,R3 ; 28B3 MOVX @DPTR,A ; 28B4 MOV R3,#01 ; 28B6 MOV DPTR,#11C6 ; 28B9 MOV A,R3 ; 28BA MOVX @DPTR,A ; 28BB MOV R3,#00 ; 28BD MOV DPTR,#11C7 ; 28C0 MOV A,R3 ; 28C1 MOVX @DPTR,A ; 28C2 MOV R3,#B0 ; 28C4 MOV DPTR,#11C8 ; 28C7 MOV A,R3 ; 28C8 MOVX @DPTR,A ; 28C9 MOV R3,#00 ; 28CB MOV DPTR,#11C9 ; 28CE MOV A,R3 ; 28CF MOVX @DPTR,A ; 28D0 MOV R3,#00 ; 28D2 MOV DPTR,#11CA ; 28D5 MOV A,R3 ; 28D6 MOVX @DPTR,A ; 28D7 MOV R3,#20 ; 28D9 MOV DPTR,#11CB ; 28DC MOV A,R3 ; 28DD MOVX @DPTR,A ; 28DE MOV R3,#C5 ; 28E0 MOV R2,#11 ; 28E2 MOV DPTR,#0002 ; 28E5 LCALL 32FF ; 28E8 LCALL 53B7 ; 28EB INC A ; 28EC NOP ; 28ED MOV R3,#02 ; 28EF MOV DPTR,#11C5 ; 28F2 MOV A,R3 ; 28F3 MOVX @DPTR,A ; 28F4 MOV R3,#03 ; 28F6 MOV DPTR,#11C6 ; 28F9 MOV A,R3 ; 28FA MOVX @DPTR,A ; 28FB MOV R3,#C5 ; 28FD MOV R2,#11 ; 28FF MOV DPTR,#0002 ; 2902 LCALL 32FF ; 2905 LCALL 5378 ; 2908 INC A ; 2909 NOP ; 290A LCALL 5516 ; 290D ADD A,R1 ; 290E ADD A,R2 ; 290F DIV AB ; 2910 ADD A,R1 ; 2911 ADD A,R2 ; 2912 MOV C,29 ; 2914 JB F7,2940 ; 2917 JB FB,2943 ; 291A ADDC A,#FF ; 291C NOP ; 291D NOP ; 291E ADD A,R1 ; 291F ADDC A,R3 ; 2920 MOV R3,#20 ; 2922 MOV DPTR,#1411 ; 2925 MOV A,R3 ; 2926 MOVX @DPTR,A ; 2927 LJMP 32B6 ; 292A MOV R3,#20 ; 292C MOV DPTR,#1412 ; 292F MOV A,R3 ; 2930 MOVX @DPTR,A ; 2931 LJMP 32B6 ; 2934 MOV R3,#40 ; 2936 MOV DPTR,#1411 ; 2939 MOV A,R3 ; 293A MOVX @DPTR,A ; 293B MOV DPTR,#11CE ; 293E MOVX A,@DPTR ; 293F MOV R5,A ; 2940 MOV R3,#FF ; 2942 LCALL 5159 ; 2945 JNZ 294A ; 2947 LJMP 2E6C ; 294A MOV DPTR,#11CF ; 294D MOVX A,@DPTR ; 294E MOV R5,A ; 294F MOV R3,#FF ; 2951 LCALL 5159 ; 2954 JNZ 2959 ; 2956 LJMP 2E6C ; 2959 MOV R3,#00 ; 295B MOV DPTR,#1410 ; 295E MOV A,R3 ; 295F MOVX @DPTR,A ; 2960 MOV DPTR,#1411 ; 2963 MOVX A,@DPTR ; 2964 MOV R3,A ; 2965 MOV DPTR,#140F ; 2968 MOV A,R3 ; 2969 MOVX @DPTR,A ; 296A MOV R3,#20 ; 296C MOV R2,#00 ; 296E LCALL 5652 ; 2971 MOV R3,#04 ; 2973 MOV R2,#41 ; 2975 LCALL 5652 ; 2978 MOV R3,#CC ; 297A MOV R2,#11 ; 297C MOV DPTR,#0006 ; 297F LCALL 3C81 ; 2982 MOV DPTR,#11D5 ; 2985 MOVX A,@DPTR ; 2986 MOV R5,A ; 2987 MOV R3,#3F ; 2989 MOV A,R3 ; 298A ANL A,R5 ; 298B MOV R3,A ; 298C MOV 05,R3 ; 298E MOV R3,#0A ; 2990 MOV A,R5 ; 2991 MOV B,R3 ; 2993 MUL AB ; 2994 MOV R3,A ; 2995 LCALL 53B7 ; 2998 INC R0 ; 2999 NOP ; 299A MOV R5,#FF ; 299C LCALL 5378 ; 299F INC R0 ; 29A0 NOP ; 29A1 CLR C ; 29A2 MOV A,R5 ; 29A3 SUBB A,R3 ; 29A4 MOV R3,A ; 29A5 MOV 05,R3 ; 29A7 MOV R3,#01 ; 29A9 MOV A,R3 ; 29AA ADD A,R5 ; 29AB MOV R3,A ; 29AC LCALL 53B7 ; 29AF JBC 00,29C4 ; 29B2 ANL 7E,#10 ; 29B5 NOP ; 29B6 MOV R3,#08 ; 29B8 MOV A,R5 ; 29B9 MOV B,R3 ; 29BB DIV AB ; 29BC MOV R3,A ; 29BD LCALL 53B7 ; 29C0 INC R6 ; 29C1 NOP ; 29C2 MOV R3,#FF ; 29C4 LCALL 53B7 ; 29C7 INC A ; 29C8 NOP ; 29C9 LCALL 537E ; 29CC INC R6 ; 29CD NOP ; 29CE MOV R3,#08 ; 29D0 MOV A,R5 ; 29D1 MOV B,R3 ; 29D3 MUL AB ; 29D4 MOV R3,A ; 29D5 LCALL 53B7 ; 29D8 INC 00 ; 29DA LCALL 537E ; 29DD INC 00 ; 29DF LCALL 5378 ; 29E2 JBC 00,29F7 ; 29E5 ACALL 2A0C ; 29E7 JZ 2A02 ; 29E9 MOV R5,#01 ; 29EB MOV A,#04 ; 29ED ADD A,R7 ; 29EE MOV R3,A ; 29EF CLR A ; 29F0 ADDC A,R6 ; 29F1 MOV R2,A ; 29F2 LCALL 5068 ; 29F5 MOV A,#05 ; 29F7 ADD A,R7 ; 29F8 MOV R3,A ; 29F9 CLR A ; 29FA ADDC A,R6 ; 29FB MOV R2,A ; 29FC LCALL 5234 ; 29FF AJMP 2880 ; 2A01 DJNZ R0,2A15 ; 2A03 ANL 7E,#04 ; 2A06 NOP ; 2A07 MOV R3,#C5 ; 2A09 MOV R2,#11 ; 2A0B LCALL 564B ; 2A0E LCALL 5652 ; 2A11 LCALL 537E ; 2A14 ACALL 2800 ; 2A16 MOV R4,#00 ; 2A18 MOV R3,#07 ; 2A1A MOV R2,#00 ; 2A1C LCALL 53EA ; 2A1F LCALL 566E ; 2A22 LCALL 53EA ; 2A25 LCALL 5660 ; 2A28 MOV DPH,R2 ; 2A2A MOV DPL,R3 ; 2A2C MOVX A,@DPTR ; 2A2D ANL A,R5 ; 2A2E MOVX @DPTR,A ; 2A2F MOV R3,A ; 2A30 MOV R3,#00 ; 2A32 LCALL 53B7 ; 2A35 INC A ; 2A36 NOP ; 2A37 LCALL 53B7 ; 2A3A INC @R0 ; 2A3B NOP ; 2A3C LCALL 537E ; 2A3F INC R6 ; 2A40 NOP ; 2A41 MOV R3,#20 ; 2A43 LCALL 510C ; 2A46 JNZ 2A4B ; 2A48 LJMP 2B2F ; 2A4B LCALL 5378 ; 2A4E INC A ; 2A4F NOP ; 2A50 JZ 2A55 ; 2A52 LJMP 2B2F ; 2A55 MOV R5,#C5 ; 2A57 MOV R4,#11 ; 2A59 LCALL 5378 ; 2A5C INC R6 ; 2A5D NOP ; 2A5E MOV R2,#00 ; 2A60 LCALL 5659 ; 2A63 MOV 05,R3 ; 2A65 MOV 04,R2 ; 2A67 MOV R3,#07 ; 2A69 MOV R2,#00 ; 2A6B LCALL 53EA ; 2A6E LCALL 566E ; 2A71 LCALL 53EA ; 2A74 MOV DPH,R2 ; 2A76 MOV DPL,R3 ; 2A78 MOVX A,@DPTR ; 2A79 JNZ 2A7E ; 2A7B LJMP 2B21 ; 2A7E MOV R5,#C5 ; 2A80 MOV R4,#11 ; 2A82 LCALL 5378 ; 2A85 INC R6 ; 2A86 NOP ; 2A87 MOV R2,#00 ; 2A89 LCALL 5659 ; 2A8C MOV 05,R3 ; 2A8E MOV 04,R2 ; 2A90 MOV R3,#07 ; 2A92 MOV R2,#00 ; 2A94 LCALL 53EA ; 2A97 LCALL 566E ; 2A9A LCALL 53EA ; 2A9D MOV DPH,R2 ; 2A9F MOV DPL,R3 ; 2AA1 MOVX A,@DPTR ; 2AA2 MOV R3,A ; 2AA3 LCALL 53B7 ; 2AA6 INC 00 ; 2AA8 LCALL 5378 ; 2AAB INC 00 ; 2AAD JZ 2AC8 ; 2AAF MOV R5,#01 ; 2AB1 MOV A,#05 ; 2AB3 ADD A,R7 ; 2AB4 MOV R3,A ; 2AB5 CLR A ; 2AB6 ADDC A,R6 ; 2AB7 MOV R2,A ; 2AB8 LCALL 5068 ; 2ABB MOV A,#06 ; 2ABD ADD A,R7 ; 2ABE MOV R3,A ; 2ABF CLR A ; 2AC0 ADDC A,R6 ; 2AC1 MOV R2,A ; 2AC2 LCALL 5234 ; 2AC5 AJMP 2880 ; 2AC7 MOVX A,@DPTR ; 2AC8 MOV R5,#08 ; 2ACA LCALL 5378 ; 2ACD INC @R0 ; 2ACE NOP ; 2ACF CLR C ; 2AD0 MOV A,R5 ; 2AD1 SUBB A,R3 ; 2AD2 MOV R3,A ; 2AD3 LCALL 53B7 ; 2AD6 INC R7 ; 2AD7 NOP ; 2AD8 LCALL 537E ; 2ADB INC R6 ; 2ADC NOP ; 2ADD MOV R3,#08 ; 2ADF MOV A,R5 ; 2AE0 MOV B,R3 ; 2AE2 MUL AB ; 2AE3 MOV R3,A ; 2AE4 MOV 05,R3 ; 2AE6 LCALL 5378 ; 2AE9 INC R7 ; 2AEA NOP ; 2AEB MOV A,R3 ; 2AEC ADD A,R5 ; 2AED MOV R3,A ; 2AEE LCALL 53B7 ; 2AF1 INC R7 ; 2AF2 NOP ; 2AF3 MOV R5,#FF ; 2AF5 LCALL 5378 ; 2AF8 INC R7 ; 2AF9 NOP ; 2AFA CLR C ; 2AFB MOV A,R5 ; 2AFC SUBB A,R3 ; 2AFD MOV R3,A ; 2AFE MOV 05,R3 ; 2B00 MOV R3,#01 ; 2B02 MOV A,R3 ; 2B03 ADD A,R5 ; 2B04 MOV R3,A ; 2B05 MOV A,R3 ; 2B06 CPL A ; 2B07 INC A ; 2B08 MOV R3,A ; 2B09 MOV 05,R3 ; 2B0B LCALL 5378 ; 2B0E INC R0 ; 2B0F NOP ; 2B10 MOV A,R3 ; 2B11 ADD A,R5 ; 2B12 MOV R3,A ; 2B13 LCALL 53B7 ; 2B16 INC R1 ; 2B17 NOP ; 2B18 MOV R3,#FF ; 2B1A LCALL 53B7 ; 2B1D INC A ; 2B1E NOP ; 2B1F SJMP 2B2C ; 2B21 MOV A,#0E ; 2B23 ADD A,R7 ; 2B24 MOV R3,A ; 2B25 CLR A ; 2B26 ADDC A,R6 ; 2B27 MOV R2,A ; 2B28 LCALL 5234 ; 2B2B AJMP 2802 ; 2B2D ADD A,R2 ; 2B2E ADDC A,R4 ; 2B2F LCALL 537E ; 2B32 INC R6 ; 2B33 NOP ; 2B34 MOV R3,#1F ; 2B36 LCALL 50DA ; 2B39 JZ 2B45 ; 2B3B LCALL 5378 ; 2B3E INC R0 ; 2B3F NOP ; 2B40 LCALL 53B7 ; 2B43 INC R1 ; 2B44 NOP ; 2B45 MOV R3,#20 ; 2B47 MOV R2,#00 ; 2B49 LCALL 5652 ; 2B4C MOV R3,#04 ; 2B4E MOV R2,#41 ; 2B50 LCALL 5652 ; 2B53 MOV R3,#CC ; 2B55 MOV R2,#11 ; 2B57 MOV DPTR,#0006 ; 2B5A LCALL 3BEC ; 2B5D MOV R3,#41 ; 2B5F MOV DPTR,#1405 ; 2B62 MOV A,R3 ; 2B63 MOVX @DPTR,A ; 2B64 MOV R3,#09 ; 2B66 MOV DPTR,#1406 ; 2B69 MOV A,R3 ; 2B6A MOVX @DPTR,A ; 2B6B MOV DPTR,#11CD ; 2B6E MOVX A,@DPTR ; 2B6F MOV R3,A ; 2B70 MOV DPTR,#1407 ; 2B73 MOV A,R3 ; 2B74 MOVX @DPTR,A ; 2B75 MOV DPTR,#11D0 ; 2B78 MOVX A,@DPTR ; 2B79 MOV R3,A ; 2B7A MOV DPTR,#1408 ; 2B7D MOV A,R3 ; 2B7E MOVX @DPTR,A ; 2B7F MOV DPTR,#11D1 ; 2B82 MOVX A,@DPTR ; 2B83 MOV R3,A ; 2B84 MOV DPTR,#1409 ; 2B87 MOV A,R3 ; 2B88 MOVX @DPTR,A ; 2B89 MOV DPTR,#11D2 ; 2B8C MOVX A,@DPTR ; 2B8D MOV R3,A ; 2B8E MOV DPTR,#140A ; 2B91 MOV A,R3 ; 2B92 MOVX @DPTR,A ; 2B93 MOV DPTR,#11D3 ; 2B96 MOVX A,@DPTR ; 2B97 MOV R3,A ; 2B98 MOV DPTR,#140B ; 2B9B MOV A,R3 ; 2B9C MOVX @DPTR,A ; 2B9D LCALL 5378 ; 2BA0 INC R1 ; 2BA1 NOP ; 2BA2 MOV DPTR,#140C ; 2BA5 MOV A,R3 ; 2BA6 MOVX @DPTR,A ; 2BA7 MOV R3,#00 ; 2BA9 MOV DPTR,#140D ; 2BAC MOV A,R3 ; 2BAD MOVX @DPTR,A ; 2BAE MOV R3,#54 ; 2BB0 MOV R2,#00 ; 2BB2 LCALL 5652 ; 2BB5 MOV R3,#01 ; 2BB7 MOV R2,#41 ; 2BB9 MOV DPTR,#0004 ; 2BBC LCALL 0089 ; 2BBF MOV R3,#0D ; 2BC1 MOV DPTR,#14B8 ; 2BC4 MOV A,R3 ; 2BC5 MOVX @DPTR,A ; 2BC6 MOV R3,#00 ; 2BC8 LCALL 53B7 ; 2BCB INC @R0 ; 2BCC NOP ; 2BCD MOV R3,#08 ; 2BCF LCALL 53B7 ; 2BD2 INC A ; 2BD3 NOP ; 2BD4 LCALL 537E ; 2BD7 INC A ; 2BD8 NOP ; 2BD9 MOV R3,#13 ; 2BDB LCALL 510C ; 2BDE JNZ 2BE3 ; 2BE0 LJMP 2C5C ; 2BE3 MOV R5,#C5 ; 2BE5 MOV R4,#11 ; 2BE7 LCALL 5378 ; 2BEA INC A ; 2BEB NOP ; 2BEC MOV R2,#00 ; 2BEE LCALL 53EA ; 2BF1 MOV DPH,R2 ; 2BF3 MOV DPL,R3 ; 2BF5 MOVX A,@DPTR ; 2BF6 MOV R3,A ; 2BF7 LCALL 53B7 ; 2BFA INC @R1 ; 2BFB NOP ; 2BFC MOV R3,#00 ; 2BFE LCALL 53B7 ; 2C01 INC 00 ; 2C03 LCALL 537E ; 2C06 INC 00 ; 2C08 MOV R3,#08 ; 2C0A LCALL 510C ; 2C0D JZ 2C4E ; 2C0F LCALL 537E ; 2C12 INC @R1 ; 2C13 NOP ; 2C14 MOV R4,#00 ; 2C16 MOV R3,#01 ; 2C18 MOV R2,#00 ; 2C1A LCALL 5325 ; 2C1D MOV 05,R3 ; 2C1F MOV 04,R2 ; 2C21 MOV R3,#01 ; 2C23 MOV R2,#00 ; 2C25 LCALL 516C ; 2C28 JZ 2C35 ; 2C2A MOV A,#06 ; 2C2C ADD A,R7 ; 2C2D MOV R3,A ; 2C2E CLR A ; 2C2F ADDC A,R6 ; 2C30 MOV R2,A ; 2C31 LCALL 5234 ; 2C34 AJMP 287D ; 2C36 AJMP 2874 ; 2C38 INC @R1 ; 2C39 ADD A,R7 ; 2C3A MOV R3,A ; 2C3B CLR A ; 2C3C ADDC A,R6 ; 2C3D MOV R2,A ; 2C3E LCALL 5068 ; 2C41 MOV A,#05 ; 2C43 ADD A,R7 ; 2C44 MOV R3,A ; 2C45 CLR A ; 2C46 ADDC A,R6 ; 2C47 MOV R2,A ; 2C48 LCALL 5234 ; 2C4B AJMP 2880 ; 2C4D CJNE A,74,2C54 ; 2C50 ADD A,R7 ; 2C51 MOV R3,A ; 2C52 CLR A ; 2C53 ADDC A,R6 ; 2C54 MOV R2,A ; 2C55 LCALL 5234 ; 2C58 AJMP 2802 ; 2C5A ADD A,R3 ; 2C5B DA A ; 2C5C MOV R5,#80 ; 2C5E MOV A,#06 ; 2C60 ADD A,R7 ; 2C61 MOV R3,A ; 2C62 CLR A ; 2C63 ADDC A,R6 ; 2C64 MOV R2,A ; 2C65 MOV DPH,R2 ; 2C67 MOV DPL,R3 ; 2C69 MOVX A,@DPTR ; 2C6A ORL A,R5 ; 2C6B MOVX @DPTR,A ; 2C6C MOV R3,A ; 2C6D LCALL 537E ; 2C70 INC @R0 ; 2C71 NOP ; 2C72 MOV DPTR,#11CC ; 2C75 MOVX A,@DPTR ; 2C76 MOV R3,A ; 2C77 LCALL 5168 ; 2C7A JZ 2C86 ; 2C7C MOV R3,#01 ; 2C7E MOV DPTR,#140E ; 2C81 MOV A,R3 ; 2C82 MOVX @DPTR,A ; 2C83 LJMP 32B6 ; 2C86 MOV DPTR,#11D0 ; 2C89 MOVX A,@DPTR ; 2C8A MOV R5,A ; 2C8B MOV R4,#00 ; 2C8D MOV R3,#01 ; 2C8F MOV R2,#00 ; 2C91 LCALL 5325 ; 2C94 MOV 05,R3 ; 2C96 MOV 04,R2 ; 2C98 MOV R3,#01 ; 2C9A MOV R2,#00 ; 2C9C LCALL 515D ; 2C9F JZ 2CAB ; 2CA1 MOV R3,#02 ; 2CA3 MOV DPTR,#140E ; 2CA6 MOV A,R3 ; 2CA7 MOVX @DPTR,A ; 2CA8 LJMP 32B6 ; 2CAB MOV DPTR,#11D4 ; 2CAE MOVX A,@DPTR ; 2CAF MOV R5,A ; 2CB0 MOV R4,#00 ; 2CB2 MOV R3,#FC ; 2CB4 MOV R2,#00 ; 2CB6 LCALL 5325 ; 2CB9 MOV 05,R3 ; 2CBB MOV 04,R2 ; 2CBD MOV R3,#02 ; 2CBF LCALL 52CC ; 2CC2 LCALL 5652 ; 2CC5 MOV DPTR,#11D5 ; 2CC8 MOVX A,@DPTR ; 2CC9 MOV R5,A ; 2CCA MOV R4,#00 ; 2CCC MOV R3,#C0 ; 2CCE MOV R2,#00 ; 2CD0 LCALL 5325 ; 2CD3 LCALL 566E ; 2CD6 LCALL 5659 ; 2CD9 MOV 05,R3 ; 2CDB MOV 04,R2 ; 2CDD MOV R3,#06 ; 2CDF LCALL 52CC ; 2CE2 LCALL 566E ; 2CE5 MOV 03,R5 ; 2CE7 MOV 02,R4 ; 2CE9 JNZ 2D20 ; 2CEB LCALL 5652 ; 2CEE MOV DPTR,#11D4 ; 2CF1 MOVX A,@DPTR ; 2CF2 MOV R5,A ; 2CF3 MOV R4,#00 ; 2CF5 MOV R3,#03 ; 2CF7 MOV R2,#00 ; 2CF9 LCALL 5325 ; 2CFC LCALL 566E ; 2CFF LCALL 5659 ; 2D02 MOV 05,R3 ; 2D04 MOV 04,R2 ; 2D06 MOV R3,#02 ; 2D08 LCALL 530A ; 2D0B LCALL 566E ; 2D0E MOV 03,R5 ; 2D10 MOV 02,R4 ; 2D12 JNZ 2D20 ; 2D14 MOV 05,R3 ; 2D16 MOV 04,R2 ; 2D18 MOV R3,#00 ; 2D1A SJMP 2D26 ; 2D1C MOV 03,R5 ; 2D1E MOV 02,R4 ; 2D20 MOV 05,R3 ; 2D22 MOV 04,R2 ; 2D24 MOV R3,#01 ; 2D26 MOV R2,#00 ; 2D28 LCALL 53EA ; 2D2B JZ 2D37 ; 2D2D MOV R3,#03 ; 2D2F MOV DPTR,#140E ; 2D32 MOV A,R3 ; 2D33 MOVX @DPTR,A ; 2D34 LJMP 32B6 ; 2D37 MOV DPTR,#11D5 ; 2D3A MOVX A,@DPTR ; 2D3B MOV R5,A ; 2D3C MOV R4,#00 ; 2D3E MOV R3,#3F ; 2D40 MOV R2,#00 ; 2D42 LCALL 5325 ; 2D45 MOV 05,R3 ; 2D47 MOV 04,R2 ; 2D49 MOV R3,#0F ; 2D4B MOV R2,#00 ; 2D4D LCALL 50BF ; 2D50 JZ 2D5C ; 2D52 MOV R3,#04 ; 2D54 MOV DPTR,#140E ; 2D57 MOV A,R3 ; 2D58 MOVX @DPTR,A ; 2D59 LJMP 32B6 ; 2D5C MOV DPTR,#11D6 ; 2D5F MOVX A,@DPTR ; 2D60 MOV R5,A ; 2D61 MOV R4,#00 ; 2D63 MOV R3,#F0 ; 2D65 MOV R2,#00 ; 2D67 LCALL 5325 ; 2D6A MOV 05,R3 ; 2D6C MOV 04,R2 ; 2D6E MOV R3,#10 ; 2D70 MOV R2,#00 ; 2D72 LCALL 516C ; 2D75 JZ 2D81 ; 2D77 MOV R3,#05 ; 2D79 MOV DPTR,#140E ; 2D7C MOV A,R3 ; 2D7D MOVX @DPTR,A ; 2D7E LJMP 32B6 ; 2D81 MOV DPTR,#11D6 ; 2D84 MOVX A,@DPTR ; 2D85 MOV R5,A ; 2D86 MOV R4,#00 ; 2D88 MOV R3,#0F ; 2D8A MOV R2,#00 ; 2D8C LCALL 5325 ; 2D8F MOV 05,R3 ; 2D91 MOV 04,R2 ; 2D93 MOV R3,#0E ; 2D95 MOV R2,#00 ; 2D97 LCALL 516C ; 2D9A JZ 2DA6 ; 2D9C MOV R3,#06 ; 2D9E MOV DPTR,#140E ; 2DA1 MOV A,R3 ; 2DA2 MOVX @DPTR,A ; 2DA3 LJMP 32B6 ; 2DA6 MOV DPTR,#11D7 ; 2DA9 MOVX A,@DPTR ; 2DAA MOV R5,A ; 2DAB MOV R3,#28 ; 2DAD LCALL 5168 ; 2DB0 JZ 2DBC ; 2DB2 MOV R3,#07 ; 2DB4 MOV DPTR,#140E ; 2DB7 MOV A,R3 ; 2DB8 MOVX @DPTR,A ; 2DB9 LJMP 32B6 ; 2DBC LCALL 5378 ; 2DBF INC R1 ; 2DC0 NOP ; 2DC1 JNZ 2DCD ; 2DC3 MOV R3,#08 ; 2DC5 MOV DPTR,#140E ; 2DC8 MOV A,R3 ; 2DC9 MOVX @DPTR,A ; 2DCA LJMP 32B6 ; 2DCD MOV R3,#00 ; 2DCF LCALL 53B7 ; 2DD2 INC R5 ; 2DD3 NOP ; 2DD4 MOV R3,#00 ; 2DD6 LCALL 53B7 ; 2DD9 INC A ; 2DDA NOP ; 2DDB LCALL 537E ; 2DDE INC A ; 2DDF NOP ; 2DE0 MOV R3,#03 ; 2DE2 LCALL 510C ; 2DE5 JZ 2E38 ; 2DE7 MOV R3,#03 ; 2DE9 MOV R2,#00 ; 2DEB LCALL 5652 ; 2DEE MOV R5,#37 ; 2DF0 MOV R4,#41 ; 2DF2 LCALL 5378 ; 2DF5 INC @R0 ; 2DF6 NOP ; 2DF7 MOV R2,#00 ; 2DF9 LCALL 5659 ; 2DFC MOV 05,R3 ; 2DFE MOV 04,R2 ; 2E00 MOV R3,#03 ; 2E02 MOV R2,#00 ; 2E04 LCALL 53FB ; 2E07 LCALL 566E ; 2E0A LCALL 53EA ; 2E0D LCALL 5652 ; 2E10 MOV R3,#09 ; 2E12 MOV R2,#14 ; 2E14 MOV DPTR,#0006 ; 2E17 LCALL 3BA1 ; 2E1A MOV 05,R3 ; 2E1C MOV A,#0D ; 2E1E ADD A,R7 ; 2E1F MOV R3,A ; 2E20 CLR A ; 2E21 ADDC A,R6 ; 2E22 MOV R2,A ; 2E23 MOV DPH,R2 ; 2E25 MOV DPL,R3 ; 2E27 MOVX A,@DPTR ; 2E28 ORL A,R5 ; 2E29 MOVX @DPTR,A ; 2E2A MOV R3,A ; 2E2B MOV A,#04 ; 2E2D ADD A,R7 ; 2E2E MOV R3,A ; 2E2F CLR A ; 2E30 ADDC A,R6 ; 2E31 MOV R2,A ; 2E32 LCALL 5234 ; 2E35 AJMP 2880 ; 2E37 INC DPTR ; 2E38 LCALL 537E ; 2E3B INC R5 ; 2E3C NOP ; 2E3D MOV R3,#01 ; 2E3F LCALL 5159 ; 2E42 JZ 2E4E ; 2E44 MOV R3,#09 ; 2E46 MOV DPTR,#140E ; 2E49 MOV A,R3 ; 2E4A MOVX @DPTR,A ; 2E4B LJMP 32B6 ; 2E4E MOV DPTR,#140C ; 2E51 MOVX A,@DPTR ; 2E52 MOV R3,A ; 2E53 MOV R2,#00 ; 2E55 LCALL 5652 ; 2E58 MOV R3,#24 ; 2E5A MOV R2,#41 ; 2E5C MOV DPTR,#0004 ; 2E5F LCALL 0089 ; 2E62 MOV R3,#00 ; 2E64 MOV DPTR,#140E ; 2E67 MOV A,R3 ; 2E68 MOVX @DPTR,A ; 2E69 LJMP 32B6 ; 2E6C MOV DPTR,#11CD ; 2E6F MOVX A,@DPTR ; 2E70 MOV R3,A ; 2E71 MOV DPTR,#1407 ; 2E74 MOV A,R3 ; 2E75 MOVX @DPTR,A ; 2E76 MOV DPTR,#11D0 ; 2E79 MOVX A,@DPTR ; 2E7A MOV R3,A ; 2E7B MOV DPTR,#1408 ; 2E7E MOV A,R3 ; 2E7F MOVX @DPTR,A ; 2E80 MOV DPTR,#11D1 ; 2E83 MOVX A,@DPTR ; 2E84 MOV R3,A ; 2E85 MOV DPTR,#1409 ; 2E88 MOV A,R3 ; 2E89 MOVX @DPTR,A ; 2E8A MOV DPTR,#11D2 ; 2E8D MOVX A,@DPTR ; 2E8E MOV R3,A ; 2E8F MOV DPTR,#140A ; 2E92 MOV A,R3 ; 2E93 MOVX @DPTR,A ; 2E94 MOV DPTR,#11D3 ; 2E97 MOVX A,@DPTR ; 2E98 MOV R3,A ; 2E99 MOV DPTR,#140B ; 2E9C MOV A,R3 ; 2E9D MOVX @DPTR,A ; 2E9E MOV DPTR,#11D4 ; 2EA1 MOVX A,@DPTR ; 2EA2 MOV R3,A ; 2EA3 MOV DPTR,#140C ; 2EA6 MOV A,R3 ; 2EA7 MOVX @DPTR,A ; 2EA8 MOV DPTR,#11D5 ; 2EAB MOVX A,@DPTR ; 2EAC MOV R3,A ; 2EAD MOV DPTR,#140D ; 2EB0 MOV A,R3 ; 2EB1 MOVX @DPTR,A ; 2EB2 MOV A,#0A ; 2EB4 ADD A,R7 ; 2EB5 MOV R3,A ; 2EB6 CLR A ; 2EB7 ADDC A,R6 ; 2EB8 MOV R2,A ; 2EB9 LCALL 5652 ; 2EBC MOV R3,#D8 ; 2EBE MOV R2,#11 ; 2EC0 MOV DPTR,#0004 ; 2EC3 LCALL 248C ; 2EC6 MOV DPTR,#11CE ; 2EC9 MOVX A,@DPTR ; 2ECA MOV R5,A ; 2ECB MOV R3,#0F ; 2ECD MOV A,R3 ; 2ECE ANL A,R5 ; 2ECF MOV R3,A ; 2ED0 MOV 05,R3 ; 2ED2 MOV R3,#64 ; 2ED4 MOV A,R5 ; 2ED5 MOV B,R3 ; 2ED7 MUL AB ; 2ED8 MOV R3,A ; 2ED9 LCALL 5644 ; 2EDC MOV DPTR,#11CF ; 2EDF MOVX A,@DPTR ; 2EE0 MOV R5,A ; 2EE1 MOV R4,#00 ; 2EE3 MOV R3,#F0 ; 2EE5 MOV R2,#00 ; 2EE7 LCALL 5325 ; 2EEA LCALL 5660 ; 2EED LCALL 564B ; 2EF0 MOV 05,R3 ; 2EF2 MOV 04,R2 ; 2EF4 MOV R3,#04 ; 2EF6 LCALL 52CC ; 2EF9 LCALL 5660 ; 2EFC LCALL 564B ; 2EFF MOV 05,R3 ; 2F01 MOV R3,#0A ; 2F03 MOV A,R5 ; 2F04 MOV B,R3 ; 2F06 MUL AB ; 2F07 MOV R3,A ; 2F08 LCALL 5660 ; 2F0B MOV A,R3 ; 2F0C ADD A,R5 ; 2F0D MOV R3,A ; 2F0E LCALL 5644 ; 2F11 MOV DPTR,#11CF ; 2F14 MOVX A,@DPTR ; 2F15 MOV R5,A ; 2F16 MOV R3,#0F ; 2F18 MOV A,R3 ; 2F19 ANL A,R5 ; 2F1A MOV R3,A ; 2F1B LCALL 5660 ; 2F1E MOV A,R3 ; 2F1F ADD A,R5 ; 2F20 MOV R3,A ; 2F21 LCALL 53B7 ; 2F24 INC R0 ; 2F25 NOP ; 2F26 LCALL 537E ; 2F29 INC R0 ; 2F2A NOP ; 2F2B LCALL 5378 ; 2F2E INC R4 ; 2F2F NOP ; 2F30 CLR C ; 2F31 MOV A,R5 ; 2F32 SUBB A,R3 ; 2F33 MOV R3,A ; 2F34 LCALL 53B7 ; 2F37 INC R1 ; 2F38 NOP ; 2F39 MOV DPTR,#140E ; 2F3C MOV A,R3 ; 2F3D MOVX @DPTR,A ; 2F3E MOV R3,#00 ; 2F40 MOV DPTR,#140F ; 2F43 MOV A,R3 ; 2F44 MOVX @DPTR,A ; 2F45 MOV R3,#00 ; 2F47 LCALL 53B7 ; 2F4A INC @R0 ; 2F4B NOP ; 2F4C MOV R3,#08 ; 2F4E LCALL 53B7 ; 2F51 INC A ; 2F52 NOP ; 2F53 LCALL 537E ; 2F56 INC A ; 2F57 NOP ; 2F58 MOV R3,#13 ; 2F5A LCALL 510C ; 2F5D JNZ 2F62 ; 2F5F LJMP 2FDB ; 2F62 MOV R5,#C5 ; 2F64 MOV R4,#11 ; 2F66 LCALL 5378 ; 2F69 INC A ; 2F6A NOP ; 2F6B MOV R2,#00 ; 2F6D LCALL 53EA ; 2F70 MOV DPH,R2 ; 2F72 MOV DPL,R3 ; 2F74 MOVX A,@DPTR ; 2F75 MOV R3,A ; 2F76 LCALL 53B7 ; 2F79 INC @R1 ; 2F7A NOP ; 2F7B MOV R3,#00 ; 2F7D LCALL 53B7 ; 2F80 INC 00 ; 2F82 LCALL 537E ; 2F85 INC 00 ; 2F87 MOV R3,#08 ; 2F89 LCALL 510C ; 2F8C JZ 2FCD ; 2F8E LCALL 537E ; 2F91 INC @R1 ; 2F92 NOP ; 2F93 MOV R4,#00 ; 2F95 MOV R3,#01 ; 2F97 MOV R2,#00 ; 2F99 LCALL 5325 ; 2F9C MOV 05,R3 ; 2F9E MOV 04,R2 ; 2FA0 MOV R3,#01 ; 2FA2 MOV R2,#00 ; 2FA4 LCALL 516C ; 2FA7 JZ 2FB4 ; 2FA9 MOV A,#06 ; 2FAB ADD A,R7 ; 2FAC MOV R3,A ; 2FAD CLR A ; 2FAE ADDC A,R6 ; 2FAF MOV R2,A ; 2FB0 LCALL 5234 ; 2FB3 AJMP 287D ; 2FB5 AJMP 2874 ; 2FB7 INC @R1 ; 2FB8 ADD A,R7 ; 2FB9 MOV R3,A ; 2FBA CLR A ; 2FBB ADDC A,R6 ; 2FBC MOV R2,A ; 2FBD LCALL 5068 ; 2FC0 MOV A,#05 ; 2FC2 ADD A,R7 ; 2FC3 MOV R3,A ; 2FC4 CLR A ; 2FC5 ADDC A,R6 ; 2FC6 MOV R2,A ; 2FC7 LCALL 5234 ; 2FCA AJMP 2880 ; 2FCC CJNE A,74,2FD3 ; 2FCF ADD A,R7 ; 2FD0 MOV R3,A ; 2FD1 CLR A ; 2FD2 ADDC A,R6 ; 2FD3 MOV R2,A ; 2FD4 LCALL 5234 ; 2FD7 AJMP 2802 ; 2FD9 ADD A,R7 ; 2FDA ANL 7D,#80 ; 2FDD MOV A,#06 ; 2FDF ADD A,R7 ; 2FE0 MOV R3,A ; 2FE1 CLR A ; 2FE2 ADDC A,R6 ; 2FE3 MOV R2,A ; 2FE4 MOV DPH,R2 ; 2FE6 MOV DPL,R3 ; 2FE8 MOVX A,@DPTR ; 2FE9 ORL A,R5 ; 2FEA MOVX @DPTR,A ; 2FEB MOV R3,A ; 2FEC LCALL 537E ; 2FEF INC @R0 ; 2FF0 NOP ; 2FF1 MOV DPTR,#11CC ; 2FF4 MOVX A,@DPTR ; 2FF5 MOV R3,A ; 2FF6 LCALL 5168 ; 2FF9 JZ 3005 ; 2FFB MOV R3,#02 ; 2FFD MOV DPTR,#1410 ; 3000 MOV A,R3 ; 3001 MOVX @DPTR,A ; 3002 LJMP 32B6 ; 3005 MOV DPTR,#11CD ; 3008 MOVX A,@DPTR ; 3009 MOV R5,A ; 300A MOV R3,#83 ; 300C LCALL 5168 ; 300F JZ 301B ; 3011 MOV R3,#03 ; 3013 MOV DPTR,#1410 ; 3016 MOV A,R3 ; 3017 MOVX @DPTR,A ; 3018 LJMP 32B6 ; 301B MOV DPTR,#11CE ; 301E MOVX A,@DPTR ; 301F MOV R5,A ; 3020 MOV R4,#00 ; 3022 MOV R3,#F0 ; 3024 MOV R2,#00 ; 3026 LCALL 5325 ; 3029 MOV 05,R3 ; 302B MOV 04,R2 ; 302D MOV R3,#10 ; 302F MOV R2,#00 ; 3031 LCALL 516C ; 3034 JZ 3040 ; 3036 MOV R3,#04 ; 3038 MOV DPTR,#1410 ; 303B MOV A,R3 ; 303C MOVX @DPTR,A ; 303D LJMP 32B6 ; 3040 MOV DPTR,#11CE ; 3043 MOVX A,@DPTR ; 3044 MOV R5,A ; 3045 MOV R4,#00 ; 3047 MOV R3,#0F ; 3049 MOV R2,#00 ; 304B LCALL 5325 ; 304E MOV 05,R3 ; 3050 MOV 04,R2 ; 3052 MOV R3,#01 ; 3054 MOV R2,#00 ; 3056 LCALL 50BF ; 3059 JZ 3065 ; 305B MOV R3,#05 ; 305D MOV DPTR,#1410 ; 3060 MOV A,R3 ; 3061 MOVX @DPTR,A ; 3062 LJMP 32B6 ; 3065 MOV DPTR,#11CF ; 3068 MOVX A,@DPTR ; 3069 MOV R5,A ; 306A MOV R4,#00 ; 306C MOV R3,#0F ; 306E MOV R2,#00 ; 3070 LCALL 5325 ; 3073 MOV 05,R3 ; 3075 MOV 04,R2 ; 3077 MOV R3,#09 ; 3079 MOV R2,#00 ; 307B LCALL 50BF ; 307E JZ 308A ; 3080 MOV R3,#05 ; 3082 MOV DPTR,#1410 ; 3085 MOV A,R3 ; 3086 MOVX @DPTR,A ; 3087 LJMP 32B6 ; 308A MOV DPTR,#11CF ; 308D MOVX A,@DPTR ; 308E MOV R5,A ; 308F MOV R4,#00 ; 3091 MOV R3,#F0 ; 3093 MOV R2,#00 ; 3095 LCALL 5325 ; 3098 MOV 05,R3 ; 309A MOV 04,R2 ; 309C MOV R3,#90 ; 309E MOV R2,#00 ; 30A0 LCALL 50BF ; 30A3 JZ 30AF ; 30A5 MOV R3,#05 ; 30A7 MOV DPTR,#1410 ; 30AA MOV A,R3 ; 30AB MOVX @DPTR,A ; 30AC LJMP 32B6 ; 30AF MOV DPTR,#11CE ; 30B2 MOVX A,@DPTR ; 30B3 MOV R5,A ; 30B4 MOV R4,#00 ; 30B6 MOV R3,#0F ; 30B8 MOV R2,#00 ; 30BA LCALL 5325 ; 30BD MOV 05,R3 ; 30BF MOV 04,R2 ; 30C1 MOV R3,#01 ; 30C3 MOV R2,#00 ; 30C5 LCALL 515D ; 30C8 JZ 3124 ; 30CA MOV DPTR,#11CF ; 30CD MOVX A,@DPTR ; 30CE MOV R5,A ; 30CF MOV R4,#00 ; 30D1 MOV R3,#F0 ; 30D3 MOV R2,#00 ; 30D5 LCALL 5325 ; 30D8 MOV 05,R3 ; 30DA MOV 04,R2 ; 30DC MOV R3,#60 ; 30DE MOV R2,#00 ; 30E0 LCALL 50BF ; 30E3 JZ 30EF ; 30E5 MOV R3,#05 ; 30E7 MOV DPTR,#1410 ; 30EA MOV A,R3 ; 30EB MOVX @DPTR,A ; 30EC LJMP 32B6 ; 30EF MOV DPTR,#11CF ; 30F2 MOVX A,@DPTR ; 30F3 MOV R5,A ; 30F4 MOV R4,#00 ; 30F6 MOV R3,#F0 ; 30F8 MOV R2,#00 ; 30FA LCALL 5325 ; 30FD MOV 05,R3 ; 30FF MOV 04,R2 ; 3101 MOV R3,#60 ; 3103 MOV R2,#00 ; 3105 LCALL 515D ; 3108 JZ 3124 ; 310A MOV DPTR,#11CF ; 310D MOVX A,@DPTR ; 310E MOV R5,A ; 310F MOV R4,#00 ; 3111 MOV R3,#0F ; 3113 MOV R2,#00 ; 3115 LCALL 5325 ; 3118 JZ 3124 ; 311A MOV R3,#05 ; 311C MOV DPTR,#1410 ; 311F MOV A,R3 ; 3120 MOVX @DPTR,A ; 3121 LJMP 32B6 ; 3124 MOV DPTR,#11D6 ; 3127 MOVX A,@DPTR ; 3128 MOV R5,A ; 3129 MOV R4,#00 ; 312B MOV R3,#F0 ; 312D MOV R2,#00 ; 312F LCALL 5325 ; 3132 MOV 05,R3 ; 3134 MOV 04,R2 ; 3136 MOV R3,#10 ; 3138 MOV R2,#00 ; 313A LCALL 516C ; 313D JZ 3149 ; 313F MOV R3,#06 ; 3141 MOV DPTR,#1410 ; 3144 MOV A,R3 3145 MOVX @DPTR,A ; 3146 LJMP 32B6 ; 3149 MOV DPTR,#11D6 ; 314C MOVX A,@DPTR ; 314D MOV R5,A ; 314E MOV R4,#00 ; 3150 MOV R3,#0F ; 3152 MOV R2,#00 ; 3154 LCALL 5325 ; 3157 MOV 05,R3 ; 3159 MOV 04,R2 ; 315B MOV R3,#01 ; 315D MOV R2,#00 ; 315F LCALL 516C ; 3162 JZ 316E ; 3164 MOV R3,#07 ; 3166 MOV DPTR,#1410 ; 3169 MOV A,R3 ; 316A MOVX @DPTR,A ; 316B LJMP 32B6 ; 316E MOV DPTR,#11D7 ; 3171 MOVX A,@DPTR ; 3172 MOV R5,A ; 3173 MOV R3,#5C ; 3175 LCALL 5168 ; 3178 JZ 3184 ; 317A MOV R3,#08 ; 317C MOV DPTR,#1410 ; 317F MOV A,R3 ; 3180 MOVX @DPTR,A ; 3181 LJMP 32B6 ; 3184 LCALL 5378 ; 3187 INC R2 ; 3188 NOP ; 3189 JZ 31A2 ; 318B LCALL 5378 ; 318E INC R3 ; 318F NOP ; 3190 JNZ 31A2 ; 3192 MOV DPTR,#4103 ; 3195 MOVX A,@DPTR ; 3196 JNZ 31A2 ; 3198 MOV R3,#0A ; 319A MOV DPTR,#1410 ; 319D MOV A,R3 ; 319E MOVX @DPTR,A ; 319F LJMP 32B6 ; 31A2 LCALL 537E ; 31A5 INC R4 ; 31A6 NOP ; 31A7 LCALL 5378 ; 31AA INC R0 ; 31AB NOP ; 31AC LCALL 513C ; 31AF JNZ 31BE ; 31B1 LCALL 5378 ; 31B4 INC R3 ; 31B5 NOP ; 31B6 JNZ 31C8 ; 31B8 MOV DPTR,#4103 ; 31BB MOVX A,@DPTR ; 31BC JNZ 31C8 ; 31BE MOV R3,#0C ; 31C0 MOV DPTR,#1410 ; 31C3 MOV A,R3 ; 31C4 MOVX @DPTR,A ; 31C5 LJMP 32B6 ; 31C8 LCALL 537E ; 31CB INC R1 ; 31CC NOP ; 31CD MOV R3,#A0 ; 31CF LCALL 50DA ; 31D2 JZ 31DE ; 31D4 MOV R3,#09 ; 31D6 MOV DPTR,#1410 ; 31D9 MOV A,R3 ; 31DA MOVX @DPTR,A ; 31DB LJMP 32B6 ; 31DE MOV R3,#00 ; 31E0 LCALL 53B7 ; 31E3 INC R5 ; 31E4 NOP ; 31E5 MOV R3,#00 ; 31E7 LCALL 53B7 ; 31EA INC A ; 31EB NOP ; 31EC LCALL 537E ; 31EF INC A ; 31F0 NOP ; 31F1 MOV R3,#03 ; 31F3 LCALL 510C ; 31F6 JZ 3249 ; 31F8 MOV R3,#05 ; 31FA MOV R2,#00 ; 31FC LCALL 5652 ; 31FF MOV R5,#25 ; 3201 MOV R4,#41 ; 3203 LCALL 5378 ; 3206 INC @R0 ; 3207 NOP ; 3208 MOV R2,#00 ; 320A LCALL 5659 ; 320D MOV 05,R3 ; 320F MOV 04,R2 ; 3211 MOV R3,#06 ; 3213 MOV R2,#00 ; 3215 LCALL 53FB ; 3218 LCALL 566E ; 321B LCALL 53EA ; 321E LCALL 5652 ; 3221 MOV R3,#07 ; 3223 MOV R2,#14 ; 3225 MOV DPTR,#0006 ; 3228 LCALL 3BA1 ; 322B MOV 05,R3 ; 322D MOV A,#0D ; 322F ADD A,R7 ; 3230 MOV R3,A ; 3231 CLR A ; 3232 ADDC A,R6 ; 3233 MOV R2,A ; 3234 MOV DPH,R2 ; 3236 MOV DPL,R3 ; 3238 MOVX A,@DPTR ; 3239 ORL A,R5 ; 323A MOVX @DPTR,A ; 323B MOV R3,A ; 323C MOV A,#04 ; 323E ADD A,R7 ; 323F MOV R3,A ; 3240 CLR A ; 3241 ADDC A,R6 ; 3242 MOV R2,A ; 3243 LCALL 5234 ; 3246 AJMP 3080 ; 3248 INC DPTR ; 3249 LCALL 537E ; 324C INC R5 ; 324D NOP ; 324E MOV R3,#01 ; 3250 LCALL 5159 ; 3253 JZ 325E ; 3255 MOV R3,#0B ; 3257 MOV DPTR,#1410 ; 325A MOV A,R3 ; 325B MOVX @DPTR,A ; 325C SJMP 32B6 ; 325E MOV R3,#41 ; 3260 MOV R2,#00 ; 3262 LCALL 5652 ; 3265 MOV R3,#01 ; 3267 MOV R2,#41 ; 3269 MOV DPTR,#0004 ; 326C LCALL 0089 ; 326F MOV DPTR,#140E ; 3272 MOVX A,@DPTR ; 3273 MOV R3,A ; 3274 MOV R2,#00 ; 3276 LCALL 5652 ; 3279 MOV R3,#24 ; 327B MOV R2,#41 ; 327D MOV DPTR,#0004 ; 3280 LCALL 0089 ; 3283 LCALL 5378 ; 3286 INC R3 ; 3287 NOP ; 3288 MOV R2,#00 ; 328A LCALL 5652 ; 328D MOV R3,#02 ; 328F MOV R2,#41 ; 3291 MOV DPTR,#0004 ; 3294 LCALL 0089 ; 3297 MOV R3,#20 ; 3299 MOV R2,#00 ; 329B LCALL 5652 ; 329E MOV R3,#04 ; 32A0 MOV R2,#41 ; 32A2 LCALL 5652 ; 32A5 MOV R3,#CC ; 32A7 MOV R2,#11 ; 32A9 MOV DPTR,#0006 ; 32AC LCALL 3C81 ; 32AF MOV R3,#00 ; 32B1 MOV DPTR,#1410 ; 32B4 MOV A,R3 ; 32B5 MOVX @DPTR,A ; 32B6 LJMP 561F ; 32B9 CLR A ; 32BA MOV R0,#00 ; 32BC MOV R1,#04 ; 32BE LCALL 55DB ; 32C1 MOV DPTR,#13F4 ; 32C4 MOVX A,@DPTR ; 32C5 MOV R5,A ; 32C6 MOV R3,#01 ; 32C8 LCALL 5159 ; 32CB JZ 32D3 ; 32CD MOV DPTR,#0000 ; 32D0 LCALL 32D6 ; 32D3 LJMP 561F ; 32D6 CLR A ; 32D7 MOV R0,#00 ; 32D9 MOV R1,#04 ; 32DB LCALL 55DB ; 32DE MOV R3,#02 ; 32E0 MOV DPTR,#11C5 ; 32E3 MOV A,R3 ; 32E4 MOVX @DPTR,A ; 32E5 MOV R3,#03 ; 32E7 MOV DPTR,#11C6 ; 32EA MOV A,R3 ; 32EB MOVX @DPTR,A ; 32EC MOV R3,#C5 ; 32EE MOV R2,#11 ; 32F0 MOV DPTR,#0002 ; 32F3 LCALL 32FF ; 32F6 MOV DPTR,#0000 ; 32F9 LCALL 00AD ; 32FC LJMP 561F ; 32FF MOV A,#02 ; 3301 MOV R0,#00 ; 3303 MOV R1,#05 ; 3305 LCALL 55DB ; 3308 LCALL 5384 ; 330B INC 00 ; 330D MOV DPTR,#0002 ; 3310 LCALL 0083 ; 3313 LCALL 53B7 ; 3316 INC A ; 3317 NOP ; 3318 LCALL 5378 ; 331B INC A ; 331C NOP ; 331D JNZ 3363 ; 331F LCALL 537E ; 3322 INC A ; 3323 NOP ; 3324 MOV R3,#02 ; 3326 LCALL 5168 ; 3329 JZ 3363 ; 332B MOV DPTR,#4101 ; 332E MOVX A,@DPTR ; 332F MOV R5,A ; 3330 MOV R3,#41 ; 3332 LCALL 5159 ; 3335 JZ 3347 ; 3337 MOV DPTR,#0000 ; 333A LCALL 00A7 ; 333D MOV A,R3 ; 333E JNZ 3347 ; 3340 MOV R3,#FF ; 3342 LCALL 53B7 ; 3345 INC A ; 3346 NOP ; 3347 MOV DPTR,#4101 ; 334A MOVX A,@DPTR ; 334B MOV R5,A ; 334C MOV R3,#54 ; 334E LCALL 5159 ; 3351 JZ 3363 ; 3353 MOV DPTR,#0000 ; 3356 LCALL 00A7 ; 3359 MOV A,R3 ; 335A JNZ 3363 ; 335C MOV R3,#FF ; 335E LCALL 53B7 ; 3361 INC A ; 3362 NOP ; 3363 LCALL 5378 ; 3366 INC A ; 3367 NOP ; 3368 LJMP 561F ; 336B MOV A,#02 ; 336D MOV R0,#00 ; 336F MOV R1,#08 ; 3371 LCALL 55DB ; 3374 MOV R3,#00 ; 3376 MOV R2,#00 ; 3378 LCALL 53BD ; 337B INC @R0 ; 337C NOP ; 337D MOV R3,#00 ; 337F MOV R2,#00 ; 3381 LCALL 53BD ; 3384 INC A ; 3385 NOP ; 3386 LCALL 5388 ; 3389 INC A ; 338A NOP ; 338B MOV R3,#05 ; 338D MOV R2,#00 ; 338F LCALL 50F5 ; 3392 JZ 33F1 ; 3394 LCALL 5388 ; 3397 INC R0 ; 3398 NOP ; 3399 LCALL 5384 ; 339C INC A ; 339D NOP ; 339E LCALL 53EA ; 33A1 MOV DPH,R2 ; 33A3 MOV DPL,R3 ; 33A5 MOVX A,@DPTR ; 33A6 JZ 33F1 ; 33A8 MOV R5,#0A ; 33AA MOV R4,#00 ; 33AC MOV A,#06 ; 33AE ADD A,R7 ; 33AF MOV R3,A ; 33B0 CLR A ; 33B1 ADDC A,R6 ; 33B2 MOV R2,A ; 33B3 LCALL 504D ; 33B6 LCALL 5388 ; 33B9 INC R0 ; 33BA NOP ; 33BB LCALL 5384 ; 33BE INC A ; 33BF NOP ; 33C0 LCALL 53EA ; 33C3 MOV DPH,R2 ; 33C5 MOV DPL,R3 ; 33C7 MOVX A,@DPTR ; 33C8 MOV R3,A ; 33C9 MOV R2,#00 ; 33CB MOV 05,R3 ; 33CD MOV 04,R2 ; 33CF MOV R3,#D0 ; 33D1 MOV R2,#FF ; 33D3 LCALL 53EA ; 33D6 MOV 05,R3 ; 33D8 MOV 04,R2 ; 33DA MOV A,#06 ; 33DC ADD A,R7 ; 33DD MOV R3,A ; 33DE CLR A ; 33DF ADDC A,R6 ; 33E0 MOV R2,A ; 33E1 LCALL 5044 ; 33E4 MOV A,#04 ; 33E6 ADD A,R7 ; 33E7 MOV R3,A ; 33E8 CLR A ; 33E9 ADDC A,R6 ; 33EA MOV R2,A ; 33EB LCALL 5234 ; 33EE LJMP 8095 ; 33F1 LCALL 5384 ; 33F4 INC @R0 ; 33F5 NOP ; 33F6 LJMP 561F ; 33F9 MOV A,#02 ; 33FB MOV R0,#00 ; 33FD MOV R1,#04 ; 33FF LCALL 55DB ; 3402 LCALL 5378 ; 3405 INC R1 ; 3406 NOP ; 3407 LCALL 537E ; 340A INC R1 ; 340B NOP ; 340C MOV R3,#00 ; 340E LCALL 50DA ; 3411 JZ 3487 ; 3413 LCALL 5384 ; 3416 INC A ; 3417 NOP ; 3418 MOV DPH,R2 ; 341A MOV DPL,R3 ; 341C MOVX A,@DPTR ; 341D MOV R3,A ; 341E MOV R2,#00 ; 3420 MOV 05,R3 ; 3422 MOV 04,R2 ; 3424 MOV R3,#F0 ; 3426 MOV R2,#00 ; 3428 LCALL 5325 ; 342B MOV 05,R3 ; 342D MOV 04,R2 ; 342F MOV R3,#04 ; 3431 LCALL 52CC ; 3434 MOV 05,R3 ; 3436 MOV R3,#30 ; 3438 MOV A,R3 ; 3439 ADD A,R5 ; 343A MOV R3,A ; 343B MOV 05,R3 ; 343D MOV A,#06 ; 343F ADD A,R7 ; 3440 MOV R3,A ; 3441 CLR A ; 3442 ADDC A,R6 ; 3443 MOV R2,A ; 3444 LCALL 5234 ; 3447 LJMP 1253 ; 344A ADD A,R5 ; 344B MOV A,#04 ; 344D ADD A,R7 ; 344E MOV R3,A ; 344F CLR A ; 3450 ADDC A,R6 ; 3451 MOV R2,A ; 3452 LCALL 5234 ; 3455 LJMP 8A83 ; 3458 MOV DPL,R3 ; 345A MOVX A,@DPTR ; 345B MOV R3,A ; 345C MOV 05,R3 ; 345E MOV R3,#0F ; 3460 MOV A,R3 ; 3461 ANL A,R5 ; 3462 MOV R3,A ; 3463 MOV 05,R3 ; 3465 MOV R3,#30 ; 3467 MOV A,R3 ; 3468 ADD A,R5 ; 3469 MOV R3,A ; 346A MOV 05,R3 ; 346C MOV A,#06 ; 346E ADD A,R7 ; 346F MOV R3,A ; 3470 CLR A ; 3471 ADDC A,R6 ; 3472 MOV R2,A ; 3473 LCALL 5234 ; 3476 LJMP 1253 ; 3479 ADD A,R5 ; 347A MOV A,#09 ; 347C ADD A,R7 ; 347D MOV R3,A ; 347E CLR A ; 347F ADDC A,R6 ; 3480 MOV R2,A ; 3481 LCALL 523A ; 3484 AJMP 3080 ; 3486 SJMP 3505 ; 3488 NOP ; 3489 LCALL 5384 ; 348C INC @R0 ; 348D NOP ; 348E LCALL 532D ; 3491 LJMP 561F ; 3494 MOV A,#02 ; 3496 MOV R0,#00 ; 3498 MOV R1,#06 ; 349A LCALL 55DB ; 349D MOV R3,#00 ; 349F MOV R2,#00 ; 34A1 LCALL 53BD ; 34A4 INC A ; 34A5 NOP ; 34A6 LCALL 5388 ; 34A9 INC A ; 34AA NOP ; 34AB MOV R3,#05 ; 34AD MOV R2,#00 ; 34AF LCALL 50F5 ; 34B2 JZ 34FF ; 34B4 LCALL 5384 ; 34B7 INC @R0 ; 34B8 NOP ; 34B9 JZ 34FF ; 34BB LCALL 5388 ; 34BE INC @R0 ; 34BF NOP ; 34C0 MOV R3,#0A ; 34C2 MOV R2,#00 ; 34C4 LCALL 543F ; 34C7 MOV 05,R3 ; 34C9 MOV R3,#30 ; 34CB MOV A,R3 ; 34CC ADD A,R5 ; 34CD MOV R3,A ; 34CE LCALL 5644 ; 34D1 LCALL 5388 ; 34D4 INC R1 ; 34D5 NOP ; 34D6 LCALL 5384 ; 34D9 INC 00 ; 34DB LCALL 53EA ; 34DE LCALL 5660 ; 34E1 LCALL 532D ; 34E4 MOV R5,#0A ; 34E6 MOV R4,#00 ; 34E8 MOV A,#06 ; 34EA ADD A,R7 ; 34EB MOV R3,A ; 34EC CLR A ; 34ED ADDC A,R6 ; 34EE MOV R2,A ; 34EF LCALL 505F ; 34F2 MOV A,#04 ; 34F4 ADD A,R7 ; 34F5 MOV R3,A ; 34F6 CLR A ; 34F7 ADDC A,R6 ; 34F8 MOV R2,A ; 34F9 LCALL 5234 ; 34FC LJMP 80A7 ; 34FF MOV R5,#00 ; 3501 LCALL 5384 ; 3504 INC R0 ; 3505 NOP ; 3506 LCALL 564B ; 3509 MOV 05,R3 ; 350B MOV 04,R2 ; 350D LCALL 5384 ; 3510 INC 00 ; 3512 LCALL 53EA ; 3515 LCALL 5660 ; 3518 LCALL 532D ; 351B LCALL 5388 ; 351E INC A ; 351F NOP ; 3520 MOV R3,#FF ; 3522 MOV R2,#FF ; 3524 LCALL 53EA ; 3527 LCALL 5652 ; 352A LCALL 5384 ; 352D INC R2 ; 352E NOP ; 352F MOV DPTR,#0004 ; 3532 LCALL 353D ; 3535 LCALL 5384 ; 3538 INC A ; 3539 NOP ; 353A LJMP 561F ; 353D MOV A,#02 ; 353F MOV R0,#00 ; 3541 MOV R1,#09 ; 3543 LCALL 55DB ; 3546 MOV R3,#00 ; 3548 MOV R2,#00 ; 354A LCALL 53BD ; 354D INC A ; 354E NOP ; 354F LCALL 5384 ; 3552 INC R3 ; 3553 NOP ; 3554 LCALL 53BD ; 3557 INC @R0 ; 3558 NOP ; 3559 LCALL 5388 ; 355C INC A ; 355D NOP ; 355E LCALL 5384 ; 3561 INC @R0 ; 3562 NOP ; 3563 LCALL 50F5 ; 3566 JZ 35E1 ; 3568 LCALL 5388 ; 356B INC R1 ; 356C NOP ; 356D LCALL 5384 ; 3570 INC A ; 3571 NOP ; 3572 LCALL 53EA ; 3575 MOV DPH,R2 ; 3577 MOV DPL,R3 ; 3579 MOVX A,@DPTR ; 357A MOV R3,A ; 357B LCALL 53B7 ; 357E INC R0 ; 357F NOP ; 3580 LCALL 5388 ; 3583 INC R1 ; 3584 NOP ; 3585 LCALL 5384 ; 3588 INC @R0 ; 3589 NOP ; 358A LCALL 53EA ; 358D MOV DPH,R2 ; 358F MOV DPL,R3 ; 3591 MOVX A,@DPTR ; 3592 MOV R3,A ; 3593 LCALL 5644 ; 3596 LCALL 5388 ; 3599 INC R2 ; 359A NOP ; 359B LCALL 5384 ; 359E INC 00 ; 35A0 LCALL 53EA ; 35A3 LCALL 5660 ; 35A6 LCALL 532D ; 35A9 LCALL 537E ; 35AC INC R0 ; 35AD NOP ; 35AE LCALL 5384 ; 35B1 INC R1 ; 35B2 NOP ; 35B3 LCALL 564B ; 35B6 MOV 05,R3 ; 35B8 MOV 04,R2 ; 35BA LCALL 5384 ; 35BD INC @R1 ; 35BE NOP ; 35BF LCALL 53EA ; 35C2 LCALL 5660 ; 35C5 LCALL 532D ; 35C8 MOV A,#04 ; 35CA ADD A,R7 ; 35CB MOV R3,A ; 35CC CLR A ; 35CD ADDC A,R6 ; 35CE MOV R2,A ; 35CF LCALL 5234 ; 35D2 LJMP 7406 ; 35D5 ADD A,R7 ; 35D6 MOV R3,A ; 35D7 CLR A ; 35D8 ADDC A,R6 ; 35D9 MOV R2,A ; 35DA LCALL 523A ; 35DD LJMP 0235 ; 35E0 ANL A,R1 ; 35E1 LJMP 561F ; 35E4 MOV A,#02 ; 35E6 MOV R0,#00 ; 35E8 MOV R1,#07 ; 35EA LCALL 55DB ; 35ED LCALL 537E ; 35F0 INC R4 ; 35F1 NOP ; 35F2 MOV R4,#00 ; 35F4 MOV R3,#01 ; 35F6 MOV R2,#00 ; 35F8 LCALL 5325 ; 35FB MOV 05,R3 ; 35FD MOV 04,R2 ; 35FF MOV R3,#01 ; 3601 MOV R2,#00 ; 3603 LCALL 515D ; 3606 JZ 363B ; 3608 MOV A,#07 ; 360A ADD A,R7 ; 360B MOV R3,A ; 360C CLR A ; 360D ADDC A,R6 ; 360E MOV R2,A ; 360F LCALL 5234 ; 3612 LJMP 8A83 ; 3615 MOV DPL,R3 ; 3617 MOVX A,@DPTR ; 3618 MOV R3,A ; 3619 MOV 05,R3 ; 361B MOV R3,#0F ; 361D MOV A,R3 ; 361E ANL A,R5 ; 361F MOV R3,A ; 3620 MOV 05,R3 ; 3622 MOV A,#09 ; 3624 ADD A,R7 ; 3625 MOV R3,A ; 3626 CLR A ; 3627 ADDC A,R6 ; 3628 MOV R2,A ; 3629 LCALL 5234 ; 362C LJMP 1253 ; 362F ADD A,R5 ; 3630 MOV A,#0C ; 3632 ADD A,R7 ; 3633 MOV R3,A ; 3634 CLR A ; 3635 ADDC A,R6 ; 3636 MOV R2,A ; 3637 LCALL 523A ; 363A AJMP 307B ; 363C NOP ; 363D MOV R2,#00 ; 363F LCALL 53BD ; 3642 INC A ; 3643 NOP ; 3644 LCALL 537E ; 3647 INC R4 ; 3648 NOP ; 3649 MOV R3,#02 ; 364B MOV A,R5 ; 364C MOV B,R3 ; 364E DIV AB ; 364F MOV R3,A ; 3650 MOV R2,#00 ; 3652 MOV 05,R3 ; 3654 MOV 04,R2 ; 3656 LCALL 5384 ; 3659 INC A ; 365A NOP ; 365B LCALL 50BF ; 365E JNZ 3663 ; 3660 LJMP 36FC ; 3663 MOV A,#07 ; 3665 ADD A,R7 ; 3666 MOV R3,A ; 3667 CLR A ; 3668 ADDC A,R6 ; 3669 MOV R2,A ; 366A LCALL 5234 ; 366D LJMP 8A83 ; 3670 MOV DPL,R3 ; 3672 MOVX A,@DPTR ; 3673 MOV R3,A ; 3674 LCALL 53B7 ; 3677 INC @R0 ; 3678 NOP ; 3679 LCALL 5378 ; 367C INC @R0 ; 367D NOP ; 367E JNZ 3687 ; 3680 MOV R3,#30 ; 3682 LCALL 53B7 ; 3685 INC @R0 ; 3686 NOP ; 3687 LCALL 537E ; 368A INC @R0 ; 368B NOP ; 368C MOV R3,#D0 ; 368E MOV A,R3 ; 368F ADD A,R5 ; 3690 MOV R3,A ; 3691 MOV 05,R3 ; 3693 MOV R3,#10 ; 3695 MOV A,R5 ; 3696 MOV B,R3 ; 3698 MUL AB ; 3699 MOV R3,A ; 369A MOV 05,R3 ; 369C LCALL 5384 ; 369F INC R1 ; 36A0 NOP ; 36A1 LCALL 532D ; 36A4 MOV A,#07 ; 36A6 ADD A,R7 ; 36A7 MOV R3,A ; 36A8 CLR A ; 36A9 ADDC A,R6 ; 36AA MOV R2,A ; 36AB LCALL 5234 ; 36AE LJMP 8A83 ; 36B1 MOV DPL,R3 ; 36B3 MOVX A,@DPTR ; 36B4 MOV R3,A ; 36B5 LCALL 53B7 ; 36B8 INC @R0 ; 36B9 NOP ; 36BA LCALL 5378 ; 36BD INC @R0 ; 36BE NOP ; 36BF JNZ 36C8 ; 36C1 MOV R3,#30 ; 36C3 LCALL 53B7 ; 36C6 INC @R0 ; 36C7 NOP ; 36C8 LCALL 537E ; 36CB INC @R0 ; 36CC NOP ; 36CD MOV R3,#D0 ; 36CF MOV A,R3 ; 36D0 ADD A,R5 ; 36D1 MOV R3,A ; 36D2 MOV 05,R3 ; 36D4 MOV R3,#0F ; 36D6 MOV A,R3 ; 36D7 ANL A,R5 ; 36D8 MOV R3,A ; 36D9 MOV 05,R3 ; 36DB MOV A,#09 ; 36DD ADD A,R7 ; 36DE MOV R3,A ; 36DF CLR A ; 36E0 ADDC A,R6 ; 36E1 MOV R2,A ; 36E2 LCALL 5234 ; 36E5 LJMP 8A83 ; 36E8 MOV DPL,R3 ; 36EA MOVX A,@DPTR ; 36EB ORL A,R5 ; 36EC MOVX @DPTR,A ; 36ED MOV R3,A ; 36EE MOV A,#04 ; 36F0 ADD A,R7 ; 36F1 MOV R3,A ; 36F2 CLR A ; 36F3 ADDC A,R6 ; 36F4 MOV R2,A ; 36F5 LCALL 5234 ; 36F8 LJMP 0236 ; (R6R7-2)=R2 (R6R7-1)=R3 R6R7-=2 36FB ORL A,#02 ; 36FD ANL A,@R0 ; 36FE DEC R7 ; 36FF MOV A,#02 ; 3701 MOV R0,#00 ; 3703 MOV R1,#07 ; 3705 LCALL 55DB ; 3708 LCALL 537E ; 370B INC R0 ; 370C NOP ; 370D MOV R3,#0F ; 370F MOV A,R3 ; 3710 ANL A,R5 ; 3711 MOV R3,A ; 3712 LCALL 53B7 ; 3715 INC A ; 3716 NOP ; 3717 LCALL 537E ; 371A INC R0 ; 371B NOP ; 371C MOV R3,#04 ; 371E MOV R4,#00 ; 3720 LCALL 52EF ; 3723 LCALL 53B7 ; 3726 INC 00 ; 3728 MOV R5,#0A ; 372A MOV A,#05 ; 372C ADD A,R7 ; 372D MOV R3,A ; 372E CLR A ; 372F ADDC A,R6 ; 3730 MOV R2,A ; 3731 MOV DPH,R2 ; 3733 MOV DPL,R3 ; 3735 MOVX A,@DPTR ; 3736 MOV B,R5 ; 3738 MUL AB ; 3739 MOVX @DPTR,A ; 373A MOV R3,A ; 373B LCALL 537E ; 373E INC 00 ; 3740 LCALL 5378 ; 3743 INC A ; 3744 NOP ; 3745 MOV A,R3 ; 3746 ADD A,R5 ; 3747 MOV R3,A ; 3748 LCALL 53B7 ; 374B INC @R0 ; 374C NOP ; 374D LCALL 5378 ; 3750 INC @R0 ; 3751 NOP ; 3752 LJMP 561F ; 3755 MOV A,#02 ; 3757 MOV R0,#00 ; 3759 MOV R1,#08 ; 375B LCALL 55DB ; 375E MOV R3,#01 ; 3760 MOV R2,#00 ; 3762 LCALL 53BD ; 3765 INC @R0 ; 3766 NOP ; 3767 MOV R5,#00 ; 3769 MOV R4,#00 ; 376B LCALL 5384 ; 376E INC R2 ; 376F NOP ; 3770 LCALL 5335 ; 3773 LCALL 537E ; 3776 INC R5 ; 3777 NOP ; 3778 MOV R3,#FF ; 377A MOV A,R3 ; 377B ADD A,R5 ; 377C MOV R3,A ; 377D LCALL 53B7 ; 3780 INC A ; 3781 NOP ; 3782 LCALL 537E ; 3785 INC A ; 3786 NOP ; 3787 MOV R3,#00 ; 3789 LCALL 5118 ; 378C JZ 37EA ; 378E LCALL 5388 ; 3791 INC R0 ; 3792 NOP ; 3793 LCALL 5378 ; 3796 INC A ; 3797 NOP ; 3798 MOV A,R3 ; 3799 RLC A ; 379A CLR A ; 379B SUBB A,ACC ; 379D MOV R2,A ; 379E LCALL 53EA ; 37A1 MOV DPH,R2 ; 37A3 MOV DPL,R3 ; 37A5 MOVX A,@DPTR ; 37A6 MOV R3,A ; 37A7 MOV R2,#00 ; 37A9 MOV DPTR,#0002 ; 37AC LCALL 36FF ; 37AF LCALL 53B7 ; 37B2 INC 00 ; 37B4 LCALL 537E ; 37B7 INC 00 ; 37B9 MOV R4,#00 ; 37BB LCALL 5384 ; 37BE INC @R0 ; 37BF NOP ; 37C0 LCALL 53FB ; 37C3 MOV 05,R3 ; 37C5 MOV 04,R2 ; 37C7 LCALL 5384 ; 37CA INC R2 ; 37CB NOP ; 37CC LCALL 5044 ; 37CF MOV R5,#64 ; 37D1 MOV R4,#00 ; 37D3 MOV A,#06 ; 37D5 ADD A,R7 ; 37D6 MOV R3,A ; 37D7 CLR A ; 37D8 ADDC A,R6 ; 37D9 MOV R2,A ; 37DA LCALL 5056 ; 37DD MOV A,#04 ; 37DF ADD A,R7 ; 37E0 MOV R3,A ; 37E1 CLR A ; 37E2 ADDC A,R6 ; 37E3 MOV R2,A ; 37E4 LCALL 523A ; 37E7 AJMP 3080 ; 37E9 SUBB A,R0 ; 37EA LJMP 561F ; 37ED MOV A,#02 ; 37EF MOV R0,#00 ; 37F1 MOV R1,#08 ; 37F3 LCALL 55DB ; 37F6 MOV R3,#80 ; 37F8 LCALL 53B7 ; 37FB INC 00 ; 37FD LCALL 537E ; 3800 INC R1 ; 3801 NOP ; 3802 MOV R3,#03 ; 3804 MOV R4,#00 ; 3806 LCALL 52EF ; 3809 LCALL 53B7 ; 380C INC @R0 ; 380D NOP ; 380E LCALL 537E ; 3811 INC R1 ; 3812 NOP ; 3813 MOV R3,#07 ; 3815 MOV A,R3 ; 3816 ANL A,R5 ; 3817 MOV R3,A ; 3818 LCALL 53B7 ; 381B INC @R1 ; 381C NOP ; 381D LCALL 537E ; 3820 INC @R1 ; 3821 NOP ; 3822 MOV A,#05 ; 3824 ADD A,R7 ; 3825 MOV R3,A ; 3826 CLR A ; 3827 ADDC A,R6 ; 3828 MOV R2,A ; 3829 LCALL 5068 ; 382C MOV R3,#08 ; 382E MOV DPTR,#11C5 ; 3831 MOV A,R3 ; 3832 MOVX @DPTR,A ; 3833 MOV R3,#02 ; 3835 MOV DPTR,#11C6 ; 3838 MOV A,R3 ; 3839 MOVX @DPTR,A ; 383A MOV R3,#00 ; 383C MOV DPTR,#11C7 ; 383F MOV A,R3 ; 3840 MOVX @DPTR,A ; 3841 MOV R3,#D0 ; 3843 MOV DPTR,#11C8 ; 3846 MOV A,R3 ; 3847 MOVX @DPTR,A ; 3848 MOV R3,#00 ; 384A MOV DPTR,#11C9 ; 384D MOV A,R3 ; 384E MOVX @DPTR,A ; 384F LCALL 5378 ; 3852 INC @R0 ; 3853 NOP ; 3854 MOV DPTR,#11CA ; 3857 MOV A,R3 ; 3858 MOVX @DPTR,A ; 3859 MOV R3,#01 ; 385B MOV DPTR,#11CB ; 385E MOV A,R3 ; 385F MOVX @DPTR,A ; 3860 LCALL 5378 ; 3863 INC 00 ; 3865 MOV DPTR,#11CC ; 3868 MOV A,R3 ; 3869 MOVX @DPTR,A ; 386A MOV R3,#C5 ; 386C MOV R2,#11 ; 386E MOV DPTR,#0002 ; 3871 LCALL 32FF ; 3874 LCALL 53B7 ; 3877 INC A ; 3878 NOP ; 3879 LCALL 5378 ; 387C INC A ; 387D NOP ; 387E JZ 388C ; 3880 LCALL 537E ; 3883 INC A ; 3884 NOP ; 3885 MOV R3,#FF ; 3887 LCALL 5159 ; 388A JZ 38CF ; 388C MOV R5,#04 ; 388E MOV R4,#41 ; 3890 LCALL 5378 ; 3893 INC @R0 ; 3894 NOP ; 3895 MOV R2,#00 ; 3897 LCALL 53EA ; 389A MOV DPH,R2 ; 389C MOV DPL,R3 ; 389E MOVX A,@DPTR ; 389F MOV R3,A ; 38A0 MOV 05,R3 ; 38A2 MOV A,#05 ; 38A4 ADD A,R7 ; 38A5 MOV R3,A ; 38A6 CLR A ; 38A7 ADDC A,R6 ; 38A8 MOV R2,A ; 38A9 MOV DPH,R2 ; 38AB MOV DPL,R3 ; 38AD MOVX A,@DPTR ; 38AE ORL A,R5 ; 38AF MOVX @DPTR,A ; 38B0 MOV R3,A ; 38B1 LCALL 5378 ; 38B4 INC 00 ; 38B6 MOV R2,#00 ; 38B8 LCALL 5652 ; 38BB MOV R5,#04 ; 38BD MOV R4,#41 ; 38BF LCALL 5378 ; 38C2 INC R0 ; 38C3 NOP ; 38C4 MOV R2,#00 ; 38C6 LCALL 53EA ; 38C9 MOV DPTR,#0004 ; 38CC LCALL 0089 ; 38CF LCALL 5378 ; 38D2 INC A ; 38D3 NOP ; 38D4 LJMP 561F ; 38D7 MOV A,#02 ; 38D9 MOV R0,#00 ; 38DB MOV R1,#08 ; 38DD LCALL 55DB ; 38E0 MOV R3,#80 ; 38E2 LCALL 53B7 ; 38E5 INC 00 ; 38E7 LCALL 5384 ; 38EA INC R0 ; 38EB NOP ; 38EC MOV DPH,R2 ; 38EE MOV DPL,R3 ; 38F0 MOVX A,@DPTR ; 38F1 MOV R3,A ; 38F2 MOV 05,R3 ; 38F4 MOV R3,#03 ; 38F6 MOV R4,#00 ; 38F8 LCALL 52EF ; 38FB LCALL 53B7 ; 38FE INC @R0 ; 38FF NOP ; 3900 LCALL 5384 ; 3903 INC R0 ; 3904 NOP ; 3905 MOV DPH,R2 ; 3907 MOV DPL,R3 ; 3909 MOVX A,@DPTR ; 390A MOV R3,A ; 390B MOV 05,R3 ; 390D MOV R3,#07 ; 390F MOV A,R3 ; 3910 ANL A,R5 ; 3911 MOV R3,A ; 3912 LCALL 53B7 ; 3915 INC @R1 ; 3916 NOP ; 3917 MOV R5,#0C ; 3919 MOV A,#06 ; 391B ADD A,R7 ; 391C MOV R3,A ; 391D CLR A ; 391E ADDC A,R6 ; 391F MOV R2,A ; 3920 MOV DPH,R2 ; 3922 MOV DPL,R3 ; 3924 MOVX A,@DPTR ; 3925 ADD A,R5 ; 3926 MOVX @DPTR,A ; 3927 MOV R3,A ; 3928 LCALL 537E ; 392B INC @R1 ; 392C NOP ; 392D MOV A,#05 ; 392F ADD A,R7 ; 3930 MOV R3,A ; 3931 CLR A ; 3932 ADDC A,R6 ; 3933 MOV R2,A ; 3934 LCALL 5068 ; 3937 MOV R3,#08 ; 3939 MOV DPTR,#11C5 ; 393C MOV A,R3 ; 393D MOVX @DPTR,A ; 393E MOV R3,#02 ; 3940 MOV DPTR,#11C6 ; 3943 MOV A,R3 ; 3944 MOVX @DPTR,A ; 3945 MOV R3,#00 ; 3947 MOV DPTR,#11C7 ; 394A MOV A,R3 ; 394B MOVX @DPTR,A ; 394C MOV R3,#D0 ; 394E MOV DPTR,#11C8 ; 3951 MOV A,R3 ; 3952 MOVX @DPTR,A ; 3953 MOV R3,#00 ; 3955 MOV DPTR,#11C9 ; 3958 MOV A,R3 ; 3959 MOVX @DPTR,A ; 395A LCALL 5378 ; 395D INC @R0 ; 395E NOP ; 395F MOV DPTR,#11CA ; 3962 MOV A,R3 ; 3963 MOVX @DPTR,A ; 3964 MOV R3,#01 ; 3966 MOV DPTR,#11CB ; 3969 MOV A,R3 ; 396A MOVX @DPTR,A ; 396B LCALL 5378 ; 396E INC 00 ; 3970 MOV DPTR,#11CC ; 3973 MOV A,R3 ; 3974 MOVX @DPTR,A ; 3975 MOV R3,#C5 ; 3977 MOV R2,#11 ; 3979 MOV DPTR,#0002 ; 397C LCALL 32FF ; 397F LCALL 53B7 ; 3982 INC A ; 3983 NOP ; 3984 LCALL 5378 ; 3987 INC A ; 3988 NOP ; 3989 JZ 3997 ; 398B LCALL 537E ; 398E INC A ; 398F NOP ; 3990 MOV R3,#FF ; 3992 LCALL 5159 ; 3995 JZ 39DA ; 3997 MOV R5,#04 ; 3999 MOV R4,#41 ; 399B LCALL 5378 ; 399E INC @R0 ; 399F NOP ; 39A0 MOV R2,#00 ; 39A2 LCALL 53EA ; 39A5 MOV DPH,R2 ; 39A7 MOV DPL,R3 ; 39A9 MOVX A,@DPTR ; 39AA MOV R3,A ; 39AB MOV 05,R3 ; 39AD MOV A,#05 ; 39AF ADD A,R7 ; 39B0 MOV R3,A ; 39B1 CLR A ; 39B2 ADDC A,R6 ; 39B3 MOV R2,A ; 39B4 MOV DPH,R2 ; 39B6 MOV DPL,R3 ; 39B8 MOVX A,@DPTR ; 39B9 ORL A,R5 ; 39BA MOVX @DPTR,A ; 39BB MOV R3,A ; 39BC LCALL 5378 ; 39BF INC 00 ; 39C1 MOV R2,#00 ; 39C3 LCALL 5652 ; 39C6 MOV R5,#04 ; 39C8 MOV R4,#41 ; 39CA LCALL 5378 ; 39CD INC R0 ; 39CE NOP ; 39CF MOV R2,#00 ; 39D1 LCALL 53EA ; 39D4 MOV DPTR,#0004 ; 39D7 LCALL 0089 ; 39DA LCALL 5378 ; 39DD INC A ; 39DE NOP ; 39DF LJMP 561F ; 39E2 MOV A,#02 ; 39E4 MOV R0,#00 ; 39E6 MOV R1,#06 ; 39E8 LCALL 55DB ; 39EB MOV R3,#00 ; 39ED LCALL 53B7 ; 39F0 INC A ; 39F1 NOP ; 39F2 LCALL 5384 ; 39F5 INC @R0 ; 39F6 NOP ; 39F7 MOV DPTR,#0002 ; 39FA LCALL 38D7 ; 39FD LCALL 53B7 ; 3A00 INC 00 ; 3A02 LCALL 537E ; 3A05 INC 00 ; 3A07 MOV R3,#84 ; 3A09 LCALL 5159 ; 3A0C JZ 3A22 ; 3A0E LCALL 5384 ; 3A11 INC @R0 ; 3A12 NOP ; 3A13 LCALL 5234 ; 3A16 AJMP 3874 ; 3A18 INC A ; 3A19 ADD A,R7 ; 3A1A MOV R3,A ; 3A1B CLR A ; 3A1C ADDC A,R6 ; 3A1D MOV R2,A ; 3A1E LCALL 5234 ; 3A21 AJMP 3812 ; 3A23 ANL 7E,#04 ; 3A26 NOP ; 3A27 MOV R3,#03 ; 3A29 LCALL 510C ; 3A2C JZ 3A3A ; 3A2E LCALL 537E ; 3A31 INC 00 ; 3A33 MOV R3,#84 ; 3A35 LCALL 5159 ; 3A38 JNZ 39F2 ; 3A3A LCALL 5378 ; 3A3D INC 00 ; 3A3F LJMP 561F ; 3A42 CLR A ; 3A43 MOV R0,#00 ; 3A45 MOV R1,#05 ; 3A47 LCALL 55DB ; 3A4A MOV R3,#08 ; 3A4C MOV DPTR,#11C5 ; 3A4F MOV A,R3 ; 3A50 MOVX @DPTR,A ; 3A51 MOV R3,#02 ; 3A53 MOV DPTR,#11C6 ; 3A56 MOV A,R3 ; 3A57 MOVX @DPTR,A ; 3A58 MOV R3,#00 ; 3A5A MOV DPTR,#11C7 ; 3A5D MOV A,R3 ; 3A5E MOVX @DPTR,A ; 3A5F MOV R3,#D0 ; 3A61 MOV DPTR,#11C8 ; 3A64 MOV A,R3 ; 3A65 MOVX @DPTR,A ; 3A66 MOV R3,#00 ; 3A68 MOV DPTR,#11C9 ; 3A6B MOV A,R3 ; 3A6C MOVX @DPTR,A ; 3A6D MOV R3,#01 ; 3A6F MOV DPTR,#11CA ; 3A72 MOV A,R3 ; 3A73 MOVX @DPTR,A ; 3A74 MOV R3,#01 ; 3A76 MOV DPTR,#11CB ; 3A79 MOV A,R3 ; 3A7A MOVX @DPTR,A ; 3A7B MOV R3,#10 ; 3A7D MOV DPTR,#11CC ; 3A80 MOV A,R3 ; 3A81 MOVX @DPTR,A ; 3A82 MOV R3,#C5 ; 3A84 MOV R2,#11 ; 3A86 MOV DPTR,#0002 ; 3A89 LCALL 32FF ; 3A8C LCALL 53B7 ; 3A8F INC A ; 3A90 NOP ; 3A91 LCALL 537E ; 3A94 INC A ; 3A95 NOP ; 3A96 MOV R3,#84 ; 3A98 LCALL 5159 ; 3A9B JZ 3AA6 ; 3A9D MOV R3,#01 ; 3A9F LCALL 53B7 ; 3AA2 INC A ; 3AA3 NOP ; 3AA4 SJMP 3AC0 ; 3AA6 LCALL 5378 ; 3AA9 INC A ; 3AAA NOP ; 3AAB JZ 3AB9 ; 3AAD LCALL 537E ; 3AB0 INC A ; 3AB1 NOP ; 3AB2 MOV R3,#FF ; 3AB4 LCALL 5159 ; 3AB7 JZ 3AC0 ; 3AB9 MOV R3,#00 ; 3ABB LCALL 53B7 ; 3ABE INC A ; 3ABF NOP ; 3AC0 LCALL 5378 ; 3AC3 INC A ; 3AC4 NOP ; 3AC5 LJMP 561F ; 3AC8 CLR A ; 3AC9 MOV R0,#00 ; 3ACB MOV R1,#04 ; 3ACD LCALL 55DB ; 3AD0 MOV DPTR,#0000 ; 3AD3 LCALL 3B00 ; 3AD6 MOV DPTR,#13F2 ; 3AD9 MOVX A,@DPTR ; 3ADA JNZ 3AE2 ; 3ADC MOV DPTR,#0000 ; 3ADF LCALL 32D6 ; 3AE2 NOP ; 3AE3 MOV DPTR,#0000 ; 3AE6 LCALL 4BE3 ; 3AE9 MOV DPTR,#0000 ; 3AEC LCALL 2360 ; 3AEF MOV DPTR,#0000 ; 3AF2 LCALL 4A43 ; 3AF5 MOV DPTR,#0000 ; 3AF8 LCALL 32B9 ; 3AFB SJMP 3AE2 ; 3AFD LJMP 561F ; 3B00 CLR A ; 3B01 MOV R0,#00 ; 3B03 MOV R1,#04 ; 3B05 LCALL 55DB ; 3B08 MOV DPTR,#0000 ; 3B0B LCALL 00AA ; 3B0E MOV DPTR,#0000 ; 3B11 LCALL 492B ; 3B14 MOV R3,#01 ; 3B16 MOV DPTR,#13F4 ; 3B19 MOV A,R3 ; 3B1A MOVX @DPTR,A ; 3B1B MOV R3,#01 ; 3B1D MOV DPTR,#13F2 ; 3B20 MOV A,R3 ; 3B21 MOVX @DPTR,A ; 3B22 LJMP 561F ; 3B25 MOV A,#02 ; 3B27 MOV R0,#00 ; 3B29 MOV R1,#04 ; 3B2B LCALL 55DB ; 3B2E LCALL 5378 ; 3B31 INC @R1 ; 3B32 NOP ; 3B33 JZ 3B9C ; 3B35 LCALL 5384 ; 3B38 INC A ; 3B39 NOP ; 3B3A MOV DPH,R2 ; 3B3C MOV DPL,R3 ; 3B3E MOVX A,@DPTR ; 3B3F MOV R3,A ; 3B40 MOV R2,#00 ; 3B42 MOV 05,R3 ; 3B44 MOV 04,R2 ; 3B46 MOV R3,#F0 ; 3B48 MOV R2,#00 ; 3B4A LCALL 5325 ; 3B4D MOV 05,R3 ; 3B4F MOV 04,R2 ; 3B51 MOV R3,#90 ; 3B53 MOV R2,#00 ; 3B55 LCALL 50BF ; 3B58 JNZ 3B7F ; 3B5A LCALL 5384 ; 3B5D INC A ; 3B5E NOP ; 3B5F MOV DPH,R2 ; 3B61 MOV DPL,R3 ; 3B63 MOVX A,@DPTR ; 3B64 MOV R3,A ; 3B65 MOV R2,#00 ; 3B67 MOV 05,R3 ; 3B69 MOV 04,R2 ; 3B6B MOV R3,#0F ; 3B6D MOV R2,#00 ; 3B6F LCALL 5325 ; 3B72 MOV 05,R3 ; 3B74 MOV 04,R2 ; 3B76 MOV R3,#09 ; 3B78 MOV R2,#00 ; 3B7A LCALL 50BF ; 3B7D JZ 3B84 ; 3B7F MOV R3,#00 ; 3B81 LJMP 561F ; 3B84 MOV A,#04 ; 3B86 ADD A,R7 ; 3B87 MOV R3,A ; 3B88 CLR A ; 3B89 ADDC A,R6 ; 3B8A MOV R2,A ; 3B8B LCALL 5234 ; 3B8E LJMP 7407 ; 3B91 ADD A,R7 ; 3B92 MOV R3,A ; 3B93 CLR A ; 3B94 ADDC A,R6 ; 3B95 MOV R2,A ; 3B96 LCALL 523A ; 3B99 AJMP 3880 ; 3B9B MOV 7B,C ; 3B9D AJMP 3802 ; 3B9F ANL A,@R0 ; 3BA0 DEC R7 ; 3BA1 MOV A,#02 ; 3BA3 MOV R0,#00 ; 3BA5 MOV R1,#04 ; 3BA7 LCALL 55DB ; 3BAA MOV A,#09 ; 3BAC ADD A,R7 ; 3BAD MOV R3,A ; 3BAE CLR A ; 3BAF ADDC A,R6 ; 3BB0 MOV R2,A ; 3BB1 LCALL 523A ; 3BB4 AJMP 3860 ; 3BB6 JNB 74,3BBD ; 3BB9 ADD A,R7 ; 3BBA MOV R3,A ; 3BBB CLR A ; 3BBC ADDC A,R6 ; 3BBD MOV R2,A ; 3BBE LCALL 5234 ; 3BC1 LJMP 8A83 ; 3BC4 MOV DPL,R3 ; 3BC6 MOVX A,@DPTR ; 3BC7 MOV R3,A ; 3BC8 MOV 05,R3 ; 3BCA MOV A,#06 ; 3BCC ADD A,R7 ; 3BCD MOV R3,A ; 3BCE CLR A ; 3BCF ADDC A,R6 ; 3BD0 MOV R2,A ; 3BD1 LCALL 5234 ; 3BD4 LJMP 8A83 ; 3BD7 MOV DPL,R3 ; 3BD9 MOVX A,@DPTR ; 3BDA MOV R3,A ; 3BDB LCALL 5168 ; 3BDE JZ 3BE5 ; 3BE0 MOV R3,#00 ; 3BE2 LJMP 561F ; 3BE5 SJMP 3BAA ; 3BE7 MOV R3,#01 ; 3BE9 LJMP 561F ; 3BEC MOV A,#02 ; 3BEE MOV R0,#00 ; 3BF0 MOV R1,#04 ; 3BF2 LCALL 55DB ; 3BF5 MOV A,#09 ; 3BF7 ADD A,R7 ; 3BF8 MOV R3,A ; 3BF9 CLR A ; 3BFA ADDC A,R6 ; 3BFB MOV R2,A ; 3BFC LCALL 523A ; 3BFF AJMP 3860 ; 3C01 RL A ; 3C02 MOV A,#06 ; 3C04 ADD A,R7 ; 3C05 MOV R3,A ; 3C06 CLR A ; 3C07 ADDC A,R6 ; 3C08 MOV R2,A ; 3C09 LCALL 5234 ; 3C0C LJMP 8A83 ; 3C0F MOV DPL,R3 ; 3C11 MOVX A,@DPTR ; 3C12 MOV R3,A ; 3C13 MOV 05,R3 ; 3C15 MOV A,#04 ; 3C17 ADD A,R7 ; 3C18 MOV R3,A ; 3C19 CLR A ; 3C1A ADDC A,R6 ; 3C1B MOV R2,A ; 3C1C LCALL 5234 ; 3C1F LJMP 1253 ; 3C22 ADD A,R5 ; 3C23 SJMP 3BF5 ; 3C25 LJMP 561F ; 3C28 MOV A,#02 ; 3C2A MOV R0,#00 ; 3C2C MOV R1,#05 ; 3C2E LCALL 55DB ; 3C31 MOV A,#0A ; 3C33 ADD A,R7 ; 3C34 MOV R3,A ; 3C35 CLR A ; 3C36 ADDC A,R6 ; 3C37 MOV R2,A ; 3C38 LCALL 523A ; 3C3B AJMP 3860 ; 3C3D JC 3C51 ; 3C3F ANL 84,#07 ; 3C42 NOP ; 3C43 MOV DPH,R2 ; 3C45 MOV DPL,R3 ; 3C47 MOVX A,@DPTR ; 3C48 MOV R3,A ; 3C49 LCALL 53B7 ; 3C4C INC A ; 3C4D NOP ; 3C4E LCALL 5384 ; 3C51 INC 00 ; 3C53 MOV DPH,R2 ; 3C55 MOV DPL,R3 ; 3C57 MOVX A,@DPTR ; 3C58 MOV R3,A ; 3C59 MOV 05,R3 ; 3C5B MOV A,#07 ; 3C5D ADD A,R7 ; 3C5E MOV R3,A ; 3C5F CLR A ; 3C60 ADDC A,R6 ; 3C61 MOV R2,A ; 3C62 LCALL 5234 ; 3C65 LJMP 1253 ; 3C68 ADD A,R5 ; 3C69 LCALL 537E ; 3C6C INC A ; 3C6D NOP ; 3C6E MOV A,#05 ; 3C70 ADD A,R7 ; 3C71 MOV R3,A ; 3C72 CLR A ; 3C73 ADDC A,R6 ; 3C74 MOV R2,A ; 3C75 LCALL 5234 ; 3C78 LJMP 1253 ; 3C7B ADD A,R5 ; 3C7C SJMP 3C31 ; 3C7E LJMP 561F ; 3C81 MOV A,#02 ; 3C83 MOV R0,#00 ; 3C85 MOV R1,#04 ; 3C87 LCALL 55DB ; 3C8A LCALL 5378 ; 3C8D INC R1 ; 3C8E NOP ; 3C8F LCALL 537E ; 3C92 INC R1 ; 3C93 NOP ; 3C94 MOV R3,#00 ; 3C96 LCALL 50DA ; 3C99 JZ 3CD9 ; 3C9B LCALL 5384 ; 3C9E INC A ; 3C9F NOP ; 3CA0 MOV DPH,R2 ; 3CA2 MOV DPL,R3 ; 3CA4 MOVX A,@DPTR ; 3CA5 MOV R3,A ; 3CA6 MOV R2,#00 ; 3CA8 LCALL 5652 ; 3CAB LCALL 5384 ; 3CAE INC R0 ; 3CAF NOP ; 3CB0 MOV DPTR,#0004 ; 3CB3 LCALL 0089 ; 3CB6 MOV A,#04 ; 3CB8 ADD A,R7 ; 3CB9 MOV R3,A ; 3CBA CLR A ; 3CBB ADDC A,R6 ; 3CBC MOV R2,A ; 3CBD LCALL 5234 ; 3CC0 LJMP 7406 ; 3CC3 ADD A,R7 ; 3CC4 MOV R3,A ; 3CC5 CLR A ; 3CC6 ADDC A,R6 ; 3CC7 MOV R2,A ; 3CC8 LCALL 5234 ; 3CCB LJMP 7409 ; 3CCE ADD A,R7 ; 3CCF MOV R3,A ; 3CD0 CLR A ; 3CD1 ADDC A,R6 ; 3CD2 MOV R2,A ; 3CD3 LCALL 523A ; 3CD6 AJMP 3880 ; 3CD8 CJNE @R0,#02,3D31 ; 3CDB DEC R7 ; 3CDC MOV A,#02 ; 3CDE MOV R0,#00 ; 3CE0 MOV R1,#04 ; 3CE2 LCALL 55DB ; 3CE5 LCALL 5378 ; 3CE8 INC @R1 ; 3CE9 NOP ; 3CEA LCALL 537E ; 3CED INC @R1 ; 3CEE NOP ; 3CEF MOV R3,#00 ; 3CF1 LCALL 50DA ; 3CF4 JZ 3D20 ; 3CF6 MOV R3,#00 ; 3CF8 MOV R2,#00 ; 3CFA LCALL 5652 ; 3CFD LCALL 5384 ; 3D00 INC @R0 ; 3D01 NOP ; 3D02 MOV DPTR,#0004 ; 3D05 LCALL 0089 ; 3D08 MOV A,#04 ; 3D0A ADD A,R7 ; 3D0B MOV R3,A ; 3D0C CLR A ; 3D0D ADDC A,R6 ; 3D0E MOV R2,A ; 3D0F LCALL 5234 ; 3D12 LJMP 7407 ; 3D15 ADD A,R7 ; 3D16 MOV R3,A ; 3D17 CLR A ; 3D18 ADDC A,R6 ; 3D19 MOV R2,A ; 3D1A LCALL 523A ; 3D1D AJMP 3880 ; 3D1F XCH A,R2 ; 3D20 LJMP 561F ; 3D23 CLR A ; 3D24 MOV R0,#00 ; 3D26 MOV R1,#04 ; 3D28 LCALL 55DB ; 3D2B MOV DPTR,#4101 ; 3D2E MOVX A,@DPTR ; 3D2F MOV R5,A ; 3D30 MOV R3,#41 ; 3D32 LCALL 5159 ; 3D35 JZ 3D46 ; 3D37 MOV DPTR,#0000 ; 3D3A LCALL 2114 ; 3D3D MOV R3,#07 ; 3D3F MOV DPTR,#14B8 ; 3D42 MOV A,R3 ; 3D43 MOVX @DPTR,A ; 3D44 SJMP 3D54 ; 3D46 MOV R3,#06 ; 3D48 MOV DPTR,#1405 ; 3D4B MOV A,R3 ; 3D4C MOVX @DPTR,A ; 3D4D MOV R3,#02 ; 3D4F MOV DPTR,#14B8 ; 3D52 MOV A,R3 ; 3D53 MOVX @DPTR,A ; 3D54 LJMP 561F ; 3D57 CLR A ; 3D58 MOV R0,#00 ; 3D5A MOV R1,#06 ; 3D5C LCALL 55DB ; 3D5F MOV R3,#00 ; 3D61 LCALL 53B7 ; 3D64 INC A ; 3D65 NOP ; 3D66 MOV R3,#00 ; 3D68 LCALL 53B7 ; 3D6B INC 00 ; 3D6D MOV DPTR,#4101 ; 3D70 MOVX A,@DPTR ; 3D71 MOV R5,A ; 3D72 MOV R3,#41 ; 3D74 LCALL 5159 ; 3D77 JNZ 3D85 ; 3D79 MOV DPTR,#4101 ; 3D7C MOVX A,@DPTR ; 3D7D MOV R5,A ; 3D7E MOV R3,#54 ; 3D80 LCALL 5159 ; 3D83 JZ 3D96 ; 3D85 MOV R3,#06 ; 3D87 MOV DPTR,#1405 ; 3D8A MOV A,R3 ; 3D8B MOVX @DPTR,A ; 3D8C MOV R3,#02 ; 3D8E MOV DPTR,#14B8 ; 3D91 MOV A,R3 ; 3D92 MOVX @DPTR,A ; 3D93 LJMP 561F ; 3D96 NOP ; 3D97 LJMP 561F ; 3D9A CLR A ; 3D9B MOV R0,#00 ; 3D9D MOV R1,#41 ; 3D9F LCALL 55DB ; 3DA2 MOV R5,#00 ; 3DA4 MOV R4,#10 ; 3DA6 MOV A,#1B ; 3DA8 ADD A,R7 ; 3DA9 MOV R3,A ; 3DAA CLR A ; 3DAB ADDC A,R6 ; 3DAC MOV R2,A ; 3DAD LCALL 56A2 ; 3DB0 NOP ; 3DB1 LJMP 7B00 ; 3DB4 LCALL 53B7 ; 3DB7 JC 3DB9 ; 3DB9 MOV DPTR,#13F6 ; 3DBC MOVX A,@DPTR ; 3DBD MOV R3,A ; 3DBE LCALL 53B7 ; 3DC1 INC R4 ; 3DC2 NOP ; 3DC3 MOV R3,#00 ; 3DC5 MOV DPTR,#1408 ; 3DC8 MOV A,R3 ; 3DC9 MOVX @DPTR,A ; 3DCA MOV DPTR,#140B ; 3DCD MOV A,R3 ; 3DCE MOVX @DPTR,A ; 3DCF MOV DPTR,#140A ; 3DD2 MOV A,R3 ; 3DD3 MOVX @DPTR,A ; 3DD4 MOV DPTR,#1407 ; 3DD7 MOV A,R3 ; 3DD8 MOVX @DPTR,A ; 3DD9 MOV R3,#08 ; 3DDB MOV DPTR,#14B8 ; 3DDE MOV A,R3 ; 3DDF MOVX @DPTR,A ; 3DE0 MOV R3,#52 ; 3DE2 MOV DPTR,#1405 ; 3DE5 MOV A,R3 ; 3DE6 MOVX @DPTR,A ; 3DE7 MOV R3,#08 ; 3DE9 MOV DPTR,#1406 ; 3DEC MOV A,R3 ; 3DED MOVX @DPTR,A ; 3DEE MOV DPTR,#4101 ; 3DF1 MOVX A,@DPTR ; 3DF2 MOV R5,A ; 3DF3 MOV R3,#54 ; 3DF5 LCALL 5159 ; 3DF8 JZ 3E01 ; 3DFA MOV R3,#09 ; 3DFC MOV DPTR,#1406 ; 3DFF MOV A,R3 ; 3E00 MOVX @DPTR,A ; 3E01 MOV R3,#02 ; 3E03 MOV DPTR,#11C5 ; 3E06 MOV A,R3 ; 3E07 MOVX @DPTR,A ; 3E08 MOV R3,#00 ; 3E0A MOV DPTR,#11C6 ; 3E0D MOV A,R3 ; 3E0E MOVX @DPTR,A ; 3E0F MOV R3,#03 ; 3E11 MOV DPTR,#1409 ; 3E14 MOV A,R3 ; 3E15 MOVX @DPTR,A ; 3E16 MOV R3,#C5 ; 3E18 MOV R2,#11 ; 3E1A MOV DPTR,#0002 ; 3E1D LCALL 32FF ; 3E20 LCALL 53B7 ; 3E23 INC R5 ; 3E24 NOP ; 3E25 LCALL 537E ; 3E28 INC R5 ; 3E29 NOP ; 3E2A MOV R3,#03 ; 3E2C LCALL 5159 ; 3E2F JNZ 3E34 ; 3E31 LJMP 44C3 ; 3E34 MOV DPTR,#4101 ; 3E37 MOVX A,@DPTR ; 3E38 MOV R5,A ; 3E39 MOV R3,#41 ; 3E3B LCALL 5159 ; 3E3E JNZ 3E43 ; 3E40 LJMP 4310 ; 3E43 MOV R3,#20 ; 3E45 MOV R2,#00 ; 3E47 LCALL 5652 ; 3E4A MOV R3,#CC ; 3E4C MOV R2,#11 ; 3E4E LCALL 5652 ; 3E51 MOV A,#22 ; 3E53 ADD A,R7 ; 3E54 MOV R3,A ; 3E55 CLR A ; 3E56 ADDC A,R6 ; 3E57 MOV R2,A ; 3E58 MOV DPTR,#0006 ; 3E5B LCALL 3BEC ; 3E5E MOV R3,#07 ; 3E60 MOV DPTR,#11C5 ; 3E63 MOV A,R3 ; 3E64 MOVX @DPTR,A ; 3E65 MOV R3,#01 ; 3E67 MOV DPTR,#11C6 ; 3E6A MOV A,R3 ; 3E6B MOVX @DPTR,A ; 3E6C MOV R3,#00 ; 3E6E MOV DPTR,#11C7 ; 3E71 MOV A,R3 ; 3E72 MOVX @DPTR,A ; 3E73 MOV R3,#B0 ; 3E75 MOV DPTR,#11C8 ; 3E78 MOV A,R3 ; 3E79 MOVX @DPTR,A ; 3E7A MOV R3,#00 ; 3E7C MOV DPTR,#11C9 ; 3E7F MOV A,R3 ; 3E80 MOVX @DPTR,A ; 3E81 MOV R3,#00 ; 3E83 MOV DPTR,#11CA ; 3E86 MOV A,R3 ; 3E87 MOVX @DPTR,A ; 3E88 MOV R3,#20 ; 3E8A MOV DPTR,#11CB ; 3E8D MOV A,R3 ; 3E8E MOVX @DPTR,A ; 3E8F MOV R3,#C5 ; 3E91 MOV R2,#11 ; 3E93 MOV DPTR,#0002 ; 3E96 LCALL 32FF ; 3E99 LCALL 53B7 ; 3E9C DEC R5 ; 3E9D NOP ; 3E9E MOV R3,#20 ; 3EA0 MOV R2,#00 ; 3EA2 LCALL 5652 ; 3EA5 MOV A,#20 ; 3EA7 ADD A,R7 ; 3EA8 MOV R3,A ; 3EA9 CLR A ; 3EAA ADDC A,R6 ; 3EAB MOV R2,A ; 3EAC LCALL 5652 ; 3EAF MOV R3,#CC ; 3EB1 MOV R2,#11 ; 3EB3 MOV DPTR,#0006 ; 3EB6 LCALL 3BA1 ; 3EB9 LCALL 53B7 ; 3EBC DEC R5 ; 3EBD NOP ; 3EBE LCALL 5378 ; 3EC1 DEC R5 ; 3EC2 NOP ; 3EC3 JNZ 3F05 ; 3EC5 MOV R3,#07 ; 3EC7 MOV DPTR,#11C5 ; 3ECA MOV A,R3 ; 3ECB MOVX @DPTR,A ; 3ECC MOV R3,#01 ; 3ECE MOV DPTR,#11C6 ; 3ED1 MOV A,R3 ; 3ED2 MOVX @DPTR,A ; 3ED3 MOV R3,#00 ; 3ED5 MOV DPTR,#11C7 ; 3ED8 MOV A,R3 ; 3ED9 MOVX @DPTR,A ; 3EDA MOV R3,#B0 ; 3EDC MOV DPTR,#11C8 ; 3EDF MOV A,R3 ; 3EE0 MOVX @DPTR,A ; 3EE1 MOV R3,#00 ; 3EE3 MOV DPTR,#11C9 ; 3EE6 MOV A,R3 ; 3EE7 MOVX @DPTR,A ; 3EE8 MOV R3,#00 ; 3EEA MOV DPTR,#11CA ; 3EED MOV A,R3 ; 3EEE MOVX @DPTR,A ; 3EEF MOV R3,#20 ; 3EF1 MOV DPTR,#11CB ; 3EF4 MOV A,R3 ; 3EF5 MOVX @DPTR,A ; 3EF6 MOV R3,#C5 ; 3EF8 MOV R2,#11 ; 3EFA MOV DPTR,#0002 ; 3EFD LCALL 32FF ; 3F00 LCALL 53B7 ; 3F03 DEC R5 ; 3F04 NOP ; 3F05 MOV R3,#20 ; 3F07 MOV R2,#00 ; 3F09 LCALL 5652 ; 3F0C MOV R3,#04 ; 3F0E MOV R2,#41 ; 3F10 LCALL 5652 ; 3F13 MOV R3,#CC ; 3F15 MOV R2,#11 ; 3F17 MOV DPTR,#0006 ; 3F1A LCALL 3BA1 ; 3F1D LCALL 53B7 ; 3F20 INC R5 ; 3F21 NOP ; 3F22 LCALL 5378 ; 3F25 INC R5 ; 3F26 NOP ; 3F27 JNZ 3F3F ; 3F29 MOV R3,#04 ; 3F2B MOV DPTR,#140A ; 3F2E MOV A,R3 ; 3F2F MOVX @DPTR,A ; 3F30 MOV DPTR,#1407 ; 3F33 MOV A,R3 ; 3F34 MOVX @DPTR,A ; 3F35 MOV R3,#00 ; 3F37 MOV DPTR,#140B ; 3F3A MOV A,R3 ; 3F3B MOVX @DPTR,A ; 3F3C LJMP 561F ; 3F3F LCALL 537E ; 3F42 INC R4 ; 3F43 NOP ; 3F44 MOV DPTR,#4124 ; 3F47 MOVX A,@DPTR ; 3F48 MOV R3,A ; 3F49 LCALL 510C ; 3F4C JZ 3F52 ; 3F4E MOV R3,#00 ; 3F50 SJMP 3F54 ; 3F52 MOV R3,#01 ; 3F54 LCALL 53B7 ; 3F57 INC 00 ; 3F59 LCALL 537E ; 3F5C INC R4 ; 3F5D NOP ; 3F5E MOV DPTR,#4124 ; 3F61 MOVX A,@DPTR ; 3F62 MOV R3,A ; 3F63 LCALL 5159 ; 3F66 JNZ 3F86 ; 3F68 MOV DPTR,#4124 ; 3F6B MOVX A,@DPTR ; 3F6C MOV R5,A ; 3F6D MOV R4,#00 ; 3F6F MOV R3,#01 ; 3F71 MOV R2,#00 ; 3F73 LCALL 53EA ; 3F76 MOV 05,R3 ; 3F78 MOV 04,R2 ; 3F7A LCALL 5378 ; 3F7D INC R4 ; 3F7E NOP ; 3F7F MOV R2,#00 ; 3F81 LCALL 515D ; 3F84 JZ 3F8F ; 3F86 MOV R3,#01 ; 3F88 LCALL 53B7 ; 3F8B INC @R0 ; 3F8C NOP ; 3F8D SJMP 3F96 ; 3F8F MOV R3,#00 ; 3F91 LCALL 53B7 ; 3F94 INC @R0 ; 3F95 NOP ; 3F96 MOV DPTR,#4124 ; 3F99 MOVX A,@DPTR ; 3F9A MOV R5,A ; 3F9B MOV R4,#00 ; 3F9D MOV R3,#02 ; 3F9F MOV R2,#00 ; 3FA1 LCALL 53EA ; 3FA4 MOV 05,R3 ; 3FA6 MOV 04,R2 ; 3FA8 LCALL 5378 ; 3FAB INC R4 ; 3FAC NOP ; 3FAD MOV R2,#00 ; 3FAF LCALL 515D ; 3FB2 JNZ 3FB7 ; 3FB4 LJMP 4067 ; 3FB7 MOV DPTR,#4125 ; 3FBA MOVX A,@DPTR ; 3FBB JNZ 3FE0 ; 3FBD MOV DPTR,#4126 ; 3FC0 MOVX A,@DPTR ; 3FC1 JNZ 3FE0 ; 3FC3 MOV DPTR,#4127 ; 3FC6 MOVX A,@DPTR ; 3FC7 JNZ 3FE0 ; 3FC9 MOV DPTR,#4128 ; 3FCC MOVX A,@DPTR ; 3FCD JNZ 3FE0 ; 3FCF MOV DPTR,#4129 ; 3FD2 MOVX A,@DPTR ; 3FD3 JNZ 3FE0 ; 3FD5 MOV R3,#25 ; 3FD7 MOV R2,#41 ; 3FD9 LCALL 53BD ; 3FDC JBC 00,3F5F ; 3FDF RETI ; 3FE0 MOV DPTR,#412B ; 3FE3 MOVX A,@DPTR ; 3FE4 JNZ 6009 ; 3FE6 MOV DPTR,#412C ; 3FE9 MOVX A,@DPTR ; 3FEA JNZ 6009 ; 3FEC MOV DPTR,#412D ; 3FEF MOVX A,@DPTR ; 3FF0 JNZ 6009 ; 3FF2 MOV DPTR,#412E ; 3FF5 MOVX A,@DPTR ; 3FF6 JNZ 6009 ; 3FF8 MOV DPTR,#412F ; 3FFB MOVX A,@DPTR ; 3FFC JNZ 6009 ; 3FFE MOV R3,#2B ; 4000 MOV R2,#41 ; 4002 LCALL 53BD ; 4005 JBC 00,3F88 ; 4008 INC R1 ; 4009 MOV R3,#31 ; 400B MOV R2,#41 ; 400D LCALL 53BD ; 4010 JBC 00,408E ; 4013 AJMP 407A ; 4015 NOP ; 4016 LCALL 5652 ; 4019 LCALL 5384 ; 401C LCALL 0012 ; 401F ANL A,@R0 ; 4020 ANL 7B,A ; 4022 INC 7A ; 4024 AJMP 4290 ; 4026 NOP ; 4027 INC @R0 ; 4028 LCALL 3C81 ; 402B MOV R3,#04 ; 402D MOV R2,#00 ; 402F LCALL 5652 ; 4032 LCALL 5388 ; 4035 LCALL 007B ; 4038 AJMP 407A ; 403A NOP ; 403B LCALL 53EA ; 403E LCALL 5652 ; 4041 MOV R3,#08 ; 4043 MOV R2,#41 ; 4045 MOV DPTR,#0006 ; 4048 LCALL 3C81 ; 404B MOV DPTR,#4124 ; 404E MOVX A,@DPTR ; 404F MOV R3,A ; 4050 MOV R2,#00 ; 4052 LCALL 5652 ; 4055 LCALL 5388 ; 4058 LCALL 007B ; 405B INC 7A ; 405D NOP ; 405E LCALL 53EA ; 4061 MOV DPTR,#0004 ; 4064 LCALL 0089 ; 4067 MOV R3,#04 ; 4069 MOV DPTR,#1409 ; 406C MOV A,R3 ; 406D MOVX @DPTR,A ; 406E MOV DPTR,#4102 ; 4071 MOVX A,@DPTR ; 4072 JNZ 408A ; 4074 MOV DPTR,#4103 ; 4077 MOVX A,@DPTR ; 4078 JNZ 408A ; 407A MOV R3,#00 ; 407C LCALL 53B7 ; 407F INC R6 ; 4080 NOP ; 4081 MOV R3,#84 ; 4083 LCALL 53B7 ; 4086 INC R5 ; 4087 NOP ; 4088 SJMP 4091 ; 408A MOV R3,#01 ; 408C LCALL 53B7 ; 408F INC R6 ; 4090 NOP ; 4091 LCALL 5378 ; 4094 INC R4 ; 4095 NOP ; 4096 JNZ 409B ; 4098 LJMP 4189 ; 409B LCALL 537E ; 409E INC R6 ; 409F NOP ; 40A0 MOV R3,#01 ; 40A2 LCALL 5159 ; 40A5 JNZ 40AA ; 40A7 LJMP 4189 ; 40AA MOV DPTR,#4102 ; 40AD MOVX A,@DPTR ; 40AE MOV R3,A ; 40AF LCALL 53B7 ; 40B2 INC A ; 40B3 NOP ; 40B4 MOV A,#04 ; 40B6 ADD A,R7 ; 40B7 MOV R3,A ; 40B8 CLR A ; 40B9 ADDC A,R6 ; 40BA MOV R2,A ; 40BB MOV DPTR,#0002 ; 40BE LCALL 39E2 ; 40C1 LCALL 53B7 ; 40C4 INC R5 ; 40C5 NOP ; 40C6 LCALL 537E ; 40C9 INC R5 ; 40CA NOP ; 40CB MOV R3,#FF ; 40CD LCALL 5159 ; 40D0 JZ 40E0 ; 40D2 MOV R3,#40 ; 40D4 MOV DPTR,#1407 ; 40D7 MOV A,R3 ; 40D8 MOVX @DPTR,A ; 40D9 MOV R3,#00 ; 40DB LCALL 53B7 ; 40DE INC R5 ; 40DF NOP ; 40E0 LCALL 5378 ; 40E3 INC R5 ; 40E4 NOP ; 40E5 JZ 40EA ; 40E7 LJMP 417F ; 40EA LCALL 5378 ; 40ED INC 00 ; 40EF JNZ 4117 ; 40F1 LCALL 5378 ; 40F4 INC R4 ; 40F5 NOP ; 40F6 JNZ 4117 ; 40F8 LCALL 5378 ; 40FB INC @R0 ; 40FC NOP ; 40FD JNZ 4117 ; 40FF MOV R3,#02 ; 4101 MOV DPTR,#11C5 ; 4104 MOV A,R3 ; 4105 MOVX @DPTR,A ; 4106 MOV R3,#03 ; 4108 MOV DPTR,#11C6 ; 410B MOV A,R3 ; 410C MOVX @DPTR,A ; 410D MOV R3,#C5 ; 410F MOV R2,#11 ; 4111 MOV DPTR,#0002 ; 4114 LCALL 32FF ; 4117 MOV A,#0C ; 4119 ADD A,R7 ; 411A MOV R3,A ; 411B CLR A ; 411C ADDC A,R6 ; 411D MOV R2,A ; 411E LCALL 523A ; 4121 AJMP 4090 ; 4123 DEC A ; 4124 INC R0 ; 4125 MOVX A,@DPTR ; 4126 INC A ; 4127 MOVX @DPTR,A ; 4128 MOV DPTR,#4124 ; 412B MOVX A,@DPTR ; 412C MOV R5,A ; 412D MOV R4,#00 ; 412F MOV R3,#FF ; 4131 MOV R2,#FF ; 4133 LCALL 53EA ; 4136 LCALL 5652 ; 4139 MOV R3,#24 ; 413B MOV R2,#41 ; 413D MOV DPTR,#0004 ; 4140 LCALL 0089 ; 4143 MOV A,#04 ; 4145 ADD A,R7 ; 4146 MOV R3,A ; 4147 CLR A ; 4148 ADDC A,R6 ; 4149 MOV R2,A ; 414A LCALL 5234 ; 414D AJMP 4074 ; 414F INC A ; 4150 ADD A,R7 ; 4151 MOV R3,A ; 4152 CLR A ; 4153 ADDC A,R6 ; 4154 MOV R2,A ; 4155 MOV DPTR,#0002 ; 4158 LCALL 2680 ; 415B LCALL 5378 ; 415E INC A ; 415F NOP ; 4160 JNZ 4169 ; 4162 MOV R3,#00 ; 4164 LCALL 53B7 ; 4167 INC R6 ; 4168 NOP ; 4169 LCALL 5378 ; 416C INC A ; 416D NOP ; 416E MOV R2,#00 ; 4170 LCALL 5652 ; 4173 MOV R3,#02 ; 4175 MOV R2,#41 ; 4177 MOV DPTR,#0004 ; 417A LCALL 0089 ; 417D SJMP 4186 ; 417F MOV R3,#00 ; 4181 LCALL 53B7 ; 4184 INC R6 ; 4185 NOP ; 4186 LJMP 4091 ; 4189 MOV R3,#07 ; 418B MOV DPTR,#11C5 ; 418E MOV A,R3 ; 418F MOVX @DPTR,A ; 4190 MOV R3,#01 ; 4192 MOV DPTR,#11C6 ; 4195 MOV A,R3 ; 4196 MOVX @DPTR,A ; 4197 MOV R3,#00 ; 4199 MOV DPTR,#11C7 ; 419C MOV A,R3 ; 419D MOVX @DPTR,A ; 419E MOV R3,#B0 ; 41A0 MOV DPTR,#11C8 ; 41A3 MOV A,R3 ; 41A4 MOVX @DPTR,A ; 41A5 MOV R3,#00 ; 41A7 MOV DPTR,#11C9 ; 41AA MOV A,R3 ; 41AB MOVX @DPTR,A ; 41AC MOV R3,#00 ; 41AE MOV DPTR,#11CA ; 41B1 MOV A,R3 ; 41B2 MOVX @DPTR,A ; 41B3 MOV R3,#20 ; 41B5 MOV DPTR,#11CB ; 41B8 MOV A,R3 ; 41B9 MOVX @DPTR,A ; 41BA MOV R3,#C5 ; 41BC MOV R2,#11 ; 41BE MOV DPTR,#0002 ; 41C1 LCALL 32FF ; 41C4 LCALL 53B7 ; 41C7 DEC R5 ; 41C8 NOP ; 41C9 LCALL 5378 ; 41CC DEC R5 ; 41CD NOP ; 41CE JZ 41DC ; 41D0 LCALL 5378 ; 41D3 DEC R5 ; 41D4 NOP ; 41D5 LCALL 53B7 ; 41D8 INC R5 ; 41D9 NOP ; 41DA SJMP 421B ; 41DC MOV R3,#20 ; 41DE MOV R2,#00 ; 41E0 LCALL 5652 ; 41E3 MOV R3,#04 ; 41E5 MOV R2,#41 ; 41E7 LCALL 5652 ; 41EA MOV R3,#CC ; 41EC MOV R2,#11 ; 41EE MOV DPTR,#0006 ; 41F1 LCALL 3BA1 ; 41F4 LCALL 53B7 ; 41F7 DEC R5 ; 41F8 NOP ; 41F9 LCALL 5378 ; 41FC DEC R5 ; 41FD NOP ; 41FE JNZ 421B ; 4200 MOV R3,#04 ; 4202 MOV DPTR,#140A ; 4205 MOV A,R3 ; 4206 MOVX @DPTR,A ; 4207 MOV DPTR,#1407 ; 420A MOV A,R3 ; 420B MOVX @DPTR,A ; 420C MOV R3,#00 ; 420E MOV DPTR,#140B ; 4211 MOV A,R3 ; 4212 MOVX @DPTR,A ; 4213 MOV DPTR,#1408 ; 4216 MOV A,R3 ; 4217 MOVX @DPTR,A ; 4218 LJMP 561F ; 421B LCALL 5378 ; 421E INC R5 ; 421F NOP ; 4220 JZ 4225 ; 4222 LJMP 42D5 ; 4225 LCALL 537E ; 4228 INC @R0 ; 4229 NOP ; 422A MOV R3,#01 ; 422C LCALL 5159 ; 422F JNZ 4234 ; 4231 LJMP 42D5 ; 4234 MOV R3,#08 ; 4236 MOV DPTR,#11C5 ; 4239 MOV A,R3 ; 423A MOVX @DPTR,A ; 423B MOV R3,#02 ; 423D MOV DPTR,#11C6 ; 4240 MOV A,R3 ; 4241 MOVX @DPTR,A ; 4242 MOV R3,#00 ; 4244 MOV DPTR,#11C7 ; 4247 MOV A,R3 ; 4248 MOVX @DPTR,A ; 4249 MOV R3,#D0 ; 424B MOV DPTR,#11C8 ; 424E MOV A,R3 ; 424F MOVX @DPTR,A ; 4250 MOV R3,#00 ; 4252 MOV DPTR,#11C9 ; 4255 MOV A,R3 ; 4256 MOVX @DPTR,A ; 4257 MOV R3,#1F ; 4259 MOV DPTR,#11CA ; 425C MOV A,R3 ; 425D MOVX @DPTR,A ; 425E MOV R3,#01 ; 4260 MOV DPTR,#11CB ; 4263 MOV A,R3 ; 4264 MOVX @DPTR,A ; 4265 MOV R3,#FF ; 4267 MOV DPTR,#11CC ; 426A MOV A,R3 ; 426B MOVX @DPTR,A ; 426C MOV R3,#C5 ; 426E MOV R2,#11 ; 4270 MOV DPTR,#0002 ; 4273 LCALL 32FF ; 4276 MOV R3,#07 ; 4278 MOV DPTR,#11C5 ; 427B MOV A,R3 ; 427C MOVX @DPTR,A ; 427D MOV R3,#01 ; 427F MOV DPTR,#11C6 ; 4282 MOV A,R3 ; 4283 MOVX @DPTR,A ; 4284 MOV R3,#00 ; 4286 MOV DPTR,#11C7 ; 4289 MOV A,R3 ; 428A MOVX @DPTR,A ; 428B MOV R3,#B0 ; 428D MOV DPTR,#11C8 ; 4290 MOV A,R3 ; 4291 MOVX @DPTR,A ; 4292 MOV R3,#00 ; 4294 MOV DPTR,#11C9 ; 4297 MOV A,R3 ; 4298 MOVX @DPTR,A ; 4299 MOV R3,#00 ; 429B MOV DPTR,#11CA ; 429E MOV A,R3 ; 429F MOVX @DPTR,A ; 42A0 MOV R3,#20 ; 42A2 MOV DPTR,#11CB ; 42A5 MOV A,R3 ; 42A6 MOVX @DPTR,A ; 42A7 MOV R3,#C5 ; 42A9 MOV R2,#11 ; 42AB MOV DPTR,#0002 ; 42AE LCALL 32FF ; 42B1 LCALL 53B7 ; 42B4 INC R5 ; 42B5 NOP ; 42B6 LCALL 5378 ; 42B9 INC R5 ; 42BA NOP ; 42BB JNZ 42D5 ; 42BD MOV R3,#20 ; 42BF MOV R2,#00 ; 42C1 LCALL 5652 ; 42C4 MOV R3,#04 ; 42C6 MOV R2,#41 ; 42C8 LCALL 5652 ; 42CB MOV R3,#CC ; 42CD MOV R2,#11 ; 42CF MOV DPTR,#0006 ; 42D2 LCALL 3C81 ; 42D5 LCALL 5378 ; 42D8 INC R5 ; 42D9 NOP ; 42DA JNZ 430D ; 42DC LCALL 537E ; 42DF INC 00 ; 42E1 MOV R3,#01 ; 42E3 LCALL 5159 ; 42E6 JZ 430D ; 42E8 MOV R5,#02 ; 42EA MOV R3,#07 ; 42EC MOV R2,#14 ; 42EE MOV DPH,R2 ; 42F0 MOV DPL,R3 ; 42F2 MOVX A,@DPTR ; 42F3 ORL A,R5 ; 42F4 MOVX @DPTR,A ; 42F5 MOV R3,A ; 42F6 MOV DPTR,#0000 ; 42F9 LCALL 3A42 ; 42FC MOV A,R3 ; 42FD JNZ 430D ; 42FF MOV R5,#10 ; 4301 MOV R3,#07 ; 4303 MOV R2,#14 ; 4305 MOV DPH,R2 ; 4307 MOV DPL,R3 ; 4309 MOVX A,@DPTR ; 430A ORL A,R5 ; 430B MOVX @DPTR,A ; 430C MOV R3,A ; 430D LJMP 44C3 ; 4310 MOV DPTR,#4101 ; 4313 MOVX A,@DPTR ; 4314 MOV R5,A ; 4315 MOV R3,#54 ; 4317 LCALL 5159 ; 431A JNZ 431F ; 431C LJMP 44C3 ; 431F MOV R3,#20 ; 4321 MOV R2,#00 ; 4323 LCALL 5652 ; 4326 MOV R3,#04 ; 4328 MOV R2,#41 ; 432A LCALL 5652 ; 432D MOV R3,#CC ; 432F MOV R2,#11 ; 4331 MOV DPTR,#0006 ; 4334 LCALL 3BA1 ; 4337 LCALL 53B7 ; 433A INC R5 ; 433B NOP ; 433C LCALL 5378 ; 433F INC R5 ; 4340 NOP ; 4341 JNZ 4359 ; 4343 MOV R3,#04 ; 4345 MOV DPTR,#140A ; 4348 MOV A,R3 ; 4349 MOVX @DPTR,A ; 434A MOV DPTR,#1407 ; 434D MOV A,R3 ; 434E MOVX @DPTR,A ; 434F MOV R3,#00 ; 4351 MOV DPTR,#140B ; 4354 MOV A,R3 ; 4355 MOVX @DPTR,A ; 4356 LJMP 561F ; 4359 MOV DPTR,#4124 ; 435C MOVX A,@DPTR ; 435D MOV R5,A ; 435E MOV R4,#00 ; 4360 MOV R3,#02 ; 4362 MOV R2,#00 ; 4364 LCALL 53EA ; 4367 MOV 05,R3 ; 4369 MOV 04,R2 ; 436B LCALL 5378 ; 436E INC R4 ; 436F NOP ; 4370 MOV R2,#00 ; 4372 LCALL 515D ; 4375 JZ 43DA ; 4377 MOV DPTR,#4137 ; 437A MOVX A,@DPTR ; 437B JNZ 4394 ; 437D MOV DPTR,#4138 ; 4380 MOVX A,@DPTR ; 4381 JNZ 4394 ; 4383 MOV DPTR,#4139 ; 4386 MOVX A,@DPTR ; 4387 JNZ 4394 ; 4389 MOV R3,#37 ; 438B MOV R2,#41 ; 438D LCALL 53BD ; 4390 JBC 00,4313 ; 4393 ADD A,@R0 ; 4394 MOV DPTR,#413A ; 4397 MOVX A,@DPTR ; 4398 JNZ 43B1 ; 439A MOV DPTR,#413B ; 439D MOVX A,@DPTR ; 439E JNZ 43B1 ; 43A0 MOV DPTR,#413C ; 43A3 MOVX A,@DPTR ; 43A4 JNZ 43B1 ; 43A6 MOV R3,#3A ; 43A8 MOV R2,#41 ; 43AA LCALL 53BD ; 43AD JBC 00,4330 ; 43B0 INC R1 ; 43B1 MOV R3,#3D ; 43B3 MOV R2,#41 ; 43B5 LCALL 53BD ; 43B8 JBC 00,4436 ; 43BB RR A ; 43BC MOV R2,#00 ; 43BE LCALL 5652 ; 43C1 LCALL 5384 ; 43C4 LCALL 0012 ; 43C7 ANL A,@R0 ; 43C8 ANL 7B,A ; 43CA INC R1 ; 43CB MOV R2,#41 ; 43CD MOV DPTR,#0006 ; 43D0 LCALL 3C81 ; 43D3 MOV R3,#01 ; 43D5 LCALL 53B7 ; 43D8 JC 43DA ; 43DA LCALL 537E ; 43DD INC R4 ; 43DE NOP ; 43DF MOV DPTR,#4124 ; 43E2 MOVX A,@DPTR ; 43E3 MOV R3,A ; 43E4 LCALL 50DA ; 43E7 JZ 43F3 ; 43E9 MOV DPTR,#4124 ; 43EC MOVX A,@DPTR ; 43ED MOV R3,A ; 43EE LCALL 53B7 ; 43F1 INC R4 ; 43F2 NOP ; 43F3 MOV R3,#04 ; 43F5 MOV DPTR,#1409 ; 43F8 MOV A,R3 ; 43F9 MOVX @DPTR,A ; 43FA MOV DPTR,#11D5 ; 43FD MOVX A,@DPTR ; 43FE MOV R5,A ; 43FF MOV R3,#3F ; 4401 MOV A,R3 ; 4402 ANL A,R5 ; 4403 MOV R3,A ; 4404 MOV 05,R3 ; 4406 MOV R3,#0A ; 4408 MOV A,R5 ; 4409 MOV B,R3 ; 440B MUL AB ; 440C MOV R3,A ; 440D MOV 05,R3 ; 440F MOV DPTR,#4124 ; 4412 MOVX A,@DPTR ; 4413 MOV R3,A ; 4414 CLR C ; 4415 MOV A,R5 ; 4416 SUBB A,R3 ; 4417 MOV R3,A ; 4418 MOV A,R3 ; 4419 CPL A ; 441A INC A ; 441B MOV R3,A ; 441C MOV 05,R3 ; 441E MOV R3,#FF ; 4420 MOV A,R3 ; 4421 ADD A,R5 ; 4422 MOV R3,A ; 4423 MOV 05,R3 ; 4425 LCALL 5378 ; 4428 INC R4 ; 4429 NOP ; 442A CLR C ; 442B MOV A,R5 ; 442C SUBB A,R3 ; 442D MOV R3,A ; 442E MOV 05,R3 ; 4430 MOV R3,#01 ; 4432 MOV A,R3 ; 4433 ADD A,R5 ; 4434 MOV R3,A ; 4435 LCALL 53B7 ; 4438 ADDC A,R7 ; 4439 NOP ; 443A LCALL 5378 ; 443D ADDC A,R7 ; 443E NOP ; 443F MOV R2,#00 ; 4441 MOV DPTR,#0002 ; 4444 LCALL 37ED ; 4447 LCALL 53B7 ; 444A INC R5 ; 444B NOP ; 444C LCALL 537E ; 444F INC R5 ; 4450 NOP ; 4451 MOV R3,#FF ; 4453 LCALL 5159 ; 4456 JZ 4466 ; 4458 MOV R3,#40 ; 445A MOV DPTR,#1407 ; 445D MOV A,R3 ; 445E MOVX @DPTR,A ; 445F MOV R3,#00 ; 4461 LCALL 53B7 ; 4464 INC R5 ; 4465 NOP ; 4466 LCALL 5378 ; 4469 INC R5 ; 446A NOP ; 446B JNZ 44C3 ; 446D LCALL 5378 ; 4470 INC R4 ; 4471 NOP ; 4472 MOV DPTR,#1408 ; 4475 MOV A,R3 ; 4476 MOVX @DPTR,A ; 4477 MOV DPTR,#4124 ; 447A MOVX A,@DPTR ; 447B MOV R5,A ; 447C MOV R4,#00 ; 447E MOV DPTR,#1408 ; 4481 MOVX A,@DPTR ; 4482 MOV R3,A ; 4483 MOV R2,#00 ; 4485 LCALL 53F2 ; 4488 LCALL 5652 ; 448B MOV R3,#24 ; 448D MOV R2,#41 ; 448F MOV DPTR,#0004 ; 4492 LCALL 0089 ; 4495 LCALL 537E ; 4498 JC 449A ; 449A MOV R3,#01 ; 449C LCALL 5159 ; 449F JZ 44AF ; 44A1 MOV R5,#02 ; 44A3 MOV R3,#08 ; 44A5 MOV R2,#14 ; 44A7 MOV DPH,R2 ; 44A9 MOV DPL,R3 ; 44AB MOVX A,@DPTR ; 44AC ADD A,R5 ; 44AD MOVX @DPTR,A ; 44AE MOV R3,A ; 44AF MOV DPTR,#4124 ; 44B2 MOVX A,@DPTR ; 44B3 JNZ 44C3 ; 44B5 MOV R5,#02 ; 44B7 MOV R3,#07 ; 44B9 MOV R2,#14 ; 44BB MOV DPH,R2 ; 44BD MOV DPL,R3 ; 44BF MOVX A,@DPTR ; 44C0 ORL A,R5 ; 44C1 MOVX @DPTR,A ; 44C2 MOV R3,A ; 44C3 LCALL 5378 ; 44C6 INC R5 ; 44C7 NOP ; 44C8 JZ 4535 ; 44CA LCALL 5378 ; 44CD INC R5 ; 44CE NOP ; 44CF LCALL 5516 ; 44D2 ORL A,#FA ; 44D4 DIV AB ; 44D5 ORL A,#E8 ; 44D7 MOV C,44 ; 44D9 ACALL 47CC ; 44DB ORL A,18 ; 44DD MOV @R1,A ; 44DE ORL A,18 ; 44E0 MOV R3,A ; 44E1 ORL A,21 ; 44E3 MOV R7,A ; 44E4 NOP ; 44E5 NOP ; 44E6 ORL A,2A ; 44E8 MOV R3,#20 ; 44EA MOV DPTR,#140B ; 44ED MOV A,R3 ; 44EE MOVX @DPTR,A ; 44EF SJMP 4533 ; 44F1 MOV R3,#80 ; 44F3 MOV DPTR,#140B ; 44F6 MOV A,R3 ; 44F7 MOVX @DPTR,A ; 44F8 SJMP 4533 ; 44FA MOV DPTR,#1409 ; 44FD MOVX A,@DPTR ; 44FE MOV R5,A ; 44FF MOV R3,#04 ; 4501 LCALL 5159 ; 4504 JZ 450F ; 4506 MOV R3,#80 ; 4508 MOV DPTR,#1407 ; 450B MOV A,R3 ; 450C MOVX @DPTR,A ; 450D SJMP 4516 ; 450F MOV R3,#20 ; 4511 MOV DPTR,#140B ; 4514 MOV A,R3 ; 4515 MOVX @DPTR,A ; 4516 SJMP 4533 ; 4518 MOV R3,#20 ; 451A MOV DPTR,#1407 ; 451D MOV A,R3 ; 451E MOVX @DPTR,A ; 451F SJMP 4533 ; 4521 MOV R3,#40 ; 4523 MOV DPTR,#1407 ; 4526 MOV A,R3 ; 4527 MOVX @DPTR,A ; 4528 SJMP 4533 ; 452A MOV R3,#04 ; 452C MOV DPTR,#1407 ; 452F MOV A,R3 ; 4530 MOVX @DPTR,A ; 4531 SJMP 4533 ; 4533 SJMP 453C ; 4535 MOV R3,#00 ; 4537 MOV DPTR,#1409 ; 453A MOV A,R3 ; 453B MOVX @DPTR,A ; 453C MOV DPTR,#1407 ; 453F MOVX A,@DPTR ; 4540 MOV R3,A ; 4541 MOV DPTR,#140A ; 4544 MOV A,R3 ; 4545 MOVX @DPTR,A ; 4546 NOP ; 4547 LJMP 561F ; 454A CLR A ; 454B MOV R0,#00 ; 454D MOV R1,#05 ; 454F LCALL 55DB ; 4552 MOV R3,#00 ; 4554 MOV DPTR,#1405 ; 4557 MOV A,R3 ; 4558 MOVX @DPTR,A ; 4559 MOV DPTR,#13F6 ; 455C MOVX A,@DPTR ; 455D MOV R5,A ; 455E MOV R4,#00 ; 4560 MOV R3,#02 ; 4562 MOV R2,#00 ; 4564 LCALL 5325 ; 4567 JNZ 456C ; 4569 LJMP 4601 ; 456C CLR P3.1 ; 456E MOV R3,#07 ; 4570 MOV P1,R3 ; (P1)=0000 0111 4572 MOV R5,#04 ; 4574 MOV R4,#00 ; 4576 MOV R3,#C5 ; 4578 MOV DPH,R4 ; 457A MOV DPL,R5 ; 457C MOV A,R3 ; 457D MOVX @DPTR,A ; 457E MOV R3,#00 ; 4580 LCALL 53B7 ; 4583 INC A ; 4584 NOP ; 4585 LCALL 537E ; 4588 INC A ; 4589 NOP ; 458A MOV R3,#64 ; 458C LCALL 510C ; 458F JZ 459E ; 4591 MOV A,#04 ; 4593 ADD A,R7 ; 4594 MOV R3,A ; 4595 CLR A ; 4596 ADDC A,R6 ; 4597 MOV R2,A ; 4598 LCALL 5234 ; 459B AJMP 4080 ; 459D MOV A,@R1 ; 459E MOV R5,#06 ; 45A0 MOV R4,#00 ; 45A2 MOV R3,#30 ; 45A4 MOV DPH,R4 ; 45A6 MOV DPL,R5 ; 45A8 MOV A,R3 ; 45A9 MOVX @DPTR,A ; 45AA MOV R3,#00 ; 45AC LCALL 53B7 ; 45AF INC A ; 45B0 NOP ; 45B1 LCALL 537E ; 45B4 INC A ; 45B5 NOP ; 45B6 MOV R3,#64 ; 45B8 LCALL 510C ; 45BB JZ 45CA ; 45BD MOV A,#04 ; 45BF ADD A,R7 ; 45C0 MOV R3,A ; 45C1 CLR A ; 45C2 ADDC A,R6 ; 45C3 MOV R2,A ; 45C4 LCALL 5234 ; 45C7 AJMP 4080 ; 45C9 MOV A,@R1 ; 45CA MOV R3,#10 ; 45CC MOV R2,#00 ; 45CE MOV DPH,R2 ; 45D0 MOV DPL,R3 ; 45D2 MOVX A,@DPTR ; 45D3 JZ 45D9 ; 45D5 MOV R3,#00 ; 45D7 SJMP 45DB ; 45D9 MOV R3,#80 ; 45DB MOV DPTR,#1405 ; 45DE MOV A,R3 ; 45DF MOVX @DPTR,A ; 45E0 MOV R3,P3 ; 45E2 MOV R2,#00 ; 45E4 MOV 05,R3 ; 45E6 MOV 04,R2 ; 45E8 MOV R3,#08 ; 45EA MOV R2,#00 ; 45EC LCALL 5325 ; 45EF JZ 45F8 ; 45F1 MOV DPTR,#1405 ; 45F4 MOVX A,@DPTR ; 45F5 MOV R3,A ; 45F6 SJMP 45FA ; 45F8 MOV R3,#80 ; 45FA MOV DPTR,#1405 ; 45FD MOV A,R3 ; 45FE MOVX @DPTR,A ; 45FF SETB P3.1 ; 4601 MOV R5,#65 ; 4603 MOV R4,#41 ; 4605 MOV R3,#01 ; 4607 MOV R2,#41 ; 4609 LCALL 53F2 ; 460C MOV 05,R3 ; 460E MOV 04,R2 ; 4610 MOV R3,#01 ; 4612 MOV R2,#00 ; 4614 LCALL 53EA ; 4617 LCALL 5652 ; 461A MOV R3,#01 ; 461C MOV R2,#41 ; 461E MOV DPTR,#0004 ; 4621 LCALL 3CDC ; 4624 MOV DPTR,#13F6 ; 4627 MOVX A,@DPTR ; 4628 MOV R5,A ; 4629 MOV R4,#00 ; 462B MOV R3,#01 ; 462D MOV R2,#00 ; 462F LCALL 5325 ; 4632 JZ 464E ; 4634 MOV DPTR,#0000 ; 4637 LCALL 0086 ; 463A MOV A,R3 ; 463B ORL A,R2 ; 463C JNZ 464E ; 463E MOV DPTR,#0000 ; 4641 LCALL 00A7 ; 4644 MOV A,R3 ; 4645 JNZ 464E ; 4647 MOV R3,#40 ; 4649 MOV DPTR,#1405 ; 464C MOV A,R3 ; 464D MOVX @DPTR,A ; 464E MOV R3,#02 ; 4650 MOV DPTR,#14B8 ; 4653 MOV A,R3 ; 4654 MOVX @DPTR,A ; 4655 LJMP 561F ; 4658 CLR A ; 4659 MOV R0,#00 ; 465B MOV R1,#05 ; 465D LCALL 55DB ; 4660 MOV R3,#00 ; 4662 MOV DPTR,#1405 ; 4665 MOV A,R3 ; 4666 MOVX @DPTR,A ; 4667 MOV DPTR,#13F6 ; 466A MOVX A,@DPTR ; 466B MOV R3,A ; 466C MOV R2,#00 ; 466E LCALL 54D5 ; 4671 NOP ; 4672 NOP ; 4673 INC A ; 4674 NOP ; 4675 ORL A,@R1 ; 4676 INC DPTR ; 4677 ORL A,@R0 ; 4678 AJMP 4446 ; 467A ACALL 4747 ; 467C ADD A,R7 ; 467D ORL A,@R1 ; 467E AJMP 4247 ; 4680 MOV 7B,R4 ; 4682 XCH A,R4 ; 4683 MOV R2,#13 ; 4685 MOV DPTR,#0002 ; 4688 LCALL 0080 ; 468B MOV DPTR,#1405 ; 468E MOV A,R3 ; 468F MOVX @DPTR,A ; 4690 MOV DPTR,#0000 ; 4693 LCALL 00A7 ; 4696 MOV A,R3 ; 4697 JNZ 46A7 ; 4699 MOV R5,#40 ; 469B MOV R3,#05 ; 469D MOV R2,#14 ; 469F MOV DPH,R2 ; 46A1 MOV DPL,R3 ; 46A3 MOVX A,@DPTR ; 46A4 ORL A,R5 ; 46A5 MOVX @DPTR,A ; 46A6 MOV R3,A ; 46A7 CLR P3.1 ; 46A9 MOV R5,#04 ; 46AB MOV R4,#00 ; 46AD MOV R3,#21 ; 46AF MOV DPH,R4 ; 46B1 MOV DPL,R5 ; 46B3 MOV A,R3 ; 46B4 MOVX @DPTR,A ; 46B5 MOV R3,#00 ; 46B7 LCALL 53B7 ; 46BA INC A ; 46BB NOP ; 46BC LCALL 537E ; 46BF INC A ; 46C0 NOP ; 46C1 MOV R3,#64 ; 46C3 LCALL 510C ; 46C6 JZ 46D5 ; 46C8 MOV A,#04 ; 46CA ADD A,R7 ; 46CB MOV R3,A ; 46CC CLR A ; 46CD ADDC A,R6 ; 46CE MOV R2,A ; 46CF LCALL 5234 ; 46D2 AJMP 4080 ; 46D4 MOV A,@R1 ; 46D5 MOV R5,#06 ; 46D7 MOV R4,#00 ; 46D9 MOV R3,#30 ; 46DB MOV DPH,R4 ; 46DD MOV DPL,R5 ; 46DF MOV A,R3 ; 46E0 MOVX @DPTR,A ; 46E1 MOV DPTR,#0000 ; 46E4 LCALL 47AD ; 46E7 MOV DPTR,#1405 ; 46EA MOV A,R3 ; 46EB MOVX @DPTR,A ; 46EC SETB P3.1 ; 46EE LJMP 47A3 ; 46F1 MOV R3,#02 ; 46F3 MOV DPTR,#11C5 ; 46F6 MOV A,R3 ; 46F7 MOVX @DPTR,A ; 46F8 MOV R3,#00 ; 46FA MOV DPTR,#11C6 ; 46FD MOV A,R3 ; 46FE MOVX @DPTR,A ; 46FF MOV R3,#C5 ; 4701 MOV R2,#11 ; 4703 MOV DPTR,#0002 ; 4706 LCALL 0083 ; 4709 MOV DPTR,#0000 ; 470C LCALL 47AD ; 470F MOV DPTR,#1405 ; 4712 MOV A,R3 ; 4713 MOVX @DPTR,A ; 4714 MOV R3,#CC ; 4716 MOV R2,#13 ; 4718 MOV DPTR,#0002 ; 471B LCALL 0080 ; 471E MOV 05,R3 ; 4720 MOV R3,#05 ; 4722 MOV R2,#14 ; 4724 MOV DPH,R2 ; 4726 MOV DPL,R3 ; 4728 MOVX A,@DPTR ; 4729 ORL A,R5 ; 472A MOVX @DPTR,A ; 472B MOV R3,A ; 472C LJMP 47A3 ; 472F MOV DPTR,#0000 ; 4732 LCALL 00A7 ; 4735 MOV A,R3 ; 4736 JNZ 473F ; 4738 MOV R3,#40 ; 473A MOV DPTR,#1405 ; 473D MOV A,R3 ; 473E MOVX @DPTR,A ; 473F SJMP 47A3 ; 4741 MOV R3,#CC ; 4743 MOV R2,#13 ; 4745 MOV DPTR,#0002 ; 4748 LCALL 0080 ; 474B MOV DPTR,#1405 ; 474E MOV A,R3 ; 474F MOVX @DPTR,A ; 4750 MOV DPTR,#0000 ; 4753 LCALL 00A7 ; 4756 MOV A,R3 ; 4757 JNZ 4767 ; 4759 MOV R5,#40 ; 475B MOV R3,#05 ; 475D MOV R2,#14 ; 475F MOV DPH,R2 ; 4761 MOV DPL,R3 ; 4763 MOVX A,@DPTR ; 4764 ORL A,R5 ; 4765 MOVX @DPTR,A ; 4766 MOV R3,A ; 4767 MOV R5,#65 ; 4769 MOV R4,#41 ; 476B MOV R3,#01 ; 476D MOV R2,#41 ; 476F LCALL 53F2 ; 4772 MOV 05,R3 ; 4774 MOV 04,R2 ; 4776 MOV R3,#01 ; 4778 MOV R2,#00 ; 477A LCALL 53EA ; 477D LCALL 5652 ; 4780 MOV R3,#01 ; 4782 MOV R2,#41 ; 4784 MOV DPTR,#0004 ; 4787 LCALL 3CDC ; 478A SJMP 47A3 ; 478C MOV DPTR,#0000 ; 478F LCALL 00A7 ; 4792 MOV A,R3 ; 4793 JNZ 47A3 ; 4795 MOV R5,#40 ; 4797 MOV R3,#05 ; 4799 MOV R2,#14 ; 479B MOV DPH,R2 ; 479D MOV DPL,R3 ; 479F MOVX A,@DPTR ; 47A0 ORL A,R5 ; 47A1 MOVX @DPTR,A ; 47A2 MOV R3,A ; 47A3 MOV R3,#02 ; 47A5 MOV DPTR,#14B8 ; 47A8 MOV A,R3 ; 47A9 MOVX @DPTR,A ; 47AA LJMP 561F ; 47AD CLR A ; 47AE MOV R0,#00 ; 47B0 MOV R1,#05 ; 47B2 LCALL 55DB ; 47B5 MOV R3,#00 ; 47B7 LCALL 53B7 ; 47BA INC A ; 47BB NOP ; 47BC MOV R5,#20 ; 47BE MOV R4,#00 ; 47C0 MOV R3,#FF ; 47C2 MOV DPH,R4 ; 47C4 MOV DPL,R5 ; 47C6 MOV A,R3 ; 47C7 MOVX @DPTR,A ; 47C8 MOV R5,#06 ; 47CA MOV R4,#00 ; 47CC MOV R3,#34 ; 47CE MOV DPH,R4 ; 47D0 MOV DPL,R5 ; 47D2 MOV A,R3 ; 47D3 MOVX @DPTR,A ; 47D4 MOV R3,#20 ; 47D6 MOV R2,#00 ; 47D8 MOV DPH,R2 ; 47DA MOV DPL,R3 ; 47DC MOVX A,@DPTR ; 47DD MOV R3,A ; 47DE MOV R2,#00 ; 47E0 MOV 05,R3 ; 47E2 MOV 04,R2 ; 47E4 MOV R3,#F0 ; 47E6 MOV R2,#00 ; 47E8 LCALL 5325 ; 47EB MOV 05,R3 ; 47ED MOV 04,R2 ; 47EF MOV R3,#01 ; 47F1 MOV R2,#00 ; 47F3 LCALL 516C ; 47F6 JZ 4809 ; 47F8 MOV R5,#02 ; 47FA MOV A,#04 ; 47FC ADD A,R7 ; 47FD MOV R3,A ; 47FE CLR A ; 47FF ADDC A,R6 ; 4800 MOV R2,A ; 4801 MOV DPH,R2 ; 4803 MOV DPL,R3 ; 4805 MOVX A,@DPTR ; 4806 ORL A,R5 ; 4807 MOVX @DPTR,A ; 4808 MOV R3,A ; 4809 MOV R5,#06 ; 480B MOV R4,#00 ; 480D MOV R3,#38 ; 480F MOV DPH,R4 ; 4811 MOV DPL,R5 ; 4813 MOV A,R3 ; 4814 MOVX @DPTR,A ; 4815 MOV R3,#20 ; 4817 MOV R2,#00 ; 4819 MOV DPH,R2 ; 481B MOV DPL,R3 ; 481D MOVX A,@DPTR ; 481E MOV R3,A ; 481F MOV R2,#00 ; 4821 MOV 05,R3 ; 4823 MOV 04,R2 ; 4825 MOV R3,#F0 ; 4827 MOV R2,#00 ; 4829 LCALL 5325 ; 482C MOV 05,R3 ; 482E MOV 04,R2 ; 4830 MOV R3,#02 ; 4832 MOV R2,#00 ; 4834 LCALL 516C ; 4837 JZ 484A ; 4839 MOV R5,#04 ; 483B MOV A,#04 ; 483D ADD A,R7 ; 483E MOV R3,A ; 483F CLR A ; 4840 ADDC A,R6 ; 4841 MOV R2,A ; 4842 MOV DPH,R2 ; 4844 MOV DPL,R3 ; 4846 MOVX A,@DPTR ; 4847 ORL A,R5 ; 4848 MOVX @DPTR,A ; 4849 MOV R3,A ; 484A MOV R5,#06 ; 484C MOV R4,#00 ; 484E MOV R3,#31 ; 4850 MOV DPH,R4 ; 4852 MOV DPL,R5 ; 4854 MOV A,R3 ; 4855 MOVX @DPTR,A ; 4856 MOV R3,#20 ; 4858 MOV R2,#00 ; 485A MOV DPH,R2 ; 485C MOV DPL,R3 ; 485E MOVX A,@DPTR ; 485F MOV R3,A ; 4860 MOV R2,#00 ; 4862 MOV 05,R3 ; 4864 MOV 04,R2 ; 4866 MOV R3,#F0 ; 4868 MOV R2,#00 ; 486A LCALL 5325 ; 486D MOV 05,R3 ; 486F MOV 04,R2 ; 4871 MOV R3,#04 ; 4873 MOV R2,#00 ; 4875 LCALL 516C ; 4878 JZ 488B ; 487A MOV R5,#08 ; 487C MOV A,#04 ; 487E ADD A,R7 ; 487F MOV R3,A ; 4880 CLR A ; 4881 ADDC A,R6 ; 4882 MOV R2,A ; 4883 MOV DPH,R2 ; 4885 MOV DPL,R3 ; 4887 MOVX A,@DPTR ; 4888 ORL A,R5 ; 4889 MOVX @DPTR,A ; 488A MOV R3,A ; 488B MOV R5,#10 ; 488D MOV R4,#00 ; 488F MOV R3,#04 ; 4891 MOV DPH,R4 ; 4893 MOV DPL,R5 ; 4895 MOV A,R3 ; 4896 MOVX @DPTR,A ; 4897 MOV R3,#20 ; 4899 MOV R2,#00 ; 489B MOV DPH,R2 ; 489D MOV DPL,R3 ; 489F MOVX A,@DPTR ; 48A0 MOV R3,A ; 48A1 MOV R2,#00 ; 48A3 MOV 05,R3 ; 48A5 MOV 04,R2 ; 48A7 MOV R3,#F0 ; 48A9 MOV R2,#00 ; 48AB LCALL 5325 ; 48AE MOV 05,R3 ; 48B0 MOV 04,R2 ; 48B2 MOV R3,#08 ; 48B4 MOV R2,#00 ; 48B6 LCALL 516C ; 48B9 JZ 48CC ; 48BB MOV R5,#10 ; 48BD MOV A,#04 ; 48BF ADD A,R7 ; 48C0 MOV R3,A ; 48C1 CLR A ; 48C2 ADDC A,R6 ; 48C3 MOV R2,A ; 48C4 MOV DPH,R2 ; 48C6 MOV DPL,R3 ; 48C8 MOVX A,@DPTR ; 48C9 ORL A,R5 ; 48CA MOVX @DPTR,A ; 48CB MOV R3,A ; 48CC MOV R5,#06 ; 48CE MOV R4,#00 ; 48D0 MOV R3,#00 ; 48D2 MOV DPH,R4 ; 48D4 MOV DPL,R5 ; 48D6 MOV A,R3 ; 48D7 MOVX @DPTR,A ; 48D8 MOV R5,#10 ; 48DA MOV R4,#00 ; 48DC MOV R3,#00 ; 48DE MOV DPH,R4 ; 48E0 MOV DPL,R5 ; 48E2 MOV A,R3 ; 48E3 MOVX @DPTR,A ; 48E4 LCALL 5378 ; 48E7 INC A ; 48E8 NOP ; 48E9 MOV A,R3 ; 48EA CPL A ; 48EB MOV R3,A ; 48EC LCALL 53B7 ; 48EF INC A ; 48F0 NOP ; 48F1 MOV R5,#1E ; 48F3 MOV A,#04 ; 48F5 ADD A,R7 ; 48F6 MOV R3,A ; 48F7 CLR A ; 48F8 ADDC A,R6 ; 48F9 MOV R2,A ; 48FA MOV DPH,R2 ; 48FC MOV DPL,R3 ; 48FE MOVX A,@DPTR ; 48FF ANL A,R5 ; 4900 MOVX @DPTR,A ; 4901 MOV R3,A ; 4902 LCALL 537E ; 4905 INC A ; 4906 NOP ; 4907 MOV R4,#00 ; 4909 MOV R3,#1E ; 490B MOV R2,#00 ; 490D LCALL 5325 ; 4910 JZ 4923 ; 4912 MOV R5,#20 ; 4914 MOV A,#04 ; 4916 ADD A,R7 ; 4917 MOV R3,A ; 4918 CLR A ; 4919 ADDC A,R6 ; 491A MOV R2,A ; 491B MOV DPH,R2 ; 491D MOV DPL,R3 ; 491F MOVX A,@DPTR ; 4920 ORL A,R5 ; 4921 MOVX @DPTR,A ; 4922 MOV R3,A ; 4923 LCALL 5378 ; 4926 INC A ; 4927 NOP ; 4928 LJMP 561F ; 492B CLR A ; 492C MOV R0,#00 ; 492E MOV R1,#04 ; 4930 LCALL 55DB ; 4933 MOV R3,#66 ; 4935 MOV R2,#0F ; 4937 LCALL 5652 ; 493A MOV R3,#C1 ; 493C MOV R2,#10 ; 493E MOV DPTR,#0004 ; 4941 LCALL 0092 ; 4944 MOV R5,#7F ; 4946 MOV R3,#C1 ; 4948 MOV R2,#10 ; 494A MOV DPH,R2 ; 494C MOV DPL,R3 ; 494E MOVX A,@DPTR ; 494F ANL A,R5 ; 4950 MOVX @DPTR,A ; 4951 MOV R3,A ; 4952 LJMP 561F ; 4955 CLR A ; 4956 MOV R0,#00 ; 4958 MOV R1,#0C ; 495A LCALL 55DB ; 495D MOV R3,#00 ; 495F MOV R2,#00 ; 4961 LCALL 53BD ; 4964 INC @R0 ; 4965 NOP ; 4966 MOV R3,#C1 ; 4968 MOV R2,#10 ; 496A MOV DPTR,#0002 ; 496D LCALL 0098 ; 4970 LCALL 53BD ; 4973 INC A ; 4974 NOP ; 4975 LCALL 5388 ; 4978 INC A ; 4979 NOP ; 497A MOV R3,#08 ; 497C LCALL 52EF ; 497F LCALL 53B7 ; 4982 INC R0 ; 4983 NOP ; 4984 LCALL 537E ; 4987 INC R0 ; 4988 NOP 4989 MOV R3,#01 ; 498B MOV A,R3 ; 498C ANL A,R5 ; 498D MOV R3,A ; 498E LCALL 53B7 ; 4991 INC R1 ; 4992 NOP ; 4993 LCALL 5388 ; 4996 INC @R0 ; 4997 NOP ; 4998 MOV R3,#01 ; 499A MOV R2,#00 ; 499C LCALL 53EA ; 499F LCALL 53BD ; 49A2 INC @R0 ; 49A3 NOP ; 49A4 LCALL 5378 ; 49A7 INC R1 ; 49A8 NOP ; 49A9 JZ 49B9 ; 49AB LCALL 5388 ; 49AE INC @R0 ; 49AF NOP ; 49B0 MOV R3,#64 ; 49B2 MOV R2,#00 ; 49B4 LCALL 5110 ; 49B7 JNZ 4966 ; 49B9 LCALL 5388 ; 49BC INC A ; 49BD NOP ; 49BE MOV R3,#FF ; 49C0 MOV R2,#01 ; 49C2 LCALL 5325 ; 49C5 LCALL 53BD ; 49C8 INC R2 ; 49C9 NOP ; 49CA LCALL 5384 ; 49CD INC R2 ; 49CE NOP ; 49CF LJMP 561F ; 49D2 MOV A,#02 ; 49D4 MOV R0,#00 ; 49D6 MOV R1,#06 ; 49D8 LCALL 55DB ; 49DB MOV R3,#00 ; 49DD LCALL 53B7 ; 49E0 INC 00 ; 49E2 LCALL 5388 ; 49E5 INC @R0 ; 49E6 NOP ; 49E7 LCALL 5378 ; 49EA INC 00 ; 49EC MOV R2,#00 ; 49EE LCALL 53EA ; 49F1 MOV DPH,R2 ; 49F3 MOV DPL,R3 ; 49F5 MOVX A,@DPTR ; 49F6 MOV R3,A ; 49F7 LCALL 53B7 ; 49FA INC A ; 49FB NOP ; 49FC CLR IE.1 ; Disable Timer #0 Interrupt 49FE MOV R3,#01 ; 4A00 LCALL 53B7 ; 4A03 INC 00 ; 4A05 LCALL 537E ; 4A08 INC 00 ; 4A0A LCALL 5378 ; 4A0D INC A ; 4A0E NOP ; 4A0F LCALL 5149 ; 4A12 JZ 4A3E ; 4A14 LCALL 5388 ; 4A17 INC @R0 ; 4A18 NOP ; 4A19 LCALL 5378 ; 4A1C INC 00 ; 4A1E MOV R2,#00 ; 4A20 LCALL 53EA ; 4A23 MOV DPH,R2 ; 4A25 MOV DPL,R3 ; 4A27 MOVX A,@DPTR ; 4A28 MOV R3,A ; 4A29 MOV R2,#00 ; 4A2B MOV DPTR,#0002 ; 4A2E LCALL 0095 ; 4A31 MOV A,#05 ; 4A33 ADD A,R7 ; 4A34 MOV R3,A ; 4A35 CLR A ; 4A36 ADDC A,R6 ; 4A37 MOV R2,A ; 4A38 LCALL 5234 ; 4A3B AJMP 4880 ; 4A3D XCH A,@R1 ; 4A3E SETB IE.1 ; Enable Timer #0 Interrupt 4A40 LJMP 561F ; 4A43 CLR A ; 4A44 MOV R0,#00 ; 4A46 MOV R1,#0D ; 4A48 LCALL 55DB ; 4A4B MOV DPTR,#14B8 ; 4A4E MOVX A,@DPTR ; 4A4F MOV R5,A ; 4A50 MOV R3,#05 ; 4A52 MOV A,R3 ; 4A53 ADD A,R5 ; 4A54 MOV R3,A ; 4A55 MOV DPTR,#1003 ; 4A58 MOV A,R3 ; 4A59 MOVX @DPTR,A ; 4A5A MOV R3,#02 ; 4A5C MOV DPTR,#1004 ; 4A5F MOV A,R3 ; 4A60 MOVX @DPTR,A ; 4A61 MOV DPTR,#14B8 ; 4A64 MOVX A,@DPTR ; 4A65 MOV R5,A ; 4A66 MOV R3,#02 ; 4A68 MOV A,R3 ; 4A69 ADD A,R5 ; 4A6A MOV R3,A ; 4A6B MOV DPTR,#1005 ; 4A6E MOV A,R3 ; 4A6F MOVX @DPTR,A ; 4A70 MOV DPTR,#4100 ; 4A73 MOVX A,@DPTR ; 4A74 MOV R5,A ; 4A75 MOV R3,#01 ; 4A77 MOV A,R3 ; 4A78 ADD A,R5 ; 4A79 MOV R3,A ; 4A7A MOV DPTR,#1006 ; 4A7D MOV A,R3 ; 4A7E MOVX @DPTR,A ; 4A7F MOV R3,#00 ; 4A81 MOV R2,#00 ; 4A83 LCALL 53BD ; 4A86 INC A ; 4A87 NOP ; 4A88 LCALL 5388 ; 4A8B INC A ; 4A8C NOP ; 4A8D MOV DPTR,#14B8 ; 4A90 MOVX A,@DPTR ; 4A91 MOV R3,A ; 4A92 MOV R2,#00 ; 4A94 LCALL 50F5 ; 4A97 JZ 4ACD ; 4A99 MOV R5,#04 ; 4A9B MOV R4,#14 ; 4A9D LCALL 5384 ; 4AA0 INC A ; 4AA1 NOP ; 4AA2 LCALL 53EA ; 4AA5 MOV DPH,R2 ; 4AA7 MOV DPL,R3 ; 4AA9 MOVX A,@DPTR ; 4AAA MOV R3,A ; 4AAB LCALL 5644 ; 4AAE MOV R5,#07 ; 4AB0 MOV R4,#10 ; 4AB2 LCALL 5384 ; 4AB5 INC 00 ; 4AB7 LCALL 53EA ; 4ABA LCALL 5660 ; 4ABD LCALL 532D ; 4AC0 MOV A,#04 ; 4AC2 ADD A,R7 ; 4AC3 MOV R3,A ; 4AC4 CLR A ; 4AC5 ADDC A,R6 ; 4AC6 MOV R2,A ; 4AC7 LCALL 5234 ; 4ACA LJMP 80BB ; 4ACD MOV R5,#03 ; 4ACF MOV R3,#07 ; 4AD1 MOV R2,#10 ; 4AD3 LCALL 564B ; 4AD6 MOV 05,R3 ; 4AD8 MOV 04,R2 ; 4ADA LCALL 5384 ; 4ADD INC 00 ; 4ADF LCALL 53EA ; 4AE2 LCALL 5660 ; 4AE5 LCALL 532D ; 4AE8 MOV R3,#04 ; 4AEA MOV R2,#14 ; 4AEC LCALL 5652 ; 4AEF MOV DPTR,#14B8 ; 4AF2 MOVX A,@DPTR ; 4AF3 MOV R3,A ; 4AF4 MOV R2,#00 ; 4AF6 MOV DPTR,#0004 ; 4AF9 LCALL 200F ; 4AFC LCALL 5644 ; 4AFF MOV R5,#08 ; 4B01 MOV R4,#10 ; 4B03 LCALL 5384 ; 4B06 INC 00 ; 4B08 LCALL 53EA ; 4B0B LCALL 5660 ; 4B0E LCALL 532D ; 4B11 MOV R3,#03 ; 4B13 MOV R2,#10 ; 4B15 MOV DPTR,#0002 ; 4B18 LCALL 49D2 ; 4B1B MOV R3,#00 ; 4B1D MOV R2,#00 ; 4B1F LCALL 53BD ; 4B22 INC @R0 ; 4B23 NOP ; 4B24 MOV DPTR,#0000 ; 4B27 LCALL 4955 ; 4B2A LCALL 53BD ; 4B2D INC R0 ; 4B2E NOP ; 4B2F LCALL 5388 ; 4B32 INC R0 ; 4B33 NOP ; 4B34 MOV R3,#08 ; 4B36 LCALL 52CC ; 4B39 LCALL 53B7 ; 4B3C INC R3 ; 4B3D NOP ; 4B3E MOV R5,#01 ; 4B40 MOV A,#0B ; 4B42 ADD A,R7 ; 4B43 MOV R3,A ; 4B44 CLR A ; 4B45 ADDC A,R6 ; 4B46 MOV R2,A ; 4B47 MOV DPH,R2 ; 4B49 MOV DPL,R3 ; 4B4B MOVX A,@DPTR ; 4B4C ANL A,R5 ; 4B4D MOVX @DPTR,A ; 4B4E MOV R3,A ; 4B4F MOV A,#06 ; 4B51 ADD A,R7 ; 4B52 MOV R3,A ; 4B53 CLR A ; 4B54 ADDC A,R6 ; 4B55 MOV R2,A ; 4B56 LCALL 5234 ; 4B59 LJMP 1253 ; 4B5C MOV R0,#0B ; 4B5E NOP ; 4B5F JZ 4B72 ; 4B61 LCALL 5388 ; 4B64 INC @R0 ; 4B65 NOP ; 4B66 MOV DPTR,#1002 ; 4B69 MOVX A,@DPTR ; 4B6A MOV R3,A ; 4B6B MOV R2,#00 ; 4B6D LCALL 50F5 ; 4B70 JNZ 4B24 ; 4B72 LCALL 5388 ; 4B75 INC R0 ; 4B76 NOP ; 4B77 MOV R3,#FF ; 4B79 MOV A,R3 ; 4B7A ANL A,R5 ; 4B7B MOV R3,A ; 4B7C LCALL 53B7 ; 4B7F INC R2 ; 4B80 NOP ; 4B81 LCALL 537E ; 4B84 INC R2 ; 4B85 NOP ; 4B86 MOV R3,#04 ; 4B88 LCALL 5168 ; 4B8B JZ 4B96 ; 4B8D MOV R3,#01 ; 4B8F LCALL 53B7 ; 4B92 INC R4 ; 4B93 NOP ; 4B94 SJMP 4BD1 ; 4B96 LCALL 5388 ; 4B99 INC @R0 ; 4B9A NOP ; 4B9B MOV DPTR,#1002 ; 4B9E MOVX A,@DPTR ; 4B9F MOV R3,A ; 4BA0 MOV R2,#00 ; 4BA2 LCALL 515D ; 4BA5 JZ 4BB6 ; 4BA7 MOV DPTR,#0000 ; 4BAA LCALL 00AD ; 4BAD MOV R3,#00 ; 4BAF LCALL 53B7 ; 4BB2 INC R4 ; 4BB3 NOP ; 4BB4 SJMP 4BD1 ; 4BB6 MOV R3,#00 ; 4BB8 LCALL 53B7 ; 4BBB INC R4 ; 4BBC NOP ; 4BBD MOV DPTR,#1006 ; 4BC0 MOVX A,@DPTR ; 4BC1 MOV R3,A ; 4BC2 MOV R2,#00 ; 4BC4 LCALL 5652 ; 4BC7 MOV R3,#00 ; 4BC9 MOV R2,#41 ; 4BCB MOV DPTR,#0004 ; 4BCE LCALL 0089 ; 4BD1 LCALL 537E ; 4BD4 INC R4 ; 4BD5 NOP ; 4BD6 MOV R3,#01 ; 4BD8 LCALL 5159 ; 4BDB JZ 4BE0 ; 4BDD LJMP 4B11 ; 4BE0 LJMP 561F ; 4BE3 CLR A ; 4BE4 MOV R0,#00 ; 4BE6 MOV R1,#27 ; 4BE8 LCALL 55DB ; 4BEB MOV R3,#00 ; 4BED LCALL 53B7 ; 4BF0 ADD A,@R0 ; 4BF1 NOP ; 4BF2 MOV R3,#00 ; 4BF4 LCALL 53B7 ; 4BF7 ADD A,#00 ; 4BF9 MOV R3,#00 ; 4BFB MOV R2,#00 ; 4BFD LCALL 53BD ; 4C00 INC @R0 ; 4C01 NOP ; 4C02 LCALL 5388 ; 4C05 INC @R0 ; 4C06 NOP ; 4C07 MOV R3,#14 ; 4C09 MOV R2,#00 ; 4C0B LCALL 50F5 ; 4C0E JZ 4C3B ; 4C10 MOV R5,#00 ; 4C12 MOV A,#0A ; 4C14 ADD A,R7 ; 4C15 MOV R3,A ; 4C16 CLR A ; 4C17 ADDC A,R6 ; 4C18 MOV R2,A ; 4C19 LCALL 564B ; 4C1C MOV 05,R3 ; 4C1E MOV 04,R2 ; 4C20 LCALL 5384 ; 4C23 INC @R1 ; 4C24 NOP ; 4C25 LCALL 53EA ; 4C28 LCALL 5660 ; 4C2B LCALL 532D ; 4C2E MOV A,#06 ; 4C30 ADD A,R7 ; 4C31 MOV R3,A ; 4C32 CLR A ; 4C33 ADDC A,R6 ; 4C34 MOV R2,A ; 4C35 LCALL 5234 ; 4C38 LJMP 80C7 ; 4C3B MOV R3,#00 ; 4C3D MOV R2,#00 ; 4C3F LCALL 53BD ; 4C42 INC @R0 ; 4C43 NOP ; 4C44 MOV DPTR,#0000 ; 4C47 LCALL 4955 ; 4C4A LCALL 53BD ; 4C4D INC R0 ; 4C4E NOP ; 4C4F LCALL 5384 ; 4C52 INC R0 ; 4C53 NOP ; 4C54 LCALL 53B7 ; 4C57 RL A ; 4C58 NOP ; 4C59 LCALL 537E ; 4C5C RL A ; 4C5D NOP ; 4C5E MOV R3,#02 ; 4C60 LCALL 5168 ; 4C63 JNZ 4C44 ; 4C65 MOV DPTR,#0000 ; 4C68 LCALL 4955 ; 4C6B LCALL 53BD ; 4C6E INC R0 ; 4C6F NOP ; 4C70 LCALL 5384 ; 4C73 INC R0 ; 4C74 NOP ; 4C75 LCALL 53B7 ; 4C78 DEC R6 ; 4C79 NOP ; 4C7A LCALL 5388 ; 4C7D INC R0 ; 4C7E NOP ; 4C7F MOV R3,#08 ; 4C81 LCALL 52CC ; 4C84 LCALL 53B7 ; 4C87 ADD A,#00 ; 4C89 LCALL 5378 ; 4C8C ADD A,#00 ; 4C8E JZ 4C97 ; 4C90 MOV R3,#01 ; 4C92 LCALL 53B7 ; 4C95 ADD A,@R0 ; 4C96 NOP ; 4C97 LCALL 537E ; 4C9A DEC R6 ; 4C9B NOP ; 4C9C MOV A,#0A ; 4C9E ADD A,R7 ; 4C9F MOV R3,A ; 4CA0 CLR A ; 4CA1 ADDC A,R6 ; 4CA2 MOV R2,A ; 4CA3 LCALL 564B ; 4CA6 MOV 05,R3 ; 4CA8 MOV 04,R2 ; 4CAA MOV A,#07 ; 4CAC ADD A,R7 ; 4CAD MOV R3,A ; 4CAE CLR A ; 4CAF ADDC A,R6 ; 4CB0 MOV R2,A ; 4CB1 LCALL 5234 ; 4CB4 LJMP 1253 ; 4CB7 MOV A,R2 ; 4CB8 LCALL 5660 ; 4CBB LCALL 532D ; 4CBE LCALL 5378 ; 4CC1 ADD A,@R0 ; 4CC2 NOP ; 4CC3 JNZ 4D1E ; 4CC5 MOV DPTR,#0000 ; 4CC8 LCALL 4955 ; 4CCB LCALL 53BD ; 4CCE INC R0 ; 4CCF NOP ; 4CD0 LCALL 5384 ; 4CD3 INC R0 ; 4CD4 NOP ; 4CD5 LCALL 53B7 ; 4CD8 JB 00,4CED ; 4CDB ANL TCON,#08 ; Timer #0 Off, Timer #1 Off 4CDE NOP ; 4CDF MOV R3,#08 ; 4CE1 LCALL 52CC ; 4CE4 LCALL 53B7 ; 4CE7 ADD A,#00 ; 4CE9 LCALL 5378 ; 4CEC ADD A,#00 ; 4CEE JZ 4CF7 ; 4CF0 MOV R3,#01 ; 4CF2 LCALL 53B7 ; 4CF5 ADD A,@R0 ; 4CF6 NOP ; 4CF7 LCALL 537E ; 4CFA JB 00,4D71 ; 4CFD INC R2 ; 4CFE ADD A,R7 ; 4CFF MOV R3,A ; 4D00 CLR A ; 4D01 ADDC A,R6 ; 4D02 MOV R2,A ; 4D03 LCALL 564B ; 4D06 MOV 05,R3 ; 4D08 MOV 04,R2 ; 4D0A MOV A,#07 ; 4D0C ADD A,R7 ; 4D0D MOV R3,A ; 4D0E CLR A ; 4D0F ADDC A,R6 ; 4D10 MOV R2,A ; 4D11 LCALL 5234 ; 4D14 LJMP 1253 ; 4D17 MOV A,R2 ; 4D18 LCALL 5660 ; 4D1B LCALL 532D ; 4D1E LCALL 5378 ; 4D21 ADD A,@R0 ; 4D22 NOP ; 4D23 JNZ 4D7E ; 4D25 MOV DPTR,#0000 ; 4D28 LCALL 4955 ; 4D2B LCALL 53BD ; 4D2E INC R0 ; 4D2F NOP ; 4D30 LCALL 5384 ; 4D33 INC R0 ; 4D34 NOP ; 4D35 LCALL 53B7 ; 4D38 AJMP 4900 ; 4D3A LCALL 5388 ; 4D3D INC R0 ; 4D3E NOP ; 4D3F MOV R3,#08 ; 4D41 LCALL 52CC ; 4D44 LCALL 53B7 ; 4D47 ADD A,#00 ; 4D49 LCALL 5378 ; 4D4C ADD A,#00 ; 4D4E JZ 4D57 ; 4D50 MOV R3,#01 ; 4D52 LCALL 53B7 ; 4D55 ADD A,@R0 ; 4D56 NOP ; 4D57 LCALL 537E ; 4D5A AJMP 4900 ; 4D5C MOV A,#0A ; 4D5E ADD A,R7 ; 4D5F MOV R3,A ; 4D60 CLR A ; 4D61 ADDC A,R6 ; 4D62 MOV R2,A ; 4D63 LCALL 564B ; 4D66 MOV 05,R3 ; 4D68 MOV 04,R2 ; 4D6A MOV A,#07 ; 4D6C ADD A,R7 ; 4D6D MOV R3,A ; 4D6E CLR A ; 4D6F ADDC A,R6 ; 4D70 MOV R2,A ; 4D71 LCALL 5234 ; 4D74 LJMP 1253 ; 4D77 MOV A,R2 ; 4D78 LCALL 5660 ; 4D7B LCALL 532D ; 4D7E LCALL 5378 ; 4D81 ADD A,@R0 ; 4D82 NOP ; 4D83 JZ 4D88 ; 4D85 LJMP 4E3F ; 4D88 MOV R3,#00 ; 4D8A LCALL 53B7 ; 4D8D ADD A,#00 ; 4D8F LCALL 5378 ; 4D92 AJMP 4900 ; 4D94 MOV DPTR,#13F5 ; 4D97 MOV A,R3 ; 4D98 MOVX @DPTR,A ; 4D99 MOV R5,#FE ; 4D9B MOV A,#1E ; 4D9D ADD A,R7 ; 4D9E MOV R3,A ; 4D9F CLR A ; 4DA0 ADDC A,R6 ; 4DA1 MOV R2,A ; 4DA2 MOV DPH,R2 ; 4DA4 MOV DPL,R3 ; 4DA6 MOVX A,@DPTR ; 4DA7 ADD A,R5 ; 4DA8 MOVX @DPTR,A ; 4DA9 MOV R3,A ; 4DAA MOV R3,#01 ; 4DAC MOV R2,#00 ; 4DAE LCALL 53BD ; 4DB1 INC A ; 4DB2 NOP ; 4DB3 LCALL 5388 ; 4DB6 INC A ; 4DB7 NOP ; 4DB8 LCALL 5378 ; 4DBB DEC R6 ; 4DBC NOP ; 4DBD MOV R2,#00 ; 4DBF LCALL 50F5 ; 4DC2 JNZ 4DC7 ; 4DC4 LJMP 4E3F ; 4DC7 LCALL 5378 ; 4DCA ADD A,@R0 ; 4DCB NOP ; 4DCC JNZ 4E3F ; 4DCE MOV DPTR,#0000 ; 4DD1 LCALL 4955 ; 4DD4 LCALL 53BD ; 4DD7 INC R0 ; 4DD8 NOP ; 4DD9 LCALL 5384 ; 4DDC INC R0 ; 4DDD NOP ; 4DDE LCALL 53B7 ; 4DE1 RL A ; 4DE2 NOP ; 4DE3 LCALL 5388 ; 4DE6 INC R0 ; 4DE7 NOP ; 4DE8 MOV R3,#08 ; 4DEA LCALL 52CC ; 4DED LCALL 53B7 ; 4DF0 ADD A,#00 ; 4DF2 LCALL 5378 ; 4DF5 ADD A,#00 ; 4DF7 JZ 4E00 ; 4DF9 MOV R3,#01 ; 4DFB LCALL 53B7 ; 4DFE ADD A,@R0 ; 4DFF NOP ; 4E00 LCALL 537E ; 4E03 RL A ; 4E04 NOP ; 4E05 MOV R3,#F5 ; 4E07 MOV R2,#13 ; 4E09 LCALL 564B ; 4E0C MOV 05,R3 ; 4E0E MOV 04,R2 ; 4E10 MOV A,#05 ; 4E12 ADD A,R7 ; 4E13 MOV R3,A ; 4E14 CLR A ; 4E15 ADDC A,R6 ; 4E16 MOV R2,A ; 4E17 LCALL 5234 ; 4E1A LJMP 1253 ; 4E1D MOV A,R2 ; 4E1E LCALL 5660 ; 4E21 LCALL 532D ; 4E24 LCALL 5644 ; 4E27 MOV A,#0C ; 4E29 ADD A,R7 ; 4E2A MOV R5,A ; 4E2B CLR A ; 4E2C ADDC A,R6 ; 4E2D MOV R4,A ; 4E2E LCALL 5384 ; 4E31 INC 00 ; 4E33 LCALL 53EA ; 4E36 LCALL 5660 ; 4E39 LCALL 532D ; 4E3C LJMP 4DB3 ; 4E3F LCALL 5378 ; 4E42 ADD A,@R0 ; 4E43 NOP ; 4E44 JNZ 4EB4 ; 4E46 MOV DPTR,#0000 ; 4E49 LCALL 4955 ; 4E4C LCALL 53BD ; 4E4F INC R0 ; 4E50 NOP ; 4E51 LCALL 5384 ; 4E54 INC R0 ; 4E55 NOP ; 4E56 LCALL 53B7 ; 4E59 RL A ; 4E5A NOP ; 4E5B LCALL 5388 ; 4E5E INC R0 ; 4E5F NOP ; 4E60 MOV R3,#08 ; 4E62 LCALL 52CC ; 4E65 LCALL 53B7 ; 4E68 ADD A,#00 ; 4E6A LCALL 537E ; 4E6D RL A ; 4E6E NOP ; 4E6F MOV A,#0A ; 4E71 ADD A,R7 ; 4E72 MOV R3,A ; 4E73 CLR A ; 4E74 ADDC A,R6 ; 4E75 MOV R2,A ; 4E76 LCALL 564B ; 4E79 MOV 05,R3 ; 4E7B MOV 04,R2 ; 4E7D MOV A,#07 ; 4E7F ADD A,R7 ; 4E80 MOV R3,A ; 4E81 CLR A ; 4E82 ADDC A,R6 ; 4E83 MOV R2,A ; 4E84 LCALL 5234 ; 4E87 LJMP 1253 ; 4E8A MOV A,R2 ; 4E8B LCALL 5660 ; 4E8E LCALL 532D ; 4E91 LCALL 5378 ; 4E94 ADD A,#00 ; 4E96 JZ 4EA1 ; 4E98 MOV R3,#01 ; 4E9A LCALL 53B7 ; 4E9D ADD A,@R0 ; 4E9E NOP ; 4E9F SJMP 4EB4 ; 4EA1 LCALL 537E ; 4EA4 RL A ; 4EA5 NOP ; 4EA6 MOV R3,#03 ; 4EA8 LCALL 5168 ; 4EAB JZ 4EB4 ; 4EAD MOV R3,#02 ; 4EAF LCALL 53B7 ; 4EB2 ADD A,@R0 ; 4EB3 NOP ; 4EB4 LCALL 5378 ; 4EB7 ADD A,@R0 ; 4EB8 NOP ; 4EB9 JZ 4EBE ; 4EBB LJMP 4F42 ; 4EBE MOV DPTR,#0000 ; 4EC1 LCALL 4955 ; 4EC4 LCALL 53BD ; 4EC7 INC R0 ; 4EC8 NOP ; 4EC9 LCALL 5384 ; 4ECC INC R0 ; 4ECD NOP ; 4ECE LCALL 53B7 ; 4ED1 RET ; 4ED2 NOP ; 4ED3 LCALL 5388 ; 4ED6 INC R0 ; 4ED7 NOP ; 4ED8 MOV R3,#08 ; 4EDA LCALL 52CC ; 4EDD LCALL 53B7 ; 4EE0 ADD A,#00 ; 4EE2 LCALL 537E ; 4EE5 RET ; 4EE6 NOP ; 4EE7 MOV A,#0A ; 4EE9 ADD A,R7 ; 4EEA MOV R3,A ; 4EEB CLR A ; 4EEC ADDC A,R6 ; 4EED MOV R2,A ; 4EEE LCALL 564B ; 4EF1 MOV 05,R3 ; 4EF3 MOV 04,R2 ; 4EF5 LCALL 5384 ; 4EF8 INC @R1 ; 4EF9 NOP ; 4EFA LCALL 53EA ; 4EFD LCALL 5660 ; 4F00 LCALL 532D ; 4F03 LCALL 5378 ; 4F06 ADD A,#00 ; 4F08 JZ 4F13 ; 4F0A MOV R3,#01 ; 4F0C LCALL 53B7 ; 4F0F ADD A,@R0 ; 4F10 NOP ; 4F11 SJMP 4F42 ; 4F13 MOV R3,#F5 ; 4F15 MOV R2,#13 ; 4F17 LCALL 5652 ; 4F1A LCALL 5378 ; 4F1D JB 00,4F9A ; 4F20 NOP ; 4F21 MOV DPTR,#0004 ; 4F24 LCALL 200F ; 4F27 LCALL 53B7 ; 4F2A ADD A,00 ; 4F2C LCALL 537E ; 4F2F ADD A,00 ; 4F31 LCALL 5378 ; 4F34 RET ; 4F35 NOP ; 4F36 LCALL 5168 ; 4F39 JZ 4F42 ; 4F3B MOV R3,#03 ; 4F3D LCALL 53B7 ; 4F40 ADD A,@R0 ; 4F41 NOP ; 4F42 LCALL 5378 ; 4F45 ADD A,@R0 ; 4F46 NOP ; 4F47 JZ 4F4C ; 4F49 LJMP 4FEA ; 4F4C LCALL 537E ; 4F4F JB 00,4EE2 ; 4F52 AJMP 4A00 ; 4F54 MOVX A,@DPTR ; 4F55 MOV R3,A ; 4F56 CLR C ; 4F57 MOV A,R5 ; 4F58 SUBB A,R3 ; 4F59 MOV R3,A ; 4F5A LCALL 53B7 ; 4F5D DEC R7 ; 4F5E NOP ; 4F5F LCALL 537E ; 4F62 JB 00,4EF5 ; 4F65 AJMP 4A00 ; 4F67 MOVX A,@DPTR ; 4F68 MOV R3,A ; 4F69 LCALL 5159 ; 4F6C JZ 4FB0 ; 4F6E MOV DPTR,#1006 ; 4F71 MOVX A,@DPTR ; 4F72 MOV R5,A ; 4F73 LCALL 5378 ; 4F76 JB 00,4F8B ; 4F79 ACALL 4A59 ; 4F7B JZ 4FB0 ; 4F7D LCALL 537E ; 4F80 AJMP 4900 ; 4F82 MOV DPTR,#1007 ; 4F85 MOVX A,@DPTR ; 4F86 MOV R3,A ; 4F87 LCALL 5159 ; 4F8A JZ 4FB0 ; 4F8C MOV R3,#05 ; 4F8E LCALL 53B7 ; 4F91 ADD A,@R0 ; 4F92 NOP ; 4F93 MOV DPTR,#4100 ; 4F96 MOVX A,@DPTR ; 4F97 MOV R5,A ; 4F98 MOV R4,#00 ; 4F9A MOV R3,#FF ; 4F9C MOV R2,#FF ; 4F9E LCALL 53EA ; 4FA1 LCALL 5652 ; 4FA4 MOV R3,#00 ; 4FA6 MOV R2,#41 ; 4FA8 MOV DPTR,#0004 ; 4FAB LCALL 0089 ; 4FAE SJMP 4FEA ; 4FB0 LCALL 537E ; 4FB3 DEC R7 ; 4FB4 NOP ; 4FB5 MOV R3,#01 ; 4FB7 LCALL 5168 ; 4FBA JZ 4FE0 ; 4FBC MOV R3,#04 ; 4FBE LCALL 53B7 ; 4FC1 ADD A,@R0 ; 4FC2 NOP ; 4FC3 MOV R3,#FF ; 4FC5 LCALL 53B7 ; 4FC8 JB 00,4FDD ; 4FCB ANL 78,#20 ; 4FCE NOP ; 4FCF MOV R2,#00 ; 4FD1 LCALL 5652 ; 4FD4 MOV R3,#00 ; 4FD6 MOV R2,#41 ; 4FD8 MOV DPTR,#0004 ; 4FDB LCALL 0089 ; 4FDE SJMP 4FEA ; 4FE0 LCALL 5378 ; 4FE3 DEC R6 ; 4FE4 NOP ; 4FE5 MOV DPTR,#14B8 ; 4FE8 MOV A,R3 ; 4FE9 MOVX @DPTR,A ; 4FEA LCALL 537E ; 4FED ADD A,@R0 ; 4FEE NOP ; 4FEF MOV R3,#05 ; 4FF1 LCALL 5159 ; 4FF4 JZ 4FFE ; 4FF6 MOV DPTR,#0000 ; 4FF9 LCALL 4A43 ; 4FFC SJMP 5027 ; 4FFE LCALL 5378 ; 5001 ADD A,@R0 ; 5002 NOP ; 5003 JZ 5027 ; 5005 MOV R3,#02 ; 5007 MOV DPTR,#1003 ; 500A MOV A,R3 ; 500B MOVX @DPTR,A ; 500C MOV R3,#15 ; 500E MOV DPTR,#1004 ; 5011 MOV A,R3 ; 5012 MOVX @DPTR,A ; 5013 LCALL 5378 ; 5016 ADD A,@R0 ; 5017 NOP ; 5018 MOV DPTR,#1005 ; 501B MOV A,R3 ; 501C MOVX @DPTR,A ; 501D MOV R3,#03 ; 501F MOV R2,#10 ; 5021 MOV DPTR,#0002 ; 5024 LCALL 49D2 ; 5027 LCALL 5378 ; 502A ADD A,@R0 ; 502B NOP ; 502C JZ 5031 ; 502E LJMP 4BEB ; 5031 LJMP 561F ; 5034 LCALL 553C ; 5037 MOV R6,#17 ; 5039 MOV R7,#61 ; 503B MOV DPTR,#0000 ; 503E LCALL 3AC8 ; 5041 LJMP 008F ; 5044 LCALL 508D ; 5047 LCALL 53EA ; 504A LJMP 50A5 ; 504D LCALL 508D ; 5050 LCALL 53FB ; 5053 LJMP 50A5 ; 5056 LCALL 508D ; 5059 LCALL 53FB ; 505C LJMP 50A5 ; 505F LCALL 508D ; 5062 LCALL 5410 ; 5065 LJMP 50A5 ; 5068 LCALL 5071 ; 506B LCALL 52B6 ; 506E LJMP 5086 ; 5071 POP 00 ; 5073 POP 01 ; 5075 PUSH 02 ; 5077 PUSH 03 ; 5079 PUSH 01 ; 507B PUSH 00 ; 507D MOV DPL,R3 ; 507F MOV DPH,R2 ; 5081 MOV 03,R5 ; 5083 MOVX A,@DPTR ; 5084 MOV R5,A ; 5085 RET ; 5086 POP DPL ; 5088 POP DPH ; 508A MOV A,R3 ; 508B MOVX @DPTR,A ; 508C RET ; 508D POP 00 ; 508F POP 01 ; 5091 PUSH 02 ; 5093 PUSH 03 ; 5095 PUSH 01 ; 5097 PUSH 00 ; 5099 MOV DPL,R3 ; 509B MOV DPH,R2 ; 509D MOVX A,@DPTR ; 509E XCH A,R4 ; 509F MOV R2,A ; 50A0 INC DPTR ; 50A1 MOVX A,@DPTR ; 50A2 XCH A,R5 ; 50A3 MOV R3,A ; 50A4 RET ; 50A5 POP DPL ; 50A7 POP DPH ; 50A9 MOV B,A ; 50AB MOV A,R2 ; 50AC MOVX @DPTR,A ; 50AD INC DPTR ; 50AE MOV A,R3 ; 50AF MOVX @DPTR,A ; 50B0 MOV A,B ; 50B2 RET ; 50B3 MOV A,R3 ; 50B4 RLC A ; 50B5 CLR A ; 50B6 SUBB A,ACC ; 50B8 MOV R2,A ; 50B9 MOV A,R5 ; 50BA RLC A ; 50BB CLR A ; 50BC SUBB A,ACC ; 50BE MOV R4,A ; 50BF MOV A,R4 ; 50C0 RLC A ; 50C1 MOV A,R2 ; 50C2 XRL A,R4 ; 50C3 RRC A ; 50C4 PUSH ACC ; 50C6 LCALL 53F2 ; 50C9 POP B ; 50CB JZ 50D9 ; 50CD JNB F6,50D2 ; 50D0 MOV R2,B ; 50D2 MOV A,R2 ; 50D3 RLC A ; 50D4 CPL C ; 50D5 CLR A ; 50D6 MOV R2,A ; 50D7 RLC A ; 50D8 MOV R3,A ; 50D9 RET ; 50DA MOV R2,#00 ; 50DC MOV R4,#00 ; 50DE LCALL 53F2 ; 50E1 JZ 50E8 ; 50E3 CPL C ; 50E4 CLR A ; 50E5 MOV R2,A ; 50E6 RLC A ; 50E7 MOV R3,A ; 50E8 RET ; 50E9 MOV A,R3 ; 50EA RLC A ; 50EB CLR A ; 50EC SUBB A,ACC ; 50EE MOV R2,A ; 50EF MOV A,R5 ; 50F0 RLC A ; 50F1 CLR A ; 50F2 SUBB A,ACC ; 50F4 MOV R4,A ; 50F5 MOV A,R4 ; 50F6 RLC A ; 50F7 MOV A,R2 ; 50F8 XRL A,R4 ; 50F9 RRC A ; 50FA PUSH ACC ; 50FC LCALL 53F2 ; 50FF POP ACC ; 5101 JNB E6,5105 ; 5104 MOV R2,A ; 5105 CLR A ; 5106 XCH A,R2 ; 5107 RL A ; 5108 ANL A,#01 ; 510A MOV R3,A ; 510B RET ; 510C MOV R2,#00 ; 510E MOV R4,#00 ; 5110 LCALL 53F2 ; 5113 CLR A ; 5114 MOV R2,A ; 5115 RLC A ; 5116 MOV R3,A ; 5117 RET ; 5118 MOV A,R3 ; 5119 RLC A ; 511A CLR A ; 511B SUBB A,ACC ; 511D MOV R2,A ; 511E MOV A,R5 ; 511F RLC A ; 5120 CLR A ; 5121 SUBB A,ACC ; 5123 MOV R4,A ; 5124 MOV A,R4 ; 5125 RLC A ; 5126 MOV A,R2 ; 5127 XRL A,R4 ; 5128 RRC A ; 5129 PUSH ACC ; 512B LCALL 53F2 ; 512E POP ACC ; 5130 JNB E6,5134 ; 5133 MOV R2,A ; 5134 CLR A ; 5135 XCH A,R2 ; 5136 CPL A ; 5137 RL A ; 5138 ANL A,#01 ; 513A MOV R3,A ; 513B RET ; 513C MOV R2,#00 ; 513E MOV R4,#00 ; 5140 LCALL 53F2 ; 5143 CLR A ; 5144 MOV R2,A ; 5145 CPL C ; 5146 RLC A ; 5147 MOV R3,A ; 5148 RET ; 5149 MOV R2,#00 ; 514B MOV R4,#00 ; 514D LCALL 53F2 ; 5150 INC R3 ; 5151 JZ 5157 ; 5153 CLR A ; 5154 MOV R2,A ; 5155 RLC A ; 5156 MOV R3,A ; 5157 MOV A,R3 ; 5158 RET ; 5159 MOV R2,#00 ; 515B MOV R4,#00 ; 515D LCALL 53F2 ; 5160 INC R3 ; 5161 JZ 5166 ; 5163 CLR A ; 5164 MOV R2,A ; 5165 MOV R3,A ; 5166 MOV A,R3 ; 5167 RET ; 5168 MOV R2,#00 ; 516A MOV R4,#00 ; 516C LCALL 53F2 ; 516F JZ 5175 ; 5171 CLR A ; 5172 MOV R2,A ; 5173 INC A ; 5174 MOV R3,A ; 5175 MOV A,R3 ; 5176 RET ; 5177 POP DPH ; 5179 POP DPL ; 517B LCALL 5206 ; 517E SJMP 518E ; 5180 POP DPH ; 5182 POP DPL ; 5184 LCALL 5206 ; 5187 CLR C ; 5188 CLR A ; 5189 SUBB A,R1 ; 518A MOV R1,A ; 518B CLR A ; 518C SUBB A,R0 ; 518D MOV R0,A ; 518E PUSH DPL ; 5190 PUSH DPH ; 5192 MOV DPH,R2 ; 5194 MOV DPL,R3 ; 5196 PUSH DPL ; 5198 PUSH DPH ; 519A SJMP 51C4 ; 519C MOV R0,#00 ; 519E MOV R1,#01 ; 51A0 SJMP 51A6 ; 51A2 MOV R0,#FF ; 51A4 MOV R1,#FF ; 51A6 POP DPH ; 51A8 POP DPL ; 51AA CLR A ; 51AB MOVC A,@A+DPTR ; 51AC INC DPTR ; 51AD PUSH DPL ; 51AF PUSH DPH ; 51B1 MOV DPH,R2 ; 51B3 MOV DPL,R3 ; 51B5 CJNE A,#01,51BD ; 51B8 MOVX A,@DPTR ; 51B9 ADD A,R1 ; 51BA MOV R3,A ; 51BB MOVX @DPTR,A ; 51BC RET ; 51BD PUSH DPL ; 51BF PUSH DPH ; 51C1 CJNE A,#02,51D7 ; 51C4 MOVX A,@DPTR ; 51C5 MOV R2,A ; 51C6 INC DPTR ; 51C7 MOVX A,@DPTR ; 51C8 ADD A,R1 ; 51C9 MOV R3,A ; 51CA MOV A,R2 ; 51CB ADDC A,R0 ; 51CC MOV R2,A ; 51CD POP DPH ; 51CF POP DPL ; 51D1 MOVX @DPTR,A ; 51D2 INC DPTR ; 51D3 MOV A,R3 ; 51D4 MOVX @DPTR,A ; 51D5 ORL A,R2 ; 51D6 RET ; 51D7 MOV B,#04 ; 51DA PUSH 00 ; 51DC MOV R0,#02 ; 51DE MOVX A,@DPTR ; 51DF MOV @R0,A ; 51E0 INC R0 ; 51E1 INC DPTR ; 51E2 DJNZ B,51DE ; 51E5 ADD A,R1 ; 51E6 MOV R5,A ; 51E7 POP 00 ; 51E9 MOV A,R4 ; 51EA ADDC A,R0 ; 51EB MOV R4,A ; 51EC MOV A,R3 ; 51ED ADDC A,R0 ; 51EE MOV R3,A ; 51EF MOV A,R2 ; 51F0 ADDC A,R0 ; 51F1 MOV R2,A ; 51F2 POP DPH ; 51F4 POP DPL ; 51F6 MOV B,#04 ; 51F9 MOV R0,#02 ; 51FB MOV A,@R0 ; 51FC MOVX @DPTR,A ; 51FD INC DPTR ; 51FE INC R0 ; 51FF DJNZ B,51FB ; 5202 ORL A,R4 ; 5203 ORL A,R3 ; 5204 ORL A,R2 ; 5205 RET ; 5206 CLR A ; 5207 MOVC A,@A+DPTR ; 5208 MOV R0,A ; 5209 INC DPTR ; 520A CLR A ; 520B MOVC A,@A+DPTR ; 520C MOV R1,A ; 520D INC DPTR ; 520E RET ; 520F POP DPH ; 5211 POP DPL ; 5213 LCALL 5206 ; 5216 SJMP 5226 ; 5218 POP DPH ; 521A POP DPL ; 521C LCALL 5206 ; 521F CLR C ; 5220 CLR A ; 5221 SUBB A,R1 ; 5222 MOV R1,A ; 5223 CLR A ; 5224 SUBB A,R0 ; 5225 MOV R0,A ; 5226 PUSH DPL ; 5228 PUSH DPH ; 522A MOV DPH,R2 ; 522C MOV DPL,R3 ; 522E PUSH DPL ; 5230 PUSH DPH ; 5232 SJMP 525E ; ; 5234 MOV R0,#00 ; 5236 MOV R1,#01 ; 5238 SJMP 523E ; 523A MOV R0,#FF ; 523C MOV R1,#FF ; 523E POP DPH ; 5240 POP DPL ; 5242 CLR A ; 5243 MOVC A,@A+DPTR ; 5244 INC DPTR ; 5245 PUSH DPL ; 5247 PUSH DPH ; 5249 MOV DPH,R2 ; 524B MOV DPL,R3 ; 524D CJNE A,#01,5257 ; 5250 MOVX A,@DPTR ; 5251 ADD A,R1 ; 5252 MOVX @DPTR,A ; 5253 CLR C ; 5254 SUBB A,R1 ; 5255 MOV R3,A ; 5256 RET ; 5257 PUSH DPL ; 5259 PUSH DPH ; 525B CJNE A,#02,5277 ; 525E MOVX A,@DPTR ; 525F MOV R2,A ; 5260 INC DPTR ; 5261 MOVX A,@DPTR ; 5262 ADD A,R1 ; 5263 MOV R3,A ; 5264 MOV A,R2 ; 5265 ADDC A,R0 ; 5266 MOV R2,A ; 5267 POP DPH ; 5269 POP DPL ; 526B MOVX @DPTR,A ; 526C INC DPTR ; 526D MOV A,R3 ; 526E MOVX @DPTR,A ; 526F CLR C ; 5270 SUBB A,R1 ; 5271 MOV R3,A ; 5272 MOV A,R2 ; 5273 SUBB A,R0 ; 5274 MOV R2,A ; 5275 ORL A,R3 ; 5276 RET ; 5277 MOV B,#04 ; 527A PUSH 00 ; 527C MOV R0,#02 ; 527E MOVX A,@DPTR ; 527F MOV @R0,A ; 5280 INC R0 ; 5281 INC DPTR ; 5282 DJNZ B,527E ; 5285 ADD A,R1 ; 5286 MOV R5,A ; 5287 POP 00 ; 5289 MOV A,R4 ; 528A ADDC A,R0 ; 528B MOV R4,A ; 528C MOV A,R3 ; 528D ADDC A,R0 ; 528E MOV R3,A ; 528F MOV A,R2 ; 5290 ADDC A,R0 ; 5291 MOV R2,A ; 5292 POP DPH ; 5294 POP DPL ; 5296 MOV B,#04 ; 5299 PUSH 00 ; 529B MOV R0,#02 ; 529D MOV A,@R0 ; 529E MOVX @DPTR,A ; 529F INC DPTR ; 52A0 INC R0 ; 52A1 DJNZ B,529D ; 52A4 POP 00 ; 52A6 CLR C ; 52A7 SUBB A,R1 ; 52A8 MOV R5,A ; 52A9 MOV A,R4 ; 52AA SUBB A,R0 ; 52AB MOV R4,A ; 52AC MOV A,R3 ; 52AD SUBB A,R0 ; 52AE MOV R3,A ; 52AF MOV A,R2 ; 52B0 SUBB A,R0 ; 52B1 MOV R2,A ; 52B2 ORL A,R3 ; 52B3 ORL A,R4 ; 52B4 ORL A,R5 ; 52B5 RET ; 52B6 MOV A,R3 ; 52B7 JZ 52C8 ; 52B9 ADD A,#F8 ; 52BB JNC 52C1 ; 52BD MOV R3,#00 ; 52BF MOV A,R3 ; 52C0 RET ; 52C1 MOV A,R5 ; 52C2 CLR C ; 52C3 RRC A ; 52C4 DJNZ R3,52C2 ; 52C6 MOV R3,A ; 52C7 RET ; 52C8 MOV 03,R5 ; 52CA MOV A,R3 ; 52CB RET ; 52CC MOV A,R3 ; 52CD JZ 52E8 ; 52CF ADD A,#F1 ; 52D1 JNC 52DE ; 52D3 MOV B,R4 ; 52D5 CLR A ; 52D6 JNB F7,52DB ; 52D9 MOV A,#FF ; 52DB MOV R2,A ; 52DC MOV R3,A ; 52DD RET ; 52DE MOV A,R4 ; 52DF MOV C,E7 ; 52E1 RRC A ; 52E2 MOV R4,A ; 52E3 MOV A,R5 ; 52E4 RRC A ; 52E5 MOV R5,A ; 52E6 DJNZ R3,52DE ; 52E8 MOV 02,R4 ; 52EA MOV 03,R5 ; 52EC MOV A,R2 ; 52ED ORL A,R3 ; 52EE RET ; 52EF MOV A,R3 ; 52F0 JZ 5303 ; 52F2 ADD A,#F0 ; 52F4 JNC 52FA ; 52F6 CLR A ; 52F7 MOV R2,A ; 52F8 MOV R3,A ; 52F9 RET ; 52FA MOV A,R4 ; 52FB CLR C ; 52FC RRC A ; 52FD MOV R4,A ; 52FE MOV A,R5 ; 52FF RRC A ; 5300 MOV R5,A ; 5301 DJNZ R3,52FA ; 5303 MOV 02,R4 ; 5305 MOV 03,R5 ; 5307 MOV A,R2 ; 5308 ORL A,R3 ; 5309 RET ; 530A MOV A,R3 ; 530B JZ 531E ; 530D ADD A,#F0 ; 530F JNC 5315 ; 5311 CLR A ; 5312 MOV R2,A ; 5313 MOV R3,A ; 5314 RET ; 5315 MOV A,R5 ; 5316 CLR C ; 5317 RLC A ; 5318 MOV R5,A ; 5319 MOV A,R4 ; 531A RLC A ; 531B MOV R4,A ; 531C DJNZ R3,5315 ; 531E MOV 02,R4 ; 5320 MOV 03,R5 ; 5322 MOV A,R2 ; 5323 ORL A,R3 ; 5324 RET ; 5325 MOV A,R2 ; 5326 ANL A,R4 ; 5327 MOV R2,A ; 5328 MOV A,R3 ; 5329 ANL A,R5 ; 532A MOV R3,A ; 532B ORL A,R2 ; 532C RET ; 532D MOV DPH,R2 ; 532F MOV DPL,R3 ; 5331 MOV A,R5 ; 5332 MOVX @DPTR,A ; 5333 MOV R3,A ; 5334 RET ; 5335 MOV DPH,R2 ; 5337 MOV DPL,R3 ; 5339 MOV A,R4 ; 533A MOVX @DPTR,A ; 533B MOV R2,A ; 533C INC DPTR ; 533D MOV A,R5 ; 533E MOVX @DPTR,A ; 533F MOV R3,A ; 5340 ORL A,R2 ; 5341 RET ; 5342 PUSH 03 ; 5344 PUSH 02 ; 5346 LCALL 5675 ; 5349 POP DPH ; 534B POP DPL ; 534D MOV R0,#04 ; 534F MOV R1,#02 ; 5351 MOV A,@R1 ; 5352 MOVX @DPTR,A ; 5353 INC R1 ; 5354 INC DPTR ; 5355 DJNZ R0,5351 ; 5357 ORL A,R4 ; 5358 ORL A,R3 ; 5359 ORL A,R2 ; 535A RET ; 535B MOV R0,#03 ; 535D MOV R1,#01 ; 535F SJMP 5369 ; 5361 MOV R1,#02 ; 5363 SJMP 5367 ; 5365 MOV R1,#04 ; 5367 MOV R0,#02 ; 5369 POP DPH ; 536B POP DPL ; 536D CLR A ; 536E MOVC A,@A+DPTR ; 536F ADD A,R3 ; 5370 MOV B,A ; 5372 INC DPTR ; 5373 CLR A ; 5374 MOVC A,@A+DPTR ; 5375 ADDC A,R2 ; 5376 SJMP 539F ; 5378 MOV R0,#03 ; 537A MOV R1,#01 ; 537C SJMP 5392 ; 537E MOV R0,#05 ; 5380 MOV R1,#01 ; 5382 SJMP 5392 ; 5384 MOV R1,#02 ; 5386 SJMP 5390 ; 5388 MOV R0,#04 ; 538A MOV R1,#02 ; 538C SJMP 5392 ; 538E MOV R1,#04 ; 5390 MOV R0,#02 ; 5392 POP DPH ; 5394 POP DPL ; 5396 CLR A ; 5397 MOVC A,@A+DPTR ; 5398 ADD A,R7 ; 5399 MOV B,A ; 539B INC DPTR ; 539C CLR A ; 539D MOVC A,@A+DPTR ; 539E ADDC A,R6 ; 539F INC DPTR ; 53A0 PUSH DPL ; 53A2 PUSH DPH ; 53A4 MOV DPH,A ; 53A6 MOV DPL,B ; 53A9 MOV B,#00 ; 53AC MOVX A,@DPTR ; 53AD MOV @R0,A ; 53AE ORL B,A ; 53B0 INC R0 ; 53B1 INC DPTR ; 53B2 DJNZ R1,53AC ; 53B4 MOV A,B ; 53B6 RET ; 53B7 MOV R0,#03 ; 53B9 MOV R1,#01 ; 53BB SJMP 53C5 ; 53BD MOV R1,#02 ; 53BF SJMP 53C3 ; 53C1 MOV R1,#04 ; 53C3 MOV R0,#02 ; 53C5 POP DPH ; 53C7 POP DPL ; 53C9 CLR A ; 53CA MOVC A,@A+DPTR ; 53CB ADD A,R7 ; 53CC MOV B,A ; 53CE INC DPTR ; 53CF CLR A ; 53D0 MOVC A,@A+DPTR ; 53D1 ADDC A,R6 ; 53D2 INC DPTR ; 53D3 PUSH DPL ; 53D5 PUSH DPH ; 53D7 MOV DPH,A ; 53D9 MOV DPL,B ; 53DC MOV B,#00 ; 53DF MOV A,@R0 ; 53E0 MOVX @DPTR,A ; 53E1 INC DPTR ; 53E2 INC R0 ; 53E3 ORL B,A ; 53E5 DJNZ R1,53DF ; 53E7 MOV A,B ; 53E9 RET ; 53EA MOV A,R3 ; 53EB ADD A,R5 ; 53EC MOV R3,A ; 53ED MOV A,R2 ; 53EE ADDC A,R4 ; 53EF MOV R2,A ; 53F0 ORL A,R3 ; 53F1 RET ; 53F2 MOV A,R5 ; 53F3 CLR C ; 53F4 SUBB A,R3 ; 53F5 MOV R3,A ; 53F6 MOV A,R4 ; 53F7 SUBB A,R2 ; 53F8 MOV R2,A ; 53F9 ORL A,R3 ; 53FA RET ; 53FB MOV A,R3 ; 53FC MOV B,R4 ; 53FE MUL AB ; 53FF XCH A,R2 ; 5400 MOV B,R5 ; 5402 MUL AB ; 5403 ADD A,R2 ; 5404 MOV R2,A ; 5405 MOV A,R3 ; 5406 MOV B,R5 ; 5408 MUL AB ; 5409 MOV R3,A ; 540A MOV A,B ; 540C ADD A,R2 ; 540D MOV R2,A ; 540E ORL A,R3 ; 540F RET ; 5410 MOV R1,#00 ; 5412 MOV A,R2 ; 5413 JNB E7,541D ; 5416 MOV R1,#01 ; 5418 MOV R0,#03 ; 541A LCALL 54A8 ; 541D MOV A,R4 ; 541E JNB E7,5429 ; 5421 XRL 01,#01 ; 5424 MOV R0,#05 ; 5426 LCALL 54A8 ; 5429 PUSH 01 ; 542B LCALL 546E ; 542E POP 01 ; 5430 CJNE R1,#01,5438 ; 5433 MOV R0,#05 ; 5435 LCALL 54A8 ; 5438 MOV 02,R4 ; 543A MOV 03,R5 ; 543C MOV A,R2 ; 543D ORL A,R3 ; 543E RET ; 543F MOV R1,#00 ; 5441 MOV A,R2 ; 5442 JNB E7,544C ; 5445 MOV R1,#01 ; 5447 MOV R0,#03 ; 5449 LCALL 54A8 ; 544C MOV A,R4 ; 544D JNB E7,5458 ; 5450 XRL 01,#01 ; 5453 MOV R0,#05 ; 5455 LCALL 54A8 ; 5458 PUSH 01 ; 545A LCALL 546E ; 545D MOV 02,R0 ; 545F MOV 03,R1 ; 5461 POP 01 ; 5463 CJNE R1,#01,546B ; 5466 MOV R0,#03 ; 5468 LCALL 54A8 ; 546B MOV A,R2 ; 546C ORL A,R3 ; 546D RET ; 546E CJNE R3,#00,5475 ; 5471 CJNE R2,#00,5475 ; 5474 RET ; 5475 MOV R0,#00 ; 5477 MOV R1,#00 ; 5479 MOV A,#10 ; 547B PUSH ACC ; 547D CLR C ; 547E MOV A,R5 ; 547F RLC A ; 5480 MOV R5,A ; 5481 MOV A,R4 ; 5482 RLC A ; 5483 MOV R4,A ; 5484 MOV A,R1 ; 5485 RLC A ; 5486 MOV R1,A ; 5487 MOV A,R0 ; 5488 RLC A ; 5489 MOV R0,A ; 548A CLR C ; 548B MOV A,R1 ; 548C SUBB A,R3 ; 548D MOV B,A ; 548F MOV A,R0 ; 5490 SUBB A,R2 ; 5491 JC 549E ; 5493 MOV R0,A ; 5494 MOV R1,B ; 5496 MOV A,R5 ; 5497 ADD A,#01 ; 5499 MOV R5,A ; 549A MOV A,R4 ; 549B ADDC A,#00 ; 549D MOV R4,A ; 549E POP ACC ; 54A0 DEC A ; 54A1 PUSH ACC ; 54A3 JNZ 547D ; 54A5 POP ACC ; 54A7 RET ; 54A8 CLR A ; 54A9 CLR C ; 54AA SUBB A,@R0 ; 54AB MOV @R0,A ; 54AC DEC R0 ; 54AD CLR A ; 54AE SUBB A,@R0 ; 54AF MOV @R0,A ; 54B0 RET ; 54B1 POP DPH ; 54B3 POP DPL ; 54B5 CLR C ; 54B6 CLR A ; 54B7 MOVC A,@A+DPTR ; 54B8 INC DPTR ; 54B9 XCH A,R5 ; 54BA SUBB A,R5 ; 54BB MOV R5,A ; 54BC CLR A ; 54BD MOVC A,@A+DPTR ; 54BE INC DPTR ; 54BF XCH A,R4 ; 54C0 SUBB A,R4 ; 54C1 MOV R4,A ; 54C2 MOVC A,@A+DPTR ; 54C3 INC DPTR ; 54C4 XCH A,R3 ; 54C5 SUBB A,R3 ; 54C6 JNZ 5511 ; 54C8 CLR A ; 54C9 MOVC A,@A+DPTR ; 54CA INC DPTR ; 54CB XCH A,R2 ; 54CC SUBB A,R2 ; 54CD JNZ 5512 ; 54CF MOV A,R5 ; 54D0 MOV R3,A ; 54D1 MOV A,R4 ; 54D2 MOV R2,A ; 54D3 SJMP 54E6 ; 54D5 POP DPH ; 54D7 POP DPL ; 54D9 CLR C ; 54DA CLR A ; 54DB MOVC A,@A+DPTR ; 54DC INC DPTR ; 54DD XCH A,R3 ; 54DE SUBB A,R3 ; 54DF MOV R3,A ; 54E0 CLR A ; 54E1 MOVC A,@A+DPTR ; 54E2 INC DPTR ; 54E3 XCH A,R2 ; 54E4 SUBB A,R2 ; 54E5 MOV R2,A ; 54E6 JB E7,5512 ; 54E9 CLR C ; 54EA CLR A ; 54EB MOVC A,@A+DPTR ; 54EC INC DPTR ; 54ED SUBB A,R3 ; 54EE CLR A ; 54EF MOVC A,@A+DPTR ; 54F0 INC DPTR ; 54F1 SUBB A,R2 ; 54F2 JB E7,5507 ; 54F5 INC DPTR ; 54F6 INC DPTR ; 54F7 MOV A,R3 ; 54F8 ADD A,R3 ; 54F9 JNC 54FD ; 54FB INC DPH ; 54FD ADD A,DPL ; 54FF MOV DPL,A ; 5501 MOV A,DPH ; 5503 ADDC A,R2 ; 5504 ADD A,R2 ; 5505 MOV DPH,A ; 5507 MOV A,#01 ; 5509 MOVC A,@A+DPTR ; 550A PUSH ACC ; 550C CLR A ; 550D MOVC A,@A+DPTR ; 550E PUSH ACC ; 5510 RET ; 5511 INC DPTR ; 5512 INC DPTR ; 5513 INC DPTR ; 5514 SJMP 5507 ; 5516 POP DPH ; 5518 POP DPL ; 551A CLR A ; 551B MOVC A,@A+DPTR ; 551C JNZ 5527 ; 551E MOV A,#01 ; 5520 MOVC A,@A+DPTR ; 5521 JNZ 5527 ; 5523 INC DPTR ; 5524 INC DPTR ; 5525 SJMP 5532 ; 5527 MOV A,#02 ; 5529 MOVC A,@A+DPTR ; 552A XRL A,R3 ; 552B JZ 5532 ; 552D INC DPTR ; 552E INC DPTR ; 552F INC DPTR ; 5530 SJMP 551A ; 5532 MOV A,#01 ; 5534 MOVC A,@A+DPTR ; 5535 PUSH ACC ; 5537 CLR A ; 5538 MOVC A,@A+DPTR ; 5539 PUSH ACC ; 553B RET ; 553C MOV DPTR,#1561 ; 553F MOV R2,DPH ; 5541 MOV R3,DPL ; 5543 MOV DPTR,#1003 ; 5546 LCALL 5597 ; (x1003..x1561)=0 5549 MOV DPTR,#56FC ; 554C MOV R2,DPH ; 554E MOV R3,DPL ; 5550 MOV DPTR,#56FC ; 5553 LCALL 55A2 ; CMP R3R2,DPTR Changes A 5556 JZ 5584 ; 5558 PUSH 02 ; 555A PUSH 03 ; 555C PUSH DPL ; 555E PUSH DPH ; 5560 MOV R0,#02 ; 5562 MOV R1,#04 ; 5564 CLR A ; 5565 MOVC A,@A+DPTR ; 5566 MOV @R0,A ; 5567 INC DPTR ; 5568 INC R0 ; 5569 DJNZ R1,5564 ; 556B MOV DPL,R3 ; 556D MOV DPH,R2 ; 556F MOV 02,R4 ; 5571 MOV 03,R5 ; 5573 LCALL 5597 ; (xDPTR..xR3R2)=0 5576 POP DPH ; 5578 POP DPL ; 557A POP 03 ; 557C POP 02 ; 557E INC DPTR ; 557F INC DPTR ; 5580 INC DPTR ; 5581 INC DPTR ; 5582 SJMP 5553 ; 5584 LCALL 55AB ; 5587 ANL A,@R0 ; 5588 MOV R4,A ; 5589 ANL A,@R0 ; 558A MOV R1,A ; 558B JBC 00,55A0 ; 558E ANL A,AB ; 5590 ANL A,@R0 ; 5591 MOV R4,A ; 5592 ANL A,@R0 ; 5593 MOV R4,A ; 5594 DEC 61 ; 5596 RET ; 5597 LCALL 55A2 ; (xDPTR..xR3R2)=0 559A JNZ 559D ; 559C RET ; 559D CLR A ; 559E MOVX @DPTR,A ; 559F INC DPTR ; 55A0 SJMP 5597 ; (xDPTR..xR3R2)=0 55A2 MOV A,R3 ; CMP R3R2,DPTR Changes A 55A3 XRL A,DPL ; 55A5 JNZ 55AA ; 55A7 MOV A,R2 ; 55A8 XRL A,DPH ; 55AA RET ; 55AB POP DPH ; 55AD POP DPL ; 55AF MOV R0,#02 ; 55B1 MOV R1,#06 ; 55B3 CLR A ; 55B4 MOVC A,@A+DPTR ; 55B5 MOV @R0,A ; 55B6 INC DPTR ; 55B7 INC R0 ; 55B8 DJNZ R1,55B3 ; 55BA PUSH DPL ; 55BC PUSH DPH ; 55BE MOV DPL,R5 ; 55C0 MOV DPH,R4 ; 55C2 LCALL 55A2 ; CMP R3R2,DPTR Changes A 55C5 JZ 55DA ; 55C7 CLR A ; 55C8 MOVC A,@A+DPTR ; 55C9 INC DPTR ; 55CA MOV R5,DPL ; 55CC MOV R4,DPH ; 55CE MOV DPL,R7 ; 55D0 MOV DPH,R6 ; 55D2 MOVX @DPTR,A ; 55D3 INC DPTR ; 55D4 MOV R7,DPL ; 55D6 MOV R6,DPH ; 55D8 SJMP 55BE ; 55DA RET ; 55DB JZ 55F6 ; 55DD PUSH 00 ; 55DF PUSH 01 ; 55E1 PUSH DPH ; 55E3 PUSH DPL ; 55E5 MOV R0,A ; 55E6 ANL A,#01 ; 55E8 ADD A,#02 ; 55EA MOV R1,A ; 55EB LCALL 567C ; 55EE POP DPL ; 55F0 POP DPH ; 55F2 POP 01 ; 55F4 POP 00 ; 55F6 MOV A,R7 ; 55F7 ADD A,DPL ; 55F9 MOV R5,A ; 55FA MOV A,R6 ; 55FB ADDC A,DPH ; 55FD MOV R4,A ; 55FE CLR C ; 55FF MOV A,R7 ; 5600 SUBB A,R1 ; 5601 MOV DPL,A ; 5603 MOV R7,A ; 5604 MOV A,R6 ; 5605 SUBB A,R0 ; 5606 MOV R6,A ; 5607 MOV DPH,A ; 5609 POP 02 ; 560B POP 03 ; 560D POP ACC ; 560F MOVX @DPTR,A ; 5610 INC DPTR ; 5611 POP ACC ; 5613 MOVX @DPTR,A ; 5614 INC DPTR ; 5615 MOV A,R4 ; 5616 MOVX @DPTR,A ; 5617 INC DPTR ; 5618 MOV A,R5 ; 5619 MOVX @DPTR,A ; 561A PUSH 03 ; 561C PUSH 02 ; 561E RET ; 561F MOV DPH,R6 ; 5621 MOV DPL,R7 ; 5623 MOVX A,@DPTR ; 5624 MOV B,A ; 5626 INC DPTR ; 5627 MOVX A,@DPTR ; 5628 PUSH ACC ; 562A PUSH B ; 562C INC DPTR ; 562D MOVX A,@DPTR ; 562E MOV R6,A ; 562F INC DPTR ; 5630 MOVX A,@DPTR ; 5631 MOV R7,A ; 5632 RET ; 5633 POP 01 ; 5635 POP 00 ; 5637 POP ACC ; 5639 POP B ; 563B PUSH 00 ; 563D PUSH 01 ; 563F PUSH B ; 5641 PUSH ACC ; 5643 RET ; 5644 MOV R0,#01 ; 5646 MOV R1,#03 ; 5648 LJMP 567C ; 564B MOV R0,#01 ; 564D MOV R1,#05 ; 564F LJMP 567C ; 5652 MOV R0,#02 ; 5654 MOV R1,#02 ; 5656 LJMP 567C ; 5659 MOV R0,#02 ; 565B MOV R1,#04 ; 565D LJMP 567C ; 5660 MOV R0,#01 ; 5662 MOV R1,#05 ; 5664 LJMP 568F ; 5667 MOV R0,#02 ; 5669 MOV R1,#02 ; 566B LJMP 568F ; 566E MOV R0,#02 ; 5670 MOV R1,#04 ; 5672 LJMP 568F ; 5675 MOV R0,#04 ; 5677 MOV R1,#02 ; 5679 LJMP 568F ; 567C MOV A,R7 ; 567D CLR C ; 567E SUBB A,R0 ; 567F MOV R7,A ; 5680 MOV A,R6 ; 5681 SUBB A,#00 ; 5683 MOV R6,A ; 5684 MOV DPL,R7 ; 5686 MOV DPH,R6 ; 5688 MOV A,@R1 ; 5689 MOVX @DPTR,A ; 568A INC DPTR ; 568B INC R1 ; 568C DJNZ R0,5688 ; 568E RET ; 568F PUSH ACC ; 5691 MOV DPL,R7 ; 5693 MOV DPH,R6 ; 5695 MOVX A,@DPTR ; 5696 MOV @R1,A ; 5697 INC DPTR ; 5698 INC R1 ; 5699 DJNZ R0,5695 ; 569B MOV R6,DPH ; 569D MOV R7,DPL ; 569F POP ACC ; 56A1 RET ; 56A2 POP DPH ; 56A4 POP DPL ; 56A6 CLR A ; 56A7 MOVC A,@A+DPTR ; 56A8 MOV R0,A ; 56A9 INC DPTR ; 56AA CLR A ; 56AB MOVC A,@A+DPTR ; 56AC MOV R1,A ; 56AD INC DPTR ; 56AE PUSH DPL ; 56B0 PUSH DPH ; 56B2 SJMP 56D2 ; 56B4 POP DPH ; 56B6 POP DPL ; 56B8 CLR A ; 56B9 MOVC A,@A+DPTR ; 56BA MOV R0,A ; 56BB INC DPTR ; 56BC CLR A ; 56BD MOVC A,@A+DPTR ; 56BE MOV R1,A ; 56BF INC DPTR ; 56C0 PUSH DPL ; 56C2 PUSH DPH ; 56C4 MOV A,R2 ; 56C5 MOV R4,A ; 56C6 MOV A,R3 ; 56C7 MOV R5,A ; 56C8 MOV A,R7 ; 56C9 CLR C ; 56CA SUBB A,R1 ; 56CB MOV R7,A ; 56CC MOV R3,A ; 56CD MOV A,R6 ; 56CE SUBB A,R0 ; 56CF MOV R6,A ; 56D0 MOV R2,A ; 56D1 MOV A,R1 ; 56D2 PUSH 02 ; 56D4 PUSH 03 ; 56D6 JZ 56F1 ; 56D8 MOV DPH,R4 ; 56DA MOV DPL,R5 ; 56DC MOVX A,@DPTR ; 56DD INC DPTR ; 56DE MOV R4,DPH ; 56E0 MOV R5,DPL ; 56E2 MOV DPH,R2 ; 56E4 MOV DPL,R3 ; 56E6 MOVX @DPTR,A ; 56E7 INC DPTR ; 56E8 MOV R2,DPH ; 56EA MOV R3,DPL ; 56EC DJNZ R1,56D8 ; 56EE MOV A,R0 ; 56EF JZ 56F4 ; 56F1 DEC R0 ; 56F2 SJMP 56D8 ; 56F4 POP 03 ; 56F6 POP 02 ; 56F8 RET ; 56F9 NOP ; 56FA NOP ; 56FB POP FF ; 56FD MOV R7,A ; ------------------------------> ENDP <--------------------------- 3.1.3 Patches, posibilidades... La manera de llevar a cabo los patches es obviamente grabando el nuevo codigo en una eprom, y enchufarlo en el zocalo correspondiente. Es util aclarar, que en las eproms, se pueden pasar bits de 1 a 0. Manejando bien esto (y teniendo en cuenta que en Z80 el 00 es el Op. Code del NOP) se pueden ahorrar mucho tiempo de pruebas, o incluso diseniar un patch de tal manera de poder modificar directamente las Eproms originales, sin tener que subir todo el codigo denuevo. El primer patch que a uno se le ocurre en el codigo es la 'liberacion' del telefono, hacer que no gaste la tarjeta, o que no verifique si se acaba. Como seguramente es lo primero que se les ocurrio, y por que es ilegal, les dejamos que lo hagan ustedes. De todas maneras les queremos aclarar que es algo MUY facil. Un patch que podriamos haber hecho y que seguramente hubiera salido en Pagina/12 durante el anio 94 hubiera sido modificar un telefono para que al presionar una tecla (por ejemplo la de volumen 2 veces) pase un Manifiesto escrito expresamente para GonzoCon, o algo asi... no se, se veria de esta manera: ------------------------------> EXPO.Z <--------------------------- CountLines EQU 41d Timer EQU 06419h ReadKey EQU 03DA3h PutKey EQU 03DBDh Print EQU 00D8Dh Init EQU 028c8h InitDisplay EQU 00D37h KeepAlive EQU 02a77h org 0db9h nop nop nop org 0de0h nop nop nop org 0de7h defb 14h ; org 0eddh ; defb 2eh ; Patch de Descuelgue org 0DF1h call Main org 40d0h Main: ; di jmp PrintMsgs ;Wait: ; ld a,3 ; ld (Timer),a ;Wait3: ; ld a,(Timer) ; or a ; jmp nz,Wait3 ; ret Wait: push hl push bc ld a,2 Wait1: ld hl,0a000h Wait2: ld c,a dec hl ld a,h ld b,a ld a,l or b ld a,c jmp nz,Wait2 dec a jmp nz,Wait1 pop bc pop hl ret ; 01234567890123456789 Line1: defb 'The quick brown fox ' defb 'jumps over the lazy ' defb ' DOG ' defb ' ' defb 'Esta conferencia suc' defb 'ks, como todas las ' defb 'conferencias de ' defb '"hackers", y eso no ' defb 'tiene nada que ver ' defb 'con las buenas inten' defb 'ciones de F. ' defb 'Bostandante, es simp' defb 'lemente que hablar a' defb 'cerca de los hackers' defb 'es pointless. ' defb 'Los hackers no somos' defb 'ni queremos ser Rock' defb 'Stars, y toda esta ' defb 'publicidad barata se' defb 'la pueden meter en ' defb 'el culo, no la neces' defb 'itamos ni nos hace ' defb 'bien. ' defb 'Es logico que los qu' defb 'e no saben quieran s' defb 'aber que es un ' defb '"hacker", bueno vamo' defb 's a intentar una peq' defb 'ueña definicion. ' defb 'def: TODA PERSONA ' defb 'CURIOSA ES UN HACKER' defb 'POTENCIAL. ' defb 'La tecnologia nos la' defb 'venden con etiquetas' defb 'que nos dicen para q' defb 'ue usarla, ' defb 'todo eso es mentira.' defb 'la tecnologia es sol' defb 'o una herramienta, y' defb ' hay que saber darla' defb 'vuelta, y usarla del' defb ' otro lado. Todos es' defb 'cucharon que la info' defb 'rmacion debe ser lib' defb 're, esto solo signif' defb 'ica que todos tenemo' defb 's que poder elegir e' defb 'l pasto del que come' defb 'mos. La investigacio' defb 'n en ciencias es una' defb ' de las actividades ' defb 'intelectualmente mas' defb ' gratificantes, y to' defb 'dos los investigador' defb 'es son en cierta med' defb 'ida hackers. si el g' defb 'obierno anuncia ahor' defb 'a que privatiza la C' defb 'NEA, por que lo mand' defb 'o el banco mundial, ' defb 'y si Cavallo manda a' defb 'l Conicet a lavar lo' defb 's platos, y todo eso' defb ' es tan LEGAL, nos p' defb 'reguntamos quien par' defb 'a juzgar la legalida' defb 'd de un grupo de per' defb 'sonas que lo unico q' defb 'ue buscan es el cono' defb 'cimiento. Desafiar l' defb 'as leyes en las que ' defb 'uno no cree es la un' defb 'ica manera de seguir' defb ' creyendo en uno mis' defb 'mo y no convertirse ' defb 'en un pedazo de sill' defb 'on, para que venga a' defb 'lguien y se te sient' defb 'e arriba. ' defb ' ' defb ' Manifiesto HBO ' defb ' Hacked By Owls ' PrintMsgs: push af push hl push ix push de push bc call ReadKey push af jmp c,Return cmp 'B' jmp nz,Return call KeepAlive ld hl,Line1 ld b,CountLines push bc Loop: push bc push hl pop bc ld hl,14h add hl,bc push hl xor a call Print jmp NoWait call Wait NoWait: pop hl ld bc,14h add hl,bc pop bc djnz Loop call Wait call Wait call Wait call Init jmp $ Return: ; ei pop af call nc,PutKey pop bc pop de pop ix pop hl pop af ld (0641FH),A ret defb 'Srs. de Telecom:',0dh defb 'Esperamos no tomen a mal nuestro atrevimiento,',0dh defb 'nuestra intencion no era causar inconvenientes',0dh defb 'solo era dar a conocer nuestro mensaje de una ',0dh defb 'manera acorde a la manera de pensar de la gente',0dh defb 'a la que queriamos llegar. Para minimizar los',0dh defb 'inconvenientes elegimos un telefono fuera de',0dh defb 'servicio',0dh defb 'Si les interesa comunicarse con nosotros para',0dh defb 'cualquier cosa, nosotros, periodicamente nos',0dh defb 'contactamos con el editor de la revista Virus',0dh defb 'Recort.',0dh -------------------------------- ENDP ----------------------------- vaya, que divertido hubiera sido. para empezar podriamos tratar de ver hasta donde mapea la ram y hasta donde la rom, aunque mas o menos ya lo sabemos, pero podria ser util un --------------------------------> RAMTES.Z <-------------------------- CountLines EQU 41d Timer EQU 06419h ReadKey EQU 03DA3h PutKey EQU 03DBDh Print EQU 00D8Dh Init EQU 028c8h InitDisplay EQU 00D37h KeepAlive EQU 02a77h MakeHexStr EQU 03fe4h ; Makes 65F2h=4-Hexs String of (HL..HL+3) PruebaEspia EQU 00c77h Inicializac EQU 00C8Eh org 145h defb ' Ramtes 1.04 ' org 0db9h nop nop nop org 0de0h nop nop nop org 0de7h defb 14h ; org 0eddh ; defb 2eh ; Patch de Descuelgue org 0DF1h call Main org 40d0h Main: jmp PrintMsgs Wait: push hl push bc ld a,2 Wait1: ld hl,0a000h Wait2: ld c,a dec hl ld a,h ld b,a ld a,l or b ld a,c jmp nz,Wait2 dec a jmp nz,Wait1 pop bc pop hl ret ; A A# B C C# D D# E F F# G G# ; 0 1 2 3 4 5 6 7 8 9 10 11 PrintMsgs: push af push hl push ix push de push bc call ReadKey push af jmp c,Return cmp 'B' jmp nz,Return call KeepAlive LD B,010H LD A,020H LD HL,065F0H Loopy: LD (HL),A INC HL DJNZ Loopy call PruebaEspia ld hl,0 Loop: ld a,(hl) inc a ld b,a ld (hl),a ld a,(hl) cmp b dec b ld (hl),b jmp nz,ROM ld (6900h),hl ld hl,0FFFFh ld (6902h),hl push hl ld hl,6900h call MakeHexStr call PruebaEspia call Wait call Inicializac pop hl ROM: inc hl ld a,l ld b,a ld a,h or a,b jmp nz,Loop call Init jmp $ Return: pop af call nc,PutKey pop bc pop de pop ix pop hl pop af LD (0641FH),A ret ----------------------------------- ENDP ----------------------------- O hacer un programita que toque musica por los DTMF, bah. Llendo mas lejos podriamos pensar 'que bueno seria hacer un interprete de Scripts, programables desde teclado, para usar el telefono por ejemplo para que llame todo el dia a la casa de fabian garcia o cosas productivas por el estilo' Programar la red de telefonos para que revierta el DES. (Haciendo el ingreso de la clave por tarjeta o teclado). Hacer el seguimiento de una persona por el codigo de su tarjeta, haciendo que los telefonos te avisen de su posicion por DTMF. Jugar una busqueda del tesoro por la ciudad. Hacer que todos los telefonos llamen a otro de manera de que vayan sonando a lo largo de un 'camino'. Hacer que todos los telefonos llamen al comando radioelectrico al mismo tiempo mientras ustedes roban un banco (Cosa que nunca hariamos nosotros por que no es nuestro modus operandi) Tretas similares para la bolsa. Patchar el telefono para usarlo de terminal. y para divagar supongo que son tan piolas como nosotros, en fin, anyway, bah. 3.1.4 Conceptos de seguridad fisica Todos los telefonos tienen la misma llave. Es ridiculo, es gracioso... ese truco es estupido, ese truco es barato, es absolutamente inseguro, pero al menos no tienen disquetera. Un punto menos para Telecom y Schlumberga. Es MUY DIFICIL hacer una tarjeta trucha que funcione por su 'detector de permeabilidad magnetica'(c). Habria que meter todo el circuito en la parte que queda adentro de la chapa, y hacerlo tan fino como para que pase por la ranura. Hacer la comunicacion con fibras opticas I/O. Diseniar un robotcito que se las arregle para pasar por atras de la chapa y enganchar los cables, o ponerle una Bomba. Un punto para Schlumberga. Es interesante lo que hicieron los de telefonica, de hacer que su telefono pese 500 kilos, lo que hace (haria quiero decir) muy dificil su transporte y consecuente choreo. No se les ocurrio a los de Telescum, pero bueno. Son Humanos. No tiene Alarma, como dice el rumor. Ni avisa a la central. ni nada por el estilo. podria hacerlo, o tener un policia enano adentro que te pega o algo. No tiene. No funciona con una linea comun, no se que tiene de seguro eso, pero no lo hace. /\ |__ No tiene. Casper && Logical Backdoor Absolute disclaimer: Nada de lo que se sugiere en los parrafos precedentes sucedio, ni sucedera. =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =============================================================================== 0x01050003 - POCSAG, el protocolo. ================================= by pelaca (semi cutpasteado) (pelaca, esto lo tendrias que haber escrito vos) El POCSAG es el formato con el que se transmiten los pages a esos bichitos que quien se precie lleva hoy colgado del cinturon. POCSAG paging format, code and code capacity The POCSAG (Post Office Code Standardization Advisory Group) code is a syncronous paging format that allows pages to be transmitted in a SINGLE-BATCH structure. The POCSAG codes provides inproved battery-saving capability and an increased code capacity. The POCSAG code format consists of a preamble and one or more batches of codewords. Each batch comprises a 32-bit frame syncronization code and eight 64-bit address frames of two 32-bit addresses or iddle codewords each. The frame syncronization code marks the start of the batch of codewords. -PREAMBLE STRUCTURE The preamble consists of 576 bits of an alternating 101010 pattern transmitted at a bit rate of 512 or 1200 bps. The decoder uses the preamble both to determine if the data received is a POCSAG signal and for syncronization with the stream of data. |---Preamble----|-----------First Batch-------------|--Subsec. Batch--| ______________________________________________________< <____________ paging | 576 bits of | | | | | | | | | | | > > | format | reversals |F| | | | | | | | | | | | | | | | |F| | | (101010, etc) |S| | | | | | | | | | | | | | | | |S| | |_______________|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|__< <____________| > > 1 FRAME = 2 CODEWORDS Preamble Batchs 512 BPS 1125 mS 1062.5 mS 1200 BPS 480 mS 453.3 mS CodeWords Structure ____________________________________________________________________ BIT | | | | | | NUMBER | 1 | 2 to 19 | 20,21 | 22 to 31 | 32 | |___|______________|_______|_______________________|_________________| ____________________________________________________________________ ADDRESS| | | | | | FORMAT | 0 | Address Bits | S I B | Parity Check Bits | Even parity | |___|______________|_______|_______________________|_________________| ^ Source identifier bits ____________________________________________________________________ MESSAGE| | | | | FORMAT | 1 | Message Bits | Parity Check Bits | Even parity | |___|______________________|_______________________|_________________| -BATCH STRUCTURE A batch consist of frame syncronization code follow by 8 frames of two address codewords per frame (16 address codewords per batch). In order to maintain the proper batch structure, each frame is filled with two address codewords, or two idle codewords, or two message codewords, or any apropiate combination of the three codewords types. -FRAME SYNCHRONIZATION CODE STRUCTURE The frame synchronization (FS) code is a unique, reserved word that is used to identify the beginning of each batch. The FS code comprises the 32 bits: 011111100110100100001010111011000. -OPTIONAL ALTERNATE FRAME SYNCRONIZATION CODEWORDS An alternate frame syncronization (AFS) code can be selected to support special systems or systems that require increased coding capability. The AFS is generated in the same manner as an address codeword (i.e., BCH codeword with parity bits). The POCSAG signaling standard has reserved special codewords for the AFS from 2,000,000 to 2,097,151. The use of the AFS requires the paging system to support the AFS. The AFS will change to frame 0 on the programmer since no frame information is included in the AFS. The AFS should use address 1 so that bit 20 and 21 are 0. -ADDRESS CODEWORD STRUCTURE An address codeword's first bit (bit 1) is always a zero. Bits 2 through 19 are the address bits. The pagers looks at these bits to find its own unique address. Each POCSAG codeword is capable of providing address information for four differents paging sources (Address 1 to 4). These address are determined by combinations of values of bits 20 and 21 ( the source-identifier bits). Bits 22 through 31 are the parity check bits, and bit 32 is the even parity bit. BIT 20 BIT 21 Address 1 0 0 Address 2 0 1 Address 3 1 0 Address 4 1 1 Pre-coded into the code plug are three bits which designate the frame location, within each batch, at which the pager's address is to be received; the decoder will look at the codewords in this frame for its address. Power is removed from the receiver during all frames other than the precoded one, thus extending pager battery life. -CODE CAPACITY The combination of the code plug's three pre-coded frame location bits and address codeword's 18 address bits provides over two millon diferent assignable codes. In this combination, the frame location bits are the least-significant bits, and the address bits are the most-significant bits. -MESSAGE CODEWORD STRUCTURE A message codeword structure always start with a 1 in bit 1 and always follows directly after the address. Each message codeword replaces an address codeword in the batch. -IDLE CODEWORD STRUCTURE The idle codeword is unique, reserved codeword used to talk place of an address in any frame that would not otherwise be filled with 64 bits. Thus, if a frame contains only an address, an idle codeword comprises the 32 bits: 01111010100010011100000110010111 -POCSAG CHARACTERS CHAR HEX | CHAR HEX | CHAR HEX | | | | # 23 | $ 24 | @ 40 | [ 5B | \ 5C | ] 5D | ^ 5E | _ 5F | ' 60 | { 7B | | 7C | } 7D | ~ 7E | DEL 7F | SP 20 | =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ============================================================================== 0x01050004 - My First Backdoor Toolkit #3 ========================================= Esta es la seccion de los programas interesantes y toda esa verga... NONOSEQUE by [ME] ~~~~~~~~~ Aca iba un programita codeado por [ME] que guardaba fechas y horas y demas de una serie de archivos, ejecutaba un shell y cuando salias volvia a restorear todo. Hoy a la noche, completamente decididos a sacar la revista no pudimos encontrarlo en el directorio donde debia estar, ni en ningun otro. Se los prometemos para un proximo boletin. (recuerden insertarlo en esta parte de la revista cuando lo vean) =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ============================================================================== 0x01050005 - Conferencias varias ================================= HOPE 94: ~~~~~~~ by Saltamontes y Logical Backdoor (Miami South Beach, 10/06/95 12:30:48 hs) Empecemos diciendo que no nos acordamos de nada de lo que paso en HOPE. Terminamos diciendo lo mismo. GonzoCon 94: ~~~~~~~~~~~ by Logical Backdoor y Casper (Miami etc. 12:32:30 hs) Paso algo interesante con un matafuegos, paso algo interesante con un telefono publico, le afanamo la bandera. Azrael se pelio con el gil ese, y con aquel otro que queria vender sus CDs. El chacal lo buscaba para pegarle con cara de malito acusandolo por el matafuegos. En el puesto de choripan entrevistamos al mismo Chacal. Bonsemblante se pasiaba de la sala al comedor con cara de feliz cumplianios. Habia policia. Mucha cara de gil. Mucho Nerd, mucho diskette en la mano. Gente de FIDO. Una Periodista de P/12 que todos conocemos. Caniglia y Sentinelli mentian sobre RSA, mientras nos preguntabamos que mierda tenia que ver esto con una conferencia de Hackin y Virusa, teniendo en cuenta que lo que dijeron no es mas de lo que cualquiera puede leer en la contratapa de algun libro. Sescanearon celulares. Aparecio el Gilun de Emmanuel Goldstein con su paniuelo en la cabeza diciendo boludeces. Un Holandes daba vueltas, y un brazuca trataba de sacar fotos (si, FOTOS??!!). Nos hicimos de una foto de fernandito barriendo el polvo del matafuegos. A alguien le puede haber servido. Nosotros nos acordamos de una rubia impresionante, pero no de lo que repartia. Nos parece que lo rescatable de la conferencia fue que sirvio para sentar un precedente, para que? preguntan. Y bueno, go on reading my friends. Summercon 95: ~~~~~~~~~~~~ by Saltamontes Introduccion ============ Sabado 27, 8:30 AM. Suena, retumba y recontrasuena la puerta. "Bien podria ser una pesadilla; ahora bien, pesadilla o no, hay una manera de terminar con esta tortura: levantarme y abrir la puerta. Hmmm...aparentemente la solucion es peor que el problema" - analizo y concluyo en inciertas condiciones de conciencia. Sabado 27, 8:33 AM. Serenata de percusion acustica en DO menor para puertas y picaportes. Me levanto, camino, abro la puerta y me asusto. La cara de lbd con su nuevo look a esas horas de la ma#ana no es algo facil de presenciar, es casi tan espantoso como encontrarse un gremlin en el inodoro. Sabado 27, 8:50 AM. Cruzo saludos y abrazos con Casper, Jarret y lbd. Despues de estar en EE.UU. por mas de un mes, puedo decir que ver las caras de estos delincuentecillos es algo placentero. Cuando me fui de Argentina, por determinados motivos entre los cuales predominaba la fiaca (mi fiel compa#era), no pude escribir una despedida. Ahora, encuentro la oportunidad de despedirme, saludarlos y contarles un poco que es lo que anda pasando por el norte estos dias... Mi viaje ======== En el momento de mi partida, la idea de mi viaje se podia resumir en una premisa y un plan tentativo: La premisa era algo asi como no tener ningun tipo de obligacion ni atadura en relacion a lugares y tiempos -"Ir a donde quiero ir en el momento que tengo ganas de ir...". El plan era viajar y quedarme un tiempo a en ciertos lugares, Hawaii, Australia, Indonesia, blah, blah, blah...pero esto siempre sujeto a la prioridad de la premisa. Los motivos de mi viaje eran y son multiples, el deseo de viajar, tomar distancia y reflexionar sobre lo quiero hacer con mi vida, dedicarle tiempo a todos esos deportes raros en los que siempre estuve involucrado, y otras tantas cosas que me impulsaron a tomar la decision de partir. Llegue a Miami una adorable ma#ana de principios de mayo y luego de 3 soleados y calurosos dias emprendi mi viaje rumbo a Bushnell. Este pueblito, de no mas de dos mil habitantes, queda en el norte de la Florida entre Tampa y Orlando. Ahi se encuentra un discreto centro de paracaidismo llamado Birdland, tranquilo y ubicado en el medio del campo. Instale mi carpita (la cual pague u$s 30!) abajo de unos arboles y a unos 60 metros de la pista. Desde ese momento, me dedique a plegar paracaidas, saltar, comer naranjas (de la Florida...!), andar en bicicleta y a no tocar ningun aparato/maquina/herramienta electrico/electronica excepto mi linterna y mi walkman. Despues de mas de 2 semanas de esa vida, me sentia el hombre naturaleza aunque confieso que un poco de civilizacion extra#aba. Fue por eso que decidi rumbear nuevamente para Miami, la idea era quedarme ahi hasta que el resto de las liendres de 'HBO y sus amigos' llegasen. De despertarme con los pajaritos, gallos, vacas, chanchos y hormigas pase a despertarme con el dolor de cabeza de la resaca de la noche anterior. Una semana divertida, con el movimiento de un lugar como South Beach y los martillazos de mi temporal empleo de carpintero! Para el sabado llegaban lbd, Casper y Jarret y ya el domingo estabamos todos, se nos habia unido OPii. Digo todos porque [ME] que pensaba venir, se quedo trabajando mientras que Janx Spirit se quedo buscando empleo. Summercon '95 ============= Ya dije que OPii se nos unio el domingo 28, lo que no dije, es que nos trajo algo de comida del avion en formato vomito, muy considerado de su parte...no queria que pasaramos hambre. Un lunes en Fort Lauderldale, playa, mar, 'Taco Bell', un australiano, un ingles, cinco argentinos, una van, cielo azul, mujeres en peque#os trajes de ba#o...que mas les puedo decir....hmmmn si, espero que no hayan pasado mucho frio. Ya martes, Casper y lbd fueron a comprar una muy buena videocamara, excepto que...a quien se le ocurre comprar una camara que no sea stereo hoy dia??? frustracion que les va a durar a nuestros amiguitos por el resto de sus dias. Luego, y tras pasar unos soleados y extremadamente calurosos dias en Miami partimos rumbo a Atlanta. El vehiculo: una amplia y comfortable van Mazda. Nuestra primer parada fue en Bushnell, donde decidimos pasar la noche y yo aproveche para recoger unas cartas que no habian llegado. Casper y lbd durmieron juntitos dentro de la van, Jarret, OPii y yo durmimos dentro de un hangar. Les puedo contar que el sofa era bastante comodo, ahora si quieren saber que tal se duerme en el piso de un hangar preguntele a OPii o a Jarret. Por la ma#ana, boludeamos un rato, OPii se decidio a saltar el lunes de la siguiente semana, yo fui a saludar a la rubia que vende naranjas en el pueblo y que se iba a hacer las tetas al otro dia...seguimos viaje hacia Daytona Beach. En el camino nos chocamos con EPCOT, es bueno reafirmar que existen muchisimas maneras de desperdiciar el dinero, entre estas destaco el pagar la entrada a este apocaliptico mundo del futuro (y comprarse una camara mono!). El arrepentimiento y sufrimiento por haber tirado mi dinero me duro todo el dia... aunque reconozco que me gusto el Maelstrom que queda en la parte de Noruega. A unos cientos de millas ya de EPCOT, llegabamos a Daytona Beach. Playa nuevamente! Nos quedamos en el mar barrenando y pelotudeando hasta que oscurecio. Lbd se rascaba los pies y leia a Pournelle/Niven. Noche de reggae, cerveza y pool. Jueves 1, viajamos todo el dia para llegar a Atlanta por la tardecita. Dentro del hotel ya habia caras conocidas. En la habitacion aparecia una primer victima: la cerradura. Tras una diseccion que duro algunas horas, los chicos ya estaban trabajando en una llave maestra, yo dormia. Por la noche en el bar comenzamos a inspeccionar las bebidas...OPii necesito toda una botella de 'Absolut' y horas de charla con Tom, el bartender, para finalmente aprobar el 'screwdriver' [1]. Hambre, lluvia - restaurant, van. Debido a mi condicion de viajero, mi presupuesto diario, idilicamente, debia de mantenerse en un rango rozante al cero. Imposible, <por ejemplo> un dia de hambre como este, terminar comiendo hamburguesas de 8 dolares no era algo para asombrarse. De hecho terminamos comiendo hamburguesas de 8 + helado de 4 = agujero en el bolsillo de 12. El clima de boludeo pre-conferencia era bastante interesante. Es bueno destacar que esta era la primer Summercon abierta, esto quiere decir que cualquiera podia concurrir sin necesidad de invitacion personal. Vamos a decir que la proporcion de lamer-attendees parecia menor que en HOPE. Me cuesta creer esto que estoy escribiendo, pero es posible que el espiritu de Summercon haga lo suyo con estos indeseables wannabees del so-called underground informatico y los haya hecho invisibles a nuestros humildes ojos. Nos despertabamos el viernes con una sola cosa en mente. Internet??, X.25, telefonos, BELL, cryptografia??, hmmm...noo! era algo mucho mas gratificante, teniamos un deseo ardiente. No estoy hablando de ATM, fibras opticas ni nada de eso...queriamos DESAYUNAR! Bajamos al lobby, recojimos el paquete (un indeseable wannabee de San Francisco que se nos habia adosado y habia quedado bajo la proteccion de Jarret, quien se habia encari#ado con el), nos subimos a la van y nos perdimos en Atlanta en busca de un desayunarestaurant. Si alguna vez manejaron un auto con 2 o 3 personas dando indicaciones, imaginense una van con 6 sabelotodos que nunca en su vida habian pisado esa ciudad. Finalmente, y debido a mi gran sentido de ubicacion y mi habilidad natural, encontramos un lugar para desayunar. El paquete y los chicos se quedaron a desayunar ahi, yo me fui en busca de algo mas acorde a mi presupuesto. Despues de resignarme a entregar u$s.50 al maldito ATM por el simple hecho de dejarme usarlo, me encamine hacia el fuckin' 'Dunkin' Donuts' mas cercano. Hotel, mejor dicho, bardelhotel, caras conocidas...OPii entregaba el video de XUXA en bolines al guru (ver la descripcion del termino en futuros numeros de HBO) Erik Bloodaxe, tras a#os de que este ultimo le ruegue a nuestro amigo integrante de HBO (aguante HBO carajo!!!). Jesse competia en peinado con lbd, todos tomaban, charlaban y eran felices. Helios abandonaba la tierra, y oscuridad era lo que se apreciaba por las ventanas. Un sysadmin de EQUIFAX me invitaba una cerveza. Yo aceptaba. Sobre la barra se podian apreciar, en distribucion caotica, ciertas invitaciones para el 'The Gold Club', algo asi como el mejor strip club de los EE.UU. Mas cerveza, vodka y variantes. Los CDC distribuyendo sus stickers; remeras con motivos divertidos, remeras con motivos lamerones, remeras con logos de todas las conferencias que se puedan imaginar. La decision esta tomada, 27.8 personas en la van (ordenadas de mayor a menor) se dirigen hacia el 'Gold Club'; Yo: bermudas y sandalias, otros: adolecentes inberbes, OPii: manejaba la van de regreso al hotel. Primera frustracion, no nos habian dejado entrar. Sabado 2 de Junio de 1995. Dia de conferencia. Phrack Magazine & Computer Security Technologies PRESENT S U M M E R C O N June 2-4, 1995 Atlanta, Georgia 10:30 AM. Nosotros dormiamos. AGENDA 10:00 Intro 10:10 Robert Steele - Hackers from Intelligence Perspective 11:00 Eric Hughes - Cryptography, Banking and Commerce 12:00 Annaliza Savage - Discussion of "Unathorized Access" (followed by public screening) 01:00 Lunch - on your own 02:15 Special Secret Video Presentation 03:00 Bob Stratton - The future of TCP/IP security 04:00 Winn Schwartau - Electromagnetic Weaponry 05:00 Chris Goggans - International Intrigue 11:00 AM. Nosotros desayunabamos y los escuchabamos a Eric. SPEAKER BIOGRAPHIES ROBERT D. STEELE is a self-confessed former spy who discovered late in his career that open sources-public information including the Internet--were often cheaper, faster, and even better than Top Secret information. His war cry is "don't send a spy where a schoolboy can go". He has also been a very active proponet for a national information strategy and a major investment in electronic security. His phrase, "hackers are a national resource" has been quoted all over the world, including the Singapore Straits Times. He is a regularly invited participant at the old fart Lake Tahoe hackers conference, has given a workshop at Hack-Tic, and was the keynote speaker at Hackers on Planet Earth. WINN SCHWARTAU is one of the country's leading experts on information security and electronic privacy. As the Executive Director of Interpac, Inc., Winn provides services to industry and government on encryption, enterprise information security, policy, information warfare, van Eck radiation, HERF guns & EMP/T Bombs (Non-lethal magnetic weaponry) hackers, US and international policies and standards, electronic privacy and related issues. he is also a partner and Vice-President of Bussines Development, Secure Systems Group International. His recent non-fiction book, "Information Warfare: Chaos on the Electronic Superhighway (Thunder's Mouth Press, NY) is a succesful and compelling non-technical analysis of personal privacy, economic and industrial espionage and national security. Mr. Schwartau is also the author of "Terminal Compromise" a fictionaalized account of a computer-terrorism based war waged on the United States. BOB STRATTON is the Security Products and Services Manager for one of the oldest commercial Internet providers. Over the past 10 years, he's been involved with the growth of the Internet as an evangelist, consultant, and commercial software developer. Mr. Stratton is a frequent lecturer on issues of personal privacy and information security, and cryptography to commercial clients and government assemblies. ERIC HUGHES co-funded cypherpunks and wrote the first of their stateless remailers. He is president of Open Financial Networks, a service and technology company in electronic commerce systems. He specializes in the payment, commerce, and negotiation systems that will be used in highly networked environments. ANNALIZA SAVAGE is an independent film maker from London who recently completed Unathorized Access. UA is a documentary about the hacker underground. Shot in the US and Europe, UA explores the underground from the inside, dismissing the usual media mythologies surrounding the 'outlaw hacker'. Annaliza is also one of the trolls at Bianca's Smut Shack (http://bianca.com/bump/ua/bilbo.html) CHRIS GOGGANS is Erik Bloodaxe. Speaker, consultant, narc. Editor, author, interwee. Hacker, cracker, knick-knack paddy-whacker, (give a dog a bone). Love him, or hate him, he's the guy with your 10 dollars. (mis 10 dolares...urghh). Para resumir mi opinion acerca de los distintos speechs voy a utilizar el, de ahora en mas, famoso metodo de las lechuzas: * lechuza: ULTRA LAMER-ON ** lechuza: LAMER-ON *** lechuza: Hmmammmsaaaa **** lechuza: Aceptable (relativamente interesante) ***** lechuza: C00l (interesante) ****** lechuza: Superrr C00l (Muy interesante) ******* lechuza: Digno candidato a la LECHUZA de ORO Del primer speech no les puedo contar nada, los unicos que escucharon un poquito del final fueron OPii y Casper. Yo llegue cuando Eric empezaba a hablar. Para los que no lo conocen, les cuento que Eric Hughes es de los tipos mas grosos en materia de criptografia y movimientos finacieros por medios electronicos, ademas de saber una bocha de otras tantas technology-related cosas. El speech abarco varias cosas, basicamente hablo de nuevos metodos criptograficos para garantizar un moviento de dinero electronico mas seguro. Anticipo la posible situacion de las tecnologias de banking y flujo de valores para los proximos 10 a#os, mostrando algunas debilidades de los sistemas encarandolos desde el punto de vista legal. Para mi, escuchar a un tipo como Eric Hughes es siempre interesante, y este speech no se quedo atras. Aca tenemos unas dignas ***** lechuza. Si ya estan cansados de reirse de las mierdas que producen los medios acerca de nosotros, les recomiendo ver "Unauthorized Access". Este film de Annaliza Savage, cuya presentacion vimos tras escuchar el speech de Eric, es altamente recomendable. Annaliza se tomo el trabajo de hablar con mucha gente que realmente esta dentro de la scene internacional: KC, Phiber Optik, Erik Bloodaxe, Jesse, la gente de CDC, la gente de Hack-Tic, y muchos otros. El film dura aproximadamente una hora y es bastante dinamico, buena musica y buenas tomas. Definitivamente lo mejor que he visto hasta el momento en este area. Si quieren una copia, contactense con nosotros o directamente con ella al [Email address]. A Analiza y su video les doy **** lechuza. Lunch time!!! 'HBO y sus amigos' decidian ir a alimentarse! /** Interrumpo mi relato brevemente para mandar un caluroso saludo a Janx que no pudo venir y a quien no veo desde hace meses; aprovecho tambien para dar un consejo a nuestros lectores en cuanto a su rol de consumidores: "Si compran una videocamara, asegurense que sea stereo; no vaya a ser que les pase lo mismo que a Gasparin y a Logical Blackdoll!!!". **/ Continuando...hmm, ahh si, los 'HBO & friends TM' se procuraron un chinoalmuerzo en una pocilga que se encontraba a escasas, pero hambrientas, 3 cuadras del Clarion Hotel Downtown. Ya eran eso de las 3 de la tarde y estabamos nuevamente en el salon de conferencias. Chris se acercaba al atrio para presentar su 'Special Secret Video', como introduccion aclaraba que el desconocia completamente la procedencia del mismo, sus autores y como habia llegado a sus manos ;). Este homemade video, o mejor dicho switchmade video, nos muestra como ciertos delincuentecillos irrumpen en una central telefonica (5AESS) a altas horas de la noche. Andan en skate, se loguean en las terminales, pasean por COSMOS y le hacen pito catalan en la cara a BELL. Verdaderamente divertido... Son *** lechuza para el 'Special Secret Video'. Luego de disfrutar este video, se presento Mr. Spy Microfono, alias The Sambu-Llon (Realmente no recuerdo su nombre) quien no estaba programado en la conferencia. Mr. Microfono nos hablo de los distintos dispositivos de espionaje tipo microfonos secretos, y otras variaciones; conto anecdotas, como prevenir espionajes y en sus historias nos hizo saber lo fenomeno que es, y como previno de perder cientos de millones de dolares a ciertos gigantes debido a sus servicios. Seriamente: ** lechuza. No temo a equivocarme si digo que Bob Stratton es uno de los tipos que mas sabe de seguridad informatica en el mundo, su speech fue un overview de TCP/IP version 6 (IP next generation) como introduccion seguido por una descripcion de ciertos aspectos de su seguridad. Son **** lechuza para el speech de Strat. Despues de escuchar a Bob, el sue#o me invitaba a gozar una dulce siesta. No puedo ser totalmente fiel y justo al evaluar a Winn Schwartau, llegue para el fin de su presentacion. Mostro un video elaborado por un programa de noticias yanqui donde se veian los peligros de ciertas interferencias electromagneticas. Sujeto a la parcialidad de mi juicio le doy ** lechuza. Llegando casi al final de la conferencia Emmanuel Goldstein hizo una breve presentacion de un film que, segun se anuncia, estara en las pantallas el a#o que viene. El nombre de esta pelicula sera "Hackers", y por lo que vimos en este preview (siempre que nuestras carcajadas nos permitieron prestar atencion) promete ser una verdadera bosta. Emmanuel abrio el paraguas diciendo que si bien lo vienen consultando y pidiendole consejos desde hace unos a#os el no es responsable de esta payasada en ningun aspecto. El editor de la 2600 tambien conto el motivo por el cual Kevin Mitnick, ahora preso, tuvo que darse a la fuga 2 a#os atras. Escuchamos tambien, de la boca de Mr. Goldstein la desgracia de Bernie S. y se ofrecio a hacer de enlace para cualquiera que quiera comunicarse con el. Lo de Emmanuel Goldstein no lleva calificacion ya que no expuso ningun tema en particular. Como broche de oro, y para saciar la curiosidad que todos teniamos, Chris dirijio la palabra a la audiencia. Su esperado speech anunciaba desencadenar un incidente internacional. Finalmente a lo que Bloodaxe se refiero fue a los distintos aspectos legales de hackear desde EE.UU. en otros paises. Y como seria el procedimiento en el supuesto caso que en el pais del ataque se dieran cuenta. En pocas palabras, nada demasiado interesante... ** lechuza para Erik Bloodaxe. Aclaro que Erik, integrante de LOD y editor de la Phrack, es uno de los hackers mas reconocidos y conocidos en los EE.UU. y en el mundo. Es realmente un tipo que sabe una bocha, aunque a veces diga algunas ganzadas. Terminada la activad formal de la conferencia, la gente se esparcio por el hotel en busca de rincones donde la luz no los pudiera alcanzar. Tiempo de un descanso para luego reincorporarse en el bar. Gente tirada en los sillones de cada piso. Es interesante notar, que a esta altura de la conferencia, la gente del hotel no sentia precisamente amor por nosotros; mas bien, nos querian rajar a patadas. Un wannabee que se habia excedido de alcohol, era ahora llevado a la comisaria por los policias de Atlanta. Un poco de barullo, quilombo, etc. En el momento en que esto transcurria, yo me encontraba hablando por telefono con mi mami; pagaria por verle la cara cuando le dije "Mami te llamo en un rato, se estan llevando preso a uno". Afortunadamente tenia mi camara de fotos conmigo, interesante postal me llevo de Atlanta! Destaco que entre todo este bardo nuestro heroe de HBO: OPii, se encontrado mas alla de todo, gozando de sus vodkas en el bardelhotel, nada podia quitarle su relajo en ese momento. Charlamos con todo el mundo y nos cagamos de la risa hasta el oscurecer. En el cuarto de los Datahaven, que habian traido como de costumbre pilas de equipos, habia bastante movimiento. Gente jugando al atari, al viejo nintendo, gente en IRC, un homeless dandose una ducha, todo esto y mucho mas ocurria en el cuarto de los Datahavens. Si bien habian traido una pila de equipos, esto no era ni la mitad de lo que habian llevado a HOPE... Lo bueno de estas conferencias, es que siempre ocurre algo en algun lugar. A eso de las 2:00 AM, estaba subiendo al ascensor con Casper cuando me cruzo con d00f en un estado literalmente deplorable (el de el, obviamente...:). Entonces, empieza a descargar su veneno contra E. Goldstein. Casper y yo: risas. d00f - "Dyu know why did EG go to Argentina??" C&S - "what?" d00f - "Yeah, he didn't go because of the fucking conference. He went there because he wanted to see this girl who interweed him last year. He didn't give a shit about that con. He is an ass-hole" Salta - " But...the argentinian organizers paid his ticket, didn't they??" d00f - "Nooo, he's fuckin' rich, he's got tons of money. His father is rich, but he pretends not be. He is a lier, he sucks. He dresses like a poor..when he can buy Armanis..just to pretend." Salta - "So, what happend with this girl, was she cute?? what happened???" d00f - "Nothin' he went all the way to Argentina, and nothing happend with the girl, yeahh she was nice..." La puerta del ascensor se abrio y sin que este se haya movido un solo piso Casper y yo nos bajamos. Una hora mas tarde OPii y yo estabamos nuevamente en la van rumbo a "The Gold Club", esta vez dispuestos a entrar. Yo vestia un jean por primera vez en mas de un mes, imaginense...ya en el lugar, estacionamos y bajamos del vehiculo. No fueron dos pasos que dimos, que nos anunciaba un fuckin'-mamon-estaciona-autos que el lugar estaba cerrado. Segunda frustracion. No recuerdo a que hora me fui a dormir...se que me quede boludeando en el lobby del hotel hasta tarde y que me toco dormir en el piso. Eramos 5 en una habitacion para 2 personas; 2 por cama y uno en el suelo. Domingo por la ma#ana: todos durmiendo excepto Jarret. Domingo al mediodia, nadie puede dormir mas, Jarret nos deleita con su guitarra, urghhh!! La gente comenzaba a irse, nosostros boludeabamos. OPii intentaba entablar relaciones con su amiga Ophi, ella lo rechazaba [2]. Realmente no pasaron grandes cosas el domingo durante el dia. Una frustracion para Casper al intentar llevarse la cerradura de la habitacion de al lado, de la cual teniamos la llave; esto por culpa de Ophi, que quiso mudarse a la habitacion pegada a la nuestra simplemente para estar mas cerca de OPii y asi impidio que nuestro fantasmita amistoso se llevara la cerradura. Jarret, despues de investigar la manera mas economica posible, se fue para NY. Nosotros seguiamos en Atlanta! Otra vez mas OPii y yo intentamos ir a "The Gold Club", esta vez temprano y bien vestidos..."The Gold Club", esta cerrado los domingos; tercera y ultima frustracion con este puto cabaruto, urghhh! Una vez mas en el hotel, nos dirijimos a la habitacion de los Datahaven. Interesante experiencia, un video de fetiches, sometimientos y mucho latex. En la habitacion eramos unas 7 u 8 personas apreciando este video. Una se#orita forrada en un trajesito (muy sexi) de latex con capuchita llevando con una correa a un pobre se#or enfundado en su enterito de cuero con mascarita incorporada... Nos despertamos a las 11:00 AM sabiendo que el check out era a las 11:30, preparamos todo, nos ba#amos, desinfectamos y bajamos. En el frontdesk estaban los Datahaven con cara de mandril hambriento. Panzer se me acerca y me advierte: "They're gonna charge you u$s 50 more". Resulta, que la gente del hotel habia decidido terminar el acuerdo (por el cual pagabamos u$s 65 por habitacion) la noche del sabado-domingo, por lo que teniamos que pagar la tarifa normal por la noche del domingo-lunes. Nadie era feliz. Algunas discusiones y el manager del hotel se decidia a dejarnos la tarifa acordada previamente. Van cargada, hambre, 11:55 AM, lluvia. Comenzamos el viaje de regreso a Miami, pero...ahhh, un momento, los ni#os tienen que ir a la jugueteria para comprarse un sazzofonne y una trompeta. Carajo! Yo al volante, OPii en el asiento de acompa#ante. Como dato interesante, les cuento que supuestamente en nuestro viaje de regreso, teniamos que atravezar al huracan Allison (si como la rubia de Melrose Place). Recordemos que nuestro heroe OPii iba a hacer su primer salto el dia de hoy, teniamos que estar en Bushnell a las 3:00 PM; imposible...pero intentemoslo de todos modos. Unas cuadras para arriba, y dejo a los ni#os para que vayan a comprarse su sable y su consolador. Repito: lluvia y hambre, OPii tiene que estar a las 3PM en Bushnell (...agarren un mapa), huracan Allison en el camino. Ok, mientras esperamos masticamos algunas donuts. Despues de 30 minutos y de pensar todas las cosas que les podiamos hacer a estos dos mocosos (y que no les hicimos debido a nuestros altamente benevolos espiritus) aparecen caminando lo mas frescos. Acelero, Casper se para adelante mio, acelero nuevamente, Casper no se mueve. Finalmente se suben a la van los nenes. Casper me acusa de intento de homicidio. Me enojo. Nos peleamos. Barbaro! excelente manera de comenzar el dia, el hotel, la pelea...buehh, vamos a ver como sigue... Ya en la autopista, las constantes son lluvia, viento, sue#o y 180 KM/H. Salida #45 de la Interstate 75: Erotica Bar. Tras nuestras anteriores frustraciones, OPii y yo no vacilimos, lbd nos acompa#a mientras que Casper y su jaqueca se quedan en la van. Entramos, lbd feliz de que lo hayan dejado entrar. no voy a intentar hacer una descripcion del lugar, simplemente les digo que para OPii y para mi esta fue nuestra cuarta frustracion, con el agravante de haber tirado u$s 10 cada uno. OPii y yo suspiramos nostalgicos recordando tiempos de HOPE y "Flashdancers" en New York...Seguimos viaje. Repito: lluvia (o huracan), vientos (o huracan), 180 KM/H (o huracan). Ahora sumemos curva, un auto adelante, una van al costado, todos durmiendo menos lbd y el conductor (yo) y una suerte divina. Resultado: perdida de control del vehiculo, derrape de costado, serenidad total, Salta: "Nos matamos????" lbd : "Mierrda...!!" - con una calma fuera de lo comun en el mocoso. 300 metros patinando para atras a 150 KM/H. Bien, terminamos en una zanja sin el mas minimo rasgu#o. Este fue un dia el cual, juro, no me voy a olvidar jamas. Mientras todavia nos cuestionabamos el porque estabamos vivos, y si era justo o no, aparecio el marshall del condado masticando tabaco. Todo esto ocurrio en el sur de Georgia, por lo que la cara de blanco matanegros del marshal no nos alarmo tanto. LLuvia. Respondo con una mentira a cada pregunta del marshal matanegros, y 25 minutos mas tarde estamos siendo sacados de la zanja por un granjero chupasangre que se quedaba con nuestros u$s 75. Nuevamente en la ruta, y esta vez OPii al volante nos dirijiamos hacia Bushnell, graciosamente y en el medio del huracan, OPii todavia guardaba esperanzas de saltar. Llegamos a Birdland a las 08:00 PM. Bajamos a estirar las patas y seguimos viaje a Miami. Llegabamos al hostel a las 2 de la ma#ana del martes. Concluyo asi mi breve cronica/historia/relato de lo que ocurrio durante esta dulce semana. Les cuento que en el momento que estoy escribiendo esto, Jarret esta en NY, Casper y OPii duermen y el pedazo de pelotudo de lbd esta mirando como tipeo. La verdad, es que no tengo idea que es lo que voy a hacer en el futuro cercano, posiblemente me vaya a Hawaii o a Alaska. OPii se va a quedar una semanita mas aca en el norte y los pendexs se vuelvan para BA a estudiar y trabajar un poco. No se cuando voy a estar de vuelta por las tierras de HBO, pero me voy a mantener en contacto; los que quieran comunicarse conmigo dirijanse a los HBOs que ellos me van a transmitir cualquier cosa. Un beso grande a todos y especialmente uno enorme a mi novia....CHAU!!!!!!!!!! (y no se caguen de frio). [1] aunque destaquemos que nuestro heroe es mas afin al vodka puro que a esas bebidas de se#oritas. (correcion por pedido de nuestro heroe: OPii). [2] para que nuestro amigo no se enoje, voy a aclarar que no paso realmente nada entre ellos, fue simplemente un juego de seduccion mutuo. Aclaro una vez mas, OPii no queria nada con esta se#orita. Por si alguna vez estan en Atlanta, les dejo una peque#a listita de switches y frecuencias interesantes. Algunos Switches en Georgia: Lugar Tipo AC-NPA ========================================================================== Dallas ESS 5ESS 404-443,445 319 Main St., Dallas, GA 30132 Sandy Springs 1AESS 404-250,252,255,256,257,303,705,843,845,847,851 5340 Roswell Rd., Atlanta, GA 30305 Newton Main RSC 912-734 Hudspeth ^ Water, Newton, GA 31770 Adamsville 1AESS 404-505,691,696,699 3620 Bakers Ferry Rd., Atlanta, GA 30331 Atlngadl 5ORM 404-714,715 1030 Delta Blvd., Atlanta, GA 30320 Algunas frecuencias interesantes en Atlanta: 072.2000 Atlanta MCI airsignal 348.7000 Atlanta traffic control 409.2750 Postal service Atlanta 461.0500 Atlanta Sears mall 463.0250 Airport ems air Atlanta 485.2750 Government Atlanta Y me despido con una inspiracion poetica de nuestro querido guru: "Hacking is not a spectator sport." Erik Bloodaxe, 1995 (Grande Chris!, Walt Whitman al lado tuyo es un insecto...!!) =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=============================================================================== 0x01050006 - Nuestra Conferencia: MendozaConch ┤95 (96) ======================================================= Nuestra conferencia debia llevarse a cabo en Mendoza el anio pasado, nuestra revista debia haberse publicado en febrero del anio pasado. Y para que todo eso fuera realizado right in schedule nuestra cantidad de pajas diarias deberia haberse reducido en un 70%. Todavia nos queda la excusa de que somos una sociedad sin fines de lucro. Y ahora si, el anuncio que todos ustedes estaban esperando. Sin autorizacion de parte de los duenios del local convocamos para el 24 de mayo (de 1996, y vale la pena la aclaracion) a una reunion donde los unicos conferenciantes programados somos nosotros (programados por el NMIORP) en el ambito del American Internet CyberCafe noseque sito en L.M. Campos y Maure a las 22 horas. En base al clima, estado de las rutas y alineacion de jupiter y saturno con respecto a la quinta luna de rupert, la conferencia se extendera hasta una longitud maxima de 1024 semanas consecutivas sin dormir. Todas aquellas personas que se sientan autoaludidas por este llamado son bienvenidas a concurrir. Pueden llegarse hasta el establecimiento en compania de amigas, novias, companieras y demas mascotas que deseen ser groupies de HBO y ser introducidas al y por nosotros mismos los miembros [y sus miembros] El precio de la entrada es null y estan obligados a pagarnos Heinekens cuando queramos y vasos de leche para Salta. El lugar es declarado paralelamente embajada de Holanda, no necesitando visa para entrar. (Nota: En holanda its legal to carry it, its legal to buy it, and if you are the owner of a hash (cyber) bar its legal to sell it, and if you get stopped ... ) El evento sera autodeclarado obra de arte y de interes nacional. Estaran prohibidas las filmaciones y fotos. MendozaConch 95. 24 de mayo de 1996 CyberCafe de Maure y LM. Campos. (Cap. Fed.) Convoca HBO. Y es de enserio. Vos venis. (El caracter de este evento es mas onda party que disk-swap (para eso instalate un Windows 95)) Agenda: - Introduccion - Nudo - Desenlace (acrosticos backwise, not needed) Eventos especiales: - Video conferencia con EL Griton desde Sing-Sing - Abucheo de periodistas y demas yerbas. - "Spot the NARC" contest. - Presentacion de un video sobre hackers de Anal Savage (Unauthorized projection) - HBO meet&greet - Drinking Contest. - Chala a cargo del chacal (tema: Yo Hacker) (Invitado Espacial) - Show en vivo de Los Hermanos Garlocha. Charlas a desarrollarse (en la cantidad de dias que dure y reallocateables) - Como no caer por pelotudo tomando las precauciones necesarias by OPii aka PARANOIA. - Social Engineering. by Saltamontes. - Configuracion PRO de Linux, virus y miscellanea. by Azrael. - De como matar esta bien, hacking y miscellanea. by Logical Backdoor. - Anecdotas. by everybody. - The NET. by everybody. - Cualquier otra que se nos ocurra, o que demasiado borrachos nos empujen a dar. (cuantos mas tragos nos paguen mas larga tendremos la lengua) - Las que cualquiera de ustedes quieran dar si valen la pena. HBO y los responsables del CC se reservaran los derechos de permanencia, admi cion y vida dentro del local. La conferencia en si misma es rellocateable si no llegamos a entrar o pasa X. =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ============================================================================== 0x01050007 - Readshit ===================== Aca toda la basura que deben leer y no teniamos donde poner. HBO Feature Presentation: la primera parte de Bull Rocket by LBD. Bull Rocket #1. Un Caso tipico de man in the middle atack. ~~~~~~~~~~~~~~ Amanecer de una noche agitada. Comence a caminar orientandome hacia el bar de la esquina, me movia lentamente y la luz me ardia en la retina haciendome acordar de los anteojos de sol que no tenia puestos. Con los ojos casi cerrados esquivaba las baldosas y los charcos y trataba de descansar el cerebro. Las sesiones nocturnas son asi, tienen la facilidad de contraer y dilatar el tiempo, y ahora eran las 9 de la maniana y los administradores volvian a loguearse en sus consolas, y en ridiculas oficinas los usuarios levantaban el teclado por enesima vez para recordar sus passwords y empezaban a brillar las terminales. No, ya no era hora para mi, lo que quedaba por hacer podia esperar hasta esta noche o hasta maniana. Entre al bar empujando la puerta y note la diferencia de temperatura, en Buenos Aires hacia frio. No importan mucho los detalles, pedi un cortado doble y tres medialunas y encendi un cigarrillo. Me frote los ojos con las manos y descance la cabeza contra una columna relajandome con las conversaciones de la gente. Hacia treintaypico de horas que no dormia. No era tan grave. En alguna parte pensaba que seria interesante tener un cerebro LC, regular la cantidad de energia que le damos a nuestros subsistemas de manera conciente, poder mandar a dormir secciones por separado, mientras una parte queda en stand by. Supongo que llego el cafe. Le di un sorbo y apague el cigarrillo, iba a ser dificil no quedarme dormido en los colectivos. Saque del bolsillo de la campera mi terminal y la encendi, tipee el password en menos de un segundo -ya mis dedos se lo acuerdan, es hora de ir cambiandolo- creo que pense. Incorpore los tres sobres de azucar a la taza y empece a masticar una medialuna, mientras tanto me puse a bajar E-mail, las ventajas de la red celular. Recorri la lista de mensajes filtrando la basura y por la mitad encontre algo que realmente valia la pena. La linea se veia mas o menos asi: N10 bull@overflow.com.ar Reencuentro (106) Asi que bull habia vuelto, bueno eso era algo para festejar. Sin esperar a ver el mensaje lo pipee directamente al pgp, despues de la rutina correspondiente tuve acceso al contenido, en pantalla, for your eyes only, autentificado como procedente de Bull Rocket. El texto era bastante corto y el contenido bastante simple: "Nos encontramos a las 17 hs en Overflow, es importante, veni descansado". Supongo que los planes para el dia se habian alterado un poco, nada de trabajo ni de facultad. Apague la terminal. Mientras alguna parte de mi cerebro le agradecia a bull termine mi desayuno, pague y volvi a caminar la media cuadra. Derecho hasta la cama. 17:05, espero que no haga falta decir "Me desperte a las " para que lo entiendan. El despertador habia estado sonando durante los ultimos 15 minutos de una manera mas bien descontrolada, es un viejo radio-reloj que ya no sintoniza, y la experiencia de despertarse con eso puede convertir a cualquiera en un psicopata por el resto de la jornada. La teoria detras es que sufro tanto semi-dormido en medio del barullo que me dan unas infinitas ganas de levantarme. Y nada mejor que despertarse con ganas de saltar de la cama. Hubiera sido bastante raro que el reloj estuviera en hora, asi que en mi camino al banio puse el telefono en "Hands-free" y marque el 113. "ras, cincuentaytres minutos, veinte segundos ^G ^G " y poco a poco se fue convirtiendo en ruido de fondo hasta que cerre la puerta. Encendi la luz, tenia una cara horrible. Me moje la cara y la nuca y desparrame pasta por la cara correcta del cepillo de dientes, quedandome con parte de la cobertura de pintura amarilla del tubo en la mano. Pense en baniarme y en calentarme un cafe, despues pense en quedarme en la cama leyendo y tomando una cerveza. Finalmente me enjuague la boca, me puse las botas y una remera, agarre la campera y sali. Mientras bajaba el ascensor inverti el cartel de la empresa de desinfecciones de tal manera que las letras quedaran al reves, lo que ya era una cabala, y empece a seguir un mosquito con los ojos por el techo de acrilico blanco. Me habia olvidado de colgar el telefono. Evalue la posibilidad de volver a subir sin demasiadas ganas y decidi darme un paseo por el subsuelo. Los subsuelos de los edificios por definicion son obscuros, con agua corriendo por el piso y estan mal cableados. Este entre otras cosas es gris, sucio y deforme. Uno espera encontrarse gente colgada de las paredes con charcos de sangre seca abajo, como en el viejo wolfenstein y se mueve de manera acorde, deslizandose de costado y girando abruptamente en todas las esquinas. A lo nuestro. Abri la caja de telefonos con mi Swiss army knife, que entre amigos llamamos "la mc giver" y busque la linea correspondiente a mi depto, una vez que la encontre la intercambie con la de mi vecino del piso de arriba. Saque el celular de la campera y marque mi numero. Me atendio la voz de mi vecino, y de fondo un bolero muy pegajoso. "Viejo verde" pense mientras probaba un par de codigos default. Al segundo intento escuche el bip caracteristico y me sonrei. Ahhhh, hackear contestadores. Setee rapidamente un mensaje de mi autoria, le borre los mensajes a mi vecino, cerre la caja y sali del edificio. Acelerando el tiempo, a lo nuestro mariposa. No voy a hablar del colectivo. Me baje a dos cuadras del bar y obviamente empece a caminar. Movi una pierna y depues la otra durante un ratito sin darme cuenta de que lo estaba haciendo, mientras tanto concientemente recitaba potencias de dos, mis ojos y mi oido medio funcionaban como sensores de un sistema complejo del que no tengo mayores detalles, como la mayoria de ustedes. Lo cierto es que seguramente esquivaba gente y mantenia el equilibrio, que increible. De lejos empece a ver un cartel que me resultaba muy conocido. No lei lo que decia, pero se que si hubiera leido hubiera leido lo siguiente: "Hang over the OVERFLOW bar" en diferentes lineas, y diferentes tamanios de letra. Entre. Iba a tardar un poco en orientarme y lo sabia, preferi cerrar los ojos y solo escuchar. De esa manera resulta mas facil. La musica se escuchaba bien, se descomponia en una especie de rizos mecanicos, en primera instancia no podia decir de que se trataba. Un sonido mas apagado en el fondo, seguramente algun individuo tratando de llevar el ritmo sobre la mesa, o debajo de ella. Sonidos electronicos de juegos electronicos. Sonidos humanos. Sonidos metalicos. Sonidos conocidos. Abri los ojos y la luz me golpeo fuerte en el cerebro. No importa, cada estimulo en este lugar es una onda, con su propia frecuencia, y la suma es algo parecido al ruido blanco, te calma. Me di vuelta. Mirandome, me sonreia con los ojos Nicole. La bese. Tenia ese gusto tan particular a chicles, cigarrillos y a ella, que estimula mi corteza de solo recordarlo. -Long time no see - me dijo, y se dio vuelta hacia la barra. La segui a cierta distancia, imaginandome la manera en que se movian cada una de las vertebras de su columna, y tratando de recordar la cantidad de dias que hacia que no la veia. La cuenta daba algun numero entre cinco y siete, posiblemente seis. Salude a Joe, que ya que preguntan eligio su alias por "eat at joe's" cuando se estaba armando el bar, hace unos tres anios. - En que andas ciberpun?? - me dijo cagandose de risa. Amague pegarle una pinia que de todas maneras hubiera esquivado y le dije algo asi como -almorzando, con una corona y un paquete de cigarros.- - Bull esta durmiendo en el sillon del fondo, llevale una Jolt. - Agache la cabeza y agarre la botella que me daba, "Double Caffeine" decia de un lado, y "Sugar, the real stuff" del otro. En fin, una bebida que si vale la pena. Me acerque al "fondo", si es que algo asi existe en Overflow, un spot con una luz muy baja, y mas aislado del sonido y de la luz que el resto, con una serie de sillones ordenados caoticamente y salpimentados con mesas-ratonas bibliotecas y terminales de computadora. En uno de los sillones, hecho un ovillo y tapado con una campera dormia Bull Rocket, el tipico ejemplar de la especie de hombres que se dedican a salvar al mundo sin que el mundo se de cuenta. Apoye la Jolt en la mesa muy despacio, pero Bull abrio los ojos igual. - Tarde. - Que hora es entonces? - Las 7 y 10 - dijo sin sacarme los ojos de encima. Supongo que podria haberlo comprobado de alguna manera, pero con el no hacia falta. Hay gente que tiene oido absoluto, el tiene un sentido del tiempo absoluto. Sonrio y estiro la mano, si, yo tambien estaba contento de verlo. Hacia un par de meses habia salido para el sur, "para investigar algo muy extranio" dijo. Algo extranio para el, bah. Conoci a Bull hace un poco mas de dos anios, a primera vista no das dos mangos por el, pero algunas cosas me enseniaron a desconfiar de la gente a la que le compraria cualquier cosa. No importa. Paro en Overflow todos los dias durante una semana. Policia pensamos al principio, pero tenia los borceuguies demasiado sucios para ser uno de ellos. Habia mas cosas raras con bull, no tomaba alcohol, siempre una Jolt y a lo sumo una cerveza. Entenderan que eso en Overflow no es lo usual. Era un tipo callado, antisociable, leia el diario y no se reia. Eso no es usual. Se pasaba las horas mirandonos de reojo, y no parecia que se le escaparan muchas cosas. Era una molestia. Y siguio siendo una molestia hasta que un dia se digno a emitir sonidos, y esos sonidos formaron palabras en los oidos de los que escuchamos. "Necesito su ayuda", para que?, "Hacking", no hacemos eso, "Va a ser divertido". Creo que nunca nadie recorrio tan rapido el camino de la molestia a la simpatia. Trabajamos juntos durante un mes esa vez, pero eso lo van a leer en otro lado. Cada vez que estuvo en Buenos Aires desde entonces paro en Overflow, en alguno de los cuartos de arriba, y siempre fue divertido. Ese era el tipo entonces, y estaba adelante mio. - Volvi ayer de Comodoro Rivadavia, y esto es grande, muy grande. - Entonces puede esperar hasta que coma, supongo. - Siempre Backdoor, siempre. - dijo lo ultimo con una sonrisa, largando un poco de aire por la nariz y asintiendo con la cabeza, para que no se me escapara. Montada sobre Nicole llego la comida, una Corona fria y un plato de una especie de guiso bautizado en honor a su creador, Saltamontes, todas las verduras en existencia + salsa de soja + Tabasco + algun pedazo de carne + otra serie de cosas. Al lado del plato, sobre una servilleta de tela, reposaban tres marlboros. Dos cigarrillos continuaron con su descanso, y uno se encendio en la boca de Bull que tiro la cabeza para atras y se froto los ojos. Tengo la particularidad de comer rapido y sin pausa, y me empece a dedicar a esa tarea. Bull mientras tanto se logueo en una terminal y saco algunos recortes de diario de la campera que todavia le cubria una pierna, los apoyo sobre la mesa y los empujo para mi lado de manera que quedaran con las letras orientadas en una posicion en que pudiera leerlas. Comi y lei. Era un diario de Comodoro de dos meses atras y la nota trataba la aparicion con vida de un pescador, sobreviviente de un naufragio, que aseguraba haber pasado quince dias en la mitad de el oceano sin probar una gota de agua. So? pense. Me termine la Corona mientras frotaba mi lengua por la parte delantera de mi dentadura en un intento desesperado de deshacerme de los restos de aji. - So? - dije. - No mostraba signos de deshidratación, estaba plenamente conciente, despierto, contento, y absolutamente shockeado. - So? - dije Bull estiro las cejas mientras inclinaba un poco su cara hacia su izquierda, torcio la boca, pito de su cigarrilo, lo apago y dijo: - Fui a Comodoro a los dos dias a hacer una recorrida, ademas ya me estaba entumeciendo. - Al grano motherfucker. - La esposa y el hijo menor apoyaban su historia, hacia quince dias que no lo veian, estaban desesperados, ya lo daban por muerto. Habian dado parte a la policia a los dos dias de su desaparicion, a la semana habian hecho un velorio con amigos y parientes, estaban emocionadisimos y absolutamente felices, creian en dios y decian que todo habia sido un milagro, una senial o algo parecido. - So? - dije. - El hijo mayor decia que estaban todos locos, que cuando el se fue de su casa la noche anterior estaban sentados los tres viendo television, que volvio a la madrugada y estaba todo normal, y que al dia siguiente cayeron del diario a hacerles una entrevista. Pense en esto ultimo un instante, me acomode en el sillon, estire un poco las piernas despues, cerre los ojos y me frote la ceja izquierda con la munieca adosada al brazo que tenia apoyado en la mesa. Me tome un tiempo y despues dije con un tono levemente mas interesado que antes: - So? - Hipotesis - dijo Bull parandose de un salto, y continuo mientras daba algunas zancadas alrededor de la mesa... CONTINUARA... Logical Backdoor, 1996. (Gracias Oesterheld por todo y por servirnos de inspiracion mucho tiempo despues de que te hayan matado.) Comentario: "Llaneros Solitarios, etc..." ~~~~~~~~~~ Pre-Comentario: Vamos Toro! agiou silver! (obertura de William Tell) (chucuchun chucuchun chucuchun chun chun, chucuchun chucuchun chucuchun chun chun chucuchun chucuchun chucuchun chun chun chucuchuuuuuuuuuuuuun chucuchun chun chun ) Me gustaria decir que el libro "Llaneros solitarios. Hackers, la guerrilla informatica" es una reverenda cagada, pero sin embargo eso no le haria justicia (a la caca de los reverendos por supuesto). No, reverenda cagada no es el subtitulo. Yo le pondria mas bien un subtitulo tipo Nice Try, o algo por el estilo. Se nota que Raquel Roberti hizo algo de research, de F. Costandante no se notan ni los rollos de la panza, aunque debe haber corregido los borradores para verificar su veracidad, o algo por el estilo (me pregunto con que autoridad pero bueh) en fin, teniendo en cuenta que la mina no tenia la menor idea no le erro en tanto. El libro en si mismo parece ocuparse mucho mas de la parte legal del asunto que de la so-called "mistica". Esto es correcto si pretende hacerle justicia a su subtitulo (la guerrilla informatica) que propone desde el principio la orientacion de su investigacion. Es evidente que la manera de medir los resultados de una guerrilla (para R. Roberti) es hacer un recuento de sus muertos, o algo por el estilo. En este caso la mayor parte del libro se dedica a contar diversos casos de hackers y afines convictos o enjuiciados por lo menos. En lo personal considero que la 'guerrilla' si es que algo asi existe, no es una de Hackers vs. FBI sino mas bien involucrando a la gente que labura en seguridad. Pero yo se de lo que estoy halando, y los autores del libro no. El libro hace un recuento bastante superficial de lo que fue la operacion Sundevil en EEUU y habla, en la mayoria de los casos por boca de otro, de algunos casos conocidos. La segunda parte del libro se mete con el ambiente local, contando historias de algunos tipos, haciendo un panorama bastante deficiente del estado actual, y hablando mas bien por lo que sucedio hace 5-10 anios atras. Sus entrevistas no parecen tener una direccion, no sabe que preguntar y confunde muchas veces los hechos y los personajes. No importa. Esto no es lo importante del libro de Roberti,quizas lo unico importante es que haya decidido hacerlo y lo haya echo. Todo el libro es desprolijo, y especialmente no tiene conclusion, no tiene opinion de ninguna especie, y esto no es raro. Raquel Roberti no llega a araniar la superficie de algo que no puede comprender. No puede emitir opinion sobre algo que no entiende y no puede concluir el libro de ninguna manera, por que el libro no es un analisis, es una coleccion de hechos y datos. Hacia el final del libro la caga definitivamente titulando un pequenio capitulo sobre tecnicas de hacking como "Usted tambien puede hacerlo (manual)". La bibliografia lo dice todo, todo lo que leyo, casi todo lo que sabe. Raquel roberti es, de todas maneras, posiblemente la periodista argentina que mas investigo y que mas sabe sobre Hacking y hackers. Hizo un intento importante, y lo termino demasiado pronto, antes de darse cuenta por donde venia la mano. Eso no le quita a ella ningun merito. Posiblemente si le quita merito a F. Bostagrande, que deberia haberse dado cuenta de esto. En fin. Es un libro que se puede leer en 1 hora y media, lo que representa aproximadamente una semana de ir al banio. Esa es una buena opcion, por ser el primer libro de esta especie, y por contar con la presencia de un procer argentino (me refiero por supuesto a F. Piesgrandes, analogo a E. Goldsmith en Argenlandia) vale leerlo y listo. Espero que la Roberti siga en el tema, y que de aca en adelante escriba con la opcion de cut & paste desabilitada. Siempre es interesante ver la forma de actuar de los periodistas... es posible que algun dia de estos me ponga a escribir un articulo sobre ellos... Logical Backdoor. Entrevistas: ~~~~~~~~~~~ Entrevista a Fernando Bosembiante. HBO: Que participacion tuviste en el libro '...' FB: escribi una parte. HBO: cual FB: no se [este muchacho tiene unas excusas brillantes no?], estuve leyendo algunas partes y ya no me acuerdo quienl las escribio HBO: cual era el objetivo del libro FB: el real o los dos? (jeje) [de que te reis] En principio es para que la gente se de cuenta que es un hacker y no para que piensen que es un ladron de informacion como dijo lanata. Me acaban de decir que lo dijo en la radio. A lanata se le ocurrio que bueno, que para la coleccion que el queria hacer que era fin de siglo, era un tema representativo, el dice que son los ultimos romanticos los hackers. Y penso que se iba a vender [Me parece que vamos llegando a el carozo de esta banana, querido fernando] HBO: tirada de la edicion. FB: tienen 5000 ejemplares HBO: aha, cuanto cobras vos por cada uno? FB: y, somos dos autores, 75 cts por libro. HBO: hmmm, yo compre uno, invitame una coca. FB: no alcanza. Si queres te lo dedico. HBO: y buee, ahora soy cholulo de Gostandante. [FB me firma el libro con un: a lbd, personaje de este libro y hacker notable. QUE APARATO] HBO: por que en el libro se le da tanta bola al tema legal? FB: si hablas de hackers, en realidad la gente piensa en delito o algo asi, y ademas como esta muy en el borde. uno trata de definir exactamente que es lo que pasa, es la pregunta que surge. lo metieron preso? lo agarro la policia? [a mi la pregunta que me surgia en el momento era si todo el mundo seria tan estupido, pero bueh, estaba taquigrafiando en una notebook asi que me la saltee esta. mea culpa] HBO: El libro no tiene conclusion. No tiene opiniones. No tiene nada. FB: lo que pasa es que nosotros les tiramos la informacion y ustedes la procesan, sacan sus propias conclusiones. Me parece que si hay algunas opiniones y una conclusion, lo que pasa es que no se notan demasiado, la idea es no decirle a la gente lo que tiene que pensar. [ni pensar demasiado me parece, por que vos te estas rompiendo el mate] [aca hay un pedazo que no me entiendo la letra, pero rescato dos pelotudeces del monton]: - la e grande del final es idea de REP (lo mejor del libro) - el titulo es de lanata (lo peor del libro) HBO: te gusta asi el libro, te quedaste con algo para poner? FB: nunca nada es perfecto HBO: por que donde decia bostandante en el manifiesto dice bonsembiante? FB: en virus report decia bostandante, que quede claro que cuando yo tuve la responsibilidad lo deje igual [y cuando escribis un libro la responsabilidad es de magoya, porsupuesto]. Lo que pasa es que se perdio una correccion [excusa] etc. HBO: que paso con virus report? FB: se dejo de publicar por problemas economicos. HBO: pensas seguir con la actividad? FB: me gustaria pero si hiciera otra cosa asi haria algo distinto posiblemente [???] HBO: nunca pensaste en un medio electronico? FB: para que, ya esta HBO [el mismo consecuente que laburaba para Fabian Garcia meparece no?] HBO: planes? FB: escribir otro libro. HBO: Tenias pensado repetir lo del anio pasado [gonzocon] FB: tenia ganas de hacerlo, el anio que viene o... tuve mucha presion en contra de las autoridades del centro[culturalrecoleta], excepto por el encargado de audiovisual que fue el unico que me apoyo.[??? ahhh, que interesante che] HBO: tuviste alguna noticia de gente de la policia o algo asi? FB: si, mandaron gente y les gusto. [serian esos dos nabos con cara de policias que charlaban en vos baja, senialaban y saltaron a decir huevadas en primera persona cuanndo alguien comennto algo del tema legal??] Ademas Emmanuel Goldstein tuvo una entrevista con un alto oficial de la policia. Para charlar, este tipo lo queria conocer, y yo se lo presente. FB: si queres poner una nota de lo que estoy haciendo, va a salir una nota sobre linux, y estoy preparando una sobre telefonos celulares, a ver si se puede hackear o no. [a bueno, si se pueden jaquear contame] [y terminamos] FB: en virus report el 90% de los lectores de virus report son pendejos, o hackers o wannabees[como robaste hijoputa]. por eso mismo la venta de publicidad no era muy buena, la gente se daba cuenta. Entrevista a Raquel Roberti y F. Bonaparte: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tengo el cassete por ahi. (nos lo regalo Piesgrandes) si les interesa manden feedback y si lo encontramos lo escribimos y lo publicamos y lo leen y listo. =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =============================================================================== 0x01050008 - Hacking For Dummies #2 =================================== La secuela de la formidable nota del numero anterior, y vuelve mas delirante que nunca!! -- [OP] Nuestro amigo LBD se encuentra realmente enfermo, si no quieren que les pase lo mismo lean Hacking for Dummies. --------------- PARTE II AHORA ERES UN HACKER ------------------- 6. COMO ELEGIR UN ALIAS Elegir un alias no es facil, por ejemplo, seria demasido boludo hacer alusion a peliculas o libros de ciencia ficcion [baberunner, jibson stratocaster, joshua] o inclusie series de TV [ralf, murray wozinsky y coso, el pendejo de maxheadrom (brice)], porque es obvio, claro, seria muy tonto ponerse un alias que sea un nombre simple, como Juan Perez, porque no habla bien de tu intelecto. Tampoco es conveniente usar nombres de componentes electronicos o unidades de medida [ microhack, nanobobo, eletrolito, faradayman, superohm(bre) como en el libro inedito de Nietzche] Analicemos un par de casos de la scene. veamos a El Chacal, una especie de perro hiperpulguiento y baboso, El Griton un tipico caso de histeria femenina que dan ganas de callar de un martillazo. Cyberbob, tipico alias de pendejo que vio the net y quiere ser hacker. Pues bien, ROTUNDO NO querido mio.. go on reading... Si todos pudieran hacer como nosotros, y dejar que mniorp les genere las palabras adecuadas... pero bueno, simples mortales se tienen que valer de metodos mas toscos. Despues de un breve analisis de la literatura de Castaneda, un pequenio paseo con mescalina te puede dar la solucion, o quizas una intoxicacion de dibujos animados los favorezca, como en el celebre caso de stinky, el pedito amigo de Saltamontes. stinky es silencioso, pero no pasa desapercibido, llega sin que lo llamen y nos olvidamos de el cuando se va. Solo lo volvemos a recordar cuando irrumpe por los poros de la nariz otra vez. SM joputa deja de pedorrearte. No tiene gracia ponerte un alias que haga referencia a tu aspecto fisico, aunque seas algo asi como un pescadito, se supone que tus amigos "pre-haq3rz" (quesesto????) no te van a ver, o que?? so cool?? usas el siyusimi????. veamos mi propio caso (esto lo escribe LBD), el primer alias de mi mismo que recuerdo, y los desafio a que se rian de el, es ahhh uhmmm argghh ehh Sm ahhh Smar mhhjjj, Smartie? [SM] Demasiado gay, eh??? [OP] Ahahah, tipico alias nerd. Notese que el alias derivo, por motivos obvios a "Lamer-tie". [SM] Notese tambien, el "ie" final, es decir un diminutivo, que expresa muy claramente un complejo de inferioridad provocado por una condicion de "pre-hacqer"...ademas una obvia connotacion de "comelo-todo" y se quedan cortos muchachos, intentaba en realidad hacer honor a Maxwell, pero nunca nadie lo entendio de esa manera. Mi siguiente paso fue elegir un alias discretamente diferente, inspirado en el asesino estrella de una pelicula, y una frase gritada por su novia: "you are a murderer Nino!!!!". Mi siguiente alias fue Nino Brown. [OP] Ah claro, claro, ahora el pibe es malito y ademas elige un alias de una asesino (tendra que ver con la teoria de como matar esta bien?), pero aun asi, el alias es bastante simple y queda medio desagradable llamar a alguien "Nino, nino, como a tu perrito, sit nino, hace el muertito". Lo acepto, por supuesto. Llegado el siguiente periodo de mi vida, entendi que elegir un alias no era una cosa para tomar a la ligera. Y me enfrente a una cuestion trascendental, debia expresar terror?? (Satan666, Jason is alive, Chucky, Jack the ripper, Hannibal "canibal" Lecter, Petiso orejudo), debia expresar sabiduria?? (The Netmaster, Obiwan, Yoda, confucio, I know what GGP means and you dont have the slightest idea, el oraculo de villa crespo) debia ser algo privado?? (15cm y me la banco, El tuerto, Mi padre me pega, el violadito, el sangrado) debia ser algo criptico??? (asdfgh, qwerty, J345asDN^[) debia ser metafisico o mitologico??? (ser0noser, minotauro, Ulises, Satiro) En ese momento dios toco a mi puerta, pero tan ocupado como estaba no me preocupe por abrirle al gilun, y... mi Logical Backdoor fue el resultado emergente de la holistica situacion espacio-temporal que mi ego representaba cada dia... [SM] Bueno, bueno...dale segui imbecil! [OP] No,no, aca hay que aclarar que nuestro especimen, estaba bajo la influencia de el temible stinky, y que SM lo adoctrino en forma subliminal explicandole los detalles del north shore de Oahu y sus diversas variaciones (todo esto por medio de tecnicas no inodoras). y sin duda influyo de mala manera un programa en Clipper (lo admito) que junto con OP nos encontrabamos realizando por ese entonces, donde la variable booleana que serviria de comparacion para una eventual entrada por la puerta trasera era lbd (logical, el tipo de variable y backdoor, el servicio). [SM] Antes de pasar al siguiente punto, no quiero dejar de mencionar los alias de orientacion biblica, los cuales pueden ser un verdadero orgullo de llevar (Samuel, Abraham, Rey Salomon, Moises, Juan el Bautista, etc.) [LBD] te piraste saltamontes? [OP] Bueno, volviendo al tema de los alias, en el caso de LBD encontramos graciosos juegos de palabras en su ultimo alias, por ejemplo, es muy conocido y aceptado por los amigos, que LBD se reduce a "blackdoll" osea la munieca negra (cualquier asociacion con chuky es por su cuenta) de la misma forma que smartie era asociable a lamertie, entonces, no olviden amiguitos delincuentes en potencia que su alias debe ser facilmente degradable, para felicidad y diversion de sus amigos. [LBD] eso explicaria porque tus amigos te conocen como OPA. 7. COMO FORMAR UN GRUPO Un grupo es un conjunto de elementos con una operacion, que cumple determinadas propiedades de tal manera que queda definida una estructura algebraica, como el conocimiento de estas propiedades no va a alumbrar sus debiles cabecitas no las vamos a nombrar. sin embargo: [OP] Dejando de lado los atrocidades pseudomatematicas de [LBD], que en este momento esta leyendo lo que escribo y pone cara de zapato esperando su oportunidad para contestarme con mas de lo mismo, digo: Si quere formar un grupo tenes que elaborar un cuestionario de admision con preguntas tecnicas de cualquier boludez que ni vos mismo sepas, postearlo en cuanto bbs encuentres y leer las respuestas, cuando ves que alguien escribe algo que parece no tener sentido o que es masomenos tecnico, osea, que parece como que sabe, lo incluis en tu grupito y le pasas un txt con las reglas ultrasecretas del grupo, por ejemplo 1. Tenemo que pasarno toda la info entre nosotro . 2. Vamo a hackiar el RA de Lisi 3. uhuh a nuestro bbs lo hacemos elite poniendo NUP 4. el NUP es "s0yh45ck3r" 5. Tratar de bobos a los demas. incluso a nosotros mismos, al fin y al cabo somos todos bobos no?. Claro que hace falta elegir un nombre adecuado para el grupo, lo mas facil es afanarse el nombre de algun otro grupo tipo Pink Lands, o PECTLDAN (Por el culo te la ...). Los grupos tienen que llamarse por iniciales, tipo LPQTP o algo asi... ahora, si alguna ves sentiste el vertigo de ser fanatico de un canal de television por cable, bueno pibe... no lo pienses mas. Despues, pone a algun miembro a hacer asociacion libre para ver si encuentra alguna justificacion adecuada, tipo Hacked By Owls. Salta, un poquito de historia... ...Todo comenzo una ma╖ana de ...hmmm ahh, perdon, In the mid seventies... Buehh, los origenes de nuestra comunion como grupo se encuentran en mitos originados en ciertas intrusiones que nos valieron el nombre. y nos conocimos en la superinformationdatahighway ehh!. 8. COMO SELECCIONAR UN BUEN CHAT [OP] los dias de x.25 ya estan muertos, por lo tanto las unicas opciones que quedan son o algun bbs con muchas lineas o algo en internet. En el primer caso, se definiria como buen chat al lugar donde podes molestar a los demas impunemente, causandoles molestia y burlandose de ellos. La otra opcion, puede ser IRC, en cuyo caso hay que encontrar un canal adecuado, en esto hay que ser cuidadoso, dependiendo de que canal elegis tu actitud debe ser modificada, por ejemplo, Saltamontes frecuenta #gaysex #lesbiansex, #dirtysex y #teensex. En este tipo de circunstancias lo indicado es hacerce el langa y tratar de obtener favores netsexuales de las minitas (o chabones para el caso de SM) en el canal. Con todo esto uno obtiene una especie de pajez mental que complementa el estado pajeril fisico, obvio, que mierda podes hacer sentado frente a la maquina 2 horas en #teensex? Pero cuidado, entrar a #hack o #phreak o similares con la misma actitud puede ser perjudicial para la salud (de tu cuenta), por ejemplo, el clasico caso de "cyberpunk" entrando a #hack y diciendo... cyberpunk: Hi, anyone know how to decrypt unix passwords??? o cyberpunk: Anyone has a crack for Doom43?? cyberpunk: I will trade full shell accounts for credit cards...etc Claro, mucho mas cool es crear tu propio canal y que la gente vaya a el por efecto del tao (ver "El Tao del Hacking" en numeros proximos) Sigamos. 9. QUE DECIR EN UN BUEN CHAT PARA TENER EL HACKER LOOK AND FEEL [OP] Ehm, err, la clave de esto es estar en el chat en el famoso estado idle, mientras haces algo en otra ventana-consola tenes una ventana en el chat y ves pasar comentarios sin solucion de continuidad, de vez en cuando aparece algo que llama la atencion pero como no esta leyendo todo y no seguis el hilo de la conversacion te limitas a proferir monosilabos, uh??. Es fundamental escribir en "k00l" la mayor cantidad de tiempo posible, si eso te representa algun problema, procurate el "Visualk00lator" , un visualizador de txt que te k00lea los textos y facilita su comprension (de errores). Nunca abstenerse de decir obviedades y de termina todas las frases con la misma palabra, por ejemplo "oki". Agregar signos de exclamacion inecesarios!!!!!!!! y: ESCRIBIR SIEMPRE EN MAYUSCULAS QUE ES MAS POSTA YA QUE DA IDEA DE QUE TODAVIA TENES LA C64 Y EL MONITOR DE 40 COLUMNAS O QUE ESTAS EN AMIRACAGALINE O ALGO ASI. son imprescindibles las smileys :-) me entendes ?-) y si queres dejar bien en claro que sos pirata P-) en fin hipercool. y nunca olvides mechar cuando puedas con cosas del tipo cul8r, brb, aka, asap, ttl, o bbl, imho, etc. y ahora estas preparado para entrar en los chats. MTFBWY. (may the force be with you) 10. COMO CONSEGUIR AMIGOS COOL QUE NOS PASEN INFO Los amigos informaticos se consiguen haciendoles pensar que vos tenes algo que ellos quieren tener, sea esto un pedazo de info, una cuenta en una maquina, un cd de jueguitos pirateados, etc. sigue nuestros consejos y te proveeras de una buena cantidad de amigos cool, hasta que sus nombre no te quepan en una pantalla. Siempre aparenta que sabes mas. por ejemplo. estas en un chat hablando con un par de personas, vos so cyberpunk y estan despues, superhacker y acidburn msg to superhacker: por favor, tirame alguna cosita, yo despues te cyber chupo la verga, y si consigo algo te lo paso [muy importante] msg to acidburn: tengo algo impresionante, por que me lo tradeas P-) msg from superhacker: n0, n0 t3 D0y n4D4! msg to superhacker: dale, dale, porfi, no seas malo, yo tambien quiero llegar a ser superhacker como vos que sos el mejor. msg from acidburn: que es, que es?? yo tengo una lista de 0800, y dos CC que le afane a mi viejo, y una cuenta de los pinos con full axs a internet a 150 cps. msg to acidburn: no es cps es baudios. gil, ademas todo eso junto es muy poco para lo que yo tengo... msg from superhacker: qu13n t3 d1j0 qu3 y0 Z0y 3l M3J0R???????? h3h3 msg to superhacker: y... se conoce kien es el mejor, vos, fierita, mazita, superhacker! quiero ser como vos!!! oki?? :) msg from acidburn: uh bueno, pero entonces que queres?? msg from superhacker: jua jua jua 0k m4n c0m0 s0s 3l33t y k00l c0m0 n0s0tr0s T3 P4s0 Un P4D 3n sudafr1k4, t0ma 0655032000123 p0n3s "xpad" y d3puez "c" y 3l nu1 4L qu3 t3 qu3r3z c0n3ct4rr. msg to acidburn: con lo que te via a dar vas a poder hacer PAD-PAD-NUA-NUI como dice el diccionario del hacker. (timewait) msg from superhacker: ch4u p1b3 m3 v0y qu3 teng0 que hack3ar la n4Sa, superhacker/[SOMOHAQR] s3 d3sp1d3... msg to superhacker: chau master, gracias por todo , chup chup chup ==== signoff superhacker/[SOMOHAQR] msg from acidburn: uy, bueno... te doy entonces las tarjetas y la cuenta de mail de mi hermanita postiza y una cuenta en un VSM o algo asi, que hackee el otro dia (jejeje) y un regalito especial. pero aca no, es inseguro, anota mi numero de telefono: damian 555-2048 ==== signoff acidburn/[quevaaca?] (pensamientos en tu cabeza: jejeje, jejeje) - hola damian, habla cyberpunk, dame la info... - si, anota: ,... blah, blah, blah ... - huy, no te esc cho b en ho a ? ho a? eps e te fono de m chhhhfkksdjhio (click) (petc: jejeje lo recague moviendo el disco del fono!!! ahora tengo mas info para tradear, soy superhacker++/[wannabee] ahora, que seria eso del PAD?) 11. TRADING WAREZ (AHHH NO, ESTO NO) ahora bien amiguitos, despues de hechar luz sobre los oscuros reductos de su subhumana conciencia nos despedimos hasta la proxima entrega. que promete ser aun mas decadente. =============================================================================== -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =============================================================================== 0x01050009 - ContactUs. ======================= Las maneras de contactarse con nosotros son especialmente complicadas para que: 1 no nos veamos molestados constantemente por el sentimiento de culpa producto de no contestar misivas y 2 sean a prueba de ineptos mentales como la mayoria de los que dan vueltas por ahi. De todas maneras, si insisten, prueben lo siguiente: a) asistir a MendozaConch el 24 de mayo. b) comunicarse a Satanic Brain(3837480) y ponerse realmente pesados con AZ. c) mailear a OPii en opii@dhp.com d) publicar una solicitada. e) gritar en la via publica. f) ninguna de las anteriores. g) crear un altar, prender dos velas negras, matar un gato y quemar una hoja con su mensaje gritando "pazuzu be praised". h) poner una maquina en internet y asegurar en los diarios que es inhackeable (bueeenna). i) bueno. J) anx spirit L) ogical backdoor O) Pii S) altamontes 0x0105000A - Agradecimientos y fuckyous ======================================= FUCKYOU chinasky sos un pelotudo boton hijoputa ladron mentiroso y falopero (y algo bueno tenia que tener el desagradable ese). Un agradecimiento a Multiple Entity y al guata que nos presto el libro. Pd: [ME] sacate los trodos, que vas a quedar flatline. Agrad, al Turco del CC que nos provee del liquido elemento. Agrad, a toda la gente que no entiende. Felicit, a toda la que entiende. Agrad, a Tatoo, una amigo de la casa. (y a su chichi que me rompio el coche [LBD]) Agrad, al pelaca finlandes. 0x0105000B - Disclaimer ======================= backdoor,opii,janx,saltamontes son todos personajes de la ficcion, que no representan a ningun humano, ameba u otro ser organico (sobre todo saltamontes). Cualquier semejanza de ellos con alguien de la realidad es pura coincidencia. Si cree que alguno de sus amigos se parece sospechosamente a los citados, denuncielo a la policia, puede tratarse de un individuo altamente peligroso (IAP). Esta revista ha sido redactada integramente por un programa de lenguaje natural por lo tanto ninguna persona es responsable por sus contenidos, siendo estos generados por una maquina descarriada y carente de verdadera inteligencia (discutible). Virtualy Yours, NMIORP Naturaly misconducting interpolation of random patterns.