Diferencias
Muestra las diferencias entre dos versiones de la página.
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)] miguel | 012: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;' | + | CP 234 ;' |
- | 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:' | + | CP 248;'SAVE' CARACTERES DE LA LINEA DE |
- | JR Z.TSAVE COMANDO PARA BIFURCARA | + | JR Z,TSAVE COMANDO PARA BIFURCARA |
- | CP 239:' | + | CP 239;' |
- | JP Z.TLOAD | + | JP Z,TLOAD |
- | CP 214;' | + | CP 214;' |
- | JP Z.TVERIF | + | JP Z,TVERIF |
- | CP 213: -MERGE | + | CP 213;'MERGE' |
- | JR Z.TMERGE | + | JR Z,TMERGE |
- | JR ERRORA SI NINGUNO EXISTE. SALTA 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:' | + | DEFB 5; ' |
- | ERRORA RST 8 | + | ERRORA RST 8 |
- | DEFB 9;' | + | DEFB 9; ' |
- | ERRORB RST 8 | + | ERRORB RST 8 |
- | DEFB 10; ' | + | DEFB 10; ' |
- | ERRORC RST 8 | + | ERRORC RST 8 |
- | DEFB 11; NONSENSE IN BASIC' | + | DEFB 11; NONSENSE IN BASIC' |
- | ERRORF RST 8 | + | ERRORF RST 8 |
- | DEFB 14: INVALID ARGUMENT' | + | DEFB 14; INVALID 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 ' | + | 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 " | + | PUSH AF PRESERVA EL INDICADOR DE " |
- | LD MFD ABRE CANAL (j | + | LD A,#FD ABRE CANAL 0 |
- | CALL # | + | CALL # |
- | XOR A | + | XOR A |
- | LD DE# | + | LD DE,#9A1 MENSAJE "START TAPE..." |
- | CALL #C0A | + | CALL # |
- | SET 5, | + | SET 5, |
- | CALL # | + | CALL # |
- | LD IX.CABEC PUNTERO PARA EL BUFFER DE CABECERA. | + | LD IX,CABEC PUNTERO PARA EL BUFFER DE CABECERA. |
- | LD DE, | + | 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 " | + | POP AF RECUPERA " |
- | LD DE.ILONT) LONGITUD DEL BLOQUE A SALVAR. | + | LD DE,(LONT) LONGITUD DEL BLOQUE A SALVAR. |
- | LD A.ffF SEÑAL " | + | LD A,#FF SEÑAL " |
- | LD IX, | + | LD IX, |
- | 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 " | + | INC HL |
- | CP 13 | + | LD A,(HL) AL FINAL DEBE HABER UN " |
- | JR NZ, | + | CP 13 |
- | CALL RELOAD CARGA LA CABECERA. | + | JR NZ, |
- | 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 | + | INC BC |
- | LO |HL),#8tf PONE UN INDICADOR DE FIN EN LA LOCALIZACION EXTRA. | + | RST 48 CREA EN EL AREA DE TRABAJO " |
- | 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 " | + | CALL LMBYT CARGA EL BLOQUE DEL PROGRAMA. |
- | TVERIF CALL LDPREV INICIALIZA VALORES. | + | JP 2253 EFECTUA LA OPERACION DE " |
- | RES (j,|IY+37) SEÑAL " | + | TVERIF CALL LDPREV INICIALIZA VALORES. |
- | JR NC.LDBYTE SALTA SI NO ES UN PROGRAMA BASIC. | + | RES 0,(IY+37) SEÑAL " |
- | 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. |