Digital PDFs
Documents
Guest
Register
Log In
DEC-12-SE2B-D
December 2000
106 pages
Original
3.0MB
view
download
Document:
dec-12-se2b-d
Order Number:
DEC-12-SE2B-D
Revision:
Pages:
106
Original Filename:
https://svn.so-much-stuff.com/svn/trunk/pdp8/src/dec/dec-12-se2/dec-12-se2b-d.pdf
OCR Text
Digital Equipment Corporation Maynard, Massachusetts PDP-I 2 LAP6-DIAL PDP-12 LAP 6-DIAL PROGRAMMER’S REFERENCE MANUAL For additional copies o f this document, order No. DEC-12-SEZB-D from Program Library, Digital Equipment Corp., Maynard, Mass. 01754 Price $1 .OO DIGITAL EQUIPMENT CORPORATION MAYNARD, MASSACHUSETTS Copyright @ 1 9 6 9 by D i g i t a l Equipment C o r p o r a t i o n The f o l l o w i n g a r e t r a d e m a r k s of D i g i t a l Equipment Corporation, Maynard, Massachusetts: DEC PDP FLIP CHIP DIGITAL FOCAL COMPUTER LAB LAP6-DIAL i s an e d i t o r , f i l i n g s y s t e m and a s s e m b l e s f o r u s e w i t h t h e PDP-12 computer. The E d i t o r and f i l i n g p o r t i o n are d e r i v e d from t h e b a s i c L I N C program LAP6l by Mary A l l e n Wilkes o f Washington University. The assembly p o r t i o n i s d e r i v e d from several programs used f o r t h e PDP-8 computer i n c l u d i n g PAL-D'. The D i g i t a l Equipment C o r p o r a t i o n w i s h e s t o e x p r e s s t o t h e author, Mary A l l e n Wilkes (Clark), and t h e Computer Research L a b o r a t o r y of Washington U n i v e r s i t y , S t . L o u i s , M i s s o u r i , i t s a p p r e c i a t i o n f o r t h e development s e t f o r t h i n LAP6 as w e l l as i t s t h a n k s f o r p e r m i s s i o n t o u s e p a r t s of t h e LAP6 program. IM. A. Wilkes, LAP6 Handbook, Computer Research L a b o r a t o r y Tech. Rep. No. 2 , Washington U n i v e r s i t y , S t . L o u i s , May 1, 1967. 2 PAL-D A s s e m b l e r Programmer's R e f e r e n c e Manual DEC-D8-ASAA-D. CONTENTS Page C h a p t e r 1 USING DIAL 1.1 Introduction 1-1 1.2 System D e s c r i p t i o n 1-1 1.3 System O p e r a t i o n 1-2 1.4 Source Programs 1-3 1.5 Current Line 1-3 1.6 Line C a l l s 1-4 1.7 Files 1-5 1.8 Commands 1-6 Chapter 2 THE E D I T O R 2.1 Using t h e E d i t i n g Cursor 2-1 2.2 Character Editing 2-2 2.3 C u r r e n t Line Deletion 2-3 2.4 Large S e c t i o n D e l e t i o n 2-4 2.5 C u r r e n t Line Formatting 2-6 2.6 Handling Large Programs 2-8 2.7 Assembly B u f f e r s 2-8 2.8 Use of EXIT 2-9 2.9 Leftmost Cursor P o s i t i o n 2-9 Chapter 3 ASSEMBLY LANGUAGE 3.1 S t a t e m e n t Syntax 3-1 3.2 Symbols 3-3 3.3 Numbers 3-7 3.4 Expressions 3-7 Page 3.5 Address Assignments 3-8 3.6 Pseudo-operators 3-11 Chapter 4 ASSEMBLY PROGRAMS 4.1 A s s e m b l e Program 4-1 4.2 L i s t Program 4-1 4.3 Quick L i s t 4-3 4.4 Save B i n a r y 4-6 4.5 Load B i n a r y 4-8 4.6 Assembly O p e r a t i o n Notes 4-8 Chapter 5 U T I L I T Y PROGRAMS AND COMMANDS 5.1 Save Program 5-1 5.2 A d d Program 5-1 5.3 C l e a r Working A r e a 5-2 5.4 D i s p l a y Index 5-2 5.5 P r i n t Index 5-3 5.6 P r i n t Source 5-3 5.7 Exit 5-4 5.8 U s e r ' s Monitor Command 5-4 5.9 Peripheral Interchange P r o g r a m (PIP) 5-5 Appendix A I N I T I A L STARTING PROCEDURE A-l Appendix B ASSEMBLY ERROR MESSAGES B-1 Appendix c SUMMARIES Page C.l Commands c-1 C.2 Pseudo-operators c-2 C.3 Character Set c-9 C.4 Instructions (PDP-8 and LINC modes) c-11 C.5 Operators and Special Symbols C-16 C.6 D I A L Tape Allocation C-17 C.7 Sample Program C-18 C.8 Work Flow in the DIAL System c-21 CHAPTER 1 U S I N G DIAL 1.1 INTRODUCTION LAP6-DIAL PDP-12 ( h e r e a f t e r r e f e r r e d t o as D I A L f o r b r e v i t y ) p r o v i d e s t h e u s e r w i t h a keyboard o p e r a t i n g s y s t e m t h a t i n c l u d e s e d i t i n g , a s s e m b l i n g , and f i l e h a n d l i n g c a p a b i l i t i e s . An i n t e r a c t i v e CRT d i s p l a y p e r m i t s q u i c k u s e r r e s p o n s e ; a f i l e Index and p e r i p h e r a l d e v i c e i n t e r c h a n g e program f a c i l i t a t e f i l e m a n i p u l a t i o n . The m i n i - mum hardware c o n f i g u r a t i o n f o r u s i n g D I A L i s a PDP-12B s y s t e m , composed o f : a. 4096-word 1 2 - b i t , 1 . 6 us Core Memory b. TC12 LINCtape Automatic C o n t r o l C. Two TU55 Magnetic Tape T r a n s p o r t s d. V C 1 2 LINCscope C o n t r o l and C h a r a c t e r B u f f e r e. V R 1 2 7 " x 9 " CRT D i s p l a y f. ASR33 T e l e t y p e w r i t e r (Scope) I t s h o u l d be n o t e d , however, t h a t t h e D I A L c h a r a c t e r E d i t o r i s d e s i g n e d t o be o p e r a t e d w i t h a n A D 1 2 A n a l o g - t o - D i g i t a l Converter and M u l t i p l e x e r . 1.2 SYSTEM D E S C R I P T I O N T h e D I A L system i s p r o v i d e d t o t h e u s e r on LINCtape.' Each t a p e contains : 1. 1 A r e s e r v e d a r e a o c c u p i e d by D I A L A LINCtape c o n t a i n s 5 1 2 10 b l o c k s of 2 5 6 1 2 - b i t words e a c h . 1-1 2. A Working A r e a f o r temporary s t o r a g e of u s e r f i l e s 3. A f i l e area f o r permanent s t o r a g e o f u s e r f i l e s The D I A L area o f t h e t a p e c o n t a i n s t h e D I A L E d i t o r , Assembly and u t i l i t y programs, and a f i l e I n d e x . The I n d e x s t o r e s t h e name, s t a r t i n g b l o c k number, and l e n g t h i n b l o c k s o f e a c h s t o r e d f i l e . U s e r programs a r e s a v e d a s named f i l e s i n t h e f i l e a r e a o f t h e s y s t e m tape. D I A L t a p e a l l o c a t i o n i s d e t a i l e d i n Appendix C . The PDP-12 i n c l u d e s a d i s p l a y f o r v i e w i n g source programs i n t h e Working A r e a . Up t o 1 7 l i n e s w i t h 40 c h a r a c t e r s p e r l i n e can be d i s p l a y e d a t a t i m e on t h e s c o p e . I n t h e e d i t mode, any p o r t i o n o f a program i n t h e Working Area c a n be d i s p l a y e d by a n a p p r o p r i a t e l i n e c a l l . 1.3 SYSTEM OPERATION A LINCtape c o n t a i n i n g D I A L must be d e s i g n a t e d as t h e s y s t e m t a p e and a s s i g n e d t o t a p e t r a n s p o r t fl. Some D I A L o p e r a t i o n s may be performed w i t h o n l y one LINCtape c o n t a i n i n g D I A L , b u t many p r o c e d u r e s , s u c h as a s s e m b l i n g programs, r e q u i r e two t a p e s . M o s t e f f i c i e n t operation i s a c h i e v e d when b o t h t a p e s c o n t a i n D I A L . When t h e s y s t e m i s s t a r t e d (see Appendix A ) , it a u t o m a t i c a l l y e n t e r s t h e e d i t mode. program may be t y p e d i n v i a t h e T e l e t y p e keyboard. A source The program w i l l r e s i d e i n t h e Working A r e a and w i l l be d i s p l a y e d on t h e s c o p e character-by-character as i t i s e n t e r e d . The D I A L E d i t o r may b e u s e d t o a d d , modify, o r d e l e t e c h a r a c t e r s , l i n e s , o r l a r g e s e c t i o n s of t h e program. A command may be i s s u e d a l s o v i a t h e T e l e t y p e keyboard t o a s y s t e m program. When c a l l e d , t h e Monitor w r i t e s o u t i t s b u f f e r 1-2 p o i n t e r s and i s r e p l a c e d by t h e c a l l e d program. When t h e s y s t e m p r o - gram o p e r a t i o n i s completed, t h e Monitor i s a u t o m a t i c a l l y c a l l e d back i n t o c o r e and r e t r i e v e s i t s b u f f e r p o i n t e r s . The r e s t of t h i s c h a p t e r d e t a i l s b a s i c c o n c e p t s and t e r m i n o l o g y of t h e D I A L system. 1.4 SOURCE PROGRAMS A s o u r c e program i s a group o f l i n e s of program i n p u t v i a t h e key- board. Using D I A L , t h e program c a n be a l t e r e d w i t h t h e E d i t o r , s t o r e d i n a named f i l e , o r l i s t e d on t h e s c o p e o r T e l e t y p e keyboard. A line number (1 - 7 7 7 7 8 ) a p p e a r s t o t h e l e f t of e a c h l i n e on t h e s c o p e and i n d i c a t e s t h e s e q u e n t i a l l o c a t i o n of t h a t l i n e i n t h e s o u r c e . The programs a r e c o l l e c t e d i n b l o c k s o f memory; e a c h b l o c k c o n t a i n s 51210 keyboard c h a r a c t e r s . input t o DIAL. Up t o 6 4 b l o c k s of s o u r c e program c a n be A s b l o c k s are f i l l e d , t h e y are saved on t h e D I A L t a p e i n t h e s o u r c e program Working A r e a w h i c h s t a r t s a t b l o c k 37g (see t a p e fl i n Appendix C ) . edited. Only t h e program i n t h e Working A r e a can be I f s o u r c e program i n p u t e x c e e d s l o o 8 b l o c k s or 77768 l i n e s , t h e s i z e of t h e s o u r c e program must be r e d u c e d o r t h e program can be d i v i d e d i n t o two o r more p a r t s by u s i n g t h e A s s e m b l e r pseudo-ops SAVSYM and LODSYM, 1.5 e x p l a i n e d i n Appendix C.2. C U R N N T LINE Every s o u r c e d i s p l a y h a s a c u r r e n t l i n e number. t h e l a s t l i n e number on t h e d i s p l a y . By d e f i n i t i o n , it is The c u r r e n t l i n e i s n o t e d by an i n d i c a t o r ( 2 d a s h e s ) on t h e r i g h t - h a n d s i d e of t h e s c o p e on t h e same 1-3 d i s p l a y l i n e as t h e c u r r e n t l i n e . The number 1 a p p e a r s as t h e c u r - r e n t l i n e number whenever t h e Working A r e a h a s been c l e a r e d . ' Each t i m e RETURN i s t y p e d t o t e r m i n a t e a s o u r c e l i n e , t h e n e x t s e q u e n t i a l c u r r e n t l i n e number a p p e a r s on t h e s c o p e . From 1 t o 17* l i n e s c a n be d i s p l a y e d a t a t i m e on t h e s c o p e , a s d e t e r m i n e d by t h e s e t t i n g o f A/D knob 7. A f t e r knob 7 h a s been s e t and t h a t number of l i n e s i s p r e s e n t on t h e s c o p e , an a d d i t i o n a l l i n e i s added a t t h e b o t t o m , c a u s i n g t h e lowest numbered l i n e t o b e removed from t h e t o p of t h e s c o p e , t h e r e b y m a i n t a i n i n g a c o n s t a n t number of l i n e s on t h e d i s p l a y . 1.6 L I N E CALLS When u s i n g DIAL, any l i n e i n t h e source program can b e d e s i g n a t e d as the current line. B y i s s u i n g a l i n e c a l l , a n o t h e r s e c t i o n of t h e s o u r c e program w i l l be d i s p l a y e d on t h e s c o p e w i t h a new l i n e as t h e cuxrent l i n e . T o o b t a i n a new c u r r e n t l i n e , u s e e i t h e r of t h e f o l l o w i n g methods : 1. Type +nJ where n i s t h e number of t h e l i n e t o b e t h e new c u r r e n t l i n e . The r i g h t arrow i n d i c a t e s p r e s s i n g t h e L I N E FEED key. The d i s p l a y w i l l now be p o s i t i o n e d w i t h l i n e n as t h e l a s t l i n e d i s p l a y e d . 2. Type ALTMODE and one o f t h e f o l l o w i n g k e y s : 'When o n l y l i n e 1 i s s e e n on t h e s c o p e a t s t a r t u p , i t may m e r e l y i n d i c a t e t h a t t h e s o u r c e program h a s been p o s i t i o n e d t o l i n e 1 and t h e Working A r e a i s n o t c l e a r . 1-4 key action 1 Reposition the display forward one frame 2 Reposition the display forward one line Q Reposition the display backward one frame W Reposition the display backward one line These ALTMODE key combinations must be the first characters on a new line. The last line of the source program can be designated as the current line by requesting a line number greater than the last line number. Similarly, the first line of the source program can be the current line by calling line JY or line 7 7 7 7 . 1.7 FILES The D I A L system tapes are file oriented. A program, either source or binary, is saved as a file in contiguous blocks of tape. files require a header block for pointers. Binary Every tape contains a file Index for the binary and/or source programs on that tape. DIAL file entries occupy blocks g through 2 6 7 and blocks 47j3 through 777. Blocks 3 4 6 and 3 4 7 contain the file Index. names, starting block, and length in blocks. The Index records file When a file is entered, it is given a name which must be 1 to 8 displayable keyboard characters in length, of which at least one is non-numeric. The charac- ters slash, question mark, and comma should not be used. Only spaces in the middle or at the end are considered to be part of the'name; leading spaces are ignored. Any name in the Index can describe a 1-5 s o u r c e and a b i n a r y program, t h e r e b y d o u b l i n g t h e number of p o s s i b l e entries. Because a f u l l I n d e x can accommodate 6 3 d i f f e r e n t names, up t o 1 2 6 s e p a r a t e f i l e e n t r i e s c a n be s t o r e d . When a f i l e i s b e i n g s a v e d , t h e unused f i l e s p a c e n e a r e s t t h e I n d e x w i t h i n t h e r e s e r v e d area t h a t i s l a r g e enough t o c o n t a i n t h e f i l e b e i n g s a v e d i s t h e n e x t area u s e d . Thus, t h e l o c a t i o n of e n t r i e s on t h e t a p e can be c o n t r o l l e d by t h e i r o r d e r o f f i l i n g . T o minimize t a p e movement, t h e m o s t f r e q u e n t l y u s e d f i l e s s h o u l d be p l a c e d n e a r e s t t o blocks 346 1.8 - 347 d u r i n g f i l e assignment. COMMANDS The DIAL programs are r e q u e s t e d t h r o u g h D I A L Monitor Commands. To i s s u e a command: 1. Press L I N E FEED and observe r i g h t arrow on t h e s c o p e 2. Type t h e command 3. Press RETURN I l l e g a l commands are i g n o r e d and e r a s e d from t h e s c o p e . The Monitor Commands are summarized i n t h e f o l l o w i n g t a b l e and treated i n greater d e t a i l i n later chapters. I n t h i s manual, a refer- e n c e t o u n i t (a means t h e e i g h t h c h a n n e l of t h e TU55 L I N C t a p e t r a n s port. I t e m s i n p a r e n t h e s e s i n t h e following t a b l e are o p t i o n a l and, i f o m i t t e d , t h e u s e r ' s program t h a t w a s m o s t r e c e n t l y m a n i p u l a t e d i s used. 1-6 Command Function +AS ( N , U ) +LO Assemble (U=fl,l) Load B i n a r y (N,U) Assemble and L i s t ( U = f l , l ) Assemble and Q u i c k L i s t (U=g,l) P r i n t Source Save B i n a r y +SP N , U Save Program ( S o u r c e ) +AP ( L , L , ) N , U o r B,U Add Program ( S o u r c e ) D i s p l a y Index P r i n t Index 4CL C l e a r Working A r e a +PI Peripheral Interchange Exit U s e r ' s M o n i t o r Command Legend: N = F i l e name U = Tape u n i t L = L i n e number M = S t a r t Mode ( L f o r L I N C or P f o r PDP-8) A = Address ( 5 d i g i t s - used o n l y i f mode i s s p e c i f i e d ) B = Tape b l o c k number x = C h a r a c t e r i n Accumulator ( ) = Optional parameter The meanings of s p e c i a l symbols u s e d i n t h i s manual are: + 3 Press LINE FEED key 1-7 Press RETURN key I f a l e g a l Monitor Command i s i s s u e d , b u t can n o t be honored ( e . g . , program n o t on t h e t a p e ) NO i s d i s p l a y e d on t h e s c o p e . t o r e t u r n t o DIAL. Press RETURN I f no u n i t i s s p e c i f i e d , J ils assumed. commands A S , L I , QL, AND SB r e q u i r e t w o L I N C t a p e s . o p e r a t i o n also r e q u i r e s t w o L I N C t a p e s . 1-8 The A binary PIP CHAPTER 2 THE EDITOR 2.1 U S I N G THE E D I T I N G CURSOR D I A L p r o v i d e s a p o w e r f u l and f l e x i b l e c h a r a c t e r E d i t o r w h i c h i s con- t r o l l e d by a c u r s o r t h a t a p p e a r s on t h e s c o p e w i t h t h e t e x t . Dele- t i o n of a s i n g l e c h a r a c t e r , t h e c u r r e n t l i n e , o r an e n t i r e p o r t i o n of t h e d i s p l a y , and a d d i t i o n of t e x t a t any l o c a t i o n i n t h e program a r e f e a t u r e s of t h e E d i t o r . The e d i t i n g c u r s o r a p p e a r s on t h e s c o p e as an i n v e r t e d T (a) which moves i n i t s own a l l e y below a l i n e of t e x t and can s c a n up t o 256 c h a r a c t e r s back from t h e l a s t scope c h a r a c t e r i n a d i s p l a y . The exact l o c a t i o n of t h e c u r s o r i s d e t e r m i n e d by t h e s e t t i n g o f A/D knob 3 . T h a t s e t t i n g c o n t r o l s how many s p a c e s back rrom t h e l a s t character on t h e scope t h e c u r s o r i s t o be p l a c e d . A f t e r the cursor h a s been s e t , i t w i l l move a l o n g w i t h t h e t e x t a t t h a t number of s p a c e s from t h e end of t h e t e x t . A t any t i m e t h e l o c a t i o n of t h e c u r s o r may be changed by simply r o t a t i n g knob 3 . R o t a t i n g t h e knob c l o c k w i s e moves t h e c u r s o r t o t h e r i g h t a l o n g t h e t e x t . When t h e end of a l i n e i s r e a c h e d , t h e c u r s o r advances t o t h e l e f t of t h e next l i n e . S i m i l a r l y , r o t a t i n g t h e knob c o u n t e r c l o d w i s e moves t h e cursor t o t h e l e f t along t h e t e x t . F o r normal i n p u t of d a t a , knob 3 i s r o t a t e d a l l t h e way t o t h e right. A s each character i s e n t e r e d , t h e c u r s o r f o l l o w s a l o n g . When a m i s t a k e h a s been n o t e d i n t h e p r e v i o u s t e x t , t h e c u r s o r i s 2-1 u s e d t o i n d i c a t e where t h e c o r r e c t i o n i s t o be made. After t h e cor- r e c t i o n h a s been c o m p l e t e d , knob 3 i s a g a i n r o t a t e d a l l t h e way t o t h e r i g h t and i n p u t c o n t i n u e d . Monitor Commands and l i n e c a l l s c a n be i s s u e d o n l y when t h e c u r s o r i s l o c a t e d a t t h e s t a r t of a new l i n e . Turn knob 3 a l l t h e wav t o t h e r i g h t and p r e s s t h e RETURN key b e f o r e i s s u i n g a Monitor Command or a l i n e c a l l t o locate t h e c u r s o r c o r r e c t l y . A/D knob 7 c o n t r o l s t h e maximum number of l i n e s d i s p l a y e d a t a t i m e . By r o t a t i n g knob 7, from 1 t o 17 l i n e s c a n be d i s p l a y e d on t h e 8 s c o p e , up t o a maximum of 256 c h a r a c t e r s . For a PDP-12B s y s t e m , t h e R i g h t and L e f t S w i t c h e s a r e u s e d i n s t e a d o f knobs 7 and 3 r e s p e c t i v e l y . The s e t t i n g of R i g h t S w i t c h e s 8-11 d e t e r m i n e s t h e maximum number o f l i n e s d i s p l a y e d . The L e f t S w i t c h e s c a n be s e t t o v a l u e s from 1 t o 2047 t o d e t e r m i n e t h e p o s i t i o n o f the c u r s o r . The v a l u e of t h e s w i t c h e s l o c a t e s t h e c u r s o r t h a t many c h a r a c t e r s from t h e end of t h e t e x t . 2.2 CHARACTER EDITING A single texr c h a r a c t e 3 may be d e l e t e d o r added a t any p o i n t i n t h e displayed t e x t . To d e l e t e a c h a r a c t e r , t u r n knob 3 t o ' l o c a t e t h e c u r s o r u n d e r t h a t C h a r a c t e r and t y p e RUBOUT. The c h a r a c t e r w i l l be removed and t h e rest of t h e l i n e and the cursor will move one char- acter t o t h e l e f t . I n t h e f o l l o w i n g example, t h e l e t t e r D i s d e l e t e d f r o m l i n e 4. 'To i n s e r t a l i n e a f t e r l i n e n (1) i s s u e l i n e c a l l for l i n e n and i n s e r t new l i n e as t h e c u r r e n t l i n e ; o r (2) p o s i t i o n t h e c u r s o r t o t h e l a s t character p o s i t i o n of l i n e n ( i . e . , t h e b l a n k r e p r e s e n t i n g RETURN) and t y p e t h e new l i n e , i n c l u d i n g i t s RETURN. 2-2 before ( p r e s s RUBOUT) after 4 JMP TAG 11, I n t h e same manner, c h a r a c t e r s may be i n s e r t e d i n a l i n e of t e x t t o t h e r i g h t of t h e character above t h e c u r s o r . After typing i n the a d d i t i o n s , t h e c u r s o r moves one c h a r a c t e r t o t h e r i g h t for each char- acter t h a t i s inserted. The characters AD are added t o l i n e 2 below. before 2 T I 20 & after 2 TAD I 2 0 ( t y p e AD) & scope. A s o u r c e d i s p l a y always h a s a c u r r e n t l i n e number and is so d e n o t e d by t h e h o r i z o n t a l i n d i c a t o r a t t h e f a r r i g h t of t h e scope. The c u r r e n t l i n e of a program may be d e l e t e d a t any t i m e by s t r i k i n g t h e keys ALTMODE and D. operation. Only t h e c u r r e n t l i n e i s removed by t h i s Line 5 of t h e s o u r c e d i s p l a y i s o m i t t e d i n t h e f o l l o w i n g example. 2-3 Any l i n e of t h e source program may be d i s p l a y e d as t h e c u r r e n t l i n e . The two ways t o c a l l t h e c u r r e n t l i n e d e s c r i b e d i n s e c t i o n 1.6 used w i t h t h e E d i t o r . are B o t h r e q u i r e t h e c u r s o r t o be t h e f i r s t c h a r - a c t e r on a new c u r r e n t l i n e . 2.4 LARGE SECTION DELETION To d e l e t e a l a r g e s e c t i o n of t h e d i s p l a y e d t e x t , t h e E d i t o r h a s a command t h a t p e r m i t s d e l e t i o n of a l l t h e d i s p l a y e d t e x t t o t h e r i g h t or l e f t o f t h e c u r s o r . By s e t t i n g t h e c u r s o r a t t h e l a s t l e t t e r t o be d e l e t e d from a s t r i n g of t e x t t o i t s l e f t and t y p i n g t h e keys ALTMODE and L , t h e c h a r a c t e r above t h e c i l r s o r and a l l t h e c h a r a c t e r s t o i t s l e f t on p r e c e d i n g l i n e s o f t h e d i s p l a y a r e d e l e t e d . When t h e d e l e t e l e f t o p e r a t i o n i s p e r f o r m e d , t h e c h a r a c t e r s on t h e l i n e t o t h e r i g h t of t h e c u r s o r and s u f f i c i e n t l i n e s a f t e r i t are d i s p l a y e d t o fill t h e number of l i n e s d e f i n e d by knob 7 . The c u r s o r i s l o c a t e d t h e same number o f s p a c e s from t h e end of t h e t e x t as i t had been p r i o r t o t h e d e l e t e l e f t command. characters on l i n e s 1 and 2 a r e d e l e t e d . 2-4 I n t h e f o l l o w i n g example, a l l To d e l e t e a l a r g e s e c t i o n of code: 1. Turn knob 3 a l l t h e way t o t h e r i g h t . 2. Turn knob 7 a l l t h e way t o t h e r i g h t . 3. Type a l i n e c a l l s o t h e l a s t l i n e t o b e d e l e t e d i s the current l i n e . 4. Type ALTMODE and L a s needed u n t i l t h e f i r s t l i n e of t h e s e c t i o n of code t o be d e l e t e d a p p e a r s on t h e scope. 5. Type ALTMODE and D t o d e l e t e t h e program t h r o u g h that line. Typing t h e k e y s ALTMODE and R p e r f o r m s a d e l e t e - r i g h t o p e r a t i o n , removing t h e c h a r a c t e r above t h e c u r s o r and a l l t h e c h a r a c t e r s t o i t s r i g h t on s u c c e e d i n g l i n e s of t h e d i s p l a y . The r e m a i n i n g t e x t i s r e d i s p l a y e d w i t h enough p r e c e d i n g l i n e s t o s a t i s f y t h e knob 7 d i s - 2-5 p l a y e d l i n e number r e q u i r e m e n t . The c u r s o r i s p o s i t i o n e d t h e s a m e number of s p a c e s from t h e new end of t h e t e x t . In t h e following example, t h e c u r s o r i s l o c a t e d e i g h t characters from t h e end of t h e (Remember t h a t t a b s and c a r r i a g e r e t u r n c o u n t as one c h a r a c t e r text. each.) 2.5 CURRENT L I N E FORMATTING When a new l i n e i s t y p e d i n as t h e c u r r e n t l i n e of t h e d i s p l a y e d t e x t , i t i s a u t o m a t i c a l l y formatted by t h e E d i t o r . The t e x t l i n e i s c o n s i d e r e d t o be composed of 3 f i e l d s , e a c h w i t h a n a l l o t t e d number 2-6 of d i s p l a y a b l e l i n e s p a c e s . The f i r s t 8 s p a c e s are p r o v i d e d f o r t h e t a g f i e l d , t h e n e x t 1 6 f o r t h e i n s t r u c t i o n f i e l d , and t h e l a s t 1 6 f o r t h e comment f i e l d . A h o r i z o n t a l t a b i s t a k e n as 8 s c o p e s p a c e s , When a new l i n e i s e n c o u n t e r e d , thus permitting 5 tabs per line. t h e f i r s t characters a r e d i s p l a y e d i n t h e i n s t r u c t i o n f i e l d , u n l e s s the first character w a s a slash. I f a comma i s t h e n t y p e d b e f o r e t h e s e v e n t h c h a r a c t e r i s i n p u t , t h e p r e c e d i n g c h a r a c t e r s a r e moved t o t h e t a g f i e l d and s u b s e q u e n t i n p u t i s d i s p l a y e d s t a r t i n g f r o m t h e instruction field. This o p e r a t i o n i s demonstrated w i t h t h e i n p u t l i n e TAG,ISZ 300. during TAG & after TAG, I S Z 30& I f a s l a s h i s e n c o u n t e r e d as any c h a r a c t e r b u t t h e f i r s t on a l i n e , i t i s p o s i t i o n e d i n t h e comment f i e l d a l o n g w i t h t h e c h a r a c t e r s t y p e d a f t e r it b e f o r e a c a r r i a g e r e t u r n . If a slash i s the f i r s t character of a l i n e , it i s d i s p l a y e d i n t h e t a g f i e l d . Consider t h e following user input: Keys t y p e d /L Displayed a s /L P P,/L /L P f P t a b /L /L P /L N o t e t h a t t e x t d i s p l a y e d on t h e scope and t e x t p r i n t e d on t h e T e l e t y p e by t h e commands P S , Lr, o r QL w i l l have t h e same f o r m a t . 2-7 2.6 H A N D L I N G LARGE PROGRAMS D I A L can e d i t o r a s s e m b l e programs t h a t a r e up t o 6 4 b l o c k s l o n g . (Assuming an a v e r a g e of 16 c h a r a c t e r s p e r l i n e , t h i s w i l l accommodate about 2048 l i n e s of code.) Only Monitor Commands o r d e l e t i o n s c a n be a c c e p t e d by t h e E d i t o r when t h e program i s 6 4 b l o c k s l o n g . To f a c i l i t a t e t h e p r o c e s s i n g o f programs whose s o u r c e w i l l be g r e a t e r than 64 b l o c k s , t h e program can b e e d i t e d i n two o r more s e c t i o n s 10 and t h e n combined d u r i n g Assembly by u s i n g t h e assembly pseudo-ops SAVSYM and LODSYM ( r e f e r t o Appendix C . 2 ) . I f a l i n e i s e n t e r e d when t h e Working A r e a i s f u l l , t h e l i n e i s de- l e t e d when RETURN i s t y p e d . I f any c o r r e c t i o n s a r e r e q u i r e d t o a s o u r c e o f t h a t l e n g t h b e f o r e a s s e m b l y , one whole b l o c k m u s t be del e t e d from t h e f i l e f i r s t . U s e t h e ALTMODE and L d e l e t i o n p r o c e d u r e t o remove one b l o c k from t h e program. t h i s h a s been a c c o m p l i s h e d . ) ( T h e L I N C t a p e w i l l move when U s e t h e E X I T command (see s e c t i o n 5.71, t h e n p r e s s t h e CONT key on t h e computer c o n s o l e t o p e r f o r m t h e req u i r e d e d i t i n g w h i l e m a i n t a i n i n g t h e c u r r e n t s o u r c e program. The E d i t o r w i l l n o t a c c e p t more t h a n 1 2 0 c h a r a c t e r s on a l i n e . A c a r r i a g e r e t u r n i s a u t o m a t i c a l l y g e n e r a t e d as t h e 1 2 1 s t c h a r a c t e r . T h i s 1 2 0 c h a r a c t e r l i m i t h o l d s b o t h b e f o r e and a f t e r any e d i t i n g o p e r a t i o n , s u c h a s d e l e t i n g s e v e r a l c a r r i a g e r e t u r n s t o make one long l i n e . 2.7 ASSEMBLY BUFFERS A s t h e core b u f f e r s a r e b e i n g f i l l e d , t h e E d i t o r w r i t e s them o u t on 2-8 tape. While a t a p e o p e r a t i o n i s i n p r o c e s s , up t o 2 0 a d d i t i o n a l c h a r a c t e r s may be t y p e d . The d i s p l a y w i l l n o t be u p d a t e d w i t h t h e a d d i t i o n a l c h a r a c t e r s u n t i l t h e t a p e o p e r a t i o n h a s been completed. H o w e v e r , t h e c h a r a c t e r s a r e echoed on t h e T e l e t y p e t o a s s u r e t h e user t h a t h i s i n p u t i s being accepted. If the auxiliary buffer space i s f i l l e d during a tape o p e r a t i o n , t h e E d i t o r w i l l i n d i c a t e t h i s t o t h e u s e r by n o t e c h o i n g t h e c h a r a c t e r s on t h e T e l e t y p e . 2.8 USE O F E X I T A t t h e c o n c l u s i o n o f a n e d i t i n g s e s s i o n , an E X I T command ( + E X ) ) s h o u l d b e g i v e n t o b e s u r e t h e E d i t o r h a s s a v e d i t s p o i n t e r s on t a p e , t h u s e n a b l i n g r e s u m p t i o n of t h e program a t a l a t e r t i m e . 2.9 LEFTMOST CURSOR P O S I T I O N I f t h e s e t t i n g v a l u e o f t h e c u r s o r i s e v e r g r e a t e r t h a n t h e number of c h a r a c t e r s on t h e s c o p e , t h e c u r s o r moves a l o n g a t t h e value d e t e r mined by t h e l a s t c h a r a c t e r on t h e s c o p e a t t h e t i m e t h e c u r s o r w a s set. When enough c h a r a c t e r s have been added t o e q u a l t h e c u r s o r s e t t i n g v a l u e , t h e c u r s o r jumps back from i t s p r e v i o u s v a l u e t o t h e l o c a t i o n d e t e r m i n e d by i t s a c t u a l knob 3 s e t t i n g . F o r example, i f t h e c u r s o r was s e t t o 1 0 c h a r a c t e r s from t h e end o f t h e t e x t , b u t o n l y 6 c h a r a c t e r s a r e d i s p l a y e d a t f i r s t , t h e c u r s o r w i l l jump back when f o u r more c h a r a c t e r s before ,AG,T have been added. TAD 2 0 i during after TAGTAD 2 0 i TAG,TAD 2 0 li 2-9 CHAPTER 3 ASSEMBLY LANGUAGE The DIAL Assembler processes a source program by translating mnemonic operation codes into binary codes for machine instructions, relating symbols to their numeric values, assigning absolute core addresses for data and instructions and listing the program with error messages. This section discusses the DIAL syntax and semantics. 3.1 STATEMENT SYNTAX DIAL source programs are usually prepared on a Teletype with the aid of the Editor, as a sequence of statements. Each statement is written on a single line and is terminated by a carriage return. DIAL statements can be typed in without having to adhere to a strict column format. There are four fields in a DIAL statement; they are identified by the order of appearance in the statement, and by the separating, or delimiting, character which follows or precedes the field. Statements are written in the general form: label, operator operand /comment The Assembler interprets and processes these statements, generating one or more binary instructions or data words, or performing an assembly process. A statement must contain at least one of these 3-1 f i e l d s and may c o n t a i n a11 f o u r . 1. Labels A l a b e l i s t h e s y m b o l i c name u s e d i n t h e s o u r c e program t o i d e n t i f y t h e p o s i t i o n o f t h e s t a t e m e n t i n t h e program. I f p r e s e n t , t h e l a b e l i s w r i t t e n f i r s t i n a s t a t e m e n t and t e r m i n a t e d by a comma. (see Appendix C.4) A mnemonic machine i n s t r u c t i o n o r pseudo-op (see Appendix C . 2 ) may n o t be used as a l a b e l . 2. Operators An o p e r a t o r may b e one o f t h e mnemonic machine i n s t r u c t i o n c o d e s (see Appendix C . 4 ) , o r pseudo-op c o d e s which d i r e c t s assembly p r o c e s s i n g (see S e c t i o n 3 . 5 ) . Operators are terminated w i t h a space i f an operand f o l l o w s o r w i t h a semicolon, s l a s h , o r carriage r e t u r n . Note t h a t a s e m i - c o l o n l o c a t e d by t h e Assembler anywhere i n a s t a t e m e n t , e x c e p t i n a comment, w i l l t e r m i n a t e t h e l i n e a t t h a t l o c a t i o n and i n c r e m e n t t h e p r o g r a m ' s l i n e numbers by 1 l i n e f o r each semicolon; t h u s t h e l i n e numbers on an Assembly l i s t i n g w i l l n o t agree w i t h t h o s e s e e n on t h e s c o p e . 3. Operands Operands a r e u s u a l l y t h e s y m b o l i c a d d r e s s o f t h e d a t a t o be a c c e s s e d when a n i n s t r u c t i o n i s e x e c u t e d , o r t h e i n p u t d a t a o r arguments o f a pseudo-op. I n e a c h case, i n t e r - p r e t a t i o n o f o p e r a n d s i n a s t a t e m e n t depends on t h e statement operator. Operands a r e t e r m i n a t e d by a c a r r i a g e r e t u r n , semicolonor s l a s h . 3-2 4. Comments The programmer may add notes to a statement following a slash character. Such comments do not affect assembly processing or program execution, but are useful in the program listing for later analysis or debugging. 3.2 SYMBOLS Types of Symbols There are two main groups of symbols. 1. Permanent Symbols The assembler has in its permanent symbol table definitions of its operation codes, operate commands, and many inputoutput transfer (IOT) microinstructions (see Appendix C . 4 ) . Any symbol in the Assembler's permanent symbols may be used without prior definition by the user. Initially, the Assembler's permanent symbol table in memory contains the mnemonic op codes of the machine instructions of L I N C mode programming and the Assembler pseudo-op codes. The symbols for PDP-8 mode programming remain on tape. As the source program is processed, symbols defined in the source program are added to the user's symbol table. If the programming mode is changed to PDP-8 mode, the pseudo-op PMODE must precede the new program input. This instructs the Assembler to retrieve the PDP-8 mode permanent symbols in memory. (The same L I N C memory block is used 37 3 f o r t h e permanent symbols o f b o t h modes.) S i m i l a r l y , LMODE must p r e - c e d e a change t o L I N C mode programming. 2. U s e r - d e f i n e d Symbols U s e r - d e f i n e d symbols, t o be u s e d as s t a t e m e n t l a b e l s , o p e r a t o r s , or o p e r a n d s , are composed a c c o r d i n g t o t h e f o l l o w i n g rules: a. The c h a r a c t e r s m u s t be a l p h a b e t i c (A-Z) o r n u m e r i c (0-9). b. The f i r s t c h a r a c t e r must be a l p h a b e t i c . Leading numeric c h a r a c t e r s are i g n o r e d . C. Only t h e f i r s t s i x l e g a l c h a r a c t e r s o f any symbol a r e m e a n i n g f u l t o t h e Assembler; t h e r e m a i n d e r , i f a n y , a r e ignored. d. The Assembler a s s i g n s v a l u e s a c c o r d i n g t o t h e f o l l o w i n g rules : (see s e c t i o n 3.6 f o r d e f i n i t i o n of LMODE and P M O D E ) . Used a f t e r e. Defined LMODE after PMODE I I LMODE 10 bits' 12 bits I 1 PMODE 12 bits 12 b i t s The m a x i m u m number of symbols i s 8?6. The programmer h a s 2 methods o f s p e c i f y i n g t h e v a l u e t o b e a s s i g n e d t o a symbol. 1. When t h e f i r s t symbol o f a s t a t e m e n t i s t e r m i n a t e d by a ' N o t e t h a t n o check i s made on e x p r e s s i o n a r i t h m e t i c . For example, i f TAG = TAGl+TAG2 where TAG1 = 1 7 7 7 = TAG2, t h e n TAG = 3776, which i s more t h a n 1 0 b i t s . 3-4 comma, it is assigned a value equal to the Current Location Counter (CLC). Any instruction or data word in the program may be so "labeled". For example: TAG , *loo CLR JMP A B, 0 A, STC B The symbol TAG is assigned a value of 0100, the symbol B, a value of 0102, and the symbol A, a value of 0103. If a programmer attempts to define the same symbol as a label again, it is redefined as the user requested, but the error message ID is given. 2. The programmer may insert new symbols with their assigned values directly into the symbol table by using a direct assignment statement of the form symbol=value where the value may be a number or expression. For example: ALPHA=5 BETA=17 There must be no spaces between the symbol and the equal sign. A direct assignment statement may also be used to give a new symbol the same value as a previously defined symbol. 3-5 BETA=17 GAMMA=BETA The new symbol, G A P ! ! , is entered into the user's symbol table with the value 17. The value assigned to a symbol mav be changed. ALPHA=7 changes the value assigned in the first example from 5 to 7. Direct assignment statements do not generate instructions or data in the object program. These statements are used to assign values so that symbols can be conveniently used in other statements. U s e of Symbols Symbols are used in 3 ways. 1. A symbol may be used to label an instruction or data word at any point in the program. The label must appear first in the statement and must be immediately followed by a comma. If the symbol is redefined later, the illegal definition error message is printed. 2. Symbols used as operators must be predefined by the Assembler or by the programmer. If a statement has no label, the opera- tor may appear first in the statement, and must be terminated by a space, tab, semicolon, or carriage return. The follow- ing are examples of operators: TAD a permanent symbol OCTAL an Assembler pseudo-op zIP l e g a l only if defined by the user 3-6 3. Symbols used as o p e r a n d s s h o u l d have a v a l u e d e f i n e d by the user. These may be symbolic r e f e r e n c e s t o p r e v i o u s l y d e f i n e d l a b e l s where t h e arguments t o be u s e d by t h i s i n s t r u c t i o n a r e t o be f o u n d , o r t h e v a l u e s of symbolic o p e r a n d s may be c o n s t a n t s o r c h a r a c t e r s t r i n g s . 3.3 NUMBERS Any sequence of numbers d e l i m i t e d by a s l a s h , s e m i c o l o n , t a b o r c a r r i a g e r e t u r n i s i n t e r p r e t e d n u m e r i c a l l y by t h e Assembler. 1/ COMMENT 12; 4372 The r a d i x c o n t r o l pseudo-ops i n d i c a t e t o t h e Assembler t h e r a d i x t o be used i n number i n t e r p r e t a t i o n . The pseudo-op DECIMAL i n - d i c a t e s t h a t a l l numbers a r e t o be i n t e r p r e t e d as d e c i m a l u n t i l t h e n e x t o c c u r r e n c e of t h e pseudo-op OCTAL. The pseudo-op OCTAL i n d i c a t e s t h a t a l l numbers a r e t o be i n t e r p r e t e d as o c t a l u n t i l t h e n e x t o c c u r r e n c e of t h e pseudo-op DECIMAL. The r a d i x i s i n i t i a l l y s e t t o o c t a l and remains o c t a l u n l e s s o t h e r w i s e s p e c i f i e d . 3.4 EXPRESSIONS The a r i t h m e t i c and l o g i c a l o p e r a t o r s u s e d i n n u m e r i c a l o p e r a t i o n s are : + Plus 2 s complement a d d i t i o n (modulo 4 0 9 6 ) a f t e r a PMODE pseudo-op. Is complement a d d i t i o n a f t e r a n LMODE pseudo-op. 3-7 - 2s complement subtraction (modulo 4 0 9 6 ) after a PMODE pseudo-op. Minus Is complement subtraction after an LMODE pseudo-op. ! Exclamation Mark Boolean inclusive OR (union). & Ampersand Boolean AND (intersection) L.J Space Interpreted as inclusive OR when used to separate two symboloc operators. For example: TAG, CLA CLL Note that there should be no spacp,s between operands and the above operators. Symbols and numbers (exclusive of pseudo-op symbols) may be combined by using the arithmetic and logical operators to form expressions. Expressions are evaluated from left to right. MODE A B A+B A-B A!B A&B PDP-8 0002 0003 0005 7777 0003 0002 0007 0005 0014 0002 0007 0005 0700 0007 0707 0671 0707 0000 0002 0003 0005 7776 0003 0002 LINC 3.5 These - ADDRESS ASSIGNMENTS The Assembler sets the origin, or starting address, of the source program to absolute address 4020, which may then be changed by the programmer. As source statements are processed, the Assembler 3 -8 a s s i g n s c o n s e c u t i v e memory a d d r e s s e s t o t h e i n s t r u c t i o n s and d a t a words of t h e o b j e c t program. T h i s i s done by i n c r e m e n t i n g a l o c a t i o n c o u n t e r e a c h t i m e a memory l o c a t i o n i s a s s i g n e d . A s t a t e m e n t w h i c h g e n e r a t e s a s i n g l e o b j e c t program s t o r a g e w o r d i n c r e m e n t s t h e l o c a t i o n c o u n t e r by o n e . Another s t a t e m e n t may g e n e r a t e s i x s t o r a g e words, t h u s i n c r e m e n t i n g t h e l o c a t i o n c o u n t e r by s i x . Direct a s s i g n m e n t s t a t e m e n t s and most Assembler pseudo- o p s do n o t g e n e r a t e s t o r a g e words and t h e r e f o r e do n o t a f f e c t t h e location counter. The s p e c i a l c h a r a c t e r . ( p e r i o d ) ’ a l w a y s has a v a l u e e q u a l t o t h e v a l u e of t h e C u r r e n t L o c a t i o n C o u n t e r . I t may be u s e d a s any i n t e g e r o r symbol ( e x c e p t t o t h e l e f t of a n e q u a l s i g n ) . The f o l l o w i n g i s e q u i v a l e n t t o JMP 0 2 0 2 . *200 JMP .+2 The n e x t example w i l l produce i n l o c a t i o n 0300 t h e q u a n t i t y 7 0 0 . *300 .+400 C o n s i d e r t h e n e x t example. *20 LMODE CALL=JMP . 0027 The second l i n e , CALL=JMP . , does n o t increment t h e Current ’ P e r i o d must be p r e c e d e d by a d e l i m i t e r o r o p e r a t o r , or e r r o n e o u s code may r e s u l t . 3-9 L o c a t i o n C o u n t e r , t h e r e f o r e 0 0 2 7 i s p l a c e d i n l o c a t i o n 2 0 and CALL i s p l a c e d i n t h e u s e r ' s symbol t a b l e w i t h a n a s s o c i a t e d v a l u e of 6 0 2 0 ( t h e o c t a l e q u i v a l e n t of JMP . 1. Legal C h a r a c t e r s Programs p r o c e s s e d under t h e D I A L Assembler are p r e p a r e d by t h e system i n t h e A s s e m b l e r ' s i n t e r n a l c o d e . See Appendix C.3 f o r a c o m p l e t e l i s t of t h e c h a r a c t e r s w i t h t h e i r 6 - b i t o c t a l e q u i v a l e n t s . The f o l l o w i n g c h a r a c t e r s a r e a c c e p t a b l e by t h e Assembler: a. The a l p h a b e t i c c h a r a c t e r s ABCD...XYZ b. The numeric c h a r a c t e r s 0123456789 C. The s p e c i a l c h a r a c t e r s Separates symbols and numbers (see e x p r e s s i o n s i n s e c t i o n Space 3.4) + Plus Combines symbols o r numbers ( add 1 - Minus Combines symbols o r numbers (subtract) 1 E x c l a m a t i o n Mark Combines symbols o r numbers ( i n c l u s i v e OR) 3 C a r r i a g e Return Terminates a statement or a line 3 Tabulation Formats symbols o r numbers for source tape output I Assigns symbolic a d d r e s s Comma 3-10 - Equal S i g n Direct a s s i g n m e n t of symbol values I Semicolon Terminates coding statement ( w i l l n o t t e r m i n a t e comment) * Asterisk Sets c u r r e n t l o c a t i o n c o u n t e r ; redefines origin Period H a s value equal t o current location counter \ Backslash X\Y / Slash I n d i c a t e s s t a r t of comment &! Ampersand Combines symbols o r numbers = lOOO*X+Y (AND) A l l c h a r a c t e r s o t h e r t h a n t h o s e l i s t e d above a r e i l l e g a l when n o t i n a comment o r TEXT f i e l d a n d , b e i n g i l l e g a l , t h e i r o c c u r r e n c e c a u s e s t h e e r r o r message I C ( I l l e g a l C h a r a c t e r ) t o be p r i n t e d by t h e Assembler. 3.6 PSEUDO-OPERATORS The programmer may u s e p s e u d o - o p e r a t o r s (pseudo-ops) t o d i r e c t t h e Assembler t o perform c e r t a i n t a s k s o r t o i n t e r p r e t s u b s e q u e n t c o d i n g i n a c e r t a i n manner. Some pseudo-ops g e n e r a t e s t o r a g e w o r d s i n t h e o b j e c t program, o t h e r pseudo-ops d i r e c t t h e A s s e m b l e r on how t o p r o c e e d w i t h t h e assembly. Pseudo-ops a r e m a i n t a i n e d i n t h e A s s e m b l e r ' s permanent symbol t a b l e . D o n o t u s e pseudo-ops a s v a r i a b l e names; e r r o n e o u s l o g i c and code may r e s u l t w i t h o u t g e n e r a t i n g an e r r o r message. The f u n c t i o n of e a c h A s s e m b l e r pseudo-op 3-11 i s described next. PMODE The Fssembler can assemble either LINC instructions (coding) or PDP-8 instructions. mode. Each has a pseudo-op to designate its assembly PMODE indicates that PDP-8 coding follows. The Assembler remains in PDP-8 mode until explicitly changed to LINC mode by an LMODE pseudo-op. LMODE To designate LINC mode coding, the pseudo-op LMODE is used. The initial mode of the Assembler is LMODE and will remain in LMODE until the PMODE pseudo-op is given. SEGMNT n (O<n<7) -SEGMNT resets the CLC to the first location of segment n, where n is an integer, a previously defined symbol, or a symbolic expression. Each memory bank is divided into four 1024-word segments. For example: SEGMNT 2 sets CLC to location 4 0 0 0 SEGMNT 1 sets CLC to location 2000 Without an argument, the CLC is reset to the first location of the succeeding segment. FIELD n (O<n<l) -The FIELD pseudo-op indicates the field 0 or 1. If the field is not specified, 0 is assumed as the initial condition. 3-12 DECIMAL I n t e g e r s a r e u s u a l l y t a k e n t o be o c t a l numbers. However, f o l l o w i n g t h e pseudo-op DECIMAL (and p r i o r t o a s u c c e e d i n g OCTAL pseudo-op) a l l numbers a r e i n t e r p r e t e d a s d e c i m a l . OCTAL OCTAL i s used t o r e s e t t h e r a d i x t o i t s o r i g i n a l o c t a l base. It s h o u l d be n o t e d t h a t i f a decimal number i s s p e c i f i e d when t h e r a d i x i s o c t a l , t h e Assembler t r i e s , o f t e n u n s u c c e s s f u l l y , t o i n t e r p r e t t h e number. NOLIST NOLIST i s u s e d t o p r e v e n t p r i n t o u t d u r i n g a n L I assembly. The NOLIST a p p e a r s i n t h e l i s t i n g , b u t t h e n t h e p r i n t o u t i s s u p p r e s s e d u n t i l a L I S T pseudo-op i s e n c o u n t e r e d . LIST L I S T i s used t o n e g a t e t h e NOLIST s t a t e . The L I S T s t a t e m e n t d o e s n o t appear i n t h e l i s t i n g . TEXT The pseudo-op TEXT e n a b l e s t h e u s e r t o r e p r e s e n t a character o r s t r i n g of characters i n U S A S C I I code trimmed t o s i x b i t s and packed two c h a r a c t e r s t o a w o r d . The n u m e r i c a l v a l u e s g e n e r a t e d by TEXT a r e l e f t - j u s t i f i e d i n t h e s t o r a g e words t h e y occupy, w i t h t h e unused b i t s of t h e l a s t word f i l l e d w i t h 0 0 . 3-13 A s t r i n g o f t e x t may b e e n t e r e d by g i v i n g t h e pseudo-op TEXT f o l - lowed by a s p a c e , a d e l i m i t i n g c h a r a c t e r , a s t r i n g of t e x t , and the same delimiting character. F o r example: TEXT ZSTRING O F TEXTZ I f t h i s example i s a t l o c a t i o n 0 2 0 0 , t h e l i s t i n g i s as f o l l o w s : 200 201 202 203 204 205 2324 2211 1607 206 3024 4017 0640 2405 TEXT ZSTRING O F TEXTZ The f i r s t p r i n t i n g c h a r a c t e r f o l l o w i n g TEXT i s t a k e n as t h e del i m i t i n g c h a r a c t e r , and t h e t e x t s t r i n g i s t h e c h a r a c t e r s which follow u n t i l t h e d e l i m i t i n g c h a r a c t e r i s again encountered. l e g a l c h a r a c t e r may be used as a d e l i m i t i n g c h a r a c t e r ! Any The Assembler w i l l p r i n t o u t a l l t h e c o d e , t h e n p r i n t t h e e n t i r e l i n e a f t e r i t when a c a r r i a g e r e t u r n i s e n c o u n t e r e d . I f t h e t e x t goes p a s t t h e end of t h e manuscrjr>t t h e e r r o r message I E ( i l l e g a l e x p a n s i o n ) i s p r i n t e d and t h e assembly i s immedj-ately t e r m i n a t e d . PAGE n (O<n<408) -- PAGE i s used t o r e s e t t h e C u r r e n t L o c a t i o n C o u n t e r t o t h e f i r s t l o c a t i o n o f t h e s p e c i f i e d PDP-8 page. I f n i s not specified, the C u r r e n t L o c a t i o n Counter i s r e s e t t o t h e f i r s t l o c a t i o n o f t h e 1 When u s i n g t h e TEXT pseudo-op, remember t h a t t h e f o r m a t t i n g f e a t u r e o f t h e E d i t o r may i n s e r t unwanted t a b s when a comma, s l a s h , or carriage r e t u r n i s encountered. 3-14 succeeding page. EJECT When a program is to be listed on a line printer, the command EJECT causes the next line to be printed at the top of the next line printer paper page, thus permitting a logical splitting along page boundaries. ASMIFx n The conditional assembly pseudo-ops, of the general form ASMIFx, can have 3 possible forms: Pseudo-op Meaning ASMIFZ n Assemble if zero ASMIFN n Assemble if non-zero ASMIFM n Assemble if minus In each case the expression is evaluated and if the value of the expression matches the condition specified (zero, non-zero, minus), the next line is assembled. If it does not match, then the next line is not processed by the Assembler. The next line may be any statement, but will most frequently be an ASMSKP pseudo-op (discussed below). Sections of code may thus be altered or entire- ly deleted from a program just be setting some values in the beginning of the assembly program. ASMSKP n When the pseudo-op ASMSKP and the expression n following it are 3-15 e n c o u n t e r e d , t h e e x p r e s s i o n on t h e r i q h t i s e v a l u a t e d . The number of l i n e s e q u a l t o t h a t v a l u e o f t h a t e x p r e s s i o n , s t a r t i n g on t h e n e x t l i n e , a r e n o t assembled. Thus, t h e A S M I F x c l a s s of pseudo-ops c o n t r o l t h e assembly of one s t a t e m e n t ; t h e ASKSKP c o n t r o l s any number of l i n e s and c a n be u s e d t o e l i m i n a t e e n t i r e b l o c k s of statements. For b o t h t h e A S M I F x f a m i l y and ASMSKP pseudo-ops, i f no e x p r e s s i o n i s p r e s e n t , t h e n e x t s t a t e m e n t w i l l be a s s e m b l e d . I f an a t t e m p t i s made t o go p a s t t h e end of a m a n u s c r i p t w i t h one of t h e s e pseudo-ops n o e r r o r r e s u l t s ; t h e end of t h e m a n u s c r i p t i s s i m p l e t r e a t e d as t h e end of t h e s k i p b l o c k . ASMSKP pseudo-ops With b o t h t h e ASMIFx and t h e a l i n e may be a normal assembly i n s t r u c t i o n o r i t may be j u s t a comment. Note t h a t w i t h t h e ASMIFx f a m i l y and ASMSKP pseudo-ops, the condition " z e r o " must b e s p e c i f i e d by JJggj7. C o n s i d e r t h e f o l l o w i n g program l i s t i n g . 8JJ42 JJ843 8044 8282 4481 JJ845 8g46 8847 8850 8283 1%85 ASMIFN TAPE JMS I WRITE ASMIFN TAPE-DISK ASMSKP 2 JMS I READ J M S I WRITE TAD M 18 The e x p r e s s i o n a f t e r ASMIFN pseudo-op a t l i n e 42, TAPE, had a nonz e r o v a l u e s o t h e n e x t i i n e , 43, w a s assembled. e x p r e s s i o n TAPE-DISK The v a l u e of t h e a l s o had a non-zero v a l u e , c a u s i n g l i n e 45 3-16 t o b e e x e c u t e d , t h u s s k i p p i n g l i n e s 46 and 47. Assembly w a s con- tinued a t l i n e 50. The l a s t 2 pseudo-ops, SAVSYM n and LODSYM, a r e s o p h i s t i c a t e d t o o l s which s h o u l d be used o n l y i n l a r g e system programs. These pseudo- o p s a r e d i s c u s s e d b r i e f l y h e r e and i n d e t a i l i n Appendix C . 2 . SAVSYM n ( n = l or 2 ) The pseudo-op SAVSYM n allows t h e programmer t o s a v e p a r t o r all of h i s u s e r symbol t a b l e f o r u s e i n l a t e r assemblies. I t i s followed by an e x p r e s s i o n , n , which i s e v a l u a t e d t o a v a l u e of 1 o r 2 . There are 2 c a s e s when a u s e r w i l l want t o s a v e h i s symbols. Case 1 i s when t h e u s e r h a s d e f i n e d some common d e f i n i t i o n s which a r e t o be used w i t h a l l h i s programs; case 2 i s when t h e program i s t o o l a r g e and must b e s p l i t i n t o 2 o r more smaller programs t h a t can communicate w i t h e a c h o t h e r . LODSYM The pseudo-op LODSYM l o a d s a symbol t a b l e p r e v i o u s l y s a v e d by a SAVSYM pseudo-op. When a LODSYM command i s g i v e n a l l p r e v i o u s l y d e f i n e d u s e r symbols i n c o r e a r e e r a s e d . For t h i s r e a s o n , a LODSYM s h o u l d be one of t h e f i r s t s t a t e m e n t s i n a program. SAVSYM and LODSYM p e r m i t t h e u s e r t o do an a s s e m b l y , s a v e t h e symbol t a b l e , do a n o t h e r assembly and c a l l back i n t h e o r i g i n a l symbol t a b l e . 3-17 CHAPTER 4 ASSEMBLY PROGRAMS 4.1 ASSEMBLE PROGRAM +AS (NAME, UNIT) 2 NAME = name of filed program to be assembled UNIT = tape unit on which named file is to be found ( g or 1) The Monitor Command AS performs an assembly of the NAMEd source file on the specified UNIT. If no NAME is given, the source pro- gram in the Working Area on unit fl is assembled. With the command AS, an assembly listing is not produced, but error messages with line numbers and a tag table are printed. assembly error messages.) (See Appendix B for the Note that the assembly and tag table printout can be stopped and the Editor called back by typing RETURN. The Assembler requires that the program to be assembled be on tape unit j f o r 1. The Working Area of tape unit 1 is always used for binary output and tag table storage. For all DIAL programs, NAME can be 1 to 8 characters long and must have at least 1 non-numeric character and no ? or / characters. 4.2 LIST PROGRAM +LI (LINE NUMBER1, LINE NUMBER2,) (NAME, UNIT) 2 4-1 LINE NUMBER 1 = starting line number LINE NUMBER 2 = terminating line number NAME = name of filed program to be listed UNIT = tape unit on which NAMEd file is to be found ( B or 1) The list program performs the same functions as the assemble program, but in addition produces an octal-symbolic listing on the Assembler output device. It will assemble and list from the workspace if no program NAME and UNIT are specified. The value of UNIT can only be B or 1. As with the assemble command, AS, the Working Area on the tape unit 1 is used for the b i n z y output and tag table. If two line numbers are supplied, it will cause the entire program in the workspace or a NAMEd file to be assembled and will list only the portions of the program between the two line numbers. To assemble and list only that part between lines 140 and 160 type +LI 1 4 0 , 1 6 0 3 To assemble and list lines 300 to 310 of file MART on unit 1, the correct command is +LI 300,310 MART,1> If a line printer is available and in the ready state, the listing will be output to that device. By using the pseudo-operators NOLIST and LIST, the output listing can be controlled. RETURN may be typed at any time to return to the Editor. 4-2 4.3 Q U I C K LIST +QL (LINE NUMBER 1, LINE NUMBER 2 , ) (NAME, UNIT)> LINE NUMBER 1 = s t a r t i n g l i n e number LINE NUMBER 2 = t e r m i n a t i n g l i n e number t o be l i s t e d NAME = name of f i l e d program UNIT = t a p e u n i t on which NAMEd f i l e i s t o be found (0 or 1) T h i s command p e r f o r m s t h e same f u n c t i o n s as t h e L I command w i t h t h e following exceptions: a. L i n e numbers and a l l comments are d e l e t e d . b. A l l tabs a r e p r i n t e d out a s spaces. The QL command e n a b l e s t h e u s e r t o examine h i s code w i t h o u t h a v i n g t o w a i t t h e e x t r a t i m e t o receive a f u l l l i s t i n g . The Q U I C K LIST f e a t u r e normally saves 1 t o 2 s e c o n d s p e r l i n e , more i f t h e program c o n t a i n s many tabs and comments. Only u n i t $Y o r 1 may be s p e c i f i e d . N o l i n e numbers are p r i n t e d o u t w i t h t h e QL command. To h e l p t h e u s e r d e t e r m i n e s t a t e m e n t l i n e numbers from t h e l i s t i n g , QL t a k e s a d v a n t a g e of t h e f a c t t h a t t h e pseudo-ops (FIELD, *, PAGE, PMODE, LMODE, e t c . ) g e n e r a t e no code and t h e l i n e number i s p r i n t e d i n s t e a d of t h e l o c a t i o n c o u n t e r . The assembly may be i n t e r r u p t e d by t y p i n g RETURN t o go back t o t h e E d i t o r . Two l i s t i n g s of t h e same program f o l l o w t o i l l u s t r a t e t h e d i f f e r e n c e b e t w e e n a l i s t i n g produced by a l i s t command and one g e n e r a t e d by a q u i c k l i s t command. 4-3 This listing was produced by a List command. 0000 0001 0002 0003 0004 0005 0006 0007 0810 001 1 0012 0013 0014 0015 0016 0017 *20 4020 402 1 6032 6046 START, 4022 4023 4024 4025 402 6 4027 4030 6031 5222 6036 6041 5225 6046 5222 LOOP, 0000 ERRORS LINEP LOOP START 0000 4022 4020 PMODE LINEP=0 ASMIFN LINEP EJECT KCC TL S ASMIFN L I N E P EJECT KSF JMP *-i KRB TSF JMP 0-1 TL 5 JMP LOOP 4-4 /START I N PDP-8 MODE /NO E J E C T S /EJECT? /YES* /CLEAR KEYBOARD FLAG / S E T TELETYPE FLAG /EJECT? /GO TO TOP OF PAGE* /CHAR* TYPED? /NO WAIT /YES* READ I T I N . / TELEPRI MTER READY? /NO* WAIT /YES* OUTPUT THE CHAR /GO GET ANOTHER CHAR* T h i s l i s t i n g w a s p r o d u c e d by a q u i c k l i s t command. 0000 0001 0082 0003 0004 4020 402 1 0007 0010 4022 4023 4024 4025 4026 4027 4830 6032 6046 6031 5222 6036 6041 5225 6046 5222 0000 ERRORS LINEP LOOP START 0000 4022 4020 *20 PMODE / LINEP=0 / ASMIFN L I N E P I EJECT / STARTI KCC / TLS I ASMIFN L I N E P / EJECT / LOOPI KSF I JMP 0 - 1 / KRB / TSF / JMP 0 - 1 / ns JMP LOOP / 4-5 4.4 SAVE BINARY +SB NAME, UNIT NAME = name t o be a s s i g n e d t o s a v e d b i n a r y f i l e UNIT = u n i t on which b i n a r y f i l e i s t o be saved MODE = L i f program s h o u l d s t a r t i n LINC mode (,MODE) {ADDRESS)) P i f program s h o u l d s t a r t i n PDP-8 mode ADDRESS = s t a r t i n g a d d r e s s The b i n a r y program most r e c e n t l y assembled w i t h t h e A S , L I , o r QL command can be s a v e d w i t h t h e SB command as f i l e NAME on t h e s p e c i f i e d UNIT. The S B command h a s a l o a d and go o p t i o n s o t h a t when a program i s l o a d e d i n t o memory w i t h t h e LO command, i t w i l l a l s o a u t o m a t i c a l l y s t a r t t o be e x e c u t e d . T o u s e t h i s o p t i o n , t h e program mode must be s p e c i f i e d . I f t h e program i s t o b e s t a r t e d i n LINC mode whenever l o a d e d , t h e I f t n e program i s t o s t a r t a t u n i t number i s f o l l o w e d by an L. J84$2@, t h e L i s f o l l o w e d by t y p i n g RETURN. I f t h e program i s t o be s t a r t e d e l s e w h e r e , a f u l l f i v e d i g i t a d d r e s s must be s p e c i f i e d . T h e Data F i e l d i s always s e t t o t h r e e when t h e proqram i s s t a r t e d . I f t h e program i s t o be s t a r t e d i n PDP-8 mode, t h e u n i t number i s f o l l o w e d by a P which w i l l c a u s e t h e program t o be s t a r t e d a t l o c a t i o n J8B2.0Ba; o t h e r w i s e t h e f u l l f i v e d i g i t s t a r t i n g a d d r e s s should be s p e c i f i e d . 46 If t h e S B command i s t e r m i n a t e d a f t e r UNIT w i t h a c a r r i a g e r e t u r n , t h e l o a d e r w i l l h a l t t o l o c a t i o n 7774 a f t e r having loaded t h e program. F o r example: T o s a v e t h e program PGMNAM on u n i t 1 s o it w i l l l o a d and s t a r t i n L I N C mode a t l o c a t i o n @4@2@ +SB PGMNAM,l,L > To save t h e program PGMNAM on u n i t @ s o i t w i l l l o a d and s t a r t i n L I N C mode a t l o c a t i o n 482gof t h e second band > L14@2@ +SB PGMNAM,fl, To save t h e program PGMNAM o r u n i t +SB P G M N A M , ~ (IF = 6) s o i t w i l l l o a d and h a l t 3 With e a c h assembly, a b i n a r y h e a d e r b l o c k i s g e n e r a t e d by t h e Assembler which maps t h e memory b l o c k s u s e d . The Save and Load B i n a r y commands u s e t h e d a t a i n t h e h e a d e r t o s a v e o r l o a d t h e appropriate blocks. (Block 4 0 0 0 i s always 5 a v e d ) . Thus, i f a program o c c u p i e d b l o c k s 4 0 0 0 and 4 4 0 0 , t h r e e b l o c k s would be saved: t h e t w o program b l o c k s and t h e h e a d e r b l o c k . I f a previous version of t h e same program i s a l r e a d y p r e s e n t on t h e s p e c i f i e d t a p e , D I A L w i l l d i s p l a y REPLACE?. S t r i k e R t o r e p l a c e t h e e x i s t i n g f i l e e n t r y w i t h t h i s new e n t r y ; s t r i k e RETURN i f t h e e x i s t i n g f i l e i s n o t t o be r e p l a c e d . 4-7 4.5 LOAD B I N A R Y +LO (NAME, UNIT) 2 NAME = name o f b i n a r y f i l e t o b e l o a d e d UNIT = u n i t from which f i l e i s t o b e l o a d e d I f t h e NAMEd program w a s s a v e d by a Save B i n a r y command and no mode w a s s p e c i f i e d , t h e program i s l o a d e d i n t o core memory and t h e com- p u t e r h a l t s a t l o c a t i o n 7774. When a UNIT i s a l s o s p e c i f i e d , t h e NAMEd b i n a r y program i s r e a d i n t o memory from c h e s e l e c t e d f i l e . If no NAME i s g i v e n , t h e l a s t b i n a r y program assembled by DIAL i s r e a d i n t o memory from u n i t 1 and t h e computer a g a i n h a l t s a t 7 7 7 4 . I f t h e f i l e had been s a v e d w i t h a mode and a d d r e s s s p e c i f i e d i n t h e Save B i n a r y command, t h e n t h e Load B i n a r y program w i l l l o a d and go. Program e x e c u t i o n w i l l s t a r t a u t o m a t i c a l l y from t h e NAMEd f i l e on t h e s p e c i f i e d L W I T . T h i s command w i l l e x i t from D I A L b e f o r e r e a d i n g t h e b i n a r y program. Note t h a t t h e l o a d e r o v e r l a y s l o c a t i o n s 7 7 6 1 - 7 7 7 7 w i t h a b o o t s t r a p r o u t i n e and t h e s e l o c a t i o n s , t h e r e f o r e , c a n n o t be u s e d by t h e program. 4.6 ASSEMBLY OPERATION NOTES - The Assembler l o o k s a t t h e t a p e on u n i t 1 t o d e t e r m i n e i f t h e r e i s a copy of t h e Assembler on t a p e 1. I f t h e r e i s a copy, t h e n symbols c a n be swapped i n and o u t on t a p e u n i t 1 r a t h e r t h a n on u n i t !J, r e s u l t i n g i n a c o n s i d e r a b l e s a v i n g of t a p e motion and t i m e Note t h a t i t i s n o t n e c e s s a r y t o have an Assembler on u n i t 1, b u t it is faster. 4-8 For users with 8 K of core, the Assembler uses the extra 4K rather than swap user symbols in and out from the tape. In addition, the pseudo-op processor will then always be resident and double buffering from tlw input file can be used. Such a system greatly in- creases the speed of assembling a program over a 4 K machine. For an 8 K machine with a line-printer, the Assembler will automatically give its listing and symbol table on the line-printer, if it is in the START or READY status. go to the Teletype. 4 -9 Otherwise, the output will CHAPTER 5 UTILITY PROGRAMS AND COMMANDS 5.1 SAVE PROGRAM +SP NAME, UNIT 3 NAME = name t o b e a s s i g n e d t o s a v e d program i n f i l e UNIT = u n i t t o c o n t a i n t h e named program DIAL saves t h e s o u r c e program by NAME i n one f i l e on t h e UNIT s p e c i - fied. When s a v i n g a program, RETURN may b e t y p e d a t any t i m e . This w i l l i n t e r r u p t t h e command and r e t u r n t o t h e s o u r c e d i s p l a y , w i t h no e f f e c t once DIAL h a s u p d a t e d t h e Index. To p r e v e n t s a v i n g two programs w i t h t h e same NAME, D I A L d i s p l a y s REPLACE?. The u s e r may e i t h e r type R t o r e p l a c e t h e f i l e e n t r y w i t h t h i s source o r p r e s s RETURN t o k e e p t h e o l d f i l e e n t r y . 5.2 ADD PROGRAM +AP BN, UNIT 3 +W CLN1, L N 2 , ) NAME, UNIT 3 BN = F i r s t b l o c k number o f source program NAME = name of f i l e d program UNIT = u n i t on which program i s l o c a t e d To add D I A L source t o t h e c u r r e n t source a t t h e c u r r e n t l i n e , t h e AP command r e q u i r e s s p e c i f y i n g o n l y i t s s t a r t i n g b l o c k number, BN, o r i t s NAME. Two l i n e numbers may be s p e c i f i e d t o add t h a t p o r t i o n of t h e NAMEd program t o t h e c u r r e n t s o u r c e . 5-1 The f i r s t l i n e of t h e program i s added a f t e r t h e c u r r e n t l i n e on t h e scope. S o u r c e l i n e s w h i c h f o l l o w t h e added s o u r c e a r e t h e n renum- b e r e d ; i f t h e r e i s no c u r r e n t s o u r c e , e . g . , a CLEAR command was i s s u e d , t h e added s o u r c e w i l l be t h e e n t i r e s o u r c e . If t h e arguments are o m i t t e d , t h e command i s i g n o r e d . 5.3 CLEAR -FcL3 The Working A r e a on t h e t a p e u n i t JJ can be c l e a r e d by u s i n g t h e command CL. buffer area. D I A L r e m a i n s i n c o r e and i s r e s t a r t e d w i t h a c l e a n 3 c L may be t y p e d a t any t i m e t o c l e a r t h e Working A r e a w i t h o u t h a v i n g t o m a n i p u l a t e any c o n s o l e s w i t c h e s . 5.4 DISPLAY I N D E X + D X ( ,UNIT)> U N I T = u n i t whose I n d e x i s t o be d i s p l a y e d T h e f i l e I n d e x of t h e s p e c i f i e d UNIT i s d i s p l a y e d on t h e s c o p e by t h e command +DX. For each program, i t s name, s o u r c e o r b i n a r y , s t a r t - i n g b l o c k number, and l e n g t h i n blocks i s i n d i c a t e d . To v i e w the e n t i r e Index, use t h e following keys: Action Key 1 Forward one frame 2 Forward one e n t r y Q B a c k w a r d one f r a m e W Backward one e n t r y 5-2 P r e s s t h e RETURN key t o r e t u r n t o t h e s o u r c e d i s p l a y a t any t i m e . E n t r i e s may b e d e l e t e d from t h e d i s p l a y a l s o . P r e s s i n g t h e RUBOUT key w i l l d e l e t e t h e l a s t l i n e on t h e d i s p l a y . I f t h e wrong e n t r y i s d e l e t e d , t y p e R t o r e s t o r e t h e Index. The d e l e t i o n s are made permanent by p r e s s i n g t h e c o l o n key ( : ) . The s o u r c e d i s p l a y i s r e t u r n e d t o t h e scope. P r e s s i n g t h e RETURN key w i l l c a u s e a r e t u r n t o t h e s o u r c e d i s p l a y a f t e r one o f t h e above o p e r a t i o n s . Note t h a t i f t h e r e i s no I n d e x o r a n empty I n d e x , NO i s d i s p l a y e d on t h e scope. 5.5 PRINT INDEX +PX ( ,UNIT)J U N I T = u n i t o f I n d e x t o be p r i n t e d The command +PX p r i n t s o u t t h e c o n t e n t s o f t h e s p e c i f i e d Index on t h e Teletype. Press RETURN a t any t i m e t o s t o p t h e p r i n t o u t and t o r e t u r n t o t h e source display. 5.6 P R I N T SOURCE jPs m i , 1 ( 1 ~ 2 ), (NAME ,UNIT) 3 NAME = name of f i l e t o be p r i n t e d UNIT = u n i t on which named f i l e i s t o be located L N 1 = s t a r t i n g l i n e number LN2 = t e r m i n a t i n g l i n e number The NAMEd s o u r c e f i l e i s p r i n t e d on t h e T e l e t y p e f r o m t h e s p e c i f i e d UNIT. The c u r r e n t s o u r c e i s p r i n t e d when no NAME and/or U N I T are designated. I f two l i n e numbers a r e s p e c i f i e d , t h a t p o r t i o n o f t h e NAMEd f i l e w i l l be p r i n t e d . 5-3 source c a n be p r i n t e d w i t h t h e PS command. Any D I A L N o words w i l l P r i n t i n g t i m e i s approximately b e s p l i t between T e l e t y p e l i n e s . 1 m i n u t e p e r page f o r PDP-12 program s o u r c e s . L i n e numbers, i f s p e c i f i e d , p r o v i d e i n c l u s i v e bounds f o r t h e p r i n t out. When o n l y one l i n e number i s s p e c i f i e d , i t i s assumed t o be t h e i n i t i a l bound and t h e r e s t of t h e s o u r c e i s p r i n t e d . 5.7 EXIT +EX 2 The E x i t command c o m p l e t e s t h e u p d a t i n g of t h e working area from t h e memory b u f f e r s , t h u s a s s u r i n g t h e u s e r o f l e a v i n g D I A L w i t h o u t l o s i n g t h e c u r r e n t s o u r c e program. A f t e r +EX, DIAL h a l t s . Press t h e CONT c o n s o l e s w i t c h t o r e t u r n t o D I A L . 5.8 U S E R ' S MONITOR COMMAND +MC X = v a l u e i n l e f t of Accumulator ( X ) = v a l u e i n r i g h t o f Accumulator ( o p t i o n a l ) U = u n i t t o be read T h e U s e r ' s Monitor command a l l o w s t h e DIAL u s e r t o d e f i n e an individualized function to the Editor. The MC command i s s i m i l a r t o t h e Load B i n a r y command, b u t w i t h twc a d d i t i o n a l f e a t u r e s : 1. B l o c k 270 of the free area is read i n t o core- 2. Arguments are p a s s e d by t h e E d i t o r u s i n g t h e Accumulator. 5-4 When the MC command is issued, block 2 7 0 of unit U is read into core Locations 4 0 0 0 to 4 3 7 7 and the program is started in LINC mode at location 4 0 2 0 . Block 2 7 0 is the first block of an eight block free area on the DIAL tape and is accessed by the MC command. Since DIAL will never use these blocks, the user can retrieve any or a l l by using absolute references; there is no need to access the DIAL directory. The DIAL code of the alphabetic character X is placed in the left half of the Accumulator. The value of the second character, which can be alphabetic or numeric, is placed in the right half of the Accumulator. I f the second character is omitted, the value 7 7 is placed in the right half of the Accumulator automatically. 5.9 PERIPHERAL INTERCHANGE PROGRAM [ P I P ) +PI 3 P I P for the PDP-12 permits the user to transfer source or binary files between devices such as a LINC tape, high-speed paper tape reader/punch, card reader, or line printer. P I P is a user's program, residing in the file area, and is not necessarily resident on unit @ with the DIAL source programs. ing P I P by the command +PI k equivalent to +LO P I P , B . P I P is moved to a unit other than Call- Thus, if the + P I command is inoperable. The appropriate tape unit may be substituted for unit j3 in the +LO P I P command above to call the program. Mode Options When P I P is started, tne following message is displayed. 5-5 Note that lower case l e t t e r s a r e used h e r e t o i n d i c a t e h a l f s i z e c h a r a c t e r s on t h e s c o p e . P I P OPTIONS a--- a u x i l i a r y mode b--- b i n a r y mode s---source mode reply: The f i l e t o be m a n i p u l a t e d by P I P must be d e s c r i b e d a t t h i s t i m e . Only one of t h e 3 s i n g l e l e t t e r a b b r e v i a t i o n s n e e d s t o be t y p e d a f t e r reply. A c a r r i a g e r e t u r n t e r m i n a t e s a l l P I P command s t r i n g s . T h i s P I P d i s p l a y and a l l t h e s u b s e q u e n t o n e s a r e f o l l o w e d by r e p l y : and a s q u a r e - s h a p e d c u r s o r i n t h e l o w e r l e f t hand c o r n e r . When a r e s p o n s e i s t y p e d , i t i s s e e n a t t h e l o c a t i o n i n d i c a t e d by t h e c u r sor. The c u r s o r moves one c h a r a c t e r t o t h e r i g h t f o r e a c h c h a r a c t e r typed i n . When r e s p o n d i n g t o any P I P d i s p l a y , RUBOUT c a n be t y p e d t o d e l e t e t h e l a s t c h a r a c t e r t y p e d o r L I N E FEED c a n be t y p e d t o delete the entire line. I f an i l l e g a l c h a r a c t e r i s typed, it i s i g n o r e d and t h e P I P d i s p l a y i s r e t u r n e d t o t h e s c o p e . Typing CTRL/P w i l l a l s o r e t u r n t h e P I P O P T I O N S d i s p l a y t o t h e s c o p e a t any t i m e . CTRL/D may b e t y p e d t o r e t u r n t o D I A L . B i n a r y o r Source I n p u t A f t e r t h e mode h a s been a c c e p t e d , t h e i n p u t d e v i c e must b e s p e c i f i e d . I f t h e r e p l y t o t h e f i r s t P I P d i s p l a y w a s B o r S , t h e second P I P 5-6 d i s p l a y i s shown, as f o l l o w s : INPUT DEVICE h---high speed reader I---l i n c t a p e t--- t e l e t y p e c--- c a r d r e a d e r reply : The a u x i l i a r y mode o p t i o n s a r e d e s c r i b e d l a t e r i n t h i s s e c t i o n . I f L I N C t a p e i s t o be t h e i n p u t d e v i c e , t h e u s e r ' s r e s p o n s e t o t h e second PIP d i s p l a y m u s t be i n t h e f o r m a t Ln;NAME where L i n d i c a t e s t h e L I N C t a p e o p t i o n , n i s t h e LINC t a p e i n p u t u n i t number ((a - 7) f o l l o w e d by a semicolon, and NAME i s a 1 t o 8 c h a r a c t e r f i l e name. Thus, t o i n p u t a f i l e named ABC3 from LINC t a p e u n i t 4 t h e Correct command i s L4;ABC3. I f s o u r c e mode w a s chosen a s t h e f i r s t o p t i o n , t h e n d a t a may be i n p u t from t h e c a r d r e a d e r by t y p i n g a r e p l y o f CJ. Columns 1 - 1 1 0 8 a r e r e a d u n l e s s a r e s p o n s e i s g i v e n i n t h e form Caa;THRU,bb where aa i s t h e f i r s t column t o be r e a d and bb i s t h e l a s t column t o b e read. T o r e a d columns 5 0 t o 1 1 0 ( o c t a l ) t h e c o r r e c t s t r i n g i s C50;THRU,110. The c h a r a c t e r c o d e s used are n o t t h e c a r d r e a d e r c o d e s i n t h e PDP-12 U s e r Handbook. I n s t e a d , t h e y a r e t h e s t a n d a r d IBM-029 Keypunch codes (see Appendix B of " I n t r o d u c t i o n t o Programming" DEC-C-18). 5-7 There are some minor changes in that set to be compatible W ~ L I standard ASCII. CARD CODE 029 CHARACTER DIAL CHARACTER 8-8-2 NONE 1 8-8-5 - (Underscore) f 11-8-7 ---I(Logical not) 12-8-2 (Cent Sign) 12-8-7 I (Vertical Bar) / If the user desires he may substitute an entirely different character set into PIP (with the exception of BLANK). If, for binary input, the device is to be the high-speed reader or the Teletype, neither of which is file or unit oriented, the user's response is in the form DF;Mode,Address where D is the device abbreviation ( H or T), and F is the memory field and is specified only for field 1 or larger. Mode is indicated by L for L I N C Mode and by P for PDP-8 Mode and Address is the starting address. If Mode and Address are omitted, the program just loaded will not start. The mode must be specified for the program to start after it has been read. The punctuation marks are always required if the items after them are specified. If no Address is given, a L I N C Mode operation will start at location 4020 and a PDP-8 mode operation will start at location 200. A carriage return terminates the command string. 5-8 C o n s i d e r t h e f o l l o w i n g examples. H;P I n p u t i s from t h e high-speed reader and w i l l s t a r t i n PDP-8 mode a t l o c a t i o n 2 0 0 . Hl;P,1000 I n p u t i s from t h e high-speed r e a d e r and w i l l s t a r t i n PDP-8 mode a t l o c a t i o n 1 0 0 0 i n memory f i e l d 1. T;L,6000 I n p u t i s from t h e T e l e t y p e and w i l l s t a r t i n L i n c Mode a t l o c a t i o n 6 0 0 0 . H I n p u t i s from t h e high-speed r e a d e r and w i l l n o t be s t a r t e d . I f t h e s p e c i f i e d f i l e i s n o t a t t h e i n d i c a t e d l o c a t i o n , NO w i l l be d i s p l a y e d on t h e s c o p e . R e t u r n t o PIP by t y p i n g CTRL/P o r r e t u r n t o D I A L by t y p i n g CTRL/D a t t h i s t i m e . When t h e high-speed reader i s t h e i n p u t d e v i c e , t h e t a p e must b e i n t h e reader u e f o r e t h e c a r r i a g e r e t u r n i s t y p e d t o t e r m i n a t e t h e o u t - p u t d e v i c e command s t r i n g . For A S C I I p a p e r t a p e i n p u t , t h e c h a r a c t e r CTRL/Z must t e r m i n a t e t h e i n p u t . I t must be p r e s e n t a s t h e l a s t c h a r a c t e r on t h e t a p e o r t y p e d on t h e T e l e t y p e a f t e r t h e t a p e h a s been read i n . CTRL/Z I f t h e t a p e had o r i g i n a l l y been punched by PIP, a w i l l a l r e a d y be p r e s e n t a t t h e end o f it. B i n a r y o r Source O u t p u t When a r e s p o n s e t o t h e i n p u t d e v i c e d i s p l a y h a s been a c c e p t e d , t h e o u t p u t d e v i c e must be s p e c i f i e d . t h e scope. 5-9 The f o l l o w i n g d i s p l a y a p p e a r s on OUTPUT DEVICE h--- h i g h s p e e d punch l---linc tape t--- t e l e t y p e p---line printer reply: I f t h e L I N C t a p e i s t o be t h e o u t p u t d e v i c e , a r e s p o n s e i n t h e same f o r m a t as w a s used t o s p e c i f y L I N C t a p e a s t h e i n p u t d e v i c e i s required. Never a s k t o copy a f i l e o n t o i t s e l f by u s i n g t h e same name and t h e s a m e u n i t f o r b o t h t h e i n p u t and o u t p u t commands. w i l l d e s t r o y t h e named f i l e . unit This T o l o c a t e t h e f i l e PAUL on L I N C t a p e fl t h e c o r r e c t command s t r i n g i s Lfl;PAUL. When u s i n g L I N C t a p e as t h e i n p u t o r o u t p u t d e v i c e f o r any P I P o p e r a t i o n , b e s u r e t o s p e c i f y t h e name o f t h e f i l e . I f t h e f i l e name i s o m i t t e d when s p e c i f y i n g L I N C t a p e o u t p u t , t h e f i l e i s a s s i g n e d name q u e s t i o n mark ( ? ) by P I P . the The f i l e w i l l be a c c e s s i b l e o n l y by u s i n g P I P and t h e name ? o r no name. I f t h e f i l e name i s o m i t t e d when s p e c i f y i n g L I N C t a p e i n p u t , P I P c a n l o c a t e o n l y a f i l e named ? I f t h e r e i s no f i l e w i t h t h a t name, t h e n NO w i l l b e d i s p l a y e d on t h e scope. Only a r e t u r n t o P I P o r D I A L c a n be g e n e r a t e d a t t h i s t i m e . I f no u n i t is s p e c i f i e d when u s i n g P I P t o p e r f o r m a L I N C t a p e o p e r a tion, unit fl is assumed. I f t h e r e i s n o t s u f f i c i e n t room on t h e i n d i c a t e d t a p e , NO i s d i s played. Type CTRL/P t o r e t u r n t o t h e f i r s t P I P d i s p l a y o r CTRL/D 5-10 t o r e t u r n t o DIAL. I f a f i l e w i t h t h e same name i s a l r e a d y l o c a t e d on t h a t t a p e , t h e message REPLACE? i s d i s p l a y e d . Type R J i f the p r e s e n t f i l e i s t o r e p l a c e t h e e x i s t i n g f i l e o r , i f it i s n o t t o rep l a c e i t , t y p e CTRL/P t o r e t u r n t o t h e f i r s t P I P d i s p l a y o r CTRL/D t o return t o DIAL. F o r high-speed punch, T e l e t y p e , o r l i n e p r i n t e r o u t p u t , o n l y t h e letter abbreviation is required. The punch w i l l t y p e l e a d e r t a p e When t h e o u t p u t d e v i c e command s t r i n g i s t e r m i n a t e d , automatically. typing a carriage r e t u r n i n i t i a t e s t h e s p e c i f i e d operation. Note t h a t t a p e punched u s i n g P I P can b e r e a d d i r e c t l y i n t o D I A L by t h e Teletype reader. If t h e i n p u t d e v i c e w a s t h e p a p e r t a p e r e a d e r , t h e n a f t e r t h e f i r s t t a p e h a s been read i n , t h e f o l l o w i n g d i s p l a y a p p e a r s on t h e s c o p e . MORE TAPES? a--- r e a d a n o t h e r t a p e n--- no more t a p e s reply: Type t h e a p p r o p r i a t e l e t t e r answer. f i l e immediately a f t e r t h e f i r s t o n e . by a CTRL/Z. A r e p l y o f A w 11 s t o r e t h e n e x t Each t a p e must b e t e r m i n a t e d Any o p e r a t i o n can be i n t e r r u p t e d by t y p i n g CTRL/P to r e t u r n t o t h e f i r s t PIP d i s p l a y o r by t y p i n g CTRL/D t o r e t u r n t o DIAL. A u x i l i a r y Mode I f t h e l e t t e r A w a s typed i n response t o t h e f i r s t P I P d i s p l a y , t h e f o l l o w i n g i s s e e n on t h e s c o p e . OPTIONS C--- copy s p e c i f i e d b l o c k s d---duplicate tape reply : 5-11 onto unit I I n a d d i t i o n t o s p e c i f y i n g t h e o p t i o n , a number c a n f o l l o w a r e p l y o f C o r D t o i n d i c a t e t h e number of c o n s e c u t i v e u n i t s o n t o which t h e s p e c i f i e d b l o c k s o r whole f i l e i s t o be t r a n s f e r r e d . A r e p l y of D w i l l p e r f o r m t h a t o p e r a t i o n immediately. A response o f C w i l l produce t h e second P I P d i s p l a y r e q u e s t i n g t h e i n p u t device. The o n l y a c c e p t a b l e i n p u t d e v i c e i s L I N C t a p e . The r e p l y must be i n khe f o r m a t L n ; f b , n b where f b i s t h e f i r s t b l o c k and nb i s t h e number o f b l o c k s t o be r e a d . Thus, L2;63,24 w i l l s t a r t i n p u t from L I N C t a p e u n i t 2 , b l o c k 63, and c o n t i n u e f o r 2 4 b l o c k s . N o t e t h a t b l o c k numbers a r e o c t a l . When t h e i n p u t r e s p o n s e h a s been a c c e p t e d , t h e P I P o u t p u t d i s p l a y i s s e e n on t h e s c o p e . tape. The o n l y a c c e p t a b l e o u t p u t d e v i c e i s L I N C The r e s p o n s e must be i n t h e form L n ; f b where n i s t h e number of t h e f i r s t c o n s e c u t i v e t a p e u n i t and f b i s t h e b l o c k where o u t p u t is t o start. During a l l P I P o p e r a t i o n , t h e program c h e c k s f o r t a p e errors. one i s e n c o u n t e r e d , t h e f o l l o w i n g message i s d i s p l a y e d . TAPE ERROR AT BLOCK nnnn a---accept r---try s--- as i s again (repeat t a p e operation) t r y t o skip past error reply: 5-12 When I t i s up t o t h e u s e r ' s d i s c r e t i o n t o choose o n e of t h e t h r e e above options. I f t h e problem i s a minor hardware e r r o r , s u c h as t h e WRITE ENABLE s w i t c h w a s n o t s e t , t h e n c h o i c e R can b e u s e d . If some o f t h e b l o c k numbers have been m o d i f i e d , t h e n c h o i c e S may s t i l l y i e l d a working system. The u s e r c a n always t y p e CTRL/P r e t u r n t o PIP o r CTRL/D t o r e t u r n t o D I A L . to For b i n a r y t a p e i n p u t , t h e e r r o r message CHECKSUM ERROR c a n o n l y b e f o l l o w e d by a r e t u r n t o P I P o r DIAL. I f t h e r e t u r n commands CTRL/P and CTRL/D ever f a i l t o o p e r a t e , PIP may b e r e s t a r t e d by s t o p p i n g t h e p r o c e s s o r , s e t t i n g t h e L e f t S w i t c h e s = 0 2 0 0 and p r e s s i n g t h e START LS c o n s o l e key. The f o l l o w i n g command sequences a r e examples o f PIP o p e r a t i o n s . 1. Copy t h e b i n a r y f i l e BINFILE from u n i t g t o u n i t 6. B LB; BINFILE L 6 ; BINFILE 2. Copy t h e s o u r c e f i l e PSL from u n i t 3 t o u n i t 7 . S L3; PSL L7 ;PSL 3. Copy t h e b i n a r y f i l e OLDNAME from u n i t 1 t o u n i t 7 and c a l l it NEWNAME. B L1;OLDNAME L7 ;NEWNAME 4. D u p l i c a t e t h e s o u r c e f i l e COPY1 on u n i t 2 and c a l l it COPY2 on t h e same u n i t . 5-13 S L2 ;C O P Y 1 L2 ;COPY2 Warning: Never copy a f i l e o n t o i t s e l f on t h e same u n i t . For example: B L 1 ; COPY1 L 1 ; COPY1 T h i s w i l l p o s s i b l y r e s u l t i n t h e d e s t r u c t i o n o f t h e f i l e COPY1. 5. Punch t h e s o u r c e f i l e HERE on u n i t 3 by t h e h i g h - s p e e d punch. S L 3 ;HERE H 6. Read i n I tape on t h e T e l e t y p e t h a t w a s n o t o r i g i n a l l y punched by P I P and s t o r e it as f i l e MARTY on t a p e u n i t (a. S T L(a ;MARTY When t h e t a p e i s f i n i s h e d t y p e CTRL/Z on t h e T e l e t y p e ( i f P I P had punched t h e t a p e o r i g i n a l l y t h e r e would b e a CTRL/Z at t h e end o f i t ) . Then t y p e N i f o n l y t h i s t a p e i s t o b e read or A 7. i f a n o t h e r t a p e i s t o be r e a d and added a f t e r t h e f i r s t tape. D u p l i c a t e t a p e (a o n t o t a p e 1. A D 8. D u p l i c a t e t a p e @ o n t o t a p e s 1, 2 , 3, 4 , and 5. 5-14 A D5 9. Copy b l o c k s 3 0 0 - 3 1 7 , u n i t 4 , t o blocks 200-217, unit 6. A C L4;300,20 L6;200 10. Copy b l o c k s 6 0 0 - 6 7 7 , u n i t 2 t o b l o c k s 7 0 0 - 7 7 7 of u n i t s 5 , 6 , and 7 . A c3 L2;600,100 L5; 700 11. Read i n a b i n a r y tape v i a t h e high-speed r e a d e r and s t o r e i t as f i l e J10 on u n i t g , where i t w i l l s t a r t a t l o c a t i o n 2 0 0 i n PMODE. B H;P Lfl;JlO 5-15 APPENDIX A I N I T I A L STARTING PROCEDURE Mount a D I A L t a p e on t a p e u n i t ,0. ( U n i t fl i s i n d i c a t e d by s e t t i n g t h e t a p e c h a n n e l i n d i c a t o r t o 8 on TU55 t r a n s p o r t s . ) Mount a n o t h e r t a p e on u n i t 1, i f r e q u i r e d . ( R e f e r t o commands, c h a p t e r 1.) S e t t h e s w i t c h e s of b o t h t a p e u n i t s t o REMOTE and s e t u r l i t $l t o WRITE ENABLE. S e t t h e mode s w i t c h t o L I N C mode and p r e s s I / O PRESET t o i n i t i a l i z e L I N C I n s t r u c t i o n F i e l d t o 2 and L I N C Data F i e l d t o 3. 5. S e t t h e L e f t S w i t c h e s t o g7/al and t h e R i g h t S w i t c h e s t o 73gg by r a i s i n g t h e s w i t c h e s i n d i c a t e d by i n d i c a t e d by + + and p u s h i n g down t h o s e i n t h e f o l l o w i n g diagram. ++++++++++++ + + + + + + + + + +++ Le f t S w i t c h e s Right Switches 6. P r e s s t h e DO c o n s o l e s w i t c h . 7. When t h e t a p e h a s s t o p p e d moving, p r e s s t h e START 20 key. A- L APPENDIX B ASSEMBLY ERROR MESSAGES During s o u r c e program a s s e m b l y , e r r o r messages i n t h e form of a 2 l e t t e r code a r e i n c l u d e d i n t h e program l i s t i n g . These messages d e f i n e i l l e g a l s y n t a x o r i n s u f f i c i e n t s p a c e e r r o r s and a r e e x p l a i n e d below. E r r o r Code IC ID IE Explanation I l l e g a l C h a r a c t e r - An i l l e g a l c h a r a c t e r w a s processed i n t h e i n s t r u c t i o n f i e l d ; the c h a r a c t e r i s i g n o r e d and t h e assembly i s continued. I l l e g a l r e d e f i n i t i o n o f a symboJ - An a t t e m p t w a s made t o g i v e a p r e v i o u s l y d e f i n e d symbol a new v a l u e by o t h e r means t h a n t h e e q u a l s i g n ; t h e symbol w a s n o t r e d e f i n e d . I l l e g a l expansion I l l e g a l equals wrong c o n t e x t . - D e l i m i t e r missing i n text. - An e q u a l s i g n w a s u s e d i n t h e - An o f f page r e f e r e n c e w a s IR I l l e g a l reference made. SE Symbol t a b l e exceeded - Assembly i s t e r m i n a t e d and c o n t r o l i s r e t u r n e d t o D I A L ; t h e symbol t a b l e may be expanded t o c o n t a i n up t o 8 9 6 u s e r symbols. us Undefined symbol - A symbol h a s been p r o c e s s e d during pass 2 t h a t w a s not defined before the end of p a s s 1. WA Working A r e a exceeded - Assembly i s t e r m i n a t e d and c o n t r o l i s r e t u r n e d t o D I A L ; more t h a n 1 0 0 8 b l o c k s of source program have been i n p u t for assembly. PS Push-down s t a c k exceeded - Too many symbols t o be e v a l u a t e d on one l i n e . B-1 APPENDIX C SUMMARIES C.l COMMAND SUMMARY All commands are issued in the form +Command ,) Command Function Assemble ( U = f l , l ) Load Binary Assemble and List (U=B,l) Assemble and Ouick List (U=fl,l) Print Source Save Binary Save Program (Source) Add Program (Source) Display Index Print Index Clear Working Area PI Peripheral Interchange EX Exit MC X(X), U User’s Monitor Command Legend : ( ) indicates an optional parameter N = File Name U = Tape Unit C-1 Legend: (Cont. ) L = L i n e Number MA = Mode (L f o r L I N C o r P f o r PDP-8) and Address (5 d i g i t s ) B = Tape Block Number X = Accumulator + = L i n e Feed > C. 2 = C a r r i a g e Return PSEUDO-OPERATORS Operation Pseudo-op Mode ASMIFM n 8/L Assemble i f n i s n e g a t i v e ASMIFN n 8/L Assemble i f n # 0 ASMIFZ n 8/L Assemble i f n = 0 ASMSKP n 8 /L Continue assembly a f t e r n l i n e s DECIMAL 8/L Sets decimal r a d i x f o r i n t e g e r i n p u t EJECT 8 /L P r i n t n e x t l i n e a t t o p o f n e x t page of l i n e p r i n t e r FIELD n 8/L D e f i n e s each 4 K o f memory: n = 0 o r 1 I 8 I n d i r e c t addressing LIST 8/L Negate NOLIST c o n d i t i o n LMODE 8 Causes LINC-8 i n s t r u c t i o n s and pseudoops t o be d e f i n e d s u b s e q u e n t l y LODSYM Load s a v e d symbol t a b l e (see below) NOLIST I n h i b i t octal-symbolic l i s t i n g OCTAL Sets o c t a l r a d i x f o r i n t e g e r i n p u t PAGE n S t a r t new page a t 11.200. m e t e r , s t a r t a t n e x t page (0 < n < 408) I f no p a r a - Pseudo-Operators (Cont.) Pseudo-op Mode Operation PMODE e Causes PDP-8 instructions to be defined subsequently SAVSYM n 8/L Saves symbol table for later assembly (n = 1 or 2) ( s e e b e l o w ) SEGMNT n 8/L Starts new segment at NX2000. If no parameter start at next segment. (0 < n < 7) TEXT 8/L Packs two 6-bit words per cell Z 8 Page zero reference The 2 cases requiring use of the SAVSYM pseudo-op and the procedure for assembling large programs with the SAVSYM and LODSYM pseudo-ops are discussed in detail in this section. Case 1. Assume that the user has defined the following symbols for his program. INDEX=34 6 /set the index pointer to 346 DISK=3 / 3 disks TTYIN=7423 /address of Teletype input routine TTYOUT=7520 /address of the Teletype output routines SAVSYM 1 /now save just these symbols (see below) "XXXX YYYY /the rest of the program The command SAVSYM 1 will cause the user defined symbols INDEX, DISK, TTYIN, and TTYOUT to be saved when the program is assembled. Any user symbols occurring later in the program will not be saved. At a later time in another program a LODSYM command will load these symbols into the symbol table without having to retype them. c-3 Case 2. If all symbols are to be saved in a common table, the SAVSYM 2 command is used. Thus, if SAVSYM 1 is replaced by SAVSYM 2 in the previous example, then the 4 user-defined symbols and all symbols to follow will be saved in the symbol table. This is useful in breaking up large assemblies, when all symbols are to be saved. If a symbol was redefined, the last definition assigned will be the one saved. Note that the more symbols defined and saved, the slower the Assembler will run. The symbol table is always stored in the Working Area on unit 1 near the binary output and the present symbol table. With SAVSYM 1 the symbol table is saved at this point in pass 1 of the assembly. With SAVSYM 2 the symbol table is saved at this point during pass 2 . The user who wants to save a set of common definitions or a common page zero with pointers should use the command SAVSYM 1 after the definitions on page zero. saved. No other symbols will be The user who wishes to save all his symbols because his program has to be split into sections should put the command SAVSYM 2 at the end of his program, assuring that all symbols will be properly defined. In either case, the symbols will be permanently saved unless one of the following occurs: 1. The tape is erased. 2. The tape is used for unit overwritten. c-4 workspace (source) and is 3. Another SAVSYM command is given at some later time and replaces the old symbol table with a new one. Assembling Large Programs with SAVSYM and LODSYM SAVSYM and LODSYM may be used to assemble a program that is longer than l o o 8 blocks, by breaking the program into several smaller files. To avoid symbol communication difficulties, SAVSYM and LODSYM are employed in the followina ., manner. PART 1 FROGRAM ~SAVSYM2 LGNGER t THAN 1 0 0 8 BLOCKS A SAVSYM 2 during the assembly of PART 1 will save all the symbols from PART 1. The LODSYM at the start of PART 2 loads in the saved symbol table, thus putting all the symbols from PART 1 and PART 2 into a common symbol table. The program is then assembled by the commands + AS PART 1 + AS PART 2 This method will only work if all the symbols referenced in PART 2 are defined in PART 1. Because most programs cannot easily be split so all references occur after definitions, the following c-5 t e c h n i q u e i s employed. PROGRAM 1 LONGER THAN LODSYM SAVSYM 2 BLOCKS CLEARSYM i i loos PART 1 PART 2 The program i s assembled by t h e f o l l o w i n g command s t r i n g . + A S CLEARSYM +AS PART 2 + A S PART 1 + A S PART 2 The program named CLEARSYM p r o d u c e s a c l e a n symbol t a b l e . The LODSYM i n PART 1 t h e n l o a d s i n t h i s c l e a n symbol t a b l e . PART 2 i s assembled f i r s t so t h a t a l l symbols i n t h a t p a r t w i l l be d e f i n e d when PART 1 i s a s s e m b l e d . generated a t t h i s t i m e . I g n o r e any error messages PART 1 and PART 2 a r e t h e n assembled c o r r e c t l y by u s i n g a SAVSYM 2 pseudo-op a t t h e end of e a c h p a r t and a LODSYM a t t h e s t a r t of e a c h . Any e r r o r messages g e n e r a t e d now i n d i c a t e r e a l e r r o r s i n t h e program. When s t a r t i n g a n a s s e m b l y , t h e Assembler d e s t r o y s t h e b i n a r y c o d i n g i n l o c a t i o n s 4000-4377. T h e r e f o r e , t h e u s e r must a s s e m b l e t h e p a r t c o n t a i n i n g t h i s s e c t i o n of code l a s t . s p l i t so t h a t l o c a t i o n s 4000-4377 a r e i n PART 2 , t h e n t h e sequence above w i l l a s s e m b l e t h e program c o r r e c t l y . s p l i t so t h a t l o c a t i o n s 4000-4377 C- 6 I f t h e program w a s I f t h e program w a s a r e i n PART 1, t h e n t h e c o r r e c t sequence of commands i s a s f o l l o w s . +AS +AS +AS +AS +AS CLEARSYM PART 2 PART 1 PART 2 PART 1 L o c a t i o n s 4 0 0 0 - 4 3 7 7 must be i n t h e l a s t p a r t a s s e m b l e d , no m a t t e r i n t o how many p a r t s t h e program h a s been s p l i t . The program may t h e n be l o a d e d d i r e c t l y , b u t c a n n o t be saved by a Save B i n a r y command d i r e c t l y b e c a u s e t h e b i n a r y h e a d e r b l o c k f o r the f i l e is incorrect. Only t h e l a s t p a r t of t h e program t o be assembled i s i n c l u d e d i n t h e h e a d e r b l o c k . Block 4 4 7 , t h e h e a d e r b l o c k , must be f i l l e d w i t h c o r r e c t i n f o r m a t i o n . Each word of b l o c k 4 4 7 from word 340 t o 3 7 7 r e p r e s e n t s 4008 words of t h e f i l e t o be s a v e d , a s f o l l o w s . BLOCK 4 4 7 Word 1 Word L o c a t i o n s R e p r e s e n t ed 1 --la,I -4 336, I1 I 3 3 7-. _- I _ I 34gi . unused t o t a l number word b l o c k s saved g- 377 . 377! - .- __ 174gP-17777 If any of t h e word l o c a t i o n s r e p r e s e n L e d c o n t a i n d a t a , t h e n t h e c o r r e s p o n d i n g word of b l o c k 4 4 7 must c o n t a i n t h e v a l u e 7 7 7 7 . If t h o s e word l o c a t i o n s a r e empty, t h e n t h e a p p r o p r i a t e word of b l o c k 447 contains 0000. c-7 T o c o r r e c t t h e h e a d e r b l o c k , l o a d 7 7 7 7 i n t o t h e c o r r e c t word of block 4 4 7 . When c o m p l e t e d , change word 337 of b l o c k 4 4 7 t o t h e t o t a l number of words between 340 and 377 i n b l o c k 4 4 7 t h a t c o n t a i n t h e value 7777. A Save B i n a r y command may t h e n be performed. C-8 c.3 CHARACTER SET Kevboard A B C D E F G H I J K L M N 0 P Q R S T U V w X Y Z [ (SHIFT/K) \ (SHIFT/L) 1 (SHIFT/M) -f f SPACE I II # $ % Ed 1 ( 1 * External (ASCII) 301 302 303 304 305 306 307 310 311 312 313 314 315 316 31 7 320 321 322 232 324 325 326 327 330 331 332 333 334 335 336 337 240 241 242 243 244 245 246 247 250 251 252 c -9 Interna 1 1 2 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 Illegal (not displayed) 40 41 42 Illegal (not displayed) 44 45 46 Illegal (not displayed) 50 51 52 C. 3 C h a r a c t e r S e t ( C o n t ) Keyboard + I - i P 1 2 3 4 5 6 7 8 9 I < > ? @ L I N E FEED RETURN ALTMODE RUBOUT CONTROL/I (TAB) External (ASCII) 253 254 255 256 257 260 261 262 263 264 265 266 267 270 271 272 273 274 275 276 277 300 212 215 375 377 211 c-10 Internal 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 I l l e g a l (not displayed) 37 43 ( n o t displayed) It None 11 N o n e I' 11 It 47 C.4 INSTRUCTIONS PDP-8 SYMBOLS Mnemonic Octal Operation AND TAD ISZ DCA JMS JMP MEMORY REFERENCE INSTRUCTIONS 0000 logical AND 1000 2s complement add 2000 increment & skip if zero 3000 deposit & clear AC 4000 jump to subroutine 5000 jump NOP IAC RAL RTL RAR RTR CML CMA CLL CLA GROUP 1 OPERATE MICROINSTRUCTIONS 7000 no operation increment AC 7001 7004 rotate AC & link left one 7006 rotate AC & link left two 7010 rotate AC & link right one 7012 rotate AC & link right two complement link 7020 7040 conplement AC 7100 clear link 7200 clear AC SPA GROUP 2 OPERATE MICROINSTRUCTIONS 7402 halts the computer 7404 inclusive OR switch register with AC 7410 skip unconditionally 7420 skip on nonzero link 7430 skip on zero link 7440 skip on zero AC 7450 skip on nonzero AC 7500 skip on minus AC 7510 skip on plus AC (zero is positive) CIA STL GLK STA LAS COMBINED OPERATE MICROINSTRUCTIONS 7041 complement & increment AC 7120 set link to 1 7204 get link (put link in AC, bit 11) 7240 set AC = -1 7604 load AC with switch register HLT OSR SKP SNL SZL SZA SNA SMA c-11 PDP-8 Symbols (Cont) Mnemonic Octal Operation IOT MICROINSTRUCTIONS Program Interrupt turn interrupt on ION 6001 turn interrupt off 6002 IOF Keyboard/Reader KSF 6031 KCC 6032 KRS 6034 KRB 6036 Teleprinter/Punch TSF 6041 TCF 6042 TPC 6044 TLS 6046 Clock CLSK CLLR CLAB CLEN CLSA CLBA CLCA 6131 6132 6133 6134 6135 6136 6137 skip if keyboard/reader flag = 1 clear AC & keyboard/reader flag read keyboard/reader buffer clear AC & read keyboard buffer, & clear keyboard flag skip if teleprinter/punch flag = 1 clear teleprinter/punch flag load teleprinter/punch 'buffer, select & print load teleprinter/punch buffer, select & print, and clear teleprinter/punch flag skip on clock interrupt load clock control register 1 AC to buffer preset register load clock control register clock status t o AC buffer preset register to AC counter to AC Extended Memory (Type MC8/I) CDF 62111 change to data field n CIF 62n2 change to instruction field n RDF 6214 read data field into AC RIF 6224 read instruction field into AC RMF 6244 restore memory field RIB 6234 restore instruction field Processor Mode Change LINC 6141 change to LINC mode processing c-12 LINC SYMBOLS Operation Mnemonic Octal ADD ADA ADM LAM 2000 1100 1140 1200 MUL MULTIPLY 1240 signed multiply LDA LDH 1000 1300 STC STA STH 4000 1040 1340 ROL N ROR N SCR N SHIFT/ROTATE 240 rotate left N places 300 rotate right N places 340 scale right N places ADD - LOAD - add memory to A (full address) add memory to A (index class) add A to memory (sum a l s o in A) add link and A to memory (sum also in A) load A, full register load A, half register STORE store and clear A (full address) store A (index class) store half A OPERATE HLT 0 NOP CLR SET 16 11 40 JMP QAC 6000 5 BCL BSE BCO COM Halt no operation clear A and LINC set register N to contents of register Y jump to register Y MQ transfer to A LOGICAL OPERATIONS 1540 hit clear (any combination of 12-bits) 1600 bit set (any combination of 12-bits) 1640 bit complement (any combination of 12 bits) 17 complement A C-13 LINC Symbols (Cont) Mnemonic Octal Operation SKIP Skip next instruction if: SAE SHD 1440 1400 SNS N SKP AZE APO LZE IBZ FLO QLZ SXL N KST SR0 0440+N 0467 0450 0451 0452 0453 0454 0455 0400+N 0415 XSK 0200 STD 0416 1500 A equals memory register Y right half A unequal to specified half of memory register Y SENSE switch N is set unconditional skip A equals 0000 or 7 7 7 7 A contains positive number link bit equals 0 between blocks on LINC tape add overflow is set bit 11 of Z register equals $3 external level N is preset keyboard has been struck rotate memory register right one place; then if bit 0 of Y equals 0, skip next instruction contents of Y equal 1 7 7 7 ; index memory register if I bit set tape instruction completed LSW IOB INPUT/OUTPUT 0014 A to relay buffer 0015 relay buffer to A 0100+N sample analog channel N 0140 display point on oscilloscope 1740 display character on oscilloscope ( 2 x 6 matrix) 0002 change to PDP-8 mode 0516 RIGHT SWITCH register to A 0517 LEFT SWITCH register to A 0500 I/O bus enable LIF LDF 0600 0640 ATR RTA SAM N DIS DSC PDP RSW MEMORY change instruction field change data field c-14 L I N C Svmbols (Cont) Mnemonic Octal RDE RDC RC G WRI WRC WCG CHK MTB 0702 07 0 0 0701 0706 07 04 07 0 5 0707 0703 Operation L I N C TAPE r e a d one b l o c k i n t o memory r e a d and check one b l o c k r e a d and check N c o n s e c u t i v e w r i t e one b l o c k on t a p e w r i t e and check one b l o c k w r i t e and check N b l o c k s check one b l o c k of t a p e move t a p e toward s e l e c t e d b l o c k a EXTENDED OPERATIONS ESF TAC TMA AX0 DJR MSC SFA 0004 0003 0023 0001 0006 0000 0024 enable s p e c i a l functions tape control register t o A A t o tape control register A t o extended o p e r a t i o n s b u f f e r d i s a b l e Jump R e t u r n Save miscellaneous special functions t o A C-15 C.5 OPERATORS AND SPECIAL CHARACTERS Char ODeration Mode Assign symbolic address I * Origin - dependent on mode (LINC or PDP-8) Define parameters + Combine symbols or numbers Combine symbols or numbers Has value of current location counter Comment L Add l o 8 to instruction L 8 Add 208 to instruction Add 4008 to instruction Terminate coding line I SPACE IOR Logical AND 1 \ Logical IOR L Operator x\y= 1o0o8~+y C-16 Systems U n i t : S c r a t c h Unit: 1 j3 B B FILE FILE FREE W6-Drn INDEX 267 277 FREE !67 !77 145 147 345 347 I1 367 1 167 BINARY OUTPUT ( 4 0 8 ) 127 WORKING AREA 146 :47 166 167 $67 FILE FILE '77 777 C-17 C. 7 SAMPLK PROGRAM The f o l l o w i n g l i s t i n g i s a n example of a program which w i l l r e a d i n a p a p e r t a p e i n image mode. binary). (PIP w i l l read i n only source o r T h i s program r e a d s i n 8 b i t s from t h e T e l e t y p e and p u t s i t i n one word, r i g h t j u s t i f i e d , and packed w i t h z e r o e s . i s t h e n w r i t t e n o u t o n t o t h e Working A r e a of u n i t 1. The d a t a Sense s w i t c h pI i s u s e d t o i n d i c a t e when t h e end of t h e t a p e h a s been r e a c h e d and t h e n t o r e s t a r t D I A L . Once t h e d a t a i s w r i t t e n on t a p e , it can be c o p i e d and used as i n p u t t o a n o t h e r u s e r program. Remember t h a t t h i s program i s a n example and i s n o t t h e o n l y way t o do t h i s task. *2a / / / / gL3aQl 0@Zll 00@2 arila3 3004 0005 @go6 8887 / / / / / / / / / jllY11@ gal1 gal2 ala13 a014 0015 811116 0017 / / 0 0 2 ~ 011121 0022 Bid23 0024 8025 0026 0027 0030 0031 0832 m033 T H I S PROGRAM WILL R E A 0 I N A P A P E R T A P E AND P L A C E THE CONTENTS OF I T ON L I N C TAPE. THE PAPER TAPE IS READ AS AN 8 B I T CODE AND IS P A C K E D ONE C H A R A C T E R PER WORD, R I G H T J U S T I F I E D i W I T H THE L E F T B I T S C O N T A I N I N G ZERO. THE DATA IS W R I T T E N ONTO THE WORKING A R E A OF UNIT 1, STARTING A T B L O C K 370. S E N S E S W I T C H 0 IS THE END OF I N P U T S I G N A L , I F THERE IS T O O MUCH DATA, THE PROGRAM N I L L H A L T W I T H 7777 I N THE A C , WHEN F I N I S H E D , THE PROGRAM WILL RESTART D I A L . 91 CjBkJl d@Bm / / BLOCKNi 0 L<6@2 ddB0 BLOCKC, 0 21803 O0OB POINT, 0 f4!$@4 8gBd BCOUNT, ld /CURRENT BLOCK NUMBER / B E I N G W R I T T E N ON, /NUMBER OF BLOCKS L E F T / I N THE W O R K I N G A R E A , / P O I N T S TO NEXT F R E E /SPACE I N BUFFER, /NUMBER OF F R E E WORDS /LEFT I N BUFFER, / C-18 8834 8835 0836 / / / 0@37 @04@ a841 dg42 d843 a1344 8345 Om46 2847 16650 0051 0052 a853 a054 5055 0056 0d57 08 63 !la41 915 DIAL, 6J 5 6 g460 hd42 d508 LOOP # INLOOP, 4833 C634 6d38 @Y35 a500 4036 6036 SO63 E224 6030 1GlLJB Oak71 1560 70p10 1620 DUMP 0104 0106 0107 3 4847 1000 4052 LOA I 2121 ESF SET I BLOCKN WKAREA-1 SET I BLOCKC -WKS I Z E - I JMP RESET SNS I 0 JMP DUMP IOB PMOOE KSF LMODE JMP INLOOP 106 PMOOE KRB LMODE STA I POINT XSK I BCOUNT JMP INLOOP LOA BLOCKN BCL I -777 BSE I PMODE BUFFER+40083000 LMODE e +2 STC 0110 0111 a112 0113 0114 0115 0116 / S E T DATA F I E L D 70 3 /READ I N D I A L / 8 BLOCKS FROM BLOCK 300 a20 START, aim3 0105 LDF RCG 380 DIAL WILL START HERE, 0862 8663 0864 0865 8066 0067 W07a 0@71 0072 0073 0074 80 75 0076 a077 010B 0101 0102 T H I S IS THE BOOTSTRAP TO RESTART DIAL, 0714 0000 044fl 6027 6015 WRC 0000 U SNS 0 LOOP DIAL JMP JMP / c-19 /I-0 PRESET CODE / D O 1-0 PRESET / I N I T I A L I Z E POINTER / T O WORKING A R E A - 1 / S E T COUNTER T O WORKING /AREA S I E € * l T O ALLOW /FOR RESET / S T A R T O F A NEW BLOCK /SENSE S W I T C H 0 NOT U P ? / I T IS UP, DUMP BUFFER / D O PDP-8 /IS IOT A CHARACTER READY? /NO CHAR THERE, /CHAR THERE /READ WAIT I N THE CHAR / P L A C E I N BUFFER /BUFFER F U L L ? / N O * G E T ANOTHER WORD. / Y E S , WRITE OUT BUFFER /ONLY 9 B I T S OF I N T E R E S T /AND W I T H 7 7 7 /SET CORRECT FIELO B I T S /FOR 1 2 B I T C A L C U L A T I O N / S E T S CORRECT B I T S ON /GET BLOCKN NUMBER AND PLACE / I N WRITE I N S T R U C T I O N / W R I T E OUT O N U N I T 1 /BLOCK NUMBER GOES HERE /SENSE S W I T C H 0 U P ? / G O BACK AND GET SOME M O R E / Y E S , LOAD I N D I A L , '0117 0120 0121 0122 0123 0124 0125 0126 0127 0130 01 3 1 0132 0133 0134 0135 a136 0137 014P a141 Ii3142 0143 0144 t 0G56 @IT157 flu60 PB61 8062 0063 @a64 0 2 2 1 RESET, B063 4377 0064 7377 0222 60@0 Od65 la2Q 8866 MB67 PO70 7777 XSK I BLOCKN SET I POINT BUFFER-1 SET I BCOUNT -400 XSK I BLOCKC 000Q JMP LDA I 7777' HLT 6065 JMP 0 -3 /INCREMENT BLOCK NUMBER /SET BUFFER POINTER /SET BUFFER WORD COUNTER NOW / 4 0 0 OCTAL=256 DECIHAL / T O O MUCH D A T A ? /NO, RETURN /YES. /ONLY HALT WITH 7 7 7 7 I N A C A RESTART PERMITTED NOW / / / WKSIZE=100 WKAREA=370 BUFFER=4400 / / BCOUidT 403114 BLOCKC 4 0 0 2 BLOCKN 41;2)81 BUFFE8 4 4 0 d DIAL 4015 DUMP 4a42 INLOOP 4 0 3 0 LOOP 4027 POINT 4003 RESET 4056 START 4020 WKAREA E 3 7 0 W K S I Z E El00 c-20 / W O R K I N G AREA S I Z E IS 1100 BLOCKS /WORKING AREA S T A R T S FROM /BLOCK 3 7 0 / T A P E BUFFER AREA r - - I I I I I I ? I 51 I I I . 3 3' %I !I I I I c-21 INDEX A H Add Program, 5-1 Address Assignment, 3 - 8 A/D Knob 3 , 2 - 1 A/D Knob 7, 1 - 4 , 2-2 A s s e m b l e , 4-1 Assembler, 3-1 Assembly Programs 4 - 1 Assemble, 4-1 L i s t , 4-1 Load B i n a r y , 4-7 Q u i c k L i s t , 4-3 Save B i n a r y , 4-5 A u x i l i a r y Mode, P I P , 5-10 Hardware R e q u i r e m e n t s , 1-1 Header Block, 1-5, 4-6, C-7 1 Index, 1 - 2 I n p u t O p t i o n s , PIP, 5-6 Instructions LINC, C-13 PDP-8, C - 1 1 1 B L a b e l , 3-2, 3-6 Large Programs, 2-8 Large S e c t i o n D e l e t i o n , 2-4, L i n e C a l l , 1-4 L i s t , 4-1 Load B i n a r y , 4-7 B u f f e r , s e c o n d a r y , 2-8 C C h a r a c t e r E d i t i n g , 2-2 C h a r a c t e r s , L e g a l , 3-10, C l e a r , 5-2 Commands, 1 - 6 , C - 1 Comment, 3-3 C u r r e n t L i n e , 1-3 D e l e t i o n , 2-3 F o r m a t t i n g , 2-6 Cursor, 2-1 C-9 M Mode O p t i o n s , PIP, 5-5 N Numbers, 3-7 D Delete L e f t , 2-4 Delete R i g h t , 2-5 D i s p l a y I n d e x , 5-2 0 Operand, 3-2, 3-7 O p e r a t o r , 3-2, 3-6, 3-7, C - 1 6 Output O p t i o n s , PIP, 5-9 E Editor, 2-1 E r r o r Messages, B - 1 Exit, P 5-4 PDP-12B, E x p r e s s i o n s , 3-7 F F i l e s , 1-5 - -. ? 6 1-1, 2-2 P I P , 5-5 A u x i l i a r y Mode, 5-11 I n p u t O p t i o n s , 5-6 Mode O p t i o n s , 5-5 O u t p u t O p t i o n s , 5-9 P r i n t I n d e x , 5-3 P r i n t S o u r c e , 5-3 C-5 P s e u d o - o p e r a t o r s , 3-11, C - 2 ASMIFx, 3-14 ASMSKP, 3-14 DECIMAL, 3-12 EJECT, 3-14 F I E L D , 3-11 LIST, 3-12 LMODE, 3-11 LODSYM, 3-16, C-5 NOLIST, 3-12 OCTAL, 3-12 PAGE, 3-13 PMODE, 3-11 SAVSYM, 3-16, C - 3 , C-5 SEGMNT, 3-11 TEXT, 3-12 T Tape A l l o c a t i o n , C-17 U U s e r ' s Monitor Command, 5-4 U t i l i t y Programs and Commands, 5-1 Add Program, 5-1 C l e a r , 5-2 D i s p l a y I n d e x , 5-2 E x i t , 5-4 P e r i p h e r a l I n t e r c h a n g e ( P I P ) , 5-5 P r i n t I n d e x , 5-3 P r i n t S o u r c e , 5-3 Save Program, 5-1 U s e r ' s Monitor Command, 5-4 Q Quick L i s t , 4-3 V V a l u e s , 3-4, 3-5 S Sample Program, C-18 Save B i n a r y , 4 -5 Save Pcogram, 5-1 S o u r c e Programs, 1-3 S t a r t i n g Procedure, A-1 S t a t e m e n t S y n t a x , 3-1 Symbols, 3-3 P e r m a n e n t , 3-3 U s e r - d e f i n e d , 3-4 System D e s c r i p t i o n , 1-1 W Working A r e a , 1-2 HOW TO OBTAIN SOFTWARE INFORMATION Announcements for new and revised software, as well as programming notes, software problems, and documentation corrections are published by Software Information Service in the following newsletters. Digital Software News for the PDP-8 Family Digital Software News for the PDP-9/ 15 Family PDP-6/PDP-10 Software Bulletin These newsletters contain information applicable to software available from Digital’s Program Library. Please complete the card below t o place your name on the newsletter mailing list. Questions or problems concerning DEC Software should be reported t o the Software Specialist at your nearest DEC regional or district sales office. In cases where no Software Specialist is available, please send a Software Trouble Report form with details of the problem to: Software Information Service Digital Equipment Corporation 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 0 1754 These forms, which are available without charge from the Program Library, should be fully filled out and accompanied by teletype output as well as listings or tapes of the user program to facilitate a complete investigation. An answer will be sent to the individual and appropriate topics of general interest will be printed in the newsletter. New and revised software and manuals, Software Trouble Report forms, and cumulative Software Manual Updates are available from the Program Library. When ordering, include the document number and a brief description of the program or manual requested. Revisions of programs and documents will be announced in the newsletters and a price list will be included twice yearly. Direct all inquiries and requests to: Program Library Digital Equipment Corporation 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 01754 Digital Equipment Computer Users Society (DECUS) maintains a user Library and publishes a catalog of programs as well as the DECUSCOPE magazine for its members and non-members who request it. For further information please write to: DECUS Digital Equipment Corporation 146 Main Street Maynard, Massachusetts 01754 - - - - - - - - - - - - - - - Send Digital’s software newsletters to: Name Company Name Address My computer is a My system serial number is PDP-8/1 O LINC-8 O PDP-9 0 PDP-10 0 PDP-8/L O PDP-12 0 PDP-15 0 OTHER 0 (if known) (zip code) Please specify --- - - - - - - - - - - - Do Not Tear -Fold Here and Staple - - - - - - - - - - - - - FIRST CLASS PERMIT NO. 3 3 MAYNARD, MASS. BUSINESS REPLY MAIL NO POSTAGE STAMP NECESSARY IF MAILED IN T H E U N I T E D ST-ATFS Postage will be paid by: Digital Equipment Corporation Software Information Services 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 01 754 READER'S COMMENTS D I A L PROGRAMMER'S REFERENCE MANUAL DEC-12 -SE2A-D Digital Equipment Corporation maintains a continuous effort t o improve the quality and usefulness of its publications. To d o this effectively we need user feedback - your critical evaluation of this manual. Please comment on this manual's completeness, accuracy, organization, usability, and readability Did you find errors in this manual? ~~~ ~~ ~ ~~ ~ ~~ ~ ~ ~ How can this manual be improved'? DEC also strives to keep its customers informed of current DEC software and publications. Thus, the following periodically distributed publications are available upon request. Please check the appropriate boxes for a current issue of the publication(s) desired. 0 Software Manual Update, a quarterly collection of revisions to current software manuals. 0 User's Bookshelf, a bibliography of current software manuals. 0 Program Library Price List, a list of currently available software programs and manuals. Please describe y o u r position. Nanic Organization Street De part men t City State Zip o r Country -------__---_- Do Not Tear - F o l d Here and Staple - - - - - - - - - - - - - FIRST CLASS PERMIT NO. 3 3 M A Y N A R D , MASS BUSINESS REPLY MAIL NO POSTAGE STAMP NECESSARY IF MAILED IN THE U N I T E D STATES Postage will be paid by: Digital Equipment Corporation Soft ware Informa tion Services 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 01 754 I Digital Equipment Corporation Maynard, Massachusetts printed in U.S.A
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies