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.

Filter by
Sorted by
Tagged with
11
votes
3answers
1k views

When was the phrase “sufficiently smart compiler” first used?

In discussions and arguments about programming language design, one often hears comments about "sufficiently smart" compilers, as in "X needn't be inefficient, since a sufficiently ...
20
votes
3answers
3k views

How were the 70's and 80's coin-op programmed?

How were the 70's and 80's coin-op programmed? What tools did a programmer use? Nowadays a programmer can use a PC, an IDE to program, test, use breakpoint... but in the 80s? How could a programmer ...
29
votes
3answers
4k views

Why is the ‘auto’ storage class specifier included in C?

The auto keyword in C seems quite redundant: wherever it makes sense to define a variable with automatic storage duration, it is already the default, so there is no reason to use the keyword. The ...
-1
votes
1answer
228 views

How were console games ported to DOS?

Many popular DOS games were ported from video game consoles: Earthworm Jim Mega Man The Lion King The Lost Vikings Turrican 2 Rayman Oscar Zool Video game consoles generally have wildly different ...
19
votes
6answers
4k 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 ...
11
votes
3answers
504 views

What was the earliest use of |> pipe in programming?

I am trying to find which language used the |> operator first. It's being discussed for use in R, and it's been in OCaml for some years. Did it originate in OCaml? If not, what are its earliest ...
9
votes
1answer
1k views

What was the first programming language to have 'printf'?

I'm curious as to which language was the first to literally have a formatted text output procedure called printf. A trivial question, sure, but I was prompted to ask by a recent question on ZSPL. I'...
34
votes
5answers
8k 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 ...
21
votes
2answers
1k 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&...
8
votes
1answer
906 views

Why does the Applesoft BASIC have shapes?

Why did Apple include shapes in Applesoft BASIC? There are no sprites on the Apple II, but shapes provide a simple vector drawing tool. As graphics go the shapes are kind of an odd duck, they provide ...
14
votes
3answers
2k 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 ...
4
votes
2answers
430 views

How can I malloc() a block that's guaranteed to lie within a single DMA segment in Turbo C 2.01?

I'm following root42's videos about DOS programming using Turbo C 2.01. I've written my own Soundblaster 1.xx driver following the Creative Labs documentation, and I'm confused about memory allocation....
5
votes
3answers
470 views

What was the DOS FAT12 720k floppy raw disk format structure?

I am looking for detailed info on the low-level floppy disk structure of an MS-DOS-compatible 720k Double Sided Double Density disk. Stuff like GAP/SYNC patterns, ID and CRC Field structure, standard ...
7
votes
1answer
369 views

How did old car games, using “sprite illusions”, function on a technical level?

Example: https://youtu.be/E9QJZSBpvg0?t=80 The road turns not only left and right, like in the classic Pole Position, but also goes up and down. Other than the cars and the road, there are numerous ...
7
votes
3answers
549 views

How was dataflow analysis performed before SSA?

If we look at something like LLVM or the GNU Compiler Collection, Dalvik and many others, their intermediate representation (IR) uses SSA (Static Single Assignment form), as part of their Data-Flow ...
0
votes
0answers
47 views

How to burn CDTV extended ROM image to eeproms

I have a patched version of CDTV extended rom, which I need to burn to 2 chips. I have 2 ST M27C1000 with pin swap adapter (pins 2 & 24 - M27C1001), TL866 mini pro programmer, hex editor and I was ...
2
votes
1answer
207 views

How to get started with writing drivers for amiga OS

I would like to learn how to write drivers for Amiga OS. Seems like a daunting task, but I have spare time and I find great value for amiga (CDTV) community in particular. Currently if a CD ROM breaks ...
50
votes
1answer
6k views

How was collision detection done on the Asteroids arcade game?

In honor of today's landing of and sample collection by the OSIRIS-REx spacecraft on the asteroid Bennu: How did the arcade game Asteroids detect collisions between the screen objects (player's ship, ...
3
votes
2answers
259 views

Is there any documentation for programming Microsoft Windows Sound System sound cards?

I'm programming my own sound mixing engine and drivers for MS-DOS, but I can't find any documentation for programming for Microsoft Windows Sound System interface sound cards. Was there any ...
13
votes
7answers
2k 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 ...
2
votes
2answers
190 views

Why isn't this invocation of XMS function Move EMB 0Bh in Turbo C correct?

Following on from my last question, I cannot get Move Extended Memory Block (Function 0Bh) working in Turbo C 2.01. The following main.c contains only the minimum functions: get the XMS driver pointer,...
4
votes
3answers
524 views

How can I force Turbo Assembler to use multiple passes when invoked from Turbo C?

I'm using Turbo C and Turbo Assembler 2.01 to write a C wrapper around the XMS interface so I can use XMS memory in real mode, large model. I've started by writing the following: #include <dos.h>...
9
votes
4answers
1k views

What were the first BASIC interpreters to be programmed in high-level languages?

I've been continuing to revise and expand the Wikipedia article that I started on BASIC interpreters. One of the criticisms was that it was too focused on the microcomputer era (which interested me ...
5
votes
3answers
313 views

Was this FORTRAN “extension” originated by IBM?

This question has been prompted by a recent question about the assigned GOTO operator. It appears that some early FORTRAN implementations supported a non-obvious construct: using an indexed variable ...
17
votes
2answers
2k views

When did FORTRAN decide on signed integers?

I have personally always been of the opinion that it would make sense for the default integer type to be unsigned, though it's been a long time since that would've been a live issue for debate; C in ...
15
votes
2answers
2k views

Looking for information on a programming language called WhatDoesItDo

