| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Worst VICE bug in history (RAM error/BASIC)
yeah.. no, its real..
1 hour of work is lost, and i have to do it all over again.
i ran super writer editor (super poker) that has been working ffrom day 1 for 30 years, and i wrote a message it took 1 hour to write.
its all fucked up, and the text is full of zeros, every 2nd letter.
some strange catastophe error with vice happened, and it has run a fully working BASIC program, and poked the data into ram wrong, so the text cant be saved.. it has
a recurring simple bug.:
text typed from basic into ram, as super pokwer does, it has a 0 between every letter. first 3rd of it, then there is some text that is 100% as it shall be (complete with cursor moved, and color changes etc), and the last 40% of the text has the same bug as all in the start, every single key/char that was typed into ram, has a 0 between every letter/chr$ that was typed.
so now, my who work is destroyed, because VICE apparently cant run BASIC programs properly anymore ?
i dont know how this shit is possible, but the error is very systematic.
EVERY byte entered into ram, has a 0 byte between every value...
looks like a simple systematic RAM error in VICE.. that somehow got activated.
i kid you not, im a pro, and i dont want any stupid arguments out of this.
i can fix the text by removing all the zeroes between the typed letters in the message, manually, and perhaps save it all from sure death this way. at least it looks that way.
im almost crying..
i never expected such a freak accident to happen.
what could cause VICE to advance 2 bytes in ram, every time the poke in the basic program only advances 1 byte in ram ?
clearly such an error should be easy to find, but what strange shit in VICE can cause this ?
oh god...
i just feel so sad right now.. this thing i wrote is a part of the 30 year anniversary..
(drained for power now, and sad) |
|
... 14 posts hidden. Click here to view all posts.... |
| |
Shine
Registered: Jul 2012 Posts: 327 |
Another scener told me some days ago:
"Don't trust an emulator ever!"
Sorry for your lost data ... i would jump out of my window ... (ground floor of course!) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11117 |
only a fool blames his tool though. and there are very very very few things that actually dont work correctly in emulators these days. BASIC certainly does :) |
| |
Oswald
Registered: Apr 2002 Posts: 5017 |
1. not vice problem
2. save memory, remove every 2nd byte
3. profit |
| |
The Phantom
Registered: Jan 2004 Posts: 360 |
Before I went 100% emulator, there was 1 rule I always lived by when it came to anything on C64. SAVE OFTEN.
In fact, I just finished a part last week. Guess how many work disks I have? 22 for the code, and 5 for the artwork.
SAVE OFTEN.
Sorry for your loss Sidwave ;) |
| |
Tao
Registered: Aug 2002 Posts: 115 |
Step #1: Write the text in vim (or, *shudder*, some other editor) -- bonus: not only do you get to use a good editor, you also get to use a good keyboard
Step #2: Convert the text
Step #3: Copy it to a d64
Step #4: Profit! |
| |
chatGPZ
Registered: Dec 2001 Posts: 11117 |
where is the link to that "super poker" program anyway? if its a bug, it can be reproduced.... right? :)
err... this? Super-Writer ... yeah it will write happily into the I/O registers once you entered enough text, and then crash in funny ways eventually. or perhaps it will overwrite the basic variables before that happens, with similar results.
clearly a VICE bug! |
| |
robozz
Registered: Oct 2003 Posts: 42 |
my thoughts:
1. don't use a 13-line BASIC program on friday the 13th, it's basically asking for trouble!
2. don't blame VICE while using a program which you yourself has written the instructions for.
3. profit :) |
| |
iAN CooG
Registered: May 2002 Posts: 3134 |
Indeed, what groepaz said, after typing just some bytes of text, memory from $9fff backwards is filled with temp strings with all your text interleaved with $00, means that for every char typed, top of mem is filled with 2 bytes too. 83 blocks means 83*256= $5300 bytes, so the text should have ended at $a300 which is clearly BS, this program will eat its own text after ~ $1aa0 bytes, look what happens, "1234567890" is what I typed last :D
>C:6a80 53 53 53 53 53 53 53 53 30 00 00 30 00 39 00 38 SSSSSSSS0..0.9.8
>C:6a90 00 37 00 36 00 35 00 34 00 33 00 32 00 31 00 9d .7.6.5.4.3.2.1..
>C:6aa0 00 9d 00 9d 00 9d 00 9d 00 9d 9d 9d 9d 9d 9d 9d ................
>C:6ab0 9d 31 32 33 34 35 36 37 38 39 30 91 00 11 00 11 .1234567890.....
But don't worry, he's a pro!1 |
| |
TheRyk
Registered: Mar 2009 Posts: 2072 |
I think, he should retype everything on real hw to prove skeptics wrong ;)
For real, MAN, there are so many ways of preventing accidents like that:
a) [Alt+S] for quick snapshot image in WinVICE -> in case of crash you get everything back with [ALT+L]
b) using petcat, here's even a frontend, don't worry, though article is in German, language of tool is English: https://www.c64-wiki.de/index.php/Bas.Edit
c) plain TXT-Editor as already suggested
d) lookee here: https://www.c64-wiki.com/index.php/Memory_%28BASIC%29#String_Va.. there String Heap behaviour is (very roughly) explained
PS:
Quote:1 hour of work ...83 blocks of text
respect :) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11117 |
anyone who types out huge amount of text in such terrible editors deserves to be punished for it though :o) |
Previous - 1 | 2 | 3 - Next |