Hot answers tagged

60

As Wilson points out in his answer, it has to do with how the CIA chips interact with the keyboard and the joystick ports, and the confusion that can arise trying to determine where input is being received from. Compute!'s Mapping the Commodore 64 has an excellent write-up here explaining how the "Complex Interface Adapter" (CIA#1) deals with scanning the ...


56

SCSI, I think, is a serial interface. No, it isn't. SCSI das defined as a parallel interface for high speed data transfer. Though there are modern incarnations using serial transfer, while being compatible on a logical level, which might add confusion. A standard serial port on PCs used a 9-pin DSub connector where a parallel port used a 25-pin connector. ...


24

Because of the way that the joystick port 1 is mapped to the same hardware as the keyboard, from the software's point of view it's impossible to tell if you're wiggling the joystick or typing something on the keyboard. So many games used port 2 instead.


24

Early Wang basic computers used a backplane keyboard with an enormous bespoke parallel interface to the detached style keyboard device. Wang's 2200 and 2600 BASIC-only minicomputers were available with the 2215 BASIC keyword KBD, the 2222 alphanumeric typewriter KBD, and the 2223 upper/lower case BASIC keyword KBD. None of these keyboards contained a key ...


23

Of the variants produced in a relatively large series - let me remind you about the keyboard connection on the Commodore 128D - it was connected using a 25-pin interface, 23 lines of which directly represented the matrix of keys.


17

The so-called "1MHz bus" is not actually a separate bus. It is just the set of devices which were too slow to run at the full 2MHz in the original BBC Micro, and which therefore incur a clock-stretched cycle when accessed. These include most of the SHEILA ($FExx) devices, except for the Econet, floppy, Tube, VIDPROC, and memory mapping registers. ...


15

No, it can not be used to sample audio. As the link you provided says, in 12-bit mode it takes 10 milliseconds to convert a sample, and even in 8-bit mode it takes 4 milliseconds. That results into maximum sampling rate of 250 Hz, which is useless for sampling audio. The low sampling rate indicates the analog input is meant for slowly changing signals, like ...


14

The documentation for IBM's original Game Control Adapter has some details that will be of use. Even though you're using a SoundBlaster card instead, it should still be compatible with the IBM original. While the documentation doesn't specify maximum currents for any pins, it does have a logic diagram: It can be seen that on the original gameport, the ...


11

The two consoles do have different controller ports. The NES Classic Edition is not directly compatible with original NES controllers, but it does work with the Wii Classic Controller. The original NES uses a 7-pin connector: The NES Classic Edition does not:


10

Trying to get more into the specifics of the BBC connection, there is a substantial hint in the user guide: However only 5 bits of the [user] port, and CB1, CB2 are used: This leaves bits 1,3 and 4 available for other uses. Which is backed up by the schematic provided by Simon Inns in the doco for SmallyMouse2; comparing that to the user port's pinout ...


10

That would be USB, Audio out, Microphone in, FireWire. And PCMCIA slot above the two connectors. And there is a connector for a docking station at the bottom.


9

Then why did SCSI require so many pins? Differential signaling. The original standard was actually a 25-pin system using an 8-bit parallel signal going in one direction only. There was a separate parity pin, and lots of signal pins for things like device select and flow control. But in many respects it was similar to the DB-25 printer cable, just faster. ...


9

Early micro/home computer used parallel keyboards. These were (usually) called 'ASCII' Keyboards. A good example is the Apple II, which implements a protocol almost exact like you imagined - sans interrupt that is. A key press was presented as 7 data bits with ASCII like encoding plus a flag at bit 7 indicating a key press, cleared whenever the port was read....


8

The Sinclair QL also had two RS232C ports which used an unusual combination of a ASIC (ZX8302) and Intel 8049 to provide two physical ports (with non standard connectors) but could not be used independently. The two ports were nominally for printer and modem use, but during development the built in modem of the QL was dropped, but the case retained the ...


7

In addition to what already was stated, namely: ... how the CIA (Complex Interface Adapter) maps JoyStick - or in general, any - input: The signals a (digital) JoyStick delivers, come in via Pins 1 to 4 (Up, Down, Left, Right) and additionally Pins 6 and 9 for the buttons (Left, Right) - the equivalent values are represented on the charmap by e.g.: SPACE ...


6

