Misplaced Pages

Commodore BASIC

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.

Commodore BASIC , also known as PET BASIC or CBM-BASIC , is the dialect of the BASIC programming language used in Commodore International 's 8-bit home computer line, stretching from the PET (1977) to the Commodore 128 (1985).

#960039

142-440: The core is based on 6502 Microsoft BASIC , and as such it shares many characteristics with other 6502 BASICs of the time, such as Applesoft BASIC . Commodore licensed BASIC from Microsoft in 1977 on a "pay once, no royalties " basis after Jack Tramiel turned down Bill Gates ' offer of a $ 3 per unit fee, stating, "I'm already married," and would pay no more than $ 25,000 for a perpetual license. The original PET version

284-404: A PRINT CHR$ ( X ) command where X corresponds to the control code to be issued (for example, PRINT CHR$ ( 147 ) is the control code to clear the screen) or by pressing the key in question between quote marks, thus pressing ⇧ Shift + CLR HOME following a quote mark will cause BASIC to display the visual representation of the control code (in this case, a reversed heart) which

426-519: A REM (BASIC statement to add a comment to the code) followed by a {Shift-L} , when trying to view the program listing, the BASIC interpreter would immediately abort the listing, display a ?SYNTAX ERROR and return to the READY. prompt. This glitch was used to some effect by programmers who wanted to try and protect their work, although it was fairly easy to circumvent. By abbreviating keywords, it

568-409: A 300 bit/s data rate. Once the bits can be decoded, they are fed into a shift register and are continuously compared to a special bit sequence. This bit sequence can also be seen as a byte. A bit-sequence match means that the stream is byte-synchronized. The first byte to compare with is called the lead-in byte . If matched, it's compared to the sync byte as well. An example: Turbo Tape 64 has

710-467: A 74158 . The next major difference was to simplify the registers. To start with, one of the two accumulators was removed. General-purpose registers like accumulators have to be accessed by many parts of the instruction decoder, and thus require significant amounts of wiring to move data to and from their storage. Two accumulators makes many coding tasks easier, but costs the chip design itself significant complexity. Further savings were made by reducing

852-557: A CMOS version, the 65C02 . This continues to be widely used in embedded systems , with estimated production volumes in the hundreds of millions. The 6502 was designed by many of the same engineers that had designed the Motorola 6800 microprocessor family. Motorola started the 6800 microprocessor project in 1971 with Tom Bennett as the main architect. Motorola's engineers could run analog and digital simulations on an IBM 370-165 mainframe computer. The chip layout began in late 1972,

994-555: A lead-in byte $ 02 (binary 00000010), sync byte $ 09 (binary 00001001) and a following sync sequence of $ 08, $ 07, $ 06, $ 05, $ 04, $ 03, $ 02, $ 01. There are at least four main models of the 1530/C2N Datassette: The first two external models were made as PET peripherals, and styled after the PET 2001 built-in tape drive. The latter two were styled and marketed for the VIC-20 and C64. All 1530s are compatible with all those computers, as well as

1136-519: A parity bit . Programs are written twice to tape for error correction ; if an error is detected when reading the first recording, the computer corrects it with data from the second. The Datasette has built-in analog-to-digital converters and audio filters to convert the computer's digital data into analog audio and vice versa. Connection to the computer is done via a proprietary edge connector (Commodore 1530) or mini-DIN connector (1531). The absence of recordable audio signals on this interface makes

1278-571: A 0.156-inch (4.0 mm)–spacing PCB edge connector at the computer end. All input/output signals to the Datasette are all digital, and so all digital-to-analog conversion , and vice versa, is handled within the unit. Power is also included in this cable. The pinout is ground, +5 V DC , motor, read, write, key-sense. The sense signal monitors the play, rewind, and fast-forward buttons but cannot differentiate between them. A mechanical interlock prevents any two of them from being pressed at

1420-542: A C64/128 via an adaptor, which was supplied by Commodore with some units. The Datasette was more popular outside than inside the United States. U.S. Gold , which imported American computer games to Britain, often had to wait until they were converted from disk because most British Commodore 64 owners used tape, while the US magazine Compute!'s Gazette reported that by 1983 "90 percent of new Commodore 64 owners bought

1562-475: A PET was by modifying the first two bytes with a disk sector editor as the CBM-II series had their BASIC program area at $ 0, which would result in a PET attempting to load into the zero page and locking up. Commodore BASIC keywords could be abbreviated by entering first an unshifted keypress, and then a shifted keypress of the next letter. This set the high bit , causing the interpreter to stop reading and parse

SECTION 10

#1732772662961

1704-453: A backwards jump, they will return to the start of the program to begin searching. This will slow down larger programs, so it is preferable to put commonly used subroutines near the start of a program. Variable names are only significant to 2 characters; thus the variable names VARIABLE1 , VARIABLE2 , and VA all refer to the same variable. Commodore BASIC also supports bitwise operators — AND, OR , and XOR , although this feature

1846-538: A conscious attempt of eight former Motorola employees who worked on the development of the 6800 system to put out a part that would replace and outperform the 6800, yet undersell it. With the benefit of hindsight gained on the 6800 project, the MOS Technology team headed by Chuck Peddle, made the following architectural changes in the Motorola CPU… The main change in terms of chip size was the elimination of

1988-470: A contemporaneous competitor, the Intel 8080 , which likewise has one 8-bit accumulator and a 16-bit program counter, but has six more general-purpose 8-bit registers (which can be combined into three 16-bit pointers) and a larger 16-bit stack pointer. In order to make up somewhat for the lack of registers, the 6502 includes a zero page addressing mode that uses one address byte in the instruction instead of

2130-553: A disk drive with their computer". Computer Gaming World reported in 1986 that British cassette-based software had failed in the United States because "97% of the Commodore systems in the USA have disk drives"; by contrast, MicroProse reported in 1987 that 80% of its 100,000 sales of Gunship in the UK were on cassette. In the United States disk drives quickly became standard, despite

2272-462: A flaw was very high. In most cases, 90% of such designs were flawed, resulting in a 10% yield. The price of the working examples had to cover the production cost of the 90% that were thrown away. In 1973, Perkin-Elmer introduced the Micralign system, which projected an image of the mask on the wafer instead of requiring direct contact. Masks no longer picked up dirt from the wafers and lasted on

2414-412: A game or when waiting for user input, programmers could poll by reading selected memory locations (such as $ C6 for the 64, or $ D0 for the 128, denoting size of the keyboard queue) to delay or halt execution. A unique feature of Commodore BASIC is the use of control codes to perform tasks such as clearing the screen or positioning the cursor within a program; these can be invoked either by issuing

