--- title: Computer Graphics on the PDP-1 author: - Leah Neukirchen - blinry's birthday barcamp 2021 date: 2021-07-07 x-compile-with: pandoc -t revealjs -s -o pdp-1-computer-graphics.html pdp-1-computer-graphics.md --variable theme=moon --- # The DEC Programmable Data Processor-1 ![](https://2k8fuf10pw8w25f6ce428ify-wpengine.netdna-ssl.com/ModernComputer/Electronic/Images/PDP-1.jpg) - available as of late 1959, only ~60 were built total - 18-bit words, 5MHz clock - default memory: 4kw = 9kb # Precision CRT Display Type 30 ::: {.container} :::: {.col} ![](https://assets.fontsinuse.com/static/use-media-items/10/9963/upto-700xauto/56702262/tumblr_mhi3ahYxQ61rm93g3o1_1280.jpeg){height=500px} :::: :::: {.col} - 16-inch random-position, point-plotting cathode ray tube - 1024x1024 resolution - no frame buffer! - single instruction API ``` dpy 720007 Display One Point Clears the light pen status bit and displays one point using bits 0 through 9 of of the AC to represent the (signed) X coordinate of the point and bits 0 through 9 of the IO as the (signed) Y coordinate. The third lowest nibble (bits 9-11) encodes the intensity (brightness) in 1's complement, where 3 is the brightest, 0 the default intensity, and 7 (-0) barely visible. ``` - Spacewar! used this display, but we'll consider a much simpler program :::: ::: # Munching Squares [Demo at Masswerk](https://www.masswerk.at/minskytron/?version=munchingsquares) # The Code: Jackson Wright, 1962 ``` msq, lat ; Load AC from Test Word switches sas msv ; Skip next instruction if C(AC) = C(Y), msv = 777777 sza i ; Skip on ZERO (+0) AC law 2345 ; Load the AC with the number N add 7 ; Add C(Y) to C(AC) dac 7 ; Deposit C(AC) in Y rcl 9s ; Rotate combined AC & IO left 9s = 777 xor 7 ; Exclusive OR C(Y) with C(AC) dpy-i+300 ; Display One Point jmp msq ; Take next instruction from Y msv, 777777 ``` # Later versions for the PDP-10 [HAKMEM - Artificial Intelligence Memo No. 239](https://interglacial.com/~sburke/stuff/hakmem.html)
HAKMEM Item 2: ``` DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 ``` HAKMEM Item 3 (Schroeppel):
Munching squares is just views of the graph Y = X XOR T for consecutive values for T = time.
# Munching squares in tixy # Munching squares on your Linux computer ![](https://l2.re/-k-tNh) ``` % /usr/libexec/xscreensaver/munch ``` # Thank you! Sources: - - - -