Herramientas de usuario

Herramientas del sitio


fr:software:systeme

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
fr:software:systeme [2026/05/04 09:45] jesusfr:software:systeme [2026/05/05 18:53] (actual) jesus
Línea 2: Línea 2:
 <html> <html>
 <style> <style>
-  /* --- MOTOR VISUAL CRT (ORIGINAL BLINDADO) --- */ +  .system-terminal { background-color: #000b00; font-family: 'Courier New', monospace; padding: 30px; color: #00ff00; border: 2px solid #004400; display: flex; flex-direction: column; align-items: center; position: relative; } 
-  .system-terminal { background-color: #000b00 !important; font-family: 'Courier New', monospace !important; padding: 30px; color: #00ff00 !important; border: 2px solid #004400; } +  .main-system-title { font-size: 2.2em; color: #00ff00; text-align: center; text-transform: uppercase; font-weight: 900; margin-bottom: 20px; text-shadow: 0 0 15px rgba(0, 255, 0, 0.7); } 
-  .main-system-title { font-size: 2.8em; color: #00ff00; text-align: center; text-transform: uppercase; font-weight: 900; margin-bottom: 20px; text-shadow: 0 0 20px rgba(0, 255, 0, 0.7); letter-spacing: 4px; } +  .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; } 
-  .selector-panel { background: rgba(0, 40, 0, 0.3); border: 1px solid #004400; padding: 15px; margin-bottom: 30px; text-align: center; border-radius: 4px; } +  .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 { background: transparent; color: #00ff00; border: 1px solid #00ff00; padding: 6px 12px; cursor: pointer; font-family: 'Courier New', monospace; font-weight: bold; margin: 3px; transition: 0.3s; font-size: 11px; } +  .btn-model:hover, .btn-model.active { background: #00ff00 !important; color: #000 !important; box-shadow: 0 0 10px #00ff00; } 
-  .btn-model:hover, .btn-model.active { background: #00ff00; color: #000; box-shadow: 0 0 10px #00ff00; } +  .lang-selector { margin-bottom: 20px; display: flex; gap: 15px; justify-content: center; min-height: 50px; } 
-  .flag-btn { width: 45px; height: auto; cursor: pointer; filtergrayscale(1) opacity(0.5); transition: 0.3s; margin: 0 8pxborder1px solid transparentvertical-alignmiddle; } +  .flag-btn { width: 60px; height: auto; cursor: pointer; border1px solid #004400; transition: 0.3s; filtergrayscale(0.7)padding2pxbackground#111; } 
-  .flag-btn:hover, .flag-btn.active { filter: grayscale(0) opacity(1); border-color: #00ff00; transform: scale(1.1); } +  .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: 2px solid #00ff00; background: rgba(0,30,0,0.4); margin20px auto; min-height: 120pxwidth100%; display: flex; flex-direction: column; justify-content: center; align-itemscentertext-aligncenterpadding: 15px; box-sizingborder-box; } +   
-  .blink-yellow color#ffff00 !importantanimation: blinker-msg 1s linear infinite; font-weight: bold; } +  #display-screen { border: 1px solid #004400; background: rgba(0,20,0,0.2); width100%; min-height: 280pxpadding20px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; 
-  .status-green color: #00ff00 !importantfont-weightboldanimationnone !important+  .disk-grid { displaygridgrid-template-columnsrepeat(auto-fit, minmax(140px, 1fr))gap: 15px; justify-itemscenter; width: 100%; margin-bottom: 25px; } 
-  @keyframes blinker-msg { 50% { opacity: 0; }+  .disk-item text-aligncenterfont-size: 10px; color: #00ff00; font-weight: bold; } 
 +  .disk-item img border1px solid #00ff00; background#000width130pxheight: auto; display: block; margin: 0 auto 5px auto; cursor: zoom-in; }
  
-  /* UNIDAD DE DISCO VIRTUAL */ +  .download-zone { margin-top10pxtext-aligncenter; width: 100%; } 
-  .drive-bay background: linear-gradient(180deg, #222 0%, #111 100%); border: 4px solid #333; width: 380px; height: 110px; margin: 0 auto 30px auto; position: relative; border-radius6px+  .btn-download displayinline-blockbackgroundtransparentcolor: #ffff00; border: 2px solid #ffff00padding10px 20pxfont-family'Courier New', monospacefont-weightboldcursorpointertext-decorationnonetransition0.3sfont-size13px; } 
-  .disk-slot { background#000; width: 320px; height: 10px; margin: 35px auto 0 auto; box-shadow: inset 0 2px 5px rgba(0,0,0,0.8); border-bottom: 1px solid rgba(0,255,0,0.3); } +  .btn-download:hover { background: #ffff00; color: #000; box-shadow: 0 0 15px rgba(255,255,0,0.5); }
-  .eject-button width45pxheight20pxbackground: #0a0a0a; position: absolute; bottom: 12px; left: 30px; border: 2px solid #555border-radius2pxcursorpointer+
-  .drive-led { width16pxheight8pxbackground#300positionabsolutebottom: 15px; right: 30px; border-radius2px; } +
-  .led-active { background: #ff0000; box-shadow: 0 0 15px #ff0000; } +
-  .led-reading { animation: led-blink-fast 0.08s infinite; } +
-  @keyframes led-blink-fast { 50% { opacity: 0.3}+
  
-  /* ESTRUCTURA FÍSICA DISCO 3" CF2 */ +  #disk-modal { display: none; position: fixed; z-index: 9999left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,11,0,0.9); align-items: center; justify-content: center; flex-direction: column; } 
-  .disk-shelf { display: none; flex-wrap: wrap; gap: 40px; justify-content: center; margin-top: 50px; perspective: 1200px; } +  #modal-img { border: 3px solid #00ff00max-width80%max-height80%; } 
-  .disk-wrapper { display: flex; flex-direction: column; align-items: center; gap: 15px; } +  .close-modal { margin-top: 20px; background: transparentcolor: #00ff00; border: 2px solid #00ff00; padding: 10px 20pxcursorpointer; font-family'Courier New', monospace; }
-  .disk-container { width: 175px; height: 225px; position: relative; transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); transform-style: preserve-3d;+
-  .is-flipped { transform: rotateY(180deg);+
-  .disk-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; background: #111; border-radius: 4px; border: 1px solid #000; overflow: hidden; } +
-  .disk-back { transform: rotateY(180deg);+
-  .head-window-cutout { position: absolute; top: 12px; left: 50%; margin-left: -14px; width: 28px; height: 60px; background: #000; border-radius: 14px; overflow: hidden; z-index: 4box-shadowinset 2px 5px rgba(0,0,0,0.9);+
-  .internal-shutter { position: absolute; width: 100%; height: 100%; background: linear-gradient(90deg, #888 0%, #bbb 45%, #ddd 50%, #bbb 55%, #888 100%); transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1); z-index: 6; } +
-  .shutter-open { transform: translateX(-100%);+
- +
-  /* HUB METÁLICO AMSTRAD 3" (BLINDADO) */ +
-  .disk-hub-wrapper { position: absolute; top: 82px; left: 50%; margin-left: -24px; width: 48px; height: 48px; z-index: 5; } +
-  .hub-3inch { background: radial-gradient(circle, #f0f0f0 0%, #a0a0a0 45%, #d0d0d0 50%, #888 70%, #444 100%); border-radius: 50%; border: 1.5px solid #222; width: 100%; height: 100%; position: relative; box-shadow0 2px 4px rgba(0,0,0,0.5); } +
-  .hub-3inch::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 10px; height: 10px; background: #000; border-radius: 50%; border: 1px solid #555; } +
-  .hub-3inch-notch { position: absolute; top: 8px; left: 50%; margin-left: -2px; width: 4px; height: 10px; background: #111; border-radius: 1px; box-shadow: inset 0 0 2px #000; } +
-  .spinning { animation: rotate-hub 0.5s linear infinite !important; } +
-  @keyframes rotate-hub { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } +
- +
-  /* ETIQUETAS */ +
-  .disk-label-amsoft { position: absolute; bottom: 8px; left: 8px; right: 8px; height: 82px; background: #fff; border-radius: 2px; overflow: hidden; display: flex; flex-direction: column; font-family: Arial, sans-serif; z-index: 10; cursor: pointer;} +
-  .header-de { background: #bcbcbc; border-bottom: 1.2px solid #000; } +
-  .header-es { background: #e18dae; border-bottom: 1.2px solid #c07090; } +
-  .header-uk { background: #2a7089; border-bottom: 1.2px solid #1a5a70; } +
-  .header-fr { background: #7ae500; border-bottom: 1.2px solid #5ba800; } +
-  .label-header { height: 22px; padding: 0 6px; display: flex; align-items: center; justify-content: space-between;+
-  .amsoft-logo-text { color: #fff; font-weight: bold; font-style: italic; font-size: 12.5px; font-family: "Times New Roman", Times, serif; text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; } +
-  .amstrad-subtext-black { color: #000; font-size: 4.8px; font-weight: 900; text-transform: uppercase; line-height: 0.95; } +
-  .side-indicator-container { display: flex; align-items: center; gap: 4px; color: #000; font-size: 11px; font-weight: 900; } +
-  .arrow-cajetin { background: #fff; border: 1.2px solid #000; display: flex; align-items: center; justify-content: center; height: 11px; width: 10px; font-size: 12px; } +
-  .label-body-replica { flex: 1; padding: 3px 6px 0 6px; color: #000; text-align: left; position: relative; display: flex; flex-direction: column; } +
-  .txt-desc-top font-size: 5px; font-weight: 900; text-transform: uppercase; margin-bottom: 1px; } +
-  .serial-box-only { position: absolute; border: 1px solid #000background: #fff; z-index12display: flex; align-itemscenter; justify-content: center; text-align: center; box-sizing: border-box; white-space: nowrap; overflow: hidden; } +
-  .txt-small-legales font-size: 3.5px; font-weight: 900; text-transform: uppercase; line-height: 1.1; margin-top: automargin-bottom: 2px; } +
-  .label-footer-grey { background: #bcbcbcheight15px; border-top: 1px solid #000padding: 0 6px; display: flex; align-items: center; gap: 5px; } +
-  .cs-logo-label { border: 1px solid #000; color: #fff; font-size: 6px; font-weight: 900; padding: 0 2px; background: #000; } +
-  .copy-text-replica { font-size: 3.4px; color: #000; font-weight: bold; } +
-   +
-  /* SCHNEIDER */ +
-  .schneider-container { display: flex; align-items: center; gap: 3px; transform: scale(0.9); transform-origin: left; } +
-  .schneider-symbol { position: relative; width: 13px; height: 10px; +
-  .u-shape { positionabsolutewidth: 7.2px; height: 4.2px; border: 2.3px solid; border-radius: 2.2px 0 0 2.2px; border-right:0;+
-  .u-black { border-color: #000; top: -1px; left: 0; } +
-  .u-red { border-color: #ff0000; bottom: -1px; right: 0; transform: rotate(180deg);+
-  .schneider-text-logo { font-size10.2px; font-weight: 900; color: #000; letter-spacing: -0.4px; } +
-  .schneider-subtext { font-size: 4px; color: #000; font-weight: 900; text-transform: uppercase; margin-top: -2px; }+
 </style> </style>
  
 <div class="system-terminal"> <div class="system-terminal">
-  <div class="main-system-title">Discos de Sistema</div> +  <div class="main-system-title">DISQUETTES SYSTÈME</div> 
-  <div id="main-app"> +  <div class="selector-panel"> 
-    <div class="selector-panel"> +    <button class="btn-model" onclick="seleccionarPCW('8256', this)">PCW 8256</button> 
-      <button class="btn-model" onclick="selectModel('8256', this)">PCW 8256</button> +    <button class="btn-model" onclick="seleccionarPCW('8512', this)">PCW 8512</button> 
-      <button class="btn-model" onclick="selectModel('8512', this)">PCW 8512</button> +    <button class="btn-model" onclick="seleccionarPCW('9512', this)">PCW 9512</button> 
-      <button class="btn-model" onclick="selectModel('9256', this)">PCW 9256</button> +    <button class="btn-model" onclick="seleccionarPCW('9256', this)">PCW 9256</button> 
-      <button class="btn-model" onclick="selectModel('9512', this)">PCW 9512</button> +    <button class="btn-model" onclick="seleccionarPCW('9512plus', this)">PCW 9512+</button> 
-      <button class="btn-model" onclick="selectModel('9512+', this)">PCW 9512+</button> +    <button class="btn-model" onclick="seleccionarPCW('10', this)">PCW 10</button> 
-      <button class="btn-model" onclick="selectModel('10', this)">PCW 10</button> +    <button class="btn-model" onclick="seleccionarPCW('16', this)">PCW 16</button>
-      <button class="btn-model" onclick="selectModel('16', this)">PCW 16</button+
-      <div id="lang-selector" style="display:none; margin-top:15px;"> +
-        <img id="flag-es" src="/lib/exe/fetch.php?media=botones:espana.jpg" class="flag-btn" onclick="selectLang('es', this)"> +
-        <img id="flag-uk" src="/lib/exe/fetch.php?media=botones:reino_unido.jpg" class="flag-btn" onclick="selectLang('uk', this)"> +
-        <img id="flag-fr" src="/lib/exe/fetch.php?media=botones:francia.jpg" class="flag-btn" onclick="selectLang('fr', this)"> +
-        <img id="flag-de" src="/lib/exe/fetch.php?media=botones:alemania.jpg" class="flag-btn" onclick="selectLang('de', this)"> +
-      </div> +
-    </div> +
-    <div class="drive-bay"><div class="disk-slot"></div><div class="eject-button" onclick="location.reload()"></div><div class="drive-led" id="drive-led"></div></div> +
-    <div id="display-screen"><div id="status-msg" class="blink-yellow">POR FAVOR, SELECCIONE SU MODELO DE AMSTRAD PCW</div><div id="download-zone" style="display:none;"></div></div> +
-    <div id="disk-shelf-display" class="disk-shelf"></div>+
   </div>   </div>
 +  <div id="lang-container" class="lang-selector"></div>
 +  <div id="display-screen"><div style="text-align:center; padding-top:100px; opacity:0.5;">SÉLECTIONNEZ LE MODÈLE :</div></div>
 </div> </div>
-<script> 
-let currentModel = ""; let currentLang = ""; let currentLoading = null; 
-let audioCtx = null; let motorNode = null; let motorLFO = null; 
-let isSystemLoaded = false;  
  
-const translations +<div id="disk-modalonclick="cerrarZoom()"> 
-  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 <brPROGRAMACION", 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." }, +  <img id="modal-imgsrc=""> 
-  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: "DR. LOGO & 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." }, +  <button class="close-modal">FERMER [ESC]</button
-  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: "DR. LOGO & 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." }, +</div>
-  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: "DR. LOGO 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)()}+<script> 
 +var pcwActual ''; 
 +var rutaBanderas = "/lib/exe/fetch.php?media=botones:"; 
 +var rutaDiscos = "/lib/exe/fetch.php?media=sistema:discos:imagenes:";
  
-function playRecalibrate() { +function seleccionarPCW(modelo, boton) { 
-  initAudio()const startTime audioCtx.currentTime+  pcwActual = modelo; 
-  for(let i=0; i<12; i++) { +  var botones document.getElementsByClassName('btn-model')
-    const t = startTime + (* 0.045); const osc = audioCtx.createOscillator(); const gain = audioCtx.createGain(); +  for (var i = 0; i < botones.length; i++) { botones[i].classList.remove('active'); } 
-    osc.type = 'square'; osc.frequency.setValueAtTime(90, t); +  boton.classList.add('active'); 
-    gain.gain.setValueAtTime(0.18, t); gain.gain.linearRampToValueAtTime(0, t + 0.03)+  document.getElementById('display-screen').innerHTML = '<div style="text-align:center; padding-top:100px; opacity:0.5;">SÉLECTIONNEZ LA LANGUE :</div>'
-    osc.connect(gain); gain.connect(audioCtx.destination); +   
-    osc.start(t); osc.stop(t + 0.03); +  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 playStepSound() { +  listaIdiomas.forEach(function(lang) { 
-  initAudio(); const now audioCtx.currentTime; +    var img document.createElement('img'); 
-  const osc = audioCtx.createOscillator(); const gain = audioCtx.createGain(); const filter audioCtx.createBiquadFilter()+    img.src rutaBanderas + lang.img
-  osc.type = 'triangle'; osc.frequency.setValueAtTime(130, now); filter.type = 'bandpass'; filter.frequency.setValueAtTime(1100, now); +    img.className = 'flag-btn'; 
-  gain.gain.setValueAtTime(0.22, now); gain.gain.exponentialRampToValueAtTime(0.001, now + 0.035); +    img.onclick = function() 
-  osc.connect(filter); filter.connect(gain); gain.connect(audioCtx.destination); +      var flags = document.getElementsByClassName('flag-btn'); 
-  osc.start(); osc.stop(now + 0.035);+      for (var j = 0; j < flags.length; j++{ flags[j].classList.remove('active'); } 
 +      this.classList.add('active'); 
 +      mostrarDiscos(lang.id); 
 +    }; 
 +    contenedor.appendChild(img); 
 +  });
 } }
  
-function startMotorSound() { +function mostrarDiscos(idLang) { 
-  initAudio(); motorNode audioCtx.createOscillator(); const motorGain = audioCtx.createGain(); +  var pantalla document.getElementById('display-screen'); 
-  motorNode.type = 'sine'; motorNode.frequency.setValueAtTime(42, audioCtx.currentTime); +  var htmlDiscos = ''; 
-  motorLFO audioCtx.createOscillator(); const lfoGain audioCtx.createGain(); +   
-  motorLFO.frequency.setValueAtTime(6, audioCtx.currentTime); lfoGain.gain.setValueAtTime(0.004, audioCtx.currentTime); +  if (pcwActual === '8256' || pcwActual === '8512'{ 
-  motorLFO.connect(lfoGain); lfoGain.connect(motorGain.gain); motorGain.gain.setValueAtTime(0.007, audioCtx.currentTime); +    htmlDiscos '<div class="disk-grid">'
-  motorNode.connect(motorGain); motorGain.connect(audioCtx.destination); +      '<div class="disk-item"><img src="' + rutaDiscos + 'systemdisk_' + idLang + '_side1.jpg" onclick="abrirZoom(this.src)">DISQUETTE 1</div>'
-  motorNode.start(); motorLFO.start(); +      '<div class="disk-item"><img src="' + rutaDiscos + 'systemdisk_' + idLang + '_side2.jpg" onclick="abrirZoom(this.src)">DISQUETTE 2</div>' + 
-+      '<div class="disk-item"><img src="' + rutaDiscos + 'systemdisk_' + idLang + '_side3.jpg" onclick="abrirZoom(this.src)">DISQUETTE 3</div>'
- +      '<div class="disk-item"><img src="' + rutaDiscos + 'systemdisk_' + idLang + '_side4.jpg" onclick="abrirZoom(this.src)">DISQUETTE 4</div>'
-function stopMotorSound() { if (motorNode) { motorNode.stop(); motorNode = null; if (motorLFO) { motorLFO.stop(); motorLFO null}+      '</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 RECTO</div>'
 +      '<div class="disk-item"><img src="' + rutaDiscos + 'locoscript2_9512plus_bubblejet_disk_back.jpg" onclick="abrirZoom(this.src)">LOCO VERSO</div>' + 
 +      '<div class="disk-item"><img src="' + rutaDiscos + 'cpm_plus_9512plus_bubblejet_disk_front.jpg" onclick="abrirZoom(this.src)">CPM RECTO</div>'
 +      '<div class="disk-item"><img src="' + rutaDiscos + 'cpm_plus_9512plus_bubblejet_disk_back.jpg" onclick="abrirZoom(this.src)">CPM VERSO</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)">DISQUETTE ' + (index+1+ '</div>'; 
 +     }); 
 +     htmlDiscos +'</div>'; 
 +  }
  
-function selectModel(model, btn) { +  if (htmlDiscos !== '') { 
-  document.querySelectorAll('.btn-model').forEach(b => b.classList.remove('active')); btn.classList.add('active'); currentModel model+    // RUTA FINAL FRANCESA: Forzamos el namespace fr: 
-  const status document.getElementById('status-msg'); +    var urlFinal "doku.php?id=fr:sistema:discos:descargas:pcw" + pcwActual + idLang
-  if (model === '16') { +     
-    document.getElementById('lang-selector').style.display = 'none'; +    htmlDiscos += '<div class="download-zone">+ 
-    status.className = "status-green"; status.innerHTML = "PCW 16 DETECTADO. ESPERANDO HARDWARE 3.5 PULGADAS...";+                  '<a href="' + urlFinal + '" target="_blank" class="btn-download">TÉLÉCHARGER DISQUETTES SYSTÈME PCW + pcwActual.toUpperCase() + (+ idLang.toUpperCase() + ')</a>'
 +                  '</div>'; 
 +    pantalla.innerHTML = htmlDiscos;
   } else {   } else {
-    document.getElementById('lang-selector').style.display = 'block'; +    pantalla.innerHTML = '<div style="text-align:centerpadding-top:100px; opacity:0.5;">CONTENU NON DISPONIBLE_</div>';
-    status.className = "blink-yellow"status.innerHTML = "PCW " + model + " SELECCIONADO. ELIJA IDIOMA"; +
-    const flags = { es: document.getElementById('flag-es'), ukdocument.getElementById('flag-uk'), frdocument.getElementById('flag-fr'), de: document.getElementById('flag-de') }; +
-    const showAll = (model === '8256' || model === '8512'); +
-    Object.values(flags).forEach(f ={ if(f) f.style.display = showAll ? 'inline-block' : 'none'; });+
   }   }
 } }
  
-function selectLang(lang, btn) { +function abrirZoom(src) { 
-  currentLang = lang; document.querySelectorAll('.flag-btn').forEach(f => f.classList.remove('active')); btn.classList.add('active')+  document.getElementById('modal-img').src src
-  document.getElementById('status-msg').innerHTML `<span class="status-green">SISTEMA PCW ${currentModel} (${translations[lang].name}) LISTO.</span>`; +  document.getElementById('disk-modal').style.display 'flex';
-  updateShelf();+
 } }
  
-function updateShelf() { +function cerrarZoom() { 
-  const shelf = document.getElementById('disk-shelf-display'); shelf.innerHTML = ""; shelf.style.display = 'flex'; +  document.getElementById('disk-modal').style.display = 'none';
-  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="head-window-cutout"><div class="internal-shutter" id="shutter${i}front"></div><div class="magnetic-surface"></div></div><div class="disk-hub-wrapper"><div class="hub-3inch"><div class="hub-3inch-notch"></div></div></div><div class="disk-label-amsoft">${getLabelHTML(i, 'A')}</div></div></div></div>`; +
-  }+
 } }
  
-function getLabelHTML(diskNum, side) { +document.onkeydown = function(evt) { 
-  const t = translations[currentLang]; const sideNum = (diskNum === 1) ? "1" : "3"; const data = t['d' + sideNum]; +  if (evt.key === "Escape"cerrarZoom(); 
-  let logo = (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><span class="schneider-text-logo">Schneider</span></div>` : `<span class="amsoft-logo-text">Amsoft</span>`; +};
-  return `<div class="label-header ${t.header}">${logo}<div class="side-indicator-container">${sideNum}</div></div><div class="label-body-replica"><span class="txt-desc-top">${data.desc}</span><br><b>${data.t2}</b><div class="serial-box-only">${data.ser}</div><div class="txt-small-legales">${t.lic}</div></div>`; +
-+
- +
-function triggerLoadFromDisk(idx, isBack) { +
-  const sideChar = isBack ? 'B' : 'A'; const sideNum = (idx === 1) ? "1" : "3"; +
-  const shutter = document.getElementById('shutter' + idx + 'front'); if(shutter) shutter.classList.add('shutter-open'); +
-  document.getElementById('drive-led').className "drive-led led-active led-reading";  +
-  const t translations[currentLang]; let name = (t['d' + sideNum].t2).replace(/<[^>]*>?/gm, ' '); +
-  const status = document.getElementById('status-msg'); +
-  playRecalibrate(); setTimeout(() => startMotorSound(), 550); +
-  let track = 0; +
-  currentLoading = setInterval(() => { +
-    status.innerHTML = `LEYENDO DISCO ${idx} - PISTA ${track}...<br>CARGANDO: <span style="color:#fff;">${name}</span>`; +
-    if (track > 0playStepSound(); track+++
-    if (track > 40) {  +
-      clearInterval(currentLoading); stopMotorSound(); document.getElementById('drive-led').className = "drive-led"; if(shutter) shutter.classList.remove('shutter-open'); +
-      status.innerHTML = `<span class="status-green">SISTEMA MONTADO</span>`; +
-      const fileName = `Disco_sistema_${currentModel}_${t.code}_d${idx}_${sideChar}.zip`; +
-      document.getElementById('download-zone').innerHTML = `<a href="/lib/exe/fetch.php?media=sistema:descargas:${fileName}" class="download-link">OBTENER IMAGEN .DSK</a>`; +
-      document.getElementById('download-zone').style.display = 'block'; +
-    } +
-  }, 180); +
-}+
 </script> </script>
 </html> </html>
  
fr/software/systeme.1777887948.txt.gz · Última modificación: por jesus