Misplaced Pages

BASIC-PLUS

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

BASIC-PLUS is an extended dialect of the BASIC programming language that was developed by Digital Equipment Corporation (DEC) for use on its RSTS/E time-sharing operating system for the PDP-11 series of 16-bit minicomputers in the early 1970s through the 1980s.

#103896

79-586: BASIC-PLUS was based on BASIC-8 for the TSS/8 , itself based very closely on the original Dartmouth BASIC . BASIC-PLUS added a number of new structures, as well as features from JOSS concerning conditional statements and formatting. In turn, BASIC-PLUS was the version on which the original Microsoft BASIC was patterned. Notable among the additions made to BASIC-PLUS was the introduction of string functions like MID$ and LEFT$ , in addition to Dartmouth's original all-purpose CHANGE command. In future versions of

158-483: A % suffix, string variables (variable length) were indicated with a $ suffix. The list of mathematical and logical operators was typical of most BASICs, with some extensions. For math, + , - , * , / and ^ were supported, along with ** as an alternate form of ^ for computer terminals that might not have that character. Standard logical comparisons were = , < , > , <= , >= , and <> . One interesting addition

237-447: A DATA statement, MAT INPUT would fill the array with user-typed values, and MAT PRINT would print out the elements in a 1D or 2D format. MAT could also be used to set default values in a matrix using associated keywords, for instance, MAT A=ZER would fill the A array with zeros. TRN would transpose an entire matrix, and INV would invert it. Additionally, + , - , and * could be used on matrixes, performing

316-547: A PDP-6 , which ultimately grew to support hundreds of computer terminals based on the IBM Selectric . The terminals used green ink for user input and black for the computer's response. Any command that was not understood elicited the response Eh? . The system was highly influential, spawning a variety of ports and offshoots. Some remained similar to the original, like TELCOMP and STRINGCOMP , CAL , CITRAN, ISIS, PIL/I, JEAN ( ICT 1900 series ), BOSS and INTERP on

395-470: A line feed at the end of a line instead of the normal carriage return character. For ease of external editing of the source file, later versions of BASIC-PLUS also allowed the & character as a line continuation character. Multiple statements could be placed on a single line using : as the statement separator. The system allowed tabs to be used as inline whitespace, and was used to make loops more clear, as in modern languages. Comments used either

474-462: A mortgage calculator and early mainframe games . Because large programs caused paging that slowed the computer for all, The JOSS Newsletter often asked users to use less storage. Terminals were handled through a custom "concentrator" that consisted of a mechanical Strowger switch that could connect any of the 300 to 400 possible terminal plugs to any of 40 outputs. A further eight lines were dedicated to Teletype Model 33 inputs, as opposed to

553-606: A 1990s joint space experiment program between Italy and USA flying a space tether TSS-1R , reflight of the Tethered Satellite System mission Tromsø Satellite Station , a satellite earth station located in Tromsø, Norway Toxic shock syndrome , a potentially fatal illness caused by a bacterial toxin Transcription start site , the starting point of the process of creating a complementary RNA copy of

632-522: A French rock band Retail [ edit ] Times Square Stores , a defunct American department store also branded as "TSS" Science and technology [ edit ] Tiangong Space Station , a permanently crewed space station constructed by China. Traffic Separation Scheme , a traffic-management route-system ruled by the International Maritime Organization TSS-1 , Tethered Satellite System-1,

711-479: A built-in source-code editor that can perform instructions in direct or immediate mode, what they termed a conversational user interface . JOSS was initially implemented on the JOHNNIAC machine at RAND Corporation and put online in 1963. It proved very popular, and the users quickly bogged the machine down. By 1964, a replacement was sought with higher performance. JOHNNIAC was retired in 1966 and replaced by

790-525: A coffee on one side. Toggling the power switch on the terminal caused it to connect at the new location. The custom terminals had been designed for JOSS as the engineers felt that the Model 33's "telecommunications functions are a mystery to the untrained person" and would be too confusing for the occasional users to bother learning. In practice, the Selectric-based mechanisms proved too fragile for

