Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"Don't talk to me about disclaimers! I invented disclaimers!" -- The Censored Hacker


devel / comp.lang.forth / Re: Re: Is it another „tradition” (fig-Forth for x86)?

SubjectAuthor
* Is it another „tradition” (fig-Forth for x86)?Zbig
+* Re: Is it another „tradition” (fig-Forth for x86S Jack
|`- Re: Is it another „tradition” (fig-Forth for x86Zbig
+* Re: Is it another „tradition” (fig-Fordxforth
|+* Re: Re: Is it another „tradition” (fig-Forth for x86)?Anton Ertl
||`* Re: Is it another „tradition” (fig-Fordxforth
|| `* Re: Re: Is it another „tradition” (fig-Forth for x86)?Anton Ertl
||  `- Re: Re: Is it another „tradition” (fig-Forth for x86)?none
|`* Re: Is it another „tradition” (fig-Forth for x86Zbig
| `* Re: Is it another „tradition” (fig-Fordxforth
|  `* Re: Re: Is it another „tradition” (fig-Forth for x86)?Anton Ertl
|   +- Re: Re: Is it another „tradition” (fig-Forth forZbig
|   +* Re: Is it another „tradition” (fig-Fordxforth
|   |`* Re: Re: Is it another „tradition” (fig-Forth for x86)?Anton Ertl
|   | `- Re: Is it another „tradition” (fig-Fordxforth
|   `- Re: Is it another „tradition” (fig-Fordxforth
+* Re: Is it another „tradition” (fig-Forth for x86)?Anton Ertl
|`- Re: Is it another „tradition” (fig-Forth for x86Zbig
`* Re: Is it another „tradition” (fig-Forth for x86)?none
 +- Re: Is it another „tradition” (fig-Forth for x86Zbig
 `* Re: Is it another „tradition” (fig-Forth for x86Zbig
  `- Re: Is it another „tradition” (fig-Fordxforth

1
Is it another „tradition” (fig-Forth for x86)?

<a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17887&group=comp.lang.forth#17887

 copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:5fd4:0:b0:2f3:f0d7:757a with SMTP id k20-20020ac85fd4000000b002f3f0d7757amr21418049qta.557.1652826683844;
Tue, 17 May 2022 15:31:23 -0700 (PDT)
X-Received: by 2002:ac8:7f0f:0:b0:2f3:d7dc:c4cb with SMTP id
f15-20020ac87f0f000000b002f3d7dcc4cbmr21916783qtk.364.1652826683684; Tue, 17
May 2022 15:31:23 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.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.lang.forth
Date: Tue, 17 May 2022 15:31:23 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a;
posting-account=cxuXKwoAAABQpPOMD55A9IPz7pPrw6ml
NNTP-Posting-Host: 2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
Subject: Is it another „tradition” (fig-Forth for x86)?
From: zbigniew...@gmail.com (Zbig)
Injection-Date: Tue, 17 May 2022 22:31:23 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2595
 by: Zbig - Tue, 17 May 2022 22:31 UTC

My guess is „it is”, still I'd like to become 100% sure.

Here's the „NEXT” of that mentioned fig-Forth:

NEXT: LODSW
MOV BX,AX
NEXT1: MOV DX,BX
INC DX
JMP [BX]

(BTW: anyone could tell me, how should I paste code here to avoid deformation?)
So if I'm correct DX works as Forth's „W” register here.
My question is: then why is it incremented at that moment? And actually it's just half-incremented, since we need cell-stepped incrementation, not by single byte.
My suspicion seems to be confirmed by DOCOL's code (and by similarly looking code of other „DO”-s):
DOCOL: INC DX
DEC BP
DEC BP
MOV [BP],SI
MOV SI,DX
JMP NEXT
From what I understand, incremention of „W” has been splitted into two stages. If I made this, I'd rather insert two INCs into „DOCOL”, leaving original value of „W” untouched (if it may be needed anywhere; it does contain the address of currently processed word anyway).
Does that „split-action” have any merits behind it? Or is it just on the rule: „well, someone years ago made it this way, and then all the followers copied that because it worked doing no harm”?

Re: Is it another „tradition” (fig-Forth for x86)?

<a5fc1a1d-cc29-432e-a46f-b1f336f6c70cn@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17888&group=comp.lang.forth#17888

 copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:2988:b0:6a0:53e7:ed48 with SMTP id r8-20020a05620a298800b006a053e7ed48mr18197481qkp.604.1652829627683;
Tue, 17 May 2022 16:20:27 -0700 (PDT)
X-Received: by 2002:ac8:5dca:0:b0:2f3:ce27:c691 with SMTP id
e10-20020ac85dca000000b002f3ce27c691mr21904829qtx.515.1652829627478; Tue, 17
May 2022 16:20:27 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.mixmin.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.lang.forth
Date: Tue, 17 May 2022 16:20:27 -0700 (PDT)
In-Reply-To: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=67.61.77.94; posting-account=V5nGoQoAAAC_P2U0qnxm2kC0s1jNJXJa
NNTP-Posting-Host: 67.61.77.94
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a5fc1a1d-cc29-432e-a46f-b1f336f6c70cn@googlegroups.com>
Subject: Re: Is it another „tradition” (fig-Forth for x86
)?
From: sdwjac...@gmail.com (S Jack)
Injection-Date: Tue, 17 May 2022 23:20:27 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: S Jack - Tue, 17 May 2022 23:20 UTC

On Tuesday, May 17, 2022 at 5:31:25 PM UTC-5, Zbig wrote:
> Does that „split-action” have any merits behind it? Or is it just on the rule: „well, someone years ago" made it this way, and then all the followers copied that because it worked doing no harm”?

"NEXT is a run-time routine of the address interpreter. IP usually points to
the next word to be executed in a colon definition. After the current word
is executed, the contents of IP is moved into W and now IP is incremented,
pointing to the next word to be executed. Now, W contains the address of
the current word to be executed, and an indirect jump to the address in W
starts the execution process of this word. In the mean time, W is also
incremented to point to the parameter field address of the word being
executed. All code definitions ends with the routine NEXT, which allows the
next word after this code definition to be pulled in and executed."
C.H.Ting, Systems Guide to figForth

Does this help?
--
me

Re: Is it another „tradition” (fig-Forth for x86)?

<6b386e16-7963-4a18-8f2b-2de0742affb6n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17889&group=comp.lang.forth#17889

 copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ad4:5cac:0:b0:45a:8e5c:677 with SMTP id q12-20020ad45cac000000b0045a8e5c0677mr22923064qvh.125.1652831808474;
Tue, 17 May 2022 16:56:48 -0700 (PDT)
X-Received: by 2002:ae9:eb8d:0:b0:69f:c005:265d with SMTP id
b135-20020ae9eb8d000000b0069fc005265dmr17685041qkg.764.1652831808308; Tue, 17
May 2022 16:56:48 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.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.lang.forth
Date: Tue, 17 May 2022 16:56:48 -0700 (PDT)
In-Reply-To: <a5fc1a1d-cc29-432e-a46f-b1f336f6c70cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a;
posting-account=cxuXKwoAAABQpPOMD55A9IPz7pPrw6ml
NNTP-Posting-Host: 2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <a5fc1a1d-cc29-432e-a46f-b1f336f6c70cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6b386e16-7963-4a18-8f2b-2de0742affb6n@googlegroups.com>
Subject: Re: Is it another „tradition” (fig-Forth for x86
)?
From: zbigniew...@gmail.com (Zbig)
Injection-Date: Tue, 17 May 2022 23:56:48 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3596
 by: Zbig - Tue, 17 May 2022 23:56 UTC

> > Does that „split-action” have any merits behind it? Or is it just on the rule: „well, someone years ago" made it this way, and then all the followers copied that because it worked doing no harm”?
> "NEXT is a run-time routine of the address interpreter. IP usually points to
> the next word to be executed in a colon definition. After the current word
> is executed, the contents of IP is moved into W and now IP is incremented,
> pointing to the next word to be executed. Now, W contains the address of
> the current word to be executed, and an indirect jump to the address in W
> starts the execution process of this word. In the mean time, W is also
> incremented to point to the parameter field address of the word being
> executed. All code definitions ends with the routine NEXT, which allows the
> next word after this code definition to be pulled in and executed."
> C.H.Ting, Systems Guide to figForth
>
> Does this help?

It's not an answer to my question.
1. „Moving Forth” by Brad Rodriguez actually describes usage of „W” a bit differently
(„This illustrates an important but rarely-elucidated principle: the address of the Forth word just entered is kept in W. CODE words don't need this information, but all other kinds of Forth words do”).
2. Please, note that dr. Thing wrote: „In the meantime, W is also incremented to point to the parameter field address of the word being executed”. Well actually it isn't; it's only half-incremented (at least when talking about implementation for x86-PC, not for PDP-11). That's why I raised my question.
I don't see much sense in raising W's value „a little” during NEXT's execution, only then „a second little” during DOCOL's time. But maybe there is any rationale behind it?
But indeed I forgot that solution for PDP-11; it shows that probably it was solved „one way, or another”. Just being curious, why „partially here, then partially there”? „Just like that” or for some particular reason?

Re: Is it another „tradition” (fig-Forth for x86)?

<t61qqm$num$1@gioia.aioe.org>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17891&group=comp.lang.forth#17891

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Is it another „tradition” (fig-For
th_for_x86)?
Date: Wed, 18 May 2022 13:57:09 +1000
Organization: Aioe.org NNTP Server
Message-ID: <t61qqm$num$1@gioia.aioe.org>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="24534"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Content-Language: en-GB
X-Notice: Filtered by postfilter v. 0.9.2
 by: dxforth - Wed, 18 May 2022 03:57 UTC

On 18/05/2022 08:31, Zbig wrote:
> My guess is „it is”, still I'd like to become 100% sure.
>
> Here's the „NEXT” of that mentioned fig-Forth:
>
> NEXT: LODSW
> MOV BX,AX
> NEXT1: MOV DX,BX
> INC DX
> JMP [BX]
>
> (BTW: anyone could tell me, how should I paste code here to avoid deformation?)
> So if I'm correct DX works as Forth's „W” register here.
> My question is: then why is it incremented at that moment? And actually it's just half-incremented, since we need cell-stepped incrementation, not by single byte.
> My suspicion seems to be confirmed by DOCOL's code (and by similarly looking code of other „DO”-s):
> DOCOL: INC DX
> DEC BP
> DEC BP
> MOV [BP],SI
> MOV SI,DX
> JMP NEXT
> From what I understand, incremention of „W” has been splitted into two stages. If I made this, I'd rather insert two INCs into „DOCOL”, leaving original value of „W” untouched (if it may be needed anywhere; it does contain the address of currently processed word anyway).
> Does that „split-action” have any merits behind it? Or is it just on the rule: „well, someone years ago made it this way, and then all the followers copied that because it worked doing no harm”?

For 8-bit processors NEXT looked like this:

; 8080 FIG-FORTH

NEXT LDAX B ;(W) <- ((IP))
INX B ;(IP) <- (IP)+2
MOV L,A
LDAX B
INX B
MOV H,A ;(HL) <- CFA
NEXT1 MOV E,M ;(PC) <- ((W))
INX H
MOV D,M
XCHG
PCHL ;NOTE: (DE) <- CFA+1

Incrementing W in NEXT by at least one was unavoidable. It would have aided
portability to have W point to the same place in every FIG implementation.

Re: Is it another „tradition” (fig-Forth for x86)?

<2022May18.073553@mips.complang.tuwien.ac.at>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17892&group=comp.lang.forth#17892

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Is it another „tradition” (fig-Forth for x86)?
Date: Wed, 18 May 2022 05:35:53 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 58
Message-ID: <2022May18.073553@mips.complang.tuwien.ac.at>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="ceeab64d13947d9b16eab9899a387060";
logging-data="14441"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/DhePZZzcS4fUvL2Lu+GsJ"
Cancel-Lock: sha1:xE5+92Y9f2cTo4oizUf8X1AyYcM=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Wed, 18 May 2022 05:35 UTC

Zbig <zbigniew2011@gmail.com> writes:
>My guess is =E2=80=9Eit is=E2=80=9D, still I'd like to become 100% sure.
>
>Here's the =E2=80=9ENEXT=E2=80=9D of that mentioned fig-Forth:
>
>NEXT: LODSW
> MOV BX,AX
>NEXT1: MOV DX,BX
> INC DX
> JMP [BX]
>
>(BTW: anyone could tell me, how should I paste code here to avoid deformati=
>on?)

Use a proper newsreader rathjer than Google Groups. If you use Google
Groups, use only ASCII, and keep the line lengths <75 chars. Even
then Google will do some mangling, but far less.

>So if I'm correct DX works as Forth's =E2=80=9EW=E2=80=9D register here.
>My question is: then why is it incremented at that moment? And actually it'=
>s just half-incremented, since we need cell-stepped incrementation, not by =
>single byte.
>My suspicion seems to be confirmed by DOCOL's code (and by similarly lookin=
>g code of other =E2=80=9EDO=E2=80=9D-s):
>DOCOL: INC DX
> DEC BP
> DEC BP
> MOV [BP],SI
> MOV SI,DX
> JMP NEXT
>From what I understand, incremention of =E2=80=9EW=E2=80=9D has been splitt=
>ed into two stages. If I made this, I'd rather insert two INCs into =E2=80=
>=9EDOCOL=E2=80=9D, leaving original value of =E2=80=9EW=E2=80=9D untouched =
>(if it may be needed anywhere; it does contain the address of currently pro=
>cessed word anyway).
>Does that =E2=80=9Esplit-action=E2=80=9D have any merits behind it?

Good question. Zech's book hasa table of various NEXTs and DOCOLs in
fig-Forth implementations on various architectures, and they are all
over the place; some increment W in NEXT, some in DOCOL, and some
split it.

Advantage of doing it in NEXT: Less code; you don't need the
incrementing code replicated in DOCOL, DOVAR, maybe DOCON, DODOES.

Disadvantage of doing it in NEXT: It costs time that is wasted if the
next word does not use W (primitives), or can do it cheaper as part of
an addressing mode (maybe DOCON, DODOES).

Unless I need to save the last byte, I would not put it in NEXT on the
8086.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2021: https://euro.theforth.net/2021

Re: Re: Is it another „tradition” (fig-Forth for x86)?

<2022May18.075445@mips.complang.tuwien.ac.at>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17893&group=comp.lang.forth#17893

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Re: Is it another „tradition” (fig-Forth_for_x86)?
Date: Wed, 18 May 2022 05:54:45 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 55
Message-ID: <2022May18.075445@mips.complang.tuwien.ac.at>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <t61qqm$num$1@gioia.aioe.org>
Injection-Info: reader02.eternal-september.org; posting-host="ceeab64d13947d9b16eab9899a387060";
logging-data="31981"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+bqtaTfVhJyPzpiJ7Zp2nO"
Cancel-Lock: sha1:DUs/UNDaR7oAQj1+F+hJul8EoYs=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Wed, 18 May 2022 05:54 UTC

dxforth <dxforth@gmail.com> writes:
> ; 8080 FIG-FORTH
>
> NEXT LDAX B ;(W) <- ((IP))
> INX B ;(IP) <- (IP)+2
> MOV L,A
> LDAX B
> INX B
> MOV H,A ;(HL) <- CFA
> NEXT1 MOV E,M ;(PC) <- ((W))
> INX H
> MOV D,M
> XCHG
> PCHL ;NOTE: (DE) <- CFA+1
>
>Incrementing W in NEXT by at least one was unavoidable.

Why?

>It would have aided
>portability to have W point to the same place in every FIG implementation.

If the 8086 porter started with the 8080 port, that would explain the
decision to increment by 1 on the 8086: just do it like the 8080, then
translate all the doers 1:1, too. Less potential for introducing
bugs.

Here we have 6502 fig-Forth from
<https://github.com/ForthHub/FIG-Forth/blob/master/fig.fth>:

SCR # 13
8 LABEL NEXT ( EXECUTE NEXT FORTH ADDRESS, MOVING IP *)
9 1 # LDY, IP )Y LDA, W 1+ STA, ( FETCH CODE ADDRESS )
10 DEY, IP )Y LDA, W STA,
11 CLC, IP LDA, 2 # ADC, IP STA, ( MOVE IP AHEAD )
12 CS IF, IP 1+ INC, THEN,
13 W 1 - JMP, ( JUMP INDIR. VIA W THRU CODE FIELD TO CODE )
14

SCR # 33
2 : : ( CREATE NEW COLON-DEFINITION UNTIL ';' *)
3 ?EXEC !CSP CURRENT @ CONTEXT !
4 CREATE ] ;CODE IMMEDIATE
5 IP 1+ LDA, PHA, IP LDA, PHA, CLC, W LDA, 2 # ADC,
6 IP STA, TYA, W 1+ ADC, IP 1+ STA, NEXT JMP,

We see that W is not incremented in NEXT (the indirect jump would not
work if it was), and that W+2 is stored into IP in DOCOL.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2021: https://euro.theforth.net/2021

Re: Is it another „tradition” (fig-Forth for x86)?

<t626di$d2a$1@gioia.aioe.org>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17894&group=comp.lang.forth#17894

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Is it another „tradition” (fig-For
th_for_x86)?
Date: Wed, 18 May 2022 17:14:58 +1000
Organization: Aioe.org NNTP Server
Message-ID: <t626di$d2a$1@gioia.aioe.org>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
<t61qqm$num$1@gioia.aioe.org> <2022May18.075445@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="13386"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Wed, 18 May 2022 07:14 UTC

On 18/05/2022 15:54, Anton Ertl wrote:
> dxforth <dxforth@gmail.com> writes:
>> ; 8080 FIG-FORTH
>>
>> NEXT LDAX B ;(W) <- ((IP))
>> INX B ;(IP) <- (IP)+2
>> MOV L,A
>> LDAX B
>> INX B
>> MOV H,A ;(HL) <- CFA
>> NEXT1 MOV E,M ;(PC) <- ((W))
>> INX H
>> MOV D,M
>> XCHG
>> PCHL ;NOTE: (DE) <- CFA+1
>>
>>Incrementing W in NEXT by at least one was unavoidable.
>
> Why?

Do you know of an 8080 NEXT that's at least as fast that didn't?

Re: Re: Is it another „tradition” (fig-Forth for x86)?

<2022May18.110600@mips.complang.tuwien.ac.at>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17895&group=comp.lang.forth#17895

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Re: Is it another „tradition” (fig-Forth_for_x86)?
Date: Wed, 18 May 2022 09:06:00 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 49
Message-ID: <2022May18.110600@mips.complang.tuwien.ac.at>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <t61qqm$num$1@gioia.aioe.org> <2022May18.075445@mips.complang.tuwien.ac.at> <t626di$d2a$1@gioia.aioe.org>
Injection-Info: reader02.eternal-september.org; posting-host="ceeab64d13947d9b16eab9899a387060";
logging-data="10789"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18z0FJjIs8r/emH44pFy6u6"
Cancel-Lock: sha1:S+HgbpCrqipHS+I+zjziRSAzZnU=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Wed, 18 May 2022 09:06 UTC

dxforth <dxforth@gmail.com> writes:
>On 18/05/2022 15:54, Anton Ertl wrote:
>> dxforth <dxforth@gmail.com> writes:
>>> ; 8080 FIG-FORTH
>>>
>>> NEXT LDAX B ;(W) <- ((IP))
>>> INX B ;(IP) <- (IP)+2
>>> MOV L,A
>>> LDAX B
>>> INX B
>>> MOV H,A ;(HL) <- CFA
>>> NEXT1 MOV E,M ;(PC) <- ((W))
>>> INX H
>>> MOV D,M
>>> XCHG
>>> PCHL ;NOTE: (DE) <- CFA+1
>>>
>>>Incrementing W in NEXT by at least one was unavoidable.
>>
>> Why?
>
>Do you know of an 8080 NEXT that's at least as fast that didn't?

I don't know much about the 8080, so I would be interested in an
explanation.

Looking at it again, I see

NEXT1 MOV E,M ;(PC) <- ((W))
INX H
MOV D,M

So is M another name for (HL)? And H is the low-order byte of HL (and
the CFAs never straddle 256-byte boundaries, which is also necessary
on the 6502). In that case it's clear why W is incremented by 1.

What does the XCHG do and what is it good for?

I assume that PCHL is a kind of indirect jump, but it would need the
value in DE. Given the name of PCHL and the comment at the end, I
suspect that XCHG exchanges DE and HL, so W is in DE at the end, and
the code address in HL.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2021: https://euro.theforth.net/2021

Re: Is it another „tradition” (fig-Forth for x86)?

<nnd$222a8ed1$1c24517a@0eb66340e060bea9>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17896&group=comp.lang.forth#17896

 copy link   Newsgroups: comp.lang.forth
Newsgroups: comp.lang.forth
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
Subject: Re: Is it another „tradition” (fig-Forth for x86)?
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Message-ID: <nnd$222a8ed1$1c24517a@0eb66340e060bea9>
Organization: KPN B.V.
Date: Wed, 18 May 2022 11:30:00 +0200
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!feeder1.feed.usenet.farm!feed.usenet.farm!feed.abavia.com!abe004.abavia.com!abp001.abavia.com!news.kpn.nl!not-for-mail
Lines: 76
Injection-Date: Wed, 18 May 2022 11:30:00 +0200
Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com"
 by: none - Wed, 18 May 2022 09:30 UTC

In article <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>,
Zbig <zbigniew2011@gmail.com> wrote:
>My guess is „it is”, still I'd like to become 100% sure.
>
>Here's the „NEXT” of that mentioned fig-Forth:
>
>NEXT: LODSW
> MOV BX,AX
>NEXT1: MOV DX,BX
> INC DX
> JMP [BX]

Be prepared to find vestigial organs in fig.

Replace it with:

NEXT: LODSW
MOV BX,AX
JMP [BX]

NEXT1: MOV DX,BX
INC DX
JMP [BX]

>
>(BTW: anyone could tell me, how should I paste code here to avoid deformation?)
>So if I'm correct DX works as Forth's „W” register here.
>My question is: then why is it incremented at that moment? And actually it's just half-incremented, since we need cell-stepped incrementation, not by single byte.
>My suspicion seems to be confirmed by DOCOL's code (and by similarly looking code of other „DO”-s):
>DOCOL: INC DX
> DEC BP
> DEC BP
> MOV [BP],SI
> MOV SI,DX
> JMP NEXT

They were not familiar to the very powerful (?!) 8086 instruction set

DOCOL:
DEC BP }
DEC BP } push si on the returns stack
MOV [BP],SI }
MOV SI,[BX+2]
JMP NEXT

Saving the manipulation with reg DX.

>From what I understand, incremention of „W” has been splitted into two stages. If I made this, I'd rather insert two INCs into „DOCOL”, leaving
>original value of „W” untouched (if it may be needed anywhere; it does contain the address of currently processed word anyway).
>Does that „split-action” have any merits behind it? Or is it just on the rule: „well, someone years ago made it this way, and then all the followers
>copied that because it worked doing no harm”?

The question makes hardly sense because the context is missing
of how the fig headers are constructed in this implementation.
Caveat: I inspected the original fig 8086 code. YMMV.

It is indirect threaded code.

The BX (xt-address) contains
in case of machine code: $+2
in case of high level code: DOCOL

The advise in general:
1. build a testset
2. modify slightly and test
3. rinse repeat

You would be surprised how much you can get rid of in this way.

Groetjes Albert
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: Re: Is it another „tradition” (fig-Forth for x86)?

<nnd$2c5da137$4de3ab69@abaa2bae494276a9>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17897&group=comp.lang.forth#17897

 copy link   Newsgroups: comp.lang.forth
Newsgroups: comp.lang.forth
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <2022May18.075445@mips.complang.tuwien.ac.at> <t626di$d2a$1@gioia.aioe.org> <2022May18.110600@mips.complang.tuwien.ac.at>
Subject: Re: Re: Is it another „tradition” (fig-Forth_for_x86)?
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Message-ID: <nnd$2c5da137$4de3ab69@abaa2bae494276a9>
Organization: KPN B.V.
Date: Wed, 18 May 2022 11:46:35 +0200
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!feeder1.feed.usenet.farm!feed.usenet.farm!feeder.usenetexpress.com!tr1.eu1.usenetexpress.com!81.171.65.16.MISMATCH!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!feed.abavia.com!abe004.abavia.com!abp002.abavia.com!news.kpn.nl!not-for-mail
Lines: 70
Injection-Date: Wed, 18 May 2022 11:46:35 +0200
Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com"
X-Received-Bytes: 3146
 by: none - Wed, 18 May 2022 09:46 UTC

In article <2022May18.110600@mips.complang.tuwien.ac.at>,
Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
>dxforth <dxforth@gmail.com> writes:
>>On 18/05/2022 15:54, Anton Ertl wrote:
>>> dxforth <dxforth@gmail.com> writes:
>>>> ; 8080 FIG-FORTH
>>>>
>>>> NEXT LDAX B ;(W) <- ((IP))
>>>> INX B ;(IP) <- (IP)+2
>>>> MOV L,A
>>>> LDAX B
>>>> INX B
>>>> MOV H,A ;(HL) <- CFA
>>>> NEXT1 MOV E,M ;(PC) <- ((W))
>>>> INX H
>>>> MOV D,M
>>>> XCHG
>>>> PCHL ;NOTE: (DE) <- CFA+1
>>>>
>>>>Incrementing W in NEXT by at least one was unavoidable.
>>>
>>> Why?
>>
>>Do you know of an 8080 NEXT that's at least as fast that didn't?
>
>I don't know much about the 8080, so I would be interested in an
>explanation.
>
>Looking at it again, I see
>
>NEXT1 MOV E,M ;(PC) <- ((W))
> INX H
> MOV D,M
>
>So is M another name for (HL)? And H is the low-order byte of HL (and
>the CFAs never straddle 256-byte boundaries, which is also necessary
>on the 6502). In that case it's clear why W is incremented by 1.

You are on the right track. On the 8080 you can only access memory by
HL. The memory pointed to was called M. You can load stuff in single
byte quantities.
So this is typical 8080 idiom to load DE (register pair almost a 16 bit
register) via HL.

INX H however increments the HL pointer, not H.
(You'd use INR H to accomplish that. )
So there is no caveat for 256-byte boundaries.

>
>What does the XCHG do and what is it good for?
>
>I assume that PCHL is a kind of indirect jump, but it would need the
>value in DE. Given the name of PCHL and the comment at the end, I
>suspect that XCHG exchanges DE and HL, so W is in DE at the end, and
>the code address in HL.

Right on. PCHL is a jump to HL. That is the only way to do a
calculated jump on the 8080. Note how much manipulation is needed
to get there.

>
>- anton
>--
>M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: Is it another „tradition” (fig-Forth for x86)?

<f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17899&group=comp.lang.forth#17899

 copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ad4:5aaa:0:b0:45a:a137:49d3 with SMTP id u10-20020ad45aaa000000b0045aa13749d3mr24078596qvg.61.1652874723734;
Wed, 18 May 2022 04:52:03 -0700 (PDT)
X-Received: by 2002:ac8:5b51:0:b0:2f3:d5a9:fde with SMTP id
n17-20020ac85b51000000b002f3d5a90fdemr23561073qtw.60.1652874723573; Wed, 18
May 2022 04:52:03 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.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.lang.forth
Date: Wed, 18 May 2022 04:52:03 -0700 (PDT)
In-Reply-To: <t61qqm$num$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a;
posting-account=cxuXKwoAAABQpPOMD55A9IPz7pPrw6ml
NNTP-Posting-Host: 2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <t61qqm$num$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com>
Subject: Re: Is it another „tradition” (fig-Forth for x86
)?
From: zbigniew...@gmail.com (Zbig)
Injection-Date: Wed, 18 May 2022 11:52:03 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2332
 by: Zbig - Wed, 18 May 2022 11:52 UTC

> Incrementing W in NEXT by at least one was unavoidable. It would have aided
> portability to have W point to the same place in every FIG implementation..

Thanks. I didn't work with 8080 assembly before; could you, please,
take a look did I properly „decode” your listing:
NEXT: LDAX B ;(W) <- ((IP)) // A := BC C@
INX B ;(IP) <- (IP)+2 // BC := BC + 1
MOV L,A // L := A
LDAX B // A := BC C@
INX B // BC := BC + 1
MOV H,A ;(HL) <- CFA // H := A
; IP uses BC, W uses HL
; So now W = (IP) and IP = former_IP + 2
NEXT1: MOV E,M ;(PC) <- ((W)) // E := HL C@
INX H // HL := HL + 1 (which means W := W + 1)
MOV D,M // D := HL C@ // X := (W)
XCHG // HL and DE pairs swap their contents (W turns into X and vice versa)
PCHL ;NOTE: (DE) <- CFA+1 // JMP (HL) which means JMP (X)

So all this because 8080 has no command to do 16-bit transfer -- and sometime later
the translation of the code to x86 has been done „literally”, 1:1 -- no optimization at all?

Re: Is it another „tradition” (fig-Forth for x86)?

<3af1d583-0816-4dc2-ad18-da2623d8c908n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17900&group=comp.lang.forth#17900

 copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:298c:b0:6a0:94d2:2e39 with SMTP id r12-20020a05620a298c00b006a094d22e39mr19901687qkp.278.1652875378637;
Wed, 18 May 2022 05:02:58 -0700 (PDT)
X-Received: by 2002:a0c:fa81:0:b0:461:e391:820b with SMTP id
o1-20020a0cfa81000000b00461e391820bmr5106099qvn.6.1652875378502; Wed, 18 May
2022 05:02:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!feeder1.cambriumusenet.nl!feed.tweak.nl!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 18 May 2022 05:02:58 -0700 (PDT)
In-Reply-To: <nnd$222a8ed1$1c24517a@0eb66340e060bea9>
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a;
posting-account=cxuXKwoAAABQpPOMD55A9IPz7pPrw6ml
NNTP-Posting-Host: 2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <nnd$222a8ed1$1c24517a@0eb66340e060bea9>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3af1d583-0816-4dc2-ad18-da2623d8c908n@googlegroups.com>
Subject: Re: Is it another „tradition” (fig-Forth for x86
)?
From: zbigniew...@gmail.com (Zbig)
Injection-Date: Wed, 18 May 2022 12:02:58 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Zbig - Wed, 18 May 2022 12:02 UTC

> Be prepared to find vestigial organs in fig.

I'm afraid I'm already found a few; just I'd like to be sure I'm not missing the details.

> Replace it with:
>
> NEXT: LODSW
> MOV BX,AX
> JMP [BX]
> NEXT1: MOV DX,BX
> INC DX
> JMP [BX]

Do I really need to do DX incremention at all in simplified solution you propose?
What for? Unmodified it'll still contain real CFA, not (a bit senseless) CFA+1.

> They were not familiar to the very powerful (?!) 8086 instruction set

> DOCOL:
> DEC BP }
> DEC BP } push si on the returns stack
> MOV [BP],SI }
> MOV SI,[BX+2]
> JMP NEXT

