Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #60627 > unrolled thread

Shadow blocks - "What is old is new again" ;/

Started byRichard Owlett <rowlett@cloud85.net>
First post2017-06-11 14:31 -0500
Last post2017-06-15 09:36 -0700
Articles 18 — 14 participants

Back to article view | Back to comp.lang.forth


Contents

  Shadow blocks - "What is old is new again" ;/ Richard Owlett <rowlett@cloud85.net> - 2017-06-11 14:31 -0500
    Re: Shadow blocks - "What is old is new again" ;/ Paul Rubin <no.email@nospam.invalid> - 2017-06-12 00:37 -0700
      Re: Shadow blocks - "What is old is new again" ;/ Richard Owlett <rowlett@cloud85.net> - 2017-06-12 08:23 -0500
      Re: Shadow blocks - "What is old is new again" ;/ "HAA" <someone@microsoft.com> - 2017-06-13 12:09 +1000
        Re: Shadow blocks - "What is old is new again" ;/ hughaguilar96@gmail.com - 2017-06-12 19:42 -0700
          Re: Shadow blocks - "What is old is new again" ;/ Julian Fondren <julian.fondren@gmail.com> - 2017-06-12 19:55 -0700
          Re: Shadow blocks - "What is old is new again" ;/ Cecil Bayona <cbayona@cbayona.com> - 2017-06-12 22:09 -0500
            Re: Shadow blocks - "What is old is new again" ;/ "HAA" <someone@microsoft.com> - 2017-06-13 19:39 +1000
              Re: Shadow blocks - "What is old is new again" ;/ minforth@arcor.de - 2017-06-13 04:01 -0700
                Re: Shadow blocks - "What is old is new again" ;/ JennyB <jennybrien@googlemail.com> - 2017-06-13 09:28 -0700
                  Re: Shadow blocks - "What is old is new again" ;/ Mark Wills <markwills1970@gmail.com> - 2017-06-14 01:05 -0700
                    Re: Shadow blocks - "What is old is new again" ;/ Lars Brinkhoff <lars.spam@nocrew.org> - 2017-06-14 10:41 +0200
                      Re: Shadow blocks - "What is old is new again" ;/ Mark Wills <markwills1970@gmail.com> - 2017-06-14 03:42 -0700
            Re: Shadow blocks - "What is old is new again" ;/ stephen@mpeforth.com (Stephen Pelc) - 2017-06-13 10:06 +0000
              Re: Shadow blocks - "What is old is new again" ;/ "HAA" <someone@microsoft.com> - 2017-06-13 20:42 +1000
        Re: Shadow blocks - "What is old is new again" ;/ "Elizabeth D. Rather" <erather@forth.com> - 2017-06-14 09:07 -1000
    Shadow blocks - "What is old is new again" ;/ Brad Eckert <hwfwguy@gmail.com> - 2017-06-14 23:09 -0700
    Re: Shadow blocks - "What is old is new again" ;/ sdwjack69@gmail.com - 2017-06-15 09:36 -0700

#60627 — Shadow blocks - "What is old is new again" ;/

FromRichard Owlett <rowlett@cloud85.net>
Date2017-06-11 14:31 -0500
SubjectShadow blocks - "What is old is new again" ;/
Message-ID<lPidnXRbTbwOB6DEnZ2dnUU7-SfNnZ2d@supernews.com>
I've been around FORTH long enough to be aware of "shadow blocks".
I'm also sane enough to to recognize that "what I think I 'know' " may 
bear little or no resemblance to reality ;)

