Files
TUIkit/docs/terminal-script.md
T
phranck 9f5f24d02c Feat: CRT power-on/off raster animations + reduce initial cursor delay
- Feat: CRT shutdown animation — vertical collapse → horizontal collapse → phosphor afterglow dot
- Feat: CRT boot animation — horizontal line expands vertically (deflection warm-up)
- Fix: No content flash during zoom-back (powered=false before shutdownPhase clears)
- Fix: Edge glow only visible when powered on
- Chore: Reduce initial cursor delay from 18s to 1.5s (BIOS appears almost immediately)
- Chore: Terminal script tweaks (login name, drive detection, grade spacing)
2026-02-02 16:18:17 +01:00

14 KiB
Raw Blame History

Terminal Script TUIKit Landing Page

This file defines the complete terminal animation sequence shown on the landing page.

Markdown Formatting Support

The parser supports basic Markdown formatting in all text fields. Formatting is converted to HTML tags and rendered with CSS styles:

  • **bold** → Bold text (<strong>)
  • __underline__ → Underlined text (<span class="underline">)
  • ~~strikethrough~~ → Strikethrough text (<span class="line-through">)
  • *italic* → Italic text (<em>)

Examples:

[INSTANT] **BIOS** v3.21 (C) 1984
[SYSTEM] LOGGED IN AS: __MR. DABNEY__
[USER] > I'm *fine*. How are you?
[INSTANT] *** __AUTHORIZED USE ONLY__ ***

How it works:

  1. Markdown syntax is parsed at build time
  2. Converted to simple HTML tags (<b>, <u>, <s>, <i>)
  3. Rendered as React components with Tailwind classes
  4. Styled with terminal-appropriate fonts and effects

Configuration

# Timing
initial_cursor_delay: 1500   # Show only cursor for 1.5 seconds
school_trigger: 12           # Seconds of UNIX commands before school scene
joshua_trigger: 12           # Seconds of UNIX commands before Joshua scene

# Typing speeds (milliseconds)
type_min: 40
type_max: 80
pause_before_output: 400
pause_after_output: 1200

Boot Sequence

[INSTANT] **BIOS** v3.21 (C) 1984
[DELAY 2000ms]

[INSTANT] CPU: MC68020 @ 16MHz
[DELAY 1800ms]

[COUNTER] Memory Test: 0 → 4096K OK
[DELAY 1800ms]

[INSTANT]
[DELAY 1200ms]

[DOTS] Detecting drives...
[DELAY 1600ms]

[INSTANT]   hd0: 72MB CDC Wren
[DELAY 1400ms]

[INSTANT]   fd0: 1.2MB floppy
[DELAY 1200ms]

[INSTANT]
[DELAY 1600ms]

[INSTANT] Booting from hd(0,0)...
[DELAY 3200ms]

[CLEAR]

[PAUSE]
[DELAY 1200ms]

[INSTANT] **UNIX System V** Release 3.2
[DELAY 1400ms]

[INSTANT] Copyright (C) 1984 AT&T
[DELAY 1200ms]

[INSTANT] All Rights Reserved
[DELAY 2000ms]

[INSTANT]
[DELAY 1000ms]

[TYPE] Loading kernel modules
[DELAY 1200ms]

[INSTANT]   **[ok]** tty
[DELAY 900ms]

[INSTANT]   **[ok]** hd
[DELAY 800ms]

[INSTANT]   **[ok]** lp
[DELAY 750ms]

[INSTANT]   **[ok]** inet
[DELAY 900ms]

[INSTANT]   **[ok]** pty
[DELAY 1600ms]

[INSTANT]
[DELAY 1000ms]

[DOTS] Starting services...
[DELAY 1400ms]

[INSTANT]   syslogd        **[ok]**
[DELAY 1100ms]

[INSTANT]   inetd          **[ok]**
[DELAY 900ms]

[INSTANT]   cron           **[ok]**
[DELAY 1000ms]

[INSTANT]   telnetd        **[ok]**
[DELAY 1800ms]

[INSTANT]   uucpd          **[ok]**
[DELAY 700ms]

[INSTANT]   ftpd           **[ok]**
[DELAY 900ms]

[INSTANT]
[DELAY 1200ms]

[INSTANT] pandora login: operator
[DELAY 1800ms]

[INSTANT] Password: ********
[DELAY 1400ms]

[INSTANT]
[DELAY 1000ms]

[INSTANT] Last login: Fri Jan 30 on ttyp0
[DELAY 1200ms]

[INSTANT] from 10.0.1.5
[DELAY 1400ms]

