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
012:utilidades [d/m/Y H:i] – [Listado ensamblador] miguel012:utilidades [d/m/Y H:i] (actual) – [Listado ensamblador] miguel
Línea 35: Línea 35:
  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 EXISTE SALTA A ERROR.  JR ERRORA SI NINGUNO EXISTE SALTA A ERROR.
Línea 73: Línea 73:
  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+PSAV HALT SE PRODUCE UN RETARDO ANTES DE SALVAR EL SEGUNDO
  DJNZ PSAV BLOQUE.  DJNZ PSAV BLOQUE.
  POP AF RECUPERA "TIPO"  POP AF RECUPERA "TIPO"
Línea 117: Línea 117:
  RET  RET
 TLOAD CALL LDPREV TLOAD CALL LDPREV
-SET (j.|IY+37) SEÑAL "CARGA EL BLOQUE"+ SET 0,(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. 
-LD DE.(LONBUF| TOMA LONGITUD TOTAL DEL BLOQUE A CARGAR. + LD DE,(LONBUF) TOMA LONGITUD TOTAL DEL BLOQUE A CARGAR. 
-LD HL.I23635+ LD HL,(23635
-ADD HL.DE MIRA SI EL PROGRAMA A CARGAR ES MENOR QUE EL PRO- + ADD HL,DE MIRA SI EL PROGRAMA A CARGAR ES MENOR QUE EL PRO- 
-EX DE.HL GRAMA RESIDENTE. + EX DE,HL GRAMA RESIDENTE. 
-LD HL.I23641) SCF + LD HL,(23641) 
-SBC HL.DE + SCF 
-JR C.ADDS SIES MAYOR O IGUAL. SALTA + SBC HL,DE 
-JR Z.ADDS PARA CREAR ESPACIO. + JR C,ADDS SI ES MAYOR O IGUAL. SALTA 
-LD B.H RECLAMA LOS BYTES SOBRANTES. + JR Z,ADDS PARA CREAR ESPACIO. 
-LD C.+ LD B,H RECLAMA LOS BYTES SOBRANTES. 
-EX DE.HL + LD C,
-CALL «19E8 + EX DE,HL 
-JR PPL + CALL #19E8 
-ADDS ADD HL.DE CREA ESPACIO SUFICIENTE EN MEMORIA PARA EL NUEVO + JR PPL 
-EX DE.HL PROGRAMA. +ADDS ADD HL,DE CREA ESPACIO SUFICIENTE EN MEMORIA PARA EL NUEVO 
-AND A + EX DE,HL PROGRAMA. 
-SBC HL.DE + AND A 
-LD B.+ SBC HL,DE 
-LD C,L + LD  B,
-EX DE.HL + LD C,L 
-CALL »1655 + EX DE,HL 
-PPL LD HL.(23635) ASIGNA LA DIRECCION CORRECTA DE LAS VARIABLES DE + CALL #1655 
-LD BC.(INFBUF) PROGRAMA. +PPL LD HL,(23635) ASIGNA LA DIRECCION CORRECTA DE LAS VARIABLES DE 
-ADD HL.BC + LD BC,(INFBUF) PROGRAMA. 
-LD (23627),HL + ADD HL,BC 
-LD HL(DIBUF) MIRA SI EL PROGRAMA BASIC SE AUTOEJECUTA Y EN QUE U+ LD (23627),HL 
-LD A.H NEA. + LD HL,(DIBUF) MIRA SI EL PROGRAMA BASIC SE AUTOEJECUTA Y EN QUE LI
-AND *C0 + LD A,H NEA. 
-JR NZ.CPROG + AND #C0 
-LD (23618I.HL SI ES ASI. HACE UNA COPIA. + JR NZ,CPROG 
-LD |IY+101.0 SEÑALA PRIMERA INSTRUCCION DE LA LINEA. + LD (23618),HL SI ES ASI. HACE UNA COPIA. 
-CPROG LD DE.ILONBUF+ LD (IY+10),0 SEÑALA PRIMERA INSTRUCCION DE LA LINEA. 
-LD IX.(23635) +CPROG LD DE,(LONBUF
-CARGA LD A.«FF + LD IX,(23635) 
-BIT 0 .(IY+37Í EXAMINA "LOAD O VERIFY +CARGA LD A,#FF 
-JR Z.VBYT LMBYT SCF + BIT 0 ,(IY+37) EXAMINA "LOAD O VERIFY" 
-VBYT CALL LOAD + JR Z,VBYT 
-RET C +LMBYT SCF 
-JP ERRORR +VBYT CALL LOAD 
-LDBYTE AND A SE EFECTUA UN CHEQUEO DEL REGISTRO "A" PARA DETER- + RET C 
-JR NZ.INDEF MINAR EL TIPO DE CARGA + JP ERRORR 
-LD IX.16384 A=0 INDICA "LOAD SCREENS"+LDBYTE AND A SE EFECTUA UN CHEQUEO DEL REGISTRO "A" PARA DETER- 
-LD DE.(LONT) A=1 INDICA "LOAD CODE"+ JR NZ,INDEF MINAR EL TIPO DE CARGA 
-LD HL(LONBUF) A=2 INDICA "LOAD CODE XXXX"+ LD IX,16384 A=0 INDICA "LOAD SCREENS"
-AND A A=3 INDICA "LOAD CODE XXXX. XXXX"+ LD DE,(LONT) A=1 INDICA "LOAD CODE"
-SBC HL.DE JP + LD HL,(LONBUF) A=2 INDICA "LOAD CODE XXXX"
-JR CARGA + AND A A=3 INDICA "LOAD CODE XXXX. XXXX"
-INDEF CP 2 + SBC HL,DE 
-JR NC(DIDEF) + JP NZ,ERRORR 
-LD IX.(DIBUF) + JR CARGA 
-DEFLO LD DE.(LONBUF) +INDEF CP 2 
-JR CARGA + JR NC(DIDEF) 
-DIDEF LD IX.IDIRT+ LD IX,(DIBUF) 
-JR NZ.TODEF +DEFLO LD DE,(LONBUF) 
-JR DEFLO + JR CARGA 
-TODEF LD DE,(LONT) +DIDEF LD IX,(DIRT
-JR CARGA + JR NZ,TODEF 
-RELOAD LD IX.BUFCAB DIRECCION DE CARGA DE LA CABECERA. + JR DEFLO 
-LD DE.17 +TODEF LD DE,(LONT) 
-XOR A SCF + JR CARGA 
-CALL LOAD +RELOAD LD IX,BUFCAB DIRECCION DE CARGA DE LA CABECERA. 
-JR NC.RELOAD SI ERROR. INSISTE. + LD DE,17 
-RES (j.|IY+82) ABRE CANAL SUPERIOR DE PANTALLA. + XOR A 
-LD 82 PREVEE SCROLL DE TRES LINEAS. + SCF 
-LD HL.CABEC DIRECCION PUNTERO CABECERA ESPECIFICADA. + CALL LOAD 
-LD C.128 SEÑAL "DIFERENTE TIPO"+ JR NC,RELOAD SI ERROR. INSISTE. 
-LD A.(BUFCAB) + RES 0,(IY+2) ABRE CANAL SUPERIOR DE PANTALLA. 
-CP (HL) COMPARA AMBAS CABECERAS. + LD (IY+82),3 PREVEE SCROLL DE TRES LINEAS. 
-JR NZ.LDTIP SALTA SI NO SON IGUALES. + LD HL,CABEC DIRECCION PUNTERO CABECERA ESPECIFICADA. 
-LD C.246 SEÑAL "id CARACTERES IGUALES"+ LD C,128 SEÑAL "DIFERENTE TIPO"
-LDTIP CP 4 SI EL TIPO DE BLOQUE ES MAYOR + LD A,(BUFCAB) 
-JR NC.RELOAD QUE 3.CARGA NUEVA CABECERA + CP (HL) COMPARA AMBAS CABECERAS. 
-LD DE. »900 + JR NZ,LDTIP SALTA SI NO SON IGUALES. 
-PUSH BC IMPRIME EL MENSAJE ASOCIADO A CADA TIPO DE BLOQUE + LD C,246 SEÑAL "10 CARACTERES IGUALES"
-CALL «C0A Y EL NOMBRE DEL BLOQUE ENTRANTE. +LDTIP CP 4 SI EL TIPO DE BLOQUE ES MAYOR 
-POP BC + JR NC,RELOAD QUE 3,CARGA NUEVA CABECERA 
-LD DE.BUFNAM + LD DE,#9C0 
-LD HL.NOMBRE + PUSH BC IMPRIME EL MENSAJE ASOCIADO A CADA TIPO DE BLOQUE 
-LD B.10 + CALL #C0A Y EL NOMBRE DEL BLOQUE ENTRANTE. 
-LD A,(HL) + POP BC 
-INC A + LD DE,BUFNAM 
-JR NZ.LDNAME + LD HL,NOMBRE 
-LD A.+ LD B,10 
-ADD A.+ LD A,(HL) 
-LD C.+ INC A 
-LDNAME LD A.(DE) + JR NZ,LDNAME 
-CP (HL) + LD A,
-INC HL + ADD A,
-INC DE + LD C,
-JR NZ.LDPR +LDNAME LD A,(DE) 
-INC C + CP (HL) 
-LDPR RST 16 + INC HL 
-DJNZ LDNAME + INC DE 
-BIT 7,C EXAMINA SI EL TIPO Y EL NOMBRE + JR NZ,LDPR 
-JR NZ.RELOAD ENTRANTES COINCIDEN. + INC C 
-LD A.13 +LDPR RST 16 
-RST 16 + DJNZ LDNAME 
-RET _+ BIT 7,C EXAMINA SI EL TIPO Y EL NOMBRE 
 + JR NZ,RELOAD ENTRANTES COINCIDEN. 
 + LD A,13 
 + RST 16 
 + RET
 </code> </code>
  • 012/utilidades.1291477760.txt.gz
  • Última modificación: d/m/Y H:i
  • por miguel