.SPACING 1
.LEFT MARGIN 8
.RIGHT MARGIN 65
.NUMBER
\\
.TITLE^F^O^C^A^L.^D^O^C VERSION 5^J(345)-1 [19-^OCT-76]
^STATUS OF ^F^O^C^A^L FOR ^D^E^C\S\Y\S\T\E\M-10.
.SKIP 1
.INDENT -8
1.0#####^&^SUMMARY#OF#CHANGES\&
.BREAK
.SKIP 1
^IAN ^PUGSLEY WOULD APPRECIATE YOUR COMMENTS ON ^F^O^C^A^L-10.
^PLEASE SEND COMMENTS, SUGGESTIONS OR PROBLEMS TO:
.BREAK
^DIGITAL ^EQUIPMENT ^AUSTRALIA,
60 ^PARK STREET,
^SOUTH ^MELBOURNE,
^VICTORIA 3205
^AUSTRALIA.
.SKIP 1
.INDENT -8
2.0#####^&^EXTERNAL#CHANGES\&.
.SKIP 1
.INDENT -8
3.0#####^&^INTERNAL#CHANGES.\&
.SKIP 1
.INDENT -8
4.0#####^&^BUGS#FIXED.\&
.SKIP 1
.INDENT -8
5.0#####^&^CHANGES#TO#INSTALLATION#INSTRUCTIONS.\&
.SKIP 1
^MONITOR SOFTWARE LEVEL IS NOW INDICATED BY THE PARAMETER "^M^O^N^I^T^O^R".
^M^O^N^I^T^O^R SHOULD BE SET TO ONE OF THE FOLLOWING VALUES OR TO A HIGHER VALUE.
.SKIP 1
3.27#(^ASSUMES MONITOR DOES NOTHING FOR THE USER.)
.BREAK
4.72#(^ASSUMES ^TELETYPE FILL CHARACTERS ARE PROVIDED BY THE MONITOR
AND ^R^E^N^A^M^E DOES NOT REQUIRE A PRIOR ^C^L^O^S^E.)
.BREAK
5.03#(^ASSUMES PROTECTION CAN BE SPECIFIED AT ^E^N^T^E^R TIME,
AND THE ^C^O^R^E ^U^U^O SETS ^C(.^J^B^R^E^L))
.BREAK
5.04#(^ASSUMES ^D^E^V^C^H^R ^U^U^O CAN ACCEPT A CHANNEL NUMBER.)
.BREAK
5.05#(^ASSUMES MONITOR CAN HANDLE ALL BRANDS OF ALT MODE.)
.BREAK
5.06#(^ASSUMES ^K^I-10 FLOATING-POINT TRAP WORKS CORRECTLY.)
.SKIP 1
^F^O^C^A^L.^M^A^C WILL NOW ASSEMBLE TWO DIFFERENT .^R^E^L FILES,
DEPENDING UPON WHETHER THE SYMBOL ^F^N^E^W IS DEFINED OR NOT.
^IF ^F^N^E^W IS NOT DEFINED, A .^R^E^L FILE IS GENERATED WHICH HAS THE
FULL HIGH SEGMENT FOR THE .^S^H^R FILE, AND A NULL LOW SEGMENT.
^IF ^F^N^E^W IS DEFINED (INSERT "^E^X^T^E^R^N^A^L#^F^N^E^W" AT THE FRONT
OF THE SOURCE) THEN A .^R^E^L FILE IS GENERATED WHICH MAY BE NAMED
^F^O^C^A^L^L.^R^E^L, AND PLACED ON ^S^Y^S: FOR LOADING WITH USER-PROGRAMS THAT NEED ^F^N^E^W.
^USERS THEN CREATE THEIR OWN ^F^N^E^W.^R^E^L FILE ON ^D^S^K, AND ISSUE
"^E^X^E^C^U^T^E#^S^Y^S:^F^O^C^A^L^L,^D^S^K:^F^N^E^W" IN ORDER TO LOAD
^F^O^C^A^L WITH ^F^N^E^W AND START ^F^O^C^A^L.
.SKIP 1
.TEST PAGE 12
.INDENT -8
6.0#####^&^KNOWN#BUGS.\&
.SKIP 1
.INDENT -8
6.1#####^G^E^T^T^A^B IS A RESERVED WORD NOT BEGINNING WITH THE LETTER ^F.
.SKIP 1
.TEST PAGE 15
.INDENT -8
7.0#####^&^MONITOR#SENSITIVITY.\&
.SKIP 1
^F^O^C^A^L-10 WILL RUN ON ALL MONITORS.
^HOWEVER, THE ASSEMBLY PARAMETER ^M^O^N^I^T^O^R SHOULD BE SET AS
HIGH AS POSSIBLE TO OBTAIN THE MAXIMUM EFFICIENCY AND MINIMUM
CORE SIZE (SEE INSTALLATION INSTRUCTIONS).
.SKIP 1
^THERE IS A MONITOR FEATURE WHICH CAUSES A SPURIOUS CHARACTER TO
APPEAR BEFORE THE ASTERISK AFTER A ^R^E^E^N^T^E^R IN THOSE CASES WHERE
TYPE-OUT WAS IN PROGRESS WHEN CONTROL-^C INTERRUPTION OCCURRED.
^THIS WILL NOT BE FIXED IN ^F^O^C^A^L.
.SKIP 1
^F^O^C^A^L-10 IS DIFFICULT TO USE ON 2741 TERMINALS.
.SKIP 1
.SKIP 1
.INDENT -8
8.0#####^&^SUMMARY#OF#SUGGESTIONS#AND#IDEAS#FOR##CONTEMPLATION.\&
.SKIP 1
.INDENT -8
8.1#####^L^I^B^R^A ^L^I^S^T (WITHOUT WILD-CARDS).
.SKIP 1
.INDENT -8
8.2#####^COMPUTED ^G^O^T^O.
.SKIP 1
.INDENT -8
8.3#####^F^O^C^A^L TO LOOK AT AND USE THE ^S^W^I^T^C^H.^I^N^I FILE.
.SKIP 1
.INDENT -8
8.4#####^SUB-FILE DIRECTORIES.
.SKIP 1
.INDENT -8
8.5#####^THE FORMAT DESCRIPTOR %^E\M\M.\N\N SHOULD BE ELIMINATED AND
MADE TO DEPEND UPON %\M\M.\N\N ALONE.
.SKIP 1
.INDENT -8
8.6#####^EXTENDED EXPONENT.
.SKIP 1
.INDENT -8
8.7#####^BYE.
.SKIP 1
.INDENT -8
8.8#####^D^O COMMAND TO ALLOW A VARIABLE NAME AS AN ARGUMENT.
^THE ONLY INCOMPATIBILITY WOULD BE THAT IF A VARIABLE NAME ^A^L^L
OR ^A EXISTED, THEN ^D^O ^A^L^L AND ^D^O ^A WOULD HAVE A MEANING
DIFFERENT FROM THE PRESENT ONE.
^THE INTENTION WOULD BE THAT IF THE VARIABLE NAME REFERRED TO A STRING,
THEN THE STRING WOULD BE INTERPRETED AS A ^F^O^C^A^L COMMAND STRING.
.SKIP 1
.INDENT -8
8.9#####^THE ^G^O LOGIC SHOULD BE IMPROVED STILL FURTHER.
.SKIP 1
.INDENT -8
8.10####^TURN OF THE DEBUG SWITCH ON A ^Q^U^I^T COMMAND.
.SKIP 1
.INDENT -8
8.11####^MAKE ^U^U^O^M^A^C (ON PAGE 10 OF ^F^O^C^A^L.^M^A^C) DEPEND ON
^S^P^E^E^D RATHER THAN ON ^P^D^P-6.
.SKIP 1
.INDENT -8
8.12####^IN ORDER TO SPEED UP ^F^O^C^A^L, WE SHOULD TRY TO ELIMINATE SOME ^U^U^O CALLS.
.SKIP 1
.INDENT -8
8.13####^INVENT A RE-SEQUENCING FEATURE SUCH AS ^M^O^D^I^F^Y 2.13=2.15
OR ^M^A^K^E#2.13=2.15.
.PAGE
.INDENT -8
9.0#####^&^DISTRIBUTION#NOTES.\&
.SKIP 1
.LEFT MARGIN 8
.INDENT -8
17^JUL72#^RELEASED \V(127) (NOT SOURCES) TO ^JOHN ^NUGENT FOR ^K^I-10 TESTING.
.INDENT -8
17^JUL72#^RELEASED \V(127) TO ^TOWNSVILLE.
.INDENT -8
02^AUG72#^RELEASED \V(127) TO ^A^R^L, ^MELBOURNE.
.INDENT -8
11^SEP72#^CREATED EDIT (131).
.INDENT -8
28^OCT72#^SUNDRY CHANGES OCCURRED WHILE ^I WAS IN ^MAYNARD.
^FROM NOW ON PLEASE LOOK AT PAGE 1 OF ^F^O^C^A^L.^M^A^C
FOR HISTORICAL NOTES.
.INDENT -8
01^NOV72#^CREATED \V2.
^RELEASED \V2 TO ^HAKAN ^AGVALD IN ^SWEDEN.
.INDENT -8
07^DEC72#^CREATED \V2^A.
^RELEASED \V2^A TO ^U^W^A AND ^U^Q.
.INDENT -8
--^MAY73#^RELEASED V3 TO ^J^C^U AT ABOUT THIS DATE.
.INDENT -8
--^JUL73#^RELEASED V3^A TO ^U^W^A AT ABOUT THIS DATE.
.INDENT -8
--^AUG73#^RELEASED V3^A TO ^ALAN ^WILLIAMSON TO TAKE TO ^MAYNARD.
.INDENT -8
26^OCT73#^RELEASED V3^A(216) TO ^DAVID ^ABEL (^J^C^U).
.INDENT -8
13^NOV73#^RELEASED V3^B(234) TO ^U^W^A.
.INDENT -8
20^NOV73#^RELEASED V3^B(234) TO ^U^Q.
.INDENT -8
21^FEB74#^RELEASED V3^C(245) TO ^U^Q, ^J^C^U, ^A^R^L, ^STOCKEX, ^LA ^TROBE.
.INDENT -8
18^MAR74#^RELEASED V3^C(245) TO ^U^W^A.
.INDENT -8
14^JUN74#^RELEASED V3^D(252) TO ^FLOYD ^BENSON.
.INDENT -8
21^NOV74#^RELEASED V4(272) TO ^CHARLES ^DENNY (.^R^E^L,.^R^N^D,.^R^N^O,.^F^C^L)
.INDENT -8
21^NOV74#^RELEASED V4(272) TO ^BERNARD ^EIBEN (.^M^A^C,.^R^N^D,.^R^N^O,.^C^T^L)
.INDENT -8
09^FEB75#^RELEASED V5(303) TO ^LA#^TROBE ^UNIVERSITY.
.INDENT -8
06^MAR75#^RELEASED V5^A(306) TO ^LA#^TROBE ^UNIVERSITY.
.INDENT -8
23^MAR75#^RELEASED V5^B(311) TO ^LA#^TROBE ^UNIVERSITY.
.INDENT -8
24^FEB76#^RELEASED V5^J(331) TO ^LA#^TROBE ^UNIVERSITY.
.INDENT -8
25^FEB76#^RELEASED V5^J(331) TO ^A^R^L.
.INDENT -8
09^AUG76#^RELEASED V5^J(344) TO ^LA ^TROBE ^UNIVERSITY.
.INDENT -8
12^AUG76#^RELEASED V5^J(344) TO ^DIGITAL ^EQUIPMENT ^NEW ^ZEALAND.
.INDENT -8
11^SEP76#^RELEASED V5^J(344) TO ^AUSTRALIAN ^NATIONAL ^UNIVERSITY.
.PAGE
.INDENT -8
10.0####^&^SERIAL#LIST#OF#BUG#REPORTS.\&
.SKIP 1
.INDENT -8
30^JAN74#^H. ^GREBLER:
.BREAK
1. ^F^O^C^A^L TYPES OUT .001 IN AN ERRONEOUS MANNER FOR ^E-FORMAT.
.BREAK
2. ^THE ^F-FORMAT SELECTOR (^T^Y^P^E %\N\N.\M\M) SHOULD ALSO BE
TRAPPED AGAINST ERRONEOUS VALUES IN THE WAY THAT %^E\N\N.\M\M IS.
^THESE BUGS WERE FIXED IN EDIT _#241.
.SKIP 1
.INDENT -8
#7^MAY74#^M. ^RAHILLY:
.BREAK
1. ^ON INPUT OF A NUMBER WITH MANY PLACES OF DECIMALS, THE ERROR
MESSAGE IS %^FLOATING OVERFLOW INSTEAD OF %^FLOATING UNDERFLOW.
.BREAK
2. ^ALSO THE MESSAGE COMES OUT ONCE FOR EVERY EXCESS DIGIT, INSTEAD
OF ONCE ONLY.
.BREAK
^THESE PROBLEMS WERE FIXED IN EDIT _#257.
.SKIP 1
.INDENT -8
1974####^H. ^DAVIES:
.BREAK
^WE NEED A SLEEP FACILITY.
.BREAK
^THIS WAS FIXED IN EDIT _#303.
.SKIP 1
.INDENT -8
20^FEB75#^R.##^M\C^LEAN:
.BREAK
^M^O^D^I^F^Y CAN PRODUCE A NULL LINE.
.BREAK
^THIS WAS A DOCUMENTATION PROBLEM AND HAD BEEN REGARDED AS A "FEATURE"!
^THIS WAS FIXED IN EDIT _#313.
.SKIP 1
.INDENT -8
20^FEB75#^R.##^M\C^LEAN:
.BREAK
^A SWITCH IS REQUIRED ON THE ^L^I^B^R^A#^S^A^V^E COMMAND TO SUPPRESS SAVING THE SYMBOL TABLE.
.BREAK
^NOTE THAT THIS IS POSSIBLE WITH A (SOMEWHAT CUMBERSOME) SEQUENCE OF COMMANDS SUCH AS
.BREAK
^L#^S#^T^M^P;^E;^L#^S#^P^R^O^G;^L#^C#^T^M^P;^L#^S#^T^M^P;^L#^S#^T^M^P;^L#^D#^T^M^P
.BREAK
^HOWEVER, THE PROBLEM WAS FIXED IN EDIT _#305 BY SUPPRESSING THE SYMBOL TABLE
IF A LIST IS GIVEN.
.SKIP 1
.INDENT -8
24^MAR75#^H.##^DAVIES:
.BREAK
^ON AN ^A^S^K COMMAND, ^F^O^C^A^L TREATS A LEADING SPACE AS A DELIMITER IF
SOME CHARACTER IS TYPED WITHOUT A LEADING SPACE, RUBBED OUT, AND REPLACED WITH A LEADING SPACE.
.BREAK
^THIS WAS FIXED IN EDIT _#312.
.PAGE
.INDENT -8
11.0####^&^SERIAL#LIST#OF#CHANGES.\&
.SKIP 1
.INDENT -8
2.6#####^THE FORMAT OF ERROR MESSAGES WAS CHANGED TO GIVE A TEXT INSTEAD
OF A CODE NUMBER.
.SKIP 1
.INDENT -8
2.8#####^P^D^P-6 FLOATING OVERFLOW AND FLOATING UNDERFLOW NOW 'TRAP'
IN THE DOUBLE-PRECISION CASE.
.SKIP 1
.INDENT -8
2.9#####^FLOATING-POINT UNDERFLOW AND OVERFLOW NOW PRINT ERROR MESSAGES.
.SKIP 1
.INDENT -8
2.11####"DIVISION BY ZERO" ERROR MESSAGE NOW REPLACED BY "FLOATING-POINT
OVERFLOW".
.SKIP 1
.INDENT -8
2.12####"LOGARITHM OF ZERO REQUESTED" ERROR MESSAGE NOW REPLACED BY
"FLOATING-POINT OVERFLOW".
.SKIP 1
.INDENT -8
2.13####^INTEGER FORMAT IS NOW USED FOR %MM.00 SPECIFICATION.
.SKIP 1
.INDENT -8
2.14####^NUMERIC TYPEOUT NOW HAS A FLOATING SIGN.
.SKIP 1
(EDIT NUMBER 122 INCLUDED CHANGES UP TO THIS POINT.)
.SKIP 1
.INDENT -8
_#123####^IF A FUNCTION CALL HAS NO PARENTHESES FOLLOWING IT, IT IS ASSUMED
THAT THERE IS NO ARGUMENT.
.SKIP 1
.INDENT -8
_#133####^ERROR MESSAGES NOW APPEAR IN UPPER AND LOWER CASE.
.SKIP 1
.INDENT -8
_#142####^DEVICE "^T^T^Y" CAN NOW BE USED TO RELEASE A CHANNEL.
.SKIP 1
.INDENT -8
3.4#####^THE ^F^T^T^R^A^P ASSEMBLY FEATURE-TEST SWITCH WAS REPLACED
BY ^P^D^P-6 IN MOST PLACES.
.SKIP 1
.INDENT -8
3.5#####^I HAVE NOW CHANGED THE ^I/^O ^U^U^O'S TO DO CHARACTER-INPUT, CHARACTER-OUTPUT,
AND STRING-OUTPUT AS SEPARATE ^U^U^O'S, TO SPEED THINGS.
.SKIP 1
(EDIT NUMBER 123 INCLUDED CHANGES UP TO THIS POINT.)
.SKIP 1
.INDENT -8
2.16####^G^E^T^T^A^B FUNCTION ADDED (APPROX 30^AUG72).
.SKIP 1
(EDIT NUMBER 132 INCLUDED CHANGES UP TO THIS POINT.)
.SKIP 1
.INDENT -8
_#135####^A FAST ^G^E^T^L^N ROUTINE IS NOW IMPLEMENTED.
.SKIP 1
.INDENT -8
_#137####^THE ^V^E^R^S^T^R MACRO IS USED TO SAVE CORE.
.SKIP 1
.INDENT -8
4.3#####^THE '^A^S^K' COMMAND WITH ?? AROUND THE ARGUMENT NOW WORKS
REASONABLY, AND DOES NOT ECHO THE INPUT.
.SKIP 1
.INDENT -8
4.5#####^OLD MONITORS WITHOUT ^TELETYPE FILLING CHARACTERS CAN NOW HAVE
FILL CHARACTERS INSERTED BY ^F^O^C^A^L IF ASSEMBLED FOR IT.
.SKIP 1
.INDENT -8
4.6#####^EXPONENTIATION IS NOW DONE AS ACCURATELY AS POSSIBLE, TO MAKE
THINGS LIKE 3**3-27 GIVE EXACTLY ZERO.
.SKIP 1
.INDENT -8
4.7#####^U^U^OS CAN OPTIONALLY BE REPLACED BY ^P^U^S^H^J'S TO AVOID MONITOR
OVERHEAD IN THE ^P^D^P-6.
.SKIP 1
.INDENT -8
4.9#####^THE ^T^Y^P^N^U^M ROUTINE ^T^D^Z^A ^M^Q,^M^Q INSTRUCTION ASSUMED THAT INTEGERS
WERE REPRESENTED IN ^A^C,^M^Q. ^THIS IS NOW MADE TO BE TRUE FOR
ALL PRECISIONS.
.SKIP 1
(EDIT NUMBER 120 INCLUDED FIXES UP TO HERE)
.SKIP 1
.INDENT -8
4.12####^SINGLE-PRECISION ^F^A^T^N FUNCTION FOR VERY SMALL NEGATIVE ARGUMENT
NOW WORKS CORRECTLY.
.SKIP 1
.INDENT -8
4.14####^DOUBLE-PRECISION ^F^A^T^N ACCURACY IS NOW IMPROVED BY BETTER-OPTIMIZING
THE REDUCTION FORMULAE.
^THERE IS STILL INACCURACY OF ABOUT ONE PART IN 3*10**13
AT AN ARGUMENT OF 0.27, AND AN INACCURACY OF ABOUT ONE IN 10**14 FOR
ARGUMENT OF ONE, BUT ELSEWHERE IT HAS FULL ACCURACY.
(APPROX 30^AUG72).
.SKIP 1
.INDENT -8
4.16####^F^O^C^A^L NOW ALLOWS FOR MONITOR BUG NOT CLEARING CORE ON A ^R^U^N OR ^G^E^T.
.SKIP 1
(EDIT NUMBER 122 INCLUDES FIXES UP TO THIS POINT.)
.SKIP 1
.INDENT -8
4.21####^L^I^B^R^A ^S^A^V^E WITH A LIST OF MORE THAN ONE ELEMENT NOW WORKS.
.SKIP 1
.INDENT -8
4.25####^P^D^P-6 ^D^F^S^B NOW DOES NOT CALL A ^U^U^O FROM WITHIN ITSELF.
(IT USED TO GIVE THE WRONG ANSWERS FOR ZERO AC.)
.SKIP 1
(EDIT NUMBER 132 INCLUDED CHANGES UP TO THIS POINT.)
.SKIP 1
.INDENT -8
_#136####^WHEN A NEW ^I/^O CHANNEL IS INITTED, ANY CURRENT USE IS
CORRECTLY SUSPENDED.
.SKIP 1
.INDENT -8
_#140####^F^A^T^N NOW MAKES A BETTER GUESS AT NUMBER OF ITERATIONS.
.SKIP 1
.INDENT -8
_#141####^WIDE FORMATS NOW PRINT MORE ACCURATELY AND CORRECTLY.
.SKIP 1
.INDENT -8
_#156####^CHANGED ALL OCCURENCES OF "@NN" TO "0(NN)"
WHERE NN IS AN ACCUMULATOR MNEMONIC, IN ^U^U^O/^O^P^D^E^F/^M^A^C^R^O ARGUMENTS.
^THIS SOLVES THE PROBLEM THAT THE ^M^A^C^R^O DEFINITION USES THE () AS
ENCLOSING THE ^M^A^C^R^O ARGUMENTS, WHEREAS THE @ USES A 23-BIT FIELD.
^THE PROBLEM WAS THAT LARGE ARGUMENTS TO ^F^C^H^R CAUSED ILLEGAL MEMORY
REFERENCES.
.SKIP 2
.INDENT -8
_#157####^MODIFIED ^G^E^T^T^A^B ROUTINE TO CORRECTLY HANDLE FULL 36-BIT
ANSWERS. ^THERE STILL EXISTS A LIMITATION HERE FOR SINGLE-PRECISION VERSIONS
OF ^F^O^C^A^L, IN THAT THEY CANNOT RETAIN ALL 36 BITS IN A 27-BIT FRACTION FIELD.
^THAT PROBLEM WILL REMAIN A LIMITATION OF THE SINGLE-PRECISION VERSIONS,
AND WILL NOT BE CHANGED.
^THE ORIGINAL BUG WAS THAT IF BIT 1 WAS ON ALONE WITH BIT 35, WE GOT
ERRONEOUS FLOATING-POINT OVERFLOW.
.SKIP 2
.INDENT -8
_#160####^THE ^D^F^S^B ^U^U^O ROUTINE WAS MOVED SLIGHTLY TO SAVE CORE.
.SKIP 2
.INDENT -8
_#161####^BUG CORRECTED WHICH WOULD CAUSE A LOOP INSIDE ^F^O^C^A^L IF A
PROGRAM CONTAINED A STATEMENT SUCH AS "^A^S^K +4", WHICH IS ILLEGAL.
.SKIP 2
.INDENT -8
_#162####^CONTROL-^C INTERCEPT DURING ^A^S^K DATA HAS NOW BEEN REMOVED.
^IT IS NECESSARY TO USE CONTROL-^P NOW.
.SKIP 2
.INDENT -8
_#163####^LEADING SPACES ARE NOW ALLOWED AS ^A^S^K DATA. ^PREVIOUSLY THEY
HAD CAUSED THE ^A^S^K COMMAND TO ASSUME THAT THE ELEMENT OF DATA WAS
ZERO, BECAUSE A SPACE TERMINATES DATA. ^IT NOW WILL TERMINATE DATA ONLY
AFTER A NON-SPACE HAS BEEN TYPED.
(^A "NON-SPACE" IS A CHARACTER WITH ^A^S^C^I^I VALUE MORE THAN 40 OCTAL.)
.SKIP 2
.INDENT -8
_#164####^THE ^E^X^P.#ROUTINE WAS IMPROVED IN BOTH TIMING AND SIZE.
^THIS WAS DONE BY SEPARATING THE INPUT NUMBER NOT INTO A STRAIGHT
INTEGER AND FRACTION, BUT INTO AN INTEGER WHICH WAS NEAREST TO THE
NUMBER AND A FRACTION BETWEEN -.5 AND +.5.
^IN THIS WAY IT IS EASIER TO FIGURE OUT THE SIGN.
^F^O^C^A^L, IN CASE YOU MAY NOT KNOW IT, HAS NO COMPLEX ARITHMETIC,
BUT IF IT IS ASKED TO TAKE A NEGATIVE NUMBER TO A FRACTIONAL
POWER, IT WILL GIVE A SIGN WHICH IS THE SIGN OF THE REAL PART OF THE
RESULT, AND A MAGNITUDE WHICH IS THE MAGNITUDE OF THE RESULT.
^THE IMAGINARY PART IS IGNORED.
.SKIP 2
.INDENT -8
_#165####^THE ^G^E^T^N^M ROUTINE WAS IMPROVED IN BOTH SIZE AND TIMING.
^THIS WAS DONE BY CUTTING A FEW PIECES OF CODE AND MAKING THE ENTIRE
ROUTINE ACCEPT A SIGN. ^THE EXPONENT IS HANDLED BY RE-ENTRANT USE OF
THE ROUTINE.
.SKIP 2
.INDENT -8
_#166####^D^F^L^O^A^T WAS CORRECTED SO THAT IT RETURNS NUMBERS AS
SIGNED 36-BIT INTEGERS. ^P^F^L^O^A^T WILL NOW HANDLE NUMBERS OF
EITHER SIGN.
.SKIP 2
.INDENT -8
_#167####^ALL ODD FUNCTIONS,(THOSE FUNCTIONS WHICH CHANGE THEIR
SIGN AND ONLY THEIR SIGN IF THE SIGN OF THE ARGUMENT IS CHANGED)
NOW CALL A NEW ROUTINE "^O^D^D^F^N^C" WHICH HANDLES THESE CASES
MORE ECONOMICALLY.
.SKIP 2
.INDENT -8
_#170####^THE ^F^O^C^A^L FUNCTION HAS BEEN EXPANDED NOW SO THAT IT WILL
TAKE A SINGLE ARGUMENT GREATER THAN OR EQUAL TO 23 AND RETURN A SIGNED 36-BIT NUMBER
WHICH IS THE NUMBER CONTAINED IN THAT ADDRESS OF ^F^O^C^A^L'S LOW SEGMENT.
^IT IS INTENDED TO BE USED BY PROGRAMS WISHING TO DETERMINE THE
AMOUNT OF CORE WHICH HAS BEEN USED, CHANNELS IN USE, BUFFER SIZES ETC.
.SKIP 1
.INDENT -8
[1-^MAY-73]
.SKIP 2
.INDENT -8
_#171####^SOME ITEMS IN ^F^O^C^A^L'S DATA-BASE (IN THE LOW SEGMENT)
WERE MOVED AROUND, SO THAT THE ^F^O^C^A^L FUNCTION COULD ACCESS MOST
OF THE ITEMS WITHOUT TOO MANY PROBLEMS SUCH AS THE PRECISION OF ^F^O^C^A^L
AND THE TYPE OF PROCESSOR RUNNING.
.SKIP 2
.INDENT -8
_#172####^THE OPERATIONS ^F^S^B^R^I AND ^F^M^P^R^I WERE DEFINED FOR THE
^P^D^P-6 VERSION IN SUCH A WAY THAT THEY COULD BE USED IN THE CODE WITHOUT
SPECIAL CASES HAVING TO BE WRITTEN TO HANDLE THE ^P^D^P-6.
.SKIP 2
.INDENT -8
_#173####^THE APPENDING OF THE WORD " \E\R\R\O\R" TO
ERROR MESSAGES WAS MADE MORE ECONOMICAL BY USING A FLAG IN THE ERROR WORD
(^Y) AND PUTTING IT IN SPECIALLY EACH TIME.
.SKIP 2
.INDENT -8
_#174####^BECAUSE THE ^K^I-10 HAS PAGES OF ONLY HALF THE SIZE OF THE
^P^D^P-6 AND ^K^A-10, THE CORE-EXPANSION CODING WAS MODIFIED ACCORDING TO THE
RECOMMENDED METHOD (SEE ^SOFTWARE ^NOTEBOOKS).
.SKIP 2
.INDENT -8
_#175####^THE ^G^E^T^N^M ROUTINE WAS SLIGHTLY MODIFIED TO SAVE CORE.
.SKIP 2
.INDENT -8
_#176####^THE ERROR MESSAGE PERTAINING TO THE ATTEMPTS TO USE A CHANNEL
WHICH WAS NOT INITTED OR WHICH WAS INITTED IN A WRONG DIRECTION WAS ALTERED,
SO THAT IT NOW HAS ITS OWN SPECIAL MESSAGE "^D\E\V\I\C\E#\N\O\T#\C\O\R\R\E\C\T\L\Y#^I^N^I^T\T\E\D"
.SKIP 2
.INDENT -8
_#177####^THE ERROR MESSAGES FOR INPUT AND OUTPUT DEVICE ERRORS WERE SLIGHTLY
MODIFIED TO SAVE CORE.
.SKIP 1
.INDENT -8
[14-^MAY-73]
.SKIP 2
.INDENT -8
_#200####^A CORRECTION WAS MADE SO THAT ^L^I^B^R^A \D\E\L\E\T\E ETC.#WOULD
WORK PROPERLY.
^UNTIL NOW ^F^O^C^A^L WOULD NOT ACCEPT LOWER CASE MODIFIERS FOR ^L^I^B^R^A.
.SKIP 2
.INDENT -8
_#201####^THERE WAS A PROBLEM WITH UNSUBSCRIPTED VARIABLE NAMES LONGER THAN
THREE CHARACTERS.
^THE ROUTINE TO HANDLE SUBSCRIPTS DID NOT CLEAR THE RIGHT HALF OF THE
NAME FIELD IF THERE WAS NO SUBSCRIPT, SO THE EXTRA CHARACTERS WERE
INTERPRETED AS A KIND OF SUBSCRIPT. ^THIS WAS FIXED.
.SKIP 2
.INDENT -8
_#202####^SINGLE PRECISION ^F^O^C^A^L DID NOT WORK IN THE AREA OF
DATA ENTRY AND NUMBER INPUT, BECAUSE OF THE ERRONEOUS CODING OF THE ^P^F^L^O^A^T ROUTINE.
^THIS HAS NOW BEEN FIXED.
.SKIP 2
.INDENT -8
[17-^MAY-73]
.SKIP 2
.INDENT -8
_#203####^SINCE THE DOUBLE-PRECISION COMPARE ^U^U^O WAS ONLY USED AT ONE
PLACE IN THE PROGRAM, IT WAS REPLACED BY IN-LINE CODE.
^THIS SAVED SPACE AND TIME.
.SKIP 2
.INDENT -8
_#204####^THE ^P^D^P-6 ROUTINES FOR DOUBLE PRECISION DO NOT WORK.
^IT IS THOUGHT THAT THIS MAY BE BECAUSE THE CARRY-ONE FLAG IS NOT SET IN
THE SAME WAY BY THE 166 PROCESSOR AS IT IS FOR THE ^P^D^P-10 IN THE
CASE OF THE ^M^O^V^N^S INSTRUCTION.
^HENCE THE ^N^E^G^A^N^S ROUTINE WAS MODIFIED TO ELIMINATE THIS INSTRUCTION.
.SKIP 2
.INDENT -8
_#205####^ONE WORD WAS SAVED IN THE ^R^E^T^U^R^N INSTRUCTION PROCESSOR, BY
ALLOWING THE INTERPRETER TO REMAIN ACTIVE DURING THE REMAINDER OF THE LINE.
^THIS SHOULD HAVE NO EFFECT EXCEPT TO DO A BIT OF TYPING IF THE TRACE WAS ACTIVE.
.BREAK
^ONE WORD WAS SAVED AT ^F^I^X: BY USING A ^M^O^V^M INSTEAD OF ^M^O^V^E
AND ^T^S^C.
.BREAK
^ONE WORD WAS SAVED IN THE ^I^N^C^H^R ^U^U^O PROCESSOR.
^THIS WAS DONE BY USING ^J^R^S^TS INSTEAD OF ^P^U^S^H^JS AND ^P^O^P^JS.
.SKIP 2
.INDENT -8
[28-^MAY-73]
.SKIP 2
.INDENT -8
_#206####^A CONVENTION WAS ADOPTED INTERNALLY THAT THE SIGN BIT OF THE
LOW ORDER WORD (IN DOUBLE PRECISION) OF FLOATING-POINT NUMBERS SHOULD BE ZERO.
^HENCE ALL DATA ITEMS IN THE SOURCE PROGRAM WERE ADJUSTED IF REQUIRED.
.SKIP 2
.INDENT -8
_#207####^THE DOUBLE-PRECISION ^P^D^P-6 ^N^E^G^A^N^S ROUTINE WAS ADJUSTED TO THE ABOVE CONVENTION FOR BIT 0 OF THE LOW ORDER WORD.
.SKIP 2
.INDENT -8
_#210####^THERE WAS A BUG RELATING TO INITIALIZATION OF AN ^I/^O CHANNEL
WHICH CAUSED CORE-EXPANSION TO OCCUR UNDER THE MONITOR'S CONTROL
RATHER THAN UNDER ^F^O^C^A^L'S. ^THIS SOMETIMES CAUSED LOSS OF SYMBOLS,
UNCONTROLLED LOOPING ETC. ^THE FIX WAS TO CORRECT THE ^F^I^T: ROUTINE TO USE
AN INTERNAL CORE-FLAG RATHER THAN .^J^B^R^E^L WHICH IS SET BY THE MONITOR.
.SKIP 2
.INDENT -8
[30-^MAY-73]
.SKIP 2
.INDENT -8
_#211####^THERE WAS A BUG IN THE CORE-EXPANSION CODE (AT ^F^I^T+6)
WHICH CAUSED BUFFERS TO BE SET UP INCORRECTLY.
.SKIP 2
.INDENT -8
\V3^A#####^RELEASED 1-^JUN-73.
.SKIP 2
.INDENT -8
_#211####^TO ALLOW ^C.^A.^I. PROGRAMS TO RUN IN ^F^O^C^A^L,
IT WAS DECIDED TO ALLOW ACTIVE LINES TO BE ELIGIBLE FOR DELETION
OR MODIFICATION. ^THIS WAS DONE BY CHANGING THE INTERNAL CHECKING
ROUTINE SO IT PERFORMED HARMLESSLY WHEN A USER ATTEMPTED TO DELETE
A LINE WHICH HE WAS EITHER EXECUTING OR USING AS A CALL TO THE
LINE BEING EXECUTED (FOR EXAMPLE WITH A ^D^O.)
.SKIP 2
.INDENT -8
_#212####^ONE WORD OF CODE WAS SAVED AT LOCATION ^N^E^G^A^N^S.
.SKIP 2
.INDENT -8
_#213####^THE FACTOR FOR CONVERTING SINE AND COSINE IN DEGREES,
NAMELY ^P^I/180, WAS SLIGHTLY INACCURATE. ^THE MULTIPLE-PRECISION
PACKAGE WAS USED TO COMPUTE THIS FACTOR MORE ACCURATELY,
AND THE NEW VALUE IS NOW IN PLACE IN ^F^O^C^A^L.
.SKIP 2
.INDENT -8
_#214####^THE METHOD OF LOADING THE ^P^D^P-6 VERSION HAS BEEN CHANGED,
AND THE INTERNAL ARRANGEMENT OF LOW AND HIGH SEGMENTS HAS BEEN ALTERED.
^IT IS NOW NO LONGER NECESSARY TO USE THE /^H SWITCH TO ^L^O^A^D^E^R,
SINCE THE ASSEMBLY SWITCH ENSURES CORRECT LOADING.
^HOWEVER, IT IS IMPORTANT THAT THE LOW SEGMENT OF ^F^O^C^A^L IS LOADED
FIRST, BEFORE ^D^D^T OR ^F^N^E^W, SINCE THE "^F^O^C^A^L" FUNCTION
DEPENDS ON THIS.
.SKIP 2
.INDENT -8
_#215####^THE ALGORITHM FOR LOGARITHM IN DOUBLE-PRECISION WAS
SLIGHTLY MODIFIED.
.SKIP 2
.INDENT -8
_#216####^A CONSTANT USED IN THE DOUBLE-PRECISION EXPONENTIAL
WAS ADJUSTED IN ACCURACY. ^THE CONSTANT, EIGHTTH ROOT OF 2, IS USED
IN COMPUTING FRACTIONAL POWERS.
.SKIP 2
.INDENT -8
_#217####^THERE WAS A PROBLEM WITH ^R^E^T^U^R^N STATEMENTS FROM A LINE
NUMBER GREATER THAN 31.99. ^THIS ORIGINATED BACK IN THE DAYS WHEN
^F^O^C^A^L ONLY ALLOWED LINE NUMBERS UP TO 31.99. ^THE PROBLEM IS NOW
FIXED.
.SKIP 1
.INDENT -8
.SKIP 2
.INDENT -8
_#220####^THE ^N^E^W^L^I^N ROUTINE WAS CORRECTED SO THAT A LINE COULD
OVERWRITE ITSELF. ^THIS IS A SIDE-EFFECT OF THE EDIT 211, WHICH ALLOWED
DELETIONS OF ACTIVE LINES.
^OF COURSE A LINE OVERWRITING ITSELF DOES NO GOOD, SINCE THE RULES
REQUIRE THAT IT MERELY ERASE ITSELF, BUT AT LEAST IT NOW DOES NO HARM.
.SKIP 2
.INDENT -8
_#221####^THE ^P^D^P-6 DOUBLE FLOATING DIVIDE ROUTINE HAD AN ERROR
IN THAT THE LOW ORDER WORD WAS WRONG HALF THE TIME. ^IT IS NECESSARY
TO CHECK FOR OVERFLOW FROM THE LOW ORDER WORD, AND THE FINAL ^J^U^M^P^G^E/^S^O^J^A WAS REQUIRED.
.SKIP 1
.INDENT -8
_#222####^THE REDUCTION FORMULA FOR DOUBLE-PRECISION LOGARITHM WAS
CHANGED SO THAT IT USED FLOATING-POINT DIVISION INSTEAD OF FIXED-POINT
DIVISION.
^THIS IS USEFUL WHEN RUNNING ON A ^K^I-10, BECAUSE IT IS CONSIDERABLY
FASTER.
^IT ALSO SAVES A LITTLE SPACE IN CORE.
.SKIP 1
.INDENT -8
_#223####^IT WAS DISCOVERED, AFTER WRITING THE ^F^O^C^A^L MULTIPLE-PRECISION
PACKAGE, THAT SOME OF THE INTERNAL DOUBLE-PRECISION CONSTANTS WERE NOT
FULLY ACCURATE.
^THIS DEFICIENCY WAS REMEDIED BY THIS EDIT.
.SKIP 1
.INDENT -8
_#224####^BECAUSE OF THE CHANGE FROM ^L^O^A^D^E^R TO ^L^I^N^K-10,
^I HAD TO MODIFY THE INSTRUCTIONS FOR LOADING ^F^O^C^A^L.
^I TOOK THIS OPPORTUNITY TO CORRECT A MISUNDERSTANDING SOME
PEOPLE HAD CONCERNING THE ^P^D^P-6 VERSION, WHICH HAS TO BE LOADED
FIRST AND HAS TO BE LOADED IN ONE SEGMENT.
^THIS EDIT FORCES THE ASSEMBLER TO CREATE A ONE-SEGMENT PROGRAM,
REGARDLESS OF THE COMMANDS USED TO LOAD IT.
^OF COURSE THE LOW SEGMENT OF ^F^O^C^A^L STILL HAS TO BE LOADED
FIRST, IN ORDER THAT THE ^F^O^C^A^L FUNCTION RETAIN ITS DEFINED
SPECIFICATION.
.SKIP 1
.INDENT -8
_#225####^I HAVE NOW REMOVED THE REQUIREMENT THAT THE ^P^D^P-6 VERSION
BE RUN WITH THE PARAMETER ^M^O^N^I^T^O^R=3.27.
^THIS IS BECAUSE THE RAISON D'ETRE OF THE ^P^D^P-6 VERSION
HAS NOW CHANGED.
^IT EXISTS NOW NOT BECAUSE SOMEONE MIGHT HAVE A ^P^D^P-6, BUT
RATHER THAT THEY MAY HAVE A ^K^A-10 AND WISH TO RETAIN 62-BIT PRECISION.
^IT WON'T BE AS GOOD AS THE ^K^I-10, WHICH COMPUTES THREE WORDS
AND ROUNDS THE LOW ORDER BIT, BUT IT SHOULD GIVE BETTER PRECISION
THAN THE ^K^A-10 VERSION, AT THE COST OF CPU-TIME.
.SKIP 1
.INDENT -8
_#226####^USERS OF THE ^F^C^O^S^D AND ^F^S^I^N^D FUNCTIONS
IN ^F^O^C^A^L WILL OFTEN USE ARGUMENTS WHICH ARE INTEGERS, AND
OFTEN MULTIPLES OR SUBMULTIPLES OF 90 DEGREES.
^FOR THIS REASON IT IS DESIRABLE TO MAKE A SPECIAL COMPUTATION DIRECTLY
FROM THE ARGUMENT TO THE FRACTION OF QUADRANT, RATHER THAN FIRST CONVERTING
IT INTO RADIANS AND THEN INTO QUADRANTS.
^THE ROUNDING ERRORS SAVED WILL USUALLY GIVE MUCH BETTER RESULTS,
SPECIALLY WHEN COMPUTING LARGE ANGLES.
.SKIP 1
.INDENT -8
_#227####^THERE WAS A PROBLEM IN THAT ^F^O^C^A^L WENT INTO A LOOP IF YOU
HAD ^G^O^T^O FOLLOWED BY DOUBLE PERIODS.
^THIS HAS BEEN CORRECTED BY A RE-WRITTEN ^G^E^T^L^N ROUTINE.
.SKIP 1
.INDENT -8
_#230####^THE MONITOR MANUAL SAYS (AND THE ^MAYNARD PROGRAMMERS REFUSE TO DENY)
THAT A ^D^E^CTAPE ^R^E^N^A^M^E MUST BE PRECEDED BY A ^C^L^O^S^E.
^THIS IS IN CONTRAST TO A DISK ^R^E^N^A^M^E WHICH MUST NOT BE
PRECEDED BY A ^C^L^O^S^E (IN CASE SOME OTHER USER THEN GRABS THE FILE
IN BETWEEN), AND SO ^F^O^C^A^L HAS BEEN CHANGED TO
MAKE A SPECIAL CASE FOR ^D^E^CTAPE ^R^E^N^A^M^E.
.SKIP 1
.INDENT -8
_#231####^THE ^P^D^P-6 DOUBLE-FLOATING-DIVIDE ROUTINE WAS SLIGHTLY
MODIFIED IN THE HOPE THAT ANOTHER HALF BIT OF PRECISION COULD BE
SQUEEZED OUT OF IT.
^IT HAS NOT BEEN PROVED THAT THE PRECISION IS IN FACT
IMPROVED, BUT AT LEAST IT IS NOT MADE WORSE.
^PERHAPS SOME KIND NUMERICAL ANALYST COULD PROVE IT ONE WAY OR THE
OTHER FOR ME.
.SKIP 1
.INDENT -8
_#232####^THE ^S^Q^R^T, ^A^T^A^N, ^A^B^S, ^S^I^G^N FUNCTIONS WERE REMOVED
FROM ^F^O^C^A^L-10.
^THIS IS BECAUSE SMALL COMPUTER ^F^O^C^A^LS MAY PERHAPS BE USING
THESE NAMES AS VARIABLES, AND IT IS THEREFORE BAD TO HAVE THEM
AS RESERVED WORDS IN ^F^O^C^A^L-10.
^THE POLICY HAS BEEN ADOPTED FOR ^F^O^C^A^L-10 THAT ALL RESERVED
WORDS SHALL COMMENCE WITH THE LETTER "^F".
^TO THIS END, THE FUNCTIONS ^F^S^I^N^D, ^F^C^O^S^D
AND ^F^L^O^G10 HAVE BEEN ADDED TO THE FUNCTION TABLE IN ANTICIPATION
OF THE DAY WHEN ^S^I^N^D, ^C^O^S^D AND ^L^O^G10 WILL BE DELETED.
.SKIP 1
.INDENT -8
_#233####^THE MULTI-FILE CHANNEL NUMBERS ARE NOW DECIMAL.
^ALSO A BUG WAS FIXED IN THAT ^A^S^K /0, ^T^Y^P^E /0 AND
^O^P^E^R^A^T^E#/0 NOW WORK AS PER THE MANUAL.
.SKIP 1
.INDENT -8
_#234####^A BUG WAS CORRECTED WHICH PREVIOUSLY CAUSED A PROBLEM
DURING FLOATING POINT TRAPS WHICH TYPED ERROR MESSAGES.
^ACCUMULATOR ^P^C IS NOW SAVED IN THE TRAP HANDLER.
.SKIP 1
.INDENT -8
\V3^B#####^RELEASED 14-^NOV-73.
.SKIP 1
.INDENT -8
_#235####^THE ^P^D^P-6 DOUBLE-FLOATING-MULTIPLY ROUTINE HAD A PROBLEM
IN THAT MULTIPLICATION BY 2 CAUSED A ROUNDING ERROR.
^THIS WAS BECAUSE OF A LACK OF INTERNAL PRECISION, AND THE PROBLEM
HAS NOW BEEN CORRECTED. (21-^DEC-73)
.SKIP 1
.INDENT -8
_#236####^THE ^TELETYPE INPUT ROUTINE (USED FOR INITIAL COMMAND AND FOR
^A^S^K DATA) IS NOW GATHERED ON THE STACK INSTEAD OF INTO FREE CORE.
^IT SOLVES THE LONG-STANDING PROBLEM THAT IF FREE CORE IS UNAVAILABLE
YOU COULDN'T TYPE A COMMAND, EVEN AN ^E^R^A^S^E COMMAND.
(21-^DEC-73)
.SKIP 1
.INDENT -8
_#237####^I HAVE ATTEMPTED TO IMPROVE THE CAPABILITY OF THE MONITOR
^S^A^V^E COMMAND, SO THAT YOU WILL BE ABLE TO STOP ^F^O^C^A^L
AT ANY TIME AND ^S^A^V^E IT.
(9-^JAN-74)
.SKIP 1
.INDENT -8
_#240####^THERE WAS A PROBLEM IN THAT THE COMMAND ^T^Y^P^E %^E\M\M.\N\N /\C\H\N FAILED BECAUSE ACCUMULATOR ^T2 WAS NOT PRESERVED, AND BECAUSE
THERE WAS NO COMMA BETWEEN THE ARGUMENTS, THIS WAS REQUIRED.
^THE PROBLEM IS NOW FIXED.
(15-^JAN-74)
.SKIP 1
.INDENT -8
_#241####^TWO PROBLEMS WERE REPORTED RELATING TO TYPE-OUT IN ^E-FORMAT.
^THE FIRST WAS THAT ^T^Y^P^E %10.5 SHOULD REALLY GIVE A WARNING
BECAUSE IT IS CONFUSING FOR THE USER TO HAVE IT AUTOMATICALLY REVERT TO ^E-FORMAT.
^THE ^F^O^C^A^L SPECIFICATIONS WERE CHANGED TO GIVE A WARNING ONLY AND IGNORE THE REQUEST UNLESS THE USER GAVE %0 OR %.
^THE SECOND PROBLEM WAS THAT ^T^Y^P^E %,.001 GAVE 00.00000^E-6
BECAUSE THE CODE AT ^F^I^X: DID NOT WORK CORRECTLY FOR DOUBLE PRECISION
NEGATIVE NUMBERS CLOSE TO A POWER OF 2.
^THIS IS FIXED NOW.
^THIS CORRECTS PATCH _#205.
(31-^JAN-74)
.SKIP 1
.INDENT -8
_#242####^THE ^E^V^A^L ROUTINE WAS MODIFIED TO RUN FASTER IF NO UNARY
SIGN PRECEDED THE EXPRESSION.
^ALSO ** FOR EXPONENTIATION NOW WORKS IF A SPACE SEPARATES THE **'S.
(1-^FEB-74)
.SKIP 1
.INDENT -8
_#243####^F^O^C^A^L WILL NOW TRAP EXPRESSIONS WHICH ILLEGALLY
TERMINATE WITH AN OPERATOR SUCH AS 5+6* OR 5*6+.
(1-^FEB-74)
.SKIP 1
.INDENT -8
_#244####^CODE IS NOW INCLUDED IN THE SOURCE OF ^F^O^C^A^L
TO ALLOW THE CONSTRUCTION "^T^Y^P^E $$"
TO GIVE THE SYMBOL TABLE WITH OCTAL COMMENTED INTO IT.
^THIS IS VERY HANDY FOR DEBUGGING LOGICAL OPERATIONS IN ^F^O^C^A^L
PROGRAMS.
^THIS CODE IS CONDITIONAL UPON VERSION NUMBER.
^IT WILL BE IN VERSION 4.
(4-^FEB-74)
.SKIP 1
.INDENT -8
_#245####^THE TYPE-OUT OF ZERO WAS INCORRECTLY OUTPUT AS #.0000
INSTEAD OF 0.0000 FOR ^E-FORMAT OR ^F-FORMAT WHICH ALLOWED SUFFICIENT WIDTH.
^IT IS FELT THAT THE SPECIFICATION IS INDEED CORRECT, AND ^F^O^C^A^L HAS
BEEN MODIFIED TO CONFORM.
(13-^FEB-74)
.SKIP 1
.INDENT -8
\V3^C#####^RELEASED 14-^FEB-74.
.SKIP 1
.INDENT -8
_#246####^THERE WAS SOME INACCURACY WITH THE TYPE-OUT OF NUMBERS, AND
IT WAS DISCOVERED THAT THIS WAS DUE MOSTLY TO THE FACT THAT ^I CONVERTED
ALL NUMBERS TO A LOGARITHM AND BACK AGAIN.
^THIS DOUBLE-CONVERSION WAS REMOVED.
^ALSO THE CODE IN THIS AREA WAS CLEANED UP.
^ALSO THE ^R^F^I^X ROUTINE WAS SLIGHTLY IMPROVED SO THAT THE
INSTRUCTION USED FOR ROUNDING DID EXACTLY ADD 0.5 INSTEAD OF ADDING
0.5 AND THEN ROUNDING AGAIN.
(18-^MAR-74)
.SKIP 1
.INDENT -8
_#247####^SOME SPECIFIC NUMBERS WERE TYPED OUT INCORRECTLY WHEN THE
FIELD WIDTH FOR THE TYPE-OUT WAS GREATER OR EQUAL TO THE ACCURACY
OF THE COMPUTER.
^THE ERROR WAS MANIFEST AS AN OVERFLOW ON TO THE SIGN FIELD INSTEAD
OF CHANGING THE EXPONENT FIELD TO ONE HIGHER AND SHIFTING THE PRINTOUT
ONE PLACE TO THE RIGHT.
^THE CORRECTION IS TO ADD A SLIGHT WEIGHT TO THE LOG10 SO THAT ANY
ERRORS IN THE LOG10 WILL BE ON THE HIGH SIDE, NEVER ON THE LOW SIDE.
^THIS DOES HAVE THE SLIGHT DISADVANTAGE THAT A FEW ^E-FORMAT NUMBERS
WILL NOW TYPE AS 0.NNNN^E+MM, BUT THIS SHOULDN'T WORRY ANYBODY.
(8-^APR-74)
.SKIP 1
.INDENT -8
_#250####^THE DEFAULT ^E-FORMAT FIELD WIDTH HAS NOW BEEN MODIFIED
TO %^E5.04, SO THAT IN MOST SIMPLE CASES THE TOTAL FIELD
SIZE WILL INITIALLY BE THE SAME AS FOR ^F-FORMAT.
^IN THE SINGLE-PRECISION CASES THIS WILL ALSO MINIMIZE PROBLEMS
OF LACK OF ACCURACY SHOWING THROUGH.
(8-^APR-74)
.SKIP 1
.INDENT -8
_#251####^A LARGE SYMBOL-TABLE WITH MOST OF THE SYMBOLS HAVING A ZERO
INDEX LOOKS A BIT MESSY BECAUSE OF ALL THE (0)'S.
^AT THE EXPENSE OF ONE ADDITIONAL WORD OF CORE ^I HAVE TESTED FOR THIS
SPECIAL CASE, AND SO NOW THOSE SYMBOLS WITH A ZERO INDEX WILL HAVE
THE INDEX-PRINTING SUPPRESSED.
^ALSO THE NUMBER OF SPACES AFTER THE "^S" AND BEFORE THE SYMBOL
IS REDUCED TO ONE.
(16-^APR-74)
.SKIP 1
.INDENT -8
_#252####^THE ^M^O^D^I^F^Y COMMAND USED TO BE INCAPABLE OF DELETING A
QUESTION MARK IN COLUMN 1 OF THE DATA LINE. ^IN FACT IT CAUSED THE
DEBUG FLAG TO GET SWITCHED ON.
^THIS WAS BECAUSE WE FLIPPED THE "^I^N^T^E^R^P" FLAG TOO LATE, AND
THE QUESTION MARK WAS TAKEN AS PROGRAM RATHER THAN AS DATA.
^THE FIX IS JUST TO MOVE THE ^T^L^Z INSTRUCTION FROM ^M^O^D:+6
UP TWO LINES TO JUST BEFORE THE ^J^S^P ^P^C,^N^E^W^T^X^T.
(16-^APR-74)
.SKIP 1
.INDENT -8
_#253####^THE NAMES OF THE MONTHS AS THEY ARE PRINTED OUT AT THE HEADING
OF THE LISTING PRODUCED BY ^W^R^I^T^E OR ^L^I^B^R^A ^S^A^V^E ARE NOW
CHANGED TO CONSIST OF ONE UPPER CASE LETTER AND TWO LOWER CASE LETTERS
INSTEAD OF THREE UPPER CASE LETTERS.
(26-^JUN-74)
.SKIP 1
.INDENT -8
_#254####^THE VIRTUAL-MEMORY MONITOR NO LONGER USES THE CONTENTS OF .^J^B^D^D^T IN THE JOB DATA AREA TO INDICATE
THE AMOUNT OF CORE TO BE SAVED BY A MONITOR ^S^A^V^E COMMAND.
^INSTEAD, THE LEFT HALF OF .^J^B^C^O^R AND .^J^B^S^A ARE USED.
^F^O^C^A^L WAS CHANGED TO REFLECT THE NEW SPECIFICATIONS.
(26-^JUN-74)
.SKIP 1
.INDENT -8
\V4######^WITH THE ADVENT OF VERSION 4, THE OBSOLETE COMMANDS BEGINNING
WITH BACKARROW OR EQUALS DISAPPEAR, AS DO THE OBSOLETE COMMANDS WITH
A FILE-SPECIFIER TO BEGIN FOLLOWED BY EQUALS OR BACKARROW.
^ALSO EDIT 244 BECOMES EFFECTIVE, TO ALLOW SYMBOL-TABLE IN OCTAL.
^THE ^L^I^B^R^A ^C^A^L^L IMPROVEMENTS SCHEDULED FOR VERSION 4 WERE
DEFERRED TO VERSION 5 BECAUSE THEY DO NOT YET WORK, AND THEY TAKE
ADDITIONAL CORE STORAGE.
(26-^JUN-74)
.SKIP 1
.INDENT -8
_#255####^L^I^B^R^A#^S^A^V^E COMMAND NOW SAVES THE SYMBOL TABLE
AS WELL AS THE PROGRAM LINES.
^THIS IS MORE HELPFUL TO NOVICES AND TO PEOPLE WHO WANT TO SAVE PROGRAMS
PART-WAY THROUGH EXECUTION.
^IT WILL OF COURSE USE MORE DISK SPACE.
(6-^JUL-74)
.SKIP 1
.INDENT -8
_#256####^THE SPEED OF ^L^I^B^R^A#^C^A^L^L HAS BEEN IMPROVED, BY SLIGHTLY
INCREASING THE SIZE OF THE CORE CHUNKS ALLOCATED DURING PROGRAM BUILDING.
(6-^JUL-74)
.SKIP 1
.INDENT -8
_#257####^INPUT OF NUMERICS WITH LARGE NUMBER OF DECIMAL PLACES HAD THREE PROBLEMS.
^FIRSTLY THE ERROR MESSAGE SHOWED OVERFLOW INSTEAD OF UNDERFLOW.
^SECONDLY THE ERROR MESSAGE CAME OUT ONCE FOR EACH EXCESS DIGIT INSTEAD
OF ONLY ONCE FOR THE WHOLE NUMBER.
^THIRDLY ALL DIGITS BEYOND THE ELEVENTH DECIMAL PLACE
WERE ONLY HELD TO SINGLE PRECISION INSTEAD OF DOUBLE PRECISION.
(14-^JUL-74)
.SKIP 1
.INDENT -8
_#260####^THERE WAS A PROBLEM WITH LIBRARY FILES COMMENCING WITH
A BLANK LINE.
^THIS AROSE BECAUSE PART OF THE ^L^I^B^R^A ^C^A^L^L PROCEDURE INVOLVED
TRANSLATING CRLF'S INTO NULLS, AND PLACING THE WHOLE ^L^I^B^R^A FILE
INTO THE IMMEDIATE-MODE TEXT AREA OF CORE.
^THE CORE-EXPANSION ROUTINE THEN LOOKED UP INTO THE IMMEDIATE-MODE TEXT
AREA, SAW THE INITIAL NULL, AND THOUGHT IT COULD GO AHEAD AND
USE THE SPACE!
(23-^JUL-74)
.SKIP 1
.INDENT -8
_#261####^THE ^S^Q^U^E^E^Z ROUTINE WAS OPERATING INCORRECTLY,
IN THAT THE POINTERS WERE ADJUSTED BEFORE THE NEW SPACE WAS ZEROED
INSTEAD OF AFTER.
^THE END RESULT WAS THAT ^S^Q^U^E^E^Z TRICKED ITSELF INTO BELIEVING
THE GARBAGE WAS MEANINGFUL, AND ^F^O^C^A^L TEXT BEING INSERTED
INTO THE MIDDLE OF A PROGRAM CAUSED SOME OTHER TEXT HIGHER UP TO BE LOST.
(23-^JUL-74)
.SKIP 1
.INDENT -8
_#262####^THE SINE/COSINE ROUTINES WERE MODIFIED TO USE A VARIABLE NUMBER
OF TERMS IN THE POWER SERIES.
^THIS HAS BOTH SPEED AND ACCURACY ADVANTAGES FOR ^F^O^C^A^L.
^IN ORDER TO COMPUTE THE SIZE OF THE LAST SIGNIFICANT TERM, IT SHOULD BE
NOTED THAT THE SMALLEST ^R^A^T^I^O OF LAST SIGNIFICANT TO FIRST
NON-SIGNIFICANT TERM OCCURS FOR X=^P^I/4 WHEN THERE ARE 11,17 OR 19
SIGNIFICANT TERMS FOR FRACTION SIZES OF 27,54 OR 62 BITS.
(5-^AUG-74)
.SKIP 1
.INDENT -8
_#263####^SINGLE-PRECISION ^F^A^T^N FOR VERY SMALL NEGATIVE ARGUMENTS HAD
THE WRONG SIGN.
^THIS WAS CORRECTED BY CHANGING ^F^O^C^A^L TO USE THE DOUBLE-PRECISION METHOD
FOR BOTH SINGLE AND DOUBLE-PRECISION COMPUTATIONS. ^IT ALSO ENHANCES
ACCURACY SOMEWHAT FOR THE SINGLE-PRECISION CASE.
(9-^AUG-74)
.SKIP 1
.INDENT -8
_#264####^THE DOUBLE-PRECISION ^K^A-10 ^F^E^X^P WAS RETURNING NON-NORMALIZED NUMBERS IN CERTAIN CASES.
^THE PROBLEM AROSE BECAUSE ^I FORGOT THAT ^F^S^C OF THE LOW-ORDER
WORD NORMALIZES THE LOW-ORDER WORD, WHICH IS WRONG.
^CORRECTION IS TO INSERT ^F^A^D^L ^A^C,^M^Q.
(9-^AUG-74)
.SKIP 1
.INDENT -8
_#265####^THE EXPONENTIAL FUNCTION WAS MODIFIED TO MAKE BOTH SINGLE AND
DOUBLE PRECISION METHODS THE SAME.
^THEY BOTH USE THE
CONTINUED FRACTION SERIES INSTEAD OF AN APPROXIMATION.
^IT TURNS OUT THAT YOU DON'T NEED VERY MANY TERMS, AND THAT IT
IS FAIRLY ECONOMIC IN TERMS OF CORE STORAGE TO COMPUTE THE COEFFICIENTS.
(28-^AUG-74)
.SKIP 1
.INDENT -8
_#266####^THERE WAS AN ERROR IN THE TYPE-OUT ROUTINE WHICH MANIFESTED
ITSELF AS A FLOATING OVERFLOW MESSAGE DURING TYPE-OUT OF SMALL NUMBERS
WITH A LONG FRACTION PART OF ^E-FORMAT.
^THE REASON FOR THE ERROR WAS THAT PRE-TYPEOUT NORMALIZATION REQUIRED
ADJUSTMENT WITH AN OUT-OF-RANGE FACTOR.
^CORRECTION WAS A MINOR MODIFICATION OF THE ADJUSTMENT ALGORITHM.
(8-^SEP-74)
.SKIP 1
.INDENT -8
_#267####^SCANNING FOR EMPTY SPACE IN THE TEXT STORAGE AREA WHILE INSERTING A
NEW LINE WAS CHANGED TO COMMENCE AT THE LOW-CORE END, SO THAT REPEATED
CALLING OF THE SAME LIBRARY FILE WOULD NOT RESULT IN UNNECESSARY
CORE EXPANSION.
(8-^SEP-74)
.SKIP 1
.INDENT -8
_#270####^END-OF-FILE HANDLING WAS IMPROVED, SO THAT MORE REASONABLE
THINGS HAPPEN.
^FOR EXAMPLE ^F^C^H^R(-1) NOW RETURNS -1 WHEN END-OF FILE IS ENCOUNTERED,
INSTEAD OF LETTING ^F^O^C^A^L EXIT.
(8-^SEP-74)
.SKIP 1
.INDENT -8
_#271####^THE ^F^I^X^O^A^T ROUTINE WAS RE-WRITTEN, TO PREVENT THE FRACTION PART EVER REACHING +1.
^THE PROBLEM WAS THAT 2_^(-1) WAS NOT COMPUTED ACCURATELY, AND DID NOT
EQUATE EXACTLY WITH 1/2.
(12-^SEP-74)
.SKIP 1
.INDENT -8
_#272####^CORRECTIONS TO EDIT _#267.
(21-^SEP-74)
.SKIP 1
.INDENT -8
_#273####^CODE WAS ADDED TO CHECK FOR AND REJECT THE FORMS ^A^S^K#%
AND ^A^S^K#$.
^THE CODE WAS MADE CONDITIONAL ON HAVING ENOUGH CORE; MEANING THAT
THE CODE IS IN ALL VERSIONS EXCEPT THE ^K^A-10 DOUBLE-PRECISION
VERSION WHICH IS A BIT TIGHT FOR CORE.
(14-^OCT-74)
.SKIP 1
.INDENT -8
_#274####^A NEW LOGARITHM ALGORITHM WAS INVENTED, AND USED IN PLACE
OF THE EXISTING ONES IN THOSE CASES WHICH ARE SHORT OF CORE, NAMELY
^K^A-10 DOUBLE-PRECISION.
^THE ALGORITHM IS BASED ON SUCCESSIVE SQUARING AND EXPONENT-EXTRACTION;
IT IS SLOWER BUT SMALLER AND MORE ACCURATE.
(21-^OCT-74)
.SKIP 1
.INDENT -8
_#275####^THE ACCUMULATOR VALUES WERE CHANGED IN ANTICIPATION OF THE DAY
WHEN THE ^SUBROUTINE ^CALLING ^CONVENTION WILL BE ADHERED TO.
(21-^OCT-74)
.SKIP 1
.INDENT -8
_#276####^STRING VARIABLES AND STRING EXPRESSIONS WERE ADDED.
(22-^OCT-74)
.SKIP 1
.INDENT -8
_#277####^IT WAS DISCOVERED THAT FOR ^K^A-10 DOUBLE-PRECISION,
THE NUMBER 576400000000, 146001000000 IS NORMALIZED
BUT ITS NEGATIVE VIA ^D^F^N (201377777777, 146777000000) IS NOT.
^THEREFORE NEGATION WAS MADE SUBJECT TO NORMALIZATION AS WELL.
^I.E.#^D^F^N WAS FOLLOWED BY ^F^A^D^L.
(27-^OCT-74)
.SKIP 1
.INDENT -8
_#300####^THE NEW LOGARITHM METHOD (EDIT 274) WAS MADE MANDATORY FOR
ALL VERSIONS OF ^F^O^C^A^L.
^THIS ENSURES GOOD ACCURACY AND COMPACT CODE FOR EVERY SITUATION,
EVEN THOUGH SPEED OF LOGARITHMS AND FRACTIONAL POWERS
WILL SUFFER SLIGHTLY. ^I HAVE DEMONSTRATED THAT THE NEW
METHOD GIVES BETTER PRECISION THAN THE OLD: SOMETIMES AS
MUCH AS FIVE IN THE LEAST SIGNIFICANT BIT. ^FOR ARGUMENTS
CLOSE TO UNITY, THE LOGARITHM IS VERY SMALL AND MAY BEAR A SIGNIFICANCE
ONLY AS GREAT AS THE ARGUMENT ITSELF.
(3-^FEB-75)
.SKIP 1
.INDENT -8
_#301####^A FEW INSTRUCTIONS HAVE BEEN SAVED BY MINOR RE-CODING IN A FEW PLACES.
(3-^FEB-75)
.SKIP 1
.INDENT -8
_#302####^THE ^E^V^A^L ROUTINE WITH A NULL ARGUMENT OR EMPTY PARENTHESES
HAS NOW BEEN DEFINED AS NUMERIC WITH VALUE ZERO. ^THIS WAS NECESSARY
IN ORDER THAT LEGALITY AND FORMAT DECISIONS COULD BE MADE INTERNALLY
WITHOUT UNNECESSARY DELAY OR CONFUSION.
^THE PREVIOUS CONFUSION OF UNDEFINED NUMERIC/STRING STATUS CAUSED
ILLEGAL MEMORY REFERENCE DUE TO BAD FORMAT NULL STRING REPRESENTATION.
(4-^FEB-75)
.SKIP 1
.INDENT -8
_#303####^FUNCTIONS ^L^O^G, ^L^O^G10, ^C^O^S, ^C^O^S^D, ^S^I^N, ^S^I^N^D, AND ^E^X^P WERE REMOVED BECAUSE THEY VIOLATED THE RULE ABOUT ALL FUNCTIONS COMMENCING WITH THE LETTER ^F.
^THE ^F^H^I^B^E^R FUNCTION WAS INTRODUCED TO ALLOW ^F^O^C^A^L PROGRAMS TO SLEEP OR HIBERNATE IF REQUIRED.
(6-^FEB-75)
.SKIP 1
.INDENT -8
V5######^THE ANNOUNCEMENT TO THE WORLD THAT STRING VARIABLES EXIST.
(6-^FEB-75)
.SKIP 1
.INDENT -8
_#304####^THE TITLE ON THE LISTING OF ^F^O^C^A^L.^M^A^C NOW DEPENDS
UPON THE ASSEMBLY PARAMETER ^F^N^E^W,
AND WILL ALSO SHOW THE VERSION NUMBER, PRECISION, AND CPU-TYPE.
(23-^FEB-75)
.SKIP 1
.INDENT -8
_#305####^L^I^B^R^A#^S^A^V^E NOW DOES NOT SAVE THE SYMBOL-TABLE WHEN
A LIST IS GIVEN. ^THIS REDUCES DISK REQUIREMENT FOR SAVED FILES.
.SKIP 1
.INDENT -8
_#306####^F^N^E^W IS NOW ALLOWED; ^F^O^C^A^L NOW COMPLIES WITH THE
^CALLING ^SEQUENCE ^STANDARD.
(1-^MAR-75)
.SKIP 1
.INDENT -8
_#307####^REPAIR EDIT _#305 TO SAVE ^I^N^C^H^N AND ^O^U^T^C^H^N CORRECTLY.
(11-^MAR-75)
.SKIP 1
.INDENT -8
_#310####.^J^B^E^R^R IS NOW INCREMENTED UNDER THE FOLLOWING CONDITIONS:
.BREAK
1. ^F^H^I^B^E^R FUNCTION IN A DETACHED JOB.
.BREAK
2. ^F^H^I^B^E^R FUNCTION WHEN ^T^R^M^N^O. ^U^U^O IS ILLEGAL.
.BREAK
3. ^ERROR RETURN ON ^G^E^T^T^A^B ^U^U^O IN ^G^E^T^T^A^B FUNCTION.
.BREAK
4. ^ANY ERROR DETECTED BY ^F^O^C^A^L, WHETHER IT RESULTS IN A PRINTED
MESSAGE OR NOT.
(11-^MAR-75)
.SKIP 1
.INDENT -8
_#311####^F^O^C^A^L NOW GIVES AN ERROR MESSAGE IF AN ATTEMPT IS
MADE TO SET AN OUTPUT FORMAT WITH A WIDTH GREATER THAN 99 COLUMNS.
^PREVIOUSLY THIS RESULTED IN A TYPE-OUT-TIME ^P^D^L#^O^V MESSAGE.
(11-^MAR-75)
.SKIP 1
.INDENT -8
_#312####^THERE WAS A PROBLEM IN THAT THE ^A^S^K DATA "LEADING SPACE" FLAG GOT
CLOBBERED IF YOU INSERTED A NON-SPACE AND RUBBED IT OUT.
^THIS WAS SOLVED BY NOT HAVING A FLAG ANY MORE, BUT RATHER BY
LOOKING AT THE PREVIOUS CHARACTER EACH TIME, TO SEE IF IT
WAS A SPACE TOO. ^YOU WILL BE SAFE IF THE NEW SPACE FOLLOWS ANOTHER
SPACE; BUT IF NOT, IT WON'T BE A LEADING SPACE.
(2-^APR-75)
.SKIP 1
.INDENT -8
_#313####^ECHOING OF RUBBED OUT CHARACTERS USED TO BE IN THE SAME FORM
AS ^T^E^C^O, EXCEPT FOR ^M^O^D^I^F^Y COMMAND.
^THIS HAS NOW BEEN CHANGED SO THAT ALL RUBBED OUT CHARACTERS ARE EMBEDDED
IN REVERSE SLANTS.
^FOR HALF-DUPLEX TERMINALS, THE RUBBED OUT CHARACTER IS NOT ECHOED, BUT RATHER
A REVERSE SLANT IS TYPED FOR EACH RUBBED-OUT CHARACTER.
(5-^APR-75)
.SKIP 1
.INDENT -8
_#314####^CONTROL-^R NOW REPEATS THE PROMPT CHARACTER AND DISPLAYS THE
FIRST PART OF THE LINE (CLEANED UP) FOR INPUT LINES, ^A^S^K DATA,
AND ^M^O^D^I^F^Y WORK.
^ALSO CONTROL-^P MAY NOW BE USED TO ABORT A MODIFY COMMAND IF YOU DECIDE
THAT YOU DON'T WANT TO COMPLETE THE MODIFICATIONS.
(5-^APR-75)
.SKIP 1
.INDENT -8
_#315####^IN AN ^O^P^E^R^A^T^E COMMAND, A NON-EXISTENT DEVICE NOW CAUSES
AN ERROR MESSAGE INSTEAD OF A CHANNEL-RELEASE.
^CHANNEL-RELEASE CAN NOW ONLY BE CAUSED BY ^O^P^E^NING ^T^T^Y ON THE CHANNEL.
(25-^APR-75)
.SKIP 1
.INDENT -8
_#316####^ERROR MESSAGES USED TO COME OUT ON THE ^T^T^Y IF FATAL BUT
ON THE CURRENT OUTPUT DEVICE IF NON-FATAL.
^THIS SEEMS STUPID BECAUSE THE USER REALLY WANTS TO SEE THEM STRAIGHT
AWAY, AND HE'S SITTING AT THE TERMINAL.
^THIS CHANGE MAKES IT ALWAYS COME ON TO ^T^T^Y.
(18-^SEP-75)
.SKIP 1
.INDENT -8
_#317####^M^O^D^I^F^Y COMMAND WILL NOW CORRECTLY HANDLE LINES CONTAINING
QUESTION MARKS, AND WILL ALLOW QUESTION MARKS TO BE INSERTED.
(20-^SEP-75)
.SKIP 1
.INDENT -8
_#320####^THE ^A^S^K COMMAND CAN, AS YOU KNOW, BE USED TO TYPE TEXT
IN THE SAME WAY AS THE ^T^Y^P^E COMMAND, INCLUDING NEW LINES ETC.
^WHAT ^I HAVE NOW DONE IS TO ARRANGE TO REGARD THIS FEATURE AS A KIND OF
CUE FOR THE INPUT. ^THE ADVANTAGE IS THAT YOU CAN THEN HAVE ALL USEFUL
OUTPUT (RESULTS, SAY) GOING TO THE LINE PRINTER, WHILST THAT MESSAGE REQUESTING INPUT WILL GO TO THE ^T^T^Y.
^IN ACTUAL FACT, ^I HAVE ARRANGED FOR ALL OUTPUT DURING AN ^A^S^K
COMMAND TO GO TO ^T^T^Y, BUT ONLY IF INPUT IS EXPECTED FROM ^T^T^Y.
(4-^OCT-75)
.SKIP 1
.INDENT -8
_#321####^M^O^D^I^F^Y SHOULD BE HANDLED THE SAME WAY BECAUSE THE OUTPUT
FROM ^M^O^D^I^F^Y IS REALLY ONLY FOR THE GUIDANCE OF THE PERSON DOING
THE TYPING.
(4-^OCT-75)
.SKIP 1
.INDENT -8
_#322####^THE DEBUG FEATURE TURNS OUT TO BE VERY DIFFICULT TO USE FOR
DEBUGGING A PROGRAM WHICH HAS OUTPUT DIRECTED TO A FILE OTHER THAN ^T^T^Y.
^TO ASSIST WITH DEBUGGING, AND HOPEFULLY NOT INCONVENIENCE TOO MANY
PEOPLE WHO USE THE FEATURE TO PLUG DATA INTO OUTPUT FILES, WE WILL MAKE
DEBUG OUTPUT ALWAYS GO TO ^T^T^Y.
(4-^OCT-75).
.SKIP 1
.INDENT -8
_#323####^DATA TRANSMISSION ERRORS CAUSING FAILURES OF ^I^N OR ^O^U^T
^U^U^OS NOW CAUSES THE DEVICE STATUS BITS (FROM THE ^G^E^T^S^T^S ^U^U^O)
TO BE PRINTED IN THE ERROR MESSAGE BY ^F^O^C^A^L.
(4-^OCT-75)
.SKIP 1
.INDENT -8
_#324####^CHANGE ^I/^O ROUTINES SO THAT FILE OUTPUT TO OTHER THAN ^T^T^Y ONLY OCCURS DURING THE ^W^R^I^T^E ^T^Y^P^E AND ^L^I^B^R^A COMMANDS.
(10-^OCT-75)
.SKIP 1
.INDENT -8
_#325####^LOGICAL ^I^F USING = AND _# OPERATORS.
(10-^OCT-75)
.SKIP 1
.INDENT -8
_#326####^LOGICAL ^I^F USING .^N^E. AND .^E^Q. OPERATORS.
(13-^OCT-75)
.SKIP 1
.INDENT -8
_#327####^THE FORMAT OF ^I/^O ERROR MESSAGES WHICH RETURN A MONITOR
CODE NUMBER HAVE BEEN CHANGED. ^THE OLD FORMAT \E\R\R\O\R-_#_# HAS BEEN
CHANGED TO \E\R\R\O\R##_#. ^THIS WILL SAVE SOME LOCATIONS OF CORE.
(21-^OCT-75)
.SKIP 1
.INDENT -8
_#330####^A ^B^A^C^K^S^P^A^C^E FROM THE KEYBOARD WILL NOW PERFORM THE SAME
FUNCTION AS A ^R^U^B^O^U^T EXCEPT THAT THE ^B^A^C^K^S^P^A^C^E IS ECHOED AND THE
RUBBED-OUT CHARACTERS ARE NOT DISPLAYED; NO BACK-SLASHES ARE USED.
^THIS SIMULATES THE 5.07 MONITOR.
(8-^FEB-76)
.SKIP 1
.INDENT -8
_#331####^THE ^G^O COMMAND CAN NOW ACCEPT A COMMENT AFTER A SEMI-COLON WITHOUT AN ERROR.
(15-^FEB-76)
.SKIP 1
.INDENT -8
_#332####^THE HALF-DUPLEX TERMINAL TEST HAS NOW BEEN REPLACED WITH A
LOCAL-COPY TEST, WHICH IS REALLY MORE CORRECT, SINCE THE FEATURE BEING
ADJUSTED IS THE LAYOUT OF BACKSLASHES ON THE PAPER.
^THE ^D^P^O^P ^U^U^O WAS NOT IN FACT CALLED ANYWHERE, AND SO IT WAS
REMOVED ALONG WITH ITS HANDLER.
^THE TRAP HANDLER HAD SOME INACCESSIBLE CODE IN IT, AND SO IT WAS
CLEANED UP AND ABBREVIATED.
(1-^APR-76)
.SKIP 1
.INDENT -8
_#333####^THE ^S^E^T COMMAND WILL NO LONGER CREATE A NEW SYMBOL-TABLE ENTRY
WHEN A NEW SYMBOL IS SET TO ZERO.
^THIS WILL SAVE CORE AND CANNOT AFFECT PROGRAMS BECAUSE
IF AN UNDEFINED SYMBOL IS REFERENCED IT IS GIVEN THE VALUE OF ZERO ANYHOW.
^SOME INACCESSIBLE CODE IN THE ^S^Q^U^E^A^Z ROUTINE IS ELIMINATED.
(2-^APR-76)
.SKIP 1
.INDENT -8
_#334####^COMMANDS TO ^F^O^C^A^L MUST NOW CONSIST OF ALPHABETIC LETTERS ONLY.
^THIS MEANS THAT COMMANDS SUCH AS ^T^Y^P^E2.6 WITH NO SPACES WILL BE
MORE MEANINGFUL TO NOVICES AND FOLK USED TO ^B^A^S^I^C.
^ALSO ^I HAVE MODIFIED THE ^I^N^C^R^E^M AND ^D^E^C^R^E^M MACROS IN THE SOURCE SO THAT THEY MAY HAVE AN ARGUMENT.
(4-^APR-76)
.SKIP 1
.INDENT -8
_#335####^THE LOGICAL OPERATORS .^L^T., .^L^E., .^G^T., AND .^G^E. HAVE BEEN ADDED.
^THE ^P^R^I^N^T^X PSEUDO-OP HAS BEEN REPLACED BY THE MACRO ^P^X IN MOST PLACES
TO MAKE IT A FATAL ERROR.
(10-^APR-76)
.SKIP 1
.INDENT -8
_#336####^THE ^I^N^C^R^E^M AND ^D^E^C^R^E^M MACROS HAVE BEEN REMOVED FROM THE SOURCE CODE.
^THE ^F^A^D^R^I INSTRUCTION IS NOW SIMULATED FOR THE ^P^D^P-6 VERSION SO SOME
CODE IS SIMPLER.
^THE ^D^E^X^C^H CODE FOR THE ^K^I-10 DOUBLE-PRECISION VERSION IS FASTER
AND USES A ^P^U^S^H^J TO A LITERAL RATHER THAN A ^U^U^O.
(11-^APR-76)
.SKIP 1
.INDENT -8
_#337####^THE EFFICIENCY OF THE ^W^R^I^T^E COMMAND WAS INCREASED BY REMOVING THE CHARACTER-COUNTER TO THE ERROR-HANDLER ROUTINE.
(11-^APR-76)
.SKIP 1
.INDENT -8
_#340####^THE ^E^V^A^L ROUTINE WAS SPEEDED UP AND THE EXPRESSION ROUTINE
WAS MODIFIED TO CORRECT THE CASE OF -1.^E^Q.-1.
(15-^APR-76)
.SKIP 1
.INDENT -8
_#341####^A BETTER TRY AT EDIT _#340.
(17-^APR-76)
.SKIP 1
.INDENT -8
_#342####^F^N^E^W^G^O NOW ATTEMPTS TO FIND ^F^O^C^A^L.^S^H^R ON ^N^E^W AND ^O^L^D
IF IT CANNOT FIND IT ON ^D^S^K OR ^S^Y^S.
^THIS SHOULD HELP PEOPLE WHO WANT TO RUN ^F^O^R^T^R^A^N SUBROUTINES
WITH NEWER OR OLDER THAN STANDARD ^F^O^C^A^L.
(2-^MAY-76)
.SKIP 1
.INDENT -8
_#343####^THE SYMBOL-TABLE IS NOW SEARCHED WITH A BINARY SEARCH METHOD.
^THIS SPEEDS UP PRODUCTION PROGRAMS WHICH TEND TO HAVE A LARGE NUMBER
OF FIXED SYMBOLS. ^THERE ARE SEVERAL SIDE-EFFECTS OF THIS CHANGE.
^FIRSTLY THE SYMBOL TABLE IS STORED IN ALPHABETICAL ORDER RATHER THAN
CHRONOLOGICAL, WHICH WILL AFFECT THE APPEARANCE OF THE SYMBOL-TABLE
PRINTOUT. ^SECONDLY THE ACTUAL SETTING UP OF THE SYMBOL-TABLE WILL BE
SLIGHTLY SLOWER BECAUSE SHUFFLING IS REQUIRED TO MAKE IT ALPHABETICAL.
^THIRDLY A SLIGHT INCREASE OF SPACE IS REQUIRED FOR THE SYMBOL-TABLE -
AN INCREASE OF 33% FOR DOUBLE-PRECISION, BUT NO INCREASE FOR SINGLE
PRECISION; THIS IS REQUIRED TO AVOID A DIVISION INSTRUCTION
IN THE INNER LOOP.
^FOURTHLY IT IS NOW POSSIBLE TO CHANGE THE WAY A ^F^O^R LOOP WORKS WHEN
YOU ERASE THE SYMBOL TABLE; THE ERROR MESSAGE ON THE ^E^R^A^S^E IS NO
LONGER REQUIRED, AND THE ^F^O^R WILL EXIT FROM THE LOOP
WHEN IT CANNOT FIND THE INDEX ANY MORE.
(25-^JUL-76)
.SKIP 1
.INDENT -8
_#344####^A^S^K FOR A STRING WILL NOW ACCEPT A STRING CONTAINING
SPACES AND COMMAS.
^THE TERMINATOR FOR A STRING IS LINE-FEED ALONE; CARRIAGE-RETURN IS
IGNORED; ^E^S^C^A^P^E ABORTS THE ^A^S^K INPUT.
^I ALSO TOOK THE OPPORTUNITY IN THE SOURCE FILE, OF DEFINING ^K^L
TO ALLOW FUTURE HARDWARE DEPENDENCIES.
(31-^JUL-76)
.SKIP 1
.INDENT -8
_#345####^L^O^O^K^U^P IS NOW NON-FATAL EXCEPT IN CASE OF ^K^A-10 DOUBLE-PRECISION VERSION OF ^F^O^C^A^L.
^THIS MEANS THAT YOU CAN TEST FOR THE EXISTENCE OF A FILE BY OPENING IT
FOR INPUT AND SEEING WHETHER OR NOT YOU GET AN ERROR.
^L^I^B^R^A ^S^A^V^E NOW GENERATES BACKUP EXCEPT FOR ^K^A-10 DOUBLE-PRECISION VERSION OF ^F^O^C^A^L.
^THE BACKUP TAKES THE FORM OF RENAMING AN EXISTING FILE IF ANY TO .^B^A^K, AFTER DELETING ANY .^B^A^K FILE; THEN THE ^L^I^B^R^A ^S^A^V^E PROCEEDS AS IT WOULD HAVE WITHOUT AN EXISTING FILE OF THE SAME NAME.
^A FEW INTERNAL CHANGES WERE MADE AT ^L^I^M^S^E^T TO REDUCE THE CORE SIZE; ^M^A^X^L^N,^M^I^N^L^N WERE REPLACED BY ^L^U^P^A^R^G.
^THE ^M^A^C^R^O EXCLUSIVE ^O^R OPERATOR _^! WAS INTRODUCED TO ASSIST
DEFINITION OF CERTIAN OPCODE FIDDLE PARAMETERS.
(9-^OCT-76)