Is there any online reference available to the how|why|what|etc of 
"shadow blocks". [https://archive.org links welcome ;]

I think I have an incipient germ of a possible remedy to a modern 
documentation problem [enough weasel words?  ;].

As the saying goes "It is better to remain silent and thought a fool 
than ..."

Links anyone?
TIA

[toc] | [next] | [standalone]


#60641

FromPaul Rubin <no.email@nospam.invalid>
Date2017-06-12 00:37 -0700
Message-ID<8760g14px9.fsf@nightsong.com>
In reply to#60627
Richard Owlett <rowlett@cloud85.net> writes:
> Is there any online reference available to the how|why|what|etc of
> "shadow blocks". [https://archive.org links welcome ;]

I think it's well known.  I've certainly heard of them from multiple
places.  Also, ArrayForth uses them and the Forth code for the GA144
firmware has them (you can download it and convert to HTML).

The basic idea was that you'd put your code in screens 2,4,6... and
documentation in screens 1,3,5... and then your code editor would have a
quick way to flip between a code screen and its shadow screen.  Because
of the low-resolution computer video of the old days, and maybe because
of the 1K block size, traditional Forth screens were 16 lines * 64
characters. 

These days screens are larger and have more resolution, so you can write
code and comments in a more interspersed and natural style.

[toc] | [prev] | [next] | [standalone]


#60655

FromRichard Owlett <rowlett@cloud85.net>
Date2017-06-12 08:23 -0500
Message-ID<-6OdnQlcU95VCKPEnZ2dnUU7-Y_NnZ2d@supernews.com>
In reply to#60641
On 06/12/2017 02:37 AM, Paul Rubin wrote:
> Richard Owlett <rowlett@cloud85.net> writes:
>> Is there any online reference available to the how|why|what|etc of
>> "shadow blocks". [https://archive.org links welcome ;]
>
> I think it's well known.  I've certainly heard of them from multiple
> places.  Also, ArrayForth uses them and the Forth code for the GA144
> firmware has them (you can download it and convert to HTML).
>
> The basic idea was that you'd put your code in screens 2,4,6... and
> documentation in screens 1,3,5... and then your code editor would
> have a  quick way to flip between a code screen and its shadow
> screen.  Because of the low-resolution computer video of the old
> days, and maybe because of the 1K block size, traditional Forth
> screens were 16 lines * 64 characters.
>
> These days screens are larger and have more resolution, so you can
> write code and comments in a more interspersed and natural style.
>

Thank you. My memory matched reality.

My problem is finding Linux man pages to be intrinsically opaque if I 
don't already some background involving that command. My analysis is 
that man pages are written by experts for experts.

I know, a minority opinion. Having been told so when describing problems 
with one man page or another.

What my current mental image is might be described as a amalgam of a 
wiki and a blog. The user would go to the website and enter the 
command's name.

The first thing displayed would be the content of a a standard man page.
There would be a set of selection buttons to move among "man 
page"/examples/tutorial. I envision highlighting a keyword on one page 
would lead to the appropriate section when a different page was selected.

I was looking for a web reference to demonstrate that similar things 
have worked in the past.


[toc] | [prev] | [next] | [standalone]


#60673

From"HAA" <someone@microsoft.com>
Date2017-06-13 12:09 +1000
Message-ID<ohnhes$ce4$1@gioia.aioe.org>
In reply to#60641
Paul Rubin wrote:
> Richard Owlett <rowlett@cloud85.net> writes:
> > Is there any online reference available to the how|why|what|etc of
> > "shadow blocks". [https://archive.org links welcome ;]
>
> I think it's well known.  I've certainly heard of them from multiple
> places.  Also, ArrayForth uses them and the Forth code for the GA144
> firmware has them (you can download it and convert to HTML).
>
> The basic idea was that you'd put your code in screens 2,4,6... and
> documentation in screens 1,3,5... and then your code editor would have a
> quick way to flip between a code screen and its shadow screen.

AFAIK shadows were located on the second half of the storage e.g. if your
disk/file was 600 blocks then the shadows appeared on blocks 300-599.

> Because
> of the low-resolution computer video of the old days, and maybe because
> of the 1K block size, traditional Forth screens were 16 lines * 64
> characters.
>
> These days screens are larger and have more resolution, so you can write
> code and comments in a more interspersed and natural style.

Last I heard Chuck still favored 1K screens as being the optimum size chunk
of source to manage at one time.  There is something about that.


[toc] | [prev] | [next] | [standalone]


#60675

Fromhughaguilar96@gmail.com
Date2017-06-12 19:42 -0700
Message-ID<05d06c5a-5944-4871-92cb-6d064e31ac4f@googlegroups.com>
In reply to#60673
On Monday, June 12, 2017 at 7:08:33 PM UTC-7, HAA wrote:
> Paul Rubin wrote:
> > Richard Owlett <rowlett@cloud85.net> writes:
> > > Is there any online reference available to the how|why|what|etc of
> > > "shadow blocks". [https://archive.org links welcome ;]
> >
> > I think it's well known.  I've certainly heard of them from multiple
> > places.  Also, ArrayForth uses them and the Forth code for the GA144
> > firmware has them (you can download it and convert to HTML).
> >
> > The basic idea was that you'd put your code in screens 2,4,6... and
> > documentation in screens 1,3,5... and then your code editor would have a
> > quick way to flip between a code screen and its shadow screen.
> 
> AFAIK shadows were located on the second half of the storage e.g. if your
> disk/file was 600 blocks then the shadows appeared on blocks 300-599.

This makes sense to me --- allows THRU to continue working.

There is also -> that can be put at the end of a screen --- this is a bad idea --- this prevents screens from being give to LOAD one at a time for testing purposes.

I never used any Forth that had shadow screens --- the only one I was aware of, was F83 --- but I never used F83 as I got into UR/Forth and didn't pay much attention to the PD Forths available.

> > Because
> > of the low-resolution computer video of the old days, and maybe because
> > of the 1K block size, traditional Forth screens were 16 lines * 64
> > characters.
> >
> > These days screens are larger and have more resolution, so you can write
> > code and comments in a more interspersed and natural style.
> 
> Last I heard Chuck still favored 1K screens as being the optimum size chunk
> of source to manage at one time.  There is something about that.

I'm not opposed to screens for source-code. I always liked UR/Forth's screen editor. I started writing MFX using screens, but then was told to switch to seq files because that was the company standard, so I did. IIRC, I used MultiEdit then.

 --- I might write a screen editor and put it in the novice-package --- a big problem is that AT-XY has a bug in VFX and this will screw up any editor or other kind of text UI I might write.

[toc] | [prev] | [next] | [standalone]


#60676

FromJulian Fondren <julian.fondren@gmail.com>
Date2017-06-12 19:55 -0700
Message-ID<7dca6c89-ad7e-400d-9136-394b67c6afd9@googlegroups.com>
In reply to#60675
On Monday, June 12, 2017 at 9:42:21 PM UTC-5, hughag...@gmail.com wrote:
> On Monday, June 12, 2017 at 7:08:33 PM UTC-7, HAA wrote:
> > 
> > AFAIK shadows were located on the second half of the storage e.g. if your
> > disk/file was 600 blocks then the shadows appeared on blocks 300-599.
> 
> This makes sense to me --- allows THRU to continue working.

THRU works just as well with odd or even blocks as shadow blocks.
It skips the shadow blocks.

An advantage of interleaving shadow blocks, especially relevant if
you're using a block file, is that the total number of blocks can grow
or shrink without the offset making less sense. You can also slice off
a contiguous group of blocks (or add one to your block file) without
worrying about getting the documentation.

The 'big offset' strategy of shadow blocks was more appropriate for
the floppy era.

> There is also -> that can be put at the end of a screen --- this is a bad idea --- this prevents screens from being give to LOAD one at a time for testing purposes.
> 

I know this as -->

Same deal: it can add 2 instead of 1, to skip the shadow block.

> I never used any Forth that had shadow screens --- the only one I was aware of, was F83 --- but I never used F83 as I got into UR/Forth and didn't pay much attention to the PD Forths available.
> 

Enth/Flux had shadow blocks. Pygmy Forth probably has them as well,
since Frank Sergeant's Emacs mode support them.

>  --- I might write a screen editor and put it in the novice-package --- a big problem is that AT-XY has a bug in VFX and this will screw up any editor or other kind of text UI I might write.

The defect is, again, in your choice of terminal. Pick one that
supports the control code that VFX is emitting.

[toc] | [prev] | [next] | [standalone]


#60678

FromCecil Bayona <cbayona@cbayona.com>
Date2017-06-12 22:09 -0500
Message-ID<ohnkq7$hfn$1@dont-email.me>
In reply to#60675
On 6/12/2017 9:42 PM, hughaguilar96@gmail.com wrote:
> On Monday, June 12, 2017 at 7:08:33 PM UTC-7, HAA wrote:

> 
> There is also -> that can be put at the end of a screen --- this is a bad idea --- this prevents screens from being give to LOAD one at a time for testing purposes.

When I used Pygmy Forth I would no have one screen load the next, 
instead the first page had a series of load commands to load one page at 
a time, so I could have more control over what loaded. Pygmy had a nice 
screen editor with shadow pages.

> I never used any Forth that had shadow screens --- the only one I was aware of, was F83 --- but I never used F83 as I got into UR/Forth and didn't pay much attention to the PD Forths available.
> 

>> Last I heard Chuck still favored 1K screens as being the optimum size chunk
>> of source to manage at one time.  There is something about that.
> 

It could be a vision issue as I read he has eye problems, large 
character for easy read.

> I'm not opposed to screens for source-code. I always liked UR/Forth's screen editor. I started writing MFX using screens, but then was told to switch to seq files because that was the company standard, so I did. IIRC, I used MultiEdit then.

--- I might write a screen editor and put it in the novice-package --- a 
big problem is that AT-XY has a bug in VFX and this will screw up any 
editor or other kind of text UI I might write.
> 

I been looking for a copy of UR/Forth with source so I can learn from it 
but so far I have not found it. I did find a copy of LMI Professional 
Forth and I also found some source, but I have not looked at it to see 
what I have.

Can't you create your own AT-XY so it doesn't have the bug? Are you 
using the free version of VFX so you don't have the source?

-- 
Cecil - k5nwa

[toc] | [prev] | [next] | [standalone]


#60684

From"HAA" <someone@microsoft.com>
Date2017-06-13 19:39 +1000
Message-ID<ohobrg$1j6v$1@gioia.aioe.org>
In reply to#60678
Cecil Bayona wrote:
> ...
> > On Monday, June 12, 2017 at 7:08:33 PM UTC-7, HAA wrote:
> ...
> >> Last I heard Chuck still favored 1K screens as being the optimum size chunk
> >> of source to manage at one time.  There is something about that.
> >
>
> It could be a vision issue as I read he has eye problems, large
> character for easy read.

The reference was to this statement:

C.M.   "My Forth has always utilized 1KB blocks of code. This is a
          quantum that is comprehensible and can be seen on a monitor.
          I can't think of code I'd call beautiful that was larger than this."


[toc] | [prev] | [next] | [standalone]


#60687

Fromminforth@arcor.de
Date2017-06-13 04:01 -0700
Message-ID<94df802b-db47-484a-bf4c-bc0d10e43620@googlegroups.com>
In reply to#60684
Am Dienstag, 13. Juni 2017 11:38:59 UTC+2 schrieb HAA:
> Cecil Bayona wrote:
> > ...
> > > On Monday, June 12, 2017 at 7:08:33 PM UTC-7, HAA wrote:
> > ...
> > >> Last I heard Chuck still favored 1K screens as being the optimum size chunk
> > >> of source to manage at one time.  There is something about that.
> > >
> >
> > It could be a vision issue as I read he has eye problems, large
> > character for easy read.
> 
> The reference was to this statement:
> 
> C.M.   "My Forth has always utilized 1KB blocks of code. This is a
>           quantum that is comprehensible and can be seen on a monitor.
>           I can't think of code I'd call beautiful that was larger than this."

1k blocks on 1 screen often enforce a horizontal coding style, which is not always good.

When I develop new routines I tend to write in vertical style with lots of
short-hand comments.
Once they are okay, I compress them to more "horizontality" (nice word that :-))

[toc] | [prev] | [next] | [standalone]


#60700

FromJennyB <jennybrien@googlemail.com>
Date2017-06-13 09:28 -0700
Message-ID<05a4e130-dd52-4236-b108-5508519fe3a1@googlegroups.com>
In reply to#60687
Back in the days of the Amstrad PCW I wrote a variant that managed source in 1k blocks but in lines of variable length (up to 32 chars long and 30 per block, the most that could be veiwed without scrolling). That allowed me to view two code screens or a code screen and its shadow at the same time, and use INDEX to list the first lines of screens and look up references. It was a lot faster than scrolling a long text file on an 8-bit computer.  

I still havery the then ANS draft Standard in this format on a 3" disk somewhere, but I doubt if it can still be read.

[toc] | [prev] | [next] | [standalone]


#60712

FromMark Wills <markwills1970@gmail.com>
Date2017-06-14 01:05 -0700
Message-ID<dd02fced-0638-4fe9-855e-852334b589b0@googlegroups.com>
In reply to#60700
On Tuesday, 13 June 2017 17:28:57 UTC+1, JennyB  wrote:
> Back in the days of the Amstrad PCW I wrote a variant that managed source in 1k blocks but in lines of variable length (up to 32 chars long and 30 per block, the most that could be veiwed without scrolling). That allowed me to view two code screens or a code screen and its shadow at the same time, and use INDEX to list the first lines of screens and look up references. It was a lot faster than scrolling a long text file on an 8-bit computer.  
> 
> I still havery the then ANS draft Standard in this format on a 3" disk somewhere, but I doubt if it can still be read.

What does INDEX do? I can't remember.

[toc] | [prev] | [next] | [standalone]


#60713

FromLars Brinkhoff <lars.spam@nocrew.org>
Date2017-06-14 10:41 +0200
Message-ID<86o9tr9d22.fsf@molnjunk.nocrew.org>
In reply to#60712
Mark Wills wrote:
> JennyB wrote:
>> use INDEX to list the first lines of screens
>
> What does INDEX do? I can't remember.

Prints the first line of each screen in a range.  That line should
typically have a short description of the contents its screen.

[toc] | [prev] | [next] | [standalone]


#60716

FromMark Wills <markwills1970@gmail.com>
Date2017-06-14 03:42 -0700
Message-ID<f1511e11-79ae-48a7-a393-bed0bb1af42a@googlegroups.com>
In reply to#60713
On Wednesday, 14 June 2017 09:41:11 UTC+1, Lars Brinkhoff  wrote:
> Mark Wills wrote:
> > JennyB wrote:
> >> use INDEX to list the first lines of screens
> >
> > What does INDEX do? I can't remember.
> 
> Prints the first line of each screen in a range.  That line should
> typically have a short description of the contents its screen.

Thanks, Lars.

[toc] | [prev] | [next] | [standalone]


#60685

Fromstephen@mpeforth.com (Stephen Pelc)
Date2017-06-13 10:06 +0000
Message-ID<593fb802.496871748@news.eternal-september.org>
In reply to#60678
On Mon, 12 Jun 2017 22:09:17 -0500, Cecil Bayona <cbayona@cbayona.com>
wrote:

>Can't you create your own AT-XY so it doesn't have the bug? Are you 
>using the free version of VFX so you don't have the source?

As is usual with Hugh, he does not read the manual and he does not
listen to what he is told. The VFX console is *NOT* an old-style
addressable terminal; it's a logging device. If Hugh had loaded
the file
  Lib\Win32\Genio\Terminal.fth
he could have what he wants.

Stephen

-- 
Stephen Pelc, stephenXXX@mpeforth.com
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691
web: http://www.mpeforth.com - free VFX Forth downloads

[toc] | [prev] | [next] | [standalone]


#60686

From"HAA" <someone@microsoft.com>
Date2017-06-13 20:42 +1000
Message-ID<ohofi7$1qj8$1@gioia.aioe.org>
In reply to#60685
Stephen Pelc wrote:
> On Mon, 12 Jun 2017 22:09:17 -0500, Cecil Bayona <cbayona@cbayona.com>
> wrote:
>
> >Can't you create your own AT-XY so it doesn't have the bug? Are you
> >using the free version of VFX so you don't have the source?
>
> As is usual with Hugh, he does not read the manual and he does not
> listen to what he is told. The VFX console is *NOT* an old-style
> addressable terminal; it's a logging device. If Hugh had loaded
> the file
>   Lib\Win32\Genio\Terminal.fth
> he could have what he wants.
>
> Stephen

It's hardly intuitive.  Anyone d/loading a 'Forth for Windows' would
reasonably expect AT-XY to work 'out of the box'.  If they didn't give
up there and then and chose instead to read the manual, they'd see
Chapter 2 - 'Installation and Introduction' comprising 'Installation'
and 'Configuration' ... which has nothing to help them.


[toc] | [prev] | [next] | [standalone]


#60759

From"Elizabeth D. Rather" <erather@forth.com>
Date2017-06-14 09:07 -1000
Message-ID<DcCdnRtN-sjDFNzEnZ2dnUU7-XXNnZ2d@supernews.com>
In reply to#60673
On 6/12/17 4:09 PM, HAA wrote:
> Paul Rubin wrote:
>> Richard Owlett <rowlett@cloud85.net> writes:
>>> Is there any online reference available to the how|why|what|etc of
>>> "shadow blocks". [https://archive.org links welcome ;]
>>
>> I think it's well known.  I've certainly heard of them from multiple
>> places.  Also, ArrayForth uses them and the Forth code for the GA144
>> firmware has them (you can download it and convert to HTML).
>>
>> The basic idea was that you'd put your code in screens 2,4,6... and
>> documentation in screens 1,3,5... and then your code editor would have a
>> quick way to flip between a code screen and its shadow screen.
> 
> AFAIK shadows were located on the second half of the storage e.g. if your
> disk/file was 600 blocks then the shadows appeared on blocks 300-599.
> 
>> Because
>> of the low-resolution computer video of the old days, and maybe because
>> of the 1K block size, traditional Forth screens were 16 lines * 64
>> characters.
>>
>> These days screens are larger and have more resolution, so you can write
>> code and comments in a more interspersed and natural style.
> 
> Last I heard Chuck still favored 1K screens as being the optimum size chunk
> of source to manage at one time.  There is something about that.

This strategy goes way back, to the era of very small-capacity floppy 
disks. The offset was usually the capacity of a floppy, so you could 
have your code on one and your shadow blocks on the other, one floppy in 
each drive. FORTH, Inc. systems also had the command Q that would toggle 
back and forth, between the source block and its shadow. Very 
convenient. When we got larger disks, then the offset could be as large 
as you expected your application to be (in blocks).

We also had a "Printing" utility that could print listings 3 blocks/page 
with the source on the left and the shadow on the right. Very easy to 
read that way.

When transitioning to source in files, Forth, Inc. retained the practice 
of having regions of commentary at the beginning of a logical section of 
code, though of course there was a lot more flexibility.

Cheers,
Elizabeth

-- 
Elizabeth D. Rather
FORTH, Inc.
6080 Center Drive, Suite 600
Los Angeles, CA  90045
USA

[toc] | [prev] | [next] | [standalone]


#60771

FromBrad Eckert <hwfwguy@gmail.com>
Date2017-06-14 23:09 -0700
Message-ID<345a8e94-1ea6-47fc-a808-b3bcd3174b9f@googlegroups.com>
In reply to#60627
I once put all of my / comments at column 65, since my FHD monitor had no problem displaying 130 characters across. It had a very shadow blockish look. I should try that style again. Maybe I can make it compatible with automated documentation extraction.

Is there any reason 80 columns is a popular limit, other than ancient terminals and punch cards?

[toc] | [prev] | [next] | [standalone]


#60783

Fromsdwjack69@gmail.com
Date2017-06-15 09:36 -0700
Message-ID<d6dbb460-c84a-4eb7-ab32-9fe04f4fb1ef@googlegroups.com>
In reply to#60627
On Sunday, June 11, 2017 at 2:31:36 PM UTC-5, Richard Owlett wrote:
> I've been around FORTH long enough to be aware of "shadow blocks".
> I'm also sane enough to to recognize that "what I think I 'know' " may 
> bear little or no resemblance to reality ;)
> 
> Is there any online reference available to the how|why|what|etc of 
> "shadow blocks". [https://archive.org links welcome ;]
> 
> I think I have an incipient germ of a possible remedy to a modern 
> documentation problem [enough weasel words?  ;].
> 
> As the saying goes "It is better to remain silent and thought a fool 
> than ..."
> 
> Links anyone?
> TIA

I put source and comments on normal file and use my text editor for updates. Then I install the source to block file with script that uses the simple Forth
text editor to write to the block file. 

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.forth


csiph-web