Jump to content
IGNORED

My 800XL has the lock up bug. How often do you think I should save while...


Ross PK

Recommended Posts

Depends how much your time is worth? Save as often as what you are willing to loose. You may want to alternate between a couple of filenames. It's not how long you have been editing that causes the lockup so much as the number of bytes that is stored with each line and where the edited line will be put into memory.

 

I really would recommend using Turbo Basic XL, or at the very least find a disk loadable version of BASIC Rev C.

 

--Ken

Edited by kenfused
Link to comment
Share on other sites

From memory, Rev C is near identical except for several bytes which have to be patched - so there should be small programs around which do that.

 

I used to just Save regularly - using different filenames is the norm, e.g. Game01 Game02 etc. then just do a cleanup once in a while.

 

Rev B also generously gives you the 16 byte bloat feature each Save, so doing a LIST / ENTER once in a while cures that. Also gets rid of unused variable names.

 

The problem is that you can have a perfectly working program and LIST / ENTER exposed you to the nasty memory move bug which can lockup the machine.

 

In such case you have a LISTed program which locks up, I believe you can sometimes get around it by having some existing code which changes where in memory things are moved. e.g. NEW then 0 REM ABCDEF, then ENTER your program from disk.

Link to comment
Share on other sites

I really would recommend using Turbo Basic XL, or at the very least find a disk loadable version of BASIC Rev C.

 

--Ken

Why the disk loadable version instead of the cart?

price or quick availability. Cart or changing the BASIC ROM if someone wants to heavily use the standard Atari BASIC.

Link to comment
Share on other sites

All versions of Atari Basic are not copy-protected, so you could just boot a copy of the Rev.C version from a disk (renaming it to "autorun.sys" will accomplish this automatically). Or, you could try to track down an actual cartridge of Basic...even Rev. A is better to use than the internal Rev. B. There was a program that was published by somebody (Compute!, I think) that you could type in that copies the internal Rev. B Basic to the underlying RAM in 800XL's and fixes it...but I can't seem to find it online. REV. C is just REV. A with a couple of bytes NOP'ed out.

 

So if you have no access to a dumped cartridge file, and no way to copy to Ram...the solution is just to avoid using the SAVE or CSAVE commands. Use LIST instead (which stores the program to the specified device un untokenized format...avoiding the problem entirely). Use the ENTER command to load it back. There's only a few problems with using this method:

Untokenized program files are quite a bit larger than tokenized program files.

Atari Basic has a maximum line length of 120 characters (3 screen lines). This could be an issue if you've used shorthand commands to exceed the character limit.

This solution does not correct Basic programs that have already been scrambled by the bug.

 

 

Description of the lockup bugs in Rev. A and B:

http://atarimagazines.planetmirror.com/com...SIGHT_Atari.php

Link to comment
Share on other sites

I found the B Basic fixing program HERE

 

 

The program listing is pretty short if you don't have an SIO...

10 REM BASIC BUG EXTERMINATOR

20 ? CHR$(125):? "{inverse}       B BASIC 
BUG EXTERMINATOR      {normal}":?

21 ? "THIS PROGRAM CREATES AN AUTORUN.SYS   FILE WHICH CORRECTS THE NASTY BUG"

22 ? "THAT PLAGUES THE VERS B BASIC RESID-  ENT IN SOME 800XL MODELS.":?

23 ? "PLACE A FORMATTED BOOT DISK CONTAIN-  ING ATARI DOS IN DRIVE #1 AND THEN"

24 ? "PRESS [START].":? :? "A FILE {inverse}AUTORUN.SYS{normal} WILL BE WRITTEN TO YOUR BOOT DISK. NOW,WHENEVER YOU"

25 ? "BOOT YOUR COMPUTER, YOUR RESIDENT	 BASIC WILL BE FIXED.":?

26 ? "PRESS {inverse}START{normal} WHEN DISK IS READY!"

27 IF PEEK(53279)<>6 THEN 27

30 ? :? "CHECKING DATA STATEMENTS"

