Herramientas de usuario

Herramientas del sitio


en:others:contact

Diferencias

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

Enlace a la vista de comparación

Próxima revisión
Revisión previa
en:others:contact [2026/04/30 09:47] – creado jesusen:others:contact [2026/05/06 17:42] (actual) jesus
Línea 1: Línea 1:
 ~~NOTOC~~ ~~NOTOC~~
- 
 <html> <html>
 <style> <style>
-  /* --- PREMIUM CRT VISUAL ENGINE --- */ +  .pcw-page-container { background:#000b00; font-family:'Courier New', monospace; padding:10px; color:#00ff00;
-  .pcw-page-container +   
-    background-color: #000b00 !important+  /* --- PCWWIKI MODEM HARDWARE (RESPONSIVE) --- */ 
-    font-family'Courier New', Courier, monospace !important+  .modem-chassis 
-    padding: 20px+    background: #1a1a1a;  
-    color: #00ff00 !important; +    width: 95%;  
-    border: 4px solid #1a1a1a;+    max-width440px;  
 +    margin: 0 auto 35px; border-radius: 6px; padding: 15px; position: relative
 +    border1.5px solid #333; border-top2px solid #444; 
 +    box-shadow: 0 0 1px rgba(255,255,255,0.1), 0 15px 40px rgba(0,0,0,0.9); 
 +    display: flex; align-items: center; justify-content: space-between; gap: 10px; 
 +    box-sizing: border-box;
   }   }
- +   
-  .crt-effect { position: relative; overflow: hidden; } +  .sch-brand-white {  
-  .crt-effect::after +    color#fffffffont-familyArial, sans-seriffont-weight900;  
-    content" "positionabsolutetop0; left: 0; bottom: 0; right: 0+    font-size: 13pxletter-spacing1pxwhite-spacenowrap;
-    background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.1) 50%),  +
-                linear-gradient(90deg, rgba(255, 0, 0, 0.03), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.03)); +
-    background-size: 100% 3px, 3px 100%z-index100pointer-eventsnone; +
-    animation: flicker-pcw 0.15s infinite;+
   }   }
-  @keyframes flicker-pcw { 0% { opacity: 0.98; } 100% { opacity: 1; } } 
  
-  /* --- COMMUNICATIONS TERMINAL --- */ +  .led-bezel 
-  .contact-box +    background: #0a0a0a; padding: 6px 10pxborder-radius4px; border: 1px solid #222
-    border2px solid #00ff00; +    displayflex; gap: 10px; box-shadow: inset 0 2px 5px rgba(0,0,0,0.5);
-    padding: 40px; +
-    margin20px 0+
-    backgroundrgba(0, 30, 0, 0.3); +
-    box-shadow: inset 0 0 50px rgba(0, 255, 0, 0.1), 0 10px 30px rgba(0,0,0,0.5)+
-    position: relative;+
   }   }
  
