Stack Exchange Network

Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange

Questions tagged [programming]

For questions about programming languages and constructs. For questions about specific languages please check for language-specific tags first, and use those instead.

81
votes
7answers
26k views

Why would a NES game use an undocumented 1-byte or 2-byte NOP in production?

Reading the NESdev wiki page on CPU unofficial opcodes, I see a few games use an undocumented 2-byte NOP instuction in production: Puzznic, F-117A Stealth Fighter, and Infiltrator use $89 #i. Beauty ...
60
votes
7answers
14k views

Where did the popularity of the `i` variable come from?

I have heard that the reason the i variable is used so much is because there was an old computer where each variable could only be a single letter and that reserved the variables a through h as ...
39
votes
8answers
6k views

What was the first programming book

I'm curious, what was the first book, about programming for digital computers. I tried to google it, but it led me to multiple results. I'm mostly interested in the language it was about and the ...
35
votes
4answers
11k views

Who is credited for the creation of Assembly Language?

The C Programming Language was originally developed by Dennis Ritchie who also co-designed the Unix operating system with which development of the language was closely intertwined. Is there a ...
30
votes
6answers
10k views

Which was the first programming language that had data types?

Machine language (and Assembly language) don't have the concept of data types, so if you want to add an int and a float variables in Assembly, you have to use the appropriate Assembly instruction that ...
30
votes
3answers
10k views

Where does this esoteric Pascal operator come from?

In the documentation for an implementation of Pascal for a Soviet computer, I've encountered a very weird language extension. I'll try to translate it: Branching operator (branch) Syntax &...
28
votes
5answers
7k views

Why was nil defined as a reserved word in Pascal?

In Pascal, nil (the pointer value to "nothing") is a reserved word. Why wasn't it simply a predefined identifier as true and false are, for example? This is stated in PASCAL User Manual and Report p....
28
votes
4answers
7k views

Why (historically) include the number of arguments (argc) as a parameter of main?

A comment on this answer to a StackOverflow question made me curious. According the C99 standard, section 5.1.2.2.1: The function called at program startup is named main. The implementation ...
28
votes
5answers
5k views

How was the C language ported to architectures with non-power-of-2 word sizes?

By the time the C language started to gain popularity outside of the PDP-11 circles (mid-1970s), mainframes with "weird" word sizes, and no capability to address individual bytes efficiently were ...
26
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 ...
25
votes
7answers
11k views

How can you run a program that is bigger than RAM?

Suppose you have a program that is 218 words long. However you are using a 16 bit machine and have 216 words of RAM. (The RAM is directly addressed by the CPU). On the other hand, you have unlimited '...
23
votes
3answers
2k views

How did programs on coding forms get run?

At some point in the past, around the 1970's or so, programmers wrote their code on paper. Considering the fact that modern computers have replaced paper in so many ways, the whole idea seems a little ...
22
votes
2answers
2k views

Apple II: Applesoft BASIC memory management

I am trying to write an Applesoft / floating point BASIC program using high resolution graphics and some assembly language code. My BASIC program is quite large, and after running the program for a ...
20
votes
10answers
4k views

Was Objective-C really a hindrance to Apple software development? [on hold]

I have heard stories from some of the greybeards I have met on the Internet that Objective-C was by all accounts a nightmare to work with. Was that just a thing about all the low-level languages of ...
20
votes
7answers
1k 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 ...
19
votes
5answers
2k views

Early Forth for personal computers

What were the earliest Forth programming language implementations for 8-bit personal computers? Was it FIG Forth? Or a predecessor? Or some other development? Why did Forth lose its relative ...
18
votes
6answers
3k views

What caused the downfall of Pascal? [closed]

From 1985 to 1990 Borland's Turbo Pascal was at least as popular as C for DOS systems. Turbo Pascal was especially popular because of it's ground breaking BGI graphics interface while C was stalled in ...
17
votes
2answers
644 views

What's a good way to implement this “splashing water” effect on the C64?