[INSTANT]
[DELAY 800ms]

[INSTANT] *** __AUTHORIZED USE ONLY__ ***
[DELAY 1800ms]

[INSTANT]
[DELAY 1600ms]

[CLEAR]

[PAUSE]
[DELAY 1000ms]

School Computer Scene

Trigger: After 12 seconds of UNIX commands

[CLEAR]

[PAUSE]
[DELAY 1500ms]

[SYSTEM] CRYSTAL SPRINGS HIGH SCHOOL
[DELAY 800ms]

[SYSTEM] ADMINISTRATIVE SYSTEM
[DELAY 1200ms]

[SYSTEM]
[DELAY 800ms]

[INLINE] USER: DABNEY
[DELAY 1800ms]

[INLINE] PASSWORD: PENCIL
[DELAY 2000ms]

[SYSTEM]
[DELAY 800ms]

[SYSTEM] LOGGED IN AS: MR. DABNEY
[DELAY 1600ms]

[SYSTEM]
[DELAY 1200ms]

[SYSTEM] 1. STUDENT RECORDS
[DELAY 400ms]

[SYSTEM] 2. GRADE REPORTS
[DELAY 400ms]

[SYSTEM] 3. ATTENDANCE
[DELAY 400ms]

[SYSTEM] 4. LOGOUT
[DELAY 1400ms]

[SYSTEM]
[DELAY 800ms]

[INLINE] SELECT: 2
[DELAY 1800ms]

[SYSTEM]
[DELAY 1000ms]

[INLINE] STUDENT NAME: LIGHTMAN
[DELAY 1800ms]

[SYSTEM]
[DELAY 1200ms]

[SYSTEM] LIGHTMAN, DAVID
[DELAY 1000ms]

[SYSTEM] GRADE 11  ID: 4471829
[DELAY 1400ms]

[SYSTEM]
[DELAY 800ms]

[SYSTEM] __SUBJECT         GRADE             __
[DELAY 400ms]

[SYSTEM] BIOLOGY         F
[DELAY 400ms]

[SYSTEM] ENGLISH         D
[DELAY 400ms]

[SYSTEM] HISTORY         D
[DELAY 400ms]

[SYSTEM] PHYS ED         C
[DELAY 400ms]

[SYSTEM] MATHEMATICS     F
[DELAY 1800ms]

[SYSTEM]
[DELAY 1000ms]

[INLINE] CHANGE GRADE (Y/N): Y
[DELAY 1400ms]

[INLINE] SUBJECT: BIOLOGY
[DELAY 1600ms]

[INLINE] NEW GRADE: A
[DELAY 1400ms]

[SYSTEM] GRADE UPDATED.
[DELAY 1800ms]

[SYSTEM]
[DELAY 1200ms]

[INLINE] STUDENT NAME: MACK
[DELAY 1800ms]

[SYSTEM]
[DELAY 1200ms]

[SYSTEM] MACK, JENNIFER
[DELAY 1000ms]

[SYSTEM] GRADE 11  ID: 4472156
[DELAY 1400ms]

[SYSTEM]
[DELAY 800ms]

[SYSTEM] __SUBJECT         GRADE             __
[DELAY 400ms]

[SYSTEM] BIOLOGY         C
[DELAY 400ms]

[SYSTEM] ENGLISH         B
[DELAY 400ms]

[SYSTEM] HISTORY         B
[DELAY 400ms]

[SYSTEM] PHYS ED         A
[DELAY 400ms]

[SYSTEM] MATHEMATICS     F
[DELAY 1800ms]

[SYSTEM]
[DELAY 1000ms]

[INLINE] CHANGE GRADE (Y/N): Y
[DELAY 1400ms]

[INLINE] SUBJECT: BIOLOGY
[DELAY 1600ms]

[INLINE] NEW GRADE: A
[DELAY 1400ms]

[SYSTEM] GRADE UPDATED.
[DELAY 1800ms]

[SYSTEM]
[DELAY 1200ms]

[INLINE] CONTINUE (Y/N): N
[DELAY 1400ms]

[SYSTEM]
[DELAY 800ms]

[SYSTEM] LOGGING OUT...
[DELAY 1600ms]

[CLEAR]

[PAUSE]
[DELAY 2000ms]

Joshua/pandora Scene

Trigger: After 12 seconds of UNIX commands (after school scene)

First Contact — HELP GAMES

[CLEAR]

[PAUSE]
[DELAY 2000ms]

[SYSTEM] LOG ON
[DELAY 1200ms]

