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?
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
|
show 2 more comments
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
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, butLEFT$
seems to have appeared on micros early on; 8K Altair BASIC had it in 1975.
– Stephen Kitt
May 8 at 12:17
|
show 2 more comments
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
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
basic
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, butLEFT$
seems to have appeared on micros early on; 8K Altair BASIC had it in 1975.
– Stephen Kitt
May 8 at 12:17
|
show 2 more comments
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, butLEFT$
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
|
show 2 more comments
1 Answer
1
active
oldest
votes
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)
.
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 forPRINT
; 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 likeA$(2,4)
before NS BASIC.
– Stephen Kitt
May 8 at 15:23
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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)
.
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 forPRINT
; 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 likeA$(2,4)
before NS BASIC.
– Stephen Kitt
May 8 at 15:23
add a comment |
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)
.
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 forPRINT
; 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 likeA$(2,4)
before NS BASIC.
– Stephen Kitt
May 8 at 15:23
add a comment |
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)
.
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)
.
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 forPRINT
; 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 likeA$(2,4)
before NS BASIC.
– Stephen Kitt
May 8 at 15:23
add a comment |
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 forPRINT
; 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 likeA$(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
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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