Questions tagged [programming]
Programming aspects of retro systems and historical programming languages. Please check for language-specific tags first and use those instead, if applicable.
265 questions
6
votes
2
answers
734
views
Flash border color during Kernal LOAD routine
I would like to use the Kernal's LOAD routine to load a file into memory, because that seems to be the easiest way to do it. However, that LOAD call is synchronous in the sense that it returns once ...
23
votes
1
answer
6k
views
What happened to MODULA-2?
I studied at the Federal Institute of Technology Zurich or ETHZ in Switzerland, where Professor Dr. Niklaus Wirth developed MODULA-2. What happened to his project?
17
votes
3
answers
2k
views
Why can't I invoke the next interrupt service by incrementing the AX register after calling the same interrupt?
I have two snippets of 8086 assembly code, both of which are supposed to do the same thing: make the mouse appear on the screen.
Show_Mouse:
push ax
mov ax,0 ;Reset Mouse
int 33h
...
19
votes
3
answers
5k
views
Which language had the first scanf?
As a companion to the question "What was the first programming language to have 'printf'?", which language had the first scanf?
It doesn't have to be literally called scanf, but I am looking ...
5
votes
1
answer
591
views
Why does the ‘Get Next Selector Increment Value’ DPMI call exist?
In DPMI, interrupt 0x31 services 0x0000 and 0x0100 are capable of simultaneously allocating multiple protected-mode selectors in a single call. When that happens, both services return only the first ...
23
votes
2
answers
3k
views
How can a protected-mode Watcom C program access memory that a real-mode interrupt service returned in a segment:offset register pair?
I'm using Open Watcom 1.9 to write some 286 real mode, and 386 protected mode software for DOS in C.
In real mode, I can retrieve a pointer to the system ROM character bitmaps in real mode using int ...
17
votes
1
answer
3k
views
What was the first programming language to use `+` for string concatenation?
Many reasonably modern programming languages (Java, Python, C++, Ruby) use + to represent string concatenation. "A" + "B" is the string "AB".
Languages with a more ...
13
votes
2
answers
3k
views
What really prevented PC games from using hardware scrolling on CGA
According to https://en.wikipedia.org/wiki/Adaptive_tile_refresh:
CGA (the previous generation of PC graphics hardware) lacks features for scrolling in hardware
so PC games started featuring ...
3
votes
1
answer
950
views
Why were procedure parameter specifications optional in the ALGOL 60 Revised Report?
In Algol 60 procedure declarations, the 'specification' part was optional for by-name parameters. The specification is what gives (loosely speaking) the type of parameter - whether it's real, integer,...
5
votes
1
answer
277
views
Which extant ALGOL-60 compilers fully support numeric labels?
This question is prompted by a related one by texdr.aft. It turns out that the Revised report on Algol-60 allowed numeric labels (3.5.1, page 15),
<label> ::= <identifier> | <unsigned ...
17
votes
4
answers
4k
views
Why does Pascal have numeric labels?
Pascal was intended, in part, to be a simple language to implement. Some of the design decisions reflecting this are
Declarations/definitions must be given in a strict order (labels, constants, types,...
17
votes
1
answer
2k
views
In what year did term "program" first appear in the meaning of "series of coded instructions"?
I'm trying to figure out year when the term "program" was firstly used is the meaning ‘a series of coded instructions which directs a computer in carrying out a specific task’.
Additionally ...
44
votes
6
answers
10k
views
Why didn't C++ specify filename extensions?
Apparently even today there is no single "official" standard for C++ file extensions. There are just common conventions.
To me this stands out as an anomaly... file extensions are heavily ...
18
votes
5
answers
3k
views
What was the first programming language, other than Lisp, to have “short-circuiting” Boolean expressions?
(This question is, of course, another thrilling installment of “The history of expression evaluation”; see the previous episodes here and here.)
In many programming languages, the Boolean operators ∧ ...
60
votes
4
answers
13k
views
Why were single quotes ('…') chosen for characters, and double quotes ("…") for strings?
In C, '' is used to denote a character, while "" is used to denote a string. Why was this syntax chosen?
I tried to research this using Wikipedia’s Timeline of Programming Languages along ...
37
votes
3
answers
6k
views
What was the first programming language to support “operator chaining”?
The Python language has a neat feature: An expression like x < y <= z is interpreted, according to mathematical convention, as equivalent to x < y and y <= z. Operands are evaluated only ...
112
votes
7
answers
28k
views
Why was `!` chosen for negation?
It seems that the use of the exclamation mark ! to denote negation started with the C programming language (as far as I can tell from my Google research). Nowhere though is mentioned who and why chose ...
13
votes
3
answers
1k
views
What was the first programming system to place no limitations on the length of identifiers?
Historically, interpreters and compilers have limited the length of identifiers. For example, FORTRAN I and II considered only six characters to be significant, and LISP 1.5 forbid symbol names to ...
16
votes
2
answers
1k
views
How much of the Program Segment Prefix area can be reused by programs with impunity?
I am writing a tiny TSR program, and I want it to take as little memory while installed as possible. The memory footprint of every loaded DOS process, including a TSR, includes a data structure known ...
9
votes
1
answer
679
views
What was the first compiler/interpreter/assembler to indicate problematic columns in diagnostic messages?
These days, most compilers and interpreters seem to provide the following in diagnostics:
A description of the problem
The name of the source file
A line number
A relevant position within the line
...
13
votes
6
answers
868
views
Are there any primary sources for the “passing constant by reference” behavior in old Fortran compilers?
Occasionally I have heard references to a peculiarity of certain (old) Fortran compilers, with regards to subprogram argument passing. Here is an example, from an answer to a Stack Overflow question:
...
2
votes
3
answers
987
views
M68k Big Endian to Little Endian
I'm trying to write a binary file using vasm68k_mot (Motorola 68k) writing File-Size and File-Offset everything goes well, except that M68K is Big-Endian, there's a way I can change to Little-Endian ...
3
votes
1
answer
314
views
Python2.4 Amiga OS M68K restarting system and where to get libs
Just installed python 2.4 on my Amiga os3.9. sometimes when I run a script the machine restarts. Any idea why that may be? It has 030 with MMU, 64MB RAM and 1MB chip ram. All MMU libs are installed. ...
4
votes
1
answer
308
views
How were card sequence numbers typically checked?
Although average punched cards had eighty columns, often only seventy-two were used for characters; the remaining eight were ignored by software. Hence arbitrary metadata could be included with each ...
8
votes
1
answer
285
views
How did macro-instructions and indirect addressing interact in IBM's MAP/FAP assemblers?
The MAP and FAP assemblers for the IBM 709/7090/7094 had a nice macro facility. I was surprised by its power. (Actually, I guess it is possible that most macro processors at the time were as ...
27
votes
2
answers
8k
views
How did the "Programmer's Switch" work on early Macintosh Computers?
The early Apple Macintosh computers (original Mac, Mac 512K, Mac Plus) all came with a "Programmer's Switch" installed on the side. I believe this persisted for a long time, with the switch ...
15
votes
1
answer
1k
views
Who are the people associated with Simula, Assembler and Fortran in this video?
I am watching a recording of a discussion panel ‘Unix50 - Unix Today and Tomorrow’, part of which contains Bjarne Stroustrup’s talk ‘From C to C++’, discussing the history of C++.
At 20:46 there is a ...
6
votes
3
answers
1k
views
Was there anything about the "power of the NES" that made Super Mario Bros. have "realistic physics"?
If you look at older platformers, and even many later ones for other platforms and even the NES, there is typically no "momentum" and "realistic" physics for the main character ...
4
votes
2
answers
501
views
Are ECMA and ANSI sister organisations?
ECMA was the body that formalized JavaScript while ANSI was as I understand it the body that formalized much of the early C programming language, what became known as ANSI C. Are these two ...
9
votes
3
answers
669
views
Uh, oh, I've woken up in 1973. Can I get a job in computing? [closed]
I've woken up in 1973. Until I can figure out how to monetize my knowledge of coming political, economic, and social trends, I need to support myself somehow.
So... I walk into one of the major ...
5
votes
1
answer
425
views
Multi-GPU PowerMac G5?
I’ve got a 2005 PowerMac G5, Dual 2.3 GHz with a stock Nvidia GeForce 6600 running OSX 10.4 Tiger that I enjoy experimenting with, purely for fun and to learn writing legacy software in XCode.
Would ...
21
votes
1
answer
2k
views
Where are the sources of the original curses library?
The curses library is a terminal control library for Unix-like systems used in text based user interface applications. It has been used in many games in the past. It was developed by Ken Arnold and ...
5
votes
1
answer
324
views
Chaining IRQ's with BASIC & Kernal routines turned off
Having disabled BASIC and Kernal routines I set up an IRQ to run the following code when the raster line reaches 200:
.irq1
inc 53280 // change border colour
// lda #$ff // clear the ...
2
votes
4
answers
769
views
Are there some non-OOP programming languages that does not allow you to make a variable private? [closed]
In the non-OOP programming languages that I know of, you can't make a variable private (i.e. there is no private keyword), but there are some tricks that you can use to effectively make a variable ...
31
votes
13
answers
6k
views
In what language(s) is the return value set by assigning to the function’s name?
In this Stack Overflow question the original code made the mistake of using the function name as a variable, and assigned the return value to it. A commenter mentioned that he once used a language ...
17
votes
3
answers
3k
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 ...
0
votes
1
answer
717
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 ...
12
votes
2
answers
1k
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 ...
32
votes
3
answers
5k
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 ...
9
votes
1
answer
1k
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 ...
9
votes
1
answer
919
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 ...
3
votes
1
answer
678
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 ...
56
votes
1
answer
7k
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, ...
5
votes
2
answers
715
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 ...
2
votes
2
answers
287
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
3
answers
656
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>...
8
votes
2
answers
1k
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....
10
votes
4
answers
2k
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
3
answers
448
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 ...
16
votes
2
answers
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 ...