The PDP-10 - and me

306
-1

Published on

Presentation given at the Stavanger Software Developer meetup Januar 2013.

Published in: Devices & Hardware
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
306
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

The PDP-10 - and me

  1. 1. The PDP-10 (and me) Jan 15 2013 Bjørn Hell Larsen blarsen@altibox.no
  2. 2. How to get ten liters of stuff into a half-liter bottle (or eight years of hacking into an one-hour talk)
  3. 3. DECsystem-1077 Me
  4. 4. The computer world of the 80ies
  5. 5. ● Bytes are 8 bits ● Files are streams of bytes ● Integers come in various sizes ● Computers are networked ● Programs run in processes ● A program can fork() new processes ● Processes have threads ● We can send signals to processes ● File systems has links ● Commands can be piped Stuff we take for granted
  6. 6. ● DEC: Digital Equipment Corporation (aka "Digital") ● (Established 1957 by Ken Olsen (aquired 1998 by Compaq (merged 2002 with HP))) ● PDP: Programmable Data Processor - DECs main line of processors ● Notable DEC products: ○ PDP-1, PDP-8, PDP-10, PDP-11, VAX, Alpha ○ DECtape, VT100, OSF/1
  7. 7. is currently most famous for the 1977 quote "There is no reason for any individual to have a computer in their home." Ken Olsen
  8. 8. PDP-10 hardware timeline
  9. 9. PDP-10 hardware layout
  10. 10. PDP-10 peripherals
  11. 11. ● TOPS-10 (aka "Monitor") ● TENEX ● TOPS-20 ● ITS ● WAITS The PDP-10 OS lineup
  12. 12. ● Created by Bob Supnic ● Emulates ● Data General Nova, Eclipse ● Digital Equipment Corporation PDP-1, PDP-4, PDP-7, PDP-8, PDP-9, PDP-10, PDP-11, PDP-15, VAX ● GRI Corporation GRI-909, GRI-99 ● IBM 1401, 1620, 1130, 7090/7094, System 3 ● Interdata (Perkin-Elmer) 16b and 32b systems ● Hewlett-Packard 2114, 2115, 2116, 2100, 21MX, 1000 ● Honeywell H316/H516 ● MITS Altair 8800, with both 8080 and Z80 ● Royal-Mcbee LGP-30, LGP-21 ● Scientific Data Systems SDS 940 ● SWTP 6800 The SIMH emulator
  13. 13. .DIR .TYPE .COPY .DELETE .RENAME .. looks familiar, yes? A TOPS-10 command primer Not so familiar: .DETACH .ATTACH .SYSTAT .SOS .TECO
  14. 14. But C:> mkdir foo C:> cd foo C:FOO> dir becomes: .r credir Create directory: [,,foo] Created DSKC0:[42,42, FOO].SFD/PROTECTION:775 Create directory: ^Z .r setsrc *cp [,,foo] *^Z EXIT .dir %WLDDEM Directory is empty A TOPS-10 command primer
  15. 15. Booting TOPS-10 in a simulator
  16. 16. (Live demo time! Cross fingers.) Let's log in and write a program
  17. 17. that was good fun, but FORTRAN is not the reason why the PDP- 10 is a great processor. To discover the real reason, we have to dig a bit deeper. Ok,
  18. 18. BLISS
  19. 19. ● 36-bit words ● 16 general purpose 36-bit registers ● 18-bit (half-word) addressing ● Registers are locations 0-20 of the memory space ● Highly symmetric instruction set ● Unimplemented instructions are thrown to the OS and used for system calls ● Hardware byte manipulation support ● Definitively NOT a RISC architecture PDP-10 processor architecture
  20. 20. Most instructions have the format: Bit 000000000 0111 1 1111 112222222222333333 Position 012345678 9012 3 4567 890123456789012345 ________________________________________ | | | | | | | OP | AC |I| X | Y | |_________|____|_|____|__________________| - OP = operation code - AC = accumulator field - I = indirect bit - X = index field - Y = address field Instruction format
  21. 21. Some example instructions: move 1, @100 ; MOVE is the OP. AC is 1. ; @ sets the I bit. ; X is zero, Y is 100. hrrz 17, 1(3) ; HRRZ is the OP. AC is 17, ; Y = 1, X = 3, I = 0 sos foo ; SOS is OP, FOO is symbolic ; for the Y field. AC, X, I ; are 0. ________________________________________ | | | | | | | OP | AC |I| X | Y | |_________|____|_|____|__________________| - OP = operation code - AC = accumulator field - I = indirect bit - X = index field - Y = address field Instruction format
  22. 22. ● 000-077: Unimplemented User Operations ● 100-177: Floating point and Byte manipulation ● 200-277: Fixed point (36-bit integer) and subroutine calls ● 300-377: Hop, skip and jump ● 500-577: Half-word operations ● 600-677: Bit testing ● 700-777: Input/Output instructions Instruction classes
  23. 23. ● " " memory to register ● "I" immediate to register ● "M" register to memory ● "S" to self General instruction variants
  24. 24. ● MOVE - move ● MOVN - move negative ● MOVM - move magnitude ● MOVS - move swapped Specific instruction variants
  25. 25. ● MOVE 1,5000 ● MOVEI 1,5000 ● MOVEM 1,5000 ● MOVES 1,5000 ● MOVN 1,5000 ● MOVNI 1,5000 ● MOVNM 1,5000 ● MOVNS 1,5000 Example: MOVE ● MOVM 1,5000 ● MOVMI 1,5000 ● MOVMM 1,5000 ● MOVMS 1,5000 ● MOVS 1,5000 ● MOVSI 1,5000 ● MOVSM 1,5000 ● MOVSS 1,5000
  26. 26. Habxy a: R or L b: R or L x: Ones or Zero y: Variant ● HRL 1,5000 ● HRRZI 1,5000 ● HLRZM 1,5000 ● HLLOI 1,5000 Half-word moves
  27. 27. ... MOVSI 1,-N ;Initialize register 1 to -N,,0 MOVEI 2,3 ;register 2 gets the constant 3. ADDM 2,TAB(1) ;add 3 to one array element. AOBJN 1,.-1 ;increment both the index and the control. ;Loop until the ADDM has been done N times. ... N==10 TAB: BLOCK N Some example code
  28. 28. JUMP Jump never. This instruction is a no-op. JUMPL If C(AC) < 0 then PC<-E; JUMPLE If C(AC) <= 0 then PC<-E; JUMPE If C(AC) = 0 then PC<-E; JUMPN If C(AC) # 0 then PC<-E; JUMPGE If C(AC) >= 0 then PC<-E; JUMPG If C(AC) > 0 then PC<-E; JUMPA PC<-E. This is an unconditional branch. JUMP
  29. 29. CHAPTER 1 INTRODUCTION TO MACRO MACRO is the symbolic assembler program for the DECsystem-lO. The assembler reads a file of MACRO statements and composes relocatable binary machine instruction code suitable for loading by LINK, the system's linking loader. MACRO-10
  30. 30. TITLE Hello SUBTTL Print hello world three times COUNT==3 MAIN: MOVEI 1, COUNT PRINT: TTCALL 3, [ASCIZ /Hello world /] SOJG 1, PRINT EXIT END MAIN ; This is a comment Anatomy of a MACRO-10 program
  31. 31. Let's try it
  32. 32. Let's go more advanced (Live demo time again! Fingers: assume the position.)
  33. 33. ● Get a simulator ● Get some software ● Grab some manuals and RTFM ● Have fun! ● It is amazing how much ancient stuff is out there when you look around for a bit. And the old-timers are overjoyed whenever someone shows an interest Want to play yourself?
  34. 34. Dave G. Conroy PDP-10/X, running ITS ... or you could build your own
  35. 35. POPJ P,
  36. 36. Dead 28. december 2012 ● PDP-10 lover ● WAITS hacker ● Telnet implementor ● IMAP inventor ● Author of RFC4042, UTF-9 and UTF-18 Efficient Transformation Formats of Unicode RIP Mark Crispin

×