2556-399: A greater extent than in many other designs; the two-phase clock (supplying two synchronizations per cycle) could thereby control the machine cycle directly. This design also led to one useful design note of the 6502, and the 6800 before it. Because the chip only accessed memory during a certain part of the clock cycle, and this duration was indicated by the φ2-low clock-out pin, other chips in

2698-422: A handler code, or simply discovered by testing bit 4 of location $ DC0D. The points that trigger this event are indicated by the black circles in the figure. Inside the tape device the read head signal is fed into an operational amplifier (1) whose output signal is DC -filtered. Op-amp (2) amplifies and feeds an RC filter. Op-amp (3) amplifies the signal again followed by another DC filter. Op-amp (4) amplifies

2840-477: A host of bad programming traps for the programmer. As most of these issues derived from Microsoft BASIC , virtually every home computer BASIC of the era suffered from similar deficiencies. Every line of a Microsoft BASIC program was assigned a line number by the programmer. It was common practice to increment numbers by some value (5, 10 or 100) to make inserting lines during program editing or debugging easier, but bad planning meant that inserting large sections into

2982-474: A line number, it was tokenized and stored in program memory. Lines not beginning with a number were executed by pressing the RETURN key whenever the cursor happened to be on the line. This marked a significant upgrade in program entry interfaces compared to other common home computer BASICs at the time, which typically used line editors , invoked by a separate EDIT command, or a "copy cursor" that truncated

SECTION 20

#1732772662961

3124-450: A minute in BASIC. To execute faster than the interpreter, programmers started using various techniques to speed up execution. One was to store often-used floating point values in variables rather than using literal values, as interpreting a variable name was faster than interpreting a literal number. Since floating point is default type for all commands, it's faster to use floating point numbers as arguments, rather than integers. When speed

3266-444: A momentary delay in program execution if a large array is dimensioned. String variables are represented by tagging the variable name with a dollar sign. Thus, the variables AA$ , AA , and AA% would each be understood as distinct. Array variables are also considered distinct from simple variables, thus A and A(1) do not refer to the same variable. The size of a string array merely refers to how many strings are stored in

3408-420: A nuisance to edit. The LIST command displayed the entire command keyword - extending the program line beyond the 2 or 4 screen lines which could be entered into program memory. Like the original Microsoft BASIC interpreter , Commodore BASIC is slower than native machine code . Test results have shown that copying 16 kilobytes from ROM to RAM takes less than a second in machine code, compared to over

3550-480: A number of disk-related commands, including the ability to read a disk directory without destroying the program in memory. Its features were subsequently incorporated in various third-party extensions, such as the popular Epyx FastLoad cartridge. Other BASIC extensions added additional keywords to make it easier to code sprites, sound, and high-resolution graphics like Simons' BASIC (1983) and Vision BASIC (2022). Although BASIC 2.0's lack of sound or graphics features

3692-399: A one digit number. The order of execution of Commodore BASIC lines was not determined by line numbering; instead, it followed the order in which the lines were linked in memory. Program lines were stored in memory as a singly linked list with a pointer (containing the address of the beginning of the next program line), a line number, and then the tokenized code for the line. While a program

3834-450: A party, was a way to share some of the internal wiring to allow the ALU to be reduced in size. Despite their best efforts, the final design ended up being 5 mils too wide. The first 6502 chips were 168 by 183 mils (4.3 mm × 4.6 mm), for an area of 19.8 mm . The original version of the processor had no rotate right (ROR) capability, so the instruction was omitted from