I am looking for information on a training language called "WhatDoesItDo". It was used in 1978 at Austin Community College on a Motorola 6800 CPU. If anyone has any information, I would ...
3
votes
2answers
259 views

Is there a way to blank out a portion of a screen on Commdore C64?

I would like to blank out a couple of lines between two given rasterlines. Above that I'm planning to have a scrolling background and sprites, below that is a textual info area. I'm thinking of a ...
16
votes
4answers
1k views

Toolchain and workflow to build CP/M

Building my own version of CP/M has always been a fascinating to-do project. Problem is that it seems that the source code is not in regular assembler, but some kind of macro-assembler like language ...
90
votes
8answers
27k 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 ...
2
votes
1answer
108 views

Are there open source Java libraries for reading DSK and EDSK disk image files as used by Amstrad and Spectrum +3 emulators?

I've been working on some modules for the Ghidra reverse engineering tool. Ghidra is written in Java, which I'd always avoided when I was more actively programming so this is an opportunity to learn ...
4
votes
1answer
239 views

Back in the day, were games coded to run better with more (not faster) RAM? [closed]

Let's say the year is 1999 or something like that. I have a PC with 400 MHz, no graphics accelerator and 64 MB RAM, and try to run some Need for Speed game or something. I notice that it goes laggy. ...
12
votes
2answers
750 views

Did the Commodore 128's Z80 CPU also have full access to the machine's custom hardware?

The C128 was a C64 with an extra CPU as well as extra memory. But the second CPU was a Zilog Z80 while the primary was the usual Commodore CPU, a MOS 6502. The Z80 was there so that CP/M software ...
17
votes
1answer
508 views

Was the IBM S/360 Responsible for Popularizating the 'A'-to-'F' Notation in Hexadecimal Numbers?

In the early history of computing before the mid-1960s, there wasn't an universal, de-facto standard for the written representation of a hexadecimal number, different computer systems used their own ...
3
votes
1answer
83 views

What is the layout of the directory track on a TRS-80 Model I/Model III disk?

I've decided to add support for some more classic Z80 computers I used to use to my Ghidra modules, and the first Z80 systems I used were the TRS-80 model I and model III. I've found documentation ...
7
votes
2answers
828 views

How can I programmatically determine whether an Apple II .dsk disk image is a DOS .do image or a ProDOS .po image?

I'm interested in working with the most common Apple II disk image file format, .dsk. (I only programmed these machines briefly in Basic around 1979-81 and have not been in the emulator scene, so I'm ...
28
votes
2answers
3k 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 ...
2
votes
3answers
232 views

Program memory limit [closed]

In the past, a program could only use a specific part of the computer's memory. If multiple instances of the same program were open, they shared this one memory block. To prevent this, some developers ...
28
votes
2answers
10k views

What is this programming language having PROC, DCL, LABEL keywords?

A 1980 paper called "Register Allocation via Coloring" contains something that looks like source code: P: PROC(MODE); DCL MODE BIT(1), (A1,A2,A3,A4,A5,A6,A7,A8,A9,A10, B1,B2,B3,...
10
votes
2answers
1k views

What was the first preprocessor for a programming language?

A preprocessor is a tool that takes source code as input and outputs a modified version of it for input to a downstream tool, such as a compiler or interpreter. Preprocessors can be used to implement ...
23
votes
7answers
4k views

Was it possible programmatically to manipulate the volume as well as the pitch on computers with no sound chip?

On early versions of many 8-bit computers like the Apple II, Spectrum, and even the IBM PC, there was no sound hardware other than the simple "beeper". Programmers made sound by hitting a hardware ...
9
votes
1answer
474 views

Can you program an arcade game and have MAME or another emu run it?

I know Mame works with drivers for each game or hardware, and it checks for specific ROMs, and I guess it might check also for some checksum to verify the ROMs integrity. Is there some way you could ...
31
votes
3answers
3k views

How did Elite do vertex transformation?

In 3D graphics, vertex transformation is the process of converting x,y,z coordinates in 3D space, to x,y coordinates on the screen. According to https://www.khronos.org/opengl/wiki/...
5
votes
2answers
421 views

How did Microsoft get away with JScript? [closed]

How exactly did Microsoft reverse engineer Brendan Eich's JavaScript, call it something else and not get a massive lawsuit in the aftermath? I understand this was a long time ago but I still wonder ...
18
votes
9answers
2k views

How were bugs reported for compilers that were shipped on 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, ...
13
votes
1answer
466 views

Did Babbage's Analytical Engine lack indirect addressing?

As I understand it the analytical engine could only refer to memory by variable cards that had the explicit address printed on them, see https://www.fourmilab.ch/babbage/cards.html. For instance the ...
24
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 ...
1
vote
5answers
927 views

What was the first introduction of callback concept of programming?

Although I seriously code with computer languages in general since 2010 and as an amateur programmer with programming languages in particular since 2015 (primarily Bash and JavaScript imperative ...
8
votes
4answers
1k views

What was the earliest microcomputer Logo language implementation?

Wikipedia has a long list of Logo implementations, but I'd like to know what the earliest implementation is on a microcomputer, or, more likely, what are the earliest ones if there isn't one with ...
-6
votes
1answer
508 views

What is the maximum 64 bit integer (number) value? [closed]

I already know that the maximum integers for ranges higher than 24-bit (16 777 216) will very likely exceed 1 000 000 000, so, what is the maximum 64 bit integer? It is larger than 10 bilion?
11
votes
1answer
493 views

Why didn't Wozniak's interrupts work on the Apple I monitor program?

In his autobiography, Steve Wozniak recounts[1] his difficulty getting interrupts working on the 6502 microprocessor: The next step was to debug the 256-byte monitor program on the PROMs. I spent ...