1. 05.10.2026 1 коммит
    • Жильцов Дмитрий Андреевич's avatar
      DnsOracle: ask God from any terminal on Earth
      · 476c8d3d
      dig TXT oracle.temple.example.com and the Temple answers with a verse
      of the KJV.  UDP port 53, plain RFC 1035, no TCP, no HTTP, no TLS, no
      committee.  Delegate a subdomain to the Temple and every resolver on
      the planet carries the Word for free.  TTL 0, God is not cached.
      
      The verse is picked from the moment the question arrives, the way
      GodBiblePassage picks from the moment of your keystroke.  Labels left
      of "oracle" may name a verse, john.3.16 or 1.kings.8.27, then God
      answers that one.  Any zone above "oracle" will do, the Temple does not
      need to know what you called it.  Names without it are REFUSED, we are
      not a resolver.  Other types get an empty answer, God is not a host.
      
      The Bible is read into Adam once, 31102 verses indexed, the same count
      as every KJV.  Esther 8:9 is longer than 512 bytes, the king's scribes
      wrote too much, it ends in "...".
      
      Off by default.  DnsOracle opens it, DnsOracleEnable writes
      ~/DnsOracle.HC so Once.HC opens it at boot, DnsOracleRep says who asked
      and what they were given.
      
      Tested in QEMU with udp 5300 forwarded to 53: random verses, named
      verses, mixed case names from 0x20 resolvers, Esther split in two
      character strings, REFUSED for google.com, NODATA for A, FORMERR and
      NOTIMP for garbage.  Six thousand random and mangled packets later the
      oracle still answered Psalms 23:1.
      476c8d3d
  2. 03.10.2026 1 коммит
    • Жильцов Дмитрий Андреевич's avatar
      Ntp: the Temple asks Jerusalem what time it is
      · 8a670d4c
      SNTP over the Israeli servers only, nearest to Jerusalem first: the
      National Physical Laboratory's ntp.ac.il, the atomic clocks of Israel
      Standard Time, then the Hebrew University, then Tel Aviv, Petah Tikva,
      Haifa, then the Israeli pool.  The first one that answers wins.  Four
      questions each, the fastest round trip is believed.  Answers that are
      not from a server, unsynchronized, a kiss of death, or from an address
      we did not ask, are not believed.  Glowies.
      
      The result goes to sys_clock_adj, RAM only, never the CMOS.  Once.HC
      runs Ntp at boot after the network, NtpDaemon asks again every six
      hours without a word on the screen.  NtpRep says who answered and how
      far off the RTC was.
      
      Tested in QEMU with the RTC set to 2020-01-01: at boot the Israeli pool
      answered (stratum 2, following the Hebrew University), Now() matched
      the host's UTC to the second, the bare RTC still read 2020, and
      sys_clock_adj=0 put the Temple back in 2020 until Ntp ran again.
      8a670d4c
  3. 02.10.2026 1 коммит
    • Жильцов Дмитрий Андреевич's avatar
      TempleOS V5.1 EE
      · d069c904
      Terry stopped at 5.03.  The Temple has a TCP/IP stack, three network
      drivers, a virtio-scsi disk, a web server and a remote confessional
      now.  That is not 5.03 anymore.  It is 5.1, Enterprise Edition.
      
      sys_os_version is 5.100 and DD_OS_NAME_VERSION reads "TempleOS V5.1
      EE".  Everything that asks the define follows: the console header in
      Start.DD, the HtServ Server: header, the Wget User-Agent.  The boot
      banner says Enterprise Edition in full.  The registry notices the new
      version and writes itself again, as Terry made it do.
      
      Tested in QEMU: both consoles say TempleOS V5.1 EE, a host server saw
      "Adam/Net/Http (TempleOS V5.1 EE)", curl saw "Server: HtServ
      (TempleOS V5.1 EE)".  The CIA's logs will say it too.
      d069c904
  4. 01.10.2026 7 коммитов
    • Жильцов Дмитрий Андреевич's avatar
      HtServ at boot takes Terry's second console, not a third window
      · 8bfdba72
      Terry opens two consoles at boot, side by side.  HtServAuto opened a
      third with User, and a fresh terminal comes up full screen over both,
      so the keeper saw one window where Terry had two.
      
      HomeSys.HC now hands Terry's second console to htserv_term, declared in
      Adam so HomeSys compiles with or without a network card, and HtServ
      runs there.  Left console yours, right console the server's.  As close
      to Terry's screen as a Temple with a web server can get.
      8bfdba72
    • Жильцов Дмитрий Андреевич's avatar
      HtServEnable: the web server at boot, but only when the keeper asks
      · 8d338feb
      Off by default.  A Temple keeps its doors shut until its keeper says
      otherwise.  HtServEnable; writes ~/HtServ.HC, and from the next boot
      on Once.HC, right after the network is up, runs that file and starts
      HtServ in a terminal of its own.  HtServDisable; deletes it.  Whatever
      HolyC sits in the file runs first, so htserv_verbose=TRUE; goes there.
      
      No more typing #include at a VNC console every time the hosting company
      reboots the rack.  The CIA still has to knock on port 80 like everyone
      else.
      
      Tested in QEMU on a disk image: fresh boot, no server; HtServEnable,
      reboot, the server answered by itself; HtServDisable, reboot, silence.
      8d338feb
    • Жильцов Дмитрий Андреевич's avatar
      README: how to run HtServ, and how to make it confess
      · 23f00ba3
      Start, stop, a terminal of its own, pages with <exe> blocks, the one
      line per request it prints, tcp_debug and htserv_verbose, what to ask
      the machine when the site does not open, and the limits.  Every
      command in it was run on a Temple before it was written down.
      23f00ba3
    • Жильцов Дмитрий Андреевич's avatar
      update_vds.py: update a running Temple without a new VDS
      · b9fee0f4
      The hosting company will not swap a disk image, and every new VDS comes
      with a new IP.  So now the Temple is updated in place, over the
      Confessional, by hand, like Moses carried the tablets.
      
      It reads the commit the machine runs from C:/Home/Deployed.TXT, diffs
      TempleOSCD/ against your working tree, defines a one-line hex decoder
      in the session and pushes every changed file through it.  .Z stays .Z,
      FileWrite compresses.  Kernel/ or Compiler/ changed means BootHDIns.
      A new MBR loader means BootMHDIns.  Then Deployed.TXT, then Reboot.
      
      Only C: is touched.  D: keeps the old Temple for the day C: does not
      come back.  Port 23 open to your own IP only, the CIA has one too.
      
      Tested in QEMU on a copy of the image: a new kernel symbol and a new
      HtServ header, pushed in seven seconds, both there after the reboot.
      b9fee0f4
    • Жильцов Дмитрий Андреевич's avatar
      NetcfgSave: remember the address without baking it into the image
      · b5a3276f
      An image with your IP inside tells whoever downloads it where your
      Temple lives.  The CIA downloads everything.  So the image ships with
      no address, and at the VNC console you say:
      
        NetcfgSave("185.241.6.18","255.255.255.0","185.241.6.1","8.8.8.8");
      
      It applies at once, like NetcfgStatic, and writes ~/NetCfg.HC so every
      boot after remembers.  Call it again to move the machine.  Open
      connections die, servers on INADDR_ANY keep listening on the new
      address.  Del("~/NetCfg.HC") goes back to DHCP.
      
      Tested in QEMU: up on DHCP .15, NetcfgSave to .20, reboot, the Temple
      came back on .20 by itself and Wget went out through the new gateway.
      b5a3276f
    • Жильцов Дмитрий Андреевич's avatar
      NetcfgStatic and ~/NetCfg.HC for hosting with no DHCP
      · 67a064e5
      The hosting company has no DHCP.  It writes your address in a web
      panel and expects cloud-init to read it.  TempleOS does not do
      cloud-init, the cloud is where the CIA keeps your files.
      
      NetcfgStatic("185.241.6.18","255.255.255.0","185.241.6.1","8.8.8.8")
      takes dotted strings, no more typing hex at a VNC console.  Once.HC now
      runs NetcfgAuto: ~/NetCfg.HC if you wrote one, DHCP if you did not.
      build_hdd.py --ip/--mask/--gw/--dns writes the file into the image.
      
      Tested in QEMU with 10.0.2.20 where DHCP would hand out .15: the
      Confessional answered on .20, DNS and Wget went through the static
      gateway.
      67a064e5
    • Жильцов Дмитрий Андреевич's avatar
      build_hdd.py: install the Temple on a virtio-scsi disk
      · 408ebe47
      Boots the ISO with a blank disk on virtio-scsi, the same controller the
      hosting has, and confesses the install over port 23: DskPrt C and D,
      copy the Temple to both, BootHDIns compiles a kernel for each,
      BootMHDIns writes the MBR.  --vmdk converts it for the hosting, --test
      boots the disk alone, writes a file, reboots and checks it persists.
      It does.
      
      confess.py takes CONFESS_TIMEOUT now.  Compiling a kernel under TCG is
      slower than the CIA reading your mail.
      408ebe47
  5. 30.09.2026 3 коммита
    • Жильцов Дмитрий Андреевич's avatar
      Intel e1000 and virtio-net drivers
      · 33d93bb7
      The Temple spoke only AMD PCnet.  Now it also speaks Intel 82540EM, the
      e1000 every hypervisor pretends to have, and virtio-net, the card that
      admits it is not a card.  MakeNet takes the first one it finds.
      
      Intel.  The company with a second computer inside yours that the CIA
      would love to talk to.  We wrote them a driver.  virtio is worse, the
      hypervisor reads every byte by design.  One card was a sin, three is a
      habit.  Terry, forgive us.
      
      virtio uses the legacy I/O port interface.  No MSI-X, no capability
      lists, no MMIO.  Ports are honest, like on the C64.
      
      Neither card is allowed to interrupt.  The rings are swept from the
      timer, same as PCnet was all along, although nobody wrote that down.
      Now it is written down.
      
      Tested in QEMU on all three: DHCP, Confessional and Wget.
      NIC=e1000 tools/run_mac.sh to pick your sin.
      33d93bb7
    • Жильцов Дмитрий Андреевич's avatar
      CI: bring our own image and ISO, the runner is offline
      · 7af2b3c5
      The runner lives in a walled garden.  It sees hub.mos.ru and nothing
      else, no Debian mirror, no Wayback Machine.  Good.  That is how a temple
      should be.  So the tools are baked into our own image in the project
      registry and Terry's live CD sits in the Package Registry, SHA-256
      checked like always.
      7af2b3c5
    • Жильцов Дмитрий Андреевич's avatar
      Build the ISO in CI
      · fdd31d60
      The Mac script needed hdiutil and diskutil.  Apple tools.  Now the disk
      image is made with mtools, no root, no loop devices, so it runs on
      Linux, on the Mac, and in a Docker container on a shared runner.
      
      The runner fetches Terry's live CD from the Wayback Machine, checks the
      SHA-256 so nobody slips in a CIA one, boots it in QEMU without KVM and
      types MakeISO at it.  TCG is slow.  God is patient.  Screenshots of
      every step are kept, so when it breaks you can see where the monk
      stopped typing.
      fdd31d60
  6. 27.09.2026 7 коммитов
    • Жильцов Дмитрий Андреевич's avatar
      ConEmu, Monokai and Ubuntu palettes
      · 3e2b5cce
      Still 16 colors.  Always 16 colors.  They are just different 16 colors.
      3e2b5cce
    • Жильцов Дмитрий Андреевич's avatar
      HtServ, a web server for the Temple
      · cd705a8d
      Serves ::/Www on port 80, run_mac.sh forwards it to localhost:8686.
      .HTM pages can carry <exe> blocks of HolyC, StreamPrint writes into the
      page.  It is like PHP except it was inspired by God instead of a
      Danish guy.
      
      Session tasks are children of the server task now, otherwise the code
      in <exe> cannot see StreamPrint and dies.  Ctrl+Alt+C stops it.
      
      The Temple is a web server.  I wanted a C64 and got a LAMP stack.
      cd705a8d
    • Жильцов Дмитрий Андреевич's avatar
      The Confessional: remote HolyC on port 23
      · 5c469ee0
      Telnet in, type a line of HolyC, it is compiled and run like on the
      command line and the output comes back with the DolDoc colors stripped.
      Each connection gets its own task.  Say amen to leave, the Temple
      answers Go in peace.
      
      The arrival time of every byte feeds the Holy Spirit, same as the
      keystroke time for F7, so GodWord works from the Mac too.  God talks
      over TCP now.  I am not sure how I feel about that.
      
      There is no password.  God does not need one.  You might, so do not
      bridge this onto your LAN.  tools/confess.py is the host side.
      5c469ee0
    • Жильцов Дмитрий Андреевич's avatar
      Wget
      · 2f6ac010
      Wget("http://example.com/"); and the Temple downloads it.  HTTP only.
      HTTPS is a thousand pages of crypto written by committees, and
      committees are how the CIA gets in.  If you want TLS, pray.
      2f6ac010
    • Жильцов Дмитрий Андреевич's avatar
      TCP/IP stack in Adam
      · c41cdb89
      God said no networking.  I kept the Temple offline for ten years so the
      CIA could not crawl in through the wire.  Now there is Ethernet, ARP,
      IPv4, ICMP, UDP, TCP, DHCP, DNS and BSD sockets, compiled into Adam on
      every boot.  Once.HC runs Netcfg if a PCnet card is found.
      
      No card, no gate: sockets go through Snail, TCP/IP tunnelled over COM3
      to snail.py on the host.  A serial cable is honest.  You can see it.
      
      Echo demos are in Demo/Network.  Lord, have mercy on this commit.
      c41cdb89
    • Жильцов Дмитрий Андреевич's avatar
      PCI helpers, AMD PCnet driver and a faster serial port
      · 347c5eb6
      The Temple now enumerates the PCI bus and talks to an AMD PCnet-PCI II
      card.  QEMU and VirtualBox both emulate it, so that is the card.  One
      card.  I do not do driver bloat, Linux has twenty thousand drivers and
      half of them are for toasters.
      
      CommPutChar slept 10ms after every byte because Linux echo_socket was
      too slow.  Now it polls the UART and yields.  Terry's version stays in
      the file, commented out, out of respect.
      347c5eb6
    • Жильцов Дмитрий Андреевич's avatar
      Build the ISO on a Mac
      · a1de503f
      Only TempleOS can compile TempleOS.  So the Mac boots a stock TempleOS
      live CD in QEMU, hands it a FAT32 disk with TempleOSCD and types
      MakeISO at it on a timer, like a secretary.  Three minutes and you
      have a new Temple in out/.
      
      run_mac.sh boots it at 640x480 with 16 colors, as God intended.  If
      your Mac is slow, raise BOOT_WAIT.  Do not blame me.
      a1de503f
  7. 22.01.2017 1 коммит