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
|
||||
|
|
|
|||
|
|
@ -26,11 +26,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 all 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, 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).
|
||||
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).
|
||||
|
||||
At 2Mhz, the 8080 Exerciser tests take quite a while, but you can click the speed button while the machine is running
|
||||
to increase the simulated speed; it will revert to 2Mhz when you exceed the maximum speed that your system supports.
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -3,25 +3,12 @@
|
|||
<manifest type="software">
|
||||
<title>Enhanced DEBUG</title>
|
||||
<source href="https://sites.google.com/site/pcdosretro/enhdebug">PC DOS Retro: Enhanced DEBUG for PC DOS and MS-DOS</source>
|
||||
<disk id="disk01" size="737280" chs="80:2:9" dir="enhdebug/archive" href="/disks/pc/tools/misc/enhdebug/ENHDEBUG.json" md5="20db782809660a284e917f7f06e556b5" md5json="5f851e282497996b403194c50c448999">
|
||||
<disk id="disk01" size="368640" chs="40:2:9" href="/disks/pc/tools/misc/enhdebug/ENHDEBUG.json" md5="8dd4cecc3fa560a7fca7debf066b6e09" md5json="bacd02b2bdfe2656c4371a5201d45cd7">
|
||||
<name>Enhanced DEBUG 1.32a</name>
|
||||
<file size="230198" time="2016-04-21 09:40:02" attr="0x20" md5="b7030251a5db56ea70445d5b618ed54b">DEBUG.ASM</file>
|
||||
<file size="20816" time="2016-04-21 09:40:04" attr="0x20" md5="0b9614b461b8287e536bf77bf7e26329">DEBUG.COM</file>
|
||||
<file size="27998" time="2016-04-12 11:44:02" attr="0x20" md5="42dca823821dc915dd94abedc5f19c65">DEBUG.TXT</file>
|
||||
<file size="51176" time="2016-03-11 19:27:38" attr="0x20" md5="92522064c892fbce579f435c53858210">DEBUGTBL.INC</file>
|
||||
<file size="26198" time="2016-04-21 09:40:04" attr="0x20" md5="98e9b7fec9e2b5c736fd558114c312db">DEBUGX.COM</file>
|
||||
<file size="3130" time="2016-04-14 09:05:22" attr="0x20" md5="e83d1a16dfabe5ff5b5d1c287ba87362">DPMICL32.ASM</file>
|
||||
<file size="863" time="2016-04-14 09:05:24" attr="0x20" md5="9e2a390bc4275e251dd85adfa05eb309">DPMICL32.EXE</file>
|
||||
<file size="7908" time="2014-11-28 14:28:56" attr="0x20" md5="e082a5153ffa32bd99502bd72fa3d892">FPTOSTR.INC</file>
|
||||
<file size="18800" time="2016-04-21 09:41:42" attr="0x20" md5="b487ba737d363a2d103698a215bfcbc1">HISTORY.TXT</file>
|
||||
<file size="5740" time="2014-03-10 11:09:28" attr="0x20" md5="f72698d37aeb8d9d02e3f85f83b9eaa8">INSTR.KEY</file>
|
||||
<file size="576" time="2014-01-25 10:59:50" attr="0x20" md5="f5d0dba9006b655d481f49f875a0bcf3">INSTR.ORD</file>
|
||||
<file size="9309" time="2016-03-11 19:21:56" attr="0x20" md5="52286ecd1118ce06a9b745b09b8632a3">INSTR.SET</file>
|
||||
<file size="35141" time="2016-04-03 13:52:33" attr="0x20" md5="84dcc94da3adb52b53ae4fa38fe49e5d">LICENSE</file>
|
||||
<file size="1320" time="2014-02-04 19:26:56" attr="0x20" md5="4fbdcf8dac8140c70df90b440fa6fb1b">MAKE.BAT</file>
|
||||
<file size="335" time="2014-01-20 14:34:58" attr="0x20" md5="cec3c20285c5adae18a601d6a339ec2a">MAKEC.BAT</file>
|
||||
<file size="31542" time="2014-02-26 13:50:00" attr="0x20" md5="adbf4961a3e4ab7c8c4646e003cbb08b">MKTABLES.C</file>
|
||||
<file size="7118" time="2016-04-15 21:44:30" attr="0x20" md5="1591e603c2b4587ff0f9e26e66448907">README.TXT</file>
|
||||
<file size="48" time="2016-04-03 13:52:33" attr="0x20" md5="3d312a3c98b11e32ec8293b2095fae02">README.MD</file>
|
||||
<file size="18800" time="2016-04-21 09:41:42" attr="0x20" md5="b487ba737d363a2d103698a215bfcbc1">HISTORY.TXT</file>
|
||||
<file size="35141" time="2016-04-03 13:52:33" attr="0x20" md5="84dcc94da3adb52b53ae4fa38fe49e5d">LICENSE</file>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
Loading…
Reference in a new issue