33
votes
Accepted
Why was there a need for separate I/O address space in addition to a memory address space already?
do not mention why or why not a single memory address space could be used from the beginning.
Simply because a dedicated I/O space simplifies system design.
It may be assumed that you're asking ...
22
votes
Why did POKEing ROM addresses mask port writes?
The following is an excerpt from the article César Hernández Bañó and I wrote about the internals of the Inves Spectrum+, exposed after a detailed work of reverse enginnering.
First, some background: ...
19
votes
Accepted
If a PS/2 device on a 32-bit x86 sends a byte to the IO port 0x60 and you read it, what happens next?
On standard PCs, the main CPU and PS/2 controller use a handshake mechanism in the status register at port 0x64:
Main CPU wants to read (probably because it received a keyboard interrupt):
Read port ...
16
votes
Accepted
Where is Mike Lesk's (circa 1973) "portable I/O package" for C?
Unless you are an old guy like me, you'll need to run this thru groff -ms unless you know how to decode troff 😄
Mike Lesk's Portable I/O Library
15
votes
If a PS/2 device on a 32-bit x86 sends a byte to the IO port 0x60 and you read it, what happens next?
There is not only one place in memory, and it is not even memory.
The port 0x60 is an IO port in the CPU IO address space for accessing the keyboard controller data port. It is used to access a lot of ...
13
votes
Accepted
Is this a bug or an allowed Pascal behavior?
The ISO 7185 Pascal standard, section 6.4.3.5 "File-types", says (my emphasis):
There shall be a file-type that is denoted by the required structured-type-identifier text. The structure of ...
13
votes
Accepted
Did general purpose I/O controller chips come with fewer than 40 pins?
I nominate the AY-3-8912, which is a sound generator that also has eight programmable input/output pins — set them as input or output, set or get their level — in a 28-pin package. It sits between the ...
12
votes
Are there any good resources on emulating/simulating early computing input/output?
You can have a look at how simh, which emulates quite a few computer systems that had punch cards, paper tape, magnetic tape, harddisks, floppy disks, printer and terminals, handle it.
Basically most ...
12
votes
8086 duration of program
On the 8088 and 8086, execution involves two parallel processes--memory access and internal computation--and will be limited by the speed of whichever is slower. Generally, on the 8088 execution ...
11
votes
Accepted
How was character data handled in Fortran IV/66?
Individual characters could be read into integer variables (or elements of integer arrays) using the format specifier A1, manipulated at will, then printed using the A1 format specifier.
For example (...
10
votes
Did general purpose I/O controller chips come with fewer than 40 pins?
Of course. After all, the number of pins is related to the task at hand. No manufacturer would choose a package with more pins than necessary.
Examples of main families are:
(Excluding support chips,...
10
votes
8086 duration of program
I am afraid that the answer is "it could take any time, depending on circumstances and the real WAIT condition". WAIT states have unpredictable length, so there is no exact way to answer ...
10
votes
Difference between the 8255 and 8042 PPIs
The 8042 is no PIO chip at all, but essentially a (very small) full-blown computer on a chip - a microcontroller. It contains a small amount of RAM (256 Bytes), ROM (4K, One-time-programmable or ...
9
votes
CONIN (Console In) in CP/M and "old characters" in character latch
Keep in mind that if you call CONIN and there is no NEW character available, it will block until one is available. That's the purpose of the CONST function, it allows an application to check for a ...
9
votes
Accepted
Maximum speed of serial I/O bit-banged by 8-bit CPU
Well there is no simple answer.
If you assume that the CPU runs undisturbed, you can just count the cycles and that's how many systems already handle their tape storage, you just seem to want higher ...
8
votes
Flash border color during Kernal LOAD routine
One could configure the second CIA to trigger an NMI sometime during vertical blank, at a rate precisely equal to the frame rate. If the NMI were something like:
bit $dd0d ; Reset NMI
inc $...
7
votes
Accepted
8086 duration of program
I have the following assembly code for 8086
To start with basic timing for 8086 (*1) in CPU clocks is 21 clock cycles.
MOV AL,[BX] (*2)
13 cycles, consisting of 8 cycles for the instruction (MOV ...
7
votes
Accepted
Flash border color during Kernal LOAD routine
I have found on this page a loader that does exactly this. So how does it work? By overriding the ISTOP interrupt handler, which seems to be called by the kernal even during LOAD.
One thing I haven't ...
6
votes
CONIN (Console In) in CP/M and "old characters" in character latch
I'm very interested in how "old key presses" are handled.
Not at all. They are out of scope for CP/M.
The CONST and CONIN are direct mapped to respective BIOS functions of the same name (...
6
votes
Are there any good resources on emulating/simulating early computing input/output?
Peter Onion's Elliott 803 emulator tries to replicate the experience of using an 803 in a 3D, almost VR, setting. Virtual paper tapes are used to load programs and data.
Doug W. Jones's Punched Cards ...
6
votes
How was character data handled in Fortran IV/66?
With respect to this:
I've heard anecdotes about working with or modifying FORMAT
statements, but I've never seen an example.
The FORTRAN IV language for IBM 7090/7094 IBSYS version 13 supported ...
6
votes
Maximum speed of serial I/O bit-banged by 8-bit CPU
Hmm...at least offhand, it seems like you need around 4 instructions per bit and a Z80 needs at least 4 T cycles per instruction. Along with that you need to load the next byte from memory once every ...
6
votes
Maximum speed of serial I/O bit-banged by 8-bit CPU
There are so* many misconceptions in that question, it's hard to know where to start.
The issue with IEEE-488 was absolutely nothing to do with it being parallel, and everything to do with it being a ...
5
votes
How was character data handled in Fortran IV/66?
In FORTRAN 66, you could store up to the word size in characters. For instance, on a 24-bit machine with 6-bit characters
INTEGER C1(80), C2(40), C4(20)
READ(10,11) (C1(II), II=1, 80)
11 ...
5
votes
Are there any good resources on emulating/simulating early computing input/output?
Not too sure about resources, actually. But, I can walk you through the logic I used when I wrote an (unpublished) emulator for BESK, a machine that had paper tape for input, either in "5-bit ...
4
votes
Accepted
READY / WAIT when reading from / writing to IO ports
(You may as well want to take a look at the manual, like p.2-5 of the September 1975 Manual)
During the execution of an IN or OUT instruction [..], how does the Intel 8080 react to its READY pin ...
4
votes
Are there multiple models of the Intel 8089 IOP?
[...] scheme of the last number being -2 on 8mhz versions -1 for 10mhz versions [...]
They are not versions but speed grades.
Versions are donated by letters after the base number.
There is no fixed ...
4
votes
Difference between the 8255 and 8042 PPIs
The 8255 is a PPI, the 8042 isn't, and neither is the 8288 a PPI but it is a Bus Controller which decodes the native 8088 CPU control bus signals into separate usable bus control signals to have ...
4
votes
Did any big-iron systems implement offloaded database IO tasks?
It's not really clear what system you may have heared of, but for sure no mainframe. For one, use of conventional microprocessors for processing in mainframes type systems only started in the late ...
4
votes
Maximum speed of serial I/O bit-banged by 8-bit CPU
On the 6502, a lot depends upon the placement of the bits in whatever I/O register is being used or--for reception--if one bypasses the use of an I/O register entirely. The fastest reception from a ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
io × 19assembly × 3
8086 × 3
x86 × 2
architecture × 2
early-computer × 2
8088 × 2
commodore-64 × 1
ibm-pc × 1
programming × 1
z80 × 1
emulation × 1
6502 × 1
zx-spectrum × 1
keyboards × 1
cpu × 1
mainframe × 1
rom × 1
chip × 1
c × 1
8080 × 1
intel × 1
design-choices × 1
cp-m × 1
performance × 1