Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"Nature is very un-American. Nature never hurries." -- William George Jordan


computers / comp.os.vms / Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

SubjectAuthor
* 8-bit charactersPhillip Helbig (undress to reply
`* Re: 8-bit charactersStephen Hoffman
 +* Re: 8-bit charactersJan-Erik Söderholm
 |+- Re: 8-bit charactersStephen Hoffman
 |+* Re: 8-bit charactersArne Vajhøj
 ||`* Re: 8-bit charactersLawrence D’Oliveiro
 || `* Re: 8-bit charactersArne Vajhøj
 ||  +* Re: 8-bit charactersCraig A. Berry
 ||  |+* Re: 8-bit charactersArne Vajhøj
 ||  ||+* Re: 8-bit charactersCraig A. Berry
 ||  |||`- Re: 8-bit charactersLawrence D’Oliveiro
 ||  ||`* Re: 8-bit charactersLawrence D’Oliveiro
 ||  || `- Re: 8-bit charactersLawrence D’Oliveiro
 ||  |`- Re: 8-bit charactersLawrence D’Oliveiro
 ||  `* Re: 8-bit charactersLawrence D’Oliveiro
 ||   `- Re: 8-bit charactersArne Vajhøj
 |`* Re: 8-bit charactersPhillip Helbig (undress to reply
 | `- Re: 8-bit charactersMichael Moroney
 `* Re: 8-bit charactersPhillip Helbig (undress to reply
  `* Re: 8-bit charactersMichael Moroney
   +* Re: 8-bit charactersPhillip Helbig (undress to reply
   |`* Re: 8-bit charactersMichael Moroney
   | `* Re: 8-bit charactersPhillip Helbig (undress to reply
   |  `* Re: 8-bit charactersDave Froble
   |   `* Re: 8-bit charactersMichael Moroney
   |    `* Re: 8-bit charactersArne Vajhøj
   |     `* Re: 8-bit charactersRobert A. Brooks
   |      `* Re: 8-bit charactersSimon Clubley
   |       +* Re: 8-bit charactersRobert A. Brooks
   |       |+- Re: 8-bit charactersMichael Moroney
   |       |`* Re: 8-bit charactersStephen Hoffman
   |       | +- Re: 8-bit charactersArne Vajhøj
   |       | `* Impenetrable code, was: Re: 8-bit charactersSimon Clubley
   |       |  `- Re: Impenetrable code, was: Re: 8-bit charactersDave Froble
   |       `* Re: 8-bit charactersJohn Reagan
   |        +* Trigger warnings, was: Re: 8-bit charactersSimon Clubley
   |        |+* Re: Trigger warnings, was: Re: 8-bit charactersDave Froble
   |        ||`* Re: Trigger warnings, was: Re: 8-bit charactersArne Vajhøj
   |        || +* Re: Trigger warnings, was: Re: 8-bit charactersArne Vajhøj
   |        || |`- Re: Trigger warnings, was: Re: 8-bit charactersNorbert Schönartz
   |        || +* Re: Trigger warnings, was: Re: 8-bit charactersSimon Clubley
   |        || |`- Re: Trigger warnings, was: Re: 8-bit charactersArne Vajhøj
   |        || `* Re: Trigger warnings, was: Re: 8-bit charactersDave Froble
   |        ||  `- Re: Trigger warnings, was: Re: 8-bit charactersArne Vajhøj
   |        |`- Re: Trigger warnings, was: Re: 8-bit charactersJohn Reagan
   |        `* Re: 8-bit charactersDave Froble
   |         `* Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |          +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBill Gunshannon
   |          |`* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |          | `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |          |  `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |          |   +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBill Gunshannon
   |          |   |`- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |          |   `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |          |    +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBill Gunshannon
   |          |    |`* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |          |    | `- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |          |    `- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |          `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |           `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |`* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            | +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            | |`* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            | | `- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            | `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |  `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            |   `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |    `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            |     +- Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersStephen Hoffman
   |            |     `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBill Gunshannon
   |            |      `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBill Gunshannon
   |            |       |`* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       | `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBill Gunshannon
   |            |       |  +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  |`* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            |       |  | +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  | |+* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitJohnny Billquist
   |            |       |  | ||+* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  | |||`- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitJohnny Billquist
   |            |       |  | ||`- Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersJake Hamby
   |            |       |  | |`- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBob Eager
   |            |       |  | `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersStephen Hoffman
   |            |       |  |  `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            |       |  |   `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitJohnny Billquist
   |            |       |  |    `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  |     +- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitRichard Maher
   |            |       |  |     `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitJohnny Billquist
   |            |       |  |      `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  |       `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitJohnny Billquist
   |            |       |  |        `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  |         +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitJohnny Billquist
   |            |       |  |         |`- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBill Gunshannon
   |            |       |  |         `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            |       |  |          +- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  |          `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitSingle Stage to Orbit
   |            |       |  |           +* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  |           |+- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  |           |`* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitSingle Stage to Orbit
   |            |       |  |           | `- Re: Safer programming languages (and walking :-) ), was: Re: 8-bitArne Vajhøj
   |            |       |  |           `- Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersSimon Clubley
   |            |       |  `- Re: Safer programming languages (and walking :-) ), was: Re: 8-bit charactersRich Alderson
   |            |       `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitDave Froble
   |            `* Re: Safer programming languages (and walking :-) ), was: Re: 8-bitBill Gunshannon
   +* Re: 8-bit charactersLawrence D’Oliveiro
   `* Re: 8-bit charactersJon Pinkley

Pages:123456789
Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6lqse$4hf$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22965&group=comp.os.vms#22965

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
Date: Wed, 25 May 2022 18:00:47 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 46
Message-ID: <t6lqse$4hf$2@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <smjo3a$e2a$1@dont-email.me> <smk04g$19rt$1@gioia.aioe.org> <618d84c9$0$692$14726298@news.sunsite.dk> <smk0u9$i36$1@dont-email.me> <smmboi$tku$1@dont-email.me> <0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com> <smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me>
Injection-Date: Wed, 25 May 2022 18:00:47 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="51091e7cd34fcd1064a17af39318e623";
logging-data="4655"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/cZ3Vy7bIq+BMrc79iwhBJmJXT07Kxblk="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:rp187Ic5Vt1mkZOt9D6twWBot7E=
 by: Simon Clubley - Wed, 25 May 2022 18:00 UTC

On 2022-05-24, Dave Froble <davef@tsoft-inc.com> wrote:
> On 5/24/2022 1:31 PM, Simon Clubley wrote:
>>
>> It protects you better than C at the expense of not been able to do
>> everything C does but there are also other languages that help protect
>> you while still allowing you to do the things that C lets you do.
>
> Ok, gauntlet thrown down, and picked up.
>
> Leaving out the specifics of the implementation of DEC Basic, which include not
> thread safe, and other things, I would like to know just what C can do that
> Basic can not do.
>
> I will admit that some nice things such as safe for kernel code, threads, and
> such are not available with the implementation. But what if the exact same
> language was implemented with a new compiler that would produce thread safe and
> kernel safe code was implemented? Then what could C do that Basic could not do?
>

You can't wave away the discussion by claiming some magical new compiler
would solve all the issues with using Basic in kernel mode.

In addition to the answers you have received, Basic also comes with a
heavy RTL which is most certainly not suitable for running in kernel mode.

Any such new language capable of running in kernel mode would be Basic
in name only.

We had a discussion recently about building and managing in-memory trees
of objects/records/etc in Basic. Your solution was to use a contiguous
array of records with internal record numbers within the array to move
around in the structure.

If you can't even do proper memory management in DEC Basic, then it sure
as hell isn't going anywhere near a device driver or something else that
needs to maintain a proper in-memory tree.

I should also point out that, even on an OS that used Basic as its primary
userland programming language (ie: RSTS/E), all the kernel stuff was still
written in Macro-11.

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit

<a7e2361f13f0345d928e80f6e69853424054a81f.camel@munted.eu>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22966&group=comp.os.vms#22966

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!palladium.buellnet!not-for-mail
From: alex.bu...@munted.eu (Single Stage to Orbit)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
Date: Wed, 25 May 2022 18:39:36 +0100
Organization: One very high maintenance cat
Message-ID: <a7e2361f13f0345d928e80f6e69853424054a81f.camel@munted.eu>
References: <t6j88d$1136$1@gioia.aioe.org>
<memo.20220525092232.11824k@jgd.cix.co.uk> <t6l5sf$39j$1@gioia.aioe.org>
<t6le0l$d4d$1@news.misty.com>
Reply-To: alex.buell@munted.eu
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Injection-Info: solani.org;
logging-data="1084013"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Evolution 3.42.4
Cancel-Lock: sha1:/uC73Azyw3wD/Om2+Jjtqaa9wOE=
X-User-ID: eJwNwgcRwDAMBDBM3n44XuEPoT3JxMkn1M3V3i8LBr++1VFCAbxVj9o0RD3eefNNEZJmMkHBO8shcjn3AV35FeA=
In-Reply-To: <t6le0l$d4d$1@news.misty.com>
 by: Single Stage to Orbi - Wed, 25 May 2022 17:39 UTC

On Wed, 2022-05-25 at 16:21 +0200, Johnny Billquist wrote:
> The 16 bit indirect pointers might sound good, but it's partially
> since the 6502 only have 8 bit registers, so you are forced to go
> there.And of course, another implication is that the stack can only
> be 256 bytes on the 6502 as well...

The 65816 attempted to fix these issues by allowing muitple stacks,
IIRC
--
Tactical Nuclear Kittens

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6m28s$aau$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22967&group=comp.os.vms#22967

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: dav...@tsoft-inc.com (Dave Froble)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Date: Wed, 25 May 2022 16:06:25 -0400
Organization: A noiseless patient Spider
Lines: 75
Message-ID: <t6m28s$aau$1@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <smk04g$19rt$1@gioia.aioe.org>
<618d84c9$0$692$14726298@news.sunsite.dk> <smk0u9$i36$1@dont-email.me>
<smmboi$tku$1@dont-email.me>
<0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com>
<smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me>
<6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me>
<6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me>
<t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me>
<t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me>
<t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me>
<t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 25 May 2022 20:06:52 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="51d3ff2a5e5769c69cfe2da754a478b9";
logging-data="10590"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18kQX4+o1y/OgznhXsoku0UrrArI4fMSwg="
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:+LHU5HIg0tI+bHr0hm2+M0FuaO4=
In-Reply-To: <t6lqse$4hf$2@dont-email.me>
 by: Dave Froble - Wed, 25 May 2022 20:06 UTC

On 5/25/2022 2:00 PM, Simon Clubley wrote:
> On 2022-05-24, Dave Froble <davef@tsoft-inc.com> wrote:
>> On 5/24/2022 1:31 PM, Simon Clubley wrote:
>>>
>>> It protects you better than C at the expense of not been able to do
>>> everything C does but there are also other languages that help protect
>>> you while still allowing you to do the things that C lets you do.
>>
>> Ok, gauntlet thrown down, and picked up.
>>
>> Leaving out the specifics of the implementation of DEC Basic, which include not
>> thread safe, and other things, I would like to know just what C can do that
>> Basic can not do.
>>
>> I will admit that some nice things such as safe for kernel code, threads, and
>> such are not available with the implementation. But what if the exact same
>> language was implemented with a new compiler that would produce thread safe and
>> kernel safe code was implemented? Then what could C do that Basic could not do?
>>
>
> You can't wave away the discussion by claiming some magical new compiler
> would solve all the issues with using Basic in kernel mode.

Sure I can.

Language syntax is one thing. How it's implemented is another.

Not just Basic has multiple implementations of the language. How many
implementations of C are there?

> In addition to the answers you have received, Basic also comes with a
> heavy RTL which is most certainly not suitable for running in kernel mode.

Yes, DEC/Compaq/HP/VSI Basic has that implementation, and for a jack of all
trades, that may be fine, while it does preclude some usage, such as OS
implementation.

> Any such new language capable of running in kernel mode would be Basic
> in name only.

That doesn't make any sense. There are already various implementations of Basic
that are rather different. But the syntax and such is rather similar.

> We had a discussion recently about building and managing in-memory trees
> of objects/records/etc in Basic. Your solution was to use a contiguous
> array of records with internal record numbers within the array to move
> around in the structure.

That was one suggestion, and if I remember correctly, I mentioned others. I
seem to recall mentioning allocating memory and using pointers. You like to
pick and choose only that which supports your claims?

When there are multiple methods to do a job, what is wrong with choosing the
simplest and easiest, if it will do the job?

> If you can't even do proper memory management in DEC Basic, then it sure
> as hell isn't going anywhere near a device driver or something else that
> needs to maintain a proper in-memory tree.

Define "proper memory management". You may see that your claim is bullshit.

> I should also point out that, even on an OS that used Basic as its primary
> userland programming language (ie: RSTS/E), all the kernel stuff was still
> written in Macro-11.

As was most OSs in that time frame. Your mention of Basic+ shows that there are
multiple implementations of Basic, in case you were not aware.

--
David Froble Tel: 724-529-0450
Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA 15486

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit

<t6m9vj$b61$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22968&group=comp.os.vms#22968

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!jazQyxryRFiI4FEZ51SAvA.user.46.165.242.75.POSTED!not-for-mail
From: chris-no...@tridac.net (chris)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
Date: Wed, 25 May 2022 23:18:27 +0100
Organization: Aioe.org NNTP Server
Message-ID: <t6m9vj$b61$1@gioia.aioe.org>
References: <t6j88d$1136$1@gioia.aioe.org> <memo.20220525092232.11824k@jgd.cix.co.uk> <t6l5sf$39j$1@gioia.aioe.org> <t6le0l$d4d$1@news.misty.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="11457"; posting-host="jazQyxryRFiI4FEZ51SAvA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; SunOS sun4u; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
X-Notice: Filtered by postfilter v. 0.9.2
 by: chris - Wed, 25 May 2022 22:18 UTC

On 05/25/22 15:21, Johnny Billquist wrote:
> On 2022-05-25 14:02, chris wrote:
>> On 05/25/22 09:22, John Dallman wrote:
>>> In article<t6j88d$1136$1@gioia.aioe.org>, chris-nospam@tridac.net
>>> (chris)
>>> wrote:
>>>
>>>> What made the 6502 a bit special was the variety of addressing
>>>> modes . . . Not even close to the PDP11 of the time, but probably
>>>> the best they could do with the process technology of the day..
>>>
>>> You could build more complex 8-bit CPUs at the time, such as the 8080.
>>> The 6502 was specifically designed to be easy and cheap to produce as a
>>> microcontroller. Its success in home computers was because it turned out
>>> to be good at running interpreters.
>>
>> I would suggest that was because of the indirect addressing modes, which
>> in theory, allowed up to 128 x 16 bit pointers in page zero. The
>> other thing that made 6502 faster than Intel of the time was the fact
>> that condition codes, zero, negative etc, were set on a load, as pdp11
>> in fact (bringing it back on topic), whereas the wooden 8080 and similar
>> needed a tst instruction before a branch. This alone saves a lot of
>> cycles in a tight instruction stream.
>
> The 16 bit indirect pointers might sound good, but it's partially since
> the 6502 only have 8 bit registers, so you are forced to go there. And
> of course, another implication is that the stack can only be 256 bytes
> on the 6502 as well...
>
> Setting of condition codes on load is a good point though.
> This is somewhat offset by the fact that the Z80 (can't remember if the
> 8080 had it) block instructions, which in the end makes for even tighter
> operations, since they already do bounds checking, and updating
> pointers, in addition to either moving or checking.
> Classic things like moving a nul-terminated string on a Z80:
>
> LD HL,SRC
> LD DE,DST
> LD BC,MAX
> XOR A
> LOOP: CP (HL)
> JR Z,DONE
> LDI
> JP PE,LOOP
> DONE:
>
> Four instructions isn't too shabby. Not sure how many that would become
> with 6502. And you actually have a choice without extra cost on what
> character to terminate on. Don't have to be NUL.
>
> Of course, just searching for a byte is just a single instruction
> (CPIR), so that I won't even mention any further.
>
> Basically, as long as you only have to deal with 8 bit data, and you
> don't really even want to deal with 16 bit pointers, then the 6502 is
> pretty nice. But it quickly turns ugly from there.
>

Well, we can agree to differ :-). Other things that were an impediment
for the 8080 were the need for +5. -5 and +12v supply, not to mention
the need for a 2 phase clock. That was only fixed with the 8085. Both
those things involve considerable added hardware cost to a project.

I guess what it comes down to is best results are achieved with the
processor you are most familiar with. Z80 was pretty good, but later
Motorola efforts like the 6809 were even more capable.

Much more interesting time in computing, with new developments almost
every month, but it was the 68000 and later that made possible
affordable desktop workstations for technical work.

>
>>> John (who was one of two students who wrote a FORTH interpreter in a
>>> day)
>>
>> That is a great achievement, but how big was the dictionary ?. A
>> friend wrote a 68000 cross assembler on an Apple II in a few days
>> and it produced good code.
>
> Hmm? Produce good code? It's an assembler, right? So it should literally
> just be a 1:1 mapping between the source and the code generated. There
> isn't exactly anything more an assembler would do.
>
> But anyway, writing a full assembler is still some work. Well done.
>
>> All history now, but still feel privileged to have been part of
>> that tech revolution is some small way. We thought anything was
>> possible at the time...
>
> Anything is still possible. It has only become more difficult. :-)
>

Far too much abstraction and not enough metal at every step now...

Chris

> Johnny

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<628ec479$0$704$14726298@news.sunsite.dk>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22970&group=comp.os.vms#22970

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!dotsrc.org!filter.dotsrc.org!news.dotsrc.org!not-for-mail
Date: Wed, 25 May 2022 20:06:16 -0400
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Content-Language: en-US
Newsgroups: comp.os.vms
References: <smg4a2$boh$1@gioia.aioe.org>
<618d84c9$0$692$14726298@news.sunsite.dk> <smk0u9$i36$1@dont-email.me>
<smmboi$tku$1@dont-email.me>
<0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com>
<smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me>
<6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me>
<6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me>
<t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me>
<t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me>
<t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me>
<t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me>
<t6m28s$aau$1@dont-email.me>
From: arn...@vajhoej.dk (Arne Vajhøj)
In-Reply-To: <t6m28s$aau$1@dont-email.me>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 52
Message-ID: <628ec479$0$704$14726298@news.sunsite.dk>
Organization: SunSITE.dk - Supporting Open source
NNTP-Posting-Host: 9032d841.news.sunsite.dk
X-Trace: 1653523577 news.sunsite.dk 704 arne@vajhoej.dk/68.9.63.232:53005
X-Complaints-To: staff@sunsite.dk
 by: Arne Vajhøj - Thu, 26 May 2022 00:06 UTC

On 5/25/2022 4:06 PM, Dave Froble wrote:
> On 5/25/2022 2:00 PM, Simon Clubley wrote:
>> On 2022-05-24, Dave Froble <davef@tsoft-inc.com> wrote:
>>> On 5/24/2022 1:31 PM, Simon Clubley wrote:
>>>>
>>>> It protects you better than C at the expense of not been able to do
>>>> everything C does but there are also other languages that help protect
>>>> you while still allowing you to do the things that C lets you do.
>>>
>>> Ok, gauntlet thrown down, and picked up.
>>>
>>> Leaving out the specifics of the implementation of DEC Basic, which
>>> include not
>>> thread safe, and other things, I would like to know just what C can
>>> do that
>>> Basic can not do.
>>>
>>> I will admit that some nice things such as safe for kernel code,
>>> threads, and
>>> such are not available with the implementation.  But what if the
>>> exact same
>>> language was implemented with a new compiler that would produce
>>> thread safe and
>>> kernel safe code was implemented?  Then what could C do that Basic
>>> could not do?
>>
>> You can't wave away the discussion by claiming some magical new compiler
>> would solve all the issues with using Basic in kernel mode.
>
> Sure I can.
>
> Language syntax is one thing.  How it's implemented is another.

Yes.

It seems obvious to me that a Basic compiler could be implemented
that could do it.

I mean what characterize Basic? A few control structure, a few
data types, a few operators and a few functions.

That does not prevent anything. As Basic is not excluding any
extensions.

One could create a Basic with a pointer type etc. that
allowed kernel code.

But unless such a compiler is created then it has
no practical impact.

Arne

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<mddy1ypxea1.fsf@panix5.panix.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22973&group=comp.os.vms#22973

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!panix!.POSTED.panix5.panix.com!not-for-mail
From: new...@alderson.users.panix.com (Rich Alderson)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
Date: 25 May 2022 21:40:06 -0400
Organization: PANIX Public Access Internet and UNIX, NYC
Lines: 26
Sender: alderson+news@panix5.panix.com
Message-ID: <mddy1ypxea1.fsf@panix5.panix.com>
References: <smg4a2$boh$1@gioia.aioe.org> <t6gh98$10j$1@dont-email.me> <jf28s0Ftod1U1@mid.individual.net> <jf2fqfFiphjU1@mid.individual.net> <t6iksp$bfh$1@reader1.panix.com> <jf45m0Fsh5eU1@mid.individual.net> <mddh75ea7fo.fsf@panix5.panix.com> <c9ebf2b9-a97c-44ad-80d5-f4e5605eea96n@googlegroups.com>
Injection-Info: reader1.panix.com; posting-host="panix5.panix.com:166.84.1.5";
logging-data="29099"; mail-complaints-to="abuse@panix.com"
X-Newsreader: Gnus v5.7/Emacs 22.3
 by: Rich Alderson - Thu, 26 May 2022 01:40 UTC

gah4 <gah4@u.washington.edu> writes:

> On Tuesday, May 24, 2022 at 3:31:58 PM UTC-7, Rich Alderson wrote:

> (snip)

>> The 1401 was my first computer, and I don't recall using octal. It was a BCD
>> computer, and we learned the character codes for that kind of hacking...

> Looking at:

> https://en.wikipedia.org/wiki/IBM_1401#Character_and_op_codes

> it seems both are right.

> Arithmetic and addressing is BCD. Characters and opcodes use all
> six bits (BA8421) and could be represented in octal.

Could be, but never were in my experience. That would have meant mixing bases,
and the 14xx family are *decimal* machines.

--
Rich Alderson news@alderson.users.panix.com
Audendum est, et veritas investiganda; quam etiamsi non assequamur,
omnino tamen proprius, quam nunc sumus, ad eam perveniemus.
--Galen

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<b6c94cfc-288c-46cd-96db-ed176ef3cb58n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22974&group=comp.os.vms#22974

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a37:6650:0:b0:6a3:5fb9:7ff7 with SMTP id a77-20020a376650000000b006a35fb97ff7mr16943241qkc.90.1653547986411;
Wed, 25 May 2022 23:53:06 -0700 (PDT)
X-Received: by 2002:a05:620a:f05:b0:6a5:814d:541 with SMTP id
v5-20020a05620a0f0500b006a5814d0541mr7040015qkl.77.1653547986191; Wed, 25 May
2022 23:53:06 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!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.os.vms
Date: Wed, 25 May 2022 23:53:05 -0700 (PDT)
In-Reply-To: <mddy1ypxea1.fsf@panix5.panix.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:950e:fadd:2e0:302f;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:950e:fadd:2e0:302f
References: <smg4a2$boh$1@gioia.aioe.org> <t6gh98$10j$1@dont-email.me>
<jf28s0Ftod1U1@mid.individual.net> <jf2fqfFiphjU1@mid.individual.net>
<t6iksp$bfh$1@reader1.panix.com> <jf45m0Fsh5eU1@mid.individual.net>
<mddh75ea7fo.fsf@panix5.panix.com> <c9ebf2b9-a97c-44ad-80d5-f4e5605eea96n@googlegroups.com>
<mddy1ypxea1.fsf@panix5.panix.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b6c94cfc-288c-46cd-96db-ed176ef3cb58n@googlegroups.com>
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
From: gah...@u.washington.edu (gah4)
Injection-Date: Thu, 26 May 2022 06:53:06 +0000
Content-Type: text/plain; charset="UTF-8"
 by: gah4 - Thu, 26 May 2022 06:53 UTC

On Wednesday, May 25, 2022 at 6:40:13 PM UTC-7, Rich Alderson wrote:

(snip, I wrote)
> > it seems both are right.
> > Arithmetic and addressing is BCD. Characters and opcodes use all
> > six bits (BA8421) and could be represented in octal.

> Could be, but never were in my experience. That would have meant mixing bases,
> and the 14xx family are *decimal* machines.

It does seem an unusual machine, but mixed base seems to be the way.

Memory comes as 4000, 8000, 12000, or 16000 characters.
Addresses have three decimal digits, and then four binary digits,
the BA bits of the high and low digit. So already mixed base.

But there are 64 opcodes in six bits, the BA8421 bits, and there
are 64 characters in the character set, with punch codes for them.

The examples in the Wikipedia page use octal for instructions, but
I didn't look up any IBM manuals.

I believe that there are machines with decimal coded opcodes,
but this doesn't seem to be one of them. Yes, fun with mixed bases.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<924cdd2c-c60d-4c7d-b95f-62ea41b27744n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22975&group=comp.os.vms#22975

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a37:6782:0:b0:6a3:43c2:609a with SMTP id b124-20020a376782000000b006a343c2609amr21639963qkc.527.1653561011869;
Thu, 26 May 2022 03:30:11 -0700 (PDT)
X-Received: by 2002:ac8:5910:0:b0:2f9:b9bd:92b2 with SMTP id
16-20020ac85910000000b002f9b9bd92b2mr8261457qty.191.1653561011714; Thu, 26
May 2022 03:30:11 -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.os.vms
Date: Thu, 26 May 2022 03:30:11 -0700 (PDT)
In-Reply-To: <mddy1ypxea1.fsf@panix5.panix.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:453e:af96:d2a8:3401;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:453e:af96:d2a8:3401
References: <smg4a2$boh$1@gioia.aioe.org> <t6gh98$10j$1@dont-email.me>
<jf28s0Ftod1U1@mid.individual.net> <jf2fqfFiphjU1@mid.individual.net>
<t6iksp$bfh$1@reader1.panix.com> <jf45m0Fsh5eU1@mid.individual.net>
<mddh75ea7fo.fsf@panix5.panix.com> <c9ebf2b9-a97c-44ad-80d5-f4e5605eea96n@googlegroups.com>
<mddy1ypxea1.fsf@panix5.panix.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <924cdd2c-c60d-4c7d-b95f-62ea41b27744n@googlegroups.com>
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
From: gah...@u.washington.edu (gah4)
Injection-Date: Thu, 26 May 2022 10:30:11 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2073
 by: gah4 - Thu, 26 May 2022 10:30 UTC

On Wednesday, May 25, 2022 at 6:40:13 PM UTC-7, Rich Alderson wrote:

(snip)

> > Arithmetic and addressing is BCD. Characters and opcodes use all
> > six bits (BA8421) and could be represented in octal.

> Could be, but never were in my experience. That would have meant mixing bases,
> and the 14xx family are *decimal* machines.

Looking at an actual IBM manual, it seems that the 64 opcodes map to
the 64 characters in the character set, and those characters are used
to represent them. That is, base 64.

Some others might represent those in octal, but yes I don't see IBM doing it.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6og6d$tip$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22976&group=comp.os.vms#22976

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
Date: Thu, 26 May 2022 18:16:45 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 112
Message-ID: <t6og6d$tip$1@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <618d84c9$0$692$14726298@news.sunsite.dk> <smk0u9$i36$1@dont-email.me> <smmboi$tku$1@dont-email.me> <0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com> <smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me>
Injection-Date: Thu, 26 May 2022 18:16:45 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="2d8d38043848a25669ac37b8e4a509f3";
logging-data="30297"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+AWymimBsJc+4QghoYbjQWNdHEblFw++4="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:0r9+3hvKvjEAv20z2biIzg8mQGo=
 by: Simon Clubley - Thu, 26 May 2022 18:16 UTC

On 2022-05-25, Dave Froble <davef@tsoft-inc.com> wrote:
> On 5/25/2022 2:00 PM, Simon Clubley wrote:
>> On 2022-05-24, Dave Froble <davef@tsoft-inc.com> wrote:
>>> On 5/24/2022 1:31 PM, Simon Clubley wrote:
>>>>
>>>> It protects you better than C at the expense of not been able to do
>>>> everything C does but there are also other languages that help protect
>>>> you while still allowing you to do the things that C lets you do.
>>>
>>> Ok, gauntlet thrown down, and picked up.
>>>
>>> Leaving out the specifics of the implementation of DEC Basic, which include not
>>> thread safe, and other things, I would like to know just what C can do that
>>> Basic can not do.
>>>
>>> I will admit that some nice things such as safe for kernel code, threads, and
>>> such are not available with the implementation. But what if the exact same
>>> language was implemented with a new compiler that would produce thread safe and
>>> kernel safe code was implemented? Then what could C do that Basic could not do?
>>>
>>
>> You can't wave away the discussion by claiming some magical new compiler
>> would solve all the issues with using Basic in kernel mode.
>
> Sure I can.
>
> Language syntax is one thing. How it's implemented is another.
>
> Not just Basic has multiple implementations of the language. How many
> implementations of C are there?
>
>> In addition to the answers you have received, Basic also comes with a
>> heavy RTL which is most certainly not suitable for running in kernel mode.
>
> Yes, DEC/Compaq/HP/VSI Basic has that implementation, and for a jack of all
> trades, that may be fine, while it does preclude some usage, such as OS
> implementation.
>
>> Any such new language capable of running in kernel mode would be Basic
>> in name only.
>
> That doesn't make any sense. There are already various implementations of Basic
> that are rather different. But the syntax and such is rather similar.
>

Basic implementations all have various features in common, such as (for
example) more higher-level and dynamic string handling than in C.
To support that and other functionality requires a serious runtime behind
it, regardless of the Basic dialect in use.

In kernel mode, even C on VMS only has a restricted runtime available and
that was functionality that DEC had to add in.

Due to runtime limitations, any Basic running in kernel mode is going to
be basically C in functionality, so you would be writing code that looked
like Basic syntax on the surface, but was actually C style code where you
had to specify _everything_ that was going on.

That's what I mean by a kernel-mode Basic being Basic in name only.

>> We had a discussion recently about building and managing in-memory trees
>> of objects/records/etc in Basic. Your solution was to use a contiguous
>> array of records with internal record numbers within the array to move
>> around in the structure.
>
> That was one suggestion, and if I remember correctly, I mentioned others. I
> seem to recall mentioning allocating memory and using pointers. You like to
> pick and choose only that which supports your claims?
>

No. One of the questions of that discussion was how could you point a Basic
record structure at a random point in memory and then access the memory
at that location through the record structure only. A followup question was
how could you chain a set of instances of those record types with a pointer
in each record instance chaining to the next instance.

I don't recall ever seeing an answer to those questions.

> When there are multiple methods to do a job, what is wrong with choosing the
> simplest and easiest, if it will do the job?
>
>> If you can't even do proper memory management in DEC Basic, then it sure
>> as hell isn't going anywhere near a device driver or something else that
>> needs to maintain a proper in-memory tree.
>
> Define "proper memory management". You may see that your claim is bullshit.
>

Here's something I have been looking at recently, which is the USB EHCI
specification:

https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/ehci-specification-for-usb.pdf

Look at chapter 3, which documents the data structures for the controller.

Notice how there are multiple chained lists of data structures in memory,
each with its own layout. How would you implement something like that in
DEC Basic ?

In C, you just define a struct data type, and then create pointers of that
data type, or cast from a void * pointer, both within the structure (or a
parent structure) and outside of it. How do you do that in DEC Basic ?

Even if you extend DEC Basic to have proper pointer data types, you still
have the problem that you can't run Basic in kernel mode as-is due to
Basic runtime requirements.

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6ogk8$tip$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22977&group=comp.os.vms#22977

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
Date: Thu, 26 May 2022 18:24:09 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <t6ogk8$tip$2@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <smk0u9$i36$1@dont-email.me> <smmboi$tku$1@dont-email.me> <0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com> <smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me> <628ec479$0$704$14726298@news.sunsite.dk>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 26 May 2022 18:24:09 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="2d8d38043848a25669ac37b8e4a509f3";
logging-data="30297"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX181bioj80hxLeb/H50EwtJ4qq5so4ZluDc="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:ATEYcV9E0On/8CZDgSG0YHnpcPs=
 by: Simon Clubley - Thu, 26 May 2022 18:24 UTC

On 2022-05-25, Arne Vajhøj <arne@vajhoej.dk> wrote:
>
> Yes.
>
> It seems obvious to me that a Basic compiler could be implemented
> that could do it.
>
> I mean what characterize Basic? A few control structure, a few
> data types, a few operators and a few functions.
>
> That does not prevent anything. As Basic is not excluding any
> extensions.
>

Careful Arne. The features that make Basic the language it is come
with a heavy runtime but code running in kernel mode has only a
restricted runtime (even for C) due to the nature of kernel mode.

Take away those features and you are left with a Basic that has
Basic style syntax but with C levels of functionality.

> One could create a Basic with a pointer type etc. that
> allowed kernel code.
>
> But unless such a compiler is created then it has
> no practical impact.
>

And that is absolutely correct provided you extend it to the runtime
as well. The operating systems you wish to run this kernel mode Basic
on would need support adding for even a minimal Basic runtime.

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<jfa07bF1nkpU1@mid.individual.net>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22978&group=comp.os.vms#22978

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: bill.gun...@gmail.com (Bill Gunshannon)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Date: Thu, 26 May 2022 14:46:02 -0400
Lines: 25
Message-ID: <jfa07bF1nkpU1@mid.individual.net>
References: <smg4a2$boh$1@gioia.aioe.org> <smk0u9$i36$1@dont-email.me>
<smmboi$tku$1@dont-email.me>
<0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com>
<smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me>
<6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me>
<6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me>
<t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me>
<t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me>
<t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me>
<t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me>
<t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: individual.net UVH/EfKWplc4Gmbtf5ywQA++fkt9T1EwTDIre1Qh2SFiZipU2Y
Cancel-Lock: sha1:pgqYMrOz+HrjHPN+hYdmg3Od3aM=
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.8.1
Content-Language: en-US
In-Reply-To: <t6og6d$tip$1@dont-email.me>
 by: Bill Gunshannon - Thu, 26 May 2022 18:46 UTC

On 5/26/22 14:16, Simon Clubley wrote:
>
>
> No. One of the questions of that discussion was how could you point a Basic
> record structure at a random point in memory and then access the memory
> at that location through the record structure only. A followup question was
> how could you chain a set of instances of those record types with a pointer
> in each record instance chaining to the next instance.
>
> I don't recall ever seeing an answer to those questions.
>

I really hate to burst your bubble (well, no, not really :-) but
while cumbersome because it is not the intended use, it is possible
in some dialects of BASIC. In particular, TRS-80 BASIC. Using
combinations of arrays, PEEK(), POKE() and VARPTR() I could certainly
do that.

You need to learn more BASIC. :-)

Oh, and I would need to take a look at the documentation again but I
suspect it could be easily done in Basic09.

bill

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6ojmt$j2e$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22979&group=comp.os.vms#22979

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
Date: Thu, 26 May 2022 19:16:45 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 46
Message-ID: <t6ojmt$j2e$1@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <smmboi$tku$1@dont-email.me> <0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com> <smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me> <jfa07bF1nkpU1@mid.individual.net>
Injection-Date: Thu, 26 May 2022 19:16:45 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="2d8d38043848a25669ac37b8e4a509f3";
logging-data="19534"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18k+qWnxaDihxFxP1YxMMfNKAQF0h3tic0="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:Y9xktN2X6cjTn/44mUCOinUB9X4=
 by: Simon Clubley - Thu, 26 May 2022 19:16 UTC

On 2022-05-26, Bill Gunshannon <bill.gunshannon@gmail.com> wrote:
> On 5/26/22 14:16, Simon Clubley wrote:
>>
>>
>> No. One of the questions of that discussion was how could you point a Basic
>> record structure at a random point in memory and then access the memory
>> at that location through the record structure only. A followup question was
>> how could you chain a set of instances of those record types with a pointer
>> in each record instance chaining to the next instance.
>>
>> I don't recall ever seeing an answer to those questions.
>>
>
>
> I really hate to burst your bubble (well, no, not really :-) but

:-)

> while cumbersome because it is not the intended use, it is possible
> in some dialects of BASIC. In particular, TRS-80 BASIC. Using
> combinations of arrays, PEEK(), POKE() and VARPTR() I could certainly
> do that.
>
> You need to learn more BASIC. :-)
>

Aware of peek and poke in some microcontroller Basic implementations.
They return/set bytes/words/longwords at the memory location specified.
You are not writing kernel code (or application code) in 2022 by doing
the equivalent of "uint32_t *ptr" only in your code instead of using
structures/records that model the memory block at the given location.

As per the question I just asked, how would you define a record
structure and access a block of memory through the record structure
at a random memory location and how would you chain together instances
of these structures in memory ?

In C, it's easy. You define a struct data type with forward links within
the structure as required and with pointers of that data type outside
of the structure as required.

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<b06d3dd8-2a44-481c-8137-f04ce473f587n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22980&group=comp.os.vms#22980

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:ac8:7d81:0:b0:2f3:ca7a:653b with SMTP id c1-20020ac87d81000000b002f3ca7a653bmr30362314qtd.638.1653596377031;
Thu, 26 May 2022 13:19:37 -0700 (PDT)
X-Received: by 2002:a05:6214:768:b0:462:1f65:8c5c with SMTP id
f8-20020a056214076800b004621f658c5cmr23317012qvz.32.1653596376836; Thu, 26
May 2022 13:19:36 -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.vms
Date: Thu, 26 May 2022 13:19:36 -0700 (PDT)
In-Reply-To: <t6ojmt$j2e$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:46b0:abc0:710e:96e9:d8f0:22ab;
posting-account=OGFVHQoAAAASiNAamRQec8BtkuXxYFnQ
NNTP-Posting-Host: 2600:1700:46b0:abc0:710e:96e9:d8f0:22ab
References: <smg4a2$boh$1@gioia.aioe.org> <smmboi$tku$1@dont-email.me>
<0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com> <smroqk$f6s$1@dont-email.me>
<sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk>
<smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk>
<sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me>
<t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me>
<t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me>
<jfa07bF1nkpU1@mid.individual.net> <t6ojmt$j2e$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b06d3dd8-2a44-481c-8137-f04ce473f587n@googlegroups.com>
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
From: jake.ha...@gmail.com (Jake Hamby)
Injection-Date: Thu, 26 May 2022 20:19:37 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Jake Hamby - Thu, 26 May 2022 20:19 UTC

On Thursday, May 26, 2022 at 12:16:48 PM UTC-7, Simon Clubley wrote:
> > I really hate to burst your bubble (well, no, not really :-) but
> :-)
> > while cumbersome because it is not the intended use, it is possible
> > in some dialects of BASIC. In particular, TRS-80 BASIC. Using
> > combinations of arrays, PEEK(), POKE() and VARPTR() I could certainly
> > do that.
> >
> > You need to learn more BASIC. :-)
> >
> Aware of peek and poke in some microcontroller Basic implementations.
> They return/set bytes/words/longwords at the memory location specified.
> You are not writing kernel code (or application code) in 2022 by doing
> the equivalent of "uint32_t *ptr" only in your code instead of using
> structures/records that model the memory block at the given location.
>
> As per the question I just asked, how would you define a record
> structure and access a block of memory through the record structure
> at a random memory location and how would you chain together instances
> of these structures in memory ?

As an American, I didn't get a chance to learn about the wonders of BBC BASIC until quite recently, when I had a chance to teach myself RISC OS via the Raspberry Pi edition of the new open-source OS. Quite an interesting OS.

Sophie Wilson is a genius in my book for two reasons: the clever design of the original ARM instruction set and BBC BASIC. The language has a few odd choices, like case sensitivity, but some amazing features, including a built-in assembler (6502 for the original, ARM for RISC OS), which beats the heck out of typing in lines of decimal or hex digits of machine code from a magazine. Instead, you got to type in the assembly code and maybe learn something. I wish I'd had an Archimedes as a kid.

BBC BASIC is structured and people did use it on RISC OS for GUI programming (via the OS's "WIMP" APIs) but in a fairly ugly way: you can DIM a block of bytes and then read/write offsets into it, and in so doing fill in the OS's data structures in the same way that an asm programmer would, although not in the way that you or I would want or expect from a HLL.

The one thing BBC BASIC doesn't readily allow (and VMS BASIC does): callbacks from native code into BASIC. The only reason it works reasonably well for RISC OS GUI programs is that the GUI is cooperatively multitasking, and the event loop, including "wait for next event", can be managed from the BASIC side.

Regards,
Jake

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<19acc883-e90c-43b7-b68e-fbbc9cad147fn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22983&group=comp.os.vms#22983

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:98a:b0:6a3:840f:96d1 with SMTP id x10-20020a05620a098a00b006a3840f96d1mr15671999qkx.286.1653598271890;
Thu, 26 May 2022 13:51:11 -0700 (PDT)
X-Received: by 2002:a05:620a:1902:b0:5f1:8f5d:b0f2 with SMTP id
bj2-20020a05620a190200b005f18f5db0f2mr26338774qkb.60.1653598271649; Thu, 26
May 2022 13:51:11 -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.os.vms
Date: Thu, 26 May 2022 13:51:11 -0700 (PDT)
In-Reply-To: <jfa07bF1nkpU1@mid.individual.net>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:f53c:334:9720:d2f2;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:f53c:334:9720:d2f2
References: <smg4a2$boh$1@gioia.aioe.org> <smk0u9$i36$1@dont-email.me>
<smmboi$tku$1@dont-email.me> <0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com>
<smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk>
<smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk>
<sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me>
<t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me>
<t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me>
<jfa07bF1nkpU1@mid.individual.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <19acc883-e90c-43b7-b68e-fbbc9cad147fn@googlegroups.com>
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
From: gah...@u.washington.edu (gah4)
Injection-Date: Thu, 26 May 2022 20:51:11 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 3038
 by: gah4 - Thu, 26 May 2022 20:51 UTC

On Thursday, May 26, 2022 at 11:46:07 AM UTC-7, Bill Gunshannon wrote:

(snip)

> You need to learn more BASIC. :-)
> Oh, and I would need to take a look at the documentation again but I
> suspect it could be easily done in Basic09.

Years ago, I had OS/9 running on my TRS-80 color computer.

The manual is here:

https://colorcomputerarchive.com/repo/Documents/Manuals/Programming/BASIC09%20Programming%20Language%20Reference%20Manual%20-%20Revision%20H%20(Microware%20System%20Corp).pdf

I adapted some Teac FD55F, 80 track two side, floppy drives to it, rewriting the floppy driver to use them.
(That is, about the time that MS-DOS was using 40 track drives.)

I had both BASIC09 and the OS/9 C compiler running.
I suspect I still have the disks, and could get it running again.

And yes, BASIC09 is not much like other versions of BASIC.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<mdd8rqo3qp7.fsf@panix5.panix.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22984&group=comp.os.vms#22984

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!panix!.POSTED.panix5.panix.com!not-for-mail
From: new...@alderson.users.panix.com (Rich Alderson)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
Date: 26 May 2022 17:54:28 -0400
Organization: PANIX Public Access Internet and UNIX, NYC
Lines: 34
Sender: alderson+news@panix5.panix.com
Message-ID: <mdd8rqo3qp7.fsf@panix5.panix.com>
References: <smg4a2$boh$1@gioia.aioe.org> <t6gh98$10j$1@dont-email.me> <jf28s0Ftod1U1@mid.individual.net> <jf2fqfFiphjU1@mid.individual.net> <t6iksp$bfh$1@reader1.panix.com> <jf45m0Fsh5eU1@mid.individual.net> <mddh75ea7fo.fsf@panix5.panix.com> <c9ebf2b9-a97c-44ad-80d5-f4e5605eea96n@googlegroups.com> <mddy1ypxea1.fsf@panix5.panix.com> <924cdd2c-c60d-4c7d-b95f-62ea41b27744n@googlegroups.com>
Injection-Info: reader1.panix.com; posting-host="panix5.panix.com:166.84.1.5";
logging-data="29878"; mail-complaints-to="abuse@panix.com"
X-Newsreader: Gnus v5.7/Emacs 22.3
 by: Rich Alderson - Thu, 26 May 2022 21:54 UTC

gah4 <gah4@u.washington.edu> writes:

> On Wednesday, May 25, 2022 at 6:40:13 PM UTC-7, Rich Alderson wrote:

> (snip)

>>> Arithmetic and addressing is BCD. Characters and opcodes use all
>>> six bits (BA8421) and could be represented in octal.

>> Could be, but never were in my experience. That would have meant mixing
>> bases, and the 14xx family are *decimal* machines.

> Looking at an actual IBM manual, it seems that the 64 opcodes map to
> the 64 characters in the character set, and those characters are used
> to represent them. That is, base 64.

> Some others might represent those in octal, but yes I don't see IBM doing it.

Yeah, it wasn't called "base 64". It was called "BCD", and they were simply
treated as alphanumerics and special characters.

The B bit corresponds to the 11 zone punch on a card, the A bit to the 0 zone
punch, and BA corresponds to the 12 zone punch.

All 0's is the SPACE character; the "0" character is the 8+2 bits.

NB: The card codes on the "96 column cards" used by the System/3 are the same
as the 14xx BCD representation in memory.

--
Rich Alderson news@alderson.users.panix.com
Audendum est, et veritas investiganda; quam etiamsi non assequamur,
omnino tamen proprius, quam nunc sumus, ad eam perveniemus.
--Galen

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<jfaebmF49ksU1@mid.individual.net>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22985&group=comp.os.vms#22985

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: bill.gun...@gmail.com (Bill Gunshannon)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Date: Thu, 26 May 2022 18:47:17 -0400
Lines: 49
Message-ID: <jfaebmF49ksU1@mid.individual.net>
References: <smg4a2$boh$1@gioia.aioe.org>
<0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com>
<smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me>
<6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me>
<6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me>
<t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me>
<t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me>
<t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me>
<t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me>
<t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me>
<jfa07bF1nkpU1@mid.individual.net> <t6ojmt$j2e$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: individual.net Et9GK9GsWzs0g93aCeVHmwnyl2+Tx5P8eT50Zzjuc8Oz+UbCJQ
Cancel-Lock: sha1:A0DzsLvMtN035XwRaQSlYyh0wBc=
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.8.1
Content-Language: en-US
In-Reply-To: <t6ojmt$j2e$1@dont-email.me>
 by: Bill Gunshannon - Thu, 26 May 2022 22:47 UTC

On 5/26/22 15:16, Simon Clubley wrote:
> On 2022-05-26, Bill Gunshannon <bill.gunshannon@gmail.com> wrote:
>> On 5/26/22 14:16, Simon Clubley wrote:
>>>
>>>
>>> No. One of the questions of that discussion was how could you point a Basic
>>> record structure at a random point in memory and then access the memory
>>> at that location through the record structure only. A followup question was
>>> how could you chain a set of instances of those record types with a pointer
>>> in each record instance chaining to the next instance.
>>>
>>> I don't recall ever seeing an answer to those questions.
>>>
>>
>>
>> I really hate to burst your bubble (well, no, not really :-) but
>
> :-)
>
>> while cumbersome because it is not the intended use, it is possible
>> in some dialects of BASIC. In particular, TRS-80 BASIC. Using
>> combinations of arrays, PEEK(), POKE() and VARPTR() I could certainly
>> do that.
>>
>> You need to learn more BASIC. :-)
>>
>
> Aware of peek and poke in some microcontroller Basic implementations.
> They return/set bytes/words/longwords at the memory location specified.
> You are not writing kernel code (or application code) in 2022 by doing
> the equivalent of "uint32_t *ptr" only in your code instead of using
> structures/records that model the memory block at the given location.
>
> As per the question I just asked, how would you define a record
> structure and access a block of memory through the record structure
> at a random memory location and how would you chain together instances
> of these structures in memory ?
>
> In C, it's easy. You define a struct data type with forward links within
> the structure as required and with pointers of that data type outside
> of the structure as required.

So, tell me, would you consider a complete Virtual Machine that emulates
a hardware architecture and contains all the primitives for I/O, math
and other necessary function to be an Operating System?

bill

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<62901491$0$698$14726298@news.sunsite.dk>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22986&group=comp.os.vms#22986

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!dotsrc.org!filter.dotsrc.org!news.dotsrc.org!not-for-mail
Date: Thu, 26 May 2022 20:00:13 -0400
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Content-Language: en-US
Newsgroups: comp.os.vms
References: <smg4a2$boh$1@gioia.aioe.org> <smmboi$tku$1@dont-email.me>
<0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com>
<smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me>
<6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me>
<6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me>
<t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me>
<t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me>
<t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me>
<t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me>
<t6m28s$aau$1@dont-email.me> <628ec479$0$704$14726298@news.sunsite.dk>
<t6ogk8$tip$2@dont-email.me>
From: arn...@vajhoej.dk (Arne Vajhøj)
In-Reply-To: <t6ogk8$tip$2@dont-email.me>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 52
Message-ID: <62901491$0$698$14726298@news.sunsite.dk>
Organization: SunSITE.dk - Supporting Open source
NNTP-Posting-Host: 6cfa138a.news.sunsite.dk
X-Trace: 1653609617 news.sunsite.dk 698 arne@vajhoej.dk/68.9.63.232:54639
X-Complaints-To: staff@sunsite.dk
 by: Arne Vajhøj - Fri, 27 May 2022 00:00 UTC

On 5/26/2022 2:24 PM, Simon Clubley wrote:
> On 2022-05-25, Arne Vajhøj <arne@vajhoej.dk> wrote:
>>
>> Yes.
>>
>> It seems obvious to me that a Basic compiler could be implemented
>> that could do it.
>>
>> I mean what characterize Basic? A few control structure, a few
>> data types, a few operators and a few functions.
>>
>> That does not prevent anything. As Basic is not excluding any
>> extensions.
>>
>
> Careful Arne. The features that make Basic the language it is come
> with a heavy runtime but code running in kernel mode has only a
> restricted runtime (even for C) due to the nature of kernel mode.
>
> Take away those features and you are left with a Basic that has
> Basic style syntax but with C levels of functionality.

Besides certain new features being required, then some features
would not be allowed in kernel context.

But that would apply to any language used for that
purpose - it is not a matter of *if* but a matter of *how much*
has to be avoided.

And it is not really surprising that low level functionality
is required to write low level code.

If you decide to call low level code for C level code, then
it sound C'ish, but the functionality is not inherent C'ish
in nature.

>> One could create a Basic with a pointer type etc. that
>> allowed kernel code.
>>
>> But unless such a compiler is created then it has
>> no practical impact.
>
> And that is absolutely correct provided you extend it to the runtime
> as well. The operating systems you wish to run this kernel mode Basic
> on would need support adding for even a minimal Basic runtime.

Lots of things are possible for a hypothetical compiler that
is not expected to be implemented.

Arne

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<8082dcfd-e53e-4856-8ad6-cf5c75d7826cn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22987&group=comp.os.vms#22987

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:6214:1941:b0:462:5e65:73a0 with SMTP id q1-20020a056214194100b004625e6573a0mr12420157qvk.87.1653613024670;
Thu, 26 May 2022 17:57:04 -0700 (PDT)
X-Received: by 2002:a05:6214:2308:b0:435:3440:7d3c with SMTP id
gc8-20020a056214230800b0043534407d3cmr32656481qvb.65.1653613024550; Thu, 26
May 2022 17:57:04 -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.os.vms
Date: Thu, 26 May 2022 17:57:04 -0700 (PDT)
In-Reply-To: <mdd8rqo3qp7.fsf@panix5.panix.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:9dc9:f4ec:1809:ace2;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:9dc9:f4ec:1809:ace2
References: <smg4a2$boh$1@gioia.aioe.org> <t6gh98$10j$1@dont-email.me>
<jf28s0Ftod1U1@mid.individual.net> <jf2fqfFiphjU1@mid.individual.net>
<t6iksp$bfh$1@reader1.panix.com> <jf45m0Fsh5eU1@mid.individual.net>
<mddh75ea7fo.fsf@panix5.panix.com> <c9ebf2b9-a97c-44ad-80d5-f4e5605eea96n@googlegroups.com>
<mddy1ypxea1.fsf@panix5.panix.com> <924cdd2c-c60d-4c7d-b95f-62ea41b27744n@googlegroups.com>
<mdd8rqo3qp7.fsf@panix5.panix.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8082dcfd-e53e-4856-8ad6-cf5c75d7826cn@googlegroups.com>
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
From: gah...@u.washington.edu (gah4)
Injection-Date: Fri, 27 May 2022 00:57:04 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 3559
 by: gah4 - Fri, 27 May 2022 00:57 UTC

On Thursday, May 26, 2022 at 2:54:31 PM UTC-7, Rich Alderson wrote:

(snip)

> > Looking at an actual IBM manual, it seems that the 64 opcodes map to
> > the 64 characters in the character set, and those characters are used
> > to represent them. That is, base 64.
>
> > Some others might represent those in octal, but yes I don't see IBM doing it.

> Yeah, it wasn't called "base 64". It was called "BCD", and they were simply
> treated as alphanumerics and special characters.
> The B bit corresponds to the 11 zone punch on a card, the A bit to the 0 zone
> punch, and BA corresponds to the 12 zone punch.
> All 0's is the SPACE character; the "0" character is the 8+2 bits.

The 704 uses a 48 character version of BCD, though I didn't match
up the character codes. The documentation of opcodes uses octal.

I didn't see actual assembler output for either one, but in the instruction
tables the BCD character is used as the numeric opcode for the 1401,
where others would put the octal (or later hexadecimal) opcode.

Now, since the 704 only has 48 characters in its BCD, not enough for
all the opcodes, maybe that isn't so surprising.

> NB: The card codes on the "96 column cards" used by the System/3 are the same
> as the 14xx BCD representation in memory.

It seems that System/3 cards can be either six bit BCD, or 8 bit EBCDIC.
In the latter case, the extra two rows of punches go above, where the printed
text goes. I am not sure how the two codes work together.

I do remember knowing, not so many years ago, that there was a System/3
card read/punch for the 360/20, but never saw one.

The 704 has some strange features with its character code. Among others,
they used even parity tape (must have seemed like a good idea) where you can't
write the character with all bits zero. (No transitions means no clock.)

I didn't look to see what the 1401 ALU generates for its decimal output,
but I presume the 8-2 code.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6pkg2$tc4$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22992&group=comp.os.vms#22992

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: dav...@tsoft-inc.com (Dave Froble)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Date: Fri, 27 May 2022 00:35:49 -0400
Organization: A noiseless patient Spider
Lines: 151
Message-ID: <t6pkg2$tc4$1@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <smk0u9$i36$1@dont-email.me>
<smmboi$tku$1@dont-email.me>
<0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com>
<smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me>
<6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me>
<6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me>
<t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me>
<t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me>
<t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me>
<t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me>
<t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 27 May 2022 04:36:18 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="d923e6d36b6dcd8155fe4b7079c2dd53";
logging-data="30084"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+1El+fxX/IKa4DSzw9OKV6XkB3xXAFKt0="
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:X8W3+/0qctxyyqjfV8lWDxjJ+RY=
In-Reply-To: <t6og6d$tip$1@dont-email.me>
 by: Dave Froble - Fri, 27 May 2022 04:35 UTC

On 5/26/2022 2:16 PM, Simon Clubley wrote:
> On 2022-05-25, Dave Froble <davef@tsoft-inc.com> wrote:
>> On 5/25/2022 2:00 PM, Simon Clubley wrote:
>>> On 2022-05-24, Dave Froble <davef@tsoft-inc.com> wrote:
>>>> On 5/24/2022 1:31 PM, Simon Clubley wrote:
>>>>>
>>>>> It protects you better than C at the expense of not been able to do
>>>>> everything C does but there are also other languages that help protect
>>>>> you while still allowing you to do the things that C lets you do.
>>>>
>>>> Ok, gauntlet thrown down, and picked up.
>>>>
>>>> Leaving out the specifics of the implementation of DEC Basic, which include not
>>>> thread safe, and other things, I would like to know just what C can do that
>>>> Basic can not do.
>>>>
>>>> I will admit that some nice things such as safe for kernel code, threads, and
>>>> such are not available with the implementation. But what if the exact same
>>>> language was implemented with a new compiler that would produce thread safe and
>>>> kernel safe code was implemented? Then what could C do that Basic could not do?
>>>>
>>>
>>> You can't wave away the discussion by claiming some magical new compiler
>>> would solve all the issues with using Basic in kernel mode.
>>
>> Sure I can.
>>
>> Language syntax is one thing. How it's implemented is another.
>>
>> Not just Basic has multiple implementations of the language. How many
>> implementations of C are there?
>>
>>> In addition to the answers you have received, Basic also comes with a
>>> heavy RTL which is most certainly not suitable for running in kernel mode.
>>
>> Yes, DEC/Compaq/HP/VSI Basic has that implementation, and for a jack of all
>> trades, that may be fine, while it does preclude some usage, such as OS
>> implementation.
>>
>>> Any such new language capable of running in kernel mode would be Basic
>>> in name only.
>>
>> That doesn't make any sense. There are already various implementations of Basic
>> that are rather different. But the syntax and such is rather similar.
>>
>
> Basic implementations all have various features in common, such as (for
> example) more higher-level and dynamic string handling than in C.
> To support that and other functionality requires a serious runtime behind
> it, regardless of the Basic dialect in use.

And your point is?

> In kernel mode, even C on VMS only has a restricted runtime available and
> that was functionality that DEC had to add in.

Which gets mentioned not so often. Without that, C also cannot be used for
kernel mode code.

> Due to runtime limitations, any Basic running in kernel mode is going to
> be basically C in functionality, so you would be writing code that looked
> like Basic syntax on the surface, but was actually C style code where you
> had to specify _everything_ that was going on.
>
> That's what I mean by a kernel-mode Basic being Basic in name only.

Same for C, right?

>>> We had a discussion recently about building and managing in-memory trees
>>> of objects/records/etc in Basic. Your solution was to use a contiguous
>>> array of records with internal record numbers within the array to move
>>> around in the structure.
>>
>> That was one suggestion, and if I remember correctly, I mentioned others. I
>> seem to recall mentioning allocating memory and using pointers. You like to
>> pick and choose only that which supports your claims?
>>
>
> No. One of the questions of that discussion was how could you point a Basic
> record structure at a random point in memory and then access the memory
> at that location through the record structure only.

Not sure what you're asking. A defined record structure has an address, and
data in the structure can be acessed within the structure, just like any variable.

> A followup question was
> how could you chain a set of instances of those record types with a pointer
> in each record instance chaining to the next instance.

In a Basic record structure, pointers are not needed.

> I don't recall ever seeing an answer to those questions.
>
>> When there are multiple methods to do a job, what is wrong with choosing the
>> simplest and easiest, if it will do the job?
>>
>>> If you can't even do proper memory management in DEC Basic, then it sure
>>> as hell isn't going anywhere near a device driver or something else that
>>> needs to maintain a proper in-memory tree.
>>
>> Define "proper memory management". You may see that your claim is bullshit.
>>
>
> Here's something I have been looking at recently, which is the USB EHCI
> specification:
>
> https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/ehci-specification-for-usb.pdf
>
> Look at chapter 3, which documents the data structures for the controller.
>
> Notice how there are multiple chained lists of data structures in memory,
> each with its own layout. How would you implement something like that in
> DEC Basic ?
>
> In C, you just define a struct data type, and then

I don't seem to understand
"create pointers of that data type"

, or cast from a void * pointer, both within the structure (or a
> parent structure) and outside of it. How do you do that in DEC Basic ?

Basic can call LIB$GET_VM

LIB$GET_VM

The Allocate Virtual Memory routine allocates a specified number
of contiguous bytes in the program region and returns the 32-bit
virtual address of the first byte allocated.

Of course, then the programmer is tasked with all control of such memory,
including dealocating it (LIB$FREE_VM).

Unless absolutely necessary, I'd never do that. Sort of goes against "safer
programming". Puts much more responsibility on the programmer. But it can be done.

As of now, in Basic, a pointer/address is a longword. No problem.

> Even if you extend DEC Basic to have proper pointer data types, you still
> have the problem that you can't run Basic in kernel mode as-is due to
> Basic runtime requirements.

Unless using the special RTL, you cannot do that in C either.

--
David Froble Tel: 724-529-0450
Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA 15486

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6pkvs$vmd$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22993&group=comp.os.vms#22993

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: dav...@tsoft-inc.com (Dave Froble)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Date: Fri, 27 May 2022 00:44:15 -0400
Organization: A noiseless patient Spider
Lines: 66
Message-ID: <t6pkvs$vmd$1@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org>
<0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com>
<smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me>
<6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me>
<6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me>
<t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me>
<627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me>
<jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk>
<t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk>
<t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me>
<t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me>
<t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me>
<t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me>
<t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me>
<t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me>
<jfa07bF1nkpU1@mid.individual.net> <t6ojmt$j2e$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 27 May 2022 04:44:44 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="d923e6d36b6dcd8155fe4b7079c2dd53";
logging-data="32461"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/X3Yw+nPEY7gz/Q1KmYN4muGeJmPbmBX4="
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:8OWvv4iu7vLdLF8lunO+WO/VD8E=
In-Reply-To: <t6ojmt$j2e$1@dont-email.me>
 by: Dave Froble - Fri, 27 May 2022 04:44 UTC

On 5/26/2022 3:16 PM, Simon Clubley wrote:
> On 2022-05-26, Bill Gunshannon <bill.gunshannon@gmail.com> wrote:
>> On 5/26/22 14:16, Simon Clubley wrote:
>>>
>>>
>>> No. One of the questions of that discussion was how could you point a Basic
>>> record structure at a random point in memory and then access the memory
>>> at that location through the record structure only. A followup question was
>>> how could you chain a set of instances of those record types with a pointer
>>> in each record instance chaining to the next instance.
>>>
>>> I don't recall ever seeing an answer to those questions.
>>>
>>
>>
>> I really hate to burst your bubble (well, no, not really :-) but
>
> :-)
>
>> while cumbersome because it is not the intended use, it is possible
>> in some dialects of BASIC. In particular, TRS-80 BASIC. Using
>> combinations of arrays, PEEK(), POKE() and VARPTR() I could certainly
>> do that.
>>
>> You need to learn more BASIC. :-)
>>
>
> Aware of peek and poke in some microcontroller Basic implementations.
> They return/set bytes/words/longwords at the memory location specified.
> You are not writing kernel code (or application code) in 2022 by doing
> the equivalent of "uint32_t *ptr" only in your code instead of using
> structures/records that model the memory block at the given location.
>
> As per the question I just asked, how would you define a record
> structure and access a block of memory through the record structure
> at a random memory location and how would you chain together instances
> of these structures in memory ?

Ok, I think I now understand what you're asking. You want to define some
structure, and have it overlay (my term) some device, or such.

Not sure I could do that with the DEC Basic RECORD structure. Not sure I cannot
either.

I do have some experience with assigning labels in an I/O buffer, by mis-using
string descriptors.

:-)

If I studied the concept a bit, perhaps I'd have a batter answer for you. For
now, perhaps I'm just too lazy.

> In C, it's easy. You define a struct data type with forward links within
> the structure as required and with pointers of that data type outside
> of the structure as required.
>
> Simon.
>

--
David Froble Tel: 724-529-0450
Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA 15486

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6q9qg$1dju$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22995&group=comp.os.vms#22995

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!jazQyxryRFiI4FEZ51SAvA.user.46.165.242.75.POSTED!not-for-mail
From: chris-no...@tridac.net (chris)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Date: Fri, 27 May 2022 11:40:16 +0100
Organization: Aioe.org NNTP Server
Message-ID: <t6q9qg$1dju$1@gioia.aioe.org>
References: <smg4a2$boh$1@gioia.aioe.org> <0bce8caf-049a-4945-af14-cbc4b01bd5f2n@googlegroups.com> <smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me> <jfa07bF1nkpU1@mid.individual.net> <t6ojmt$j2e$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="46718"; posting-host="jazQyxryRFiI4FEZ51SAvA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; SunOS sun4u; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
X-Notice: Filtered by postfilter v. 0.9.2
 by: chris - Fri, 27 May 2022 10:40 UTC

On 05/26/22 20:16, Simon Clubley wrote:
> On 2022-05-26, Bill Gunshannon<bill.gunshannon@gmail.com> wrote:
>> On 5/26/22 14:16, Simon Clubley wrote:
>>>
>>>
>>> No. One of the questions of that discussion was how could you point a Basic
>>> record structure at a random point in memory and then access the memory
>>> at that location through the record structure only. A followup question was
>>> how could you chain a set of instances of those record types with a pointer
>>> in each record instance chaining to the next instance.
>>>
>>> I don't recall ever seeing an answer to those questions.
>>>
>>
>>
>> I really hate to burst your bubble (well, no, not really :-) but
>
> :-)
>
>> while cumbersome because it is not the intended use, it is possible
>> in some dialects of BASIC. In particular, TRS-80 BASIC. Using
>> combinations of arrays, PEEK(), POKE() and VARPTR() I could certainly
>> do that.
>>
>> You need to learn more BASIC. :-)
>>
>
> Aware of peek and poke in some microcontroller Basic implementations.
> They return/set bytes/words/longwords at the memory location specified.
> You are not writing kernel code (or application code) in 2022 by doing
> the equivalent of "uint32_t *ptr" only in your code instead of using
> structures/records that model the memory block at the given location.
>
> As per the question I just asked, how would you define a record
> structure and access a block of memory through the record structure
> at a random memory location and how would you chain together instances
> of these structures in memory ?
>
> In C, it's easy. You define a struct data type with forward links within
> the structure as required and with pointers of that data type outside
> of the structure as required.

Quite, and sop for accessing io devices. Assuming the register set is
more of less contiguous in memory, typedef a structure with padding as
required to take account of register sizes and gaps, then instantiate
by declaring a pointer to the structure equal to the base address of
the register set. Where register set is scattered across address space,
as in some Hitachi embedded processors, structure members are defined
as the address of the register, not its offset.

A very good book that originally opened my eyes as to the power of C and
abstraction was:

Data Structures, an Advanced Approach Using C
Jeffrey Esakov and Tom Weiss
Prentice Hall, 1989
ISBN: 0-13199043-8

Well worth a look even for experts :-)...

Chris

>
> Simon.
>

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6qh8h$gdb$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22996&group=comp.os.vms#22996

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
Date: Fri, 27 May 2022 12:47:13 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 34
Message-ID: <t6qh8h$gdb$1@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me> <jfa07bF1nkpU1@mid.individual.net> <t6ojmt$j2e$1@dont-email.me> <jfaebmF49ksU1@mid.individual.net>
Injection-Date: Fri, 27 May 2022 12:47:13 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f11073b45561cbe3d22e1fcc3c7cf636";
logging-data="16811"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18GTD8XCCA9VUuqrxlkGEeFMuQNrpaIvoI="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:GWRK2rqAbliLOqECazIDPwO2HRU=
 by: Simon Clubley - Fri, 27 May 2022 12:47 UTC

On 2022-05-26, Bill Gunshannon <bill.gunshannon@gmail.com> wrote:
> On 5/26/22 15:16, Simon Clubley wrote:
>>
>> Aware of peek and poke in some microcontroller Basic implementations.
>> They return/set bytes/words/longwords at the memory location specified.
>> You are not writing kernel code (or application code) in 2022 by doing
>> the equivalent of "uint32_t *ptr" only in your code instead of using
>> structures/records that model the memory block at the given location.
>>
>> As per the question I just asked, how would you define a record
>> structure and access a block of memory through the record structure
>> at a random memory location and how would you chain together instances
>> of these structures in memory ?
>>
>> In C, it's easy. You define a struct data type with forward links within
>> the structure as required and with pointers of that data type outside
>> of the structure as required.
>
> So, tell me, would you consider a complete Virtual Machine that emulates
> a hardware architecture and contains all the primitives for I/O, math
> and other necessary function to be an Operating System?
>

No.

The operating system is what runs on top of that emulated environment.

I don't understand how this is related to this thread however.

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6qho2$gdb$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22997&group=comp.os.vms#22997

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters
Date: Fri, 27 May 2022 12:55:31 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 32
Message-ID: <t6qho2$gdb$2@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <smroqk$f6s$1@dont-email.me> <sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk> <smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk> <sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org> <t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk> <t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net> <6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me> <6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me> <t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me> <t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me> <t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me> <t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me> <t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me> <t6og6d$tip$1@dont-email.me> <jfa07bF1nkpU1@mid.individual.net> <t6ojmt$j2e$1@dont-email.me> <t6pkvs$vmd$1@dont-email.me>
Injection-Date: Fri, 27 May 2022 12:55:31 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f11073b45561cbe3d22e1fcc3c7cf636";
logging-data="16811"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+XTr5Lu+yRHXQysQXAL6igFEINhqtM3ak="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:P+oU4mfEoJR3oMOvAq3R8UrQ0zw=
 by: Simon Clubley - Fri, 27 May 2022 12:55 UTC

On 2022-05-27, Dave Froble <davef@tsoft-inc.com> wrote:
> On 5/26/2022 3:16 PM, Simon Clubley wrote:
>>
>> Aware of peek and poke in some microcontroller Basic implementations.
>> They return/set bytes/words/longwords at the memory location specified.
>> You are not writing kernel code (or application code) in 2022 by doing
>> the equivalent of "uint32_t *ptr" only in your code instead of using
>> structures/records that model the memory block at the given location.
>>
>> As per the question I just asked, how would you define a record
>> structure and access a block of memory through the record structure
>> at a random memory location and how would you chain together instances
>> of these structures in memory ?
>
> Ok, I think I now understand what you're asking. You want to define some
> structure, and have it overlay (my term) some device, or such.
>

That's exactly right David. And to go beyond the register block mapping,
the device itself may have its own data structures that are mapped into
system memory, and for which the driver is responsible for maintaining,
as in the EHCI example I pointed you to.

You said Basic could do everything C can, so I gave you an example of
something that is common in C and asked how you would do the same thing
in DEC Basic.

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<t6qkal$8eq$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=22999&group=comp.os.vms#22999

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: dav...@tsoft-inc.com (Dave Froble)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Date: Fri, 27 May 2022 09:39:03 -0400
Organization: A noiseless patient Spider
Lines: 60
Message-ID: <t6qkal$8eq$1@dont-email.me>
References: <smg4a2$boh$1@gioia.aioe.org> <smroqk$f6s$1@dont-email.me>
<sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk>
<smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk>
<sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org>
<t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk>
<t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net>
<6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me>
<6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me>
<t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me>
<t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me>
<t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me>
<t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me>
<t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me>
<t6og6d$tip$1@dont-email.me> <jfa07bF1nkpU1@mid.individual.net>
<t6ojmt$j2e$1@dont-email.me> <t6pkvs$vmd$1@dont-email.me>
<t6qho2$gdb$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 27 May 2022 13:39:33 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="d923e6d36b6dcd8155fe4b7079c2dd53";
logging-data="8666"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18pR/9RCV13CpzxZ9AMGbuCmnPyK+r1KFs="
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:Qxw7MH5HicF5hm8Pr2GwEW8mdcA=
In-Reply-To: <t6qho2$gdb$2@dont-email.me>
 by: Dave Froble - Fri, 27 May 2022 13:39 UTC

On 5/27/2022 8:55 AM, Simon Clubley wrote:
> On 2022-05-27, Dave Froble <davef@tsoft-inc.com> wrote:
>> On 5/26/2022 3:16 PM, Simon Clubley wrote:
>>>
>>> Aware of peek and poke in some microcontroller Basic implementations.
>>> They return/set bytes/words/longwords at the memory location specified.
>>> You are not writing kernel code (or application code) in 2022 by doing
>>> the equivalent of "uint32_t *ptr" only in your code instead of using
>>> structures/records that model the memory block at the given location.
>>>
>>> As per the question I just asked, how would you define a record
>>> structure and access a block of memory through the record structure
>>> at a random memory location and how would you chain together instances
>>> of these structures in memory ?
>>
>> Ok, I think I now understand what you're asking. You want to define some
>> structure, and have it overlay (my term) some device, or such.
>>
>
> That's exactly right David. And to go beyond the register block mapping,
> the device itself may have its own data structures that are mapped into
> system memory, and for which the driver is responsible for maintaining,
> as in the EHCI example I pointed you to.
>
> You said Basic could do everything C can, so I gave you an example of
> something that is common in C and asked how you would do the same thing
> in DEC Basic.
>
> Simon.
>

Ok Simon, you have me at a distinct disadvantage here. I have never worked with
devices and such. My experience is in database design and implementation, and
business types of applications.

However, with some knowledge and experience with the types of things you are
discussing, I just might figure out how to accomplish them. I will confess, I
might have to go a bit outside what the language allows, but, an address is an
address, and if the address is known, data at that address can be manipulated.

I'd also say that using such techniques just might be a poor practice, since if
the next programmer to touch such code didn't fully understand what was being
done, things would go downhill quit rapidly. So I have to admit that C just
might have better functionality in some cases.

But being a bit stubborn, Basic just might have some capabilities that C does
not, so, from some perspectives, that just might be a counter argument.
However, that's not what I claimed, so perhaps I might have to wipe some egg
from my face.

Unable to stifle all my defiance, I'm sure I could do it in Macro-32.

:-)

--
David Froble Tel: 724-529-0450
Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA 15486

Re: Safer programming languages (and walking :-) ), was: Re: 8-bit characters

<jfc5v5FechvU1@mid.individual.net>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=23000&group=comp.os.vms#23000

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!3.eu.feeder.erje.net!feeder.erje.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: bill.gun...@gmail.com (Bill Gunshannon)
Newsgroups: comp.os.vms
Subject: Re: Safer programming languages (and walking :-) ), was: Re: 8-bit
characters
Date: Fri, 27 May 2022 10:36:20 -0400
Lines: 42
Message-ID: <jfc5v5FechvU1@mid.individual.net>
References: <smg4a2$boh$1@gioia.aioe.org> <smroqk$f6s$1@dont-email.me>
<sms17m$5no$1@dont-email.me> <6191a18e$0$706$14726298@news.sunsite.dk>
<smua6t$3hs$3@dont-email.me> <6192bb11$0$702$14726298@news.sunsite.dk>
<sn0uo9$j0$2@dont-email.me> <t5kaps$p5k$1@gioia.aioe.org>
<t5ljio$b1e$2@dont-email.me> <627f04bb$0$694$14726298@news.sunsite.dk>
<t5u3jc$13f$3@dont-email.me> <jenjdtFgfvhU1@mid.individual.net>
<6286d839$0$706$14726298@news.sunsite.dk> <t66u0b$2t1$1@dont-email.me>
<6287868c$0$700$14726298@news.sunsite.dk> <t687h9$gkf$1@dont-email.me>
<t68jm0$e7c$1@dont-email.me> <t692vb$71s$1@dont-email.me>
<t6fv1f$lvh$2@dont-email.me> <t6gefk$lai$1@dont-email.me>
<t6gh98$10j$1@dont-email.me> <t6gnrn$t6$1@dont-email.me>
<t6j4qe$cad$1@dont-email.me> <t6jgnf$b06$1@dont-email.me>
<t6lqse$4hf$2@dont-email.me> <t6m28s$aau$1@dont-email.me>
<t6og6d$tip$1@dont-email.me> <jfa07bF1nkpU1@mid.individual.net>
<t6ojmt$j2e$1@dont-email.me> <jfaebmF49ksU1@mid.individual.net>
<t6qh8h$gdb$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: individual.net j3AjNsxApczY9XRmR/L6YAHFALYwPmK8c+pw80Ct1edAQnlllB
Cancel-Lock: sha1:56qr50d9kZDZkBS5+98ltP4v3VI=
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.8.1
Content-Language: en-US
In-Reply-To: <t6qh8h$gdb$1@dont-email.me>
 by: Bill Gunshannon - Fri, 27 May 2022 14:36 UTC

On 5/27/22 08:47, Simon Clubley wrote:
> On 2022-05-26, Bill Gunshannon <bill.gunshannon@gmail.com> wrote:
>> On 5/26/22 15:16, Simon Clubley wrote:
>>>
>>> Aware of peek and poke in some microcontroller Basic implementations.
>>> They return/set bytes/words/longwords at the memory location specified.
>>> You are not writing kernel code (or application code) in 2022 by doing
>>> the equivalent of "uint32_t *ptr" only in your code instead of using
>>> structures/records that model the memory block at the given location.
>>>
>>> As per the question I just asked, how would you define a record
>>> structure and access a block of memory through the record structure
>>> at a random memory location and how would you chain together instances
>>> of these structures in memory ?
>>>
>>> In C, it's easy. You define a struct data type with forward links within
>>> the structure as required and with pointers of that data type outside
>>> of the structure as required.
>>
>> So, tell me, would you consider a complete Virtual Machine that emulates
>> a hardware architecture and contains all the primitives for I/O, math
>> and other necessary function to be an Operating System?
>>
>
> No.
>
> The operating system is what runs on top of that emulated environment.

The example I am thinking of contains the emulated architecture and
everything right up to the user interface. So, it does contain "what
runs on top of that emulated environment".

>
> I don't understand how this is related to this thread however.

Tiny Pascal by Herbert Yuen and Kin-Man Chung. Compiler and Pcode
Interpreter with User Interface all done in NorthStar Basic. In the
September, October and November 1978 issues of Byte Magazine.

bill

Pages:123456789
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor