Jump to content
IGNORED

Atari BASIC freeze-up


Paul Lambert

Recommended Posts

Last night, I was typing in a large type-in program (a few hundred lines of BASIC code). As I was entering the program, I RAN the program a few times as I was going along to make sure that everything was working right. Some instances, it was necessary to press RESET to do a soft reboot, which of course leaves the program in memory. LISTING brought the program up each time without any trouble.

 

However, an instance came up that I would enter LIST, and then the cursor went to the next line and then the computer froze up. RESET again. I type RUN and the same kind of freeze-up. I tried several times. I had a huge program in memory that was not fully saved. I tried CSAVE. No different.

 

Alas, my only solution was to turn off the computer and turn it on again, thus erasing all my hard work.

 

Tonight, I want to retype my program; however, before starting, I want to get some ideas as to 1) What was it that actually happened? and 2) Is there anyway to save the situation if it happens again? We can presume that I have already learned the lesson of SAVEing my work as I go along, so please no obvious comments in that regard ;0). 

 

Link to comment
Share on other sites

Could have been anything, a miss-type of a poke to an address that corrupted something, are there

any USR calls, if there are, again make sure all DATA statements are correct.

 

Once BASIC gets screwed, it's very difficult to recover from.

 

You have already found there's no substitute to saving your work before you run it. 

  • Like 1
Link to comment
Share on other sites

First up, even with (supposedly) bug-free Rev C you'd want to SAVE and LIST the program to disk regularly.

 

Next up - hitting Break is the preferred way to stop a running program.  The risk of hitting Reset is you might interrupt a memory move which could cause corruption.   More so if entering the program and pressing it too soon after entering a line.

 

If using Basic Rev A or B you can experience lockup by entering a program without doing anything wrong or even running it, thanks to the memory move bugs present in both.  IMO Rev B is in fact probably worse.  Therefore, save regularly even if you don't intend to run it until fully entered.

Link to comment
Share on other sites

There are bugs in Revision A and B Basic that can cause it to lock up as you are typing commands.

 

Revision A = the Basic Cartridge you'd plug into a 400/800.   Revision B = the Built-in BASIC on the XL line.  Revision C = XE Basic.

 

As @Rybags mentioned Rev B is probably the worst.   I lost many BASIC programs I was working on due to it.   Frequent saves are a must

Link to comment
Share on other sites

Thanks, guys. I think you pinpointed it. Indeed, there are many DATA statements and calls to machine-language routines, so that likely explains it.

Alright then, back to it tonight. CSAVE is my friend.

 

That said, I love getting back into the Atari after some 34 years. Needing to relearn from scratch, so these little setbacks are just part of the process.

  • Like 2
Link to comment
Share on other sites

Hit reset at your own risk!  

 

To be honest, even after learning this lesson the hard way many times, I still frequently hit reset out of convenience and it usually works fine, but every so often it will hang and once that happens you are screwed.

 

So using break is much better.  And saving often, especially before you try to execute anything you've edited or added. 

 

Edited by erichenneke
Link to comment
Share on other sites

Saving to Cassette is also quite risky, I know I used to SAVE/LIST to at least 2 cassettes as the tapes

are so unreliable, if your enjoying this and are getting back into it, it's worth considering something like

S-Drive MAX or SIO2SD, both emulate floppy drives and can hold so many floppy images.

Link to comment
Share on other sites

16 minutes ago, TGB1718 said:

Saving to Cassette is also quite risky, I know I used to SAVE/LIST to at least 2 cassettes as the tapes

are so unreliable, if your enjoying this and are getting back into it, it's worth considering something like

S-Drive MAX or SIO2SD, both emulate floppy drives and can hold so many floppy images.

Yes, I plan to buy those new things in the future. I do have a 1050 floppy drive as well. 

 

So much great advice on this forum.

Link to comment
Share on other sites

AVGCart multicart with SIO cable quickly loads everything and saves ATR too.

Side3 too but you need internal U1MB expansion.

 

On the other end, FujiNet is the latest SIO device.

I like it because it loads my files from PC, among other things.

But it doesn't load CAR files (cartridges).

 

Check out Topic for newbies comparison chart.

Link to comment
Share on other sites

To check which BASIC revision you have type PRINT PEEK(43234).

If the result is 162 you have rev. A, 96 rev. B, 234 rev. C.

 

If you have rev. B, you can replace the BASIC rom of your computer with the bugfree rev. C.

 

Otherwise there are software patches to load to fix the rev. B bug.

 

Another option is to use Turbo-Basic XL, compatible with Atari BASIC but faster and with many additional commands (and no bugs).

 

 

 

Link to comment
Share on other sites

23 hours ago, Philsan said:

To check which BASIC revision you have type PRINT PEEK(43234).

If the result is 162 you have rev. A, 96 rev. B, 234 rev. C.

 

If you have rev. B, you can replace the BASIC rom of your computer with the bugfree rev. C.

 

Otherwise there are software patches to load to fix the rev. B bug.

 

Another option is to use Turbo-Basic XL, compatible with Atari BASIC but faster and with many additional commands (and no bugs).

 

 

 

Interesting. I get 234, thus rev. C, yet this is an 800 XL, not an XE. Does that mean necessarily that a previous owner switched BASIC chips, or did any XLs come this way from the factory?

Link to comment
Share on other sites

LIST is the better way to periodically save.

SAVE/CSAVE will preserve unused variable names as well as returning you to a potential lockup state.

 

But even LIST has it's risks - ENTER is the same as you typing in the program so you could have the move bug occur during the loading.

A way around that can be to enter a dummy line first which can change how the memory moves are executed.

Link to comment
Share on other sites

10 hours ago, Paul Lambert said:

Interesting. I get 234, thus rev. C, yet this is an 800 XL, not an XE. Does that mean necessarily that a previous owner switched BASIC chips, or did any XLs come this way from the factory?

Some XLs had BASIC rev. C intalled from the factory.

Link to comment
Share on other sites

Hello @Paul Lambert

 

I would suggest looking into a FujiNet.  

 

https://thebrewingacademy.com/

 

It has more of a learning curve but more features including a SD card drive emulator and a way to use WiFi to use disks from over the internet.

 

I'd suggest the "fixed" version a small additional cost.  You can find more by searching out FijiNet in the forums.  What model of Atari are you using?

 

Thank you

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...