> Saving the manipulation with reg DX.

Indeed. Thanks!

Re: Is it another „tradition” (fig-Forth for x86)?

<2f439e93-3c8b-47cc-99fd-cceaa9da6f53n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17901&group=comp.lang.forth#17901

 copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:2412:b0:6a0:5f8e:c050 with SMTP id d18-20020a05620a241200b006a05f8ec050mr19553162qkn.462.1652875605598;
Wed, 18 May 2022 05:06:45 -0700 (PDT)
X-Received: by 2002:a37:5805:0:b0:69f:c640:f5e8 with SMTP id
m5-20020a375805000000b0069fc640f5e8mr19740791qkb.586.1652875605402; Wed, 18
May 2022 05:06:45 -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.lang.forth
Date: Wed, 18 May 2022 05:06:45 -0700 (PDT)
In-Reply-To: <2022May18.073553@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a;
posting-account=cxuXKwoAAABQpPOMD55A9IPz7pPrw6ml
NNTP-Posting-Host: 2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <2022May18.073553@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <2f439e93-3c8b-47cc-99fd-cceaa9da6f53n@googlegroups.com>
Subject: Re: Is it another „tradition” (fig-Forth for x86
)?
From: zbigniew...@gmail.com (Zbig)
Injection-Date: Wed, 18 May 2022 12:06:45 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Zbig - Wed, 18 May 2022 12:06 UTC

