*20 PMODE *6003 LMODE FROZEN, 0 /<>0:OUPUT FROZN DISPON, 0 /0:TTY;<>0:SCOPE LCOUNT, 0 /LINE COUNTER FULLSN, 0 /0:HALT WHEN FUL ADBUFR, BUFFER+4000 /AD+1/2 BUFFER PMODE /6010: END-BUFFER POINTER *6020 WRITE, 0 /OUPUT ENTRY JMP WRITE1 /GO TO IT LMODE MLINES, 0 /-MAX DISP LINES CYCLES, 0 /AC CYCLE COUNTR RFRESH, 0 /CYCLES/REFRESH /CONTROL ARRIVES HERE ON INTERRUPT PMODE DISPLA, DCA ACSAVE /SAVE AC RAR DCA LSAVE /SAVE LINK CLSA AND C60 /TRIGGER 1 ? SNA CLA JMP RETURN /NO:FALSE ALARM ISZ CYCLES /REFRESH YET? JMP RETURN TAD RFRESH /YES:RESET CYCLE DCA CYCLES /COUNTER LINC LMODE ESF /HALF-SIZE SET I 11 /DISP BUFF POINT BUFFER /AD BEG BUFFER LDA I 360 /TOP LINE V.C. STC Y DLINE, SET I 1 /LEFTMOST H.C. -2 LDH I 11 /NEXT BUFF CHAR AZE I JMP RETURN-1 /0=END BUFFER SHD I 4000 /DONT DISP BLANK JMP BLANK SHD I 4300 JMP NXLINE /END OF LINE ROL 1 ADA I PATRN-2 STC 2 /AD PW PAIR LDA I Y, 0 /CURRENT V.C. DSC 2 DSC I 2 /DISPLAY CHAR XSK I 1 /CHAR SPACING JMP DLINE+2 /NEXT CHAR BLANK, LDA I 11 /SKIP CHAR POSN ADM 1 JMP DLINE+2 NXLINE, LDA I -20 /LINE SPACING ADM Y JMP DLINE /NEXT LINE PDP PMODE RETURN, CLA CLL TAD LSAVE RAL /RESTORE LINK TAD ACSAVE /RESTORE AC RMF / " MEM FIELDS ION JMP I 0 /RETURN MAINLINE ACSAVE, 0 LSAVE, 0 C60, 60 ITYPE, TYPE / /END OF INTERRUPT HANDLER - DISPLAY / /CONTROL ARRIVES HERE WHENEVER FORTRAN /WRITE ON TTY GIVEN; IF DISPON=0,NORMAL /TTY ACTION TAKEN; IF NON-0,ASCII CHAR /STRIPPED AND ENTERED INTO DISPLAY /BUFFER. / WRITE1, DCA ASCII /SAVE 8-BIT CODE ISZ WRITE /INCR RETURN ADR TAD DISPON SNA CLA /TTY OR SCOPE? JMP I ITYPE /NORMAL TTY IOF /MOMENTARILY LINC LMODE ADD FROZEN /SCOPE FROZEN? AZE JMP CHTHAW /YES:CHECK&WAIT LDA I ASCII, 0 /8-BIT CODE SAE I 212 SKP JMP WRETRN /IGNORE LF SAE I 300 JMP .+4 LDA I 40 /AT-SIGN DISPL. JMP STORE /AS BLANK SAE I 243 /NUM SIGN DISP. SKP /AS BLANK JMP .-6 SHD I 0 /IGNORE 0N00 JMP WRETRN SAE I 215 /CR? JMP STORE /NO:STORE CHAR LDA I 43 /STORE CR AS 43 STH 10 /INTO BUFFER CLR STH I 10 /NEW 0=END ADD 10 SAE ENDBUF /END OF BUFFER? SKP JMP FREEZE /YES:FREEZE IT XSK I 5 /MAX LINES YET? JMP WRETRN /NO:RETURN LDA FULLSN /YES: ACTION? APO JMP FREEZE /<0:FREEZE DISP /FULLSN>=0: SHIFT DISPLAY UP ONE LINE, /DELETING TOP LINE FROM BUFFER. SET I 12 BUFFER LDH I 12 SAE I 43 /FIND END TOP LN JMP .-3 SET I 10 /SHIFT IT DOWN BUFFER LDH I 12 STH I 10 /SHIFT NEXT CHAR AZE /LAST OF BUFFER? JMP .-3 /NO: DO NEXT SET I 5 -1 /ROOM FOR 1 LINE JMP WRETRN /RETURN /SECTION "FREEZES" DISPLAY -- OCCURS /WHEN EITHER BUFFER FULL OR MAX LINES /DISPLAYED WITH "FREEZE" OPTION. IN /EITHER CASE, ALL FURTHER SCOPE OUTPUT /LOST UNTIL (ANY) TTY KEY STRUCK, AFTER /WHICH SCOPE CLEARED. FREEZE, SET I 3 1 /FROZEN=1 LDA I 207 /RING BELL AND PDP /RETURN PMODE JMP TYPE+1 /CONTROL ARRIVES HERE WHEN SCOPE FROZEN /AND FURTHER OUTPUT REQUIRED: CHECKS /FOR TTY KEY STRUCK; IF FOUND, CLEARS /BUFFER AND IS SET TO GO AGAIN. LMODE CHTHAW, KST /KEY STRUCK? JMP WRETRN /NO:RETURN FROZN CLR STC FROZEN /YES:DEFREEZE SET I 10 BUFFER /RESET BUFFR PTR STH 10 /0=END SET 5 MLINES /RESET LIN COUNT JMP WRETRN /SECTION STORES OUTPUT CHAR STORE, STH 10 /0 TO 6-BIT CHAR CLR STH I 10 /NEW ZERO=END ADD 10 SAE I /END OF BUFFER? ENDBUF, 5577 /7577 IS END!! SKP JMP FREEZE /END:FREEZE IT WRETRN, PDP PMODE /SETUP EFFECTIVE CLA /JMP I WRITE TAD I IWRITE /GET RET. ADR. DCA IWRITE-1 TAD I IDISPN /IF SCOPE MODE, SZA CLA /TURN INTERRUPT ION /BACK ON JMP I IWRITE-1 0 /=JMP I WRITE IWRITE, WRITE IASCII, ASCII IDISPN, DISPON /SECTION USED FOR NORMAL TTY OUTPUT /AND FOR BELL-RINGING IN FROZEN STATE TYPE, TAD I IASCII /GET STORED CODE TSF JMP .-1 TLS JMP WRETRN+1 /EXIT ABOVE /PATTERN WORDS FOR CHAR DISPLAY FOLLOWS LMODE PATRN, 4477 /A 7744 5177 /B 2651 4136 /C 2241 4177 /D 3641 4577 /E 4145 4477 /F 4044 4136 /G 2645 1077 /H 7710 7741 /I 0041 4142 /J 4076 1077 /K 4324 177 /L 301 3077 /M 7730 3077 /N 7706 4177 /O 7741 4477 /P 3044 4276 /Q 376 4477 /R 3146 5121 /S 4651 4040 /T 4077 177 /U 7701 176 /V 7402 677 /W 7701 1463 /X 6314 770 /Y 7007 4543 /Z 6151 4177 /[ 0000 2040 /\ 0410 0 /] 7741 2000 /^ 2077 3410 /BACK ARROW 1010 0 /BLANK 0 7500 /! 0 6006 /" 60 3614 /NUMBER SIGN 1436 7721 /DOLLAR SIGN 4677 1446 /% 6130 5166 /& 0523 500 /APOSTROPHY 6 4163 /( 0 0 /) 6341 2050 /* 50 404 /+ 437 605 /, 0 404 /- 404 1 /. 0 601 // 4030 4136 /0 3641 2101 /1 177 4523 /2 2151 4122 /3 2651 2414 /4 477 5172 /5 651 1506 /6 4225 4443 /7 6050 5126 /8 2651 5120 /9 3651 4200 /: 0 2601 /; 0 2410 /< 0042 1212 /= 1212 4200 /> 1024 4020 /? 2055 /SCOPE STORAGE BUFFER BEGINS HERE BUFFER, 0