63-506: The MicroAce was a 1980 Sinclair ZX80 home computer clone , designed and manufactured by CompShop and distributed in the USA by MicroAce of Santa Ana, California . It was also sold in Australia and was distributed by Dick Smith Electronics . Advertised as "a microcomputer for everyone at a micro price ... a complete computer for $ 149.00 for 1K [RAM] kit" with optional 2K RAM, it
126-516: A household television , and simple offline program storage was possible using a cassette recorder . The video display generator of the ZX80 used minimal hardware plus a combination of software to generate a video signal. (Some say this was an idea popularised by Don Lancaster in his 1978 book The TV Cheap Video Cookbook and his " TV Typewriter ". However, that design didn't involve a microprocessor for video generation, and it wasn't really similar to
189-496: A later model held 16 KB of dynamic RAM (DRAM). Following the ZX81's release, a ZX81 8 KB ROM was available to upgrade the ZX80 at a cost of around 20% of a real ZX81. It came with a thin keyboard overlay and a ZX81 manual. By simply taking off the top cover of the ZX80 and prying the old ROM from its socket and carefully inserting the new ROM and adding the keyboard overlay, the ZX80 would now function almost identically to
252-539: A more traditional editor where the user typed-in the keyword as individual characters, similar to other home computers of the era. This required a new tokenizer to convert the line into a similar internal format. The resulting in-memory storage of the program was otherwise similar to Microsoft BASIC , in that only the keywords are presented as tokens, while non-keywords – like string and numeric constants and variable names – are left in their original typed-in format. However, that typed-in format
315-445: A separate heap . The first byte for a variable entry always held the type in the first three bits, and the first character of the name in the next five bits. As was the case in most microcomputer dialects, A , A$ , A() and A$ () were all different variables and could store different values. Most variables could only have a single-character name; the exception are numeric variables (not arrays), where an alternate format held
378-507: A serious limit on its popularity. He wanted a new kit that would expand on their previous MK14 and feature a built-in BASIC at the target price of £79.95. To meet this price point, the machine would ship with only 1 KB of RAM and 4 KB of ROM. Grant suggested using the Forth language instead, but the budget precluded this. Grant wrote the BASIC interpreter between June and July 1979, but
441-462: A single character in memory, which was a significant savings in the early machines that shipped with only 1 KB of RAM. This single-character representation included multi-character items like <> . This has the added advantages of simplifying the runtime, as it can immediately determine whether a character in the source code is a keyword or text, and also means that keywords are never entered directly, meaning that one can, for instance, have
504-518: A suite of trig functions, which were expected of any BASIC from that era, producing 8K BASIC . The initial version did not support the ZX Printer and had a bug in its square root function. Nine Tiles provided a new version to address these, but Sinclair was slow to include the new version in the ROMs. The new ROMs were eventually offered to owners of the earlier ZX80 as well. When Sinclair lost
567-489: A variable named "PRINT", as the system can determine that it is not the same as the keyword. As the systems evolved and added new keywords, the entry system became increasingly difficult to use. 48 BASIC in the Spectrum required every key to host up to four keywords. Entering keywords was a time-consuming process of looking over the relatively small type on the keyboard for the appropriate key, and then correctly entering
630-542: A version for TC 2048 and a version for T/S 2068 and TC 2068 . Timex Extended Basic by Timex of Portugal is used on the Timex Computer 3256 , adding TEC – Timex Extended Commands commands supporting the AY-3-8912 sound chip, RS-232 network and the 512x192 pixel high resolution graphic mode. Several ZX Spectrum interpreters exist. Several ZX Spectrum compilers exist. In all colour-related commands,
693-413: Is allowed to define a variable named PRINT and output its value with PRINT PRINT . This is also related to the syntax requirement that every line start with a command keyword, and pressing the one keypress for that command at the start of a line changes the editor from command mode to letter mode. Thus, variable assignment requires LET (i.e., LET a = 1 not only a = 1 ). This practice
SECTION 10
#1732783052835756-491: Is also different from other BASIC dialects. Further, it meant that unlike other BASIC dialects, the interpreter needed no parentheses to identify functions; SIN x was sufficient, no SIN(x) needed (though the latter was allowed). The 4K BASIC ROM of the ZX80 had a short list of exceptions to this: the functions CHR$ () , STR$ () , TL$ () , PEEK() , CODE() , RND() , USR() and ABS() did not have one-byte tokens but were typed in letter-by-letter and required
819-458: Is anchored around its line editor . When the machine is booted, it runs BASIC and displays an inverse video "K" at the bottom of the screen to indicate the entry point. When a line is entered and the NEW LINE key is pressed, it either runs immediately if it does not have a line number prefix, or clears the screen and performs the equivalent of a LIST command, placing a ">" cursor after
882-539: Is notable for being one of the first computers available in the United Kingdom for less than a hundred pounds . It was available in kit form for £79.95, where purchasers had to assemble and solder it together, and as a ready-built version at £99.95. The ZX80 was advertised as the first personal computer for under £100 and received praise for its value and documentation. However, it faced criticism for screen blanking during program execution, small RAM size, and
945-484: Is performance; the math library included tests to look for the zero exponent, and if it was seen, it would not attempt to perform various operations on the remaining 3 bytes under certain conditions. The ZX81 8K BASIC used the shorter forms GOTO , GOSUB , CONT and RAND , whereas the Spectrum 48 BASIC used the longer forms GO TO , GO SUB , CONTINUE and RANDOMIZE . The ZX80 4K BASIC also used these longer forms but differed by using
1008-456: Is that the machine had some keyboard keys and characters that were distinctly British: NEWLINE was used instead of ↵ Enter , RUBOUT instead of ← Backspace or DELETE , and the character set and keyboard included the Pound symbol . The ZX80 was widely advertised as the first personal computer for under £100 GBP (US$ 200. ) Kilobaud Microcomputing liked the design of
1071-460: Is the most prominent example of such a character code. Related computers running Sinclair BASIC used similar variants, e.g. the ZX80 or ZX81 character sets . All of these different but related character sets included Sinclair BASIC tokens. One uncommon feature of Sinclair BASIC is the way it stores variables in memory. Typically, interpreters use a fixed-size entry to hold data, making it easy to scan
1134-413: The 8-bit home computers from Sinclair Research , Timex Sinclair and Amstrad . The Sinclair BASIC interpreter was written by Nine Tiles Networks Ltd. Designed to run in only 1 KB of RAM , the system makes a number of decisions to lower memory usage. This led to one of Sinclair BASIC's most notable features, that the keywords were entered using single keystrokes; each of the possible keywords
1197-473: The Commodore 64 or Atari 8-bit computers , the up and down keys can be used to move among the lines in the program and edit them in-place. The most notable feature of the editor is that keywords are entered using single keystrokes. For instance, on the ZX81, the P key on the keyboard would cause the entire keyword PRINT to be entered into the currently editing line. Once a keyword has been entered,
1260-626: The Jupiter Ace project. When the Spectrum was launched the ROM was still not complete, and although Nine Tiles continued working on it until April 1982, by that point 75,000 Spectrums had already been sold and the project was cancelled. The missing functionality was later added by additional code in the ZX Interface 1 . After Nine Tiles and Sinclair went their own ways, several new versions of 48 BASIC were created. In 1983, as part of introducing
1323-470: The Sinclair BASIC programming language , editor, and operating system . BASIC commands were not entered by typing them out but were instead selected somewhat similarly to a programmable graphing calculator - each key had a few different functions selected by both context and modes as well as with the shift key. Other than the built-in cassette and video ports, the only provided means of expansion
SECTION 20
#17327830528351386-537: The ZX81 in 1981, a full floating point implementation was added. This version was very slow, among the slowest BASICs on the market at the time, but given the limited capabilities of the machine, this was not a serious concern. Performance became a more serious issue with the release of the ZX ;Spectrum in 1983, which ran too slowly to make full use of the machine's new features. This led to an entirely new BASIC for
1449-441: The shift key – the systems did not initially support lowercase text, so the shift was not otherwise needed. The keywords below the keys required a second keystroke, ⇧ Shift + NEW LINE , which put the editor into "function mode", changing the cursor to an "F". Entering common code often resulted in a significant number of keystrokes. The system has the advantage of representing all multi-character keywords as
1512-573: The Spectrum to the US market as the TS2068, Timex modified it as T/S 2000 BASIC . The new version was incapable of running many Spectrum programs due to the memory location of machine's functions moving. A similar, but somewhat more compatible version, was introduced as part of the Spanish Spectrum 128 of 1985, 128 BASIC . Amstrad purchased Sinclair Research in 1986. As Sinclair had never owned
1575-454: The ZX80 in other aspects either. The ZX80 and ZX81 also employed very specific traits of the Z80 processor.) Unlike the later follow up, ZX81, the ZX80 could only generate a picture when it was idle, i.e. waiting for a key to be pressed. When running a BASIC program, or when pressing a key during editing, the tv-display would therefore blank out (lose synchronisation) momentarily while the processor
1638-572: The ZX81 only), ** (replaced with ↑ on the Spectrum). These are expanded by referencing a token table in ROM. Thus, a keyword uses one byte of memory only, a significant saving over traditional letter-by-letter storage. This also meant that the BASIC interpreter could quickly determine any command or function by evaluating one byte, and that the keywords need not be reserved words like in other BASIC dialects or other programming languages, e.g., it
1701-543: The code initially came in at 5 KB and he spent the next month trimming it down. It was initially an incomplete implementation of the 1978 American National Standards Institute (ANSI) Minimal BASIC standard with integer arithmetic only, termed 4K BASIC . Even before the ZX80 was introduced in February 1980, the constant downward price-pressure in the industry was allowing the already inexpensive design to be further reduced in complexity and cost. In particular, many of
1764-517: The completed computer, and criticized MicroAce for being unresponsive to questions. The review stated that "if you recognize the limitations of the machine and don't expect too much, then I think you can buy the MicroAce kit with confidence", albeit strongly recommending the 2K RAM option. ZX80 The Sinclair ZX80 is a home computer launched on 29 January 1980 by Science of Cambridge Ltd. (later to be better known as Sinclair Research ). It
1827-574: The contest to build the BBC Computer , he moved ahead with plans to produce a low-cost colour-capable machine that emerged as the ZX Spectrum of April 1982. ROM space would once again be increased, this time to 16 KB. In keeping with his philosophy of making systems for the lowest possible expenditure, Sinclair wanted the absolute minimum changes to the existing 8K BASIC. Although Nine Tiles felt that something much better would be needed for
1890-452: The copyright to the language, Amstrad had to arrange a new license with Nine Tiles. Several other versions also appeared in this period as various extensions and clones of the Spectrum were introduced. These included +3 BASIC , BASIC64 and Timex Extended Basic . As of 2015, interpreters exist for modern operating systems , and older systems, that allow Sinclair Basic to be used easily. Like most home-computer BASICs, Sinclair BASIC
1953-442: The cursor changes to an "L" to indicate what follows will be interpreted as normal text. For instance, pressing P again at this point would enter a single letter "P". Keys generally had two separate keywords assigned to them – one above it and one below. Pressing the key in "K" mode would enter the keyword above the key, like PRINT for P . If the system was in "L" mode, one could return to "K" by pressing
MicroAce - Misplaced Pages Continue
2016-592: The documentation or programmers experienced with writing Z-80 software. BYTE called the ZX80 a "remarkable device". It praised the real-time, interactive BASIC syntax checking, and reported that the computer performed better on benchmarks than some competitors, including the TRS-80 Model I . The magazine criticised the screen blanking during program execution, small RAM size, inadequate built-in Sinclair BASIC, and keyboard, and recommended against buying
2079-447: The entry for "B$ ", it fails to match A with B, then reads the type to see it is a string, and then has to read the following length byte and skip forward by that amount of bytes to find the next entry in the table. To make this somewhat easier, arrays also stored a two-byte length, so the entire structure could be skipped over more easily. A unique feature was the "short float", or integer type. Any numeric variable could store either type,
2142-416: The first character of the name in those same five bits, but was then followed by additional characters ending with one with its high-bit set. Long variable names were whitespace-independent, and case-insensitive in later versions, so LET Number Of Apples = 5 is the same as LET numberofapples = 5 referred to the same variable. The downside to this approach is that scanning the table to look up
2205-533: The following Sinclair QL , as well as a number of 3rd-party BASICs for the Spectrum and its various clones. The original version continued to be modified and ported in the post-Sinclair era. Clive Sinclair initially met with John Grant, the owner of Nine Tiles, in April 1979 to discuss a BASIC for Sinclair's new computer concept. Sinclair was inspired to make a new machine after watching his son enjoy their TRS-80 , but that machine's £500 price tag appeared to be
2268-405: The following six new keywords: BASIC64 by Timex of Portugal , is a software extension to allow better Basic programming with the 512×192 and dual display areas graphic modes available only on Timex Sinclair computers. This extension adds commands and does a complete memory remap to avoid the system overwriting the extended screen memory area. Two versions exist due to different memory maps –
2331-595: The introduction of the ZX Spectrum 128 at which time the 16 KB Spectrum was no longer sold and most existing ones in use had been upgraded to 48 KB. 128 BASIC is the BASIC for the ZX Spectrum 128. It offers extra commands and uses letter-by-letter input. +3 BASIC is the BASIC with disk support for the ZX Spectrum +3 and +2A. T/S 2000 BASIC is used on the Spectrum-compatible Timex Sinclair 2068 (T/S 2068) and adds
2394-510: The keyboard design. It was very popular straight away, and for some time there was a waiting list of several months for either version of the machine. The ZX80 was named after the Z80 processor with the 'X' meaning "the mystery ingredient". Internally, the machine was designed by Jim Westwood around a Z80 central processing unit with a clock speed of 3.25 MHz, and was equipped with 1 KB of static RAM and 4 KB of read-only memory (ROM). It had no sound output. The ZX80
2457-468: The kit given difficulty of assembly and because purchasers did not save money. BYTE concluded that "the ZX80 might be summarized as a high-performance, very low-cost, portable personal computer system ... a good starting point". Sales of the ZX80 reached about 50,000, which contributed significantly to the UK leading the world in home computer ownership through the 1980s. Owing to the unsophisticated design and
2520-500: The left or right array position respectively; for example a$ ( TO 5) is equivalent to LEFT$ (a$ ,5) . Further, a$ (5) alone is enough to replace MID$ (a$ ,5,1) . On the 16K/48K ZX Spectrum ( 48 BASIC) , there are 88 keywords in Sinclair BASIC, denoting commands (of which there are 50), functions and logical operators (31), and other keywords (16, including 9 which are also commands or functions): 4K BASIC for ZX80 (so named for residing in 4 KiB read-only memory (ROM)),
2583-439: The line number in the most recently entered line. In contrast to most machines of the era, the editor does not allow freeform editing at any point on the screen. Instead, when the user presses EDIT , the current line of code is copied back to the bottom of the screen. The user can move horizontally through this line using the cursor keys and commits their changes by pressing NEW LINE again. In contrast, on machines like
MicroAce - Misplaced Pages Continue
2646-448: The motherboard. The UK version of the machine was the standard, and only changes that were absolutely necessary to sell units in other markets were made. In fact, the only real change made in most markets involved the video output frequency (the ZX80 used an external power transformer, so differences in AC line frequency and outlet were not an issue to the machine itself). One outcome of this
2709-523: The multiple keystrokes needed to enter it properly. For instance, entering BEEP required one to type CAPS SHIFT + SYMBOL SHIFT to access extended mode (later models include a separate EXTENDED MODE key), keeping SYMBOL SHIFT held down, and then and pressing Z . To improve the complex entry on the Spectrum, the keywords were colour-coded to indicate the required mode: This concept had run its course, and later machines running 128 BASIC (ZX Spectrum 128, +2, +3, +2A, and +2B) featured
2772-456: The new machine, the schedule would not allow it, and yet another expansion of the original code was produced. Due to the RAM also being increased, to 48 KB, this version was known as 48K BASIC and eventually 48 BASIC with the introduction of the ZX Spectrum 128 at which time the 16 KB Spectrum was no longer sold and most existing ones in use had been upgraded to 48 KB. The new version
2835-563: The parentheses. They were listed as the INTEGRAL FUNCTIONS on a label above and to the right of the keyboard. 128 BASIC , present on ZX Spectrum 128, +2, +3, +2A, and +2B, stored keywords internally in one-byte code points, but used a conventional letter-by-letter BASIC input system. It also introduced two new commands: The original Spanish ZX Spectrum 128 included four additional BASIC editor commands in Spanish, one of which
2898-452: The preassembled version, and said that the screen flickering during input or output was annoying but useful as an undocumented feature , indicating the computer functioning correctly. It praised the documentation as excellent for novices, and noted that purchasing the computer was cheaper than taking a college class on BASIC. The magazine concluded, "The ZX-80 is a real computer and an excellent value", but only for beginners who could learn from
2961-417: The proper ZX81 – except for SLOW mode, due to the differences in hardware between the two models. The process was easily reversed to return the ZX80 to its original configuration. One common modification by hobbyist users was to attach a full-size keyboard, optionally moving the motherboard into a larger case. This had the dual advantages of making the machine easier to type on, while increasing ventilation to
3024-481: The separate circuits in the ZX80 were re-implemented in a single uncommitted logic array from Ferranti , which allowed the price to be reduced to only £49.95 while increasing the size of the ROM to 8 KB. This work was assigned to Steve Vickers , who joined Nine Tiles in January 1980. Whilst Grant worked on the code interfacing with hardware, Vickers used the larger space to introduce floating-point arithmetic and
3087-477: The spelling RANDOMISE . The ZX81 8K BASIC was the only version to use FAST , SCROLL , SLOW and UNPLOT . The ZX80 4K BASIC had the exclusive function TL$ () ; it was equivalent to the string operator (2 TO ) in later versions. Unique code points are assigned in the ZX80 character set , ZX81 character set and ZX Spectrum character set for each keyword or multi-character operator, i.e. <= , >= , <> , "" (tokenized on
3150-413: The storage itself did not change and used 5 bytes in either case. Integers were indicated by setting the exponent byte to zero, while floating-point values were stored with an excess-128 format exponent. This meant that it could not store zero as a float and lost one possible exponent magnitude. It also did not use any less memory, as the values were still 5-byte in memory. The advantage to this format
3213-618: The tendency for the units to overheat, surviving machines in good condition are sought after and can fetch high prices by collectors. There were also clones of the ZX80 , such as the MicroAce , and from Brazil the Nova Eletrônica/ Prológica NE-Z80 and the Microdigital TK80 . Sinclair BASIC#4K BASIC Sinclair BASIC is a dialect of the programming language BASIC used in
SECTION 50
#17327830528353276-400: The value of a variable reference is more complex. In addition to testing whether the name matches using the subset of the first byte, if the entry is not the one that is being looked for, the type has to be read from the upper three bits and then the next location of a variable in storage calculated using the type. For instance, if the program encounters the variable "A" and the table starts with
3339-484: The variable table. Due to the extremely limited memory of the ZX series, any wasted space had to be avoided, and this led to the use of a variable-length format. The data types included numbers stored in a 5-byte values, strings with a length and then the characters, and arrays of both of those types. The data was stored in the table itself, which contrasts with most BASICs of the era, where strings and array entries were stored in
3402-400: Was a slot opening at the rear of the case, which exposed an expansion bus edge connector on the motherboard. The same slot bus was continued on the ZX81, and later the ZX Spectrum , which encouraged a small cottage industry of expansion devices, including memory packs, printers and even floppy drives . The original Sinclair ZX80 RAM Pack held either 1, 2 or 3 KB of static RAM and
3465-538: Was an unlicensed clone of the Sinclair ZX80 and had an identical, yet obfuscated copy of the ROM by means of a bit-swap. Some time later, between 1980 and 1981, MicroAce settled with Sinclair and licensed the ROM of the ZX81. BYTE stated that the instructions were insufficient for those inexperienced in kit assembly, and suggested that beginners learn how to solder first. It found some fit and finish issues with
3528-498: Was available near the end of 1981, but it was "depressingly slow" and "snail like". Additionally, as no prototypes were available until the end of the year, it lacked support for the new line of peripherals Sinclair was planning. In February 1982, Nine Tiles began to have disagreements with Sinclair over owed royalties for the various manuals that Nine Tiles had produced. Around the same time, Vickers and his Sinclair counterpart, Richard Altwasser, left their respective companies to start
3591-400: Was black-and-white, character-based. However, the ZX80 character set included some simple block-based graphics glyphs, allowing basic graphics to be accomplished, with some effort. One advantage to using monochrome video is that different colour broadcast standards (e.g. PAL , SECAM ) simply weren't an issue when the system was sold outside the UK. Display was over an RF connection to
3654-483: Was busy. So a BASIC program had to introduce a pause for input to display the next change in graphical output, making smooth moving graphics impossible. This could be overcome only by very clever machine code tricks. These had to effectively replace the video rountines in ROM and embed the same in the normal program logic with exact timing, which is extremely cumbersome. However, a few such games were developed by skilled users or programmers later on. The 4 KB ROM contained
3717-426: Was designed around readily available TTL chips; the only proprietary technology was the firmware . The machine was mounted in a small white plastic case, with a one-piece blue membrane keyboard on the front. There were problems with durability, reliability and overheating (despite appearances, the black stripes visible on the top rear of the case are merely cosmetic, and are not ventilation slots). Video output
3780-550: Was developed by John Grant of Nine Tiles for the ZX80. It has integer-only arithmetic. 8K BASIC is the ZX81 BASIC (also available as an upgrade for the ZX80 ), updated with floating-point arithmetic by Steve Vickers , so named for residing in 8 KiB ROM. 48 BASIC is the BASIC for the original 16/48 KB RAM ZX Spectrum (and clones), with colour and more peripherals added by Steve Vickers and John Grant. It resides in 16 KB ROM and began to be called 48 BASIC with
3843-408: Was mapped to a key on the keyboard, when pressed, the token would be placed into memory while the entire keyword was printed out on-screen. This made code entry easier whilst simplifying the parser . The original ZX80 version supported only integer mathematics, which partially made up for some of the memory-saving design notes which had negative impact on performance. When the system was ported to
SECTION 60
#17327830528353906-521: Was not ASCII , but an internal character code that contains both printable characters and the keyword tokens. Although portions of the table, the capital letters A to Z, for instance, are in the same order as in ASCII, their characters correspond to different numeric values, i.e. their code points ' offset from zero is different from ASCII's offset of 65. Other characters, like punctuation, may have been moved about even more. The ZX Spectrum character set
3969-485: Was undocumented: Unlike the LEFT$ () , MID$ () and RIGHT$ () functions used in the ubiquitous Microsoft BASIC dialects for home computers, parts of strings in Sinclair BASIC are accessed by numeric range. For example, a$ (5 TO 10) gives a substring starting with the 5th and ending with the 10th character of the variable a$ . Thus, it is possible to replace the LEFT$ () and RIGHT$ () commands by simply omitting
#834165