Herramientas de usuario

Herramientas del sitio


software:sistema

Diferencias

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

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
software:sistema [2026/05/03 07:04] jesussoftware:sistema [2026/05/05 18:04] (actual) jesus
Línea 1: Línea 1:
-<script+~~NOTOC~~ 
-let currentModel = ""let currentLang = ""let currentLoading = null+<html
-let audioCtx = nulllet motorNode = nulllet motorLFO = null+<style> 
-let isSystemLoaded = false+  .system-terminal { background-color: #000b00font-family: 'Courier New', monospacepadding: 30pxcolor: #00ff00; border: 2px solid #004400; display: flex; flex-direction: column; align-items: center; position: relative; } 
 +  .main-system-title { font-size: 2.2emcolor: #00ff00text-align: centertext-transform: uppercase; font-weight: 900; margin-bottom: 20px; text-shadow: 0 0 15px rgba(0, 255, 0, 0.7); } 
 +  .selector-panel { background: rgba(0, 40, 0, 0.3); border: 2px solid #00ff00; padding: 15px; text-align: center; border-radius: 4px; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 20px; } 
 +  .btn-model { background: transparent; color: #00ff00; border: 1px solid #00ff00; padding: 6px 12px; cursor: pointer; font-family: 'Courier New', monospace; font-weight: bold; transition: 0.3s; font-size: 12px; } 
 +  .btn-model:hover, .btn-model.active { background: #00ff00 !important; color: #000 !important; box-shadow: 0 0 10px #00ff00; } 
 +  .lang-selector { margin-bottom: 20px; display: flex; gap: 15px; justify-content: center; min-height: 50px; } 
 +  .flag-btn { width: 60px; height: auto; cursor: pointer; border: 1px solid #004400; transition: 0.3s; filter: grayscale(0.7); padding: 2px; background: #111; } 
 +  .flag-btn:hover, .flag-btn.active { filter: grayscale(0); border-color: #00ff00; transform: scale(1.1); box-shadow: 0 0 10px #00ff00; } 
 +   
 +  #display-screen { border: 1px solid #004400; background: rgba(0,20,0,0.2); width: 100%; min-height: 280px; padding: 20px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; } 
 +  .disk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 15px; justify-items: center; width: 100%; margin-bottom: 25px; } 
 +  .disk-item { text-align: center; font-size: 10px; color: #00ff00; font-weight: bold; } 
 +  .disk-item img { border: 1px solid #00ff00; background: #000; width: 130px; height: auto; display: block; margin: 0 auto 5px auto; cursor: zoom-in}
  
-const translations = { +  .download-zone margin-top10px; text-aligncenter; width100%; 
-  es{ code: "es", name: "ESPAÑOL", header: "header-es", amstrad"AMSTRAD CONSUMER<br>ELECTRONICS plc", d1{ desc: "PROCESADOR DE TEXTOS", t2: "LOCO SCRIPT", ser: "2433345" }, d2: { desc: "SIST. OPERATIVO/UTILID.", t2: "CP/M PLUS", ser: "VER LA OTRA CARA" }, d3: { desc: "", t2: "UTILIDADES DE <br> PROGRAMACION", ser: "2433347" }, d4: { desc: "", t2: "DR. LOGO Y AYUDA", ser: "VER LA OTRA CARA" }, lic: "EL USO DE ESTOS PROGRAMAS ESTA SUJETO A CONDICIONES DEL ACUERDO DE LICENCIA DE USUARIO FINAL ESTABLECIDAS EN EL APENDICE DEL MANUAL DE INSTRUCCIONES DEL USUARIO DE ESTE PRODUCTO.", copy: "PROGRAMAS COPYRIGHT © 1985 LOCOMOTIVE SOFTWARE LTD & AMSTRAD plc." }, +  .btn-download displayinline-block; backgroundtransparent; color#ffff00; border2px solid #ffff00; padding10px 20px; font-family'Courier New'monospace; font-weightbold; cursorpointer; text-decorationnone; transition0.3s; font-size13px; 
-  uk: code"en", name: "INGLÉS", header: "header-uk", amstrad"AMSTRAD CONSUMER<br>ELECTRONICS plc", d1{ desc"WORDPROCESSOR", t2"LOCO SCRIPT", ser"2119203" }d2{ desc"SYSTEM/UTILITIES/BASIC DISC", t2"CP/M PLUS", ser: "SEE OTHER SIDE" }, d3: { desc: "", t2: "PROGRAMMING<br>UTILITIES", ser: "2119205" }, d4: { desc: "", t2"DRLOGO & HELP", ser"SEE OTHER SIDE" }, lic: "THE USE OF THIS SOFTWARE IS SUBJECT TO THE CONDITIONS OF THE END USER LICENSE AGREEMENT APPENDIX IN THE PRODUCT´S USER INSTRUCTION MANUAL", copy: "PROGRAMMES COPYRIGHT © 1985 LOCOMOTIVE SOFTWARE LTD & AMSTRAD plc." }, +  .btn-download:hover background#ffff00; color#000; box-shadow0 0 15px rgba(255,255,0,0.5)}
-  fr: { code: "fr", name: "FRANCÉS", header: "header-fr", amstrad: "AMSTRAD CONSUMER<br>ELECTRONICS plc", d1: { desc: "TRAITEMENT DE TEXTES", t2: "LOCO SCRIPT", ser: "3210101" }, d2: { desc: "SYSTEME / UTILITAIRES / BASIC", t2: "CP/M PLUS", ser: "VOIR AUTRE COTE" }, d3: { desc: "", t2: "UTILITAIRES DE<br>PROGRAMMATION", ser: "3210103" }, d4: { desc: "", t2: "DRLOGO & HELP", ser: "VOIR AUTRE COTE" }, lic: "L'UTILISATION DE CE LOGICIEL EST DEFINIE POR LES CONDITIONS DE LICENSE PARA UTILISATEUR FINAL INDIQUEES DANS L´ANNEXE DU GUIDE DE L´UTILISATEUR.", copy: "PROGRAMMES COPYRIGHT © 1985 LOCOMOTIVE SOFTWARE LTD & AMSTRAD plc." }, +
-  de: { code: "de", name: "ALEMÁN", header: "header-de", amstrad: "COMPUTER SOFTWARE", d1: { desc"TEXTVERARBEITUNGSSYSTEM", t2"LOCO SCRIPT", ser: "2202187" }, d2: { desc: "SYSTEM/DIENSTPROGRAMME-BASIC", t2"CP/M PLUS"ser: "vgl. andere Seite" }d3: { desc: ""t2: "DIENSTPROGRAMME", ser: "2202189" }, d4: { desc: "", t2: "DRLOGO UND HELP", ser: "vgl. andere Seite" }, lic: "Für die aplicación dieser Software son die Condiciones del Lizenzabkommens für Endbenutzer maßgebend (vgl. Anhang Benutzerhandbuch).", copy: "PROGRAMME COPYRIGHT © 1985 LOCOMOTIVE SOFTWARE LTD & AMSTRAD CONSUMER ELECTRONICS pls." } +
-};+
  
-function initAudio() if (!audioCtx) audioCtx = new (window.AudioContext || window.webkitAudioContext)(); }+  #disk-modal display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,11,0,0.9); align-items: center; justify-content: center; flex-direction: column; } 
 +  #modal-img { border: 3px solid #00ff00; max-width: 80%; max-height: 80%; } 
 +  .close-modal { margin-top: 20px; background: transparent; color: #00ff00; border: 2px solid #00ff00; padding: 10px 20px; cursor: pointer; font-family: 'Courier New', monospace; } 
 +</style>
  
-function playRecalibrate() { +<div class="system-terminal"> 
-  initAudio(); const startTime audioCtx.currentTime; +  <div class="main-system-title">DISCOS DE SISTEMA</div> 
-  for(let i=0; i<12; i++) { +  <div class="selector-panel"> 
-    const t startTime + (i * 0.045); const osc audioCtx.createOscillator(); const gain audioCtx.createGain(); +    <button class="btn-model" onclick="seleccionarPCW('8256', this)">PCW 8256</button> 
-    osc.type = 'square'; osc.frequency.setValueAtTime(90t); +    <button class="btn-model" onclick="seleccionarPCW('8512', this)">PCW 8512</button> 
-    gain.gain.setValueAtTime(0.18t); gain.gain.linearRampToValueAtTime(0t + 0.03); +    <button class="btn-model" onclick="seleccionarPCW('9512', this)">PCW 9512</button> 
-    osc.connect(gain); gain.connect(audioCtx.destination); +    <button class="btn-model" onclick="seleccionarPCW('9256'this)">PCW 9256</button> 
-    osc.start(t); osc.stop(t + 0.03)+    <button class="btn-model" onclick="seleccionarPCW('9512plus'this)">PCW 9512+</button> 
-  } +    <button class="btn-model" onclick="seleccionarPCW('10', this)">PCW 10</button> 
-}+    <button class="btn-model" onclick="seleccionarPCW('16', this)">PCW 16</button> 
 +  </div> 
 +  <div id="lang-container" class="lang-selector"></div> 
 +  <div id="display-screen"><div style="text-align:centerpadding-top:100px; opacity:0.5;">SELECCIONE MODELO:</div></div> 
 +</div>
  
-function playStepSound() { +<div id="disk-modal" onclick="cerrarZoom()"> 
-  initAudio(); const now audioCtx.currentTime; +  <img id="modal-img" src=""> 
-  const osc audioCtx.createOscillator(); const gain = audioCtx.createGain(); const filter = audioCtx.createBiquadFilter(); +  <button class="close-modal">CERRAR [ESC]</button> 
-  osc.type 'triangle'; osc.frequency.setValueAtTime(130, now); +</div>
-  filter.type 'bandpass'; filter.frequency.setValueAtTime(1100, now); +
-  gain.gain.setValueAtTime(0.22, now); gain.gain.exponentialRampToValueAtTime(0.001, now + 0.035); +
-  osc.connect(filter); filter.connect(gain); gain.connect(audioCtx.destination); +
-  osc.start(); osc.stop(now + 0.035); +
-}+
  
-function startMotorSound() { +<script> 
-  initAudio(); motorNode = audioCtx.createOscillator(); const motorGain = audioCtx.createGain(); +var pcwActual = ''; 
-  motorNode.type = 'sine'; motorNode.frequency.setValueAtTime(42, audioCtx.currentTime)+var rutaBanderas "/lib/exe/fetch.php?media=botones:"
-  motorLFO audioCtx.createOscillator(); const lfoGain audioCtx.createGain()+var rutaDiscos = "/lib/exe/fetch.php?media=sistema:discos:imagenes:";
-  motorLFO.frequency.setValueAtTime(6, audioCtx.currentTime)lfoGain.gain.setValueAtTime(0.004, audioCtx.currentTime); +
-  motorLFO.connect(lfoGain); lfoGain.connect(motorGain.gain); +
-  motorGain.gain.setValueAtTime(0.007, audioCtx.currentTime); motorNode.connect(motorGain); motorGain.connect(audioCtx.destination); +
-  motorNode.start(); motorLFO.start(); +
-}+
  
-function stopMotorSound() { if (motorNode) { motorNode.stop(); motorNode = null; } if (motorLFO{ motorLFO.stop(); motorLFO null; } }+function seleccionarPCW(modelo, boton) { 
 +  pcwActual = modelo; 
 +  var botones = document.getElementsByClassName('btn-model'); 
 +  for (var i = 0; i < botones.length; i++) { botones[i].classList.remove('active'); } 
 +  boton.classList.add('active')
 +  document.getElementById('display-screen').innerHTML = '<div style="text-align:centerpadding-top:100px; opacity:0.5;">SELECCIONE IDIOMA:</div>'; 
 +   
 +  var contenedor document.getElementById('lang-container'); 
 +  contenedor.innerHTML = ''; 
 +   
 +  var listaIdiomas = (modelo === '8256' || modelo === '8512') ?  
 +    [{id:'es', img:'españa.jpg'}, {id:'en', img:'reino_unido.jpg'}, {id:'de', img:'alemania.jpg'}, {id:'fr', img:'francia.jpg'}] :  
 +    [{id:'en', img:'reino_unido.jpg'}];
  
-function checkLock() { +  listaIdiomas.forEach(function(lang) { 
-  if (isSystemLoaded) { +    var img = document.createElement('img'); 
-    const status = document.getElementById('status-msg'); +    img.src = rutaBanderas + lang.img; 
-    status.className = ""// Quitamos cualquier clase previa +    img.className = 'flag-btn'
-    status.innerHTML `<span class="blink-yellow" style="font-weight:900;">PULSE EJECT PARA EXTRAER EL DISCO</span>`+    img.onclick function() { 
-    return true+      var flags document.getElementsByClassName('flag-btn'); 
-  +      for (var j 0flags.lengthj++) { flags[j].classList.remove('active'); } 
-  return false;+      this.classList.add('active')
 +      mostrarDiscos(lang.id); 
 +    }
 +    contenedor.appendChild(img); 
 +  });
 } }
  
-function selectModel(model, btn) { +function mostrarDiscos(idLang) { 
-  if (checkLock()) return; +  var pantalla = document.getElementById('display-screen')
-  document.querySelectorAll('.btn-model').forEach(b => b.classList.remove('active'))+  var htmlDiscos = ''; 
-  btn.classList.add('active'); currentModel model; +   
-  document.getElementById('lang-selector').style.display = 'block'; +  if (pcwActual === '8256' || pcwActual === '8512'
-  const flags = { es: document.getElementById('flag-es'), fr: document.getElementById('flag-fr'), de: document.getElementById('flag-de'}+    htmlDiscos '<div class="disk-grid">' + 
-  const showAll = (model === '8256' || model === '8512'); +      '<div class="disk-item"><img src="' + rutaDiscos + 'systemdisk_' + idLang + '_side1.jpg" onclick="abrirZoom(this.src)">DISCO 1</div>
-  Object.values(flags).forEach(f =if(f) f.style.display = showAll ? 'inline-block' : 'none'; }); +      '<div class="disk-item"><img src="+ rutaDiscos + 'systemdisk_' + idLang + '_side2.jpg" onclick="abrirZoom(this.src)">DISCO 2</div>'
-  const status = document.getElementById('status-msg')+      '<div class="disk-item"><img src="' + rutaDiscos + 'systemdisk_' + idLang + '_side3.jpg" onclick="abrirZoom(this.src)">DISCO 3</div>'
-  status.className ""status.style.color = ""; +      '<div class="disk-item"><img src="+ rutaDiscos + 'systemdisk_' + idLang + '_side4.jpg" onclick="abrirZoom(this.src)">DISCO 4</div>'
-  status.innerHTML `<span class="status-green">PCW ${model} SELECCIONADO.</span><br><span class="blink-yellow">SELECCIONE EL IDIOMA DEL DISCO DE SISTEMA</span>`+      '</div>'; 
-}+  } else if (pcwActual === '9512plus'{ 
 +    htmlDiscos = '<div class="disk-grid">'
 +      '<div class="disk-item"><img src="' + rutaDiscos + 'locoscript2_9512plus_bubblejet_disk_front.jpg" onclick="abrirZoom(this.src)">LOCO FRONT</div>
 +      '<div class="disk-item"><img src="+ rutaDiscos + 'locoscript2_9512plus_bubblejet_disk_back.jpg" onclick="abrirZoom(this.src)">LOCO BACK</div>
 +      '<div class="disk-item"><img src="+ rutaDiscos + 'cpm_plus_9512plus_bubblejet_disk_front.jpg" onclick="abrirZoom(this.src)">CPM FRONT</div>
 +      '<div class="disk-item"><img src="+ rutaDiscos + 'cpm_plus_9512plus_bubblejet_disk_back.jpg" onclick="abrirZoom(this.src)">CPM BACK</div>'
 +      '</div>'
 +  } else if (pcwActual === '9512' || pcwActual === '10' || pcwActual === '16' || pcwActual === '9256'{ 
 +     var discosData = { 
 +        '9512': ['systemdisk_9512_en_disc1.jpg', 'systemdisk_9512_en_disc2.jpg'], 
 +        '10': ['systemdisk_10_en_disc2.jpg', 'systemdisk_10_en_disc1.jpg'], 
 +        '16': ['systemdisk_16_en_rescue.jpg'], 
 +        '9256': ['systemdisk_9256_en_disc1.jpg', 'systemdisk_9256_en_disc2.jpg'
 +     }
 +     var lista discosData[pcwActual] || []; 
 +     htmlDiscos = '<div class="disk-grid">'
 +     lista.forEach(function(img, index){ 
 +        htmlDiscos +'<div class="disk-item"><img src="' + rutaDiscos + img + '" onclick="abrirZoom(this.src)">DISCO ' + (index+1) + '</div>'
 +     }); 
 +     htmlDiscos += '</div>'; 
 +  }
  
-function selectLang(lang, btn) { +  if (htmlDiscos !== ''
-  if (checkLock()) return; +    var sufijo = (idLang === 'es'? "" : idLang
-  document.querySelectorAll('.flag-btn').forEach(=> b.classList.remove('active'))+    // URL Corregida: sistema (en singular
-  btn.classList.add('active'); currentLang = lang; +    var urlFinal "doku.php?id=sistema:discos:descargas:pcw" + pcwActual + sufijo
-  isSystemLoaded true;  +     
-  const status document.getElementById('status-msg'); +    htmlDiscos += '<div class="download-zone">' + 
-  status.className = "" +                  '<a href="+ urlFinal + '" target="_blank" class="btn-download">DESCARGAR DISCOS SISTEMA ' + pcwActual.toUpperCase() + ' (' + idLang.toUpperCase() + ')</a>' + 
-  if (currentModel === '8256' || currentModel === '8512') { +                  '</div>'
-    status.innerHTML `<span class="status-green">SISTEMA PCW ${currentModel} (${translations[lang].name}LISTO.</span><br><span class="blink-yellow">PULSE EJECT PARA REINICIAR O CARGUE UN DISCO</span>`+    pantalla.innerHTML = htmlDiscos;
-    updateShelf();+
   } else {   } else {
-    status.innerHTML = `<span class="status-green">PCW ${currentModel} (${translations[lang].name}) SELECCIONADO.</span><br><span style="color:#ff0000 !importantfont-weight:900display:block; margin-top:5px;" class="blink-yellow">ERROR: Disco de Sistema no disponible</span>`;+    pantalla.innerHTML = '<div style="text-align:centerpadding-top:100pxopacity:0.5;">CONTENIDO NO DISPONIBLE_</div>';
   }   }
 } }
  
-function updateShelf() { +function abrirZoom(src) { 
-  const shelf = document.getElementById('disk-shelf-display')+  document.getElementById('modal-img').src src
-  shelf.innerHTML ""; shelf.style.display = 'flex'+  document.getElementById('disk-modal').style.display = 'flex';
-  for(let i=1; i<=2; i++) { +
-    shelf.innerHTML += `<div class="disk-wrapper"><div class="disk-container" id="disk${i}"><div class="disk-face disk-front" onclick="triggerLoadFromDisk(${i}, false)"><div class="hole-left-rect"></div><div class="hole-right-circ"></div><div class="disk-hub-wrapper"><div class="hub-3inch" id="hub${i}front"><div class="hub-3inch-notch"></div></div></div><div class="disk-label-amsoft">${getLabelHTML(i, 'A')}</div></div><div class="disk-face disk-back" onclick="triggerLoadFromDisk(${i}, true)"><div class="hole-left-rect"></div><div class="hole-right-circ"></div><div class="disk-hub-wrapper"><div class="hub-3inch" id="hub${i}back"><div class="hub-3inch-notch"></div></div></div><div class="disk-label-amsoft">${getLabelHTML(i, 'B')}</div></div></div><button class="flip-btn" onclick="document.getElementById('disk${i}').classList.toggle('is-flipped')">⟲ GIRAR DISCO ${i}</button></div>`; +
-  }+
 } }
  
-function getLabelHTML(diskNum, side) { +function cerrarZoom() { 
-  const t = translations[currentLang]; const isA = (side === 'A'); +  document.getElementById('disk-modal').style.display = 'none';
-  const sideNum = (diskNum === 1) ? (isA ? "1" : "2") : (isA ? "3" : "4"); +
-  let data = t['d' + sideNum]; +
-  let isLongTextSerial = !isA; +
-  let serialBoxStyle = isLongTextSerial ? `width: 54px; height: 11px; right: 2px; font-size: 3.6px; top: 4px;` : `width: 44px; height: 13px; right: 6px; font-size: 8px; top: 4px;`; +
-  if (currentLang === 'de' && !isA) serialBoxStyle = `width: 52px; height: 11px; right: 2px; font-size: 3.8px; top: 4px;`; +
-  let finalStyle = "font-size: 11px; font-weight: 900; display: block; text-transform: uppercase; line-height: 1.1; margin-top: -1px; white-space: nowrap;"; +
-  if (sideNum === "3") { +
-      let esMargin = (currentLang === 'es'? "margin-top: -1px;" : "margin-top: -4px;"; +
-      finalStyle = `font-size: 10.5px; font-weight: 900; line-height: 0.95; ${esMargin} display: block; width: 130px; white-space: normal;`; +
-      if(currentLang === 'fr|| currentLang === 'uk') finalStyle = "font-size: 9.2px; font-weight: 900; line-height: 0.95; margin-top: 2px; display: block; width: 125px; white-space: normal;"; +
-      if(currentLang === 'fr') finalStyle += "transform: scaleX(0.92); transform-origin: left;"; +
-      if(currentLang === 'de') finalStyle = "font-size: 10.5px; font-weight: 950; line-height: 1; margin-top: -1px; transform: scaleX(0.8); transform-origin: left; display: block; width: 140px;"; +
-  } +
-  if (sideNum === "4") { +
-      finalStyle = "font-size: 9.2px; font-weight: 900; display: block; text-transform: uppercase; line-height: 1; margin-top: 1px; white-space: nowrap; transform: scaleX(0.9); transform-origin: left;"; +
-      if (currentLang === 'de') finalStyle = "font-size: 8.8px; font-weight: 950; line-height: 1; transform: scaleX(0.88); transform-origin: left; width: 150px; letter-spacing: -0.1px;"; +
-  } +
-  let logoBlock = (currentLang === 'de') ? `<div class="schneider-container"><div class="schneider-symbol"><div class="u-shape u-black"></div><div class="u-shape u-red"></div></div><div style="display:flex;flex-direction:column;"><span class="schneider-text-logo">Schneider</span><span class="schneider-subtext">COMPUTER SOFTWARE</span></div></div>` : `<div style="display:flex; align-items:center; gap:8px;"><span class="amsoft-logo-text">Amsoft</span><span class="amstrad-subtext-black">${t.amstrad}</span></div>`; +
-  return `<div class="label-header ${t.header}"><div style="display:flex; align-items:center; gap:8px;">${logoBlock}</div><div class="side-indicator-container">${sideNum} <div class="arrow-cajetin">↑</div></div></div><div class="label-body-replica"><span class="txt-desc-top">${data.desc}</span><span style="${finalStyle}">${data.t2}</span><div class="serial-box-only" style="${serialBoxStyle}"><span>${data.ser}</span></div><div class="txt-small-legales">${t.lic}</div></div><div class="label-footer-grey"><div class="cs-logo-label">CS</div><span class="copy-text-replica">${t.copy}</span></div>`;+
 } }
  
-function triggerLoadFromDisk(idx, isBack) { +document.onkeydown function(evt) { 
-  const sideChar = isBack ? 'B' : 'A'; const sideNum = (idx === 1) ? (isBack ? "2" : "1") : (isBack ? "4" : "3"); +  if (evt.key === "Escape"cerrarZoom(); 
-  if(currentLoading) clearInterval(currentLoading); +};
-  const t = translations[currentLang]; let name = (t['d' + sideNum].t2 || t['d' + sideNum].desc).replace(/<[^>]*>?/gm, ' ').replace(/\s\s+/g, ' '); +
-  const status = document.getElementById('status-msg'); const led document.getElementById('drive-led'); const dlZone = document.getElementById('download-zone'); +
-  dlZone.style.display = 'none';  +
-  status.className = ""; status.style.color = "#ffff00";  +
-  led.className = "drive-led led-active led-reading";  +
-  const hub = document.getElementById(`hub${idx}${isBack ? 'back' : 'front'}`); +
-  document.querySelectorAll('.hub-3inch').forEach(h => h.classList.remove('spinning')); +
-  if(hub) hub.classList.add('spinning'); +
-  playRecalibrate(); setTimeout(() => startMotorSound(), 550); +
-  let track 0; +
-  currentLoading = setInterval(() => { +
-    status.innerHTML = `LEYENDO DISCO ${idx} [CARA ${sideChar}] - PISTA ${track}...<br>CARGANDO: <span style="color:#fff; font-weight:bold;">${name}</span>`; +
-    if (track > 0playStepSound();  +
-    track++; +
-    if (track > 40) {  +
-      clearInterval(currentLoading); stopMotorSound(); led.className = "drive-led"; if(hub) hub.classList.remove('spinning'); +
-      status.className = ""; status.style.color = "#00ff00";  +
-      status.innerHTML = `<span class="status-green">SISTEMA MONTADO: ${name}</span><br><span style='color:#fff;'>DISCO LISTO</span>`; +
-      const fileName = `Disco_sistema_${currentModel}_${t.code}_d${idx}_${sideChar}.zip`; +
-      dlZone.innerHTML = `<a href="/lib/exe/fetch.php?media=sistema:descargas:${fileName}" class="download-link">OBTENER IMAGEN .DSK DEL SISTEMA</a>`; +
-      dlZone.style.display = 'block'; +
-    } +
-  }, 180); +
-}+
 </script> </script>
 </html> </html>
  
software/sistema.1777791843.txt.gz · Última modificación: por jesus