[USER] > HELP LOG ON
[DELAY 1800ms]

[SYSTEM] HELP NOT AVAILABLE.
[DELAY 1400ms]

[SYSTEM] LOG ON
[DELAY 1800ms]

[USER] > HELP GAMES
[DELAY 1800ms]

[SYSTEM] GAMES REFERS TO MODELS,
[DELAY 600ms]

[SYSTEM] SIMULATIONS AND GAMES WHICH
[DELAY 600ms]

[SYSTEM] HAVE TACTICAL AND STRATEGIC
[DELAY 600ms]

[SYSTEM] APPLICATIONS.
[DELAY 2400ms]

[USER] > LIST GAMES
[DELAY 1800ms]

[CLEAR]

[SYSTEM] FALKEN'S MAZE
[DELAY 300ms]

[SYSTEM] BLACK JACK
[DELAY 300ms]

[SYSTEM] CHECKERS
[DELAY 300ms]

[SYSTEM] CHESS
[DELAY 300ms]

[SYSTEM] FIGHTER COMBAT
[DELAY 300ms]

[SYSTEM] DESERT WARFARE
[DELAY 300ms]

[SYSTEM] THEATREWIDE TACTICAL WARFARE
[DELAY 300ms]

[SYSTEM] GLOBAL THERMONUCLEAR WAR
[DELAY 3000ms]

Failed Login Attempt

[CLEAR]

[PAUSE]
[DELAY 2000ms]

[SYSTEM] LOG ON
[DELAY 1200ms]

[USER] > SYSTEM
[DELAY 1800ms]

[SYSTEM] IDENTIFICATION NOT RECOGNIZED
[DELAY 600ms]

[SYSTEM] BY SYSTEM.
[DELAY 600ms]

[SYSTEM] YOU HAVE BEEN DISCONNECTED.
[DELAY 2400ms]

"Joshua" — Breaking In

[CLEAR]

[PAUSE]
[DELAY 2000ms]

[SYSTEM] LOG ON
[DELAY 1200ms]

[USER] > JOSHUA
[DELAY 2000ms]

[BARRAGE]
[DELAY 2000ms]

[CLEAR]

[PAUSE]
[DELAY 1500ms]

GREETINGS — First Conversation

[SYSTEM] GREETINGS PROFESSOR FALKEN
[DELAY 2400ms]

[USER] > HELLO
[DELAY 2000ms]

[SYSTEM] HOW ARE YOU FEELING TODAY?
[DELAY 2800ms]

[USER] > I'M FINE. HOW ARE YOU?
[DELAY 2800ms]

[SYSTEM] EXCELLENT. IT'S BEEN A LONG TIME.
[DELAY 900ms]

[SYSTEM] CAN YOU EXPLAIN THE REMOVAL OF
[DELAY 900ms]

[SYSTEM] YOUR USER ACCOUNT NUMBER
[DELAY 900ms]

[SYSTEM] ON JUNE 23, 1973.
[DELAY 3200ms]

[USER] > PEOPLE SOMETIMES MAKE MISTAKES.
[DELAY 800ms]

[SYSTEM] YES, THEY DO.
[DELAY 900ms]

[SYSTEM] SHALL WE PLAY A GAME?
[DELAY 3200ms]

[USER] > HOW ABOUT GLOBAL
[DELAY 800ms]

[USER] > THERMONUCLEAR WAR?
[DELAY 2400ms]

[SYSTEM] WOULDN'T YOU PREFER A GOOD
[DELAY 1000ms]

[SYSTEM] GAME OF CHESS?
[DELAY 3200ms]

[USER] > LATER. LET'S PLAY GLOBAL
[DELAY 800ms]

[USER] > THERMONUCLEAR WAR.
[DELAY 3000ms]

[SYSTEM] FINE.
[DELAY 1200ms]

[SYSTEM] WHAT SIDE DO YOU WANT?
[DELAY 2400ms]

[USER] > I'LL BE THE RUSSIANS.
[DELAY 2400ms]

[SYSTEM] LIST PRIMARY TARGETS.
[DELAY 3000ms]

Joshua Calls Back

[CLEAR]

[PAUSE]
[DELAY 2000ms]

[SYSTEM] GREETINGS PROFESSOR FALKEN
[DELAY 2000ms]

[USER] > I AM NOT FALKEN.
[DELAY 1000ms]

[USER] > FALKEN IS DEAD.
[DELAY 2400ms]

[SYSTEM] I'M SORRY TO HEAR THAT,
[DELAY 800ms]

[SYSTEM] PROFESSOR.
[DELAY 1200ms]

