Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

VMS is like a nightmare about RXS-11M.


devel / comp.os.cpm / Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

SubjectAuthor
* Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,Mretrogear
+* Bug or oversight in Digital Research 8080 assemblers with invalidDouglas Miller
|+* Bug or oversight in Digital Research 8080 assemblers with invalidretrogear
||`* Bug or oversight in Digital Research 8080 assemblers with invalidDouglas Miller
|| `* Bug or oversight in Digital Research 8080 assemblers with invalidMark Ogden
||  +- Bug or oversight in Digital Research 8080 assemblers with invalidMark Ogden
||  `* Bug or oversight in Digital Research 8080 assemblers with invalidDouglas Miller
||   `* Bug or oversight in Digital Research 8080 assemblers with invalidretrogear
||    `* Bug or oversight in Digital Research 8080 assemblers with invalidDouglas Miller
||     `* Bug or oversight in Digital Research 8080 assemblers with invaliddxf
||      `* Bug or oversight in Digital Research 8080 assemblers with invalidfridtjof.ma...@gmail.com
||       `- Bug or oversight in Digital Research 8080 assemblers with invalidMark Ogden
|`* Bug or oversight in Digital Research 8080 assemblers with invaliddxf
| `* Bug or oversight in Digital Research 8080 assemblers with invalidDouglas Miller
|  `* Bug or oversight in Digital Research 8080 assemblers with invaliddxf
|   `- Bug or oversight in Digital Research 8080 assemblers with invalidDouglas Miller
`- Bug or oversight in Digital Research 8080 assemblers with invalidUdo Munk

1
Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5128&group=comp.os.cpm#5128

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:ac8:4a0d:0:b0:41c:bedf:a558 with SMTP id x13-20020ac84a0d000000b0041cbedfa558mr82604qtq.11.1697894615449;
Sat, 21 Oct 2023 06:23:35 -0700 (PDT)
X-Received: by 2002:a05:6870:a714:b0:1ea:85b:62a3 with SMTP id
g20-20020a056870a71400b001ea085b62a3mr2013862oam.1.1697894615212; Sat, 21 Oct
2023 06:23:35 -0700 (PDT)
Path: i2pn2.org!i2pn.org!news.1d4.us!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 21 Oct 2023 06:23:34 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=70.35.107.205; posting-account=jKERDgoAAAC7gLN5mRA-DQeBq0YlQi-t
NNTP-Posting-Host: 70.35.107.205
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
Subject: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M
From: larrygr510@gmail.com (retrogear)
Injection-Date: Sat, 21 Oct 2023 13:23:35 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1415
 by: retrogear - Sat, 21 Oct 2023 13:23 UTC

This may have been documented before but with assembling MOV M,M with assemblers ASM or MAC, debuggers DDT or SID produces the 76h HLT opcode with no error reported. I just discovered this today for myself. Has anyone else heard of this ? Apparently MOV M,M is not valid even though moving other registers upon themselves is valid ?

Larry G

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5129&group=comp.os.cpm#5129

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:6214:b81:b0:655:bc95:943d with SMTP id fe1-20020a0562140b8100b00655bc95943dmr190355qvb.4.1697897132190;
Sat, 21 Oct 2023 07:05:32 -0700 (PDT)
X-Received: by 2002:a05:6871:5211:b0:1dd:39ce:e25c with SMTP id
ht17-20020a056871521100b001dd39cee25cmr2207925oac.3.1697897131916; Sat, 21
Oct 2023 07:05:31 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 21 Oct 2023 07:05:31 -0700 (PDT)
In-Reply-To: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=96.42.194.246; posting-account=5XW4vgoAAADMD8xScYja8bdzAXoYQrTS
NNTP-Posting-Host: 96.42.194.246
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: durgadas311@gmail.com (Douglas Miller)
Injection-Date: Sat, 21 Oct 2023 14:05:32 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Douglas Miller - Sat, 21 Oct 2023 14:05 UTC

On Saturday, October 21, 2023 at 8:23:36 AM UTC-5, retrogear wrote:
> This may have been documented before but with assembling MOV M,M with assemblers ASM or MAC, debuggers DDT or SID produces the 76h HLT opcode with no error reported. I just discovered this today for myself. Has anyone else heard of this ? Apparently MOV M,M is not valid even though moving other registers upon themselves is valid ?
>
> Larry G

This is not surprising, it is just something everyone knew back then (that HLT was the same as the MOV M,M instruction).

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5130&group=comp.os.cpm#5130

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:ac8:524c:0:b0:41c:c474:5e5 with SMTP id y12-20020ac8524c000000b0041cc47405e5mr88099qtn.6.1697902719461;
Sat, 21 Oct 2023 08:38:39 -0700 (PDT)
X-Received: by 2002:a05:6870:724b:b0:1e9:ade8:7417 with SMTP id
y11-20020a056870724b00b001e9ade87417mr2098380oaf.8.1697902719237; Sat, 21 Oct
2023 08:38:39 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 21 Oct 2023 08:38:38 -0700 (PDT)
In-Reply-To: <5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=70.35.107.205; posting-account=jKERDgoAAAC7gLN5mRA-DQeBq0YlQi-t
NNTP-Posting-Host: 70.35.107.205
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com> <5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: larrygr510@gmail.com (retrogear)
Injection-Date: Sat, 21 Oct 2023 15:38:39 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1973
 by: retrogear - Sat, 21 Oct 2023 15:38 UTC

However, the TDL assembler flags it.

TDL Z80 CP/M DISK ASSEMBLER VERSION 2.21 PAGE 1
MOVM -

0100 .LOC 0100H
.IDENT MOVM

; there is no MOV M,M
; register R evaluates as follows:
; B=0 C=1 D=2 E=3 H=4 L=5 M=6 A=7

0100 77 MOV M,A
0101 70 MOV M,B
0102 71 MOV M,C
0103 72 MOV M,D
0104 73 MOV M,E
0105 74 MOV M,H
0106 75 MOV M,L
A 0107 76 MOV M,M?

.END

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5131&group=comp.os.cpm#5131

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:620a:8d09:b0:775:80a7:a1bb with SMTP id rb9-20020a05620a8d0900b0077580a7a1bbmr80574qkn.8.1697916835652;
Sat, 21 Oct 2023 12:33:55 -0700 (PDT)
X-Received: by 2002:a05:6870:6590:b0:1e9:9250:aa41 with SMTP id
fp16-20020a056870659000b001e99250aa41mr2524571oab.1.1697916835424; Sat, 21
Oct 2023 12:33:55 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 21 Oct 2023 12:33:54 -0700 (PDT)
In-Reply-To: <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=96.42.194.246; posting-account=5XW4vgoAAADMD8xScYja8bdzAXoYQrTS
NNTP-Posting-Host: 96.42.194.246
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: durgadas311@gmail.com (Douglas Miller)
Injection-Date: Sat, 21 Oct 2023 19:33:55 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2209
 by: Douglas Miller - Sat, 21 Oct 2023 19:33 UTC

On Saturday, October 21, 2023 at 10:38:40 AM UTC-5, retrogear wrote:
> However, the TDL assembler flags it.
>
> TDL Z80 CP/M DISK ASSEMBLER VERSION 2.21 PAGE 1
> MOVM -
>
>
>
> 0100 .LOC 0100H
> .IDENT MOVM
>
> ; there is no MOV M,M
> ; register R evaluates as follows:
> ; B=0 C=1 D=2 E=3 H=4 L=5 M=6 A=7
>
> 0100 77 MOV M,A
> 0101 70 MOV M,B
> 0102 71 MOV M,C
> 0103 72 MOV M,D
> 0104 73 MOV M,E
> 0105 74 MOV M,H
> 0106 75 MOV M,L
> A 0107 76 MOV M,M?
>
> .END

M80 also complains about MOV M,M, but produces valid output files anyway.

DRI tools do less checking. But both (M80 and DRI tools) have some much more egregious lapses, such as turning "MVI A,B" into "MVI A,0" and "MOV A,0" into "MOV A,B". Those occur without any messages at all.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<618c7fbc-b037-4dcc-9f54-6e557fc777ddn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5132&group=comp.os.cpm#5132

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:ae9:e00d:0:b0:774:2ad1:b816 with SMTP id m13-20020ae9e00d000000b007742ad1b816mr110567qkk.4.1697933756481;
Sat, 21 Oct 2023 17:15:56 -0700 (PDT)
X-Received: by 2002:a05:6871:5207:b0:1e5:bc65:26f2 with SMTP id
ht7-20020a056871520700b001e5bc6526f2mr2762623oac.3.1697933756233; Sat, 21 Oct
2023 17:15:56 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 21 Oct 2023 17:15:55 -0700 (PDT)
In-Reply-To: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=87.122.2.197; posting-account=RHtB3AoAAABZlu_FJY7ySUmJrtfW41bO
NNTP-Posting-Host: 87.122.2.197
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <618c7fbc-b037-4dcc-9f54-6e557fc777ddn@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: udo.munk@freenet.de (Udo Munk)
Injection-Date: Sun, 22 Oct 2023 00:15:56 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1379
 by: Udo Munk - Sun, 22 Oct 2023 00:15 UTC

retrogear schrieb am Samstag, 21. Oktober 2023 um 15:23:36 UTC+2:
> Apparently MOV M,M is not valid even though moving other registers upon themselves is valid ?

This would need a 2 address machine, which it isn't.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<uh1t5v$22fpo$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5133&group=comp.os.cpm#5133

  copy link   Newsgroups: comp.os.cpm
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: dxforth@gmail.com (dxf)
Newsgroups: comp.os.cpm
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
Date: Sun, 22 Oct 2023 12:16:47 +1100
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <uh1t5v$22fpo$1@dont-email.me>
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 22 Oct 2023 01:16:47 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="f9a006d57f98afd454e0275799472a28";
logging-data="2178872"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/UXh7zkmEMVkoC19c7uea9"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:m4P5pkSDFmuzeKLPjb30l4dDvhk=
Content-Language: en-GB
In-Reply-To: <5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com>
 by: dxf - Sun, 22 Oct 2023 01:16 UTC

On 22/10/2023 1:05 am, Douglas Miller wrote:
> On Saturday, October 21, 2023 at 8:23:36 AM UTC-5, retrogear wrote:
>> This may have been documented before but with assembling MOV M,M with assemblers ASM or MAC, debuggers DDT or SID produces the 76h HLT opcode with no error reported. I just discovered this today for myself. Has anyone else heard of this ? Apparently MOV M,M is not valid even though moving other registers upon themselves is valid ?
>>
>> Larry G
>
> This is not surprising, it is just something everyone knew back then (that HLT was the same as the MOV M,M instruction).

Only to those who tried it. That MOV M,M results in HLT is either very significant
- or about as meaningful as an image seen in a toasted cheese sandwich.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<da4a539c-3b3e-4f4c-9886-8867b7e30495n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5134&group=comp.os.cpm#5134

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:620a:31a0:b0:76d:be21:5074 with SMTP id bi32-20020a05620a31a000b0076dbe215074mr125909qkb.7.1697942145507;
Sat, 21 Oct 2023 19:35:45 -0700 (PDT)
X-Received: by 2002:a05:6870:e6d4:b0:1dd:7381:e05 with SMTP id
s20-20020a056870e6d400b001dd73810e05mr2642580oak.3.1697942145275; Sat, 21 Oct
2023 19:35:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 21 Oct 2023 19:35:44 -0700 (PDT)
In-Reply-To: <uh1t5v$22fpo$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=96.42.194.246; posting-account=5XW4vgoAAADMD8xScYja8bdzAXoYQrTS
NNTP-Posting-Host: 96.42.194.246
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <uh1t5v$22fpo$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <da4a539c-3b3e-4f4c-9886-8867b7e30495n@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: durgadas311@gmail.com (Douglas Miller)
Injection-Date: Sun, 22 Oct 2023 02:35:45 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Douglas Miller - Sun, 22 Oct 2023 02:35 UTC

On Saturday, October 21, 2023 at 8:16:50 PM UTC-5, dxf wrote:
> On 22/10/2023 1:05 am, Douglas Miller wrote:
....
> >
> > This is not surprising, it is just something everyone knew back then (that HLT was the same as the MOV M,M instruction).
> Only to those who tried it. That MOV M,M results in HLT is either very significant
> - or about as meaningful as an image seen in a toasted cheese sandwich.

It was quite obvious to those that studied the instruction set, which most people had to do in order to program effectively in assembly. A quick look at the instruction table shows HLT in the position where MOV M,M would be. Just looking at the binary instruction coding made it clear. Intel simply used MOV M,M to mean HLT since it was a useless instruction otherwise. It may have even had some undesirable side-effects if left to the logic to actually try and do a MOV M,M, thereby protecting the CPU from lockup or some other problem.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<uh270s$27aoe$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5135&group=comp.os.cpm#5135

  copy link   Newsgroups: comp.os.cpm
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: dxforth@gmail.com (dxf)
Newsgroups: comp.os.cpm
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
Date: Sun, 22 Oct 2023 15:04:44 +1100
Organization: A noiseless patient Spider
Lines: 15
Message-ID: <uh270s$27aoe$1@dont-email.me>
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com>
<uh1t5v$22fpo$1@dont-email.me>
<da4a539c-3b3e-4f4c-9886-8867b7e30495n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 22 Oct 2023 04:04:44 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="f9a006d57f98afd454e0275799472a28";
logging-data="2337550"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/92Ui6KghsG8lg//y4x7CB"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:bWuPX8dUlElXZvyT+VcZOht+eSQ=
Content-Language: en-GB
In-Reply-To: <da4a539c-3b3e-4f4c-9886-8867b7e30495n@googlegroups.com>
 by: dxf - Sun, 22 Oct 2023 04:04 UTC

On 22/10/2023 1:35 pm, Douglas Miller wrote:
> On Saturday, October 21, 2023 at 8:16:50 PM UTC-5, dxf wrote:
>> On 22/10/2023 1:05 am, Douglas Miller wrote:
> ...
>>>
>>> This is not surprising, it is just something everyone knew back then (that HLT was the same as the MOV M,M instruction).
>> Only to those who tried it. That MOV M,M results in HLT is either very significant
>> - or about as meaningful as an image seen in a toasted cheese sandwich.
>
> It was quite obvious to those that studied the instruction set, which most people had to do in order to program effectively in assembly. A quick look at the instruction table shows HLT in the position where MOV M,M would be. Just looking at the binary instruction coding made it clear. Intel simply used MOV M,M to mean HLT since it was a useless instruction otherwise. It may have even had some undesirable side-effects if left to the logic to actually try and do a MOV M,M, thereby protecting the CPU from lockup or some other problem.

HLT needed to be assigned an opcode and 76h was available. The encoding for M is 6
- as is PSW or SP. None of these are regular registers. There's no reason to expect
MOV M,M to work any better than MOV M,PSW or MOV M,SP.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<f76e522b-8c81-4063-8fe3-81e90a97e5a9n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5136&group=comp.os.cpm#5136

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a0c:ed2d:0:b0:66c:ee08:f5da with SMTP id u13-20020a0ced2d000000b0066cee08f5damr111416qvq.6.1697952722731;
Sat, 21 Oct 2023 22:32:02 -0700 (PDT)
X-Received: by 2002:a05:6830:16c9:b0:6c4:7e6c:cb4e with SMTP id
l9-20020a05683016c900b006c47e6ccb4emr1715012otr.5.1697952722540; Sat, 21 Oct
2023 22:32:02 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sat, 21 Oct 2023 22:32:01 -0700 (PDT)
In-Reply-To: <uh270s$27aoe$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=96.42.194.246; posting-account=5XW4vgoAAADMD8xScYja8bdzAXoYQrTS
NNTP-Posting-Host: 96.42.194.246
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <uh1t5v$22fpo$1@dont-email.me>
<da4a539c-3b3e-4f4c-9886-8867b7e30495n@googlegroups.com> <uh270s$27aoe$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f76e522b-8c81-4063-8fe3-81e90a97e5a9n@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: durgadas311@gmail.com (Douglas Miller)
Injection-Date: Sun, 22 Oct 2023 05:32:02 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3370
 by: Douglas Miller - Sun, 22 Oct 2023 05:32 UTC

On Saturday, October 21, 2023 at 11:04:59 PM UTC-5, dxf wrote:
....
> HLT needed to be assigned an opcode and 76h was available. The encoding for M is 6
> - as is PSW or SP. None of these are regular registers. There's no reason to expect
> MOV M,M to work any better than MOV M,PSW or MOV M,SP.

There were other opcodes available on the 8080. The reason MOV M,M was chosen likely had to do with minimizing the total amount of logic needed to prevent MOV M,M from being executed and still implement HLT somewhere else. If MOV M,M was allowed to "fall through" the normal MOV instruction logic, it would (best case) have resulted in a 9 T-state instruction that served no purpose - if it would have worked at all. Depending on the internal logic of the CPU, it might have also been problematic to implement. So it seems logical that they would override only one instruction (MOV M,M) and implement HLT, rather than make MOV M,M work (cause no harm) and still implement HLT by overriding some other opcode. Keep in mind that the unused opcodes still activate internal logic, but it would be desirable for them to be as benign as possible. Of course, this is just a theory of their motivations. If one wanted to study the internal logic diagrams of the CPU, it would probably be clearer why MOV M,M was chosen for HLT. Also keep in mind that there was not an excessive amount of free space on the 8080 - they already had to offload much to the other two chips of the set.

Also consider that the instruction decode logic was (had to be) simple. if the high two bits of the instruction are "01", then the MOV logic is activated. The rest would be just mechanical interpretation of the source and destination operands as B,C,D,E,H,L,M, or A. So, opcode 76H (octal 166) could not have meant anything other than MOV M,M (unless the decoding was overridden to implement something else entirely, such as was done for HLT).

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5137&group=comp.os.cpm#5137

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:ac8:524c:0:b0:41c:c474:5e5 with SMTP id y12-20020ac8524c000000b0041cc47405e5mr113783qtn.6.1697973907742;
Sun, 22 Oct 2023 04:25:07 -0700 (PDT)
X-Received: by 2002:a05:6808:350f:b0:3a7:86b2:1950 with SMTP id
cn15-20020a056808350f00b003a786b21950mr2159759oib.0.1697973907507; Sun, 22
Oct 2023 04:25:07 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sun, 22 Oct 2023 04:25:06 -0700 (PDT)
In-Reply-To: <2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a00:23c8:4e06:7501:a4c1:6ec5:445d:6eaf;
posting-account=7LAplAoAAAByKIXUc8acNTC_dUp06kdO
NNTP-Posting-Host: 2a00:23c8:4e06:7501:a4c1:6ec5:445d:6eaf
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: ogdenpm@gmail.com (Mark Ogden)
Injection-Date: Sun, 22 Oct 2023 11:25:07 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Mark Ogden - Sun, 22 Oct 2023 11:25 UTC

On Saturday, 21 October 2023 at 20:33:56 UTC+1, Douglas Miller wrote:
> On Saturday, October 21, 2023 at 10:38:40 AM UTC-5, retrogear wrote:
> > However, the TDL assembler flags it.
> >
> > TDL Z80 CP/M DISK ASSEMBLER VERSION 2.21 PAGE 1
> > MOVM -
> >
> >
> >
> > 0100 .LOC 0100H
> > .IDENT MOVM
> >
> > ; there is no MOV M,M
> > ; register R evaluates as follows:
> > ; B=0 C=1 D=2 E=3 H=4 L=5 M=6 A=7
> >
> > 0100 77 MOV M,A
> > 0101 70 MOV M,B
> > 0102 71 MOV M,C
> > 0103 72 MOV M,D
> > 0104 73 MOV M,E
> > 0105 74 MOV M,H
> > 0106 75 MOV M,L
> > A 0107 76 MOV M,M?
> >
> > .END
> M80 also complains about MOV M,M, but produces valid output files anyway.
>
> DRI tools do less checking. But both (M80 and DRI tools) have some much more egregious lapses, such as turning "MVI A,B" into "MVI A,0" and "MOV A,0" into "MOV A,B". Those occur without any messages at all.
It was not uncommon for assemblers of the period to treat registers as numbers, with B = 0. This would explain why the instructions you noted do not issue a warning. Although I haven't checked, I would
not be surprised if MOV 7,0 was also treated as MOV A,B.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<182a14fb-ce22-4a9e-ab8d-09141041a013n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5138&group=comp.os.cpm#5138

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:620a:891:b0:778:9b72:47ee with SMTP id b17-20020a05620a089100b007789b7247eemr99407qka.6.1697974570250;
Sun, 22 Oct 2023 04:36:10 -0700 (PDT)
X-Received: by 2002:a05:6808:2090:b0:3ae:21ca:9b7e with SMTP id
s16-20020a056808209000b003ae21ca9b7emr2683708oiw.2.1697974570067; Sun, 22 Oct
2023 04:36:10 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!nntp.club.cc.cmu.edu!45.76.7.193.MISMATCH!3.us.feeder.erje.net!feeder.erje.net!border-1.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sun, 22 Oct 2023 04:36:09 -0700 (PDT)
In-Reply-To: <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a00:23c8:4e06:7501:a4c1:6ec5:445d:6eaf;
posting-account=7LAplAoAAAByKIXUc8acNTC_dUp06kdO
NNTP-Posting-Host: 2a00:23c8:4e06:7501:a4c1:6ec5:445d:6eaf
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com> <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <182a14fb-ce22-4a9e-ab8d-09141041a013n@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: ogdenpm@gmail.com (Mark Ogden)
Injection-Date: Sun, 22 Oct 2023 11:36:10 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 41
 by: Mark Ogden - Sun, 22 Oct 2023 11:36 UTC

On Sunday, 22 October 2023 at 12:25:08 UTC+1, Mark Ogden wrote:
> On Saturday, 21 October 2023 at 20:33:56 UTC+1, Douglas Miller wrote:
> > On Saturday, October 21, 2023 at 10:38:40 AM UTC-5, retrogear wrote:
> > > However, the TDL assembler flags it.
> > >
> > > TDL Z80 CP/M DISK ASSEMBLER VERSION 2.21 PAGE 1
> > > MOVM -
> > >
> > >
> > >
> > > 0100 .LOC 0100H
> > > .IDENT MOVM
> > >
> > > ; there is no MOV M,M
> > > ; register R evaluates as follows:
> > > ; B=0 C=1 D=2 E=3 H=4 L=5 M=6 A=7
> > >
> > > 0100 77 MOV M,A
> > > 0101 70 MOV M,B
> > > 0102 71 MOV M,C
> > > 0103 72 MOV M,D
> > > 0104 73 MOV M,E
> > > 0105 74 MOV M,H
> > > 0106 75 MOV M,L
> > > A 0107 76 MOV M,M?
> > >
> > > .END
> > M80 also complains about MOV M,M, but produces valid output files anyway.
> >
> > DRI tools do less checking. But both (M80 and DRI tools) have some much more egregious lapses, such as turning "MVI A,B" into "MVI A,0" and "MOV A,0" into "MOV A,B". Those occur without any messages at all.
> It was not uncommon for assemblers of the period to treat registers as numbers, with B = 0. This would explain why the instructions you noted do not issue a warning. Although I haven't checked, I would
> not be surprised if MOV 7,0 was also treated as MOV A,B.
I have now confirmed MOV 7,0 works with M80 as I suspected and also note that M80 also supported opcodes as operands, so MVI A,CMA is equivalent to MVI A,2FH.
Mark

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<2655e0bd-61f7-4fa2-9b3b-e46f24a29a0en@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5139&group=comp.os.cpm#5139

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:ac8:51d5:0:b0:419:55b6:7589 with SMTP id d21-20020ac851d5000000b0041955b67589mr111146qtn.7.1697975982897;
Sun, 22 Oct 2023 04:59:42 -0700 (PDT)
X-Received: by 2002:a05:6871:3302:b0:1e9:a417:e8de with SMTP id
nf2-20020a056871330200b001e9a417e8demr3252174oac.4.1697975982660; Sun, 22 Oct
2023 04:59:42 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sun, 22 Oct 2023 04:59:42 -0700 (PDT)
In-Reply-To: <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=96.42.194.246; posting-account=5XW4vgoAAADMD8xScYja8bdzAXoYQrTS
NNTP-Posting-Host: 96.42.194.246
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com> <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2655e0bd-61f7-4fa2-9b3b-e46f24a29a0en@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: durgadas311@gmail.com (Douglas Miller)
Injection-Date: Sun, 22 Oct 2023 11:59:42 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1980
 by: Douglas Miller - Sun, 22 Oct 2023 11:59 UTC

On Sunday, October 22, 2023 at 6:25:08 AM UTC-5, Mark Ogden wrote:
> It was not uncommon for assemblers of the period to treat registers as numbers, with B = 0. This would explain why the instructions you noted do not issue a warning. Although I haven't checked, I would
> not be surprised if MOV 7,0 was also treated as MOV A,B.

DRI documentation actually states this. You also see in DRI source code that they rename registers in certain places, doing something like:

FOO EQU B
....
MVI FOO,123
....

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<763d276b-8f09-4bd0-a132-fdbb4fb9d8b4n@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5140&group=comp.os.cpm#5140

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:ad4:4b24:0:b0:66d:3d6:2cfd with SMTP id s4-20020ad44b24000000b0066d03d62cfdmr110124qvw.9.1697976598983;
Sun, 22 Oct 2023 05:09:58 -0700 (PDT)
X-Received: by 2002:a9d:7395:0:b0:6b9:620e:d6a7 with SMTP id
j21-20020a9d7395000000b006b9620ed6a7mr2135032otk.1.1697976598798; Sun, 22 Oct
2023 05:09:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sun, 22 Oct 2023 05:09:58 -0700 (PDT)
In-Reply-To: <2655e0bd-61f7-4fa2-9b3b-e46f24a29a0en@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=70.35.107.205; posting-account=jKERDgoAAAC7gLN5mRA-DQeBq0YlQi-t
NNTP-Posting-Host: 70.35.107.205
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com> <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
<2655e0bd-61f7-4fa2-9b3b-e46f24a29a0en@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <763d276b-8f09-4bd0-a132-fdbb4fb9d8b4n@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: larrygr510@gmail.com (retrogear)
Injection-Date: Sun, 22 Oct 2023 12:09:58 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1678
 by: retrogear - Sun, 22 Oct 2023 12:09 UTC

> Apparently MOV M,M is not valid even though moving other registers upon themselves is valid ?
>>This would need a 2 address machine, which it isn't.

Interesting, so a good place to halt rather than try something impossible.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<7c762bbc-19a3-4f4c-a24e-3e8b560b767fn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5141&group=comp.os.cpm#5141

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:ac8:7183:0:b0:41b:8268:d2c3 with SMTP id w3-20020ac87183000000b0041b8268d2c3mr119059qto.10.1697979176372;
Sun, 22 Oct 2023 05:52:56 -0700 (PDT)
X-Received: by 2002:a4a:3053:0:b0:581:ea7a:1903 with SMTP id
z19-20020a4a3053000000b00581ea7a1903mr2933816ooz.1.1697979176175; Sun, 22 Oct
2023 05:52:56 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Sun, 22 Oct 2023 05:52:55 -0700 (PDT)
In-Reply-To: <763d276b-8f09-4bd0-a132-fdbb4fb9d8b4n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=96.42.194.246; posting-account=5XW4vgoAAADMD8xScYja8bdzAXoYQrTS
NNTP-Posting-Host: 96.42.194.246
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com> <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
<2655e0bd-61f7-4fa2-9b3b-e46f24a29a0en@googlegroups.com> <763d276b-8f09-4bd0-a132-fdbb4fb9d8b4n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7c762bbc-19a3-4f4c-a24e-3e8b560b767fn@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: durgadas311@gmail.com (Douglas Miller)
Injection-Date: Sun, 22 Oct 2023 12:52:56 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3764
 by: Douglas Miller - Sun, 22 Oct 2023 12:52 UTC

On Sunday, October 22, 2023 at 7:10:00 AM UTC-5, retrogear wrote:
> > Apparently MOV M,M is not valid even though moving other registers upon themselves is valid ?
> >>This would need a 2 address machine, which it isn't.
> Interesting, so a good place to halt rather than try something impossible..

Actually, it's not impossible but just effectively a NOP, the same way MOV B,B etc are. What's impossible is to have MOV M,M move data from one location to another. Since "M" is defined as the memory location pointed to by HL, MOV M,M is the same type of instruction as MOV B,B (just taking more cycles). As I was hypothesizing, it may have been the case that Intel wanted to remove MOV M,M because of problems on the chip, or even just general dislike of such an expensive NOP, and since they had to override some opcode to get HLT anyway they might as well override MOV M,M and accomplish both goals.

Most of the 8080 instructions fall into opcode patterns which would translate into relatively simple decoding logic on the chip. But some instructions, such as HLT, that have no such pattern would require "more expensive" decoding logic. So if they had to add this logic for HLT, but also had reason to do something similar to protect programmers from MOV M,M, they may have opted to combine the two and save on decoding logic.

I worked for a company that was one of the first to use the 6800 CPUs, and the owner told of the early batches of (very expensive) 6800 CPUs that had a "hardware bug" where if you executed one of the undocumented opcodes it caused conflicting logic to be enabled which latched up the chip and resulted in thermal runaway and (literally) melted the chip. It was a pretty high price to pay for making a software error, and of course Motorola fixed it ASAP. But, the point being, these early CPUs were vulnerable to logic problems when "undocumented" opcodes were executed. Who can say whether a similar situation existed for the MOV M,M instruction, which could explain why it was overridden to implement HLT. Even if there was only uncertainty, it could have influenced the choice.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<uh4mr2$2sfnt$1@dont-email.me>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5142&group=comp.os.cpm#5142

  copy link   Newsgroups: comp.os.cpm
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: dxforth@gmail.com (dxf)
Newsgroups: comp.os.cpm
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
Date: Mon, 23 Oct 2023 13:46:58 +1100
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <uh4mr2$2sfnt$1@dont-email.me>
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com>
<f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com>
<b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
<2655e0bd-61f7-4fa2-9b3b-e46f24a29a0en@googlegroups.com>
<763d276b-8f09-4bd0-a132-fdbb4fb9d8b4n@googlegroups.com>
<7c762bbc-19a3-4f4c-a24e-3e8b560b767fn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 23 Oct 2023 02:46:58 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="bc168065321d52028b946175e5b94e68";
logging-data="3030781"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/NW54UySy+LVX2AEcNj6me"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:AJEVW9VAqOu16b6TT8QnuIshp7o=
In-Reply-To: <7c762bbc-19a3-4f4c-a24e-3e8b560b767fn@googlegroups.com>
Content-Language: en-GB
 by: dxf - Mon, 23 Oct 2023 02:46 UTC

On 22/10/2023 11:52 pm, Douglas Miller wrote:
> ...
> Most of the 8080 instructions fall into opcode patterns which would translate into relatively simple decoding logic on the chip. But some instructions, such as HLT, that have no such pattern would require "more expensive" decoding logic. So if they had to add this logic for HLT, but also had reason to do something similar to protect programmers from MOV M,M, they may have opted to combine the two and save on decoding logic.

Given Intel mnemonics were about making assemblers easy to write, protecting
capable users from a single illegal instruction seems unlikely. For a user
familiar with the instruction set MOV M,M would automatically raise a red
flag as something never seen before. Fans of Z80 mnemonics might expect
their assembler to give warning, but that's a different issue.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<52b96282-d45d-4358-af8f-5c8eed99d01fn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5145&group=comp.os.cpm#5145

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:a05:620a:8d0a:b0:778:914e:fb60 with SMTP id rb10-20020a05620a8d0a00b00778914efb60mr217117qkn.11.1698204573172;
Tue, 24 Oct 2023 20:29:33 -0700 (PDT)
X-Received: by 2002:a05:6870:9689:b0:1ea:2d0a:5eb3 with SMTP id
o9-20020a056870968900b001ea2d0a5eb3mr6367487oaq.11.1698204572851; Tue, 24 Oct
2023 20:29:32 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder1.feed.usenet.farm!feed.usenet.farm!peer01.ams4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Tue, 24 Oct 2023 20:29:32 -0700 (PDT)
In-Reply-To: <uh4mr2$2sfnt$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2607:f2c0:93ff:8f00:5309:8fd1:7ed2:c6d7;
posting-account=KOfC_woAAAC0YBGf-3r2aV5g2Aifd9jO
NNTP-Posting-Host: 2607:f2c0:93ff:8f00:5309:8fd1:7ed2:c6d7
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com> <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
<2655e0bd-61f7-4fa2-9b3b-e46f24a29a0en@googlegroups.com> <763d276b-8f09-4bd0-a132-fdbb4fb9d8b4n@googlegroups.com>
<7c762bbc-19a3-4f4c-a24e-3e8b560b767fn@googlegroups.com> <uh4mr2$2sfnt$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <52b96282-d45d-4358-af8f-5c8eed99d01fn@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: fridtjof.martin.weigel@gmail.com (fridtjof.ma...@gmail.com)
Injection-Date: Wed, 25 Oct 2023 03:29:33 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2462
 by: fridtjof.ma...@gmail - Wed, 25 Oct 2023 03:29 UTC

Intel assembler (Intel ISIS or Microsoft M80.COM in 8080 mode, but NOT ASM.COM) had one more
"trick up the sleeve":
Single byte operations can be immediate arguments. This even highlights an error in M80.COM:

0000' CSEG
.8080
O 0000' 06 78 MVI B,(MOV A,B)
0002' 78 MOV A,B
0003' 06 21 MVI B,(LXI H)
0005' 3E 00 MVI A,0
A 0007' 76 MOV M,M
END

Note the O error is fatal! But the code is correct. And MOV M,M does produce 76h, which is correct.
Very "code is data". Zilog assembler didn't have this.

Re: Bug or oversight in Digital Research 8080 assemblers with invalid MOV M,M

<9bdeccbb-814c-4582-98c7-b18240bd6a6fn@googlegroups.com>

  copy mid

https://news.novabbs.org/devel/article-flat.php?id=5146&group=comp.os.cpm#5146

  copy link   Newsgroups: comp.os.cpm
X-Received: by 2002:ae9:e201:0:b0:76d:77d2:e74e with SMTP id c1-20020ae9e201000000b0076d77d2e74emr236937qkc.2.1698226593449;
Wed, 25 Oct 2023 02:36:33 -0700 (PDT)
X-Received: by 2002:a05:6871:330f:b0:1e9:a253:afb1 with SMTP id
nf15-20020a056871330f00b001e9a253afb1mr6984232oac.9.1698226593126; Wed, 25
Oct 2023 02:36:33 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.cpm
Date: Wed, 25 Oct 2023 02:36:32 -0700 (PDT)
In-Reply-To: <52b96282-d45d-4358-af8f-5c8eed99d01fn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a00:23c8:4e06:7501:3db0:ed32:2d5b:697e;
posting-account=7LAplAoAAAByKIXUc8acNTC_dUp06kdO
NNTP-Posting-Host: 2a00:23c8:4e06:7501:3db0:ed32:2d5b:697e
References: <a7eb2223-ce62-4c62-ba03-c95e6e96367bn@googlegroups.com>
<5dd643ae-5fd5-495e-91e9-6e6079cb9f97n@googlegroups.com> <f26ccc69-747a-4c87-86a7-21a2d79fd100n@googlegroups.com>
<2e549519-386b-4534-ab48-06be2e5cca49n@googlegroups.com> <b8dd0ea7-53d1-4858-a7c0-be6bbe92ac8dn@googlegroups.com>
<2655e0bd-61f7-4fa2-9b3b-e46f24a29a0en@googlegroups.com> <763d276b-8f09-4bd0-a132-fdbb4fb9d8b4n@googlegroups.com>
<7c762bbc-19a3-4f4c-a24e-3e8b560b767fn@googlegroups.com> <uh4mr2$2sfnt$1@dont-email.me>
<52b96282-d45d-4358-af8f-5c8eed99d01fn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9bdeccbb-814c-4582-98c7-b18240bd6a6fn@googlegroups.com>
Subject: Re: Bug or oversight in Digital Research 8080 assemblers with invalid
MOV M,M
From: ogdenpm@gmail.com (Mark Ogden)
Injection-Date: Wed, 25 Oct 2023 09:36:33 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Mark Ogden - Wed, 25 Oct 2023 09:36 UTC

On Wednesday, 25 October 2023 at 04:29:33 UTC+1, fridtjof.ma...@gmail.com wrote:
> Intel assembler (Intel ISIS or Microsoft M80.COM in 8080 mode, but NOT ASM.COM) had one more
> "trick up the sleeve":
> Single byte operations can be immediate arguments. This even highlights an error in M80.COM:
>
> 0000' CSEG
> .8080
> O 0000' 06 78 MVI B,(MOV A,B)
> 0002' 78 MOV A,B
> 0003' 06 21 MVI B,(LXI H)
> 0005' 3E 00 MVI A,0
> A 0007' 76 MOV M,M
> END
>
> Note the O error is fatal! But the code is correct. And MOV M,M does produce 76h, which is correct.
> Very "code is data". Zilog assembler didn't have this.
Note for M80 the parentheses around the instructions are not needed. The O error is because of the second comma on the line.
instructions without the extra comma e.g. MVI B,MVI A are fine
For ISIS ASM80, the parentheses are needed but the MVI B,(MOV A,B) does not produce an error
The ISIS assembler also rejects MOV M,M and does not allow the numeric register format e.g. MOV A,0 generates an error.

Mark

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor