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

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

Circuit construction for execution of conditional statements using least significant bitHow are two different registers being used as “control”?How exactly is the stated composite state of the two registers being produced using the $R_zz$ controlled rotations?Efficiently performing controlled rotations in HHLWould this quantum algorithm implementation work?How to prepare a superposed states of odd integers from $1$ to $sqrtN$?Why is this implementation of the order finding algorithm not working?Circuit construction for Hamiltonian simulationHow can I invert the least significant bit of a certain term of a superposed state?Implementing an oracleImplementing a controlled sum operation

Magento 2 “No Payment Methods” in Admin New OrderHow to integrate Paypal Express Checkout with the Magento APIMagento 1.5 - Sales > Order > edit order and shipping methods disappearAuto Invoice Check/Money Order Payment methodAdd more simple payment methods?Shipping methods not showingWhat should I do to change payment methods if changing the configuration has no effects?1.9 - No Payment Methods showing upMy Payment Methods not Showing for downloadable/virtual product when checkout?Magento2 API to access internal payment methodHow to call an existing payment methods in the registration form?