de:others:kontakt
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| de:others:kontakt [2026/04/30 09:48] – creado jesus | de:others:kontakt [2026/05/06 17:43] (actual) – jesus | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ~~NOTOC~~ | ~~NOTOC~~ | ||
| - | |||
| < | < | ||
| < | < | ||
| - | /* --- PREMIUM CRT VISUAL ENGINE | + | |
| - | .pcw-page-container | + | |
| - | background-color: #000b00 !important; | + | |
| - | | + | .modem-chassis |
| - | padding: | + | background: #1a1a1a; |
| - | | + | |
| - | | + | max-width: 440px; |
| + | | ||
| + | | ||
| + | box-shadow: 0 0 1px rgba(255, | ||
| + | display: flex; align-items: | ||
| + | box-sizing: border-box; | ||
| } | } | ||
| - | + | | |
| - | .crt-effect { position: relative; overflow: hidden; } | + | .sch-brand-white { |
| - | .crt-effect:: | + | |
| - | | + | |
| - | | + | |
| - | linear-gradient(90deg, | + | |
| - | background-size: | + | |
| - | animation: flicker-pcw 0.15s infinite; | + | |
| } | } | ||
| - | @keyframes flicker-pcw { 0% { opacity: 0.98; } 100% { opacity: 1; } } | ||
| - | | + | .led-bezel { |
| - | | + | |
| - | | + | |
| - | | + | |
| - | margin: 20px 0; | + | |
| - | | + | |
| - | | + | |
| - | position: relative; | + | |
| } | } | ||
| - | .terminal-header | + | .m-led { width: 10px; height: 10px; background: #200; border-radius: 50%; position: relative; border: 1px solid rgba(255, |
| - | | + | |
| - | color: #000; | + | |
| - | padding: 5px 20px; | + | |
| - | font-weight: bold; | + | .led-green { background:#0f0 !important; box-shadow: 0 0 10px #0f0; } |
| - | position: absolute; | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | } | + | |
| - | | + | |
| - | .cursor | + | width: |
| - | | + | |
| - | | + | |
| - | animation: | + | |
| - | | + | |
| } | } | ||
| - | @keyframes blink { 50% { opacity: 0; } } | + | @keyframes |
| + | .active-btn { animation: | ||
| - | /* --- " | + | /* --- TERMINAL |
| - | .email-link { | + | .contact-box { |
| - | color: #fff !important; | + | border: |
| - | font-size: 1.8em; | + | background: rgba(0,10,0,0.9); min-height: 400px; display: none; |
| - | text-decoration: | + | |
| - | font-weight: | + | |
| - | padding: 15px 30px; | + | |
| - | border: | + | |
| - | display: inline-block; | + | |
| - | margin: 30px 0; | + | |
| - | background: rgba(0, | + | |
| - | transition: 0.4s; | + | |
| - | text-shadow: 0 0 10px #00ff00, 0 0 20px #00ff00; | + | |
| - | | + | |
| } | } | ||
| - | .email-link:hover { | + | .line-in { opacity: 0; transform: translateX(-5px); |
| - | | + | .block-line |
| - | color: #000 !important; | + | |
| - | | + | |
| - | | + | .email-link { |
| + | color: #fff !important; font-size: 1.1em; text-decoration: | ||
| + | | ||
| + | | ||
| + | text-shadow: | ||
| } | } | ||
| - | | + | |
| - | font-size: | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| } | } | ||
| + | </ | ||
| - | .contribution-grid { | + | <div class=" |
| - | | + | < |
| - | | + | |
| - | gap: 15px; | + | |
| - | margin: 25px 0; | + | <div id=" |
| - | | + | <div id=" |
| - | | + | <div id=" |
| - | | + | <div id=" |
| - | | + | |
| - | .item-cmd:: | + | <button id=" |
| + | | ||
| + | | ||
| + | </ | ||
| - | </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: " | ||
| + | {t: " | ||
| + | {t: "LADE PCWWiki ERHALTUNGSPROTOKOLL...", | ||
| + | {t: " | ||
| + | {t: " ", s: " | ||
| + | {t: " | ||
| + | {t: " | ||
| + | {t: "oder historische Dokumente zur Erhaltung beisteuern wollen, ", s: " | ||
| + | {t: "ist das System bereit, Ihre Übertragung zu empfangen.", | ||
| + | {t: " ", s: " | ||
| + | {t: "<a href=' | ||
| + | {t: " ", s: " | ||
| + | {t: "NO CARRIER / SITZUNGSENDE", | ||
| + | ]; | ||
| - | <div class=" | + | function initAudio() { if(!aCtx) aCtx = new (window.AudioContext || window.webkitAudioContext)(); |
| - | <div class=" | + | |
| - | <div class=" | + | function playDTMF(digit, |
| - | | + | if(abortComm) return; |
| - | | + | const freqs = { ' |
| - | | + | const f = freqs[digit] || [0,0]; |
| + | f.forEach(hz => { | ||
| + | let o = aCtx.createOscillator(); | ||
| + | o.frequency.value = hz; g.gain.setValueAtTime(0.02, start); | ||
| + | g.gain.exponentialRampToValueAtTime(0.001, start + 0.1); | ||
| + | o.connect(g); | ||
| + | | ||
| + | } | ||
| - | <div style=" | + | function playModemChirp(dur, |
| - | < | + | if(abortComm || !aCtx) return; |
| - | < | + | let now = aCtx.currentTime; |
| - | </ | + | let osc = aCtx.createOscillator(); |
| - | + | | |
| - | <div style="flex: 1;"> | + | |
| - | < | + | osc.frequency.linearRampToValueAtTime(baseFreq * 1.1, now + dur); |
| - | <p style=" | + | g.gain.setValueAtTime(gainVal, |
| - | Diese < | + | g.gain.exponentialRampToValueAtTime(0.001, |
| - | </ | + | |
| - | </ | + | |
| - | | + | } |
| - | <div class=" | + | async function simulatePacket(duration) { |
| - | <div class=" | + | let endTime |
| - | < | + | |
| - | < | + | document.getElementById(' |
| - | < | + | playModemChirp(0.06, 1200, 0.015); |
| - | | + | await new Promise(r |
| + | document.getElementById(' | ||
| + | if(Math.random() | ||
| + | document.getElementById(' | ||
| + | | ||
| + | await new Promise(r => setTimeout(r, 45)); | ||
| + | | ||
| + | } | ||
| + | await new Promise(r | ||
| + | | ||
| + | } | ||
| - | <div style=" | + | function startConnectionSequence() { |
| - | <p style=" | + | initAudio(); |
| - | <a href=" | + | let now = aCtx.currentTime; |
| - | 📧 PCWWIKI@gmail.com | + | |
| - | </a> | + | document.getElementById(' |
| - | <p style=" | + | |
| - | Warte auf Eingabe< | + | let dt1 = aCtx.createOscillator(); let dt2 = aCtx.createOscillator(); |
| - | </p> | + | |
| - | | + | |
| + | dt1.connect(dg); dt2.connect(dg); | ||
| + | | ||
| - | | + | |
| - | AMSTRAD PCW PRESERVATION PROJECT // STOCKPORT - MADRID // SYSTEM ID: Z80-PCW | + | |
| - | </ | + | |
| - | </ | + | let car = aCtx.createOscillator(); |
| + | car.frequency.value = 2100; cg.gain.setValueAtTime(0, | ||
| + | cg.gain.linearRampToValueAtTime(0.03, | ||
| + | cg.gain.exponentialRampToValueAtTime(0.001, | ||
| + | car.connect(cg); | ||
| + | car.start(now + 3); car.stop(now + 5.5); | ||
| - | </div> | + | setTimeout(() => { |
| + | if(abortComm) return; | ||
| + | document.getElementById(' | ||
| + | document.getElementById(' | ||
| + | processTransmission(); | ||
| + | }, 6000); | ||
| + | } | ||
| + | |||
| + | function handlePowerClick() { | ||
| + | const btn = document.getElementById(' | ||
| + | if (isFinished) { | ||
| + | document.getElementById(' | ||
| + | currentLine = 0; isFinished = false; | ||
| + | [' | ||
| + | startConnectionSequence(); | ||
| + | } else if (isBooting || document.getElementById(' | ||
| + | abortComm = true; isBooting = false; isFinished = false; | ||
| + | btn.classList.remove(' | ||
| + | document.getElementById(' | ||
| + | document.getElementById(' | ||
| + | currentLine = 0; | ||
| + | [' | ||
| + | } else { | ||
| + | isBooting = true; btn.classList.add(' | ||
| + | startConnectionSequence(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | async function processTransmission() { | ||
| + | if (currentLine < content.length && !abortComm) { | ||
| + | const out = document.getElementById(' | ||
| + | const lineData = content[currentLine]; | ||
| + | const lineSpan = document.createElement(' | ||
| + | lineSpan.className = ' | ||
| + | |||
| + | if(lineData.s === " | ||
| + | else if(lineData.s === " | ||
| + | else lineSpan.innerHTML = lineData.t; | ||
| + | |||
| + | out.appendChild(lineSpan); | ||
| + | let trafficTime = 150 + (lineData.t.length * 12); | ||
| + | await simulatePacket(trafficTime); | ||
| + | if(!abortComm) { | ||
| + | lineSpan.classList.add(' | ||
| + | currentLine++; | ||
| + | await new Promise(r => setTimeout(r, | ||
| + | processTransmission(); | ||
| + | } | ||
| + | } else if (!abortComm) { | ||
| + | isFinished = true; isBooting = false; | ||
| + | document.getElementById(' | ||
| + | } | ||
| + | } | ||
| + | </script> | ||
| </ | </ | ||
de/others/kontakt.1777542483.txt.gz · Última modificación: por jesus
