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

Описание к видео This Function Destroys Programs: MS-BASIC's VAL()

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!

Комментарии

Информация по комментариям в разработке