Jump to content
bluejay

What's your favorite version of BASIC?

Recommended Posts

Definitely GFA Basic. I started using it on the Atari ST and then moved to the PC version. 

Share this post


Link to post
Share on other sites
On 7/14/2020 at 7:53 PM, bluejay said:

My coco doesn't have an edit command, or at least none that I know of.

 

Commodore machines did not have a true full screen editor with copying and pasting and searching; and the only computer that I know of that has such a function are the Tandy portables.

 

On 7/14/2020 at 8:45 PM, Casey said:

If you read contemporary discussions of these 8-bit machines, the Commodore and Atari machines have what was called a full screen editor.  What we think of today as a full screen editor with search and replace is not what they were referring to back in the day.

 

The Coco has an EDIT command.  It’s actually very full featured.  

 

On 7/14/2020 at 9:01 PM, bluejay said:

That's weird. Last time i tried i got a big fat ?SN ERROR.

 

Ayy, I tried it now and it works!

non-extended BASIC doesn't have EDIT, perhaps you upgraded it?

Share this post


Link to post
Share on other sites
Posted (edited)
31 minutes ago, JamesD said:

 

 

non-extended BASIC doesn't have EDIT, perhaps you upgraded it?

I think I misread a ?UL ERROR(I think thats the error you get when you type EDIT without the line number) for a ?SN ERROR. It was always a Extended 16k CoCo 2.

Edited by bluejay

Share this post


Link to post
Share on other sites

Mine was GWBASIC/BASICA for the PC.  I do not even remember how I used to do as it's been so long ago, but I used to design my ANSI graphic screens to load with BASIC for a more "professional look" to my programs.  Since the PC was relatively fast and you could access BASIC directly from the DOS it was great for a guy like me who never got into assembly language programming.

Share this post


Link to post
Share on other sites

For me, it was the older Commodore BASICs for the Vic-20 and C64.

And yes, I know all about their weaknesses. ;-)

But this is about my favorite, and that is the one I used. ;-)

I loved the editing on the screen.  

And while it didn't have any graphics/sound commands, I was mostly writing utilities back then so it didn't bother me.

 

Now, if it had included graphics / sound commands, would I have written BASIC programs that had graphics and sound?  Did I let the limitations of the BASIC define my BASIC programming???

 

Probably.  ;-)  But I didn't think of it that way back then.

 

When I got to the Amiga, I didn't like the non-line numbered BASIC.

Figured if I was going to do non-line numbered programming, I'd do something else.  So I played with Modula II and then jumped to C.

On the PC, I mostly used Pascal and dBase/Foxbase.  Didn't do much (anything?) with PC BASIC...

(I do remember playing a bit with the "motor" command just because I though that relay was fascinating, but never did anything with it..)

Share this post


Link to post
Share on other sites

One drawback to the C64 full screen editor, is that it limited line lengths.
It can get ugly looking, but you can pack 256(?) characters onto a line on most TRS-80s. 
The MC-10 doesn't have an editor, but I think the line buffer is 128 characters.
Less lines means less memory needed, the interpreter has to deal with fewer line changes, and it doesn't have to search through as many lines for GOTO, or GOSUB, so it's faster.
Each line has the overhead of 5 bytes.  Two for the line # as an integer, two for the pointer to the next line, and one for the line terminator.
If you have a 1000 line program for the C64, and it can fit in 750 lines on a TRS-80 by using longer lines, then it saves 250*5=1250 bytes.

Applesoft II BASIC does something other Microsoft BASICs don't.
It removes spaces during tokenization.
This speed up the interpreter slightly.
When you list the program, it inserts spaces around tokens.

Share this post


Link to post
Share on other sites

I admit that I am most familiar with MS Quickbasic.

 

It has some useful features, but it is sorely lacking in others.  (No microsoft, PSET based PUT is not a substitute for having a proper sprite routine!!. I DO appreciate having MODE X though.)

 

"Which you like best" or worse yet, "which is best?", is very subjective.  Best for what purpose?  Because each of those console BASIC implementations were just as "intended role" biased as the computers they ran on.

 

As a pixel artist, (who does not really find pleasure in having to beat his head against walls to overcome engineering choices of yesteryear) I do not favor most 8bit BASIC implementations' graphic routines.  I need at least 4 simultaneous colors to make anything really nice (without going down a pyrrhic pit of despair to accomplish anyway), and most 8bit BASIC implementations did not want to offer that.

 

the holy grail in a BASIC implementation for me, would be one that offers true 2, 4, 8, 16, 64, and 256 color modes, with hardware sprites (or at the very least, quality software abstraction that is fast), and a decent sound generator. 

 

However, if you ask somebody that did math heavy things, they would favor some other basic. (maybe one that does better recursion.)

 

 

 

 

Share this post


Link to post
Share on other sites
40 minutes ago, JamesD said:

...
Each line has the overhead of 5 bytes.  Two for the line # as an integer, two for the pointer to the next line, and one for the line terminator.
...

FWIW, the 6803, and 6809 are faster per MHz for a lot of interpreter operations due to the 16 bit index & data register support.
One of those things is searching for a line #, so the 6502 might benefit more from packing more on a line.

Searching for a line # in GOTO or GOSUB on 6803

LE3BB     ldd       ,X                  ; check link to the next line
          beq       LE3C9               ; return with carry set if end of program
          ldd       BINVAL              ; D = target line number
          subd      2,X                 ; subtract line number being looked at
          bls       LE3CA               ; branch if found (carry clear) or surpassed (carry set)
          ldx       ,X                  ; point X to next line
          bra       LE3BB               ; keep searching
LE3C9     sec                           ; set carry to indicate 'Not Found'
LE3CA     stx       SRCPTR              ; save address of last line checked
          rts                           ; return

This is the 6502 version

FL1         ldy     #$01            ;search from (X,A)
            sta     LOWTR
            stx     LOWTR+1
            lda     (LOWTR),y
            beq     LD647           ;end of program, and not found
            iny
            iny
            lda     LINNUM+1
            cmp     (LOWTR),y
            bcc     RTS_1           ;if not found
            beq     LD635
            dey
            bne     LD63E
LD635       lda     LINNUM
            dey
            cmp     (LOWTR),y
            bcc     RTS_1           ;past line, not found
            beq     RTS_1           ;if found
LD63E       dey
            lda     (LOWTR),y
            tax
            dey
            lda     (LOWTR),y
            bcs     FL1             ;always

LD647       clc                     ;return carry=0
RTS_1       rts


 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...