-  .terminal-header { +  .m-led width: 10px; height: 10px; background: #200border-radius50%positionrelativeborder1px solid rgba(255,255,255,0.05)} 
-    background-color: #00ff00; +  .m-led span { position: absolute; top: 14px; left: 50%; transform: translateX(-50%); font-size: 7px; color: #777; font-weight: bold; } 
-    color#000; +   
-    padding5px 20px; +  .led-red { background:#f00 !importantbox-shadow: 0 0 10px #f00; } 
-    font-weightbold+  .led-green { background:#0f0 !importantbox-shadow: 0 0 10px #0f0; } 
-    position: absolute; +  .led-yellow { background:#ff0 !important; box-shadow: 0 0 10px #ff0; }
-    top: 0; left: 50%; +
-    transform: translateX(-50%); +
-    font-size: 0.8em+
-    letter-spacing2px+
-  }+
  
-  /* --- BLINKING CURSOR --- */ +  .pwr-btn {  
-  .cursor +    width: 40px; height: 22px; background: #2a2a2a; border: 2px solid #444;  
-    display: inline-block; width: 12px; height: 18px; +    border-radius: 4px; cursor: pointer; animation: pwr-blink 1.2s infinite;  
-    background-color: #00ff00+    outline: none; flex-shrink0;
-    animation: blink 1s step-end infinite; +
-    vertical-alignmiddle;+
   }   }
-  @keyframes blink { 50% { opacity: 0; } }+  @keyframes pwr-blink { 50% { border-color:#0f0; box-shadow: 0 0 12px rgba(0,255,0,0.4); } 
 +  .active-btn { animation:none !important; border-color:#0f0 !important; background:#040 !important; box-shadow: inset 0 2px 5px rgba(0,0,0,0.5) !important; }
  
-  /* --- "CYBER-PCW" EMAIL LINK --- */ +  /* --- TERMINAL --- */ 
-  .email-link { +  .contact-box {  
-    color: #fff !important; +    border: 2px solid #004400padding20px;  
-    font-size: 1.8em; +    background: rgba(0,10,0,0.9); min-height400pxdisplaynone;  
-    text-decoration: none; +    word-wrapbreak-word;
-    font-weight: bold; +
-    padding: 15px 30px; +
-    border: 1px solid #00ff00; +
-    displayinline-block; +
-    margin: 30px 0+
-    background: rgba(0, 255, 0, 0.05); +
-    transition0.4s; +
-    text-shadow0 0 10px #00ff00, 0 0 20px #00ff00+
-    box-shadow0 0 10px rgba(0, 255, 0, 0.2);+
   }   }
-  .email-link:hover +  .line-in { opacity0; transform: translateX(-5px); transition: 0.2s; display: inline; line-height: 1.6; font-size: 14px; } 
-    background#00ff00+  .block-line display: block; margin-bottom: 12px; } 
-    color: #000 !important; +  .line-visible { opacity1 !importanttransform: translateX(0) !important; } 
-    box-shadow0 0 40px #00ff00+   
-    transformtranslateY(-5px);+  .email-link {  
 +    color: #fff !important; font-size: 1.2em; text-decoration: none;  
 +    font-weightbold; padding: 10px 15px; border: 1px solid #0f0;  
 +    displayinline-block; background: rgba(0,255,0,0.1);  
 +    text-shadow: 0 0 10px #0f0; margin-top: 15px; max-width: 100%; box-sizing: border-box;
   }   }
  
-  .status-line +  @media (max-width: 400px) 
-    font-size: 0.85em+    .sch-brand-white { font-size: 11px} 
-    color#008800+    .led-bezel { gap6pxpadding: 5px 8px; } 
-    margin-bottom25px+    .m-led { width: 8px; height8px} 
-    font-styleitalic;+    .pwr-btn { width35px}
   }   }
 +</style>
  
-  .contribution-grid { +<div class="pcw-page-container"> 
-    display: grid; +  <div class="modem-chassis"> 
-    grid-template-columns1fr 1fr; +    <div class="sch-brand-white">PCWWIKI <span style="font-weight:100font-size:8pxcolor:#aaa;">TELECOMS</span></div> 
-    gap15px; +    <div class="led-bezel"> 
-    margin25px 0+      <div id="mr" class="m-led"><span>MR</span></div> 
-    border-top: 1px solid #004400; +      <div id="oh" class="m-led"><span>OH</span></div> 
-    padding-top: 25px; +      <div id="rd" class="m-led"><span>RD</span></div> 
-  } +      <div id="sd" class="m-led"><span>SD</span></div> 
-   +    </div> 
-  .item-cmd::before { content: "[OK] "; color: #00ff00; font-weight: bold; }+    <button id="pwr" class="pwr-btn" onclick="handlePowerClick()" title="POWER / RESET"></button> 
 +  </div> 
 +  <div id="terminalclass="contact-box"><div id="output"></div></div> 
 +</div>
  
-</style>+<script> 
 +let aCtx = null; 
 +let currentLine = 0; 
 +let isBooting = false; 
 +let isFinished = false; 
 +let abortComm = false;
  
-<div class="pcw-page-container crt-effect">+const content 
 +  {t: "ATZ", s: "cmd", b: true}, {t: "OK", s: "status", b: true}, {t: "ATDT 914002800", s: "cmd", b: true}, 
 +  {t: "CONNECT 2400/V.22bis", s: "status", b: true}, {t: "--- INCOMING DATA STREAM ---", s: "status", b: true}, 
 +  {t: "LOADING PCWWiki PRESERVATION PROTOCOL...", s: "text", b: true}, 
 +  {t: "SYSTEM_ID: Z80-PCW (MADRID/STOCKPORT)", s: "text", b: true}, 
 +  {t: " ", s: "text", b: true}, 
 +  {t: "If you have detected an anomaly in the data, ", s: "text", b: false}, 
 +  {t: "possess software not listed in our records, ", s: "text", b: false}, 
 +  {t: "or wish to contribute historical documentation for preservation, ", s: "text", b: false}, 
 +  {t: "the system is ready to receive your transmission.", s: "text", b: false}, 
 +  {t: " ", s: "text", b: true}, 
 +  {t: "<a href='mailto:[email protected]' class='email-link'>📧 [email protected]</a>", s: "html", b: true}, 
 +  {t: " ", s: "text", b: true}, 
 +  {t: "NO CARRIER / SESSION END", s: "status", b: true} 
 +];
  
-  <div class="contact-box"> +function initAudio() { if(!aCtx) aCtx new (window.AudioContext || window.webkitAudioContext)(); }
-    <div class="terminal-header">SUBSYSTEM: COMMS_PORT_J11</div>+
  
-    <div class="status-line"> +function playDTMF(digit, start) { 
-      READY> LOAD "CONTACT.BIN"<br+    if(abortComm) return; 
-      RUNNING... Handshake successful (1200 baud)... +    const freqs { 
-    </div>+        '9': [852, 1477], '1': [697, 1209], '4': [770, 1209],  
 +        '0': [941, 1336], '2': [697, 1336], '8': [852, 1336] 
 +    }; 
 +    const f = freqs[digit] || [0,0]; 
 +    f.forEach(hz ={ 
 +        let o = aCtx.createOscillator(); let g = aCtx.createGain(); 
 +        o.frequency.value = hz; g.gain.setValueAtTime(0.02, start)
 +        g.gain.exponentialRampToValueAtTime(0.001, start + 0.1); 
 +        o.connect(g); g.connect(aCtx.destination); o.start(start); o.stop(start + 0.1); 
 +    }); 
 +}
  
-    <div style="display: flex; align-items: flex-start; gap: 30px; margin-bottom: 30px;"> +function playModemChirp(dur, baseFreq, gainVal) { 
-      <div style="background: #000; border: 2px solid #00ff00; padding: 10px; box-shadow: 0 0 15px #00ff00;"> +    if(abortComm || !aCtx) return
-        <img src="/lib/exe/fetch.php?media=logo.png" width="80" alt="PCW Contact"> +    let now aCtx.currentTime
-      </div> +    let osc aCtx.createOscillator(); let g aCtx.createGain(); 
-       +    osc.type 'square';  
-      <div style="flex: 1;"> +    osc.frequency.setValueAtTime(baseFreq, now); 
-        <h2 style="color: #00ff00margin-top: 0; text-transform: uppercase; font-size: 1.4em;">Establish communication</h2> +    osc.frequency.linearRampToValueAtTime(baseFreq * 1.1, now + dur)
-        <p style="line-height: 1.6color: #aaffaatext-align: justify;"> +    g.gain.setValueAtTime(gainVal, now); 
-          This <strong>DokuWiki</strong> is the central archive for the <strong>Amstrad PCW</strong>If you have detected an anomaly in the data, possess software that is not in our records, or want to contribute historical documentation for preservation, the system is ready to receive your transmission+    g.gain.exponentialRampToValueAtTime(0.001, now + dur)
-        </p> +    osc.connect(g)g.connect(aCtx.destination)
-      </div> +    osc.start(); osc.stop(now + dur); 
-    </div>+}
  
-    <div class="contribution-grid"> +async function simulatePacket(duration) { 
-      <div class="item-cmd">Technical error reporting.</div> +    let endTime Date.now() + duration; 
-      <div class="item-cmd">Disk dump submissions (.DSK).</div+    while(Date.now() endTime && !abortComm) { 
-      <div class="item-cmd">Scanned manuals (PDF).</div> +        document.getElementById('rd').classList.add('led-yellow'); 
-      <div class="item-cmd">CP/M configuration inquiries.</div+        playModemChirp(0.06, 1200, 0.015); 
-    </div>+        await new Promise(r => setTimeout(r, 75)); 
 +        document.getElementById('rd').classList.remove('led-yellow'); 
 +        if(Math.random() 0.65) { 
 +           document.getElementById('sd').classList.add('led-green'); 
 +           playModemChirp(0.04, 2400, 0.012); 
 +           await new Promise(r =setTimeout(r, 45)); 
 +           document.getElementById('sd').classList.remove('led-green'); 
 +        } 
 +        await new Promise(r => setTimeout(r, 35)); 
 +    
 +}
  
-    <div style="text-align: centermargin-top: 40px;"> +function startConnectionSequence() { 
-      <p style="letter-spacing: 3pxfont-size: 0.9emcolor: #00ff00;">SEND DATA TRANSMISSION TO:</p> +    initAudio(); if(aCtx.state === 'suspended') aCtx.resume(); 
-      <a href="mailto:PCWWIKI@gmail.com" class="email-link"> +    let now = aCtx.currentTime
-        📧 PCWWIKI@gmail.com +    abortComm false; 
-      </a> +    document.getElementById('mr').classList.add('led-red'); 
-      <p style="font-size: 0.8emcolor: #008800margin-top: 10px;"> +     
-        Awaiting input<span class="cursor"></span> +    let dt1 = aCtx.createOscillator()let dt2 = aCtx.createOscillator(); let dg = aCtx.createGain()
-      </p> +    dt1.frequency.value 350; dt2.frequency.value 440; dg.gain.setValueAtTime(0.015, now); 
-    </div>+    dg.gain.exponentialRampToValueAtTime(0.001, now + 1); 
 +    dt1.connect(dg)dt2.connect(dg); dg.connect(aCtx.destination)
 +    dt1.start(now); dt2.start(now); dt1.stop(now + 1); dt2.stop(now + 1);
  
-    <div style="margin-top: 50px; text-align: center; font-size: 0.8emcolor: #004400; border-top: 1px dashed #004400; padding-top: 20px;"> +    "914002800".split('').forEach((d, i) => playDTMF(d, now + 1.2 + (i * 0.16)));
-      AMSTRAD PCW PRESERVATION PROJECT // STOCKPORT - MADRID // SYSTEM ID: Z80-PCW +
-    </div>+
  
-  </div>+    let car = aCtx.createOscillator(); let cg = aCtx.createGain(); 
 +    car.frequency.value = 2100; cg.gain.setValueAtTime(0, now + 3); 
 +    cg.gain.linearRampToValueAtTime(0.03, now + 3.1); 
 +    cg.gain.exponentialRampToValueAtTime(0.001, now + 5.5); 
 +    car.connect(cg); cg.connect(aCtx.destination); 
 +    car.start(now + 3); car.stop(now + 5.5);
  
-</div>+    setTimeout(() => { 
 +        if(abortComm) return; 
 +        document.getElementById('oh').classList.add('led-red'); 
 +        document.getElementById('terminal').style.display = 'block'; 
 +        processTransmission(); 
 +    }, 6000); 
 +
 + 
 +function handlePowerClick() { 
 +    const btn = document.getElementById('pwr'); 
 +    if (isFinished) { 
 +        document.getElementById('output').innerHTML = ''; 
 +        currentLine = 0; isFinished = false; 
 +        ['oh','rd','sd'].forEach(id => document.getElementById(id).className = 'm-led'); 
 +        startConnectionSequence(); 
 +    } else if (isBooting || document.getElementById('mr').classList.contains('led-red')) { 
 +        abortComm = true; isBooting = false; isFinished = false; 
 +        btn.classList.remove('active-btn'); 
 +        document.getElementById('terminal').style.display = 'none'; 
 +        document.getElementById('output').innerHTML = ''; 
 +        currentLine = 0; 
 +        ['mr','oh','rd','sd'].forEach(id => document.getElementById(id).className = 'm-led'); 
 +    } else { 
 +        isBooting = true; btn.classList.add('active-btn'); 
 +        startConnectionSequence(); 
 +    } 
 +
 + 
 +async function processTransmission() { 
 +    if (currentLine < content.length && !abortComm) { 
 +        const out = document.getElementById('output'); 
 +        const lineData = content[currentLine]; 
 +        const lineSpan = document.createElement('span'); 
 +        lineSpan.className = 'line-in' + (lineData.b ? ' block-line' : ''); 
 +         
 +        if(lineData.s === "cmd") lineSpan.innerHTML = `<span style="color:#555">> ${lineData.t}</span>`; 
 +        else if(lineData.s === "status") lineSpan.innerHTML = `<span style="color:#fff; font-weight:bold">${lineData.t}</span>`; 
 +        else lineSpan.innerHTML = lineData.t; 
 +         
 +        out.appendChild(lineSpan); 
 +        let trafficTime = 150 + (lineData.t.length * 12); 
 +        await simulatePacket(trafficTime); 
 +        if(!abortComm) { 
 +            lineSpan.classList.add('line-visible'); 
 +            currentLine++; 
 +            await new Promise(r => setTimeout(r, 200 + Math.random() * 300)); 
 +            processTransmission(); 
 +        } 
 +    } else if (!abortComm) { 
 +        isFinished = true; isBooting = false; 
 +        document.getElementById('oh').classList.remove('led-red'); 
 +    } 
 +
 +</script>
 </html> </html>
  
en/others/contact.1777542451.txt.gz · Última modificación: por jesus