Questions tagged [basic]

BASIC: a high-level programming language favored in retro systems. For dialect-specific questions, use a tag such as [microsoft-basic], [applesoft-basic], etc.

Filter by
Sorted by
Tagged with
124 votes
2 answers
23k views

How did Commodore's anti-Microsoft Easter Egg work?

A couple years ago the Toronto PET Users Group published an article (The Great Commodore/Microsoft Easter Egg War, on p. 7) about a newly discovered anti-Microsoft Easter Egg that Commodore hid in the ...
Raymond68's user avatar
  • 1,245
84 votes
18 answers
19k views

Why was BASIC built into so many operating systems?

There are a lot of retro-computers with BASIC as an integral part of the operating system. The IBM 5100 was one of the first computers with a separate memory space for BASIC, followed by the Commodore ...
wizzwizz4's user avatar
  • 18.4k
49 votes
3 answers
8k views

Strange math syntax in old basic listing

I'm browsing through an old book "Basic Computer Simulation" from 1983. It contains a line of BASIC code that reads: LET Z1 = M * D1 * (PQ / A) [ 3 I understand all of the code except the "[ 3" I ...
Ron Jensen's user avatar
49 votes
6 answers
7k views

Can a PET 2001 be physically damaged from BASIC?

In the early 1980s my primary school was the proud owner of a Commodore PET 2001. There was a commonly held belief among the young geek fraternity that there existed a BASIC command—perhaps a ...
Flup's user avatar
  • 651
46 votes
2 answers
6k views

What computer system is this from 1984 Doctor Who?

In the 1980s, the popular BBC science fiction series Doctor Who used some real computer system(s) to display impressive (for the time, OK, maybe not!) graphics. They actually ran the software real-...
CJ Dennis's user avatar
  • 2,527
43 votes
4 answers
7k views

How did Woz write the Apple 1 BASIC before building the computer?

According to his 1984 interview with Byte magazine, Steve Wozniak created the BASIC for the Apple 1 computer before he actually built the computer: I sat down and wrote the BASIC first, and that took ...
DrSheldon's user avatar
  • 15.8k
38 votes
2 answers
12k views

Can a USR command damage a ZX Spectrum?

I recently came across this magazine snippet; specifically this section: Aprovechamos para avisar a los usuarios del Inves, que nos ha Ilegado el rumor de que haciendo: BORDER 5 RANDOMIZE USR 4665 ...
wizzwizz4's user avatar
  • 18.4k
37 votes
3 answers
3k views

How can I play QBasic Nibbles on a modern machine?

MS-DOS versions 5 and 6 come bundled with the QBasic interpreter and a handful of example programs written in that BASIC dialect. One of the programs is Nibbles, a variant of the well-known Snake game....
user3840170's user avatar
  • 21.6k
36 votes
17 answers
8k views

How fast were BASIC interpreters in the 80s? (Is this optimization for speed really necessary?)

I have a client who wants me to analyze a BASIC program from Umberto Eco's Foucault's Pendulum. I have never written a line of BASIC in my life as I was born in 1995 and started programming around ...
Gellweiler's user avatar
35 votes
22 answers
8k views

Was self-modifying code possible using BASIC?

Was self-modifying-code possible using BASIC? Parameters: On commonly affordable home-computers before 1984 Code that changes its own instructions while it is executing Using BASIC only Not using ...
questiontype's user avatar
  • 1,011
35 votes
6 answers
3k views

Did the LET statement actually do anything in 8-bit Microsoft BASICs?

I know the LET statement was available in AppleSoft and other Microsoft 8-bit BASICs back in the day, but I can't think of a time where I actually used it. Frankly, I get the impression that it was ...
bjb's user avatar
  • 15.8k
34 votes
6 answers
5k views

What type of interpreter were most 8-bit BASIC implementations?

I’m a big fan of early/mid 1980s personal computers like the Amstrad CPC, Commodore 64 and the Sinclair Spectrum. One thing these computers all had was a version of BASIC. Well known ones being MS-...
Garry Pettet's user avatar
34 votes
8 answers
4k views