back in the (x386) days I was using GAME port as an ADC for home made scanner and other self build HW. As it is usual during development there is occasional set back like short circuit etc. The GAME Ports I was using was always GoldStar chip powered IDE/ports ISA card (they where very common) and a short circuit on the analog pins always burn up +5V power ...


6

The original IBM PC and AT designs allocated 10 bits for I/O addressing, and only decoded address lines A0-A9 for on-board I/O devices. However there was no physical limitation to 10 bits, so a card could use A10-A19 so long as it didn't clash with the aliases of 10 bits cards or motherboard devices. So yes, the game-port card has aliases at 601h etc., ...


6

For a keyboard that includes a shift key to be useful, either the CPU must poll it often enough to observe the state of the shift key whenever another key is pushed, or the keyboard must capture enough information without CPU intervention to know whether a keystroke represents a shifted or unshifted character. In systems that use the former approach, there's ...


5

Porting a game to PAL while making all actions take the same number of frames would cause the game to perform 20% slower than with NTSC. Some games did this, but other games adjusted the amount of distance objects could move per frame or reduced the number of frames required to perform various actions. Although some games could accommodate fractional-pixel ...


4

The LINC (Laboratory Instrument Computer), the first computer I programmed in 1965, had a one-key rollover. When a key was pressed on its Soroban Engineering keyboard, a solenoid locked that key down and all the other keys up, sending a signal to the computer. Whatever computer program was running could then take its time (sometimes a sizable fraction of a ...


4

The NES with its multitap accessory is a potential answer, if you'll accept some logic in the accessory. NES controllers use a 1-bit serial protocol. The host strobes to begin a transfer, causing the joypad to load its current state into a shift register, and the host then clocks in 8 bits, each representing one of the 8 inputs. It's actually the CPU that ...


4

There is no official specs for game port current limit. Some adapters may have resistors, ferrite beads or fuses for current limiting, but usually a short circuit still fries something (except for a polyfuse). I'd say 100mA is a safe limit in any case. The original adapter has 1k pull ups on buttons, so for all four buttons simultaneously pressed, it adds up ...


4

I don't know the specific details, but in general the mouse uses standard quadrature encoders so for each axis you get two data pins that output movement data. While several ways to decode the quadrature data for each edge to achieve maximum resolution, the hardware uses a simplest possible approach with the PIO chip. Basically a pulse on one pin can be used ...


4

A second bite of the cherry: amongst others, the WD177x family are popular floppy controllers that were used in or with a variety of 8-bit machines including the MSX, the Acorn Electron and later models of the BBC Micro, the Oric and the TRS-80. They are serial controllers because floppy drives provide a single data line, which the controller monitors for ...


4

According to this website, https://segaretro.org/Tomb_Raider "The European Saturn version also have minor differences to level layouts (specifically some secret areas) because it was rushed to launch three months before the PlayStation version. This was fixed in the North American and Japanese versions." Maybe these differences are what you ...


3

In the Commodore 16/116/Plus-4, the Cassette connector and the serial (floppy and printer) port are both implemented via the CPU's single built-in I/O port which can be accessed by code at addresses $0000/$0001 (the same port that is used for the bank switching logic in the C64). Most lines of the two interfaces use separate bits of that one 8-bit port, but ...


3

The Sinclair ZX81 had a single Uncommitted Logic Array (ULA) chip that controlled both the screen and the cassette port. Consequently, accessing the cassette (loading or saving) would cause stripes to appear on the screen. It also controlled the keyboard, causing the screen to flicker at each keypress, but the keyboard was built-in and so it doesn't count ...


3

Not exactly a parallel interface, but the TRS-80 (models 1, 3 and 4) had a memory mapped keyboard! 8 address lines were matrixed to 8 data lines by the keys (and some diodes). The keyboard scan routine would start by looking at 0x38FF and if it got back 0x00 then no keys were pressed. If non-zero it would check 0x3801, 0x3802, 0x3804, up to 0x3880 and check ...


3

The Commodore 64 used a single CIA for both the keyboard and joystick (or paddles). This made reading both the keyboard and the joystick at the same time a bit of challenge, see this answer for details (complete with schematics). As for an explanation of "why", I guess the answer is always "to save parts and make it cheaper".


Only top voted, non community-wiki answers of a minimum length are eligible