;CREADO POR VICENTE Y JAVIER MARTINEZ, 1996 ;AGRADECEMOS LA AYUDA PRESTADA POR UN PROFESOR "JOSE" QUE NOS INICIO EN EL 8085 ; ESQUEMA PARA ESTE PROGRAMA (PLACA.GIF) ; ENSAMBLADOR-SIMULADOR=(8085.ZIP) ; RUTINAS PROGRAMA MONITOR 8085 (1996) ;CLS.........INICIALIZACION ;PRESE.......PRESENTACION DEL SISTEMA ;TECLAD......OBTENCION DE LA FUNCION PULSADA ;GO..........EJECUTAR A PARTIR DE UNA DIRECCION ;DISPLAY.....TRASLADA Y VISUALIZA DIRECCIONES ;SEPDAT......SEPARA UN DATO DE 8 BITS EN DOS DE 4 ;SEPDIR......SEPARA UNA DIRECCION DE 16 BITS EN CUATRO DE 4 ;OBTDIR......OBTIENE UNA DIRECCION ;OBTDAT......OBTIENE UN DATO ;MEMOR.......EXAMINA Y MODIFICA UNA POSICION DE MEMORIA ;ERROR.......RUTINA DE PRESENTACION DE ERROR ;TECLADO.....OBTENCION DE LA TECLA PULSADA ;DISDAT......TRASLADA Y VISUALIZA UN DATO ;REG.........EXAMINA Y MODIFICA LOS REGISTROS ;PEPRO.......GRABAR UNA EPROM ;PERROR......ERROR EN LA RUTINA DE GRABAR EPROM ;RETARDO.....RUTINA DE PERDIDA DE TIEMPO ;PASO........RUTINA DE PASO A PASO ;PARAL.......RECIBE DATOS DE UN PC A TRAVES DEL PUERTO PARALELO(*.OBJ o *.NTL) ;TODAS LAS QUE HAY A CONTINUACION NO ESTAN PROBADAS. ;INI.........OBTENCION DE LA VELOCIDAD DE TRANSMISION SERIE ;ENVIO.......ENVIO DE DATOS POR LA LINEA SERIE ;COUT........ENVIA UN DATO POR LA LINEA SERIE ;CINP........RECIBE UN DATO POR LA LINEA SERIE ;TECLSE......OBTENCION DE LA FUNCION DESDE LA LINEA SERIE ;DISPLSE.....TRASLADA Y VISUALIZA DIRECCIONES A TRAVES DE LA LINEA SERIE ;DISDSE......TRASLADA Y VISUALIZA UN DATO A TRAVES DE LA LINEA SERIE ;TECLASE.....OBTENCION DE LA TECLA PULSADA POR LA LINEA SERIE ;COMSER......PROGRAMA DE COMUNICACION SERIE ;TAPEIN......LECTURA DE DATOS DE CINTA (NO ESTA PROBADA) ;TAPEO.......ESCRITURA DE DATOS EN CINTA(NO ESTA PROBADA) ;POSICIONES RAM PIA POS0 EQU 2000H POS1 EQU 2001H POS2 EQU 2002H POS3 EQU 2003H POS4 EQU 2004H POS5 EQU 2005H POS6 EQU 2006H POS7 EQU 2007H POS8 EQU 2008H POS9 EQU 2009H POSA EQU 200AH POSB EQU 200BH POSC EQU 200CH POSD EQU 200DH POSE EQU 200EH POSF EQU 200FH POS10 EQU 2010H POS11 EQU 2011H POS12 EQU 2012H POS13 EQU 2013H POS14 EQU 2014H POS15 EQU 2015H POS16 EQU 2016H POS17 EQU 2017H POS18 EQU 2018H POS19 EQU 2019H POS1A EQU 201AH POS1B EQU 201BH POS1C EQU 201CH POS1D EQU 201DH POS1E EQU 201EH POS1F EQU 201FH POS20 EQU 2020H POS21 EQU 2021H POS22 EQU 2022H POS23 EQU 2023H POS24 EQU 2024H POS25 EQU 2025H POS26 EQU 2026H POSSE EQU 2030H POSTEX1 EQU 2031H POSTEX2 EQU 2032H POSTEX3 EQU 2033H POSTEX4 EQU 2034H POSTEX5 EQU 2035H POSTEX6 EQU 2036H POSTEX7 EQU 2037H POSTEX8 EQU 2038H POSTEX9 EQU 2039H POSTEXA EQU 203AH POSTEXB EQU 203BH POSTEXC EQU 203CH POSTEXD EQU 203DH POSTEXE EQU 203EH POSTEXF EQU 203FH POSV EQU 2040H POSV1 EQU 2042H PORTCR EQU 3000H ;POSICIONES MEMORIA DEL 8155 PIA PORTA EQU 3001H PORTB EQU 3002H PORTC EQU 3003H DISP0 EQU 8005H ;DISPLAY DATO DISP1 EQU 8004H ; " DISP2 EQU 8003H ;DISPLAY DIRECCION DISP3 EQU 8002H ; " DISP4 EQU 8001H ; " DISP5 EQU 8000H ; " ORG 0000H MVI H,20H ;DEFINIMOS EL STACK MVI L,0FFH SPHL JMP CLS ORG 0024H JMP 2040H ;TRAP INT. ORG 003CH JMP PASO ;RST 7.5 ORG 0034H DI JMP CLS ;RST 6.5 ORG 002CH JMP REG ;RST 5.5 ORG 0008H JMP 2048H ;RST 1 ORG 0010H JMP 2050H ;RST 2 ORG 0018H JMP 2058H ;RST 3 ORG 0020H JMP 2060H ;RST 4 ORG 0028H JMP 2068H ;RST 5 ORG 0030H JMP 2070H ;RST 6 ORG 0038H JMP 2078H ;RST 7 ORG 0100H CLS MVI A,18H SIM EI MVI A,00H STA POS0 ;BORRA POSICIONES RAM STA POS1 STA POS2 STA POS3 STA POS4 STA POS5 STA POS6 STA POS7 STA POS8 STA POS9 STA POSA STA POSB STA POSC STA POSSE MOV B,A MOV C,A MOV D,A MOV E,A MOV H,A MOV L,A MVI A,0CDH STA POS8 MVI A,0C9H STA POSB DS 20H PRESE MVI A,7FH STA DISP0 STA DISP2 MVI A,3FH STA DISP1 MVI A,6DH STA DISP3 MVI A,40H STA DISP4 STA DISP5 JMP TECLAD DS 20H TECLAD LDA POSSE CPI 01H CZ TECLSE MAS1 LXI H,8FFFH INCR1 INX H MOV A,L CPI 06H JZ MAS1 MOV A,M ANI 0FH CPI 0FH JZ INCR1 TEMP10 MVI D,0FFH TE10 MVI E,0FFH TE20 DCR E JNZ TE20 DCR D JNZ TE10 MVI H,00H CPI 0EH JZ SALIR1 CPI 0DH JZ SALIR2 CPI 0BH JZ SALIR3 MVI H,18H FIN MOV A,H ADD L MOV L,A MVI H,0EH MOV A,M STA POS0 CPI 10H CZ GO CPI 11H CZ COMSER CPI 12H CZ MEMOR CPI 17H CZ PEPRO CPI 0FH CZ PARAL CPI 0BH CZ CINTA JMP TECLAD SALIR1 MVI H,00H JMP FIN SALIR2 MVI H,08H JMP FIN SALIR3 MVI H,10H JMP FIN DS 20H GO MVI A,00H STA POS7 MVI A,10H STA POS5 MVI A,18H STA POS6 MVI A,20H STA POSTEX1 MVI A,45H STA POSTEX2 STA POSTEX4 MVI A,4AH STA POSTEX3 MVI A,43H STA POSTEX5 MVI A,55H STA POSTEX6 MVI A,54H STA POSTEX7 MVI A,41H STA POSTEX8 MVI A,52H STA POSTEX9 MVI A,3AH STA POSTEXA MVI A,20H STA POSTEXB MVI A,00H STA POSTEXC CALL DISDAT LDA TAPAGA STA DISP0 STA DISP1 STA DISP2 STA DISP3 CALL OBTDIR CALL TECLADO LDA POS0 CPI 16H CNZ ERROR LDA POS7 CPI 01H JZ GO MVI H,20H MVI L,0FFH SPHL MVI A,00H MOV H,A MOV L,A MOV D,A MOV E,A MOV B,A MOV C,A PUSH H POP PSW CALL POS8 RET DS 20H DISPLAY PUSH H PUSH PSW PUSH B PUSH D LDA POSSE CPI 01H JZ DISPLSE MVI H,0EH ;DIRECCION TABLA 1 MVI L,20H LDA POS1 ADD L MOV L,A MOV A,M STA DISP0 MVI L,20H ;DIRECCION BAJA TABLA 1 LDA POS2 ADD L MOV L,A MOV A,M STA DISP1 MVI L,20H ;DIRECCION BAJA TABLA 1 LDA POS3 ADD L MOV L,A MOV A,M STA DISP2 MVI L,20H ;DIRECCION BAJA TABLA 1 LDA POS4 ADD L MOV L,A MOV A,M STA DISP3 POP D POP B POP PSW POP H RET DS 20H SEPDAT PUSH H PUSH PSW PUSH B PUSH D LDA POSC ANI 0F0H RRC RRC RRC RRC STA POS5 LDA POSC ANI 0FH STA POS6 POP D POP B POP PSW POP H RET DS 20H SEPDIR PUSH H PUSH PSW PUSH B PUSH D LDA POSA ANI 0F0H RRC RRC RRC RRC STA POS1 LDA POSA ANI 0FH STA POS2 LDA POS9 ANI 0F0H RRC RRC RRC RRC STA POS3 LDA POS9 ANI 0FH STA POS4 POP D POP B POP PSW POP H RET DS 20H OBTDIR PUSH H PUSH PSW PUSH B PUSH D MVI A,29H STA POS1 STA POS2 STA POS3 STA POS4 ETIQ MVI A,00H STA POS7 MVI H,20H MVI L,01H ETIQ1 CALL TECLADO LDA POS0 CPI 10H CP ERROR MOV M,A LDA POS7 CPI 01H JZ ETIQ CALL DISPLAY INX H MVI A,05H CMP L JNZ ETIQ1 LDA POS1 ANI 0FH RLC RLC RLC RLC MOV B,A LDA POS2 ANI 0FH ADD B STA POSA LDA POS3 ANI 0FH RLC RLC RLC RLC MOV B,A LDA POS4 ANI 0FH ADD B STA POS9 POP D POP B POP PSW POP H RET DS 20H OBTDAT PUSH H PUSH PSW PUSH B PUSH D MVI A,29H STA POS5 STA POS6 ETI MVI A,00H STA POS7 MVI H,20H MVI L,05H ETI1 CALL TECLADO LDA POS0 CPI 10H CP ERROR MOV M,A LDA POS7 CPI 01H JZ ETI MVI A,00H STA POSTEX1 CALL DISDAT INX H MVI A,07H CMP L JNZ ETI1 LDA POS5 ANI 0FH RLC RLC RLC RLC MOV B,A LDA POS6 ANI 0FH ADD B STA POSC POP D POP B POP PSW POP H RET DS 20H MEMOR PUSH H PUSH PSW PUSH B PUSH D MVI A,16H STA POS5 MVI A,0EH STA POS6 MVI A,20H STA POSTEX1 STA POSTEX8 MVI A,41H STA POSTEX2 MVI A,43H STA POSTEX3 STA POSTEX4 MVI A,45H STA POSTEX5 STA POSTEXA MVI A,53H STA POSTEX6 MVI A,4FH STA POSTEX7 STA POSTEXC MVI A,4DH STA POSTEX9 STA POSTEXB MVI A,20H STA POSTEXD MVI A,00H STA POSTEXE CALL DISDAT LDA TAPAGA STA DISP0 STA DISP1 STA DISP2 STA DISP3 CALL OBTDIR LDA POS7 CPI 01H JZ PRESE CALL TECLADO LDA POS0 CPI 16H JNZ PRESE LHLD POS9 SALTO5 MOV A,M STA POSC CALL SEPDAT CALL DISPLAY MVI A,00H STA POSTEX1 CALL DISDAT SALTO6 MVI D,20H MVI E,05H SALTO4 CALL TECLADO LDA POS0 CPI 13H JZ SALTO1 CPI 14H JZ SALTO2 CPI 16H JZ SALTO3 CPI 10H JP SALTO4 STAX D CALL DISDAT INX D MVI A,07H CMP E JNZ SALTO4 LDA POS5 ANI 0FH RLC RLC RLC RLC MOV B,A LDA POS6 ANI 0FH ADD B MOV M,A STA POSC JMP SALTO5 SALTO1 INX H SHLD POS9 CALL SEPDIR JMP SALTO5 SALTO2 DCX H SHLD POS9 CALL SEPDIR JMP SALTO5 SALTO3 MVI A,0FH STA POS1 MVI A,12H STA POS2 MVI A,17H STA POS3 MVI A,29H STA POS4 STA POS5 STA POS6 CALL DISDAT POP D POP B POP PSW POP H RET DS 20H ERROR PUSH H PUSH PSW PUSH B PUSH D MVI C,05H ERR1 MVI A,0EH STA POS1 MVI A,1BH STA POS2 STA POS3 STA POS5 MVI A,18H STA POS4 MVI A,29H STA POS6 MVI A,45H STA POSTEX1 MVI A,52H STA POSTEX2 STA POSTEX3 STA POSTEX5 MVI A,4FH STA POSTEX4 MVI A,00H STA POSTEX6 CALL DISPLAY CALL DISDAT TEMP1 MVI D,0FFH TEM1 MVI E,0FFH TEM2 DCR E JNZ TEM2 DCR D JNZ TEM1 DCR C MVI A,00H CMP C JNZ TEMP2 MVI A,01H STA POS7 CALL DISPLAY CALL DISDAT POP D POP B POP PSW POP H RET TEMP2 LDA TAPAGA STA DISP0 STA DISP1 STA DISP2 STA DISP3 STA DISP4 STA DISP5 MVI D,0FFH TEM3 MVI E,0FFH TEM4 DCR E JNZ TEM4 DCR D JNZ TEM3 JMP ERR1 DS 20H TECLADO PUSH H PUSH PSW PUSH B PUSH D LDA POSSE CPI 01H JZ TECLASE MAS LXI H,8FFFH INCR INX H MOV A,L CPI 06H JZ MAS MOV A,M ANI 0FH CPI 0FH JZ INCR TEMP50 MVI D,0FFH TE60 MVI E,0FFH TE70 DCR E JNZ TE70 DCR D JNZ TE60 MVI H,00H CPI 0EH JZ SAL1 CPI 0DH JZ SAL2 CPI 0BH JZ SAL3 MVI H,18H FIN1 MOV A,H ADD L MOV L,A MVI H,0EH MOV A,M STA POS0 POP D POP B POP PSW POP H RET SAL1 MVI H,00H JMP FIN1 SAL2 MVI H,08H JMP FIN1 SAL3 MVI H,10H JMP FIN1 DS 20H DISDAT PUSH H PUSH PSW PUSH B PUSH D LDA POSSE CPI 01H JZ DISDSE MVI H,0EH ;DIRECCION TABLA 1 MVI L,20H LDA POS5 ADD L MOV L,A MOV A,M STA DISP4 MVI L,20H ;DIRECCION BAJA TABLA 1 LDA POS6 ADD L MOV L,A MOV A,M STA DISP5 POP D POP B POP PSW POP H RET DS 20 REG PUSH PSW STA POSE MOV A,B STA POSF MOV A,C STA POS10 MOV A,D STA POS11 MOV A,E STA POS12 SHLD POS13 POP H MOV A,L STA POSD LXI H,POS0 LXI B,POS17 OTRO MOV A,M STAX B INX B INX H MOV A,L CPI 0DH JNZ OTRO REG2 POP H MVI A,19H STA POS5 MVI A,0CH STA POS6 MVI A,00H STA POSTEX1 CALL DISDAT CALL CAMBIA SHLD POS15 LXI H,00H DAD SP MVI A,1CH STA POS5 MVI A,19H STA POS6 CALL DISDAT CALL CAMBIA SPHL LHLD POS15 PUSH H LHLD POSD MVI A, 0AH STA POS5 MVI A,1BH STA POS6 CALL DISDAT CALL CAMBIA PUSH H LHLD POSF MVI A,0BH STA POS5 MVI A,0CH STA POS6 CALL DISDAT CALL CAMBIA PUSH H LHLD POS11 MVI A,0DH STA POS5 MVI A,0EH STA POS6 CALL DISDAT CALL CAMBIA PUSH H LHLD POS13 MVI A,11H STA POS5 MVI A,15H STA POS6 CALL DISDAT CALL CAMBIA JMP REG2 FINI PUSH H LXI H,POS17 LXI B,POS0 OTRO2 MOV A,M STAX B INX B INX H MOV A,L CPI 24H JNZ OTRO2 MVI A,18H SIM EI POP H POP D POP B POP PSW RET CAMBIA PUSH PSW PUSH B PUSH D SHLD POS9 SIGUE1 CALL SEPDIR CALL DISPLAY SIGUE2 CALL TECLADO LHLD POS9 LDA POS0 CPI 13H JZ ACABA MVI B,10H CMP B JNZ TECFIN CALL OBTDIR JMP SIGUE1 TECFIN CPI 16H JZ FINI JMP SIGUE2 ACABA POP D POP B POP PSW RET DS 20H PEPRO PUSH H PUSH PSW PUSH B PUSH D MVI A,00H STA 3000H MVI A,0EH STA POS5 MVI A,19H STA POS6 MVI A,20H STA POSTEX1 STA POSTEX8 LDA TAPAGA STA DISP0 STA DISP1 STA DISP2 STA DISP3 MVI A,47H STA POSTEX2 MVI A,52H STA POSTEX3 STA POSTEX7 MVI A,41H STA POSTEX4 MVI A,42H STA POSTEX5 MVI A,41H STA POSTEX6 MVI A,45H STA POSTEX9 MVI A,50H STA POSTEXA MVI A,52H STA POSTEXB MVI A,4FH STA POSTEXC MVI A,4DH STA POSTEXD MVI A,00H STA POSTEXE CALL DISDAT CALL RETARDO MVI A,1BH STA POS5 MVI A,0AH STA POS6 MVI A,4DH STA POSTEX3 MVI A,52H STA POSTEX1 MVI A,41H STA POSTEX2 MVI A,00H STA POSTEX4 CALL DISDAT EP2 CALL OBTDIR LDA POSA MOV H,A LDA POS9 MOV L,A CALL TECLADO LDA POS0 CPI 16H JNZ EP2 MVI A,1BH STA POS5 MVI A,0FH STA POS6 MVI A,20H STA POSTEX1 MVI A,52H STA POSTEX2 MVI A,41H STA POSTEX3 MVI A,4DH STA POSTEX4 MVI A,20H STA POSTEX5 MVI A,46H STA POSTEX6 MVI A,49H STA POSTEX7 MVI A,4EH STA POSTEX8 MVI A,41H STA POSTEX9 MVI A,4CH STA POSTEXA MVI A,00H STA POSTEXB CALL DISDAT EP4 CALL OBTDIR LDA POSA MOV B,A LDA POS9 MOV C,A CALL TECLADO LDA POS0 CPI 16H JNZ EP4 EP3 MVI A,0EH STA POS5 MVI A,19H STA POS6 MVI A,45H STA POSTEX2 MVI A,50H STA POSTEX3 MVI A,52H STA POSTEX4 MVI A,4FH STA POSTEX5 MVI A,4DH STA POSTEX6 MVI A,00H STA POSTEX7 CALL DISDAT EP5 CALL OBTDIR LDA POSA MOV D,A LDA POS9 MOV E,A EP1 MVI A,03H STA 3000H MOV A,D STA 3002H MVI A,59H STA 3001H MVI A,58H STA 3001H MOV A,E STA 3002H MVI A,5AH STA 3001H MVI A,58H STA 3001H MOV A,M STA 3002H MVI A,4CH STA 3001H MVI A,0CH STA 3001H PUSH D ;RETARDO MVI D,30H ;DE EP6 MVI E,0FFH ;50 EP7 DCR E ;MILISEGUNDOS JNZ EP7 ; DCR D ; JNZ EP6 ; POP D MVI A,58H STA 3001H ;HASTA AQUI MVI A,01H STA 3000H MVI A,40H STA 3001H LDA 3002H CMP M JNZ PERROR MVI A,58H STA 3001H INX D INX H MOV A,H CMP B JNZ EP1 MOV A,L CMP C JNZ EP1 MVI A,00H STA 3000H POP D POP B POP PSW POP H RET DS 20H PASO DI SHLD POS26 POP H SHLD POS9 PUSH H PUSH PSW CALL SEPDIR CALL DISPLAY MOV A,M STA POSC CALL SEPDAT MVI A,00H STA POSTEX1 CALL DISDAT PASO1 CALL TECLADO LDA POS0 CPI 15H JNZ PASO1 MVI A,18H SIM EI LHLD POS26 POP PSW RET DS 20H ORG 0900H COMSER CALL INI MVI A,01H STA POSSE LDA TS STA DISP0 LDA TE STA DISP1 STA DISP4 LDA TR STA DISP2 LDA TI STA DISP3 LDA TAPAGA STA DISP5 LXI H,CON2 CON1 MOV C,M XRA A ORA C JZ TECLSE CALL COUT INX H JMP CON1 CON2 DB 0DH ;MENSAJE EN ASCII DB 0AH DB 20H ;ESPACIO DB 50H DB 55H DB 4CH DB 53H DB 45H DB 20H DB 46H DB 55H DB 4EH DB 43H DB 49H DB 4FH DB 4EH DB 20H DB 0DH DB 0AH DB 4DH DB 45H DB 3DH DB 20H DB 50H DB 41H DB 52H DB 41H DB 20H DB 41H DB 43H DB 43H DB 45H DB 53H DB 4FH DB 20H DB 41H DB 20H DB 4DH DB 45H DB 4DH DB 4FH DB 52H DB 49H DB 41H DB 20H DB 0DH DB 0AH DB 47H DB 4FH DB 3DH DB 20H DB 50H DB 41H DB 52H DB 41H DB 20H DB 45H DB 4AH DB 45H DB 43H DB 55H DB 54H DB 41H DB 52H DB 20H DB 0DH DB 0AH DB 43H DB 4FH DB 3DH DB 20H DB 50H DB 41H DB 52H DB 41H DB 20H DB 43H DB 4FH DB 50H DB 49H DB 41H DB 52H DB 20H DB 55H DB 4EH DB 4EH DB 41H DB 20H DB 45H DB 50H DB 52H DB 4FH DB 4DH DB 20H DB 0DH DB 0AH DB 45H DB 50H DB 3DH DB 20H DB 50H DB 41H DB 52H DB 41H DB 20H DB 47H DB 52H DB 41H DB 42H DB 41H DB 52H DB 20H DB 55H DB 4EH DB 41H DB 20H DB 45H DB 50H DB 52H DB 4FH DB 4DH DB 20H DB 0DH DB 0AH DB 53H DB 41H DB 3DH DB 20H DB 50H DB 41H DB 52H DB 41H DB 20H DB 53H DB 41H DB 4CH DB 49H DB 52H DB 20H DB 0DH DB 0AH DB 52H DB 45H DB 3DH DB 20H DB 50H DB 41H DB 52H DB 41H DB 20H DB 56H DB 45H DB 52H DB 20H DB 4CH DB 4FH DB 53H DB 20H DB 52H DB 45H DB 47H DB 49H DB 53H DB 54H DB 52H DB 4FH DB 53H DB 20H DB 0DH DB 0AH DB 50H DB 41H DB 3DH DB 20H DB 50H DB 41H DB 52H DB 41H DB 20H DB 49H DB 52H DB 20H DB 50H DB 41H DB 53H DB 4FH DB 20H DB 41H DB 20H DB 50H DB 41H DB 53H DB 4FH DB 20H DB 00H TECLSE CALL CINP MOV H,C CALL CINP MOV L,C MOV A,H CPI 4DH CZ MEMOR CPI 47H CZ GO CPI 45H CZ PEPRO CPI 53H JZ 0000H CPI 52H CZ REG CPI 50H CZ PASO JMP TECLSE DS 20H DISPLSE LXI H,DI4 CALL ENVIO MVI H,20H MVI L,01H DI2 MOV A,M ANI 0FH CPI 09H JM DI3 ADI 37H DI5 MOV C,A CALL COUT INR L MVI A,05H CMP L JNZ DI2 POP D POP B POP PSW POP H RET DI3 ADI 30H JMP DI5 DI4 DB 0DH ;MENSAJE EN ASCII DB 0AH DB 20H DB 44H DB 49H DB 52H DB 45H DB 43H DB 43H DB 49H DB 4FH DB 4EH DB 20H DB 3DH DB 20H DB 00H DS 20H DISDSE LXI H,DS1 CALL ENVIO MVI H,20H MVI L,05H DS4 MOV A,M ANI 0FH CPI 09H JM DS6 ADI 37H DS5 MOV C,A CALL COUT INR L MVI A,07H CMP L JNZ DS4 MVI H,20H MVI L,30H CALL ENVIO POP D POP B POP PSW POP H RET DS1 DB 0DH ;MENSAJE EN ASCII DB 0AH DB 20H DB 44H DB 41H DB 54H DB 4FH DB 20H DB 3DH DB 20H DB 00H DS6 ADI 30H JMP DS5 DS 20H TECLASE LXI H,TCE7 CALL ENVIO TCE0 CALL CINP MOV A,C CPI 39H JP TCE1 SUI 30H CPI 00H JP TCE2 STA POS0 TCE3 POP D POP B POP PSW POP H RET TCE1 SUI 37H STA POS0 JMP TCE3 TCE2 CPI 0FBH JNZ TCE4 MVI A,13H STA POS0 JMP TCE3 TCE4 CPI 0FDH JNZ TCE5 MVI A,14H STA POS0 JMP TCE3 TCE5 CPI 0E3H JNZ TCE6 MVI A,16H STA POS0 JMP TCE0 TCE6 MVI A,10H STA POS0 JMP TCE3 TCE7 DB 0DH ;MENSAJE EN ASCII DB 0AH DB 20H DB 50H DB 55H DB 4CH DB 53H DB 45H DB 20H DB 54H DB 45H DB 43H DB 4CH DB 41H DB 20H DB 3DH DB 20H DB 00H DS 20H ;RUTINA SELECCIàN DE BAUDIOS INI PUSH H PUSH PSW PUSH B PUSH D LDA TB STA POS5 LDA TD STA POS6 CALL DISDAT SLTO0 CALL OBTDIR LHLD POS9 MOV A,H CPI 19H JZ SLTO1 CPI 96H JZ SLTO2 CPI 48H JZ SLTO3 CPI 24H JZ SLTO4 CPI 12H JZ SLTO5 CPI 06H JZ SLTO6 CPI 03H JZ SLTO7 CPI 01H JNZ SLTO8 MOV A,L CPI 50H JZ SLTO9 CPI 10H JZ SLTO10 SLTO8 CALL ERROR JMP SLTO0 SLTO1 LXI H,0107H SHLD POSV LXI H,0104H SHLD POSV1 JMP SLTO11 SLTO2 LXI H,0112H SHLD POSV LXI H,0109H SHLD POSV1 JMP SLTO11 SLTO3 LXI H,0129H SHLD POSV LXI H,0115H SHLD POSV1 JMP SLTO11 SLTO4 LXI H,0157H SHLD POSV LXI H,012CH SHLD POSV1 JMP SLTO11 SLTO5 LXI H,01B2H SHLD POSV LXI H,0159H SHLD POSV1 JMP SLTO11 SLTO6 LXI H,0269H SHLD POSV LXI H,01A5H SHLD POSV1 JMP SLTO11 SLTO7 LXI H,0307H SHLD POSV LXI H,026CH SHLD POSV1 JMP SLTO11 SLTO9 LXI H,06B2H SHLD POSV LXI H,03D9H SHLD POSV1 JMP SLTO11 SLTO10 LXI H,08C6H SHLD POSV LXI H,04E3H SHLD POSV1 JMP SLTO11 SLTO11 POP D POP B POP PSW POP H RET DS 20H ENVIO NOP E1 MOV C,M XRA A ORA C RZ CALL COUT INX H JMP E1 COUT DI PUSH B PUSH H MVI B,0B ;Bites de salida XRA A CO1 MVI A,80H RAR SIM LHLD POSV CO2 DCR L JNZ CO2 DCR H JNZ CO2 STC MOV A,C RAR MOV C,A DCR B JNZ CO1 POP H POP B EI RET DS 20H CINP DI PUSH H MVI B,09H CI1 RIM ORA A JM CI1 LHLD POSV1 CI2 DCR L JNZ CI2 DCR H JNZ CI2 CI3 LHLD POSV CI4 DCR L JNZ CI4 DCR H JNZ CI4 RIM RAL DCR B JZ CI5 MOV A,C RAR MOV C,A NOP JMP CI3 CI5 POP H EI RET DS 20H PERROR SHLD POS9 CALL SEPDIR CALL DISPLAY MVI A,0EH STA POS5 MVI A,1BH STA POS6 MVI A,45H STA POSTEX1 MVI A,52H STA POSTEX2 STA POSTEX3 STA POSTEX5 MVI A,4FH STA POSTEX4 MVI A,00H STA POSTEX6 CALL DISDAT CALL RETARDO POP D POP B POP PSW POP H RET DS 20H RETARDO PUSH H PUSH PSW PUSH B PUSH D MVI D,0FFH RETA1 MVI E,0FFH RETA2 DCR E JNZ RETA2 DCR D JNZ RETA1 POP D POP B POP PSW POP H RET DS 20H ORG 0D000H DB 0DH ;MENSAJE EN ASCII DB 0AH DB 48H ;H DB 4FH ;O DB 4CH ;L DB 41H ;A DB 00H TAPEO MVI B,09H ;RUTINA DE ESCRITURA EN EL CASSETTE TO1 MVI A,0C0H CALL BURST MOV A,C RAR MOV C,A MVI A,01H RAR RAR CALL BURST DCR B JNZ TO1 RET BURST MVI D,20 BU1 SIM MVI E,108 BU2 DCR E JNZ BU2 XRI 80H DCR D JNZ BU1 RET TAPEIN MVI B,08H MVI D,00H TI1 CALL BITIN JC TI1 CALL BITIN JC TI1 TI2 CALL BITIN JNC TI2 CALL BITIN JNC TI2 TI3 DCR D CALL BITIN JC TI2 CALL BITIN JC TI2 TI4 INR D CALL BITIN JNC TI4 CALL BITIN JNC TI4 MOV A,D RAL MOV A,C RAR MOV C,A MVI D,00H DCR B JNZ TI3 RET BITIN MVI E,250 BI1 DCR E JNZ BI1 RIM RAL RET DS 20H PARAL CALL LEER ;RUTINA DE RECIBIR DATOS EN PARALELO(*.OBJ o *.NTL) CPI 3AH JNZ PARAL CALL LEER ANI 0FH CPI 30H CNZ LETRA CZ NUMERO CALL ROTAR MOV D,A CALL LEER ANI 0FH CPI 30H CNZ LETRA CZ NUMERO ADD D MOV D,A CALL LEER ANI 0FH CPI 30H CNZ LETRA CZ NUMERO CALL ROTAR MOV H,A CALL LEER ANI 0FH CPI 30H CNZ LETRA CZ NUMERO ADD H MOV H,A CALL LEER ANI 0FH CPI 30H CNZ LETRA CZ NUMERO ORG 0E20H ;TABLA DE 7 SEGMENTOS T0 DB 3FH T1 DB 06H T2 DB 58H T3 DB 4FH T4 DB 66H T5 DB 6DH T6 DB 70H T7 DB 07H T8 DB 7FH T9 DB 67H TA DB 77H TB DB 7CH TC DB 39H TD DB 5EH TE DB 79H TF DB 71H TG DB 7DH TH DB 76H TI DB 06H TJ DB 1EH TK DB 0E0H TL DB 38H TM DB 37H TN DB 37H TO DB 3FH TP DB 73H TQ DB 3FH TR DB 50H TS DB 6DH TT DB 61H TU DB 3EH TV DB 3EH TW DB 3EH TX DB 76H TY DB 72H TZ DB 5BH T11 DB 00H T12 DB 00H T13 DB 00H T14 DB 00H T15 DB 00H TAPAGA DB 00H ORG 0E00H ;TABLA CODIGO DE TECLAS TABLA2 DB 0H DB 1H DB 2H DB 3H DB 13H DB 14H DB 0H DB 0H DB 4H DB 5H DB 6H DB 7H DB 12H DB 11H DB 0H DB 0H DB 8H DB 9H DB 0AH DB 0BH DB 10H DB 15H DB 0H DB 0H DB 0CH DB 0DH DB 0EH DB 0FH DB 16H DB 17H DS 20H