012:utilidades

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
Próxima revisiónAmbos lados, revisión siguiente
012:utilidades [d/m/Y H:i] – [Utilidades: Carga y almacenamiento de programas con velocidad variable (II)] miguel012:utilidades [d/m/Y H:i] – [Listado ensamblador] miguel
Línea 23: Línea 23:
  
 <code z80> <code z80>
-ORG 60M0 + ORG 60000 
-LD HL,|23645) TOMA LA DIRECCION CH-ADD PARA SINTAXIS INICIAL. + LD HL,(23645) TOMA LA DIRECCION CH-ADD PARA SINTAXIS INICIAL. 
-INC HL + INC HL 
-LD A.(HL) + LD A,(HL) 
-CP 234;'REM' COMPRUEBA LA PRESENCIA DE "REM" + CP 234 ;'REM' COMPRUEBA LA PRESENCIA DE "REM" 
-JR NZ.ERRORA Y":" + JR NZ,ERRORA Y ":" 
-INC HL + INC HL 
-LD A.(HL) SI NO EXISTEN. SALTA A ERROR + LD A,(HL) SI NO EXISTEN. SALTA A ERROR 
-CP ":" + CP ":" 
-JR NZ.ERRORA + JR NZ,ERRORA 
-INC HL + INC HL 
-LD A,(HL| EXAMINA LOS SIGUIENTES + LD A,(HL) EXAMINA LOS SIGUIENTES 
-CP 248:'SAVE CARACTERES DE LA LINEA DE + CP 248;'SAVE' CARACTERES DE LA LINEA DE 
-JR Z.TSAVE COMANDO PARA BIFURCARA + JR Z,TSAVE COMANDO PARA BIFURCARA 
-CP 239:'LOAD' LA SUBRUTINA CORRESPONDIENTE. + CP 239;'LOAD' LA SUBRUTINA CORRESPONDIENTE. 
-JP Z.TLOAD + JP Z,TLOAD 
-CP 214;'VERIFY' + CP 214;'VERIFY' 
-JP Z.TVERIF + JP Z,TVERIF 
-CP 213: -MERGE + CP 213;'MERGE' 
-JR Z.TMERGE + JR Z,TMERGE 
-JR ERRORA SI NINGUNO EXISTESALTA A ERROR. + JR ERRORA SI NINGUNO EXISTE SALTA A ERROR. 
-ERROR6 RST 8 LLAMADAS A LA SUBRUTINA ROM DE MENSAJES DE ERROR +ERROR6 RST 8 LLAMADAS A LA SUBRUTINA ROM DE MENSAJES DE ERROR 
-DEFB 5:'NUMBER'TOO BIG' + DEFB 5'NUMBER'TOO BIG' 
-ERRORA RST 8 +ERRORA RST 8 
-DEFB 9;'INVALID ARGUMENT + DEFB 9; 'INVALID ARGUMENT 
-ERRORB RST 8 +ERRORB RST 8 
-DEFB 10; 'INTEGER OUT OF RANGE' + DEFB 10; 'INTEGER OUT OF RANGE' 
-ERRORC RST 8 +ERRORC RST 8 
-DEFB 11; NONSENSE IN BASIC' + DEFB 11; NONSENSE IN BASIC' 
-ERRORF RST 8 +ERRORF RST 8 
-DEFB 14INVALID ARGUMENT' + DEFB 14INVALID ARGUMENT' 
-ERRORR RST 8 +ERRORR RST 8 
-DEFB 26:'TAPE LOADING ERROR' + DEFB 26'TAPE LOADING ERROR' 
-TSAVE CALL BAUDIO TOMA EL NUMERO INDICADOR DELA VELOCIDAD DE GRABA- +TSAVE CALL BAUDIO TOMA EL NUMERO INDICADOR DELA VELOCIDAD DE GRABA- 
-CALL NAME CION. NOMBRE Y SI SU LONGITUD ES + CALL NAME CION. NOMBRE Y SI SU LONGITUD ES 
-JR C.ERRORF CERO O MAYOR QUE 10. SALTA A ERROR. + JR C,ERRORF CERO O MAYOR QUE 10. SALTA A ERROR. 
-CALL SINTAX COGE EL RESTO DE LOS DATOS. + CALL SINTAX COGE EL RESTO DE LOS DATOS. 
-PUSH AF PRESERVA EL INDICADOR DE "TIPO"+ PUSH AF PRESERVA EL INDICADOR DE "TIPO"
-LD MFD ABRE CANAL (j + LD A,#FD ABRE CANAL 0 
-CALL #1601 + CALL #1601 
-XOR A + XOR A 
-LD DE#9A1 MENSAJE "START TAPE..." + LD DE,#9A1 MENSAJE "START TAPE..." 
-CALL #C0A + CALL #C0A 
-SET 5,(IY+2) FLAG PARA BORRAR MENSAJE. + SET 5,(IY+2) FLAG PARA BORRAR MENSAJE. 
-CALL #15D4 ESPERAR PULSACION TECLA. + CALL #15D4 ESPERAR PULSACION TECLA. 
-LD IX.CABEC PUNTERO PARA EL BUFFER DE CABECERA. + LD IX,CABEC PUNTERO PARA EL BUFFER DE CABECERA. 
-LD DE,17 LONGITUD DEL BUFFER. + LD DE,17 LONGITUD DEL BUFFER. 
-XOR A INDICA "ES UNA CABECERA", + XOR A INDICA "ES UNA CABECERA", 
-CALL SAVE SALVA LA CABECERA. + CALL SAVE SALVA LA CABECERA. 
-LD B.#32 + LD B,#32 
-HALT SE PRODUCE UN RETARDO ANTES DE SALVAR EL SEGUNDO + HALT SE PRODUCE UN RETARDO ANTES DE SALVAR EL SEGUNDO 
-DJNZ PSAV BLOQUE. + DJNZ PSAV BLOQUE. 
-POP AF RECUPERA "TIPO" + POP AF RECUPERA "TIPO" 
-LD DE.ILONT) LONGITUD DEL BLOQUE A SALVAR. + LD DE,(LONT) LONGITUD DEL BLOQUE A SALVAR. 
-LD A.ffF SEÑAL "BLOQUE DE DATOS"+ LD A,#FF SEÑAL "BLOQUE DE DATOS"
-LD IX,(23635) SI ES UN PROGRAMA. TOMA DIR. DE COMIENZO. + LD IX,(23635) SI ES UN PROGRAMA. TOMA DIR. DE COMIENZO. 
-JR C FSAV + JR C FSAV 
-LD IX.(DIRT) SI NO. LA DIRECCION ESPECIFICADA EN EL COMANDO. + LD IX,(DIRT) SI NO. LA DIRECCION ESPECIFICADA EN EL COMANDO. 
-FSAV CALL SAVE RET +FSAV CALL SAVE 
-TMERGE CALL BAUDIO + RET 
-CALL NAME +TMERGE CALL BAUDIO 
-CALL C.CPNAME COMPRUEBA QUE EL FINALES'"' + CALL NAME 
-INC HL + CALL C,CPNAME COMPRUEBA QUE EL FINAL ES'"' 
-LD A.(HL) AL FINAL DEBE HABER UN "ENTER"+ INC HL 
-CP 13 + LD A,(HL) AL FINAL DEBE HABER UN "ENTER"
-JR NZ,ERRORC + CP 13 
-CALL RELOAD CARGA LA CABECERA. + JR NZ,ERRORC 
-LD BC.(LONBUF| LONGITUD TOTAL DEL PROGRAMA + CALL RELOAD CARGA LA CABECERA. 
-PUSH BC + LD BC,(LONBUF) LONGITUD TOTAL DEL PROGRAMA 
-INC BC + PUSH BC 
-RST 48 , CREA EN EL AREA DE TRABAJO "BC+1" ESPACIOS. + INC BC 
-LO |HL),#8tf PONE UN INDICADOR DE FIN EN LA LOCALIZACION EXTRA. + RST 48 CREA EN EL AREA DE TRABAJO "BC+1" ESPACIOS. 
-EX DE.HL + LD (HL),#80 PONE UN INDICADOR DE FIN EN LA LOCALIZACION EXTRA. 
-POP DE + EX DE,HL 
-PUSH HL + POP DE 
-BUSH HL + PUSH HL 
-POP IX + PUSH HL 
-LD A.*FF + POP IX 
-CALL LMBYT CARGA EL BLOQUE DEL PROGRAMA. + LD A,#FF 
-JP 2253 EFECTUA LA OPERACION DE "MERGE"+ CALL LMBYT CARGA EL BLOQUE DEL PROGRAMA. 
-TVERIF CALL LDPREV INICIALIZA VALORES. + JP 2253 EFECTUA LA OPERACION DE "MERGE"
-RES (j,|IY+37) SEÑAL "VERIFICANDO"+TVERIF CALL LDPREV INICIALIZA VALORES. 
-JR NC.LDBYTE SALTA SI NO ES UN PROGRAMA BASIC. + RES 0,(IY+37) SEÑAL "VERIFICANDO"
-JR CPROG VERIFICA EL PROGRAMA BASIC. + JR NC,LDBYTE SALTA SI NO ES UN PROGRAMA BASIC. 
-LDPREV CALL BAUDIO TOMA LOS VALORES DEL COMANDO. + JR CPROG VERIFICA EL PROGRAMA BASIC. 
-CALL NAME COMPRUEBA SINTAXIS Y CARGA LA CABECERA. +LDPREV CALL BAUDIO TOMA LOS VALORES DEL COMANDO. 
-CALL C.CPNAME + CALL NAME COMPRUEBA SINTAXIS Y CARGA LA CABECERA. 
-CALL NSINT + CALL C,CPNAME 
-PUSH AF PRESERVA EL INDICADOR DE TIPO. + CALL NSINT 
-CALL RELOAD + PUSH AF PRESERVA EL INDICADOR DE TIPO. 
-POP AF LO RECUPERA. + CALL RELOAD 
-RET + POP AF LO RECUPERA. 
-TLOAD CALL LDPREV+ RET 
 +TLOAD CALL LDPREV
 SET (j.|IY+37) SEÑAL "CARGA EL BLOQUE". SET (j.|IY+37) SEÑAL "CARGA EL BLOQUE".
 JR NC.LDBYTE SALTA SI NO ES UN PROGRAMA BASIC. JR NC.LDBYTE SALTA SI NO ES UN PROGRAMA BASIC.
  • 012/utilidades.txt
  • Última modificación: d/m/Y H:i
  • por miguel