Questions tagged [8080]

For questions about the Intel 8080 8-bit microprocessor

Filter by
Sorted by
Tagged with
3 votes
0 answers
479 views

Was the Game Boy CPU a completely new layout?

As explained on the Wikipedia Game Boy article and Is the Game Boy Sharp LR35902 object-compatible with the 8080/Z-80?, the Game Boy used a custom CPU that was fairly close to being a superset of the ...
rwallace's user avatar
  • 58.4k
12 votes
1 answer
450 views

Long Term Prevalence of 8080 Code Over Z80 Code in Software Packages

TL;DR: The Z80 was introduced not long after the 8080 and replaced it quickly and almost entirely for personal computing. Still, a large chunk of new software written stayed with 8080 code, making no ...
Raffzahn's user avatar
  • 213k
8 votes
2 answers
555 views

Is there any known magic number signature for CP/M-80 program files?

I'm looking for a way to identify CP/M-80 (i.e. 8080 code) program files (.COM) from their content. A process usually known as Magic Number or File Signature detection, intended to identify a file by ...
Raffzahn's user avatar
  • 213k
21 votes
3 answers
3k views

Anyone up for decompiling some 8080 code for Kaleidoscope?

I came across a series of blog posts about Kaleidoscope, a demo program for the Cromemco Dazzler graphics card. The series implements an emulator for the system so that it could run this code again, ...
Maury Markowitz's user avatar
15 votes
3 answers
2k views

Running CP/M on my own Intel 8080 emulator

I recently finished writing an emulator for the Intel 8080, having passed all of the usual test suites, and wanted to try running an actual OS on it (such as CP/M). I'm aware that I would have to ...
linguisician's user avatar
26 votes
3 answers
4k views

Why are the Intel 8080's rotate instructions called opposite to intuition?

The Intel 8080 has two pairs of instructions for rotating the value of the accumulator -- RLC/RRC and RAL/RAR. One of them shifts the 8 bits in the accumulator circularly, writing out into the carry ...
Danya02's user avatar
  • 363
17 votes
2 answers
678 views

Why did the 8080's PUSH PSW write one reserved bit as 1 and the other two as 0?

The x86 "flags" register, which holds condition codes and other processor status bits, has several reserved bits with fixed values, but these fixed values are not all the same. In ...
zwol's user avatar
  • 449
1 vote
1 answer
263 views

Game assembled using RGBDS can't access cartridge RAM

Any writes I do to cartridge RAM on my test game assembled with RGBDS are silently ignored. I wanted to move the stack pointer to cartridge RAM to have more room in high ram to use as a scratchpad, ...
puppydrum64's user avatar
  • 1,638
32 votes
2 answers
4k views

Why did the Z80 break 8080 compatibility?

Although the Z80 is nearly fully backward compatible with the Intel 8080, there are minor differences such as the Z80 handling the parity flag differently with certain operations. Why? Would providing ...
Paolo Amoroso's user avatar
1 vote
1 answer
337 views

Can the window only be moved once per frame on the Game Boy?

I wanted to cover the top part of the screen to use as a status bar for a game. My idea was to use the Game Boy's window feature to do so. But I ran into a problem: The window's size is fixed to be ...
puppydrum64's user avatar
  • 1,638
1 vote
0 answers
117 views

Getting a loading seam to work with 2x2 metatiles

I'm working on a prototype for a scrolling loading seam similar to Pokemon where the screen scrolls incrementally by 8 pixels with each direction button press, and new tile graphics are drawn off the ...
puppydrum64's user avatar
  • 1,638
4 votes
0 answers
325 views

Game Boy interrupt handler crashes unless I jump to it indirectly

I have an interrupt handler I created, which is meant to reduce the overhead of interrupts as much as possible. Setting up the interrupt handler is done while interrupts are disabled, of course. It ...
puppydrum64's user avatar
  • 1,638
5 votes
1 answer
336 views