> Advantage of doing it in NEXT: Less code; you don't need the
> incrementing code replicated in DOCOL, DOVAR, maybe DOCON, DODOES.
>
> Disadvantage of doing it in NEXT: It costs time that is wasted if the
> next word does not use W (primitives), or can do it cheaper as part of
> an addressing mode (maybe DOCON, DODOES).
>
> Unless I need to save the last byte, I would not put it in NEXT on the
> 8086.

Indeed that was my understanding of this, that's why I saw that „undecided”,
„splitted” solution as kind of code littering. But I thought: „maybe there's a valid reason”?

Re: Is it another „tradition” (fig-Forth for x86)?

<ab41d3f0-43e0-4bb8-b5ed-8b0f72567117n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17906&group=comp.lang.forth#17906

 copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:371e:b0:6a3:2d4d:ec12 with SMTP id de30-20020a05620a371e00b006a32d4dec12mr118290qkb.690.1652899896070;
Wed, 18 May 2022 11:51:36 -0700 (PDT)
X-Received: by 2002:a37:6593:0:b0:69f:887f:33f8 with SMTP id
z141-20020a376593000000b0069f887f33f8mr617970qkb.423.1652899895906; Wed, 18
May 2022 11:51:35 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.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.lang.forth
Date: Wed, 18 May 2022 11:51:35 -0700 (PDT)
In-Reply-To: <nnd$222a8ed1$1c24517a@0eb66340e060bea9>
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a;
posting-account=cxuXKwoAAABQpPOMD55A9IPz7pPrw6ml
NNTP-Posting-Host: 2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <nnd$222a8ed1$1c24517a@0eb66340e060bea9>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ab41d3f0-43e0-4bb8-b5ed-8b0f72567117n@googlegroups.com>
Subject: Re: Is it another „tradition” (fig-Forth for x86
)?
From: zbigniew...@gmail.com (Zbig)
Injection-Date: Wed, 18 May 2022 18:51:36 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1951
 by: Zbig - Wed, 18 May 2022 18:51 UTC