This pillow fighting game set in Venice depicts the two opponents fighting on a wobbly gondola on a canal. It was apparently known as "Pillow Fight" in English and as "Kissenschlacht" in German, and ...
17
votes
2answers
592 views

Color BASIC RND function not so random

The RND() function for random numbers appears to give the same results each time the computer is reset. How do I seed the random number generator with a random number?
16
votes
8answers
2k views

How were bugs reported for compilers that shipped on and were installed via floppy disks?

Take the Microsoft C 1.0 compiler for example. It shipped on multiple 5.25" 360K disks, and when it ran on machines without internal hard disk, so users had to switch floppies between the editor, ...
15
votes
3answers
3k views

Do you need to allocate memory before you use it in MS-DOS?

In modern operating systems (for example: Windows), you can't access a memory location before you allocate that memory location to your program (or else a segmentation fault will occur). I am ...
15
votes
2answers
2k views

First language with C-like memory management

This is a nerd question but I can’t find anything in google. So, in which programming language did the classical memory management system first be implemented? I mean the division into value types (...
15
votes
2answers
1k views

6502 branch offset calculation

This question expands on How does the 6502 implement its branch instructions? I'm working on a cycle accurate VHDL implementation on an FPGA. I have much of the program logic already written, but I ...
14
votes
2answers
1k views

What is the “standard” way to implement KERNAL hooks on the C64?

The C64 kernel (or KERNAL as it’s known in the C64 community) routines work via a jump vector table stored in page $03xx. A common programming paradigm to create something like a "device driver" would ...
14
votes
1answer
679 views

Fortran variable type defaults - origin

In older versions of Fortran, e.g. 77, variables did not need to be declared. If the name starts with I, J, K, L, M, or N then it would be assumed to be an INTEGER. Otherwise, it would be assumed to ...
14
votes
2answers
418 views

Do any interesting POP-2 programs survive?

On a disk image (which I had for many years) from a BESM-6, I've suddenly found a working POP-2 (POPLAN) interpreter (for all these years I'd considered that area as useless bits and pieces of various ...
13
votes
8answers
2k views

Uses for the halt instruction?

What was the halt instruction in early CPUs such as the Z80 and 8080 used for? Here's a description of the Z80 instruction: The HALT instruction suspends CPU operation until a interrupt or reset ...
13
votes
1answer
2k views

What was the first C compiler for the Mac?

When did a C compiler first become commercially available for the Apple Macintosh? And what was its name? The only programming languages that I recall were available for the Mac at launch (January ...
13
votes
3answers
2k views

Native C compiler for Sinclair ZX Spectrum

I am looking for a native C compiler for the Spectrum 128. I would like one which: Has good support for the latest C standard at the time. Is not limited to compiling ridiculously short source code. ...
13
votes
2answers
911 views

How could high level functions with return values map to 6502 assembly? (if at all possible)

What sort of code could be used to substitute a high level function with a return value to a 6502 subroutine? Take this C-like function for example. byte func(byte a, byte b, byte c) { d = (a + b)...
13
votes
3answers
843 views

What is going on in the overscan area of Sega Genesis games?

What is going on in the overscan area of Sega Genesis games? I noticed that different games display different things in the overscan area. I understand this was never intended to be seen. However,...
13
votes
3answers
4k 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
1answer
679 views

What was the first language with regexes?

According to Wikipedia, Regular Expressions (AKA regexes) have only been around since 1956: Regular expressions originated in 1956, when mathematician Stephen Cole Kleene described regular ...
12
votes
6answers
1k views

Do any mainframe emulators exist with a functional FORTRAN compiler?

Similar to this question, but generalized to any mainframe computer from before the microprocessor era, does there exist an emulator and OS for a vintage mainframe computer that will run the output ...
12
votes
3answers
2k views

What's a good way to implement this “fade” effect on C64

See the beginning of https://www.youtube.com/watch?v=hmfLBAtGAKk. Here's a screenshot: It basically clears characters pixel by pixel both horizontally and vertically. Use sprites for the pixel by ...
12
votes
2answers
448 views

What's the meaning of __saveds in Amiga C code?

What's the meaning of __saveds in Amiga C code? It's applied to function prototypes, and is required for functions that are to be called by assembler code, if I understand correctly.
11
votes
2answers
843 views

What is the origin of different styles of assembly language mnemonics?

As exemplified in answers to this question (I hope that closed questions that are linked to, don't get purged), the instruction mnemonics in early assembly languages had a 1-to-1 correspondence to the ...
11
votes
2answers
764 views

Apple II / ProDOS: Run binary games without BASIC.SYSTEM?

Is there a way in ProDOS 8, to directly run old DOS 3.3 binary games without loading BASIC.SYSTEM ? Most games never access DOS 3.3 once the program was running, so even though these were never meant ...
11
votes
2answers
350 views

Creating an System Extension (INIT) for classic mac os

I have some old macs that I would like to remove their clock batteries so that I don't have to worry about them leaking and destroying logic boards. That being said I do want to operate them from time ...
10
votes
4answers
2k views

What are the rules for Applesoft BASIC formatting for code?

What are the rules for Applesoft BASIC formatting for code? I've been doing some BASIC coding and noticed that: 10 input "some question?"; name$ Will be reformatted as: 10 INPUT "some question?";...
10
votes
2answers
821 views

Pattern matching, which language first had it

Which programming language was the first to use pattern match? The oldest ones I know are: Prolog 1972 ML 1973 Are there languages older that have pattern matching? Edit: By pattern matching I ...
10
votes
2answers
624 views

Did the VIC-20 support raster scanline tricks like the Commodore 64?

I've been programming the C64 on/off for over 30 years (wow). However, I have a few VIC-20's I want to program. I never had a VIC-20 as a kid so I haven't had much exposure to them. Am I correct in ...
10
votes
3answers
427 views

How do I store data and/or code in AUX RAM on an Apple //e?

Despite owning several Apple IIe's, I've never gotten around to doing any major programming on them. I hope to change that. Anyway, how did programmers actually use the expanded RAM seeing that a ...
10
votes
1answer
241 views

Does a CDC 1604 emulator exist with a functional FORTRAN compiler?

The first FORTRAN compiler for the Soviet BESM-6 mainframe was written by means of manually retargeting the assembly code of the CDC 1604 FORTRAN compiler donated by CERN to JINR. As a result is it ...
9
votes
4answers
843 views

First language designed to be embedded?

Some languages like Python, Lua, and Tcl are designed with the intention that you can easily embed the interpreter into some other native program. For example, many VFX applications like Nuke, Maya, ...
9
votes
3answers
2k views

What “Write your own RPG/Adventure game” books were available for 8-bit computers? [closed]

During the 70s and 80s there were a number of books about how to write your own games for 8-bit computers, usually in BASIC. Three examples of these books are How to Create Adventure Games by ...
9
votes
3answers
1k views

What Commodore 64 emulator and assembler to use? [closed]

I'm about to do some assembly coding for the C64 but for sanity I would like to do the actual coding on my Mac with an emulator. My question is; which is the most maintained/up-to-date emulator/...
9
votes
0answers
345 views

Who and how worked on games in 80's? [closed]

As a developer in a team, I am used to some techniques and workflow, like using git, issue trackers, linters, common ways to discuss the structure of the code, the ways to debug and refactor code. I ...
8
votes
1answer
401 views

Which memory management is easiest to program - CoCo 3 or C128/Apple //e? [closed]

As the 8-bit systems hit their peak in the mid-1980s, breaking the 64K barrier was all the rage. Commodore, Apple, Atari, and Tandy all shipped new 8-bit machines that came standard with 128K. Of ...
8
votes
1answer
338 views

P′′ Language Interpreter/Compiler Resources

According to Wikipedia, P′′ is a "primitive computer programming language created by Corrado Böhm in 1964 to describe a family of Turing machines." P′′ contains only four instructions has influenced ...