869-502: A command keyword following the line number. No concept of a default command exists as is the case in BASIC with its optional LET statement. Multiple statements can be placed on one line, separated by colons or semicolons. Every line must end with a period. JOSS uses a suffix notation to indicate conditional evaluation, "do this if this is true", in contrast to most languages which place the condition in front in prefix notation, "if this

SECTION 10

#1732780982104

948-449: A number is in page 3, one might have three lines of code 3.1, 3.2 and 3.3, and it would be called using Do part 3. The code would return to the statement after the Do when it reaches the next line on a different page, for instance, 4.1. No need exists for the equivalent of a RETURN at the end, although if an early return is required, Done accomplishes this. Every line must start with

1027-402: A period. As in BASIC, line numbers are used both as labels to target from To and Do statements, and to support editing. Entering a line of code with a new line number inserts it into a program, while entering one with an extant line number replaces the prior version or deletes it if it is empty. The portion of the line number to the left of the period is termed the page or part , while

1106-597: A programmer, because that would have kept them away. A formal proposal to develop what became JOSS on the JOHNNIAC computer was accepted in March 1961. JOSS was implemented almost entirely by J. Clifford Shaw , a mathematician who worked in Rand's growing computing division. It was written in a symbolic assembly language called EasyFox (E and F in the US military's then phonetic alphabet), also developed by Shaw. The JOSS system

1185-668: A rowing club in London, England Telangana Sports School , a sports school in Hyderabad, India Times Square Stores , a US retail department store chain Technical Services Staff , a component of the U.S. Central Intelligence Agency TV Shinhiroshima , a TV station in Japan Total System Services, Inc. (NYSE symbol) Ton Steine Scherben , a German rock band The Sunday Sadness ,

1264-439: A secondary program to indicate that a program should begin execution at a different point from its first line. This feature of chaining to a certain line number allowed programs to signal to each other that they were being called from another program. The use of a shared memory section called core common also allowed programs to pass data to each other as needed. Disk files could also be used but were slower. To conserve memory,

1343-468: A sense of humor", with funny responses like Eh? . JOSS introduced the idea of a single command line editor that worked both as an interactive language and a program editor. Commands that were typed without a line number were executed immediately, in what JOSS referred to as " direct mode ". If the same line was prefixed with a line number, it was instead copied into the program code storage area, which JOSS called "indirect mode". New lines were added to

1422-613: A sequence of DNA TSS (operating system) , an early time-sharing operating system on the IBM System/360 Model 67 and System/370 Task State Segment , a special structure on x86-based computers which holds information about a task Total sum of squares , a quantity that appears as part of a standard way of presenting results Total suspended solids , a water quality measurement TATSU Signing Server , an Apple server which controls whether iOS versions can be restored to Trusted Platform Module (TCG Software Stack),

1501-533: A slot in a numeric array. For instance, CHANGE 'HELLO' TO X would return an array with the five ASCII codes, 110, 105, 114, 114, 105, in elements 1 through 5, and the number 5, the length of the string, in element 0. One could reverse the operation as well, CHANGE X TO A$ would read the individual numbers in the X array and convert it to a string. BASIC-PLUS added the concept of "statement modifiers", JOSS -like conditions that could be applied to any statement. For instance, PRINT I IF I <> 10

1580-404: A smart terminal with cursor control could not be guaranteed, BASIC-PLUS used the common system of prefixing all source code with a line number. The code was edited by typing in the number and then changing the contents of the following code. A line of code could be removed by typing in its line number and nothing else, thereby setting it to an empty line. The virtual address space of an RSTS/E user

1659-461: A software stack by TCG that allows interaction with a TPM Texas Supernova Search , a program to search for new supernovae and other astronomical transients Transport [ edit ] Tsing Shan Tsuen stop , Hong Kong (MTR station code TSS) Trans Semanggi Suroboyo in Surabaya, Indonesia Twin-screw steamer , a steam-powered vessel with two screw propellers Topics referred to by

SECTION 20

#1732780982104

1738-411: A somewhat obscure format for specifying the loop bounds and step value, start(step)end . For instance, to step from 1 to 10 by 2, the format is 1(2)10 . Like If , For could be applied to any other statement: Note that the for applies only to a single statement; if one wants to run multiple statements in a loop, they would be separated to another part and called using do: As in BASIC, any of