> They were not familiar to the very powerful (?!) 8086 instruction set
>
> DOCOL:
> DEC BP }
> DEC BP } push si on the returns stack
> MOV [BP],SI }
> MOV SI,[BX+2]
> JMP NEXT
>
> Saving the manipulation with reg DX.

But MOV SI,[BX+2] means „copy contents pointed by BX+2” rather than
„copy BX+2 to SI”, correct? So it won't work here as replacement.

Anyway eliminated superfluous use of DX from NEXT, DOCOL, DOCON, DOVAR,
DOUSE and DODOE — everything replaced by BX manipulation only — and... it still
seems to work just fine. :)

Re: Is it another „tradition” (fig-Forth for x86)?

<t647md$i0l$1@gioia.aioe.org>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17910&group=comp.lang.forth#17910

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Is it another „tradition” (fig-For
th_for_x86)?
Date: Thu, 19 May 2022 11:49:02 +1000
Organization: Aioe.org NNTP Server
Message-ID: <t647md$i0l$1@gioia.aioe.org>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
<nnd$222a8ed1$1c24517a@0eb66340e060bea9>
<ab41d3f0-43e0-4bb8-b5ed-8b0f72567117n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="18453"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Thu, 19 May 2022 01:49 UTC

On 19/05/2022 04:51, Zbig wrote:
>> They were not familiar to the very powerful (?!) 8086 instruction set
>>
>> DOCOL:
>> DEC BP }
>> DEC BP } push si on the returns stack
>> MOV [BP],SI }
>> MOV SI,[BX+2]
>> JMP NEXT
>>
>> Saving the manipulation with reg DX.
>
> But MOV SI,[BX+2] means „copy contents pointed by BX+2” rather than
> „copy BX+2 to SI”, correct? So it won't work here as replacement.
>
> Anyway eliminated superfluous use of DX from NEXT, DOCOL, DOCON, DOVAR,
> DOUSE and DODOE — everything replaced by BX manipulation only — and... it still
> seems to work just fine. :)