What made some 8-bit BASIC interpreters especially slow?

Most 8-bit systems had a BASIC interpreter that ran at a rate roughly commensurate with the CPU type, speed, memory bandwidth and interrupt status. Some systems, however, had interpreters that ran at ...
scruss's user avatar
  • 20.5k
34 votes
3 answers
2k views

Why does the C64's LIST command choke on REM statements with a Shift+L?

On the Commodore 64 and VIC-20, the LIST command will abort with a ?SYNTAX ERROR on any line that contains a REM statement with a Shift+L character. A minimal program triggering the error would look ...
Psychonaut's user avatar
  • 7,023
33 votes
2 answers
3k views

Which BASIC-like language has "ENDIF", "DIM ... OF" to declare arrays, and a double slash for comments?

My mom found some old source code that she wrote for a course around the year 1983. I've tried to identify the language that is used, but have come up empty-handed. It seemed to be BASIC at first, but ...
tacecapS's user avatar
  • 433
33 votes
2 answers
3k views

When and why was the question mark chosen to abbreviate PRINT?

In many dialects of BASIC, the PRINT statement can be abbreviated with a single question mark when entering programs or direct-mode commands. So instead of typing PRINT "HELLO, WORLD" you ...
Psychonaut's user avatar
  • 7,023
32 votes
4 answers
4k views

BBC/Acorn BASIC, what made it so fast?

As I look over old versions of BASIC trying to piece together their history, I come across repeated indications that BBC Basic was really fast. One list puts it running the Ahl benchmark (for all its ...
Maury Markowitz's user avatar
32 votes
4 answers
3k views

Why were early versions of BASIC different?

Most major computer manufacturers/distributors in the 70's and 80's included BASIC with their computers. Some (as answers to this great question have detailed: Why was BASIC built into so many ...
Aaron's user avatar
  • 2,384
30 votes
2 answers
4k views

C64: Why is POS(π) faster than POS(0)?

According to this article: german C64 Wiki article about the POS() command POS(π) is 20 % faster. Although in my experience it is ...
user avatar
29 votes
2 answers
5k views

What exactly is/was threaded p-code?

Quickbasic 4.0 added threaded p-code which at the time I remember thinking was magical. But I have no idea what it means. What exactly is/was threaded p-code (and is the p actually the Greek letter ...
Simd's user avatar
  • 393
28 votes
10 answers
7k views

Why did 8-bit computers choose BASIC dialects as "de facto" command-line interface, instead of contemporary Shell/Lisp dialects?

While all three clans of languages predated 8-bit computers, they shares features like 1) imperative programming, 2) English-alike keywords, 3) Prompt-Command-Parameters pattern interface. Why was ...
Schezuk's user avatar
  • 3,732
28 votes
2 answers
4k views

Why does this BASIC program declare variables for the numbers 0 to 4?

On pages 150 to 154 of William Tang's (1982) Spectrum Machine Language for the Absolute Beginner, there are these lines of code. (Note GOTO 9000 is the first non-REM statement in the program). 9000 ...
harlandski's user avatar
  • 2,903
26 votes
8 answers
6k views

Why did 8-bit Basic use 40-bit floating point?

Nowadays floating point is usually either 32 or 64 bits, sometimes 16, occasionally 128. But of course, the Basic interpreters on the 8-bit machines, having to implement floating point in software ...
rwallace's user avatar
  • 58.4k
26 votes
7 answers
5k views

Why do variable names in BASIC need type suffixes?

The BASIC I'm most familiar with is Atari BASIC since I had an Atari 800 way back when. The Atari BASIC Source Book includes details about how Atari BASIC maintains variables. There is a Variable Name ...
Willis Blackburn's user avatar
26 votes
4 answers
5k views

Why was it common to reference memory locations using negative numbers on some BASICs?