1817-431: A workspace. This allowed comments to be inserted in source code by adding direct-mode lines beginning with * , or by placing one at the end of a line of code and then adding a comment after it. Blank lines were also ignored, allowing the program to be broken up for clarity. Every line in a JOSS program must start with a line number. Line numbers are fixed-point numbers consisting of two two-digit integers separated by

1896-400: Is a better time, JOSS is less busy. When JOSS starts typing answers, the titillating pleasure is equaled only by the ensuing anguish when JOSS breaks off into jibberish [ sic ] or goes away commending your code to oblivion. We can hardly live with JOSS, but we can’t live without it. Another put it more succinctly: It's better than beer — we're hooked. In May 1964, the decision

1975-472: Is different from Wikidata All article disambiguation pages All disambiguation pages JOSS JOSS (acronym for JOHNNIAC Open Shop System ) was one of the first interactive, time-sharing programming languages . It pioneered many features that would become common in languages from the 1960s into the 1980s, including use of line numbers as both editing instructions and targets for branches , statements predicated by Boolean decisions, and

2054-424: Is false and otherwise always true. The DIM statement could allocate one-dimensional and two-dimensional arrays of any of the three data types. The range of subscripts always began with 0 (but MAT statements did not set elements in row 0 or column 0). The language also included a number of MAT commands to work with the entire array (or MATrix). The MAT READ command would fill the matrix with values in

2133-400: Is more of a compact switch statement than a compact if-then. This example recreates the function of the sgn function: This defines a function "s" which takes a single parameter, "x", and makes three consecutive tests against it. Whichever test succeeds first returns the corresponding value after the colon. Another advanced feature of JOSS was that it had the concept of a range as

2212-582: Is the equivalent of IF I <> 10 THEN PRINT I The opposite was also provided, PRINT I UNLESS I = 10 was the equivalent of IF I <> 10 THEN PRINT I . FOR loops worked as in other versions of BASIC, and the NEXT command could not be used in an expression to exit early. Instead, the UNTIL and WHILE keywords could be used to control early exits. For instance, FOR I = 1 UNTIL I = 10 continue looping until I=10, with

2291-404: Is today known as VSI BASIC for OpenVMS . Users would sit at a terminal and type in programming language statements. The statements could either be entered into the system's command interpreter directly, or entered into a text editor , saved to a file, and loaded into the command interpreter from the file. Errors in source code were reported to the user immediately after the line was typed. As

2370-468: Is true, do this". Unlike FORTRAN or FOCAL , any statement can be conditionally evaluated in this fashion. For example, to print a string only if a condition is met, one can combine the if with a Type : JOSS supported six infix comparisons, = , ≠ , ≥ , ≤ , > , < , and Boolean operators or , and , and not . Loops were handled in a similar fashion, using the For command and

2449-472: The REM keyword or the ! character, as opposed to MS BASICs, which used REM and ' . The PRINT command divided the screen into regions 14 spaces wide, and the comma was used to move between these locations; PRINT 1,2,3 would output 1, 2 and 3 in a spaced-out fashion, while PRINT 1;2;3 would leave a single space and produce "1 2 3". INPUT allowed a prompt string to be specified, but used

BASIC-PLUS - Misplaced Pages Continue

2528-835: The Air Force Academy and two in September to ARPA and an Air Force office in the Pentagon . The first permanent offsite teletype connection for a Teletype Model 35 was installed at the Langley Air Force Base in February 1967. With the new machine up and running, JOHNNIAC was taken offline on 11 February 1966, and officially retired on 18 February. Its last running program was written in JOSS and counted down seconds until it would be turned off. The machine

2607-611: The Burroughs B5500 , Algebraic Interpretive Dialogue (AID, on PDP-10 ). Others, such as FOCAL and MUMPS , developed in distinctive directions. JOSS also bears a strong resemblance to the BASIC interpreters found on microcomputers in the 1980s, differing mainly in syntax details. In 1959, Willis Ware wrote a RAND memo on the topic of computing in which he stated future computers would have "a multiplicity of personal input-output stations, so that many people can interact with