The changes appeared in L&P F83 approx two years after the FIG release.

\ Boot up Vectors and NEXT Interpreter 04OCT83HHL

LABEL >NEXT AX LODS AX W MOV 0 [W] JMP

LABEL NEST
W INC W INC RP DEC RP DEC IP 0 [RP] MOV W IP MOV
NEXT

LABEL DODOES
SP RP XCHG IP PUSH SP RP XCHG IP POP
W INC W INC W PUSH NEXT

LABEL DOCREATE
W INC W INC W PUSH NEXT

LABEL DOCONSTANT
W INC W INC 0 [W] AX MOV 1PUSH END-CODE

LABEL DOUSER-VARIABLE
W INC W INC 0 [W] AX MOV UP #) AX ADD 1PUSH END-CODE

Re: Is it another „tradition” (fig-Forth for x86)?

<t64be4$1rn6$1@gioia.aioe.org>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17911&group=comp.lang.forth#17911

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Is it another „tradition” (fig-For
th_for_x86)?
Date: Thu, 19 May 2022 12:52:53 +1000
Organization: Aioe.org NNTP Server
Message-ID: <t64be4$1rn6$1@gioia.aioe.org>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
<t61qqm$num$1@gioia.aioe.org>
<f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="61158"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Content-Language: en-GB
X-Notice: Filtered by postfilter v. 0.9.2
 by: dxforth - Thu, 19 May 2022 02:52 UTC

