| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa |
| fr:software:systeme [2026/05/04 09:27] – jesus | fr:software:systeme [2026/05/05 18:53] (actual) – jesus |
|---|
| <html> | <html> |
| <style> | <style> |
| /* MOTOR VISUAL CRT ORIGINAL */ | .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.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; filter: grayscale(1) opacity(0.5); transition: 0.3s; margin: 0 8px; border: 1px solid transparent; vertical-align: middle; } | .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.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); margin: 20px auto; min-height: 120px; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 15px; box-sizing: border-box; } | |
| .status-green { color: #00ff00 !important; font-weight: bold; } | #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; } |
| .blink-yellow { color: #ffff00 !important; animation: b 1s linear infinite; font-weight: bold; } | .disk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 15px; justify-items: center; width: 100%; margin-bottom: 25px; } |
| @keyframes b { 50% { opacity: 0; } } | .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; } |
| |
| /* UNIDAD 3" Y 3.5" (HARDWARE SEPARADO) */ | .download-zone { margin-top: 10px; text-align: center; width: 100%; } |
| .drive-bay { background: linear-gradient(180deg, #222, #111); border: 4px solid #333; width: 380px; height: 110px; margin: 0 auto 30px auto; position: relative; border-radius: 6px; } | .btn-download { display: inline-block; background: transparent; color: #ffff00; border: 2px solid #ffff00; padding: 10px 20px; font-family: 'Courier New', monospace; font-weight: bold; cursor: pointer; text-decoration: none; transition: 0.3s; font-size: 13px; } |
| .disk-slot { background: #000; width: 320px; height: 10px; margin: 35px auto 0; box-shadow: inset 0 2px 5px #000; 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); } |
| #drive-bay-pcw16 { display: none; background: #2a2a2a; border: 3px solid #1a1a1a; width: 340px; height: 80px; margin: 0 auto 30px auto; position: relative; border-radius: 4px; } | |
| .slot-35 { background: #050505; width: 300px; height: 8px; margin: 25px auto 0; border-radius: 1px; } | |
| |
| /* DISCO 3" Y HUB METAL (BLINDADO) */ | #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; } |
| .disk-shelf { display: none; flex-wrap: wrap; gap: 40px; justify-content: center; margin-top: 50px; } | #modal-img { border: 3px solid #00ff00; max-width: 80%; max-height: 80%; } |
| .disk-container { width: 175px; height: 225px; position: relative; background: #111; border: 1px solid #000; } | .close-modal { margin-top: 20px; background: transparent; color: #00ff00; border: 2px solid #00ff00; padding: 10px 20px; cursor: pointer; font-family: 'Courier New', monospace; } |
| .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%, #888 100%); border-radius: 50%; border: 1.5px solid #222; width: 100%; height: 100%; position: relative; } | |
| .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; } | |
| | |
| /* ETIQUETAS Y SERIALES (BLINDADO) */ | |
| .disk-label-amsoft { position: absolute; bottom: 8px; left: 8px; right: 8px; height: 82px; background: #fff; overflow: hidden; display: flex; flex-direction: column; font-family: Arial; } | |
| .header-es { background: #e18dae; border-bottom: 1px solid #000; 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; text-shadow: 1px 1px 0 #000; } | |
| .serial-box-only { position: absolute; border: 1px solid #000; background: #fff; right: 6px; top: 4px; width: 44px; height: 13px; text-align: center; font-weight: bold; font-size: 8px; display: flex; align-items: center; justify-content: center; } | |
| </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 class="selector-panel"> | <div class="selector-panel"> |
| <button class="btn-model" onclick="selectModel('8256', this)">PCW 8256</button> | <button class="btn-model" onclick="seleccionarPCW('8256', this)">PCW 8256</button> |
| <button class="btn-model" onclick="selectModel('8512', this)">PCW 8512</button> | <button class="btn-model" onclick="seleccionarPCW('8512', this)">PCW 8512</button> |
| <button class="btn-model" onclick="selectModel('9256', this)">PCW 9256</button> | <button class="btn-model" onclick="seleccionarPCW('9512', this)">PCW 9512</button> |
| <button class="btn-model" onclick="selectModel('9512', this)">PCW 9512</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('10', this)">PCW 10</button> | <button class="btn-model" onclick="seleccionarPCW('10', this)">PCW 10</button> |
| <button class="btn-model" onclick="selectModel('16', this)">PCW 16</button> | <button class="btn-model" onclick="seleccionarPCW('16', this)">PCW 16</button> |
| <div id="lang-selector" style="display:none; margin-top:15px;"> | |
| <img src="/lib/exe/fetch.php?media=botones:espana.jpg" class="flag-btn" onclick="selectLang('es', this)"> | |
| </div> | |
| </div> | </div> |
| <div class="drive-bay"><div class="disk-slot"></div><div class="drive-led" id="drive-led"></div></div> | <div id="lang-container" class="lang-selector"></div> |
| <div id="drive-bay-pcw16"><div class="slot-35"></div><div class="eject-button" onclick="location.reload()"></div></div> | <div id="display-screen"><div style="text-align:center; padding-top:100px; opacity:0.5;">SÉLECTIONNEZ LE MODÈLE :</div></div> |
| <div id="display-screen"><div id="status-msg" class="blink-yellow">POR FAVOR, SELECCIONE MODELO</div></div> | |
| <div id="disk-shelf-display" class="disk-shelf"></div> | |
| </div> | </div> |
| | |
| | <div id="disk-modal" onclick="cerrarZoom()"> |
| | <img id="modal-img" src=""> |
| | <button class="close-modal">FERMER [ESC]</button> |
| | </div> |
| | |
| <script> | <script> |
| let currentModel = ""; let currentLang = ""; let isSystemLoaded = false; | var pcwActual = ''; |
| const translations = { | var rutaBanderas = "/lib/exe/fetch.php?media=botones:"; |
| es: { code: "es", name: "ESPAÑOL", header: "header-es", amstrad: "AMSTRAD CONSUMER plc", d1: { desc: "PROCESADOR DE TEXTOS", t2: "LOCO SCRIPT", ser: "2433345" }, d2: { desc: "SISTEMA OPERATIVO", t2: "CP/M PLUS", ser: "VER LA OTRA CARA" }, lic: "SUJETO A CONDICIONES DE LICENCIA", copy: "COPYRIGHT © 1985 LOCOMOTIVE LTD" } | var rutaDiscos = "/lib/exe/fetch.php?media=sistema:discos:imagenes:"; |
| }; | |
| |
| function selectModel(model, btn) { | function seleccionarPCW(modelo, boton) { |
| document.querySelectorAll('.btn-model').forEach(b => b.classList.remove('active')); | pcwActual = modelo; |
| btn.classList.add('active'); currentModel = model; | var botones = document.getElementsByClassName('btn-model'); |
| const bClassic = document.querySelector('.drive-bay'); | for (var i = 0; i < botones.length; i++) { botones[i].classList.remove('active'); } |
| const b16 = document.getElementById('drive-bay-pcw16'); | boton.classList.add('active'); |
| const langSel = document.getElementById('lang-selector'); | document.getElementById('display-screen').innerHTML = '<div style="text-align:center; padding-top:100px; opacity:0.5;">SÉLECTIONNEZ LA LANGUE :</div>'; |
| const status = document.getElementById('status-msg'); | |
| status.classList.remove('blink-yellow'); status.classList.add('status-green'); | |
| | |
| if (model === '16') { | var contenedor = document.getElementById('lang-container'); |
| bClassic.style.display = 'none'; b16.style.display = 'block'; | contenedor.innerHTML = ''; |
| langSel.style.display = 'none'; status.innerHTML = "PCW 16 DETECTADO. UNIDAD 3.5 INICIALIZADA"; | |
| | 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'}]; |
| | |
| | listaIdiomas.forEach(function(lang) { |
| | var img = document.createElement('img'); |
| | img.src = rutaBanderas + lang.img; |
| | img.className = 'flag-btn'; |
| | img.onclick = function() { |
| | var flags = document.getElementsByClassName('flag-btn'); |
| | for (var j = 0; j < flags.length; j++) { flags[j].classList.remove('active'); } |
| | this.classList.add('active'); |
| | mostrarDiscos(lang.id); |
| | }; |
| | contenedor.appendChild(img); |
| | }); |
| | } |
| | |
| | function mostrarDiscos(idLang) { |
| | var pantalla = document.getElementById('display-screen'); |
| | var htmlDiscos = ''; |
| | |
| | if (pcwActual === '8256' || pcwActual === '8512') { |
| | htmlDiscos = '<div class="disk-grid">' + |
| | '<div class="disk-item"><img src="' + rutaDiscos + 'systemdisk_' + idLang + '_side1.jpg" onclick="abrirZoom(this.src)">DISQUETTE 1</div>' + |
| | '<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>' + |
| | '</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>'; |
| | } |
| | |
| | if (htmlDiscos !== '') { |
| | // RUTA FINAL FRANCESA: Forzamos el namespace fr: |
| | var urlFinal = "doku.php?id=fr:sistema:discos:descargas:pcw" + pcwActual + idLang; |
| | |
| | htmlDiscos += '<div class="download-zone">' + |
| | '<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 { |
| bClassic.style.display = 'block'; b16.style.display = 'none'; | pantalla.innerHTML = '<div style="text-align:center; padding-top:100px; opacity:0.5;">CONTENU NON DISPONIBLE_</div>'; |
| langSel.style.display = (model === '8256' || model === '8512') ? 'block' : 'none'; | |
| status.innerHTML = "PCW " + model + " SELECCIONADO. ELIJA IDIOMA"; | |
| } | } |
| } | } |
| |
| function selectLang(lang, btn) { | function abrirZoom(src) { |
| currentLang = lang; | document.getElementById('modal-img').src = src; |
| document.getElementById('status-msg').innerHTML = "SISTEMA " + currentModel + " (" + translations[lang].name + ") LISTO"; | document.getElementById('disk-modal').style.display = 'flex'; |
| updateShelf(); | |
| } | } |
| |
| function updateShelf() { | function cerrarZoom() { |
| const shelf = document.getElementById('disk-shelf-display'); | document.getElementById('disk-modal').style.display = 'none'; |
| shelf.innerHTML = ""; shelf.style.display = 'flex'; | |
| for(let i=1; i<=2; i++) { | |
| const t = translations[currentLang]; const d = t['d'+i]; | |
| shelf.innerHTML += ` | |
| <div class="disk-wrapper"> | |
| <div class="disk-container"> | |
| <div class="disk-hub-wrapper"><div class="hub-3inch"></div></div> | |
| <div class="disk-label-amsoft"> | |
| <div class="header-es"><span class="amsoft-logo-text">Amsoft</span><span>${i}</span></div> | |
| <div class="label-body-replica" style="padding:5px; color:#000; font-size:10px; flex:1; position:relative;"> | |
| <span>${d.desc}</span><br><b>${d.t2}</b> | |
| <div class="serial-box-only">${d.ser}</div> | |
| <div style="font-size:4px; margin-top:auto;">${t.lic}<br>${t.copy}</div> | |
| </div> | |
| </div> | |
| </div> | |
| </div>`; | |
| } | |
| } | } |
| | |
| | document.onkeydown = function(evt) { |
| | if (evt.key === "Escape") cerrarZoom(); |
| | }; |
| </script> | </script> |
| </html> | </html> |
| |