2686-407: The "wrong" order could multiply the number of disk accesses. Additional rules were imposed on virtual arrays, such that one datum could never span a record boundary: Each data type was aligned to a multiple of its size. Virtual strings were stored as fixed-length ASCIIZ data, with sizes restricted to 2, 4, 8, 16, 32, 64, 128, 256, or 512 bytes, and were accessed using LSET and RSET . BASIC-PLUS

2765-536: The JOSS-style Selectrics. Those 48 lines were then connected to an electronic multiplexer connected to the CPU. The multiplexer was interrupt driven, meaning idle terminals did not use up any cycles. The custom JOSS terminals were built by DEC. These consisted of a Selectric mechanism built into a custom chassis containing the communications system, power supply, and other components. A custom font ball

2844-467: The PDP-6 was divided into two parts, matching the internal memory layout of the machine. The machine was equipped with two banks of core memory , with 16k 36-bit words in each bank. The JOSS system itself, which included the operating system , user and file management code, terminal handler and the interpreter, used up much of the first of these banks. The second bank was used for user programs. Although this

2923-476: The RSX Run Time System; this RTS only occupied 8KB of the user's virtual address space, leaving 56KB for the user's program. (RSTS/E version 9 introduced separate Instruction and Data space, and the "disappearing" RSX Run Time System, permitting up to 64KB of each of instruction code and data.) These two factors allowed individual BP2 programs to be much larger than BASIC-PLUS programs, often reducing

3002-422: The associated matrix operation. The DIM# "virtual DIM" statement could map "virtual data array(s)" or "virtual array(s)" to a disk file, which allowed arrays larger than the computer's available memory (or even its address space), and allowed use of array elements to read, write, and extend disk files (persistent storage). They called this arrangement "virtual data storage" and "virtual core", but it did not use

3081-417: The assumption that following code would set the value of I, meaning it might not exit after 10 iterations but as soon as the code set I to 10. Modifiers could also be used to build compact one-line loops, for instance, X = X + 1 WHILE X < 100 would loop until X was 100. Variable names in the early versions of BASIC-PLUS could be a single letter or a single letter followed by a single digit. With

3160-684: The code was developed by Charles L. Baker, Joseph W. Smith, Irwin D. Greenwald, and G. Edward Bryan. The system was first declared operational in October, although this included six hours of scheduled maintenance per week. The first prototype terminal arrived in November. In December, a terminal in Las Vegas was connected to the machine remotely for the first time. In February 1966, this was sent to McClellan Air Force Base , followed by one in August to

3239-400: The communications system and changed lights on the front panel to indicate whether the computer or user had control of the terminal at that moment. JOSS so emphasized user-friendliness that "JOSS-like" became a descriptor of a new user interacting with a time-sharing system. Children and others said that unlike a "complicated" computer, JOSS was "friendly" and "kind" like "a real person with

BASIC-PLUS - Misplaced Pages Continue

3318-477: The concept of "conditional expressions". These consisted of strings of propositions along with code that would run if that proposition was true. This allowed multi-step decision trees to be written in a single line. They serve a purpose similar to the ternary operator found in modern languages like C or Java , where they are used to return a value from a compact structure implementing if-then-else . JOSS' version has any number of conditionals, not just three, so it

3397-543: The constant use they saw and were frequently being repaired in the field by IBM servicemen. In 1970, a full third of the terminals were completely rebuilt, and the output from the computer slowed to improve reliability. The Air Force, by this time, had decided to use the Model 35 instead, as it was both readily available and much less expensive. Uses were enthusiastic and to serve them, Rand began publishing The JOSS Newsletter , edited by Shirley Marks. Ultimately 44 issues were published between November 1967 and June 1971. In

3476-418: The country. Many of these were occasional users, precisely what the system had been intended for. To support them, the custom terminals were equipped with special "JOSS plugs" so they could be wheeled from office to office and plugged into custom outlets. Two-hundred of the plugs were installed around Rand, and the terminal chassis was designed to be narrow enough to fit through doors while still leaving room for

