Questions tagged [basic]

For questions about BASIC, a lightweight, high-level programming language favored in retro computer systems.

Filter by
Sorted by
Tagged with
116
votes
2answers
20k 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 ...
83
votes
18answers
17k 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 ...
49
votes
6answers
6k 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 ...
48
votes
3answers
7k 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 ...
43
votes
2answers
5k 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-...
37
votes
2answers
11k 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 ...
34
votes
3answers
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 ...
31
votes
4answers
2k 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 ...
30
votes
22answers
7k 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 ...
30
votes
2answers
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 ...
29
votes
4answers
2k 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 ...
27
votes
5answers
4k 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-...
25
votes
4answers
4k 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 ...
25
votes
2answers
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 ...
23
votes
9answers
6k 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 ...
23
votes
3answers
4k 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 ...
23
votes
8answers
2k 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 ...
23
votes
3answers
2k 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 ...
22
votes
6answers
3k 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 ...
20
votes
3answers
3k 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 ...
20
votes
2answers
2k 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 ...
20
votes
6answers
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 ...
20
votes
4answers
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 ...
19
votes
17answers
5k 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 ...
19
votes
6answers
3k 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 ...
19
votes
8answers
2k 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 ...
19
votes
4answers
3k 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 ...
18
votes
5answers
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 ...
17
votes
9answers
3k 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 ...
17
votes
2answers
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 ...
16
votes
6answers
2k 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?
16
votes
4answers
2k 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 ...
16
votes
1answer
609 views

Origin/source of “One Line” one-key game

Circa 1985 in our school BBC Micro lab, we wasted much time playing a tiny type-in game that looked a bit like this: The playfield was filled with a random arrangement of asterisks, and the player ...
15
votes
6answers
5k 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, ...
15
votes
2answers
2k 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 ...
15
votes
1answer
1k views

What are the “ports” used via IN/OUT, vs. the PEEK/POKE address space?

This is something of a followup to How much control of TRS-80 Model III disk drives was possible from its Cassette (ROM) BASIC? but on a more general topic: I know that PEEK and POKE enable direct ...
14
votes
7answers
1k views

New 6502 BASICs?

I sort of "have a thing for BASIC" right now, which has led to a couple of great exchanges here in RSE about the variations "back in the day". I'm wondering if anyone is aware of other modern BASICs ...
14
votes
2answers
2k views

How was a line of Commodore 64 BASIC code stored in its memory?

I am reading up on old C64 stuff and I am using the Vice emulator to play with it. Currently I am studying about how the C64 stored BASIC programs in RAM. This is quite clear (it starts on address $...
14
votes
3answers
5k 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 ...
13
votes
4answers
3k views

Could you create a loop in direct-mode with BASIC?

Were there any home computers before 1985, on which you could create a loop (finite or infinite) in direct-mode? And if it was possible on some machines, what may it have been useful for? For example, ...
13
votes
3answers
819 views

Origins of the “array like” strings in BASIC

A number of early microcomputer BASICs had 'array like strings' that were unlike MS's system and instead behaved like arrays of char. Substrings were accessed using a syntax like: A$ = B$(1,5) as ...
13
votes
1answer
503 views

How to use virtual cassettes with Matthew Reed's TRS-80 Model III emulator? (TRS32)

I'm fooling around with Matthew Reed's TRS-80 Model 1/III/4 emulator for Windows (TRS32) and am have trouble using virtual cassettes. I am using it to emulate a Model III with Level II BASIC. I have ...
12
votes
2answers
940 views

Why was BASIC on the Commodore 64 one byte shy of 38KiB?

When you power up a Commodore 64 you are greeted with a friendly message telling the user it has 38911 BASIC bytes free. 38,911 is one byte shy of a 38 KiB (1,024 * 38 = 38,912). What was the reason ...
12
votes
4answers
2k views

Sources for some old BASIC games

Poking about in early issues of Dr Dobbs' Journal (the journal of the People's Computer Company, or PCC) I came across a listing for BASIC games available on tape. Many of these are widespread, but a ...
12
votes
0answers
807 views

In search of… SeaWar — NOT Battleship!

Hopefully, sufficient background Many years ago (40-45), I used to play "Sea War" on a good sized time-share system. It was a text/adventure war game between a couple remote players, played over a ...
11
votes
4answers
3k 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 ...
11
votes
2answers
643 views

Why does this BASIC program keep restarting?

Here is a BASIC program for the Commodore 64, which should load the LIB file from the disk, and then stop. Yes? 5 PRINT "LOADING..." 10 LOAD "LIB",8,1 20 STOP the LIB file is 102 bytes long and is ...
11
votes
1answer
455 views

Purpose of using REM when running TR-DOS commands in BASIC

When running TR-DOS commands from within BASIC, it's necessary to prefix the command with RANDOMIZE USR 15619: REM: first. I understand the former command, but not the latter. For example, to load a ...
11
votes
1answer
517 views

What additional hardware was required for BASIC on an Altair 8800?

I remember being aware of the Altair 8800 when it made it's mark, but only vaguely. Lately I found myself wondering what hardware was required for the Altair to get BASIC up and running. According ...
11
votes
1answer
387 views

What is the format of the syntax tables in Apple II Integer BASIC?

In Paul Santa-Maria's disassembly of Integer BASIC (text version), you can see the syntax table split into two parts, SYNTABL and SYNTABL2. I've seen references to the tokens being stored in reverse ...