*20 / / FOCAL-RT / / /KEITH WHITTLE AND WILLIAM SIEGEL /DEPARTMENT OF PSYCHOLOHY /UNIVERSITY OF WESTERN ONTARIO /LONDON, ONTARIO, /CANADA. /L L;L G;AND L S PARAMETER FIXED 3/73 /*************************************** / /ADD THIS PATCH TO FOCAL-12 / /*************************************** / / /NEW FUNCTIONS / / 1) FIN() /USED TO STORE ASCII CODE IN LIBRARY /FILES. /THERE IS A RUBOUT OPTION. / I.E. SET F0(I)=FIN() / / 2) FOUT(F0(I)) /USED TO HAVE STORED ASCII TYPED OUT. /F0(I) POINTS TO FILE LOCATION. /I.E. SET D=FOUT(F0(I)) / /BOTH OF THE ABOVE FUNCTIONS HAVE A /CTRL/Z FEATURE WHICH ENDS INPUT OR /OUTPUT OF ASCII AND PROCEEDS TO THE /NEXT FOCAL COMMAND. / / 3) FRAN(X) /NEW RANDOM NUMBER GENERATOR WHICH /USES THE KW-12A CLOCK TO JIGGLE /THE FIRST RANDOM NUMBER. /THE VARIABLE X INDICATES THE RANGE OF /RANDOM INTEGER NUMBERS FROM ONE TO X. / I.E. SET A=FRAN(7) / "A" IS FROM 1 TO 7 / / 4) FPRI() /FOR THOSE FORTUNATE ENOUGH TO HAVE A /LINE PRINTER, THE DEC LINE PRINTER /OVERLAY IS INCLUDED AS A FUNCTION. / I.E. SET A=FPRI() / O T GIVES RETURN TO TTY. / /*************************************** / / /NEW COMMANDS. / / 1) COMPUTED GO AND DO /ALLOWS THE GO AND DO COMMAND TO BE /IN THE FOLLOWING FORMAT. / G X,L1,L2,L3,L4,L5,L6........LN / D X,L1,G2,L3,L4,L5,G6........LN / WHERE: X IS A VARIABLE FROM / 1 TO N INDICATING THE / THE LINE OR GROUP NO. / TO BE USED. /THERE MAY BE AS MANY LINE NUMBERS AS /A LINE WILL ALLOW. / / 2) L B,NAME,UNIT /NAME: IS THE NAME OF A SELF-STARTING / ASSEMBLY LANGUAGE PROGRAM IN / LMODE OR PMODE WHICH OCCUPIES / ONLY THE FIRST 4K OF CORE. /UNIT: SPECIFIES TAPE UNIT. /COMMAND LOADS AND STARTS ASSEMBLY /LANGUAGE PROGRAM. / /RETURN TO FOCAL-RT USING FOCLDR /SUBROUTINE. / / 3) L F,NAME,UNIT /NAME: IS NAME OF FOCAL DATA FILE /UNIT: SPECIFIES TAPE UNIT /COMMAND LISTS UNIT, STARTING BLOCK, /AND NO. OF BLOCKS OF DATA FILE /IN LOCATIONS 1,2,3 OF FLD1. /THESE ARE USED BY ASSEMBLY LANGUAGE /PROGRAM TO READ IN THE FILE. / /USE RD-WRI ASSEMBLY LANGUAGE /SUBROUTINE TO READ IN AND WRITE OUT /DATA FILE. / / 4) L E, /COMMAND BOOTSTRAPS DIAL-MS INTO /CORE. / / /************************************** /************************************** / / PMODE / EFUN3I=136 FEXT=0000 FINT=4407 FNOR=7000 FLAC=44 INBUF=34 PRINTC=4551 INTEGER=53 BOTTOM=35 TESTC=4564 PUSHJ=4540 EVAL=1613 SORTJ=4547 GETC=4545 ERROR2=2726 CHAR=66 X=63 FLARGP=125 PDLXR=13 P13=5 FPUT=6000 FADD=1000 FMUL=4000 FDIV=3000 FSUB=2000 FGET=0000 PT1=30 T1=32 INDEV=64 OUTDEV=63 P17=107 FXIT=0000 BONE=1140 / / / /CODES OF FUNCTIONS USED /? INDICATES THIS FUNCTION IS NO LONGER /PRESENT IN FOCAL. *2167 2533 /ABS 2650 /SGN 2636 /ITR 2565 /DIS 2630 /RAN 2517 /ADC 1140 /IN 2672 /OUT 2655 /PRI 2654 /SIN? 2575 /COS? 2702 /SQT 2631 /NEW 0330 /FX 0332 /FZ / / / / /ADDRESSES OF FUNCTION ROUTINES. *374 2016 /ABS 2012 /SGN 6360 /ITR 7602 /DIS 5220 /RAN 1341 /ADC 6363 /IN 5117 /OUT 5205 /PRI 2725 /SIN? 2725 /COS? 7400 /SQT 2725 /NEW 2725 /FX 2725 /FZ / / / /CHANGE LINE 00.00 TO FOCAL-RT *3214 2224 /*************************************** /*************************************** /*************************************** /RANDOM NOS. GENERATOR /WITH VARIABLE STARTING /NO. /BY W.SIEGEL AND K. WHITTLE /AUGUST 23,1971. /REVISED MAY6,1972. / / /SNS 1 AND KW12A CLOCK USED PMODE / *5220 RAN, TAD DECIS /CHECK SWITCH. SZA CLA /FIRST R. N.? JMP GENERA /NO. 6132 /YES,SET CLOCK 6134 /RUNNING. TAD C1000 6132 IOF LINC LMODE SNS 1 /WAIT FOR SENSE JMP .-1 /SW. TO BE SET. PDP PMODE ISZ DECIS /SET SWITCH 6137 /AC=CLK COUNT. /R. N. GENERATING SUBROUTINE. GENERA, TAD I RPOINT ISZ RCOUNT JMP .+10 TAD RTABLE DCA RTABLE TAD RSIZE DCA RCOUNT TAD RFIRST DCA RPOINT JMP .+4 ISZ RPOINT TAD I RPOINT DCA I RPOINT /USE VARIABLE IN FRAN(X) TO SET RANGE /OF RANDOM INTEGER NUMBERS. /SCALED R.N.=FITR<[(R.N.+2048)X/4096]+1> FINT FDIV I PP4096 FPUT I FLARGP FEXT TAD I RPOINT DCA 45 DCA 46 TAD P13 DCA 44 FINT FADD P2048 FMUL I FLARGP FADD I PFLTON FEXT JMP I .+1 /INTEGERIZE 6360 DECIS, 0 C1000, 1000 RCOUNT, -17 RSIZE, -17 RPOINT, RTABLE RFIRST, RTABLE RTABLE, 6070 /SEED TABLE. 4413 2363 0022 2702 0445 2275 7150 1473 1333 6266 6327 6224 0036 1443 PP4096, 6160 PFLTON, 2405 P2048, 0013 3777 0000 / / *6160 P4096, 0014 3777 4000 / // /************************************** / / / / / / /PRINTER ROUTINE. /FROM DECUS OVERLAY. / *5205 P, TAD PLP08 /CHANGE OUTPUT DCA X /POINTER. 6666 /INITIALIZE JMP I EFUN3I LP08, 0 6661 JMP .-1 6666 CLA JMP I LP08 PLP08, LP08 // / / / / / / / / / / / / /************************************** /************************************** / / /FIN(9 AND FOUT() ROUTINE /KEITH WHITTLE /MAY 1,1972. / / /CTRL/Z FEATURE. /FINDS THE POSITION OF THE EXPONENT /FOR THE LIMIT VARIABLE OF THE FOR /COMMAND AND ZEROS IT. *5177 CTRLZ, TAD 121 CIA TAD PDLXR DCA PT1 DCA I PT1 JMP I EFUN3I / / / / / / /RUBOUT FEATURE,ALLOWS AN INPUT /VALUE TO BE ERASED BY PUSHING /RUBOUT KEY. *1142 RUBOUT, TAD SLASH PRINTC TAD PDLXR TAD P17 DCA PT1 TAD I PT1 DCA PT1 FINT FGET I PT1 FSUB I BONE FSUB I BONE FPUT I PT1 FXIT JMP I EFUN3I SLASH, 334 / / / / / / /FIN() AND FOUT() PORTION. *6363 IN, JMS I INDEV DCA FLAC+2 DCA FLAC+1 TAD P27 DCA FLAC TAD M377 JMP I .+1 IN2 M377, -377 *6377 P27, 27 / / / / / *5112 IN2, TAD FLAC+2 SNA CLA JMP I PRUB TAD FLAC+2 SKP OUT, JMS I INTEGER TAD M232 SNA CLA JMP I PCTRLZ TAD FLAC+2 PRINTC JMP I EFUN3I M232, -232 PRUB, RUBOUT PCTRLZ, CTRLZ / / / /RELOCATION OF FITR FUNCTION. *6360 XINT, JMS I INTEGER CLA JMP I EFUN3I / / / / /*************************************** /*************************************** / / / / / / / / /KEITH WHITTLE /APRIL 15,1972. / / / / / / /COMPUTED GO AND DO. / /G X,L1,L2,L3,......LN /D X,L1,G2,L3,......LN / / PMODE *5131 ISZ CHOICE /GO, ENTRY ISZ CHOICE /DO, ENTRY TESTC /NORMAL OR COMP. JMP NORMAL /T,NORMAL JMP NORMAL /N,NORMAL CHOICE, 0 PUSHJ /V,COMPUTED. EVAL /GET VARIABLE. JMS I INTEGER /INTEGERIZE. CMA DCA T1 /COMMA COUNTER. / /JMP TO INTERNAL SUBROUTINE TO MOVE /ACROSS THE CORRECT NUMBER OF COMMAS. JMP I .+1 1025 / /MOVE TO NORMAL SUBROUTINE OF COMMAND. / NORMAL, TAD CHOICE /GO OR DO? RAR SNL CLA JMP I NORMGO DCA CHOICE JMP I NORMDO NORMGO, 0603 NORMDO, 0420 / / / /ROUTINE TO JAM A C.R. INTO "CHAR" IF /COMPUTED DO COMMAND IS USED / END, TAD CHAR /LET ; AND C.R. TAD MCOMMA /GO THRU. SZA CLA JMP I PPROC TAD 77 DCA CHAR JMP I PPROC PPROC, 611 MCOMMA, -254 / / / /CHANGE VALUE OF "BOTTOM". / *35 5111 / / / /NEW ADDRESSES IN COMMAND TABLE. / *1164 5132 /DO 5131 /GO / / / /CHANGE JUMP LOCATION AT END OF DO /COMMAND ROUTINE TO GO TO THE "END" /ROUTINE. *476 5156 ///// / / / / /EXPANDED TEXT BUFFER PATCH /TAKEN FROM DEC FOCAL-12 MANUAL /WHICH IS WRONG. CORRECTION TO MOVE /CONSTANT AT 1323 MADE BY ED RAPOPORT /U OF MINN. MARCH 1973 / / FIELD 1 *1225 1067 *1247 1173 *1323 3207-5112 /MOVE PARAMETER / / / /************************************* /************************************* /************************************* / / / PMODE FIELD 0 /CHANGES TO FOCAL-12 TO ALLOW THE /LOADING AND STARTING OF AN /ASSEMBLY LANGUAGE PROGRAM /USING THE NEW LIBRARY COMMAND /L B,NAME,UNIT / / /ASSEMBLY LANGUAGE PROGRAM MUST BE /SAVED AS A SELF-STARTING PROGRAM /I.E. SB NAME,UNIT,P00200 / /MAY BE EITHER LMODE OR PMODE. /MUST BE USING DIAL-MS / / /KEITH WHITTLE /DECEMBER 28,1971 /************************************* /************************************** / /CHANGE LOCATION OF LIBRARY COMMAND /TABLES,ALLOWING ROOM TO ADD NEW /LIBRARY INSTRUCTIONS *5325 LGO, 5167 /LO 5171 /LC 2572 /LM 5173 /LL 6176 /LS 6375 /LG 5775 /LB 5775 /LF 5347 /LE LLIST, 317 /O 303 /C 315 /M 314 /L 323 /S 307 /G 302 /B 306 /F 305 /E / / /LIBRARY EXIT,BOOTSTRAPES DIAL-MS / LE, 6213 JMP 175 /TO FLD1 / / /CHANGES TO THE ADRESSES OF THE /LIBRARY "SORTJ" COMMAND *6355 5335 /LLIST-1 7767 /LGO-LLIST / / /MOVE TO SERVICE ROUTINES IN FLD1 /USED BY BOTH "LB" AND "LF". / / *5775 6213 JMP I .+1 1573 / / /************************************* / FIELD 1 /BOOTSTRAP DIAL-MS / *175 XLE, JMP I .+1 7777 / / /ACTUAL BEGINNING OF SERVICE ROUTINE *1573 /GET RIGHT HAND SIDE OF COMMAND 4543 /JMS I PGETRHS /READ MILDRED INTO CORE 4544 /JMS I PLDMILD /LOOK UP NAME IN CORRECT INDEX AND /RETURN WITH STARTING BLOCK. 4553 /JMS I PLOOKUP JMP I .+1 4655 /REST OF PROGRAM INCLUDED WITH MILDRED / / / / / / / / / / /DISTINGUISH BETWEEN WHICH COMMAND WE /ARE DOING. / *4655 6201 TAD I P12 6211 RAR SZL CLA /LF OR LB? JMP FILE /LF / / /LOAD BINARY SECTION. / / DEFINITIONS /TBLK TAPE BLOCK /HBLK HEADER BLOCK /CBLK CONTINOUS BLOCKS OF MEMORY /PHDR POINT AT CORE MAP IN HBLK /MBLK MEMORY BLOCK / / / / 1542 /TAD I PLNUM DCA PTR 1545 /TAD I P5LNAM DCA PTR+2 / / /READ IN HEADER BLOCK TO 5000-5377 FLD1 / JMS I 140 /PREAD PTR /POINTER TAD I PHDR /SET COUNTER CIA /FOR NO. OF BLKS DCA COUNT /IN BINARY. / / ISZ PTR+2 /UPDATE TBLK. START, ISZ PHDR /MOVE THRU HBLK LOOP, DCA PTR+3 /ZERO NBLKS. TAD I PHDR /SEARCH MBLKS. SMA CLA /IS IT USED? JMP START /NO TAD PHDR /MAKE MBLK AND P37 DCA PTR+1 / / /FIND NO. OF CONTINUOUS BLKS TO READ IN. / CBLKS, ISZ PTR+3 ISZ PHDR TAD I PHDR SPA CLA /IS MBLK USED? JMP CBLKS /YES JMS I 140 /NO,READ IN. PTR / /UPDATE PARAMETERS. / TAD PTR+2 TAD PTR+3 DCA PTR+2 /NEW TBLK. / / /HAVE WE READ IN ALL THE BINARY BLKS? / TAD PTR+3 TAD COUNT DCA COUNT TAD COUNT SZA CLA /FINISHED? JMP LOOP /NO. / /CLEAR EXTENDED ADDRESS MODE. LINC LMODE AXO PDP PMODE / /CHECK MODE OF PROGRAM AND START IT. / TAD I P5000 CLL RTR SZA CLA /LMODE OR PMODE? JMP .+3 /LMODE TAD P5603 /PMODE DCA I P5002 LINC LMODE LDF 3 LIF 6 JMP 1000 PMODE COUNT, 0 PHDR, 5337 P37, 37 P12, 12 P5002, 5002 P5000, 5000 P5603, 5603 /PARAMETERS USED WITH DIAL I/O ROUTINES. PTR, 0 32 0 1 / / ////// / / / / /THE FOLLOWING CHANGE IS INTERNAL TO /MILDRED. IT ALLOWS THIS VERISON OF /FOCAL-12 TO REPLACE PROGRAMS, BUT /THERE IS NO "REPLACE" DISPLAY. *4254 0231 /WAS JMP 654 / / / / / /************************************* /************************************* /************************************* PMODE / / /THIS LIBRARY INSTRUCTION IS USED TO /FIND THE PERTINENT INFO. OF A DATA /FILE TO BE USED WITH AN ASSEMBLY /LANGUAGE PROGRAM / /L F,NAME,UNIT PRECEDES THE L B,NAME,U /INSTRUCTION / /THIS INFO. IS STORED IN FLD1 /LOC 1 UNIT NO. /LOC 2 TBK NO. /LOC 3 NO. OF BLKS *4755 FILE, 1542 /TAD I PLNUM 3001 /LOC 1 1545 /TAD I P5LNAM 3002 /LOC 2 1546 /TAD I P6LNAM 3003 /LOC 3 JMP I .+1 /RETURN TO 1416 /FOCAL. LISTAPE-1