3555-502: The drum, the actual input/output to and from the drum was handled externally, although in this case the movement was triggered by user actions to load and store their programs. An IBM-compatible tape drive was used to move data to and from the drive as needed, an operation that was also independent of the CPU. Two DECtape units were also available and worked in the same fashion as the IBM drive. Demonstration programs were available, such as

3634-461: The early 1970s, programmers at one of IBM 's west coast facilities built a JOSS-3 for the IBM 370/158 running OS/360 . Little information about this system exists, with the exception that it was on this machine that JOSS finally retired. According to a note in a historical overview, Rand was hesitant to allow IBM to use the JOSS name, and as a result "the IBM version was never widely used." JOSS-II on

3713-693: The free dictionary. TSS may refer to: Organizations [ edit ] Tanglin Secondary School , a government secondary school in Clementi, Singapore The Southport School , Anglican day and boarding school on Gold Coast, Queensland, Australia Tinana State School , a public primary school in Maryborough, Queensland, Australia Thornhill Secondary School , in Canada Tideway Scullers School ,

3792-707: The inclusion of "Extend mode" in later versions, variable names could be up to 29 characters long, and dot (.) was added as a permitted character. Every variable name still had to begin with a letter. As in most versions of BASIC, the LET keyword, for variable assignment, was optional. It could set multiple variables to a single value, like LET A , B , C = 10 . The language supported three data types; floating-point numbers, integers, and strings. Variables with no suffix were floating point (8 bytes, range 0.29 × 10 to 1.7 × 10, up to 16 digits of precision). Integer variables (16-bit, range −32768 to +32767) were indicated with

3871-415: The inputs to the for loop could be constants, variables or other expressions. As these sorts of ranges could be applied to any line of code, it was possible to define limits and loops when the program was invoked. For instance, consider the program: Normally if one invoked this in a fashion similar to BASIC's RUN : It would produce: However, one can modify this behaviour by adding a loop construct to

3950-408: The invocation: Which would produce: This allows formulas to be constructed in programs without having to be placed within loops. Looping, if desired, can be provided by the user when they start the program. A unique feature of JOSS was its handling of logical expressions. Most computer languages offer some way to form a multi-part mathematical expression, for instance, Set x=(1+2)·3. which sets

4029-401: The keywords as strings: once converted to PPCODE the keywords were numbers that pointed to routines to run that function. BASIC-PLUS included a COMPILE command, but this was not a true compiler; this simply saved the program's PPCODE representation so that it did not have to be recompiled when the BASIC program was next loaded into memory. The system stored a user's program in two formats. One

SECTION 50

#1732780982104

4108-464: The language itself. The new platform could ultimately support up to 100 terminals in simultaneous use. The Air Force remained the owner of the system, with Rand and others operating as consultants. CPU time was billed out to external users at a rate of about $ 1 per minute, although that was only during the actual execution, time spent typing and printing was free. By 1970, there were between 500 and 600 users at Rand and various Air Force sites across

4187-464: The language, notably Microsoft's, CHANGE was removed and BASIC-PLUS's string functions became the only ways to perform these sorts of operations. Most BASICs to this day follow this convention. The language was later rewritten as a true compiler as BASIC-Plus-2 , and was ported to the VAX-11 platform as that machine's native BASIC implementation. This version survived several platform changes, and

4266-549: The machine at the same time." The memo gained the interest of the US Air Force , Rand's primary sponsors, and in 1960, they formed the Information Processor Project to explore this concept, what would soon be known as time-sharing . The project was not specifically about time-sharing, but aimed to improve human-computer interaction overall. The idea at the time was that constant interaction between

4345-499: The machine code object files produced by the assembler and other language systems. These object files could be kept in libraries. A linker (the TKB, also known as the taskbuilder) then created executable files from object files and the libraries. TKB also supported overlays; this allowed individual routines to be swapped into the virtual address space as needed, overlaying routines not currently being used. Additionally, BP2 programs ran under