3976-565: A percent sign) in the range -32768 to 32767, in practice they are only used for array variables and serve the function of conserving memory by limiting array elements to two bytes each (an array of 2000 elements will occupy 10,000 bytes if declared as a floating point array, but only 4000 if declared as an integer array). Denoting any variable as integer simply causes BASIC to convert it back to floating point, slowing down program execution and wasting memory as each percent sign takes one additional byte to store (since this also applies to integer arrays,

4118-504: A portfolio of semiconductor patents. Allen-Bradley decided not to fight this case and sold their interest in MOS Technology back to the founders. Four of the former Motorola engineers were named in the suit: Chuck Peddle, Will Mathys, Bill Mensch and Rod Orgill. All were named inventors in the 6800 patent applications. During the discovery process, Motorola found that one engineer, Mike Janes, had ignored Peddle's instructions and brought his 6800 design documents to MOS Technology. In March 1976,

4260-504: A program often required restructuring the entire code. A common technique was to start a program at some low line number with an ON...GOSUB jump table , with the body of the program structured into sections starting at a designated line number like 1000, 2000, and so on. If a large section needed to be added, it could just be assigned the next available major line number and inserted to the jump table. In addition, all variables are treated as global variables. Clearly defined loops beyond

4402-529: A selected increment. Earlier BASICs from Commodore also lack debugging commands, meaning that bugs and unused variables are hard to trap. IF...THEN...ELSE structures, a standard part of Z80 Microsoft BASICs, were added to BASIC 3.5 after being unavailable in earlier versions of Commodore BASIC. In common with other home computers , Commodore's machines booted directly into the BASIC interpreter. BASIC's file and programming commands could be entered in direct mode to load and execute software. If program execution

Commodore BASIC - Misplaced Pages Continue

4544-476: A set of chips that could sell at $ 20 to compete with the recently introduced Intel 4040 that sold for $ 29 in a similar complete chipset. Chips are produced by printing multiple copies of the chip design on the surface of a wafer , a thin disk of highly pure silicon. Smaller chips can be printed in greater numbers on the same wafer, decreasing their relative price. Additionally, wafers always include some number of tiny physical defects that are scattered across

4686-517: A signed 8-bit offset relative to the instruction after the branch; the numerical range −128..127 therefore translates to 128 bytes backward and 127 bytes forward from the instruction following the branch (which is 126 bytes backward and 129 bytes forward from the start of the branch instruction). Accumulator mode operates on the accumulator register and does not need any operand data. Immediate mode uses an 8-bit literal operand. The indirect modes are useful for array processing and other looping. With

4828-570: A supplier of electronic components and industrial controls, acquired a majority interest in 1970. The company designed and fabricated custom ICs for customers and had developed a line of calculator chips. After the Mostek efforts fell through, Peddle approached Paivinen, who "immediately got it". On 19 August 1974, Chuck Peddle, Bill Mensch, Rod Orgill, Harry Bawcom, Ray Hirt, Terry Holdt, and Wil Mathys left Motorola to join MOS. Mike Janes joined later. Of

4970-477: A system could access memory during those times when the 6502 was off the bus. This was sometimes known as "hidden access". This technique was widely used by computer systems; they would use memory capable of access at 2 MHz, and then run the CPU at 1 MHz. This guaranteed that the CPU and video hardware could interleave their accesses, with a total performance matching that of the memory device. Because this access

5112-498: A system is compatible with the Apple II and TRS-80 Color Computer , as well as many S-100 bus systems, and allows them to be used with any cassette player with suitable connections, but using analog tones—similar to how dial-up modems work—often results in read errors instead of successful loading of data. In the Datasette, instead of writing two tones to tape to indicate bits, patterns of square waves are used, including

5254-606: A three-byte mantissa is only about 6.5 decimal digits, and round-off error is common. 6502 implementations of Microsoft BASIC utilized 40-bit floating point arithmetic, meaning that variables took five bytes to store (four byte mantissa and one byte for the exponent) unlike the 32-bit floating point found in BASIC-80. While 8080/Z80 implementations of Microsoft BASIC supported integer and double precision variables, 6502 implementations were floating point only. Although Commodore BASIC supports signed integer variables (denoted with

5396-499: Is hardwired to memory page $ 01 , i.e. the address range $ 0100 – $ 01FF ( 256 – 511 ). Software access to the stack is done via four implied addressing mode instructions, whose functions are to push or pop (pull) the accumulator or the processor status register. The same stack is also used for subroutine calls via the JSR (jump to subroutine) and RTS (return from subroutine) instructions and for interrupt handling. The chip uses

5538-536: Is a little-endian 8-bit processor with a 16-bit address bus . The original versions were fabricated using an 8 µm process technology chip with a die size of 3.9 mm × 4.3 mm (153 by 168 mils), for a total area of 16.6 mm . The internal logic runs at the same speed as the external clock rate. It featured a simple pipeline; on each cycle, the processor fetches one byte from memory and processes another. This means that any single instruction can take as few as two cycles to complete, depending on

5680-442: Is an 8-bit microprocessor that was designed by a small team led by Chuck Peddle for MOS Technology . The design team had formerly worked at Motorola on the Motorola 6800 project; the 6502 is essentially a simplified, less expensive and faster version of that design. When it was introduced in 1975, the 6502 was the least expensive microprocessor on the market by a considerable margin. It initially sold for less than one-sixth

5822-460: Is assigned two system variables in BASIC, TI and TI$ , which both contain the current time. TI is read-only and cannot be modified; doing so will result in a Syntax Error message. TI$ may be used to set the time via a six number string (an error results from using a string other than six numbers). The clock is not a very reliable method of timekeeping since it stops whenever interrupts are turned off (done by some kernal routines) and accessing

Commodore BASIC - Misplaced Pages Continue

5964-468: Is capable of performing addition and subtraction in binary or binary-coded decimal . Placing the CPU into BCD mode with the SED (set D flag) instruction results in decimal arithmetic, in which $ 99 + $ 01 would result in $ 00 and the carry (C) flag being set. In binary mode ( CLD , clear D flag), the same operation would result in $ 9A and the carry flag being cleared. Other than Atari BASIC , BCD mode

6106-640: Is executed and if there are many string variables and arrays that have been manipulated over the course of a program, clearing them can take more than an hour under the worst conditions. It is also not possible to abort garbage collection as BASIC does not scan the RUN/STOP key while performing this routine. BASIC 4.0 introduced an improved garbage collection system with back pointers and all later implementations of Commodore BASIC also have it. The FRE function in BASIC 2.0 suffered from another technical flaw in that it cannot handle signed numbers over 32768, thus if

6248-415: Is not declared with a DIM statement, it is automatically set to ten elements (in practice 11 since array elements are counted from 0). Larger arrays must be declared or BASIC will display an error when the program is run and an array cannot be re-dimensioned in a program unless all variables are wiped via a CLR statement. Numeric arrays are automatically filled with zeros when they are created, there may be

6390-483: Is possible to fit even more on a line. BASIC 7.0 displays a ?STRING TOO LONG error if the user enters a program line over 160 characters in length. Earlier versions do not produced an error and simply display the READY prompt two lines down if the line length is exceeded. The line number is counted in the number of characters in the program line, so a five digit line number will result in four fewer characters allowed than

6532-512: Is then acted upon at program execution (directly printing out the control codes uses less memory and executes faster than invoking a CHR$ function). This is in comparison to other implementations of BASIC which typically have dedicated commands to clear the screen or move the cursor. BASIC 3.5 and up have proper commands for clearing the screen and moving the cursor. Program lines in Commodore BASIC do not require spaces anywhere (but

6674-497: Is used via a fixed 5-byte seed value stored at power on in memory locations $ 8B-$ 8F on the C64 (the location differs on other machines). RND with any number higher than 0 will generate a random number amalgamated from the value included with the RND function and the seed value, which is updated by 1 each time an RND function is executed. RND with a negative number goes to a point in

6816-511: The LIST command will always display one between the line number and the statement), e.g., 100 IF A = 5 THENPRINT "YES" : GOTO 160 , and it was common to write programs with no spacing. This feature was added to conserve memory since the tokenizer never removes any space inserted between keywords: the presence of spaces results in extra 0x20 bytes in the tokenized program which are merely skipped during execution. Spaces between

6958-464: The LOAD command will always load at the first two bytes contained in the program file. This created a problem when trying to load BASIC programs saved on other Commodore machines as they would load at a higher address than where the PET's BASIC expected the program to be, there were workarounds to "move" programs to the proper location. If a program was saved on a CBM-II machine, the only way to load it on

7100-616: The C128 . In addition to this, some models came with a small hole above the keys, to allow access to the adjustment screw of the tape head azimuth position. A small screwdriver can thus easily be used to affect the adjustment without disassembling the Datassette's chassis. Confusingly, the Datassette at various times was sold both as the C2N DATASETTE UNIT Model 1530 and as the 1530 DATASSETTE UNIT Model C2N . Note

7242-562: The C16 and Plus/4 . BASIC 7.0 was included with the Commodore 128 , and included structured programming commands from the Plus/4's BASIC 3.5, as well as keywords designed specifically to take advantage of the machine's new capabilities. A sprite editor and machine language monitor were added. The last, BASIC 10.0, was part of the unreleased Commodore 65 . Commodore took the source code of

SECTION 50

#1732772662961

7384-611: The Commodore PET and Apple II , both released in 1977. It was later used in the Atari 8-bit computers , Acorn Atom , BBC Micro , VIC-20 and other designs both for home computers and business, such as Ohio Scientific and Oric computers . The 6510 , a direct successor of the 6502 with a digital I/O port and a tri-state address bus, was the CPU utilized in the best-selling Commodore 64 home computer. Another important use of

7526-406: The operating system uses most of zero page, leaving only a handful of locations for the user. Addressing modes also include implied (1-byte instructions); absolute (3 bytes); indexed absolute (3 bytes); indexed zero-page (2 bytes); relative (2 bytes); accumulator (1); indirect,x and indirect,y (2); and immediate (2). Absolute mode is a general-purpose mode. Branch instructions use

7668-445: The stack register from 16 to 8 bits, meaning that the stack could only be 256 bytes long, which was enough for its intended role as a microcontroller. The 16-bit IX index register was split in two, becoming X and Y. More importantly, the style of access changed. In the 6800, IX held a 16-bit address which was offset by an 8-bit number stored with the instruction, and added together. In the 6502 (and most other contemporary designs),

7810-615: The tri-state drivers from the address bus outputs. A three-state bus has states for 1 , 0 and high impedance . The last state is used to allow other devices to access the bus, and is typically used for multiprocessing , or more commonly in these roles, for direct memory access (DMA). While useful, this feature is expensive in terms of on-chip circuitry. The 6502 simply removed this feature, in keeping with its design as an inexpensive controller being used for specific tasks and communicating with simple devices. Peddle suggested that anyone who required this style of access could implement it with

7952-436: The "EXORciser" debugging system, onsite training and field application engineer support. Both Intel and Motorola had initially announced a US$ 360 price for a single microprocessor. The actual price for production quantities was much less. Motorola offered a design kit containing the 6800 with six support chips for US$ 300 . Peddle, who would accompany the salespeople on customer visits, found that customers were put off by

8094-441: The "layout" was a very manual process done with color pencils and vellum paper . The layout consisted of thousands of polygon shapes on six different drawings; one for each layer of the fabrication process. Given the size limits, the entire chip design had to be constantly considered. Mensch and Paivinen worked on the instruction decoder while Mensch, Peddle and Orgill worked on the ALU and registers. A further advance, developed at

8236-571: The 16-bit base address was stored in the instruction, and the 8-bit X or Y was added to it. Finally, the instruction set was simplified, freeing up room in the decoder and control logic. Of the original 72 instructions in the 6800, 56 were implemented. Among those removed were instructions that operated between the 6800's two accumulators, and several branch instructions inspired by the PDP-11 . The chip's high-level design had to be turned into drawings of transistors and interconnects. At MOS Technology,

8378-416: The 5/6 cycle "(indirect),y" mode, the 8-bit Y register is added to a 16-bit base address read from zero page, which is located by a single byte following the opcode. The Y register is therefore an index register in the sense that it is used to hold an actual index (as opposed to the X register in the 6800, where a base address was directly stored and to which an immediate offset could be added). Incrementing

8520-558: The 6500 family was in video games. The first to make use of the processor design was the 1977 Atari VCS, later renamed the Atari 2600 . The VCS used a 6502 variant named the 6507 , which had fewer pins, so it could address only 8  KB of memory. Millions of the Atari consoles would be sold, each with a MOS processor. Another significant use was by the Nintendo Entertainment System and Famicom. The 6502 used in

8662-418: The 6501 appeared in several publications the first week of August 1975. The 6501 would be for sale at Wescon for $ 20 each. In September 1975, the advertisements included both the 6501 and the 6502 microprocessors. The 6502 would cost only $ 25 (equivalent to $ 142 in 2023). When MOS Technology arrived at Wescon, they found that exhibitors were not permitted to sell anything on the show floor. They rented

SECTION 60

#1732772662961

8804-483: The 6502 or variations of the basic design. Soon after the 6502's introduction, MOS Technology was purchased outright by Commodore International , who continued to sell the microprocessor and licenses to other manufacturers. In the early days of the 6502, it was second-sourced by Rockwell and Synertek , and later licensed to other companies. In 1981, the Western Design Center started development of

8946-445: The 6800's headlining features was an onboard voltage doubler that allowed a single +5 V supply be used for +5, −5 and +12 V internally, as opposed to other chips of the era like the Intel 8080 that required three separate supply pins. While this feature reduced the complexity of the power supply and pin layout, it still required separate power line to the various gates on the chip, driving up complexity and size. By moving to

9088-416: The 6800. They would not run 6800 software because they had a different instruction set, different registers, and mostly different addressing modes. Rod Orgill was responsible for the 6501 design; he had assisted John Buchanan at Motorola on the 6800. Bill Mensch did the 6502; he was the designer of the 6820 Peripheral Interface Adapter (PIA) at Motorola. Harry Bawcom, Mike Janes and Sydney-Anne Holt helped with

9230-466: The Datasette and clones the only cassette recorders usable with Commodore computers, until aftermarket converters made the use of ordinary recorders possible. Because of its digital format the Datasette is both more reliable than other data cassette systems and very slow, transferring data at around 50 bytes per second. After the Datasette's launch, however, special turbo tape software appeared, providing much faster loading and saving. Such software

9372-648: The FOR...NEXT construct are hard to create, often causing the programmer to rely on the GOTO command (this was later rectified in BASIC 3.5 with the addition of the DO, LOOP, WHILE, UNTIL , and EXIT commands). Flag variables often needed to be created to perform certain tasks. Later BASIC versions on Commodore and other platforms included a DELETE and RENUMBER command, as well as an AUTO line numbering command that would automatically select and insert line numbers according to

9514-502: The IEC (or IEEE port on the PET) port will slow the clock update by a few ticks. The RND function in Commodore BASIC can use the clock to generate random numbers; this is accomplished by RND(0) , however it is of relatively limited use as only numbers between 0 and 255 are returned. Otherwise, RND works the same as other implementations of Microsoft BASIC in that a pseudo-random sequence

9656-559: The MacArthur Suite at the St. Francis Hotel and directed customers there to purchase the processors. At the suite, the processors were stored in large jars to imply that the chips were in production and readily available. The customers did not know the bottom half of each jar contained non-functional chips. The chips were $ 20 and $ 25 while the documentation package was an additional $ 10 . Users were encouraged to make photocopies of

9798-569: The NES was a second source version by Ricoh , a partial system on a chip , that lacked the binary-coded decimal mode but added 22 memory-mapped registers and on-die hardware for sound generation, joypad reading, and sprite list DMA . Called 2A03 in NTSC consoles and 2A07 in PAL consoles (the difference being the clock frequency divider ratio and a lookup table for audio sample rates), this processor

9940-455: The V2 fit into smaller ROMs. A convenient feature of Commodore's ROM -resident BASIC interpreter and KERNAL was the full-screen editor . Although Commodore keyboards only have two cursor keys which reversed direction when the shift key was held, the screen editor allowed users to enter direct commands or to input and edit program lines from anywhere on the screen. If a line was prefixed with

10082-465: The X and Y registers: POKE 780 , 0 : POKE 781 , 0 : POKE 782 , 192 ; and the load routine would be called: SYS 65493 . A disk magazine for the C64, Loadstar , was a venue for hobbyist programmers, who shared collections of proto-commands for BASIC, called with the SYS address + offset command. From a modern programming point of view, the earlier versions of Commodore BASIC presented

10224-685: The XEGS. In the 1980s, a popular electronics magazine Elektor/Elektuur used the processor in its microprocessor development board Junior Computer . The CMOS successor to the 6502, the WDC 65C02 , also saw use in home computers and video game consoles. Apple used it in the Apple II line starting with the Apple IIc and later variants of the Apple IIe and also offered a kit to upgrade older IIe systems with

10366-502: The array, not the size of each element, which is allocated dynamically. Unlike some other implementations of Microsoft BASIC, Commodore BASIC does not require string space to be reserved at the start of a program. Unlike other 8-bit machines such as the Apple II, Commodore's machines all have a built-in clock that is initialized to 0 at power on and updated with every tick of the PIA/VIA/TED/CIA timer, thus 60 times per second. It

10508-834: The attendees at the WESCON trade show in San Francisco beginning on September 16, 1975. Peddle was a very effective spokesman and the MOS Technology microprocessors were extensively covered in the trade press. One of the earliest was a full-page story on the MCS6501 and MCS6502 microprocessors in the July 24, 1975 issue of Electronics magazine. Stories also ran in EE Times (August 24, 1975), EDN (September 20, 1975), Electronic News (November 3, 1975), Byte (November 1975) and Microcomputer Digest (November 1975). Advertisements for

10650-459: The chips and documentation, whereas other semiconductor companies only wanted to deal with "serious" customers. For example, Signetics was introducing the 2650 microprocessor and its advertisements asked readers to write for information on their company letterhead. The 6501/6502 introduction in print and at Wescon was an enormous success. The downside was that the extensive press coverage got Motorola's attention. In October 1975, Motorola reduced

10792-467: The circuits, which almost always required a separate external chip that could supply a powerful signal. With the reduced power requirements of depletion-load design, the clock could be moved onto the chip, simplifying the overall computer design. These changes greatly reduced complexity and the cost of implementing a complete system. A wider change taking place in the industry was the introduction of projection masking . Previously, chips were patterned onto

10934-445: The command, GOTO , could be abbreviated G{Shift-O} (which resembled G Γ onscreen). Most such commands were two letters long, but in some cases they were longer. In cases like this, there was an ambiguity, so more unshifted letters of the command were needed, such as GO{Shift-S} ( GO♥ ) being required for GOSUB . Some commands had no abbreviated form, either due to brevity or ambiguity with other commands. For example,

11076-432: The command, INPUT had no abbreviation because its spelling collided with the separate INPUT# keyword, which was located nearer to the beginning of the keyword lookup table . The heavily used PRINT command had a single ? shortcut, as was common in most Microsoft BASIC dialects. Abbreviating commands with shifted letters is unique to Commodore BASIC. This tokenizing method had a glitch such that if one included

11218-666: The company found the KIM-1 also sold well to hobbyists and tinkerers. The related Rockwell AIM-65 control, training, and development system also did well. The software in the AIM 65 was based on that in the MDT. Another roughly similar product was the Synertek SYM-1 . One of the first "public" uses for the design was the Apple I microcomputer , introduced in 1976. The 6502 was next used in

11360-599: The cost of competing designs from larger companies, such as the 6800 or Intel 8080 . Its introduction caused rapid decreases in pricing across the entire processor market. Along with the Zilog Z80 , it sparked a series of projects that resulted in the home computer revolution of the early 1980s. Home video game consoles and home computers of the 1970s through the early 1990s, such as the Atari 2600 , Atari 8-bit computers , Apple II , Nintendo Entertainment System , Commodore 64 , Atari Lynx , BBC Micro and others, use

11502-418: The details of their proposed 8-bit microprocessor system with ROM, RAM, parallel and serial interfaces. In early 1974, they provided engineering samples of the chips so that customers could prototype their designs. Motorola's "total product family" strategy did not focus on the price of the microprocessor, but on reducing the customer's total design cost. They offered development software on a timeshare computer,

11644-542: The difference in spelling (one S versus two) used on the original product packaging. Like Datasette models, the recording format is compatible across computers; the VIC, for example, can read PET cassettes. Similar in physical appearance to the 1530/C2N models is the Commodore 1531 , made for the Commodore 16 and Plus/4 series computers. This has a Mini-DIN connector in place of the PCB edge connector. This can be used with

11786-687: The documents, an inexpensive way for MOS Technology to distribute product information. The preliminary data sheets listed just 55 instructions excluding the Rotate Right (ROR) instruction which was not supported on these early chips. The reviews in Byte and EDN noted the lack of the ROR instruction. The next revision of the layout fixed this problem and the May 1976 datasheet listed 56 instructions. Peddle wanted every interested engineer and hobbyist to have access to

11928-435: The era, the dynamic NMOS 6502 chip is not sequenced by microcode but decoded directly using a dedicated PLA . The decoder occupied about 15% of the chip area. This compares to later microcode-based designs like the Motorola 68000 , where the microcode ROM and decoder engine represented about a third of the gates in the system. Like its precursor, the 6800, the 6502 has very few registers . They include This compares to

12070-474: The file's block size as the line number. This had the effect of overwriting the currently loaded program. Addons like the DOS Wedge overcame this by rendering the directory listing direct to screen memory. A list of CBM BASIC versions in chronological order, with successively added features: MOS Technology 6502 The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two")

12212-635: The first 6800 chips were fabricated in February 1974 and the full family was officially released in November 1974. John Buchanan was the designer of the 6800 chip and Rod Orgill, who later did the 6501, assisted Buchanan with circuit analyses and chip layout. Bill Mensch joined Motorola in June 1971 after graduating from the University of Arizona (at age 26). His first assignment was helping define

12354-477: The flat-fee BASIC and further developed it internally for all their other 8-bit home computers. It was not until the Commodore 128 (with V7.0) that a Microsoft copyright notice was displayed. However, Microsoft had built an easter egg into the version 2 or "upgrade" Commodore Basic that proved its provenance: typing the command WAIT 6502, 1 would result in Microsoft! appearing on the screen. (The easter egg

12496-435: The function is invoked on a C64 (38k BASIC memory), a negative amount of free BASIC memory will be displayed (adding 65535 to the reported number will obtain the correct amount of free memory). The PET and VIC-20 never had more than 32k of total memory available to BASIC, so this limitation did not become apparent until the C64 was developed. The FRE function on BASIC 3.5 and 7.0 corrected this problem and FRE on BASIC 7.0

12638-512: The high cost of the microprocessor chips. At the same time, these visits invariably resulted in the engineers he presented to producing lists of required instructions that were much smaller than "all these fancy instructions" that had been included in the 6800. Peddle and other team members started outlining the design of an improved feature, reduced size microprocessor. At that time, Motorola's new semiconductor fabrication facility in Austin, Texas ,

12780-531: The index and stack registers effectively with several addressing modes , including a fast "direct page" or "zero page" mode, similar to that found on the PDP-8 , that accesses memory locations from addresses 0 to 255 with a single 8-bit address (saving the cycle normally required to fetch the high-order byte of the address)—code for the 6502 uses the zero page much as code for other processors would use registers. On some 6502-based microcomputers with an operating system,

12922-429: The index register to walk the array byte-wise takes only two additional cycles. With the less frequently used "(indirect,x)" mode the effective address for the operation is found at the zero page address formed by adding the second byte of the instruction to the contents of the X register. Using the indexed modes, the zero page effectively acts as a set of up to 128 additional (though very slow) address registers. The 6502

13064-430: The layout. MOS Technology's microprocessor introduction was different from the traditional months-long product launch. The first run of a new integrated circuit is normally used for internal testing and shared with select customers as "engineering samples". These chips often have a minor design defect or two that will be corrected before production begins. Chuck Peddle's goal was to sell the first run 6501 and 6502 chips to

13206-463: The line at the cursor's position. It also had the capability of saving named files to any device, including the cassette – a popular storage device in the days of the PET, and one that remained in use throughout the lifespan of the 8-bit Commodores as an inexpensive form of mass storage. Most systems only supported filenames on diskette , which made saving multiple files on other devices more difficult. The user of one of these other systems had to note

13348-520: The line number and program statement are removed by the tokenizer. Program lines can be 80 characters total on most machines, but machines with 40 column text would cause the line to wrap around to the next line on the screen, and on the VIC-20, which had a 22 column display, program lines could occupy as many as four. BASIC 7.0 on the Commodore 128 increased the limit of a program line to 160 characters (four 40-column lines or two 80-column lines). By using abbreviations such as ? instead of PRINT , it

13490-409: The lower amplitude for the shorter periods. A circuit in the tape unit transforms the analog signal into a logical 1 or 0, which is then transmitted to the computer via the tape connector . Inside the computer, the first Complex Interface Adapter (6526) in the C64 senses when the signal goes from one to zero. This event is called trigger and causes an interrupt request . This event can be handled by

13632-410: The new depletion-load design, a single +5 V supply was all that was needed, eliminating all of this complexity. A further advantage was that depletion-load designs used less power while switching, thus running cooler and allowing higher operating speeds. Another practical offshoot is that the clock signal for earlier CPUs had to be strong enough to survive all the dissipation as it traveled through

13774-476: The new design, the cost goal demanded a size goal of 153 by 168 mils (3.9 mm × 4.3 mm), or an area of 16.6 mm . Several new techniques would be needed to hit this goal. Two significant advances arrived in the market just as the 6502 was being designed that provided to be significant cost reductions. The first was the move to depletion-load NMOS . The 6800 used an early NMOS process, enhancement mode, that required three supply voltages. One of

13916-600: The new processor. The Hudson Soft HuC6280 chip used in the TurboGrafx-16 was based on a 65C02 core. The Atari Lynx used a custom chip named "Mikey" designed by Epyx which included a VLSI VL65NC02 licensed cell. The G65SC12 by GTE Microcircuits (renamed California Micro Devices) variant was used in the BBC Master . Some models of the BBC Master also included an additional G65SC102 co-processor. The 6502

14058-459: The now independent MOS Technology was running out of money and had to settle the case. They agreed to drop the 6501 processor, pay Motorola $ 200 ,000 and return the documents that Motorola contended were confidential. Both companies agreed to cross-license microprocessor patents. That May, Motorola dropped the price of a single 6800 microprocessor to $ 35 . By November, Commodore had acquired MOS Technology. With legal troubles behind them, MOS

14200-467: The number of operands that instruction uses. For comparison, the Zilog Z80 required two cycles to fetch memory, and the minimum instruction time was four cycles. Thus, despite the lower clock speeds compared to competing designs, typically in the neighborhood of 1 to 2  MHz , the 6502's performance was competitive with CPUs using significantly faster clocks. This is partly due to a simple state machine implemented by combinational (clockless) logic to

14342-629: The optional parameter ,1 which will load a program into the memory address contained in the first two bytes of the file (these bytes are discarded and not retained in memory). If the ,1 parameter is not used, the program will load into the start of the BASIC program area, which widely differs between machines. Some Commodore BASIC variants supplied BLOAD and BSAVE commands that worked like their counterparts in Applesoft BASIC , loading or saving bitmaps from specified memory locations. The PET does not support relocatable programs and

14484-456: The order of 100,000 uses rather than 10. This eliminated step-to-step failures and the high flaw rates formerly seen on complex designs. Yields on CPUs immediately jumped from 10% to 60 or 70%. This meant the price of the CPU declined roughly the same amount and the microprocessor suddenly became a commodity device. MOS Technology's existing fabrication lines were based on the older PMOS technology, they had not yet begun to work with NMOS when

14626-494: The original documentation. The next iteration of the design shrank the chip and added the rotate right capability, and ROR was included in revised documentation. MOS would introduce two microprocessors based on the same underlying design: the 6501 would plug into the same socket as the Motorola 6800, while the 6502 re-arranged the pinout to support an on-chip clock oscillator. Both would work with other support chips designed for

14768-549: The peripheral ICs for the 6800 family and later he was the principal designer of the 6820 Peripheral Interface Adapter (PIA). Bennett hired Chuck Peddle in 1973 to do architectural support work on the 6800 family products already in progress. He contributed in many areas, including the design of the 6850 ACIA (serial interface). Motorola's target customers were established electronics companies such as Hewlett-Packard , Tektronix , TRW , and Chrysler . In May 1972, Motorola's engineers began visiting select customers and sharing

14910-587: The price of a single 6800 microprocessor from $ 175 to $ 69 . The $ 300 system design kit was reduced to $ 150 and it now came with a printed circuit board. On November 3, 1975, Motorola sought an injunction in Federal Court to stop MOS Technology from making and selling microprocessor products. They also filed a lawsuit claiming patent infringement and misappropriation of trade secrets. Motorola claimed that seven former employees joined MOS Technology to create that company's microprocessor products. Motorola

15052-416: The program. Line numbers can range from 0 to 65520 and take five bytes to store regardless of how many digits are in the line number, although execution is faster the fewer digits there are. Putting multiple statements on a line will use less memory and execute faster. GOTO and GOSUB statements will search downward from the current line to find a line number if a forward jump is performed, in case of

15194-419: The program. This is in contrast to business-oriented operating systems of the time like CP/M or MS-DOS , which typically booted into a command line interface . If a programming language was required on these platforms, it had to be loaded separately. While some versions of Commodore BASIC included disk-specific DLOAD and DSAVE commands, the version built into the Commodore 64 lacked these, requiring

15336-539: The programmer should avoid using them unless very large arrays are used that would exceed available memory if stored as floating point). Also, it is not possible to POKE or PEEK memory locations above 32767 with address defined as a signed integer. A period (.) can be used in place of the number 0 (thus 10 A = . instead of 10 A = 0 or 10 FOR A = . TO 100 instead of 10 FOR A = 0 to 100 ), this will execute slightly faster. The SYS statement, used to start machine language programs,

15478-422: The recorder's counter display at the location of the file, but this was inaccurate and prone to error. With the PET (and BASIC 2.0), files from cassettes could be requested by name. The device would search for the filename by reading data sequentially, ignoring any non-matching filenames. The file system was also supported by a powerful record structure that could be loaded or saved to files. Commodore cassette data

15620-494: The right leaders in the Semiconductor Products division." The division was reorganized and the management replaced. The new group vice-president John Welty said, "The semiconductor sales organization lost its sensitivity to customer needs and couldn't make speedy decisions." Peddle began looking outside Motorola for a source of funding for this new project. He initially approached Mostek CEO L. J. Sevin , but

15762-414: The same time. The motor power is derived from the computer's unregulated 9 V DC supply via a transistor circuit. To record physical data, the zero-crossing from positive to negative voltage of the analog signal is measured. The resulting time between these positive to negative crossings is then compared to a threshold to determine whether the time since the last crossing is short (0) or long (1). Note

15904-524: The screen). Since Commodore 8-bit machines other than the C128 cannot automatically boot disk software, the usual technique is to include a BASIC stub like 10 SYS 2048 to begin program execution. It is possible to automatically start software after loading and not require the user to type a RUN statement, this is done by having a piece of code that hooks the BASIC "ready" vector at $ 0302 . As with most other versions of Microsoft BASIC , if an array

16046-453: The sequence of the current seed value specified by the number. Since true random number generation is impossible with the RND statement, it is more typical on the C64 and C128 to utilize the SID chip's white noise channel for random numbers. BASIC 2.0 notoriously suffered from extremely slow garbage collection of strings. Garbage collection is automatically invoked any time a FRE function

16188-432: The seventeen chip designers and layout people on the 6800 team, eight left. The goal of the team was to design and produce a low-cost microprocessor for embedded applications and to target as wide as possible a customer base. This would be possible only if the microprocessor was low cost, and the team set the price goal for volume purchases at $ 5 . Mensch later stated the goal was not the processor price itself, but to create

16330-569: The signal into clipping the sine -formed signal. The positive and negative rails for all op-amps are wired to +5V DC and GND . The clipped signal therefore fits into the TTL electrical level window of the Schmitt trigger step that in turn feeds the digital cassette port. On the PAL version of the C64, the time granularity is 1.014 μs (for NTSC 0.978 μs ). Since each bit uses 3284 clock cycles this means 3284 * 1.014 μs = 3330 μs/bit. or

16472-422: The statement according to a lookup table. This meant that the statement up to where the high bit was set was accepted as a substitute for typing the entire command out. However, since all BASIC keywords were stored in memory as single byte tokens, this was a convenience for statement entry rather than an optimization. In the default uppercase-only character set, shifted characters appear as a graphics symbol; e.g.

16614-403: The surface of the wafer by placing a mask on the surface of the wafer and then shining a bright light on it. The masks often picked up tiny bits of dirt or photoresist as they were lifted off the chip, causing flaws in those locations on any subsequent masking. With complex designs like CPUs, 5 or 6 such masking steps would be used, and the chance that at least one of these steps would introduce

16756-482: The surface. Any chip printed in that location will fail and has to be discarded. Smaller chips mean any single copy is less likely to be printed on a defect. For both of these reasons, the cost of the final product is strongly dependent on the size of the chip design. The original 6800 chips were intended to be 180 by 180 mils (4.6 mm × 4.6 mm), but layout was completed at 212 by 212 mils (5.4 mm × 5.4 mm), or an area of 29.0 mm . For

16898-411: The system. Peddle responded to the order by informing Motorola that the letter represented an official declaration of "project abandonment", and as such, the intellectual property he had developed to that point was now his. In a November 1975 interview, Motorola's Chairman, Robert Galvin, ultimately agreed that Peddle's concept was a good one and that the division missed an opportunity, "We did not choose

17040-457: The team arrived. Paivinen promised to have an NMOS line up and running in time to begin the production of the new CPU. He delivered on the promise, the new line was ready by June 1975. Chuck Peddle, Rod Orgill, and Wil Mathys designed the initial architecture of the new processors. A September 1975 article in EDN magazine gives this summary of the design: The MOS Technology 650X family represents

17182-503: The two needed to address the full 64 KB of memory. This provides fast access to the first 256 bytes of RAM by using shorter instructions. For instance, an instruction to add a value from memory to the value in the accumulator would normally be three bytes, one for the instruction and two for the 16-bit address. Using the zero page reduces this to an 8-bit address, reducing the total instruction length to two bytes, and thus improving instruction performance. The stack address space

17324-420: The user to specify the disk drive's device number (typically 8 or 9) to the standard LOAD command, which otherwise defaulted to tape. Another omission from the Commodore 64s BASIC 2.0 was a DIRECTORY command to display a disk's contents without clearing main memory. On the 64, viewing files on a disk was implemented as loading a "program" which when listed showed the directory as a pseudo BASIC program, with

17466-467: Was a billion-dollar company with a plausible case and expensive lawyers. On October 30, 1974, Motorola had filed numerous patent applications on the microprocessor family and was granted twenty-five patents. The first was in June 1976 and the second was to Bill Mensch on July 6, 1976, for the 6820 PIA chip layout. These patents covered the 6800 bus and how the peripheral chips interfaced with the microprocessor. Motorola began making transistors in 1950 and had

17608-480: Was added by Commodore and was not in the original Microsoft BASIC code, which featured only the USR function for invoking machine language routines. It automatically loads the CPU's registers with the values in $ 30C-$ 30F (C64, varies on other machines)--this can be used to pass data to machine language routines or as a means of calling kernal functions from BASIC (as an example, POKE 780 , 147 : SYS 65490 clears

17750-461: Was also "split" into two functions, one to display free BASIC program text memory and the other to display free variable memory. Many BASIC extensions were released for the Commodore 64, due to the relatively limited capabilities of its native BASIC 2.0. One of the most popular extensions was the DOS Wedge , which was included on the Commodore 1541 Test/Demo Disk. This 1 KB extension to BASIC added

17892-519: Was being entered, BASIC would constantly reorder program lines in memory so that the line numbers and pointers were all in ascending order. However, after a program was entered, manually altering the line numbers and pointers with the POKE commands could allow for out-of-order execution or even give each line the same line number. In the early days, when BASIC was used commercially, this was a software protection technique to discourage casual modification of

18034-594: Was declined. Sevin later admitted this was because he was afraid Motorola would sue them. While Peddle was visiting Ford Motor Company on one of his sales trips, Bob Johnson, later head of Ford's engine automation division, mentioned that their former colleague John Paivinen had moved to General Instrument and taught himself semiconductor design. Paivinen then formed MOS Technology in Valley Forge, Pennsylvania in 1969 with two other executives from General Instrument, Mort Jaffe and Don McLaughlin. Allen-Bradley ,

18176-491: Was every other cycle, there was no need to signal the CPU to avoid using the bus, making this sort of access easy to implement without any bus logic. When faster memories became available in the 1980s, newer machines could use this same technique while running at higher clock rates, the BBC Micro used newer RAM that allowed its CPU to run at 2 MHz while still using the same bus sharing techniques. Like most simple CPUs of

18318-476: Was frustrating to many users, some critics argued that it was ultimately beneficial since it forced the user to learn machine language. The limitations of BASIC 2.0 on the C64 led to use of built-in ROM machine language from BASIC. To load a file to a designated memory location, the filename, drive, and device number would be read by a call: SYS 57812 "filename" , 8 ; the location would be specified in

18460-523: Was halted using the RUN/STOP key, variable values would be preserved in RAM and could be PRINTed for debugging. The 128 even dedicated its second 64k bank to variable storage, allowing values to persist until a NEW or RUN command was issued. This, along with the advanced screen editor included with Commodore BASIC gave the programming environment a REPL -like feel; programmers could insert and edit program lines at any screen location, interactively building

18602-532: Was having difficulty producing MOS chips, and mid-1974 was the beginning of a year-long recession in the semiconductor industry. Also, many of the Mesa, Arizona employees were displeased with the upcoming relocation to Austin. Motorola's Semiconductor Products Division management showed no interest in Peddle's low-cost microprocessor proposal. Eventually Peddle was given an official letter telling him to stop working on

18744-400: Was important, some programmers converted sections of BASIC programs to 6502 or 6510 assembly language that was loaded separately from a file or POKEd into memory from DATA statements at the end of the BASIC program, and executed from BASIC using the SYS command, either from direct mode or from the program itself . When the execution speed of machine language was too great, such as for

18886-549: Was integrated into most commercial prerecorded applications (mostly games), as well as being available separately for loading and saving the users' homemade programs and data. These programs were only widely used in Europe, as the US market had long since moved onto disks. Datasettes can typically store about 100 kByte per 30 minute side. The use of turbo tape and other fast loaders increased this number to roughly 1000 kByte . The Datasette has only one connection cable, with

19028-427: Was made for the Commodore 16 and Plus/4 series computers. The Datasette is probably the most sophisticated tape-storage method of any microcomputer. Typical compact cassette interfaces of the late 1970s use a small controller in the computer to convert digital data to and from analog audio tones. The interface connects to the cassette deck using normal audio cables like RCA jacks or 3.5mm phone jacks . Such

19170-399: Was part of the core Microsoft 6502 BASIC code, it was usually omitted in other implementations such as Applesoft BASIC . The native number format of Commodore BASIC, like that of its parent MS BASIC , was floating point . Most contemporary BASIC implementations used one byte for the characteristic ( exponent ) and three bytes for the mantissa . The accuracy of a floating point number using

19312-489: Was possible to fit more code on a single program line (which could take up two screen lines on 40-column displays - i.e., C64 or PET, or four lines on the VIC-20's 22-column display). This allowed for a slight saving on the overhead to store otherwise necessary extra program lines, but nothing more. All BASIC commands were tokenized and took up 1 byte (or two, in the case of several commands of BASIC 7 or BASIC 10) in memory no matter which way they were entered. Such long lines were

19454-474: Was produced exclusively for Nintendo . 6502 or variants were used in all of Commodore's floppy disk drives for all of their 8-bit computers, from the PET line through the Commodore 128D, including the Commodore 64. 8-inch PET drives had two 6502 processors. Atari used the same 6507 used in the Atari VCS for its 810 and 1050 disk drives used for all of their 8-bit computer line, from the 400/800 through

19596-401: Was recorded digitally, rather than less expensive (and less reliable) analog methods used by other manufacturers. Therefore, the specialized Datasette was required rather than a standard tape recorder. Adapters were available that used an analog-to-digital converter to allow use of a standard recorder, but these cost only a little less than the Datasette. The LOAD command may be used with

19738-505: Was seldom used in home-computer applications. Datasette The Commodore 1530 ( C2N ) Datasette , later also Datassette (a portmanteau of data and cassette ), is Commodore 's dedicated magnetic-tape data storage device. Using compact cassettes as the storage medium , it provides inexpensive storage to Commodore's 8-bit computers, including the PET , VIC-20 , and Commodore 64 . A physically similar model, Commodore 1531 ,

19880-543: Was still left with the problem of getting developers to try their processor, prompting Chuck Peddle to design the MDT-650 ("microcomputer development terminal") single-board computer . Another group inside the company designed the KIM-1 , which was sold semi-complete and could be turned into a usable system with the addition of a 3rd party computer terminal and compact cassette drive. While it sold well to its intended market,

20022-458: Was very similar to the original Microsoft implementation with few modifications. BASIC 2.0 on the C64 was also similar, and was also seen on C128s (in C64 mode) and other models. Later PETs featured BASIC 4.0, similar to the original but adding a number of commands for working with floppy disks . BASIC 3.5 was the first to really deviate, adding a number of commands for graphics and sound support on

20164-519: Was well-obfuscated—the message did not show up in any disassembly of the interpreter.) The popular Commodore 64 came with BASIC v2.0 in ROM even though the computer was released after the PET/CBM series that had version 4.0 because the 64 was intended as a home computer, while the PET/CBM series were targeted at business and educational use where their built-in programming language was presumed to be more heavily used. This saved manufacturing costs, as

#960039