stringBug

Priskribo de la ĉi-paĝa enhavo

Montrado de miso de Beta BASIC, por Sinclair ZX Spectrum.

Etikedoj:

Dum la programado de Alien-B mi malkovris ĝenan mison de la funkcio STRING$ de Beta BASIC 4.0+D: ĝi ne ĉiam redonas la ĝustan kalkulon se vokite ene de la sama funkcio. Mi verkis ĉi malgrandan programon por tion montri.

Ekranfoto

La programo montras la devajn kaj faktaj rezultojn de pluraj kalkuloj, kaj ilian kodon:

Rezulto

Fontkodo

  10 REM stringBug
  20 REM A demo of a Beta BASIC 4.0+D's bug, found out by the author
  30 REM By Marcos Cruz (programandala.net)

  40 REM 2010-11-23 First version
  50 REM 2011-02-03 Some little changes in the code

  60 RANDOMIZE USR 58419
     REM Beta BASIC on
  70 WINDOW 0
     PAPER 0
     BORDER 0
     INK 1
     CSIZE 8,7
     CLS
  80 PRINT "Bug in Beta BASIC 4.0+D:"'"sometimes nested STRING$ doesn't"'"work fine."'
  90 PRINT INVERSE 1'"Should be","Result"
 100 PRINT 300,LEN STRING$(10,"012345678901234567890123456789")
 110 PRINT 300,LEN STRING$(10,STRING$(10,"abc"));" (nested)"
 120 PRINT 448,LEN STRING$(14,"123456789_123456789_123456789_12")
 130 PRINT 448,LEN STRING$(14,(CHAR$(0)+STRING$(28,"a")+CHAR$(0)));" (nested)"
 140 PRINT 392,LEN STRING$(28,"123456789_1234")
 150 PRINT 392,LEN STRING$(28,STRING$(14,"a"));" (nested)"
 160 PRINT 392,LEN STRING$(14,STRING$(28,"a"));" (nested)"
 170 PRINT 10,LEN STRING$(5,STRING$(2,"A"));" (nested)"
 180 PRINT 10,LEN STRING$(2,STRING$(5,"A"));" (nested)"
 190 CSIZE 4,7
     PRINT
     LIST 100 TO 170
 200 CSIZE 8
     PAUSE 0
     STOP

 210 DEF PROC s
 220   ERASE d*"stringBug~"
 230   ERASE d*"stringBug" TO "stringBug~"
 240   SAVE d*"stringBug" LINE 10
 250 END PROC

Deŝutoj

La jenaj spegulkopioj de diskedoj de +D enhavas, krom la programo OverBug, jenojn:

La komenciga dosiero Autoload enlegas ambajn Beta BASIC kaj la programon OverBug.

Rilataj paĝoj

OverBug
Ilo por esplori misfunkciadon de Beta DOS en Beta BASIC, por Sinclair ZX Spectrum.
bb4d-fixer
Fiksilo por iuj eraroj de Beta BASIC 4.0+D.