On 18/05/2022 21:52, Zbig wrote:
>> Incrementing W in NEXT by at least one was unavoidable. It would have aided
>> portability to have W point to the same place in every FIG implementation.
>
> Thanks. I didn't work with 8080 assembly before; could you, please,
> take a look did I properly „decode” your listing:
> NEXT: LDAX B ;(W) <- ((IP)) // A := BC C@
> INX B ;(IP) <- (IP)+2 // BC := BC + 1
> MOV L,A // L := A
> LDAX B // A := BC C@
> INX B // BC := BC + 1
> MOV H,A ;(HL) <- CFA // H := A
> ; IP uses BC, W uses HL
> ; So now W = (IP) and IP = former_IP + 2
> NEXT1: MOV E,M ;(PC) <- ((W)) // E := HL C@
> INX H // HL := HL + 1 (which means W := W + 1)
> MOV D,M // D := HL C@ // X := (W)
> XCHG // HL and DE pairs swap their contents (W turns into X and vice versa)
> PCHL ;NOTE: (DE) <- CFA+1 // JMP (HL) which means JMP (X)

Correct

>
> So all this because 8080 has no command to do 16-bit transfer -- and sometime later
> the translation of the code to x86 has been done „literally”, 1:1 -- no optimization at all?

That's understandable considering few would have owned an 8086 at that time.
Fig-Forth 8088/86 listing is dated MAR 1981. FIG had largely dropped support
for Fig-Forth by then, opting instead to be involved in the Standards process.
While FIG planned comprehensive revisions to several implementations, only
the 8080 was completed AFAIK.

Re: Re: Is it another „tradition” (fig-Forth for x86)?