40 READ A:IF A=-1 THEN PASS=PASS+1:READ A:IF PASS=3 THEN 60

50 CHECKSUM=CHECKSUM+A:GOTO 40

60 IF CHECKSUM<>A THEN ? CHR$(253):? "DATA STATEMENTS INCORRECT":? "RECHECK PROGRAM":END

70 I=1536:RESTORE 190:? CHR$(125):? :? "DATA STATEMENTS CORRECT--PROCEEDING"

80 READ A:IF A=-1 THEN 100

90 POKE I,A:I=I+1:GOTO 80

100 OPEN #1,8,0,"D:AUTORUN.SYS"

110 READ A:IF A=-1 THEN 130

120 PUT #1,A:GOTO 110

130 X=USR(1536)

140 READ A:IF A=-1 THEN 160

150 PUT #1,A:GOTO 140

160 CLOSE #1:? CHR$(125):? :? "NOW GO TO DOS MENU":? "AND REWRITE DOS FILES"

170 POKE 6156,129:POKE 6160,155

180 END

190 DATA 104,169,0,133,203,169,160,133,
204,162,16,169,11,157,66,3,169,205,157,
68,3,169,0,157

200 DATA 69,3,169,0,157,73,3,169,
1,157,72,3,160,0,177,203,133,205,
32,86,228,24,165,203

210 DATA 105,1,133,203,144,2,230,
204,165,204,201,192,208,3,76,234,
6,201,169,208,41,165,203,201

220 DATA 76,208,217,169,76,133,
205,32,86,228,169,120,133,205,32,
86,228,169,155,133,205,32,86,228

230 DATA 24,165,203,105,3,133,
203,144,187,230,204,76,36,6,201,
172,208,30,165,203,201,168,208,64

240 DATA 169,76,133,205,32,86,228,
169,96,133,205,32,86,228,169,155,
133,205,32,86,228,76,96,6

250 DATA 201,188,240,3,76,36,6,
165,203,201,130,240,3,76,36,6,
169,76,133,205,32,86,228,169

260 DATA 110,133,205,32,86,228,
169,155,133,205,32,86,228,76,96,
6,201,87,240,25,201,100,240,3

270 DATA 76,36,6,169,220,133,
205,32,86,228,24,165,203,105,1,
133,203,144,2,230,204,169,220,133

280 DATA 205,32,86,228,24,165,
203,105,1,133,203,144,2,230,
204,76,36,6,96,-1

290 DATA 255,255,65,0,65,0,0,0,
6,61,6,169,129,133,12,169,155,
133,13,169,0,133,204,169

300 DATA 188,133,205,169,0,133,
206,169,156,133,207,160,0,177,204,
145,206,200,192,0,208,247,230,205

310 DATA 165,205,201,192,240,7,
230,207,160,0,76,26,6,169,1,133,
9,169,0,141,68,2,76,0

320 DATA 160,96,155,255,155,32,
242,171,165,212,240,4,73,128,133,
212,76,177,172,32,81,218,169,7

330 DATA 133,192,76,134,188,208,
4,202,208,1,96,76,84,169,169,255,
133,8,208,17,173,158,23,201

340 DATA 32,240,243,32,64,21,169,
0,133,8,76,155,155,32,64,21,32,
213,155,169,0,133,204,169

350 DATA 156,133,205,169,0,133,
206,169,188,133,207,160,0,177,204,
145,206,200,192,0,208,247,230,205

360 DATA 165,205,201,160,240,7,
230,207,160,0,76,176,155,169,129,
133,12,169,155,133,13,76,0,160

370 DATA 83,58,169,152,133,106,
162,48,169,3,157,66,3,169,211,
157,68,3,169,155,157,69,3,169

380 DATA 8,157,74,3,169,0,157,75,
3,32,86,228,169,12,157,66,3,32,86,
228,96,226,2,227

390 DATA 2,213,155,0,160,255,191,-1

400 DATA 65,0,65,0,1,224,2,
225,2,0,6,-1,61046

Edited by Nukey Shay
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...