diff --git a/build/lisp.tcl b/build/lisp.tcl index e4643e4d..e4b3e500 100644 --- a/build/lisp.tcl +++ b/build/lisp.tcl @@ -717,6 +717,12 @@ respond "_" "games;_hibou;itster\r" respond "_" "\032" type ":kill\r" +# Knight TV Spacewar +respond "*" ":lisp gjd; sine lisp\r" +expect ":KILL" +respond "*" ":midas games;ts tvwar_spcwar; tvwar\r" +expect ":KILL" + # Kermit respond "*" ":link math;defset fasl,lisp;\r" respond "*" ":complr\r" diff --git a/build/misc.tcl b/build/misc.tcl index 614363a4..12a574e7 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -563,6 +563,8 @@ respond "*" ":job swr\r" respond "*" ":load gjd; swr bin\r" respond "*" "first\033,last\033\060ygjd; swr ships\r" respond "*" ":kill\r" +respond "*" ":midas games;ts tvwar_spcwar; tvwar\r" +expect ":KILL" # MLIFE respond "*" ":midas;324 games;ts mlife_rwg;mlife\r" diff --git a/doc/games.md b/doc/games.md index 9865e63a..abf460a9 100644 --- a/doc/games.md +++ b/doc/games.md @@ -74,6 +74,10 @@ instructions, see CHPROG; CHESS2 ORDER. Star Trek simulation. To play this, type `:games;trek`. +### TVWAR + +Knight TV adaptation of Spacewar. To play this, type `:games;tvwar`. + ### Wumpus Enter a cave and hunt a creature called a wumpus. To play this, type diff --git a/doc/programs.md b/doc/programs.md index b9705cbb..d00d947a 100644 --- a/doc/programs.md +++ b/doc/programs.md @@ -327,6 +327,7 @@ - TV-11, Knight TV PDP-11. - TVEDIT, paint program. - TVREAD, read a bitmap file and display on TV. +- TVWAR, Knight TV Spacewar. - TVWRIT, write TV display contents as bitmap file. - TTLOC, advertises physical location of logged in users. - TTY, displays TTYs with UNAME/JNAME/CORE and other info. diff --git a/src/gjd/sine.lisp b/src/gjd/sine.lisp new file mode 100644 index 00000000..f563fa59 --- /dev/null +++ b/src/gjd/sine.lisp @@ -0,0 +1,19 @@ +(comment) ;-*- lisp -*- + +(eval-when (eval load compile) + (load '((liblsp) lispm fasl))) + +(defvar radius 255.) +(defvar steps 512.) +(defvar file "GJD; SINE BINARY") + +(defvar 2pi (quotient (times 2 3.141592654) steps)) + +(defun round (x) + (fix (plus x 0.5))) + +(with-open-file (f file '(single fixnum out)) + (dotimes (i steps) + (out f (round (times radius (sin (times i 2pi))))))) + +(quit)