4424-403: The mathematicians struggling with Marchant calculators, not being able to use JOHNNIAC in its raw form. It was just too hard. They had to learn to be programmers. It was just a frustrating experience for them. We wanted something that would look to them as being a natural way of thinking about an aid to the solution of their problems without very much training, and without any perception of becoming

4503-427: The modern approach of allocating the arrays and a memory-mapped file . Instead, a single buffer was used to store 512 bytes of data at a time, and when an entry in the virtual array was accessed, the corresponding data was read, and old data written, as required. The CLOSE statement caused the buffer to be written back (if necessary) before closing the file. Because no additional sectors were cached, accessing data in

4582-457: The need for CHAINing among multiple programs. Unlike BASIC-PLUS (which was only available on RSTS/E), BP2 was also available for the RSX-11 operating system. BP2 programs were also more compatible with the later VAX BASIC . Microsoft BASIC was patterned very closely on BASIC-PLUS. Earlier versions of MS BASIC, the 1.x series, lacked integer variables, but these were added in the 2.x series that

4661-406: The portion to the right is termed the line . Thus the line number 10.12 refers to page 10, line 12. Branches can target either a page, or a line within a page. When the later format is used, the combined page and line is termed a step . Pages are used to define subroutines , which return when the next line is on a different page. For instance, if a subroutine for calculating the square root of

4740-452: The program if the line number was unique, replaced extant lines with the same number, or removed from the program if an extant line number was typed in with no code following it. In contrast to most BASICs, JOSS saved the entire user input to files, not just the program code. When loaded, JOSS essentially typed the lines back in. This meant that program files could contain both program statements and direct mode instructions. For instance, it

4819-403: The same term [REDACTED] This disambiguation page lists articles associated with the title TSS . If an internal link led you here, you may wish to change the link to point directly to the intended article. Retrieved from " https://en.wikipedia.org/w/index.php?title=TSS&oldid=1251758307 " Category : Disambiguation pages Hidden categories: Short description

SECTION 60

#1732780982104

4898-449: The semicolon to separate it rather than the comma; INPUT "WHAT IS THE VALUE" ; A . Strings could be delimited by single or double quotes. In addition to the CHR and ASCII functions that converted single characters to and from string format, BASIC-PLUS also supported Dartmouth's CHANGE command. CHANGE iterated the string and returned each character's ASCII value as

4977-515: The system included a garbage collecting memory manager, used for both string data and byte-code. A running program could be interrupted, have variables examined and modified, and then be resumed. BASIC-PLUS is patterned closely on later versions of Dartmouth BASIC , including its powerful MAT commands. On top of this, DEC added a number of unique flow-control structures. Line numbers were positive integers from 1 to 32767. Logical lines of code could be continued on multiple physical lines by using

5056-456: The user and the computer in a back-and-forth manner would make such interactions more natural. As JOSS director Keith Uncapher later put it: There were two perceptions that I think drove the experiment. One was, from at least 1950, when I joined Rand, there was always a focus in the computer science part of Rand toward smooth user interaction. It was just built into us. We learned it from Gunning. ... all we thought about. The other was, seeing

5135-570: The variable x to the value 9. JOSS expanded on this concept by clearly defining the concept of the "proposition", an expression that returns a logical value, true or false, instead of a numeric one. They were mostly seen in If statements, as in the examples above, but the Boolean value could also be stored in a variable directly, or one could convert true to 1 and false to 0 using the tv (truth value) function. In addition to propositions, JOSS also had

5214-426: Was a relatively large amount of memory for the era, the system was so heavily used that the 16k word user store was not enough, and it was backed up with a magnetic drum for paging support. The drum was driven by external hardware and did not require attention from the main processor. In order to support multiple user programs, the PDP-6 hardware was modified to examine bit-20 of any address reference. If this bit

5293-583: Was brought up formally for the first time in May 1963, supporting five consoles, one in the machine room and another four in offices around the building. The early consoles were based in the IBM Model 868 Transmitting Typewriter, as the Selectric had not yet been introduced to market when development began. The first schedule was published on 17 June, with JOSS running for three hours from 9am to 12 every day. It