<2022May19.074252@mips.complang.tuwien.ac.at>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17913&group=comp.lang.forth#17913

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Re: Is it another „tradition” (fig-Forth_for_x86)?
Date: Thu, 19 May 2022 05:42:52 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 78
Message-ID: <2022May19.074252@mips.complang.tuwien.ac.at>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <t61qqm$num$1@gioia.aioe.org> <f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com> <t64be4$1rn6$1@gioia.aioe.org>
Injection-Info: reader02.eternal-september.org; posting-host="6f7ef30ae0f966f306955afb045a748f";
logging-data="31191"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/PxoRfF+PPO6tQsTfPw1HA"
Cancel-Lock: sha1:7qg6XXpKvy8WxWadtiqG6pFgiOI=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Thu, 19 May 2022 05:42 UTC

dxforth <dxforth@gmail.com> writes:
>On 18/05/2022 21:52, Zbig wrote:
>> So all this because 8080 has no command to do 16-bit transfer -- and sometime later
>> the translation of the code to x86 has been done „literally”, 1:1 -- no optimization at all?
>
>That's understandable considering few would have owned an 8086 at that time.

It's also not unusual: The story of how Microsoft ported Fortran-80
(and other products) to the 8086 is described in
<https://retrocomputingforum.com/t/translation-of-8080-code-to-8086/1309>.
The author concludes that the result made a disappointing product, and
in comment #6 relates that MS then bought a license of a third-party
Fortran, certainly a winning strategy for MS.

Makes me wonder how much of a benefit the ability to translate 8080 to
8086 assembly code really was. It led to a lot of software early on,
such as Fortran-96 and fig-Forth, but could not transcend the 64K
boundary (but early-on few had more RAM), and eventually that software
was replaced with something specifically written for the 8086, such as
F83 or the external product in the Fortran case (that compiler was
written in Pascal).

I guess the benefit was that software was available earlier, but if
anybody hoped they could save on proper 8086 development, they were
disappointed, or their product was unlikely to survive.

The fig-Forth NEXT was not a 1:1 translation, though:

NEXT LDAX B LODSW ;(W) <- ((IP))
INX B ;LODSW ;(IP) <- (IP)+2
MOV L,A MOV BX,AX
LDAX B ;LODSW
INX B ;LODSW
MOV H,A ;MOV BX,AX ;(HL) <- CFA
NEXT1 MOV E,M ;JMP [BX] ;(PC) <- ((W))
INX H MOV DX,BX
INC DX
MOV D,M ;JMP [BX]
XCHG ;MOV DX,BX
PCHL JMP [BX] ;NOTE: (DE) <- CFA+1

A real 1:1 translation would have been much worse (you can find a
translation table in
<http://www.s100computers.com/Software%20Folder/Assembler%20Collection/Digital%20Research%20XLT86%20Manual.pdf>).
The person who translated seems to have taken the register assignments
and contents at the basic block boundaries from the 8080, but produced
code that made locally good use of 8086 features.

Here's my go at a 1:1 translation according to the translation table:

NEXT LDAX B mov si, cx
mov al, [si]
INX B inc cx
MOV L,A mov bl, al
LDAX B mov si, cx
mov al, [si]
INX B inc cx
MOV H,A mov bh, al
NEXT1 MOV E,M mov dl, [bx]
INX H inc bx
MOV D,M mov dh, [bx]
XCHG xchg bx,dx
PCHL jmp bx

>Fig-Forth 8088/86 listing is dated MAR 1981. FIG had largely dropped support
>for Fig-Forth by then, opting instead to be involved in the Standards process.
>While FIG planned comprehensive revisions to several implementations, only
>the 8080 was completed AFAIK.

Support? Revisions? Are these compatible with the teachings of Chuck
Moore?

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2021: https://euro.theforth.net/2021

Re: Re: Is it another „tradition” (fig-Forth for x86)?

<41d59f03-9c73-4c9c-a591-b9f731e6c8c5n@googlegroups.com>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17916&group=comp.lang.forth#17916

 copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:20ec:b0:461:dc16:163d with SMTP id 12-20020a05621420ec00b00461dc16163dmr3053669qvk.40.1652949875068;
Thu, 19 May 2022 01:44:35 -0700 (PDT)
X-Received: by 2002:a37:dcc7:0:b0:6a3:2a74:69fd with SMTP id
v190-20020a37dcc7000000b006a32a7469fdmr2274509qki.503.1652949874912; Thu, 19
May 2022 01:44:34 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.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.lang.forth
Date: Thu, 19 May 2022 01:44:34 -0700 (PDT)
In-Reply-To: <2022May19.074252@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a;
posting-account=cxuXKwoAAABQpPOMD55A9IPz7pPrw6ml
NNTP-Posting-Host: 2a02:a31d:a141:5b00:3176:cc50:14b9:1f4a
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
<t61qqm$num$1@gioia.aioe.org> <f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com>
<t64be4$1rn6$1@gioia.aioe.org> <2022May19.074252@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <41d59f03-9c73-4c9c-a591-b9f731e6c8c5n@googlegroups.com>
Subject: Re: Re: Is it another „tradition” (fig-Forth for
x86)?
From: zbigniew...@gmail.com (Zbig)
Injection-Date: Thu, 19 May 2022 08:44:35 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1664
 by: Zbig - Thu, 19 May 2022 08:44 UTC

> The fig-Forth NEXT was not a 1:1 translation, though:

Indeed you're right; my remark wasn't 100% accurate. Use of LODSW alone
and register selection was already at least partial optimization. Well it
turned out we can move that process even further.

Re: Is it another „tradition” (fig-Forth for x86)?

<t651mo$7nh$1@gioia.aioe.org>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17917&group=comp.lang.forth#17917

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Is it another „tradition” (fig-For
th_for_x86)?
Date: Thu, 19 May 2022 19:12:56 +1000
Organization: Aioe.org NNTP Server
Message-ID: <t651mo$7nh$1@gioia.aioe.org>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
<t61qqm$num$1@gioia.aioe.org>
<f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com>
<t64be4$1rn6$1@gioia.aioe.org> <2022May19.074252@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="7921"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Thu, 19 May 2022 09:12 UTC

On 19/05/2022 15:42, Anton Ertl wrote:
> dxforth <dxforth@gmail.com> writes:
>>On 18/05/2022 21:52, Zbig wrote:
>>> So all this because 8080 has no command to do 16-bit transfer -- and sometime later
>>> the translation of the code to x86 has been done „literally”, 1:1 -- no optimization at all?
>>
>>That's understandable considering few would have owned an 8086 at that time.
>
> It's also not unusual: The story of how Microsoft ported Fortran-80
> (and other products) to the 8086 is described in
> <https://retrocomputingforum.com/t/translation-of-8080-code-to-8086/1309>.
> The author concludes that the result made a disappointing product, and
> in comment #6 relates that MS then bought a license of a third-party
> Fortran, certainly a winning strategy for MS.
>
> Makes me wonder how much of a benefit the ability to translate 8080 to
> 8086 assembly code really was. It led to a lot of software early on,
> such as Fortran-96 and fig-Forth, but could not transcend the 64K
> boundary (but early-on few had more RAM), and eventually that software
> was replaced with something specifically written for the 8086, such as
> F83 or the external product in the Fortran case (that compiler was
> written in Pascal).
>
> I guess the benefit was that software was available earlier, but if
> anybody hoped they could save on proper 8086 development, they were
> disappointed, or their product was unlikely to survive.

When the alternative is writing 8086 code from scratch it may have been
seen as the lesser of two evils. Among the CP/M community there were at
least a couple of free 80->86 translators. I used one to initially
convert DX-Forth's 8080 software f/p to 8086, after which I hand optimized.

> ...
>>Fig-Forth 8088/86 listing is dated MAR 1981. FIG had largely dropped support
>>for Fig-Forth by then, opting instead to be involved in the Standards process.
>>While FIG planned comprehensive revisions to several implementations, only
>>the 8080 was completed AFAIK.
>
> Support? Revisions? Are these compatible with the teachings of Chuck
> Moore?

One would need to ask the promoters of his 'teachings' :) ISTR Elizabeth
saying Chuck's second version of anything was much better than the first,
and if there were opportunity for a third, it was better again. Sounds
like most of us - no?

