Fit ENHDEBUG in /disks/pc/tools/misc on a 360Kb disk, using: diskdump --path="enhdebug/archive/DEBUG.COM;DEBUG.TXT;README.TXT;HISTORY.TXT;LICENSE" --label=ENHDEBUG --output=enhdebug/ENHDEBUG.json --format=json --overwrite --manifest
This commit is contained in:
parent
69c6c074f9
commit
80879eb7af
4 changed files with 15 additions and 28 deletions
|
|
@ -1,11 +1,11 @@
|
|||
---
|
||||
layout: post
|
||||
title: The Intel 8080 CPU
|
||||
title: Introducing the Intel 8080 CPU
|
||||
date: 2016-04-30 14:00:00
|
||||
permalink: /blog/2016/04/30/
|
||||
---
|
||||
|
||||
We'd like to introduce [PC8080](/modules/pc8080/), a new 8080-based machine emulator recently added to the
|
||||
Or rather, introducing [PC8080](/modules/pc8080/), a new 8080-based machine emulator recently added to the
|
||||
PCjs Project.
|
||||
|
||||
Our first [8080 Test Machine](/devices/pc8080/machine/test/) loads a copy of the
|
||||
|
|
@ -20,11 +20,11 @@ The good news: PC8080 passes all the 8080 Exerciser tests. And it doesn't do it
|
|||
Like all the other CPU emulations in the PCjs Project, PC8080 never "calculates" the flags unless/until they are
|
||||
actually required, which considerably speeds up arithmetic operations.
|
||||
|
||||
Of particular note are the 8080's subtract,
|
||||
compare, and decrement operations, which actually perform addition, not subtraction, by using two's complement
|
||||
arithmetic in "stages": the first stage (inverting the source operand) occurs *before* the addition, while the second
|
||||
stage (incrementing the inverted operand) occurs *after* the addition. And it appears to be the result of the *first*
|
||||
stage, not the second, that determines the state of the Auxiliary Carry flag (AF).
|
||||
Of particular note are the 8080's subtract, compare, and decrement operations, which actually perform addition,
|
||||
not subtraction, by using two's complement arithmetic in "stages": the first stage (inverting the source operand)
|
||||
occurs *before* the addition, and the second stage (incrementing the inverted operand) occurs *after* the addition.
|
||||
And it appears to be the result of the *first* stage, not the second, that determines the state of the Auxiliary
|
||||
Carry flag (AF).
|
||||
|
||||
The behavior of the Auxiliary Carry flag (AF) and the associated DAA instruction are probably the most significant
|
||||
(and least understood) *arithmetic* differences between the 8080 and all later x86-based CPUs. Well, there's also
|
||||
|
|
|
|||
Loading…
Reference in a new issue