5372-401: Was common to see programs that listed the statement lines and then have the file end with Go. to immediately run the program as soon as it completed loading. There were some features that could only be used in direct mode, like Let and Form , which were input without line numbers but still returned when the program was loaded. Direct and indirect instructions could be mixed freely in

5451-610: Was declared fully operational on eight terminals in January 1964. The final version was deployed in January 1965. By this time the JOHNNIAC was already over a decade old, and its tube-based logic was never highly reliable to begin with. Even when it was working well, the system became so popular it quickly bogged down. Users were enthusiastic, one stated: People adjust their lives to fit around JOSS… No use coming into RAND before 10:00 am when JOSS arrives, in fact noon or after 5:00 pm

5530-538: Was found on many machines, including the later models of the Commodore PET and Commodore 64 . The ability to place logical and loop commands in-line, like I = I + 1 UNTIL I = 10 was not copied over and does not appear on any common version of microcomputer BASIC. MS BASIC also lacked the matrix commands. TSS [REDACTED] Look up TSS in Wiktionary,

5609-533: Was limited to a little less than 64KB of space. Using BASIC-PLUS, about half of this virtual address space was used by the combined command interpreter and run-time library (named the Run Time System on RSTS/E). This limited user programs to about 32 kB of memory. Large programs were broken into separate executable pieces by use of the CHAIN statement, and programs could chain to specific line numbers in

5688-410: Was made to look for a new machine to replace the JOHNNIAC and dedicate it entirely to running an expanded version of JOSS. The machine would also have to support new terminals made to Rand's specifications, and be delivered by 31 October 1965. A total of nine bids were received for the new machine. Digital Equipment Corporation (DEC) won the contest with their new PDP-6 system, and Air Force funding

5767-402: Was not an interpreter but a compile and go system : each line of BASIC was translated into "PPCODE" (Push-Pop Code) as it was entered, for subsequent fast execution on its virtual machine. These translations did not tokenize the BASIC lines but rewrote them for use on a stack machine; you could not translate these representations back to BASIC statements. This avoided the need to repeatedly decode

5846-408: Was released for the purchase. DEC also agreed to build thirty terminals based on the IBM Selectric typewriter modified with a special mechanism to advance to the next page in a fan-fold paper feed. Several other portions of the overall system were delivered from other companies. The PDP-6 arrived in late July 1965, and was initially tested using Teletype Model 33 's as terminals. The new version of

5925-652: Was sent to the Los Angeles County Museum , and eventually ended up at the Computer History Museum outside San Francisco . Having been replaced by the JOSS-2 system, the original was retroactively known as JOSS-1. By the end of 1966 the new JOSS-2 system was fully functional and turned over to JOSS use 24/7. The new machine offered about 30 times the computational speed, five times the storage space per user, and many new features in

6004-431: Was set, the address was in "user space" and was modified so that address zero pointed to the base address of that user. In this way, user programs could be moved about in memory without causing problems for the system, and the operating system could switch from user to user simply by changing a single internal register. Permanent storage was provided by a Storage Products hard drive with 5.7 million words of storage. Like

6083-404: Was the == operator, for "approximately equal". This would return true if the two numbers would be printed the same, that is, their six most significant digits were the same. Logical operators included the typical NOT A , A AND B and A OR B , along with A XOR B , A EQV B which return true if both A and B are true or both are false, and A IMP B which is false if A is true and B

6162-704: Was the editable source code in text format, created using the SAVE command and normally placed in a .BAS file. The other was the PPCODE version of the program created by the COMPILE command and saved to a .BAC file; .BAC files were smaller and loaded and ran faster, but could not be edited. A related product called Basic Plus 2 ("BP2" or BASIC-Plus-2 ), was later developed by DEC to add additional features and increased performance. It used true compilation into threaded code and wrote its output to object files compatible with

6241-469: Was used to provide basic mathematical symbols like ≠ so two-character combinations like <> did not have to be used. The communications system was based on a 6-bit character code in an 8-bit packet with start and stop bits. The lines were driven at 120 bit/s to match the maximum 15 character per second speed of the Selectric mechanism. Shift-in and shift-out codes were used to move the ribbon from green to black and back. These codes were also noticed by

#103896