Can I use cartridge RAM for the stack pointer?

My understanding is that the extra cartridge RAM banks at &A000-&BFFF are battery-backed SRAM that is preserved after powering off the game. If I'm making a simple game that doesn't have a ...
puppydrum64's user avatar
  • 1,638
19 votes
3 answers
5k views

How does this 8080 code perform division with remainder?

Empirically, I've found that this routine (i8080) divides value from E by B and returns the result in D and E (result and remainder of division). divide_by_12_with_rest: MVI C, 9 ; @1 MOV A, D ; @...
DraganS's user avatar
  • 333
4 votes
2 answers
307 views

Looking for NEC RA87 “Relocatable Assembler Package”

I admit, I am pushing my personal envelope (punching above my weight, beyond my pay-grade etc. etc.) on the trailing edge of technology. So please be kind! I would like to write new firmware for a NEC ...
Birdman's user avatar
  • 41
21 votes
3 answers
3k views

Z80 to x86 asm translator?

8086 is source code compatible with 8080. Zilog Z80 extended Intel 8080 with: An enhanced instruction set including bit manipulation, block move, block I/O, and byte search instructions New IX and IY ...
Schezuk's user avatar
  • 3,732
18 votes
6 answers
4k views

Are there other examples of CPU architectures mostly compatible with Intel 8080 other than Z80?

When the Zilog Z80 was released, it was marketed as being mostly ISA compatible with Intel 8080, while also providing enhanced features. Likewise, the CPU of the Nintendo Game Boy is a custom ...
nitro2k01's user avatar
  • 706
8 votes
1 answer
501 views

Why was the Altair numbered "8800" even though the processor was an 8080?

The Altair 8800 was a computer using the Intel 8080 processor. Why the difference in numbers?
DrSheldon's user avatar
  • 15.8k
12 votes
2 answers
2k views

How did the Altair ensure that the −5 V supply was the first connected and last disconnected?

The Wikipedia page for the Intel 8080 processor describes pin 11 as The −5 V power supply. This must be the first power source connected and the last disconnected, otherwise the processor will be ...
DrSheldon's user avatar
  • 15.8k
0 votes
2 answers
330 views

Vector-06C Soviet home PC schematics

Looking for Vector-06C schematics in any form.
ayc's user avatar
  • 35
9 votes
1 answer
168 views

Compucolor 2 emulator CCEmu's `.ccvf` disk format

This Compucolor 2 emulator uses disk images with the file extension .ccvf. Here is an example file. I would like to understand how to interpret that format. I understand from the documentation that ...
Cactus's user avatar
  • 2,642
12 votes
1 answer
536 views

Ratio of code density between 8080 and Z80

The Z80 was (except for a handful of tiny incompatibilities) a superset of the 8080, adding a number of new instructions as well as the alternate register set. It seems therefore that it must have at ...
rwallace's user avatar
  • 58.4k
13 votes
1 answer
1k views

When did the Altair move ROM to the top of memory?

The 8080 starts running code at location 0 on reset. The natural layout of memory on a computer using that CPU is therefore ROM at the bottom of the memory map and RAM at the top. CP/M demands the ...
rwallace's user avatar
  • 58.4k
6 votes
3 answers
1k views

Does the 8080 always handle unaligned access correctly?

The 8080 is referred to as an 8-bit CPU because it has an 8-bit data bus, but there are a number of cases where it must perform 16-bit memory access, for example when reading or writing a 16-bit ...
rwallace's user avatar
  • 58.4k
2 votes
1 answer
267 views

READY / WAIT when reading from / writing to IO ports

During the execution of an IN or OUT instruction (so after the opcode and its single-byte argument have been fetched from memory), how does the Intel 8080 react to its READY pin going down? Is it ...
Cactus's user avatar
  • 2,642
12 votes
10 answers
3k views

Were there any bitmap-based 8080 computers?

