*20 /DAN GRAY /TITLE: DANSPY /NOVEMBER 20, 1970 /THIS PROGRAM MEETS THE REQUIREMENT /OF THE LABORATORY ASSIGNMENT FOR /READING AND DISPLAYING A DATA /BLOCK OFF TAPE AND THE REQUIREMENTS /OF A TERM PROJECT. /THIS PROGRAM HAS THE FOLLOWING OPTIONS /AND CONTROLS: /RIGHT SWITCHES DETERMINE BLOCK NUMBER /AND UNIT NUMBER(BIT ZERO ON = UNIT 1). /NO SENSE SWITCHES CONDITION SELECTS /BINARY DISPLAY OF TAPE BITS AS PER /LAB ASSIGNMENT. DATA FUNCTION /DISPLAYED CAN BE MOVED UP AND DOWN /WITH POT ZERO. /SNS 0= SCANNING TAPE BLOCKS AT A RATE / DETERMINED BY POT 1 /SNS 1= SCANNING TAPE FORWARD OR BACK /SNS 2= SOURCE DISPLAY WITH NUMBER OF / LINES CONTROLLED BY POT 6 / AND MOVEMENT OF LINES UP OR DOWN / WITH POT 2. /SNS 3= DISPLAY CURSOR LINE IN BINARY / MODE AND CURSOR BOX IN OCTAL / MODE. WHEN CURSOR IS DISPLAYED / WORDS CAN BE CHANGED BY SETTING / LEFT SWITCHES TO DESIRED VALUE / AND HITTING LETTER "C" ON TTY. / CHANGE IS MADE PERMANENT ON TAPE / BY HITTING COLON KEY ON TTY. / CURSOR IS MOVED THROUGH BLOCK / WITH POT 5. /SNS 5= OCTAL DISPLAY OF BLOCK. THE / FIRST COLUMN IS WORD NUMBER / OF THE START OF THAT LINE. / THIS SWITCH OVERRIDES SOURCE / SWITCH NO. 2. NUMBER OF LINES / DISPLAYED IS CONTROLLED BY / POT 6 AND DISPLAY CAN BE MOVED / UP AND DOWN BY POT 2. MAXIMUM / DISPLAY IS ONE-HALF BLOCK. /SNS 4= SELECTION OF BOTTOM HALF OF / BLOCK. /HIT KEY "D" ON TTY TO RETURN TO DIAL. START, CLR RSW /BRING IN BLOCK STA /NUMBER AND UNIT SW BCL I 7000 STC BN SFA BCL I /CHANGE TO SMALL 200 /PRINT ESF BEGIN, SET I 16 -3 /DIGITS IN BN SET I 17 /TABLE TO HOLD TAB1+3 /BN DISPLAY LDA BN ROL 3 PACK, ROL 3 ADA I /TO MAKE STRIP 60 /ASCII OF BN STH I 17 BCL I 0077 STH I 17 /PUT IN TAB1 XSK I 16 JMP PACK RSW APO JMP .+6 /SET UNIT NO. LDA /IN RDC COMMAND UNIT /FROM BIT 0 IN BCL I /RSW 10 JMP .+5 LDA UNIT BSE I 10 STC UNIT LDA BN BSE I /FOR MEM BLOCK 4000 /NO. FOUR STC BLOCK UNIT, RDC BLOCK, 0000 SAM 1 /POT 1=SPEED OF ADA I /SCANNING BLOCKS 777 STC 15 /STORED IN B-15 DISP, SET I 1 20 /HORIZ POSITION SAM 5 /POT 5=BOX APO /CURSOR POSITION JMP .+4 /2000-2377 BSE I 1000 JMP .+3 BCL I 7000 SCR 2 BSE I 2000 STC 6 /B6=CURSOR INDEX KST I JMP KEY /KEY STRUCK RSW SAE I SW, 0000 /SWITCH CHANGES? JMP START SET I 14 -6 /CHARACTERS IN SET I 17 /BN DISPLAY TAB1-1 /B17=INDEX FOR DISBN, LDA I 17 /TAB1 FOR DISP ROL 1 /B14=DISP N CHAR ADA I /B16=DSC REG FOR ZSTART-1 /BN DISPLAY STC 16 LDA I 360 DSC I 16 DSC I 16 LDA I 2 ADM 1 XSK I 14 JMP DISBN SNS I 5 /OCTAL?=SSW 5 JMP OCT SNS I 2 /SOURCE?=SSW 2 JMP SOURCE SET I 16 /NO? THEN BINARY 777 /B16=HORIZ FOR SET I 17 /BINARY DISP 3777 /B17=TAB2 INDEX SAM 0 /FOR BLOCK ADA I 777 SCR 1 /POT 0=VERT FOR STC Y1 /BINARY FUN, SNS 3 /SSW 3=CURSOR JMP NOCUR LDA 17 /INDEX=CURSOR? ADA I 1 BCL I 4000 BSE I 2000 SAE 6 JMP .+2 /YES THEN JUMP JMP CURSOR /CURSOR DISPLAY NOCUR, LDA I 17 SCR 1 /NO THEN DISPLAY ADA I /FUNCTION Y1, 0000 DIS I 16 XSK I 16 JMP FUN CHBN, SNS 0 /ROUTINE FOR JMP DISP /CHANGING BLOCK XSK I 15 /NUMBER JMP DISP /SSW 0=SCANNING LDA I /BLOCKS 1 /SSW 1=FORWARD SNS 1 /OR BACKWARD COM ADA I BN, 0000 /CURRENT BLOCK STC BN JMP BEGIN TAB1, 2 /B STRIP ASCII 16 /N FOR BN DISP 40 /SPACE 0 0 0 0 OCT, CLR /DISPLAY OCTAL SET I 17 /B-17 CLEAR MEM 2400 /BLOCK 5 STA 17 XSK I 17 JMP .-2 LDA I 350 STC Y2 /VERT FOR DSC SAM 2 /POT 2=MOVE OCT APO /UP AND DOWN JMP .+4 BSE I 1000 JMP .+3 BCL I 7000 SCR 6 ROL 3 SNS I 4 /SSW 4=TOP OR JMP .+4 /BOTTEM HALF OF ADA I /BLOCK 1777 JMP .+3 ADA I 2177 BSE I 2000 STC 17 /INDEX FOR TAB2 SAM 6 /REGISTER NUMBER ADA I /POT 6=NO. OF 1000 /LINES OF OCT BCL I /DISPLAY 6000 SCR 6 ADA I 1 COM STC 13 /INDEX FOR NO. NULIN, SET I 1 /LINES 20 /HORIZ INDEX SET I 14 -10 /TEN WORDS PER SET I 9 /LINE -3 /CHAR IN LINE NO LDA 17 ADA I 1 BCL I 7007 ROL 3 /SET UP DISC FOR STC ROW /ROW NUMBER ADA I ROW, 0000 ROL 3 STA ROW BCL I 7770 ADA I 60 /STRIP ASCII ROL 1 /FOR ROW NO ADA I ZSTART-1 STC 16 LDA Y2 DSC I 16 DSC I 16 /DISC ROW NO LDA I 2 ADM 1 CLR XSK I 9 JMP ROW-1 LDA I 20 /SPACE TO OCT ADM /LINE 1 SET I 12 -4 /OCTAL CHAR PER DISOCT, CLR /WORD SNS 3 /SSW 3= DISPLAY JMP NOBOX /BOX LDA 17 ADA I 1 BCL I 4000 BSE I 2000 SAE 6 /CURSOR POT JMP .+2 JMP OCTBOX /DISP BOX NOBOX, LDA I 17 STC REG NXTWD, LDA I REG, 0000 ROL 3 STA REG BCL I 7770 ADA I /STRIP ASCII 60 /OF OCTAL WORD ROL 1 ADA I ZSTART-1 STC 16 LDA I Y2, 0000 DSC I 16 /DISC OCT CHAR DSC I 16 LDA I 2 /SPACE TO NEXT ADM /CHAR 1 XSK I 12 JMP NXTWD LDA I 20 /SPACE TO NEXT ADM /WORD 1 XSK I 14 JMP DISOCT-2 LDA I -40 /SPACE TO NEW ADM /LINE Y2 XSK I 13 JMP NULIN JMP CHBN SOURCE, CLR /DISPLAY SOURCE LDA I 4343 /SET MEM BLOCK 5 SET I 10 /TO BLANKS 2400 STA 10 XSK I 10 JMP .-2 SAM 2 /POT 2 MOVES BCL I /SOURCE UP AND 7400 /DOWN ADA I 7777 BSE I 6000 STC 17 SAM 6 /POT 6 VARIES APO /NUMBER OF LINES JMP .+4 /DISPLAYED BSE I 1000 JMP .+3 BCL I 7000 SCR 5 COM STC 16 LDA I /VERTICAL COORD 370 /INATE STC Y3 CR, XSK I 16 JMP .+2 /ALL LINES DONE? JMP CHBN SET I 1 20 LDA I /HORIZONTAL -20 /COORDINATE ADM Y3 NEXT, CLR LDH I 17 SAE I 43 /CARRIAGE JMP .+2 /RETURN? JMP CR SAE I 45 /LINE FEED? JMP .+2 JMP LF SAE I 47 /TAB? JMP .+2 JMP TAB ROL 1 ADA I ZSTART-4001 STC 13 /INDEX FOR DSC LDA I Y3, 0000 DSC I 13 DSC I 13 LDA I 2 /SPACE BETWEEN ADM /LETTERS 1 LDA 1 COM ADA I /CR IF PAST 770 770 /CHARACTERS APO JMP CR JMP NEXT LF, SET I 1 /CARRIAGE 40 /RETURN AND LDA I /SET DISPLAY -20 /^ FOR LINE FEED ADM Y3 DJR XSK I 16 JMP .+2 JMP CHBN LDA I 36 JMP 0 TAB, LDA I 40 /SKIP FOUR ADM /SPACES 1 JMP NEXT PMODE *4800 ND, 7474 D, 304 NCOL, 7506 COL, 272 NC, 7475 LMODE KEY, CLR /SUBROUTINE FOR PDP /WHEN TTY KEY PMODE /STRUCK KRB TAD ND /D? THEN CALL SZA /DIAL LOADER JMP .+2 JMP LOADER TAD D TAD NCOL /COLON? THEN SZA /WRITE THAT TAPE JMP .+2 /BLOCK JMP CHT TAD COL TAD NC /C? THEN CHANGE SZA /WORD INDICATED JMP .+2 /BY CURSOR JMP CHW LINC LMODE JMP 0 PMODE LOADER, CLA LINC LMODE LDA I RCG STC 16 LDA I 7300 STC 17 JMP 16 PMODE CHW, LINC LMODE SNS 3 /SENS 3 MUST BE JMP 0 /ON LSW STA 6 /LEFT SWITCHES JMP 0 /INTO WORD PMODE CHT, LINC LMODE SNS 3 /SENS 3 MUST BE JMP 0 /ON LDA BLOCK STC BN2 LDA UNIT BCL I 7767 BSE I /WRITE ON TAPE WRC STC UNI UNI, 0000 BN2, 0000 JMP BEGIN OCTBOX, SET I 7 /TO DRAW BOX FOR -5 /OCTAL CURSOR SFA BSE I /B7=BOX LENGTH 200 ESF LDA I -10 ADM 1 LDA Y2 DSC I 4177 DSC I 4141 DJR XSK I 7 JMP .-4 DSC I 7741 SET I 7 -10 /DELAY FOR DJR /FINISHING BOX XSK I 7 JMP .-2 LDA I -60 ADM 1 SFA BCL I 200 ESF JMP 0 CURSOR, LDA I 17 /DRAW CURSOR STA /FOR BINARY DISP VALU SCR 1 SET I 11 -6 /CURSOR LENGTH ADA Y1 DIS I 16 DIS 16 ADA I 4 /SPACE BETWEEN XSK I 11 /DOTS JMP .-4 SET I 2 TAB3+7 SET I 3 -4 /DISPLAY VALUE LDA I /OF DISPLAY AT VALU, 0000 /CURSOR POSITION ROL 3 STA VALU BCL I 7770 ADA I 60 /B2=INDEX FOR STA I 2 /DISP VALUE XSK I 3 JMP VALU-1 /B3=NUMBER OF SET I 2 /CHARACTERS TAB3-1 SET I 3 -14 SET I 1 600 IND, LDA I 2 /ROUTINE FOR ROL 1 /DISPLAYING ADA I /VALUE ZSTART-1 STC 4 LDA I -320 DSC I 4 /B4=DSC INDEX DSC I 4 LDA I 2 ADM 1 XSK I 3 JMP IND JMP CHBN-2 TAB3, 26 /V 1 /A 14 /L 25 /U 5 /E 75 /= 40 /SPACE 40 /SPACE 00 00 00 PMODE *5600 /ADD PATRNS HERE