If you had an Apple II, it was common in BASIC to reference memory locations above the 32K point by using a negative number. For example, if you wanted to click the speaker you would PEEK/POKE -16336 ...
bjb's user avatar
  • 15.8k
26 votes
9 answers
3k views

What implementations of BASIC had a robust flood fill operator?

When I learned BASIC on Elektronika BK, I got fascinated with the flood fill (PAINT) operator: how does it know to get to all nooks and crannies of the shape to fill? I've devised an algorithm, tried ...
Leo B.'s user avatar
  • 18.3k
26 votes
2 answers
3k views

Was the first ARM "processor" a BBC BASIC program?

The best background I have found so far on the early development of the ARM processor at Acorn comes from this interview with Steve Furber. The interview does not mention the development of the first ...
Brian H's user avatar
  • 60.1k
25 votes
6 answers
5k views

Why did Visual Basic use parentheses for both function call and array access?

In VB both array access and function calls are done with () which makes it difficult to differentiate between those with a quick look. It also makes more nested levels of parentheses like MyArray(...
phuclv's user avatar
  • 3,542
24 votes
1 answer
2k views

How did Commodore drives produce program listings from disk directories?

CBM BASIC 2.0 has no built-in command for listing the contents of a floppy disk. Instead, the usual way is to LOAD a pseudo-file named $ from the disk into memory. The file can then be LISTed like a ...
Psychonaut's user avatar
  • 7,023
23 votes
21 answers
6k views

8-bit home computers without BASIC

All the 8 bit home computers I'm aware of, had BASIC in their ROMs. A notable exception was Jupiter Ace, a British home computer which used Forth. Were there any other 8-bit home computers that came ...
Krackout's user avatar
  • 1,528
23 votes
6 answers
4k views

ZX Spectrum tokenisation

The BASIC used in the early ZX Spectrum (and also its ZX predecessors) had this weird thing where every single BASIC token was printed onto the keyboard, and for example PRINT or LOAD were entered by ...
Omar and Lorraine's user avatar
23 votes
3 answers
4k views

Was Locomotive BASIC significantly better than Sinclair BASIC?

The Amstrad CPC range of Z80 machines shipped with a ROM BASIC, designed and implemented by Locomotive Software. The most well known competitor was the Sinclair ZX Spectrum, also a Z80 machine, with ...
Mark Williams's user avatar
23 votes
8 answers
3k views

Which BASIC interpreters support techniques for hybrid programming in Assembly?

It was common with Commodore BASIC (and others, I'm sure) to have machine language encoded in BASIC programs using POKEs or READ/DATA. This was needed for both performance and to access certain ...
Brian H's user avatar
  • 60.1k
23 votes
3 answers
5k views

Could you manually eject a floppy quick enough to prevent data loss?

I have the vague recollection of "Panic Ejecting" floppy disks by lifting the latch on the drive after immediately regretting a command I had typed. At the time, I was young, impulsive, and blessed ...
Brian H's user avatar
  • 60.1k
22 votes
6 answers
2k views

Commodore BASIC and binary floating point precision

I am mildly curious that though the 6502 provides BCD arithmetic which would be useful for implementing decimal floating point, Commodore BASIC uses, like all (?) Micro-Soft BASIC, binary floating ...
rwallace's user avatar
  • 58.4k
22 votes
4 answers
2k views

Was the design of MS-BASIC for 6502 based on MS-BASIC for 8080?

Looking through the source code of the 6502 MS-BASIC, certain parts of it seem more reminiscent of how things would be done on the 8080, then on how they should be done on the 6502. Code to find a ...
supercat's user avatar
  • 34.6k
21 votes
10 answers
5k views

Why did BASIC programs tend to READ a redundant copy of DATA?

Take for example this BASIC version of ELIZA which starts out (in lines 50–170) by a number of READ loops which copy DATA (lines 1340 and following) into a handful of arrays. Isn't this rather ...
natevw's user avatar
  • 2,917
21 votes
6 answers
4k views

Understanding INKEY$ in ZX BASIC

The ZX BASIC Manual gives the following little program to demonstrate how INKEY$ works: 10 IF INKEY$ <> "" THEN GO TO 10 20 IF INKEY$ = "" THEN GO TO 20 30 PRINT INKEY$; 40 GO TO 10 While I ...
harlandski's user avatar
  • 2,903
20 votes
6 answers
3k views

C64 BASIC: How to suppress the '?' sign when using the INPUT command?

When you are getting INPUT in Commodore BASIC it always adds a question mark at the end of the string you want to show. Is there a way to suppress the question mark when using the INPUT command?
user avatar
20 votes
4 answers
4k views

How did integer multiplication work in 8-bit BASIC without CPU support

I've recently been teaching my 11 year old binary multiplication, which is on the UK maths syllabus at secondary school. We have used long multiplication, eg shift and add. This has made me wonder ...
Mark Williams's user avatar
20 votes
3 answers
3k views

Is there a list of space-saving techniques for representing constants?

Since numbers in ZX BASIC are always floating point and take up 5 bytes, it's often possible to save space when representing integers by using several tokens, which take up 1 byte each. I know of COS ...
forest's user avatar
  • 1,999
19 votes
10 answers
4k views

What caused the demise of BASIC/BASICA in the late 1980's?

While not strictly adhered to, this is somewhat of a generalization of computer listings found in the more popular magazines of the time - BYTE, Kilobaud, PC Computing, etc. This explains the ...
jwzumwalt's user avatar
  • 4,469
19 votes
5 answers
2k views

Uptime in ZX BASIC

How can I obtain the uptime of a Sinclair ZX Spectrum machine (ZX48, ZX128, or Pentagon clone) via their BASIC interpreter? Specifically, the same value used by RANDOMIZE 0 to seed its PRNG. I would ...
forest's user avatar
  • 1,999
18 votes
6 answers
7k views

How slow was the 6502 BASIC compared to Assembly

Imagine a modern computer, where let's say Python is a high level programming language and needs to be interpreted in order to execute a piece of code. You could write some code in C, compile it, ...
Bartek Malysz's user avatar
18 votes
3 answers
2k views

What does this line: `T=C/2=INT(C/2)` do? Why is it valid syntax?

I do not understand line 80 of the short Applesoft BASIC program below. Didn't even know it was possible to have a single instruction be T=C/2=INT(C/2). Naturally, I tried breaking this line up / ...
Grant's user avatar
  • 189
18 votes
2 answers
3k views

What is the oldest reference to PEEK, POKE, and USR?

I've been reading manuals for BASIC implementations and the earliest reference I can find to PEEK, POKE, and USR is in the Altair BASIC 3.2 manual, published in 1975. This morning I came across this ...
Jeffrey Henning's user avatar
18 votes
5 answers
5k views

Was Family BASIC for the NES/Famicom powerful enough to create full games and applications?

"Family BASIC or Famicom BASIC is the consumer product for programming Nintendo's Family Computer video game console of Japan." wikipedia I can't seem to find much info about Family BASIC ...
LateralTerminal's user avatar
17 votes
4 answers
3k views

How to use BASIC after "LOAD "$",8 on the C64

After loading a file list from a floppy disk it is hard to program in BASIC because the file list is interpreted as BASIC lines. For example there can be 20 lines with the number 1, because 20 files ...
user avatar
17 votes
4 answers
7k views

MSX Assembly/Basic programming documentation

I'd like to try to create software (and maybe simple games) for the MSX standard. I know I have two ways to do so, either I use MSX Basic or Z80 assembly. I think that Z80 assembly is more powerful ...
Informancien's user avatar
  • 2,637
17 votes
2 answers
2k views

How to decode an audio file which contains an MSX BASIC program? [closed]

I have an audio file in WAV format, which supposedly comes from a cassette sound file. Moreover, it contains a BASIC program, but I don't know how to decode it. I have tried to convert the wav file to ...
Josemi 's user avatar
  • 271