This Function Destroys Programs: MS-BASIC's VAL()

Published: 01 January 1970
on channel: 8-Bit Show And Tell
47,245
2.1k

There's a bug lurking in the VAL() function of most early implementations of Microsoft BASIC that has the power to corrupt your program. We demonstrate it on the Commodore 64 and VIC-20, but it's present on many other 6502-based machines, as well as Z80 and even 6809 computers as discovered by many helpful people on the internets. We then attempt to explain why the bug happens: it's the result of a kind of nasty hack using Microsoft BASIC's evaluation routine combined with the particular edge case when an overflow error occurs.

The VIC-20 Quick Reference Handbook by Jeff Daniels: https://jeffdaniels.itch.io/vic-20-qu...

Tool Kit: BASIC https://archive.org/details/Compute_s...

Allen Huffman's blog: https://subethasoftware.com/2023/08/1...

All the X-Tweets:
  / 1692238191720600008  
  / 1692313328209559923  
  / 1693074790855102861  
  / 1692300818815283262  
  / 1692368840569851958  

Closing song lyrics "Call An Awesome Superhero" by Robin's son, aged 5.

To support 8-Bit Show And Tell:
Become a patron:   / 8bitshowandtell  
One-time donation: https://paypal.me/8BitShowAndTell
2nd channel:    / @8-bitshowandtell247  

Index:
0:00 A bit about VAL()
2:31 + Addition or Concatenation?
4:42 10 A=VAL("1E39"):REM SHOW BUG
7:53 The VIC-20: VAL(TI$)
11:45 Tool Kit: BASIC Explanation
13:40 About the Overflow Error? 39 digits
15:14 VAL() needs a null-terminated string
18:30 Machine Language Monitor time
22:22 Thanks to my patrons and X-Twitter pals!


Watch video This Function Destroys Programs: MS-BASIC's VAL() online, duration hours minute second in high quality that is uploaded to the channel 8-Bit Show And Tell 01 January 1970. Share the link to the video on social media so that your subscribers and friends will also watch this video. This video clip has been viewed 47,245 times and liked it 2.1 thousand visitors.