Does anyone know of any bitmap-based 8080/8085 (or, failing that, Z80) computers? Background: In the late 70s and early 80s, there were a few hobby computers with bitmapped displays. For example, the ...
tobiasvl's user avatar
  • 1,459
2 votes
1 answer
269 views

Peripherals needed to run Tiny BASIC interactively on an Intel 8080

I have an Intel 8080 core and would like to build the minimal computer system around it to run Tiny BASIC interactively. I am building this computer on an FPGA, so I am not asking about actual ...
Cactus's user avatar
  • 2,642
2 votes
1 answer
371 views

Execution time for conditional jumps on the Intel 8080

On the Intel 8080, all conditional instructions have varying execution time depending on whether the condition is true or not, except conditional jumps. Why is this? The Intel 8085 changes this; there,...
tobiasvl's user avatar
  • 1,459
2 votes
1 answer
692 views

Auxiliary Carry and the Intel 8080's logical instructions

I'm trying to figure out how the Auxiliary Carry flag on the 8080 is affected by logical instructions. Reading the Intel 8080 manual, it seems that logical instructions do not affect AC: The ...
tobiasvl's user avatar
  • 1,459
22 votes
2 answers
2k views

Will disassembling an 8080 program as Z80 code work?

The Z80 is "binary compatible" with the 8080. It adds a bunch of new instructions, but places them all in unused (well, undocumented) opcodes. Does this mean that if I disassemble an 8080 program (...
tobiasvl's user avatar
  • 1,459
13 votes
4 answers
4k views

In the Intel 8080, where does the "Stack" start?

Having trouble trying to search for this in the data sheet, just have seen how big it is and how it handles stack pointers. Would anyone mind helping me out where the "Stack" start on an Intel 8080?
Ssweet-disposition's user avatar
20 votes
4 answers
4k views

How did integer multiplication work in 8-bit BASIC without CPU support

I've recently been teaching my 11 year old binary multiplication, which is on the UK maths syllabus at secondary school. We have used long multiplication, eg shift and add. This has made me wonder ...
Mark Williams's user avatar
22 votes
6 answers
7k views

Why did the Z80 with 4-bit ALU out-perform the fully 8-bit Intel 8080?

Looking at the development and architecture of the Z80, it appears to be a scaled-down, cost-reduced (in terms of total system cost), clone of the Intel 8080. It only used a 4-bit ALU. I assume this ...
Brian H's user avatar
  • 60.1k
27 votes
4 answers
9k views

8080 vs. 8086 - Are 16 Bit CPUs bloaty by nature?

In comments to a parallel question (Why was IBM BASIC so Huge?) one point discussed is code density of 8 vs. 16 bit CPUs. Some assumptions were that 16-bit must be more bloaty due to its need for an ...
Raffzahn's user avatar
  • 213k
12 votes
1 answer
2k views

The behavior of the auxiliary carry flag in subtraction on Intel 8080

Does SUB B on Intel 8080 set the auxiliary carry flag when the accumulator and the B register are 1 and 0, respectively? On Z80, which was designed to be a backward-compatible, albeit not fully, ...
user5583413's user avatar
20 votes
3 answers
4k views

Bit one of the Intel 8080's Flags register

Did bit one of the Intel 8080's Flags register, the bit between the carry and parity flags, get set to one on startup? If so what was the reason for this, and was this inherited from the 8008 Flags ...
Single Malt's user avatar
  • 1,829
11 votes
3 answers
891 views

What are examples of providing non-RST instructions for 8080 interrupts?

When a peripheral in an 8080 system generates an interrupt request and the 8080 acknowledges the interrupt, the peripheral is expected to put an instruction opcode on the data bus which the 8080 will ...
cjs's user avatar
  • 24.6k
14 votes
1 answer
1k views

Why is the original Altair BASIC (for the 8080 CPU) source code not available on-line?

As described by The Register in 2001, around 1987 journalists and others started asking Bill Gates for a copy of the source code for the original version of Altair (eventually Micro-Soft) BASIC, ...
cjs's user avatar
  • 24.6k
15 votes
2 answers
6k views

Is the Game Boy Sharp LR35902 object-compatible with the 8080/Z-80?

(Note: by "object-compatible" I mean that the opcodes and their following operands are the same—the assembler produces the same output for equivalant assembler mnemonics. This of course ...
cjs's user avatar
  • 24.6k
9 votes
3 answers
4k views

How does Game Boy / Sharp LR35902 HRAM work?

The Nintendo Game Boy has RAM called "HRAM" (meaning "high ram") decoded at locations $ff80 through $fffe. (All other decoded locations in the $ffxx page appear to be I/O device and system control ...
cjs's user avatar
  • 24.6k
21 votes
9 answers
6k views

Intel 8080-based home computers

I'd like to build an FPGA replica of a home computer based on the Intel 8080. I am not looking to design my own computer, since I would like to tap into an existing software base. Were there any ...
Cactus's user avatar
  • 2,642
25 votes
2 answers
3k views

Details of video memory access arbitration in Space Invaders

I am working on an FPGA implementation of the original Space Invaders arcade machine and I'd like to implement access arbitration between the CPU and the video system. I can imagine several ways of ...
Cactus's user avatar
  • 2,642
5 votes
3 answers
1k views

Can someone explain this algorithm used to compute the auxiliary carry flag?

I'm debugging my 8080 emulator and I've gone the route of comparing it to the output of another tested emulator to see where I went wrong. When calculating the auxiliary carry flag, I used this ...
dav's user avatar
  • 1,049
39 votes
1 answer
6k views

Fixing obscure 8080 emulator bug?

I'm using cpudiag.bin from http://www.emulator101.com/files/cpudiag.bin to test my emulator. I've already implemented the CP/M CALL function at 0x05, offset the program at 0x100 and fixed the offset ...
dav's user avatar
  • 1,049
14 votes
4 answers
3k views

Why do the i8080 I/O instructions take a byte-sized operand to determine the port?

I thought the i8080 had 8 16-bit IN ports and 8 16-bit OUT ports. Doesn't that mean the instructions IN d8 ; only index 0-7? OUT d8 can only take 8 possible values? What would it be indexing ...
dav's user avatar
  • 1,049
1 vote
1 answer
1k views

Where can I find and download emulator of Altair 8800 with Intel 8080 processor for Windows?

I would like to look back to the very beginning of personal computer when Paul Allen and Bill Gates started their debut. So I need to find an emulator of the MIT Altair 8800 with Intel 8080 processor ...
AirCraft Lover's user avatar
5 votes
2 answers
1k views

Test emulated 8080 CPU without an OS?

I've found a few 8080 CPU test suites available, but they all assume CP/M or a similar OS is already present and running - they call BDOS for I/O, etc. I'm working towards being able to run CP/M on my ...
Charles Mangin's user avatar
10 votes
3 answers
4k views

Comparing Signed Numbers on Z80 (8080) in Assembly

How do you compare two signed numbers in Z80 assembly? According to this site, To compare stuff, simply do a CP, and if the zero flag is set [then] the argument[s] were equal, else if the carry ...
Jet Blue's user avatar
  • 1,985
3 votes
3 answers
362 views

Did the original Intel peripherals use latches as input registers?

This is more a question to satisfy my curiosity. When looking at the original timing diagrams for reading and writing (e.g. for the 8255 and the 8250), these signals are never expressed in function ...
chthon's user avatar
  • 640
3 votes
1 answer
2k views

What is the difference between an 8080 and an 8051? [closed]

What are the features of the Intel 8051 architecture that allow it to successfully act as a microcontroller? Hypothetically can the general-purpose 8-bit architecture like Intel 8080 do everything the ...
Jet Blue's user avatar
  • 1,985