Origins of the “array like” strings in BASICIs it possible to crash the Apple II using only the Apple II Basic REPL?What early computers had excellent BASIC (or other language) at bootup?Looking for a specific BASIC music program from the 80sHow to use BASIC after “LOAD ”$",8 on the C64Was the design of MS-BASIC for 6502 based on MS-BASIC for 8080?Understanding INKEY$ in ZX BASICUptime in ZX BASICEarly Basic memory managementDecoding the Workings of the TRS-80 BASIC Game “Escape!”Was Vilnius BASIC cross-platform?

Do I need to say 'o`clock'?

Anatomically Correct Carnivorous Tree

Is there anything special about -1 (0xFFFFFFFF) regarding ADC?

Developers demotivated due to working on same project for more than 2 years

Why do the lights go out when someone enters the dining room on this ship?

Show that in a compact metric space there are at most a countable number of clopen sets

Find hamming distance between two Strings of equal length in Java

What should a student do when they are the victim of a FERPA violation?

Tikz draw contour without some edges, and fill

How does emacs `shell-mode` know to prompt for sudo?

How can a layman easily get the consensus view of what academia *thinks* about a subject?

Ito`s Lemma problem

Is the expression "To think you would stoop so low" often misused?

If current results hold, Man City would win PL title

As programers say: Strive to be lazy

CPLD based Pierce oscillator

Why did I need to *reboot* to change my group membership

What's tha name for when you write multiple voices on same staff? And are there any cons?

Why is LOX on top in the Space Shuttle external tank instead of the other the way round?

Ex-manager wants to stay in touch, I don't want to

Could there be a material that inverts the colours seen through it?

Why is a set not a partition of itself?

Why was Thor doubtful about his worthiness to Mjolnir?

Smallest Guaranteed hash collision cycle length



Origins of the “array like” strings in BASIC


Is it possible to crash the Apple II using only the Apple II Basic REPL?What early computers had excellent BASIC (or other language) at bootup?Looking for a specific BASIC music program from the 80sHow to use BASIC after “LOAD ”$",8 on the C64Was the design of MS-BASIC for 6502 based on MS-BASIC for 8080?Understanding INKEY$ in ZX BASICUptime in ZX BASICEarly Basic memory managementDecoding the Workings of the TRS-80 BASIC Game “Escape!”Was Vilnius BASIC cross-platform?













6















A number of early microcomputer BASICs had 'array like strings' that were unlike MS's system and instead behaved like arrays of char. Substrings were accessed using a syntax like:



A$ = B$(1,5)


as opposed to the MS style:



A$ = LEFT$(B$,4)


Note the potential off-by-one.



I know that some minicomputer BASICs also worked this way, I believe HP and Nova were the canonical examples. North Star BASIC also used this style, and I suspect, due to its origins, that Cromenco Extended BASIC did as well.



So the question: does anyone know the first microcomputer BASIC that used this style of string notation? And wider, where this style originated?










share|improve this question



















  • 2





    Why and how are you distinguishing micros from minis? A given BASIC could be made to run on either.

    – Wilson
    May 8 at 11:32






  • 1





    HT2000 Basic worked as described; any microcomputer BASICs probably derived such behavior from the HP.

    – supercat
    May 8 at 11:46






  • 2





    For reference, both approaches seem to be revisionist treatments :-). BASIC comes from Dartmouth. 4th edition BASIC had the CHANGE statement to convert between a string variable and an array of ASCII character-codes..

    – another-dave
    May 8 at 12:01












  • I do however think I used the LEFT$/RIGHT$ syntax around 1971, dialed in to the UK Open University computer system (I had a maths teacher doing an OU degree in computer science), which I think was running on some HP mini.

    – another-dave
    May 8 at 12:06












  • @another-dave I don’t know much about minis, but LEFT$ seems to have appeared on micros early on; 8K Altair BASIC had it in 1975.

    – Stephen Kitt
    May 8 at 12:17















6















A number of early microcomputer BASICs had 'array like strings' that were unlike MS's system and instead behaved like arrays of char. Substrings were accessed using a syntax like:



A$ = B$(1,5)


as opposed to the MS style:



A$ = LEFT$(B$,4)


Note the potential off-by-one.



I know that some minicomputer BASICs also worked this way, I believe HP and Nova were the canonical examples. North Star BASIC also used this style, and I suspect, due to its origins, that Cromenco Extended BASIC did as well.



So the question: does anyone know the first microcomputer BASIC that used this style of string notation? And wider, where this style originated?










share|improve this question



















  • 2





    Why and how are you distinguishing micros from minis? A given BASIC could be made to run on either.

    – Wilson
    May 8 at 11:32






  • 1





    HT2000 Basic worked as described; any microcomputer BASICs probably derived such behavior from the HP.

    – supercat
    May 8 at 11:46






  • 2





    For reference, both approaches seem to be revisionist treatments :-). BASIC comes from Dartmouth. 4th edition BASIC had the CHANGE statement to convert between a string variable and an array of ASCII character-codes..

    – another-dave
    May 8 at 12:01












  • I do however think I used the LEFT$/RIGHT$ syntax around 1971, dialed in to the UK Open University computer system (I had a maths teacher doing an OU degree in computer science), which I think was running on some HP mini.

    – another-dave
    May 8 at 12:06












  • @another-dave I don’t know much about minis, but LEFT$ seems to have appeared on micros early on; 8K Altair BASIC had it in 1975.

    – Stephen Kitt
    May 8 at 12:17













6












6








6








A number of early microcomputer BASICs had 'array like strings' that were unlike MS's system and instead behaved like arrays of char. Substrings were accessed using a syntax like:



A$ = B$(1,5)


as opposed to the MS style:



A$ = LEFT$(B$,4)


Note the potential off-by-one.



I know that some minicomputer BASICs also worked this way, I believe HP and Nova were the canonical examples. North Star BASIC also used this style, and I suspect, due to its origins, that Cromenco Extended BASIC did as well.



So the question: does anyone know the first microcomputer BASIC that used this style of string notation? And wider, where this style originated?










share|improve this question
















A number of early microcomputer BASICs had 'array like strings' that were unlike MS's system and instead behaved like arrays of char. Substrings were accessed using a syntax like:



A$ = B$(1,5)


as opposed to the MS style:



A$ = LEFT$(B$,4)


Note the potential off-by-one.



I know that some minicomputer BASICs also worked this way, I believe HP and Nova were the canonical examples. North Star BASIC also used this style, and I suspect, due to its origins, that Cromenco Extended BASIC did as well.



So the question: does anyone know the first microcomputer BASIC that used this style of string notation? And wider, where this style originated?







basic






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 8 at 20:45









Stephen Kitt

43.1k8178183




43.1k8178183










asked May 8 at 11:27









Maury MarkowitzMaury Markowitz

3,138628




3,138628







  • 2





    Why and how are you distinguishing micros from minis? A given BASIC could be made to run on either.

    – Wilson
    May 8 at 11:32






  • 1





    HT2000 Basic worked as described; any microcomputer BASICs probably derived such behavior from the HP.

    – supercat
    May 8 at 11:46






  • 2





    For reference, both approaches seem to be revisionist treatments :-). BASIC comes from Dartmouth. 4th edition BASIC had the CHANGE statement to convert between a string variable and an array of ASCII character-codes..

    – another-dave
    May 8 at 12:01












  • I do however think I used the LEFT$/RIGHT$ syntax around 1971, dialed in to the UK Open University computer system (I had a maths teacher doing an OU degree in computer science), which I think was running on some HP mini.

    – another-dave
    May 8 at 12:06












  • @another-dave I don’t know much about minis, but LEFT$ seems to have appeared on micros early on; 8K Altair BASIC had it in 1975.

    – Stephen Kitt
    May 8 at 12:17












  • 2





    Why and how are you distinguishing micros from minis? A given BASIC could be made to run on either.

    – Wilson
    May 8 at 11:32






  • 1





    HT2000 Basic worked as described; any microcomputer BASICs probably derived such behavior from the HP.

    – supercat
    May 8 at 11:46






  • 2





    For reference, both approaches seem to be revisionist treatments :-). BASIC comes from Dartmouth. 4th edition BASIC had the CHANGE statement to convert between a string variable and an array of ASCII character-codes..

    – another-dave
    May 8 at 12:01












  • I do however think I used the LEFT$/RIGHT$ syntax around 1971, dialed in to the UK Open University computer system (I had a maths teacher doing an OU degree in computer science), which I think was running on some HP mini.

    – another-dave
    May 8 at 12:06












  • @another-dave I don’t know much about minis, but LEFT$ seems to have appeared on micros early on; 8K Altair BASIC had it in 1975.

    – Stephen Kitt
    May 8 at 12:17







2




2





Why and how are you distinguishing micros from minis? A given BASIC could be made to run on either.

– Wilson
May 8 at 11:32





Why and how are you distinguishing micros from minis? A given BASIC could be made to run on either.

– Wilson
May 8 at 11:32




1




1





HT2000 Basic worked as described; any microcomputer BASICs probably derived such behavior from the HP.

– supercat
May 8 at 11:46





HT2000 Basic worked as described; any microcomputer BASICs probably derived such behavior from the HP.

– supercat
May 8 at 11:46




2




2





For reference, both approaches seem to be revisionist treatments :-). BASIC comes from Dartmouth. 4th edition BASIC had the CHANGE statement to convert between a string variable and an array of ASCII character-codes..

– another-dave
May 8 at 12:01






For reference, both approaches seem to be revisionist treatments :-). BASIC comes from Dartmouth. 4th edition BASIC had the CHANGE statement to convert between a string variable and an array of ASCII character-codes..

– another-dave
May 8 at 12:01














I do however think I used the LEFT$/RIGHT$ syntax around 1971, dialed in to the UK Open University computer system (I had a maths teacher doing an OU degree in computer science), which I think was running on some HP mini.

– another-dave
May 8 at 12:06






I do however think I used the LEFT$/RIGHT$ syntax around 1971, dialed in to the UK Open University computer system (I had a maths teacher doing an OU degree in computer science), which I think was running on some HP mini.

– another-dave
May 8 at 12:06














@another-dave I don’t know much about minis, but LEFT$ seems to have appeared on micros early on; 8K Altair BASIC had it in 1975.

– Stephen Kitt
May 8 at 12:17





@another-dave I don’t know much about minis, but LEFT$ seems to have appeared on micros early on; 8K Altair BASIC had it in 1975.

– Stephen Kitt
May 8 at 12:17










1 Answer
1






active

oldest

votes


















9














I think the earliest BASIC dialects on micros to use these constructs for strings were North Star BASIC and Apple Integer BASIC in 1977, both presumably influenced by HP BASIC. The Apple lineage isn’t surprising since Steve Wozniak worked at HP.



The origin of this approach to substring addressing could be FORTRAN, which uses a syntax of the form A(I:L).






share|improve this answer























  • Apple BASIC used this style? I didn't know that!

    – Maury Markowitz
    May 8 at 12:56






  • 2





    Only Apple integer basic, Applesoft was standard MS Left/Right/Mid

    – PeterI
    May 8 at 13:04











  • Cromenco also did, but that's 1978. So its looking like NS BASIC might be it. What about the Tiny derivatives, did any of them have strings?

    – Maury Markowitz
    May 8 at 14:35












  • @Maury Tiny BASIC had string literals for PRINT; MINOL added a way to store strings and retrieve them, using pointers only (no string variables), but didn’t support sub-strings. I don’t know of any other Tiny derivative which had string variables with something like A$(2,4) before NS BASIC.

    – Stephen Kitt
    May 8 at 15:23











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "648"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f10963%2forigins-of-the-array-like-strings-in-basic%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









9














I think the earliest BASIC dialects on micros to use these constructs for strings were North Star BASIC and Apple Integer BASIC in 1977, both presumably influenced by HP BASIC. The Apple lineage isn’t surprising since Steve Wozniak worked at HP.



The origin of this approach to substring addressing could be FORTRAN, which uses a syntax of the form A(I:L).






share|improve this answer























  • Apple BASIC used this style? I didn't know that!

    – Maury Markowitz
    May 8 at 12:56






  • 2





    Only Apple integer basic, Applesoft was standard MS Left/Right/Mid

    – PeterI
    May 8 at 13:04











  • Cromenco also did, but that's 1978. So its looking like NS BASIC might be it. What about the Tiny derivatives, did any of them have strings?

    – Maury Markowitz
    May 8 at 14:35












  • @Maury Tiny BASIC had string literals for PRINT; MINOL added a way to store strings and retrieve them, using pointers only (no string variables), but didn’t support sub-strings. I don’t know of any other Tiny derivative which had string variables with something like A$(2,4) before NS BASIC.

    – Stephen Kitt
    May 8 at 15:23















9














I think the earliest BASIC dialects on micros to use these constructs for strings were North Star BASIC and Apple Integer BASIC in 1977, both presumably influenced by HP BASIC. The Apple lineage isn’t surprising since Steve Wozniak worked at HP.



The origin of this approach to substring addressing could be FORTRAN, which uses a syntax of the form A(I:L).






share|improve this answer























  • Apple BASIC used this style? I didn't know that!

    – Maury Markowitz
    May 8 at 12:56






  • 2





    Only Apple integer basic, Applesoft was standard MS Left/Right/Mid

    – PeterI
    May 8 at 13:04











  • Cromenco also did, but that's 1978. So its looking like NS BASIC might be it. What about the Tiny derivatives, did any of them have strings?

    – Maury Markowitz
    May 8 at 14:35












  • @Maury Tiny BASIC had string literals for PRINT; MINOL added a way to store strings and retrieve them, using pointers only (no string variables), but didn’t support sub-strings. I don’t know of any other Tiny derivative which had string variables with something like A$(2,4) before NS BASIC.

    – Stephen Kitt
    May 8 at 15:23













9












9








9







I think the earliest BASIC dialects on micros to use these constructs for strings were North Star BASIC and Apple Integer BASIC in 1977, both presumably influenced by HP BASIC. The Apple lineage isn’t surprising since Steve Wozniak worked at HP.



The origin of this approach to substring addressing could be FORTRAN, which uses a syntax of the form A(I:L).






share|improve this answer













I think the earliest BASIC dialects on micros to use these constructs for strings were North Star BASIC and Apple Integer BASIC in 1977, both presumably influenced by HP BASIC. The Apple lineage isn’t surprising since Steve Wozniak worked at HP.



The origin of this approach to substring addressing could be FORTRAN, which uses a syntax of the form A(I:L).







share|improve this answer












share|improve this answer



share|improve this answer










answered May 8 at 11:59









Stephen KittStephen Kitt

43.1k8178183




43.1k8178183












  • Apple BASIC used this style? I didn't know that!

    – Maury Markowitz
    May 8 at 12:56






  • 2





    Only Apple integer basic, Applesoft was standard MS Left/Right/Mid

    – PeterI
    May 8 at 13:04











  • Cromenco also did, but that's 1978. So its looking like NS BASIC might be it. What about the Tiny derivatives, did any of them have strings?

    – Maury Markowitz
    May 8 at 14:35












  • @Maury Tiny BASIC had string literals for PRINT; MINOL added a way to store strings and retrieve them, using pointers only (no string variables), but didn’t support sub-strings. I don’t know of any other Tiny derivative which had string variables with something like A$(2,4) before NS BASIC.

    – Stephen Kitt
    May 8 at 15:23

















  • Apple BASIC used this style? I didn't know that!

    – Maury Markowitz
    May 8 at 12:56






  • 2





    Only Apple integer basic, Applesoft was standard MS Left/Right/Mid

    – PeterI
    May 8 at 13:04











  • Cromenco also did, but that's 1978. So its looking like NS BASIC might be it. What about the Tiny derivatives, did any of them have strings?

    – Maury Markowitz
    May 8 at 14:35












  • @Maury Tiny BASIC had string literals for PRINT; MINOL added a way to store strings and retrieve them, using pointers only (no string variables), but didn’t support sub-strings. I don’t know of any other Tiny derivative which had string variables with something like A$(2,4) before NS BASIC.

    – Stephen Kitt
    May 8 at 15:23
















Apple BASIC used this style? I didn't know that!

– Maury Markowitz
May 8 at 12:56





Apple BASIC used this style? I didn't know that!

– Maury Markowitz
May 8 at 12:56




2




2





Only Apple integer basic, Applesoft was standard MS Left/Right/Mid

– PeterI
May 8 at 13:04





Only Apple integer basic, Applesoft was standard MS Left/Right/Mid

– PeterI
May 8 at 13:04













Cromenco also did, but that's 1978. So its looking like NS BASIC might be it. What about the Tiny derivatives, did any of them have strings?

– Maury Markowitz
May 8 at 14:35






Cromenco also did, but that's 1978. So its looking like NS BASIC might be it. What about the Tiny derivatives, did any of them have strings?

– Maury Markowitz
May 8 at 14:35














@Maury Tiny BASIC had string literals for PRINT; MINOL added a way to store strings and retrieve them, using pointers only (no string variables), but didn’t support sub-strings. I don’t know of any other Tiny derivative which had string variables with something like A$(2,4) before NS BASIC.

– Stephen Kitt
May 8 at 15:23





@Maury Tiny BASIC had string literals for PRINT; MINOL added a way to store strings and retrieve them, using pointers only (no string variables), but didn’t support sub-strings. I don’t know of any other Tiny derivative which had string variables with something like A$(2,4) before NS BASIC.

– Stephen Kitt
May 8 at 15:23

















draft saved

draft discarded
















































Thanks for contributing an answer to Retrocomputing Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f10963%2forigins-of-the-array-like-strings-in-basic%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form