Re: Is it another „tradition” (fig-Forth for x86)?

<t65er6$aqt$1@gioia.aioe.org>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17919&group=comp.lang.forth#17919

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Is it another „tradition” (fig-For
th_for_x86)?
Date: Thu, 19 May 2022 22:57:11 +1000
Organization: Aioe.org NNTP Server
Message-ID: <t65er6$aqt$1@gioia.aioe.org>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
<t61qqm$num$1@gioia.aioe.org>
<f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com>
<t64be4$1rn6$1@gioia.aioe.org> <2022May19.074252@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="11101"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Thu, 19 May 2022 12:57 UTC

On 19/05/2022 15:42, Anton Ertl wrote:
> ...
> Here's my go at a 1:1 translation according to the translation table:
>
> NEXT LDAX B mov si, cx
> mov al, [si]
> INX B inc cx
> MOV L,A mov bl, al
> LDAX B mov si, cx
> mov al, [si]
> INX B inc cx
> MOV H,A mov bh, al
> NEXT1 MOV E,M mov dl, [bx]
> INX H inc bx
> MOV D,M mov dh, [bx]
> XCHG xchg bx,dx
> PCHL jmp bx

The translation is complicated by the fact BC in 8080 could be used
either as a 16-bit index or discrete 8-bit regs (B,C). One can't
do that with SI DI etc. There's BX but that's used to emulate HL.
Any chance of achieving 1:1 code efficiency was quashed. OTOH it
shows how the relatively few 8080 regs were used to the max. Hats
off to the team who designed it! Of course, they had the 8008 to
learn from...

Re: Re: Is it another „tradition” (fig-Forth for x86)?

<2022May19.121442@mips.complang.tuwien.ac.at>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17921&group=comp.lang.forth#17921

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Re: Is it another „tradition” (fig-Forth_for_x86)?
Date: Thu, 19 May 2022 10:14:42 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 21
Message-ID: <2022May19.121442@mips.complang.tuwien.ac.at>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com> <t61qqm$num$1@gioia.aioe.org> <f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com> <t64be4$1rn6$1@gioia.aioe.org> <2022May19.074252@mips.complang.tuwien.ac.at> <t651mo$7nh$1@gioia.aioe.org>
Injection-Info: reader02.eternal-september.org; posting-host="6f7ef30ae0f966f306955afb045a748f";
logging-data="25840"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18IW4z0ZaJR0rN7wVJsGtLJ"
Cancel-Lock: sha1:b0WF9UGFD+4pSQATsAHr4sg7reI=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Thu, 19 May 2022 10:14 UTC

dxforth <dxforth@gmail.com> writes:
>On 19/05/2022 15:42, Anton Ertl wrote:
>> Support? Revisions? Are these compatible with the teachings of Chuck
>> Moore?
>
>One would need to ask the promoters of his 'teachings' :) ISTR Elizabeth
>saying Chuck's second version of anything was much better than the first,
>and if there were opportunity for a third, it was better again. Sounds
>like most of us - no?

My understanding is that his approach is to rewrite from scratch
rather than revise the existing code. Looking at the changes from his
Forth that most Forth systems are descended from to cmForth to
colorForth, these are not revisions.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2021: https://euro.theforth.net/2021

Re: Is it another „tradition” (fig-Forth for x86)?

<t66vho$jtj$1@gioia.aioe.org>

 copy mid

https://www.novabbs.com/devel/article-flat.php?id=17924&group=comp.lang.forth#17924

 copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Is it another „tradition” (fig-For
th_for_x86)?
Date: Fri, 20 May 2022 12:48:23 +1000
Organization: Aioe.org NNTP Server
Message-ID: <t66vho$jtj$1@gioia.aioe.org>
References: <a03ec321-a603-4de9-9cd1-79a9318a6794n@googlegroups.com>
<t61qqm$num$1@gioia.aioe.org>
<f4d0151a-001b-4131-a564-e1edf337b807n@googlegroups.com>
<t64be4$1rn6$1@gioia.aioe.org> <2022May19.074252@mips.complang.tuwien.ac.at>
<t651mo$7nh$1@gioia.aioe.org> <2022May19.121442@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="20403"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.0
Content-Language: en-GB
X-Notice: Filtered by postfilter v. 0.9.2
 by: dxforth - Fri, 20 May 2022 02:48 UTC

On 19/05/2022 20:14, Anton Ertl wrote:
> dxforth <dxforth@gmail.com> writes:
>>On 19/05/2022 15:42, Anton Ertl wrote:
>>> Support? Revisions? Are these compatible with the teachings of Chuck
>>> Moore?
>>
>>One would need to ask the promoters of his 'teachings' :) ISTR Elizabeth
>>saying Chuck's second version of anything was much better than the first,
>>and if there were opportunity for a third, it was better again. Sounds
>>like most of us - no?
>
> My understanding is that his approach is to rewrite from scratch
> rather than revise the existing code. Looking at the changes from his
> Forth that most Forth systems are descended from to cmForth to
> colorForth, these are not revisions.

Elizabeth was talking about apps Chuck wrote. He could afford to
be more liberal with Forth - but only after leaving Forth Inc.
The company had customers to consider and to whom change was anathema.

1
server_pubkey.txt

rocksolid light 0.9.7
clearnet tor