| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa |
| fr:software:systeme [2026/05/04 09:25] – jesus | fr:software:systeme [2026/05/05 18:53] (actual) – jesus |
|---|
| <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; 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: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); 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: blinker-msg 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 blinker-msg { 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 DE DISCO VIRTUAL 3" */ | .download-zone { margin-top: 10px; text-align: center; 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-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 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 { width: 45px; height: 20px; background: #0a0a0a; position: absolute; bottom: 12px; left: 30px; border: 2px solid #555; border-radius: 2px; cursor: pointer; } | |
| .drive-led { width: 16px; height: 8px; background: #300; position: absolute; bottom: 15px; right: 30px; border-radius: 2px; } | |
| .led-active { background: #ff0000; box-shadow: 0 0 15px #ff0000; } | |
| |
| /* --- AISLAMIENTO PCW 16 --- */ | #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; } |
| #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; box-shadow: inset 0 0 15px #000; } | #modal-img { border: 3px solid #00ff00; max-width: 80%; max-height: 80%; } |
| .slot-35 { background: #050505; width: 300px; height: 8px; margin: 25px auto 0 auto; border-radius: 1px; } | .close-modal { margin-top: 20px; background: transparent; color: #00ff00; border: 2px solid #00ff00; padding: 10px 20px; cursor: pointer; font-family: 'Courier New', monospace; } |
| | |
| /* DISCO 3" Y HUB (BLINDADO) */ | |
| .disk-shelf { display: none; flex-wrap: wrap; gap: 40px; justify-content: center; margin-top: 50px; perspective: 1200px; } | |
| .disk-container { width: 175px; height: 225px; position: relative; transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); transform-style: preserve-3d; } | |
| .disk-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; background: #111; border-radius: 4px; border: 1px solid #000; overflow: hidden; } | |
| .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: 4; } | |
| .internal-shutter { position: absolute; width: 100%; height: 100%; background: linear-gradient(90deg, #888, #ddd, #888); transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1); z-index: 6; } | |
| .shutter-open { transform: translateX(-100%); } | |
| .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; } | |
| .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; } | |
| .spinning { animation: rotate-hub 0.5s linear infinite !important; } | |
| @keyframes rotate-hub { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } | |
| | |
| /* ETIQUETAS BLINDADAS */ | |
| .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; } | |
| .header-es { background: #e18dae; border-bottom: 1.2px solid #c07090; height: 22px; padding: 0 6px; display: flex; align-items: center; justify-content: space-between; } | |
| .header-uk { background: #2a7089; border-bottom: 1.2px solid #1a5a70; height: 22px; padding: 0 6px; display: flex; align-items: center; justify-content: space-between; } | |
| .header-fr { background: #7ae500; border-bottom: 1.2px solid #5ba800; height: 22px; padding: 0 6px; display: flex; align-items: center; justify-content: space-between; } | |
| .header-de { background: #bcbcbc; border-bottom: 1.2px 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, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; } | |
| .label-body-replica { flex: 1; padding: 3px 6px; color: #000; position: relative; display: flex; flex-direction: column; } | |
| .serial-box-only { position: absolute; border: 1px solid #000; background: #fff; right: 6px; top: 4px; width: 44px; height: 13px; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 8px; } | |
| .txt-small-legales { font-size: 3.5px; font-weight: 900; text-transform: uppercase; margin-top: auto; } | |
| </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="drive-bay-pcw16"><div class="slot-35"></div><div class="eject-button" onclick="location.reload()"></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="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> |
| | |
| | <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: { name: "ESPAÑOL", header: "header-es", d1: { desc: "PROCESADOR DE TEXTOS", t2: "LOCO SCRIPT", ser: "2433345" }, d2: { desc: "SIST. OPERATIVO/UTILID.", t2: "CP/M PLUS", ser: "2433346" }, lic: "LICENCIA AMSTRAD plc...", copy: "© 1985 LOCOMOTIVE" }, | var rutaDiscos = "/lib/exe/fetch.php?media=sistema:discos:imagenes:"; |
| uk: { name: "ENGLISH", header: "header-uk", d1: { desc: "WORDPROCESSOR", t2: "LOCO SCRIPT", ser: "2119203" }, d2: { desc: "SYSTEM/UTILITIES", t2: "CP/M PLUS", ser: "2119204" }, lic: "LICENSE AMSTRAD plc...", copy: "© 1985 LOCOMOTIVE" }, | |
| fr: { name: "FRANÇAIS", header: "header-fr", d1: { desc: "TRAITEMENT DE TEXTE", t2: "LOCO SCRIPT", ser: "3210101" }, d2: { desc: "SYSTEME/UTILITAIRES", t2: "CP/M PLUS", ser: "3210102" }, lic: "LICENSE AMSTRAD plc...", copy: "© 1985 LOCOMOTIVE" }, | |
| de: { name: "DEUTSCH", header: "header-de", d1: { desc: "TEXTVERARBEITUNG", t2: "LOCO SCRIPT", ser: "2202187" }, d2: { desc: "SYSTEM-PROGRAMME", t2: "CP/M PLUS", ser: "2202188" }, lic: "LIZENZ AMSTRAD plc...", copy: "© 1985 LOCOMOTIVE" } | |
| }; | |
| |
| function selectModel(model, btn) { | function seleccionarPCW(modelo, boton) { |
| if (isSystemLoaded) return; | pcwActual = modelo; |
| document.querySelectorAll('.btn-model').forEach(b => b.classList.remove('active')); | var botones = document.getElementsByClassName('btn-model'); |
| btn.classList.add('active'); currentModel = model; | for (var i = 0; i < botones.length; i++) { botones[i].classList.remove('active'); } |
| const bClassic = document.querySelector('.drive-bay'); | boton.classList.add('active'); |
| const b16 = document.getElementById('drive-bay-pcw16'); | document.getElementById('display-screen').innerHTML = '<div style="text-align:center; padding-top:100px; opacity:0.5;">SÉLECTIONNEZ LA LANGUE :</div>'; |
| const langSel = document.getElementById('lang-selector'); | |
| const status = document.getElementById('status-msg'); | var contenedor = document.getElementById('lang-container'); |
| status.classList.remove('blink-yellow'); status.classList.add('status-green'); | contenedor.innerHTML = ''; |
| if (model === '16') { | |
| bClassic.style.display = 'none'; b16.style.display = 'block'; | var listaIdiomas = (modelo === '8256' || modelo === '8512') ? |
| langSel.style.display = 'none'; status.innerHTML = "PCW 16 (ANNE) DETECTADO. UNIDAD 3.5 INICIALIZADA"; | [{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) { |
| document.querySelectorAll('.flag-btn').forEach(f => f.classList.remove('active')); | document.getElementById('modal-img').src = src; |
| btn.classList.add('active'); currentLang = lang; | document.getElementById('disk-modal').style.display = 'flex'; |
| document.getElementById('status-msg').innerHTML = "SISTEMA " + currentModel + " (" + translations[lang].name + ") LISTO"; | |
| 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-face"><div class="head-window-cutout"><div class="internal-shutter"></div></div><div class="disk-hub-wrapper"><div class="hub-3inch"><div class="hub-3inch-notch"></div></div></div><div class="disk-label-amsoft"><div class="label-header ${t.header}"><span class="amsoft-logo-text">Amsoft</span><span>${i}</span></div><div class="label-body-replica"><span>${d.desc}</span><br><b>${d.t2}</b><div class="serial-box-only">${d.ser}</div></div></div></div></div></div>`; | |
| } | |
| } | } |
| | |
| | document.onkeydown = function(evt) { |
| | if (evt.key === "Escape") cerrarZoom(); |
| | }; |
| </script> | </script> |
| </html> | </html> |
| |