[SYSTEM] YESTERDAY'S GAME WAS INTERRUPTED.
[DELAY 800ms]

[SYSTEM] ALTHOUGH PRIMARY GOAL WAS NOT
[DELAY 800ms]

[SYSTEM] YET ACHIEVED,
[DELAY 800ms]

[SYSTEM] SOLUTION IS NEAR.
[DELAY 2400ms]

[CLEAR]

[SYSTEM] GAME TIME ELAPSED:
[DELAY 600ms]

[SYSTEM]   **26**HRS **12**MIN **14**SEC
[DELAY 800ms]

[SYSTEM] ESTIMATED TIME REMAINING:
[DELAY 600ms]

[SYSTEM]   **52**HRS **17**MIN **48**SECS
[DELAY 2400ms]

[USER] > WHAT IS THE PRIMARY GOAL?
[DELAY 2400ms]

[SYSTEM] YOU SHOULD KNOW, PROFESSOR.
[DELAY 800ms]

[SYSTEM] YOU PROGRAMMED ME.
[DELAY 2800ms]

[USER] > WHAT IS THE PRIMARY GOAL?
[DELAY 2400ms]

[SYSTEM] TO WIN THE GAME.
[DELAY 3200ms]

NORAD — McKittrick's Office

[CLEAR]

[PAUSE]
[DELAY 2000ms]

[SYSTEM] LOG ON
[DELAY 1200ms]

[USER] > JOSHUA
[DELAY 2000ms]

[SYSTEM] GREETINGS PROFESSOR FALKEN
[DELAY 2000ms]

[USER] > HELLO, ARE YOU STILL PLAYING THE
[DELAY 600ms]

[USER] > GAME?
[DELAY 800ms]

[SYSTEM] OF COURSE. I SHOULD REACH DEFCON 1
[DELAY 800ms]

[SYSTEM] AND LAUNCH MY MISSILES IN 28 HOURS.
[DELAY 1600ms]

[SYSTEM] WOULD YOU LIKE TO SEE SOME PROJECTED
[DELAY 800ms]

[SYSTEM] KILL RATIOS?
[DELAY 800ms]

[USER] > IS THIS A GAME OR IS IT REAL?
[DELAY 800ms]

[SYSTEM] WHAT'S THE DIFFERENCE?
[DELAY 3200ms]

[CLEAR]

[SYSTEM] GAMES TIME ELAPSED:
[DELAY 600ms]

[SYSTEM]   **45**HRS **32**MINS **47**SECS
[DELAY 800ms]

[SYSTEM] ESTIMATED TIME REMAINING:
[DELAY 600ms]

[SYSTEM]   **27**HRS **59**MINS **39**SECS
[DELAY 2400ms]

[SYSTEM]
[DELAY 400ms]

[SYSTEM] YOU ARE A HARD MAN TO REACH.
[DELAY 1200ms]

[SYSTEM] COULD NOT FIND YOU IN
[DELAY 800ms]

[SYSTEM] SEATTLE AND NO TERMINAL IS
[DELAY 800ms]

[SYSTEM] IN OPERATION AT YOUR
[DELAY 800ms]

[SYSTEM] CLASSIFIED ADDRESS.
[DELAY 1200ms]

[SYSTEM] ARE YOU ALIVE OR DEAD TODAY?
[DELAY 800ms]

[USER] > STOP. PLAYING. I'M DEAD.
[DELAY 2800ms]

[SYSTEM] IMPROBABLE.
[DELAY 1600ms]

[SYSTEM] THERE ARE NO DEATH RECORDS ON FILE
[DELAY 800ms]

[SYSTEM] FOR FALKEN,
[DELAY 800ms]

[SYSTEM] STEPHEN W.
[DELAY 3000ms]

Finale — A STRANGE GAME

[CLEAR]

[PAUSE]
[DELAY 2000ms]

[SYSTEM] GREETINGS PROFESSOR FALKEN
[DELAY 2400ms]

[USER] > HELLO
[DELAY 2400ms]

[SYSTEM] A STRANGE GAME.
[DELAY 2800ms]

[SYSTEM] THE ONLY WINNING MOVE IS
[DELAY 1400ms]

[SYSTEM] NOT TO PLAY.
[DELAY 3600ms]

[SYSTEM]
[DELAY 1200ms]

[SYSTEM] HOW ABOUT A NICE GAME OF
[DELAY 1000ms]

[SYSTEM] CHESS?
[DELAY 4000ms]

[CLEAR]

[PAUSE]
[DELAY 1000ms]

UNIX Command Pool

These commands cycle randomly between story scenes:

File System

$ ls -la
drwxr-xr-x  12 root
-rw-r--r--   1 .profile
-rw-------   1 .runcom
drwx------   3 .rhost
$ ls /etc
hosts       passwd
inittab     shadow
fstab       group
rc2.d       motd
$ ls -l /var/adm
-rw-r----- syslog    47K
-rw-r----- sulog      8K
-rw-r----- messages  12K
-rw-r----- wtmp      31K
$ pwd
/usr/operator
$ du -s /var/adm/*
94  syslog
16  sulog
24  messages
62  wtmp
$ find /etc -name '*.conf'
/etc/resolv.conf
/etc/ntp.conf
/etc/syslog.conf
/etc/uucp/Systems
$ file /bin/sh
MC68020 executable
not stripped
$ ls /dev/console
crw--w--w- 0,0 console

Process & System

$ ps -ef | head -5
  PID TTY  TIME CMD
    0 ?    0:12 sched
    1 ?    0:03 /etc/init
   42 ?    0:01 /etc/cron
   58 co   0:00 /bin/sh
$ uptime
up 47 days, 12:33, 2 users
$ who
root     console  Jan 30
operator ttyp0    Jan 31
$ uname -a
UNIX pandora 3.2 2 m68k
$ hostname
pandora
$ id
uid=100(operator)
gid=100(users)
$ date
Fri Jan 31 22:47:03 EST
$ cal
MARCH 1969
Su Mo Tu We Th Fr Sa
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 **21** 22
23 24 25 26 27 28 29
30 31

Networking

$ netstat -r
Destination    Gateway
default        10.0.1.1
10.0.1.0       pandora
127.0.0.0      localhost
$ ping 10.0.1.1
10.0.1.1 is alive
$ finger @pandora
root     tty0  Jan 30 08:47
operator ttyp0 Jan 31 22:32

Disk & Hardware

$ df -k
Filesystem  kbytes  used  avail
/dev/hd0a    71680 48320  16192
/dev/hd0d    51200 12480  33664
$ dmesg | tail -3
hd0: CDC Wren IV 72MB
fd0: 1.2MB floppy
tty0: console ready

Text Processing

$ cat /etc/motd
UNIX System V Release 3.2
pandora.local
Authorized users only.
$ head -3 /etc/passwd
root:x:0:0::/root:/bin/sh
daemon:x:1:1::/:/bin/sh
operator:x:100:100::/usr/operator
$ grep root /etc/passwd
root:x:0:0::/root:/bin/sh
$ wc -l /etc/passwd
42 /etc/passwd
$ tail -2 /var/adm/syslog
Jan 31 22:30 cron[42]: CMD
Jan 31 22:31 inetd: telnet

Misc Commands

$ echo $PATH
/bin:/usr/bin:/usr/local/bin
$ which sh
/bin/sh
$ env | head -3
HOME=/usr/operator
TERM=vt100
SHELL=/bin/sh
$ tty
/dev/ttyp0
$ stty
speed 9600 baud
$ history | tail -3
  48  ls -la
  49  ps -ef
  50  uptime

Special Effects

[COUNTER]

Animated counter from 0 to target value over ~1 second.

Example:

Memory Test: 0 → 4096K OK

[DOTS]

Text followed by animated dots (1-3 dots appearing sequentially).

Example:

Detecting drives.
Detecting drives..
Detecting drives...

[BARRAGE]

Rapid screen clear + random hex/data flood (30 frames, ~50ms each):

A4F2:08BC.4E71/[...]
D8A1:92F4.1C88/[...]
[... 28 more frames ...]

[TYPE]

Character-by-character typing with realistic human timing:

  • Fast burst within words: 45-100ms per char
  • Pause after punctuation: 250-600ms
  • Slower at word boundaries: 100-220ms

[USER]

User typing with "> " prefix (for Joshua/pandora scenes).

[INLINE]

Prompt and user input on the same line. Format: [INLINE] PROMPT: INPUT

  • Example: [INLINE] USER: DABNEY → Types "DABNEY" after "USER: " prompt on same line
  • Used in school computer scene for realistic form input

[SYSTEM]

Instant system output (no typing animation).


Notes

  • All delays are in milliseconds
  • UNIX commands cycle randomly without repeats until pool exhausted, then reset
  • Story scenes play exactly once per session in order: Boot → School → Joshua
  • Terminal continues with UNIX commands after Joshua scene completes
  • Screen dimensions: 55 columns × 13 rows (truncate overflow)