VCCE / VCC

Tandy Color Computer 3 Emulator
GNU General Public License v3.0
68 stars 22 forks source link

An interesting Edit Bug #90

Closed mdavidjohnson closed 3 months ago

mdavidjohnson commented 2 years ago

I have found what appears to be a rather interesting bug in VCC.

Attached is my (somewhat lengthy) MULTIPLY.BAS as an ASCII text file.

I SELECT ALL and then CTRL-C in my text editor and then go to VCC and:

Edit|Paste BASIC Code (with NEW)

When I then "RUN" I get:

?NF ERROR IN 30130

or sometimes at 30060.

Upon a LIST 29000-30130, I discover that several lines are missing from the listing; specifically (at least) Lines 29910-29940, 29970-30010, and 30040-30110.

I suspect this error may be caused by the length of my code, but I'm not exactly sure how or why.

I would appreciate your thoughts on this.

Additional note: I sent this direct to Bill Pierce with MULTIPLY.BAS attached. The file exhibited some strange behavior which I think may have been caused by sending it via Microsoft Outlook. I have attached its MULTIPLY.txt equivalent (both are actually the same plain ASCII text file despite the difference in name). MULTIPLY.txt

jimrye commented 2 years ago

Hi David, out of curiosity, could you try turning up the overclocking to, say, 12 MHz and try the paste again? If that makes a difference, it'll give us an idea of what needs to be adjusted. -Jim

mdavidjohnson commented 2 years ago

Oh – that’s indeed an intriguing thought.

I had forgotten that I had VCC cranked all the way up to 202938 MHz.

Unfortunately, when I dropped it down to 12.518 MHz, the problem persisted.

And it still remained when I cranked it all the way down to 1.788 MHz.

So, no joy there.

FYI, I’m running VCC on an Intel i7-9700 CPU @ 3.00 GHz, with 32 GB of RAM under Windows 10 Pro 64-bit.

--

M. David Johnson

@.> @.

From: JimRye @.*** Sent: Wednesday, January 5, 2022 7:33 PM To: VCCE/VCC Cc: mdavidjohnson; Author Subject: Re: [VCCE/VCC] An interesting Edit Bug (Issue #90)

Hi David, out of curiosity, could you try turning up the overclocking to, say, 12 MHz and try the paste again? If that makes a difference, it'll give us an idea of what needs to be adjusted. -Jim

— Reply to this email directly, view it on GitHub https://github.com/VCCE/VCC/issues/90#issuecomment-1006213043 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ACO5PUB24UWRFCBQCZYCCO3UUTWNVANCNFSM5LK6NVFQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub . You are receiving this because you authored the thread. https://github.com/notifications/beacon/ACO5PUBV4LSCO6RBLEIMKI3UUTWNVA5CNFSM5LK6NVF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHP4ZPMY.gif Message ID: @.***>

mdavidjohnson commented 2 years ago

Jim –

Something else which might possibly be helpful is the attached CAPITALS.txt file.

That was my first effort at this type of quiz. It’s more linear: the Splash Screen comes first, then the initialization, then the Data Loading, then the Sequencing Subroutine, etc. I tried to expand upon it in MULTIPLY.txt while restructuring it to move the “runs once” routines at the end and the “runs over and over subroutine” at the beginning where BASIC would be able to find it faster.

The code in both programs is quite similar except for the reordering.

And except for CAPITALS.txt being only about 2/3 the size of MULTIPLY.txt.

And except for the fact that CAPITALS.txt seems to work perfectly.

--

M. David Johnson

@.> @.

From: JimRye @.*** Sent: Wednesday, January 5, 2022 7:33 PM To: VCCE/VCC Cc: mdavidjohnson; Author Subject: Re: [VCCE/VCC] An interesting Edit Bug (Issue #90)

Hi David, out of curiosity, could you try turning up the overclocking to, say, 12 MHz and try the paste again? If that makes a difference, it'll give us an idea of what needs to be adjusted. -Jim

— Reply to this email directly, view it on GitHub https://github.com/VCCE/VCC/issues/90#issuecomment-1006213043 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ACO5PUB24UWRFCBQCZYCCO3UUTWNVANCNFSM5LK6NVFQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub . You are receiving this because you authored the thread. https://github.com/notifications/beacon/ACO5PUBV4LSCO6RBLEIMKI3UUTWNVA5CNFSM5LK6NVF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHP4ZPMY.gif Message ID: @.***>

100 ' 101 ' 102 ' CAPITALS.BAS 103 ' MDJ 2021/12/15 104 ' 105 ' A QUIZ TO IDENTIFY 106 ' CAPITALS OF USA 107 ' STATES AND TERRITORIES 108 ' 109 '

110 'VARIABLES LIST 111 ' I, J = INDEXES AND COUNTERS 112 ' A = RESPONSE CODE 113 ' A$ = KEY PRESS 114 ' CN$ = CITY NAMES ARRAY 115 ' QT = # OF QUESTIONS ASKED 116 ' QC = # OF CORRECT ANSWERS 117 ' QP = % CORRECT 118 ' R, R1, R2, RR, RP 119 ' = RANDOMIZATION VARIABLES 120 ' S = SCRAMBLE CODES ARRAY 121 ' S1 = STATE NUMBER 122 ' SN$ = STATE NAME 123 ' SP$ = SCREEN DISPLAY STRING 124 ' ST$ = STATES' DATA ARRAY

160 '* 170 ' 180 ' DISPLAY THE SPLASH SCREEN 190 ' 200 ' 210 CLS

220 SD$ = CHR$(32) + CHR$(158) 230 FOR I = 0 TO 27 240 SD$ = SD$ + CHR$(156) 250 NEXT I 260 SD$ = SD$ + CHR$(157) + CHR$(32) 270 @.***, SD$

280 SD$ = CHR$(32) + CHR$(154) + CHR$(206) 290 FOR I = 0 TO 25 300 SD$ = SD$ + CHR$(204) 310 NEXT I 320 SD$ = SD$ + CHR$(205) + CHR$(149) + CHR$(32) 330 @.***, SD$

340 SD$ = CHR$(32) + CHR$(154) + CHR$(202) 350 FOR I = 0 TO 25 360 SD$ = SD$ + CHR$(32) 370 NEXT I 380 SD$ = SD$ + CHR$(197) + CHR$(149) + CHR$(32) 390 @.***, SD$

400 SD$ = CHR$(32) + CHR$(154) + CHR$(202) 410 SD$ = SD$ + " STATES AND TERRITORIES " 420 SD$ = SD$ + CHR$(197) + CHR$(149) + CHR$(32) 430 @.***, SD$

440 SD$ = CHR$(32) + CHR$(154) + CHR$(202) 450 SD$ = SD$ + " CAPITALS GAME " 460 SD$ = SD$ + CHR$(197) + CHR$(149) + CHR$(32) 470 @.***, SD$

480 SD$ = CHR$(32) + CHR$(154) + CHR$(202) 490 FOR I = 0 TO 25 500 SD$ = SD$ + CHR$(32) 510 NEXT I 520 SD$ = SD$ + CHR$(197) + CHR$(149) + CHR$(32) 530 @.***, SD$

540 SD$ = CHR$(32) + CHR$(154) + CHR$(203) 550 FOR I = 0 TO 25 560 SD$ = SD$ + CHR$(195) 570 NEXT I 580 SD$ = SD$ + CHR$(199) + CHR$(149) + CHR$(32) 590 @.***, SD$

600 SD$ = CHR$(32) + CHR$(155) 610 FOR I = 0 TO 27 620 SD$ = SD$ + CHR$(147) 630 NEXT I 640 SD$ = SD$ + CHR$(151) + CHR$(32) 650 @.***, SD$

660 @., " PRESS ANY KEY TO CONTINUE " 670 @., " BDS SOFTWARE 2021 "; 680 '* 690 ' 700 ' END SPLASH 710 ' 720 '

730 A$=INKEY$ 740 IF A$="" GOTO 730

750 '* 760 ' 770 ' LOADING THE SYSTEM 780 ' 790 '

800 CLS 801 ' RANDOMIZATION ARRAYS 802 DIM R1(5) 803 DIM R2(4) 804 DIM RR(4)

810 PRINT 820 PRINT " LOADING THE SYSTEM" 830 PRINT " PLEASE WAIT" 840 PRINT

1100 'RANDOMIZE THE RND FUNCTION 1110 R = RND(-TIMER)

1200 'INITIALIZE SCRAMBLE CODES 1210 DIM S(24,4)

1220 S(0,0) = 0 1230 S(0,1) = 1 1240 S(0,2) = 2 1250 S(0,3) = 3

1260 S(1,0) = 0 1270 S(1,1) = 1 1280 S(1,2) = 3 1290 S(1,3) = 2

1300 S(2,0) = 0 1310 S(2,1) = 2 1320 S(2,2) = 1 1330 S(2,3) = 3

1340 S(3,0) = 0 1350 S(3,1) = 2 1360 S(3,2) = 3 1370 S(3,3) = 1

1400 S(4,0) = 0 1410 S(4,1) = 3 1420 S(4,2) = 1 1430 S(4,3) = 2

1440 S(5,0) = 0 1450 S(5,1) = 3 1460 S(5,2) = 2 1470 S(5,3) = 1

1500 S(6,0) = 1 1510 S(6,1) = 0 1520 S(6,2) = 2 1530 S(6,3) = 3

1540 S(7,0) = 1 1550 S(7,1) = 0 1560 S(7,2) = 3 1570 S(7,3) = 2

1600 S(8,0) = 1 1610 S(8,1) = 2 1620 S(8,2) = 0 1630 S(8,3) = 3

1640 S(9,0) = 1 1650 S(9,1) = 2 1660 S(9,2) = 3 1670 S(9,3) = 0

1700 S(10,0) = 1 1710 S(10,1) = 3 1720 S(10,2) = 0 1730 S(10,3) = 2

1740 S(11,0) = 1 1750 S(11,1) = 3 1760 S(11,2) = 2 1770 S(11,3) = 0

1800 S(12,0) = 2 1810 S(12,1) = 0 1820 S(12,2) = 1 1830 S(12,3) = 3

1840 S(13,0) = 2 1850 S(13,1) = 0 1860 S(13,2) = 3 1870 S(13,3) = 1

1900 S(14,0) = 2 1910 S(14,1) = 1 1920 S(14,2) = 0 1930 S(14,3) = 3

1940 S(15,0) = 2 1950 S(15,1) = 1 1960 S(15,2) = 3 1970 S(15,3) = 0

2000 S(16,0) = 2 2010 S(16,1) = 3 2020 S(16,2) = 0 2030 S(16,3) = 1

2040 S(17,0) = 2 2050 S(17,1) = 3 2060 S(17,2) = 1 2070 S(17,3) = 0

2100 S(18,0) = 3 2110 S(18,1) = 0 2120 S(18,2) = 1 2130 S(18,3) = 2

2140 S(19,0) = 3 2150 S(19,1) = 0 2160 S(19,2) = 2 2170 S(19,3) = 1

2200 S(20,0) = 3 2210 S(20,1) = 1 2220 S(20,2) = 0 2230 S(20,3) = 2

2240 S(21,0) = 3 2250 S(21,1) = 1 2260 S(21,2) = 2 2270 S(21,3) = 0

2300 S(22,0) = 3 2310 S(22,1) = 2 2320 S(22,2) = 0 2330 S(22,3) = 1

2340 S(23,0) = 3 2350 S(23,1) = 2 2360 S(23,2) = 1 2370 S(23,3) = 0

2500 'LOAD STATE AND 2510 'TERRITORY DATA 2520 DIM ST$(55,6) 2530 FOR I = 0 TO 54 2540 FOR J = 0 TO 5 2550 READ ST$(I,J) 2560 NEXT J 2570 NEXT I

2600 PRINT " OKAY -" 2610 PRINT " ALL LOADED AND READY TO GO" 2620 PRINT 2630 PRINT " PRESS ANY KEY TO BEGIN" 2640 PRINT

2650 '* 2660 ' 2670 ' END LOADING 2680 ' 2690 '

2700 A$=INKEY$ 2710 IF A$="" GOTO 2700

10000 '* 10010 ' 10020 ' MAIN 10030 ' 10040 '

10050 ' S1 = STATE NUMBER 10060 ' SN$ = STATE NAME 10070 ' CN$ = CITY NAMES ARRAY 10080 ' QT = # OF QUESTIONS ASKED 10090 ' QC = # OF CORRECT ANSWERS 10100 ' QP = % CORRECT 10110 DIM CN$(4) 10120 QT = 0 10130 QC = 0 10140 QP = 0

10150 'RANDOMLY SELECT A 10160 'STATE OR TERRITORY 10170 S1 = RND(55) - 1 10180 SN$ = ST$(S1,0)

10190 'RANDOMLY SELECT AND 10200 'SCRAMBLE FOUR OF 10210 'THE FIVE CITY NAMES 10220 GOSUB 20050 10230 FOR I = 0 TO 3 10240 CN$(I) = ST$(S1,RR(I)+1) 10250 NEXT I

10260 'MAIN DISPLAY SCREEN 10270 @.," WHAT CITY IS THE CAPITAL OF" 10280 @.," "+SN$+"?" 10290 @., " A. "+CN$(0) 10300 @., " B. "+CN$(1) 10310 @., " C. "+CN$(2) 10320 @., " D. "+CN$(3) 10330 @., " E. NONE OF THE ABOVE" 10340 @., " PRESS A, B, C, D, OR E" 10341 @., " " 10342 @., " " 10343 @., " " 10350 @., " SCORE = ";QC;" OF ";QT;" = ";QP;"%";

10360 A$ = INKEY$ 10370 IF A$="" GOTO 10360

10380 IF (A$="A" OR A$=CHR$(97)) GOTO 10470 10390 IF (A$="B" OR A$=CHR$(98)) GOTO 10480 10400 IF (A$="C" OR A$=CHR$(99)) GOTO 10490 10410 IF (A$="D" OR A$=CHR$(100)) GOTO 10500 10420 IF (A$="E" OR A$=CHR$(101)) GOTO 10510 10430 SOUND 159,2 10440 SOUND 159,2 10450 @.***, " YOU MUST PRESS ONE OF A TO E" 10460 GOTO 10360

10470 A = 0: GOTO 10520 10480 A = 1: GOTO 10520 10490 A = 2: GOTO 10520 10500 A = 3: GOTO 10520 10510 A = 4: GOTO 10520

10520 IF A = RP GOTO 10660 10530 SOUND 78,1 10540 SOUND 78,1 10550 SOUND 78,1 10560 SOUND 5,3 10570 @.*, " *SORRY: THAT IS INCORRECT." 10580 SP$ = " CORRECT = " 10590 IF RP=0 THEN SP$ = SP$ + "A. "+CN$(0) 10600 IF RP=1 THEN SP$ = SP$ + "B. "+CN$(1) 10610 IF RP=2 THEN SP$ = SP$ + "C. "+CN$(2) 10620 IF RP=3 THEN SP$ = SP$ + "D. "+CN$(3) 10630 IF RP=4 THEN SP$ = SP$ + "E.NONE OF THE ABOVE" 10640 @., SP$ 10650 GOTO 10720

10660 SOUND 204,1 10670 SOUND 204,1 10680 SOUND 204,1 10690 SOUND 218,3 10700 @., " THAT IS CORRECT! ***" 10710 QC = QC + 1

10720 QT = QT + 1 10730 QP = INT(100 * (QC/QT)) 10740 @., " SCORE = ";QC;" OF ";QT;" = ";QP;"%"; 10750 @., " PRESS C TO CONTINUE;Q TO QUIT"

10760 A$ = INKEY$ 10770 IF A$="" GOTO 10760

10780 IF (A$="C" OR A$=CHR$(99)) GOTO 10170 10790 IF (A$="Q" OR A$=CHR$(113)) GOTO 32700 10800 SOUND 159,2 10810 SOUND 159,2 10820 @.***, " YOU MUST PRESS C OR Q" 10830 GOTO 10760

10840 '* 10850 ' 10860 ' END MAIN 10870 ' 10880 '

20000 '* 20010 ' 20020 ' SELECTION SUBROUTINE: 20030 ' 20040 '

20050 'RANDOM SELECTION OF 20060 'FOUR OF FIVE. 20070 ' SELECTS FOUR ENTRIES 20080 ' FROM FIVE POSSIBILITIES. 20090 ' INPUTS: 20100 ' NONE 20110 ' OUTPUTS (GLOBAL) 20120 ' RR(4) = THE SELECTED FOUR 20130 ' RP = POSITION OF "0" ENTRY 20140 ' (0, 1, 2, OR 3) 20150 ' = 4 IF "0" ENTRY 20160 ' NOT INCLUDED

20200 ' INITIALIZATION 20210 FOR I = 0 TO 4 20220 R1(I) = I 20230 NEXT I 20240 RP = 4

20300 'FIRST PASS 20310 R = RND(5) - 1 20320 J = -1 20330 FOR I = 0 TO 4 20340 IF R = I GOTO 20370 20350 J = J + 1 20360 R2(J) = R1(I) 20370 NEXT I

20400 'SCRAMBLE PASS 20410 J = RND(24) - 1 20420 FOR I = 0 TO 3 20430 RR(I) = R2(S(J,I)) 20440 NEXT I

20500 'POSITION PASS 20510 FOR I = 0 TO 3 20520 IF RR(I) <> 0 GOTO 20540 20530 RP = I 20540 NEXT I

20600 RETURN

20610 '* 20620 ' 20630 ' ENDSUB 20640 ' 20650 '

25000 ' 25010 ' 25020 ' STATES AND TERRITORIES 25060 ' NAME AND CAPITALS DATA 25070 ' 25080 '

25100 DATA ALABAMA 25110 DATA MONTGOMERY 25120 DATA BIRMINGHAM 25130 DATA HUNTSVILLE 25140 DATA MOBILE 25150 DATA TUSCALOOSA

25200 DATA ALASKA 25210 DATA JUNEAU 25220 DATA ANCHORAGE 25230 DATA FAIRBANKS 25240 DATA BADGER 25250 DATA KNIK-FAIRVIEW

25300 DATA AMERICAN SAMOA 25310 DATA PAGO PAGO 25320 DATA TAFUNA 25330 DATA LEONE 25340 DATA FALENIU 25350 DATA AUA

25400 DATA ARIZONA 25410 DATA PHOENIX 25420 DATA TUCSON 25430 DATA MESA 25440 DATA CHANDLER 25450 DATA SCOTTSDALE

25500 DATA ARKANSAS 25510 DATA LITTLE ROCK 25520 DATA FAYETTEVILLE 25530 DATA FORT SMITH 25540 DATA SPRINGDALE 25550 DATA JONESBORO

25600 DATA CALIFORNIA 25610 DATA SACRAMENTO 25620 DATA LOS ANGELES 25630 DATA SAN DIEGO 25640 DATA SAN JOSE 25650 DATA SAN FRANCISCO

25700 DATA COLORADO 25710 DATA DENVER 25720 DATA COLORADO SPRINGS 25730 DATA AURORA 25740 DATA FORT COLLINS 25750 DATA LAKEWOOD

25800 DATA CONNECTICUT 25810 DATA HARTFORD 25820 DATA BRIDGEPORT 25830 DATA NEW HAVEN 25840 DATA STAMFORD 25850 DATA WATERBURY

25900 DATA DELAWARE 25910 DATA DOVER 25920 DATA WILMINGTON 25930 DATA NEWARK 25940 DATA MIDDLETOWN 25950 DATA BEAR

26000 DATA FLORIDA 26010 DATA TALLAHASSEE 26020 DATA JACKSONVILLE 26030 DATA MIAMI 26040 DATA TAMPA 26050 DATA ORLANDO

26100 DATA GEORGIA 26110 DATA ATLANTA 26120 DATA AUGUSTA 26130 DATA COLUMBUS 26140 DATA MACON COUNTY 26150 DATA SAVANNAH

26200 DATA GUAM 26210 DATA HAGATNA 26220 DATA DEDEDO 26230 DATA YIGO 26240 DATA MANGILAO 26250 DATA BARRIGADA

26300 DATA HAWAII 26310 DATA HONOLULU 26320 DATA PEARL CITY 26330 DATA HILO 26340 DATA WAIPAHU 26350 DATA KAILUA

26400 DATA IDAHO 26410 DATA BOISE 26420 DATA MERIDIAN 26430 DATA NAMPA 26440 DATA IDAHO FALLS 26450 DATA CALDWELL

26500 DATA ILLINOIS 26510 DATA SPRINGFIELD 26520 DATA CHICAGO 26530 DATA AURORA 26540 DATA NAPERVILLE 26550 DATA JOLIET

26600 DATA INDIANA 26610 DATA INDIANAPOLIS 26620 DATA FORT WAYNE 26630 DATA EVANSVILLE 26640 DATA SOUTH BEND 26650 DATA CARMEL

26700 DATA IOWA 26710 DATA DES MOINES 26720 DATA CEDAR RAPIDS 26730 DATA DAVENPORT 26740 DATA SIOUX CITY 26750 DATA IOWA CITY

26800 DATA KANSAS 26810 DATA TOPEKA 26820 DATA WICHITA 26830 DATA OVERLAND PARK 26840 DATA KANSAS CITY 26850 DATA LAWRENCE

26900 DATA KENTUCKY 26910 DATA FRANKFORT 26920 DATA LOUISVILLE 26930 DATA LEXINGTON 26940 DATA BOWLING GREEN 26950 DATA OWENSBORO

27000 DATA LOUISIANA 27010 DATA BATON ROUGE 27020 DATA NEW ORLEANS 27030 DATA SHREVEPORT 27040 DATA METAIRIE 27050 DATA LAFAYETTE

27100 DATA MAINE 27110 DATA AUGUSTA 27120 DATA PORTLAND 27130 DATA LEWISTON 27140 DATA BANGOR 27150 DATA AUBURN

27200 DATA MARYLAND 27210 DATA ANNAPOLIS 27220 DATA BALTIMORE 27230 DATA COLUMBIA 27240 DATA GERMANTOWN 27250 DATA SILVER SPRING

27300 DATA MASSACHUSETTS 27310 DATA BOSTON 27320 DATA WORCESTER 27330 DATA SPRINGFIELD 27340 DATA CAMBRIDGE 27350 DATA LOWELL

27400 DATA MICHIGAN 27410 DATA LANSING 27420 DATA DETROIT 27430 DATA GRAND RAPIDS 27440 DATA WARREN 27450 DATA STERLING HEIGHTS

27500 DATA MINNESOTA 27510 DATA SAINT PAUL 27520 DATA MINNEAPOLIS 27530 DATA ROCHESTER 27540 DATA BLOOMINGTON 27550 DATA DULUTH

27600 DATA MISSISSIPPI 27610 DATA JACKSON 27620 DATA GULFPORT 27630 DATA SOUTHAVEN 27640 DATA BILOXI 27650 DATA HATTIESBURG

27700 DATA MISSOURI 27710 DATA JEFFERSON CITY 27720 DATA KANSAS CITY 27730 DATA SAINT LOUIS 27740 DATA SPRINGFIELD 27750 DATA COLUMBIA

27800 DATA MONTANA 27810 DATA HELENA 27820 DATA BILLINGS 27830 DATA MISSOULS 27840 DATA GREAT FALLS 27850 DATA BOZEMAN

27900 DATA NEBRASKA 27910 DATA LINCOLN 27920 DATA OMAHA 27930 DATA BELLEVUE 27940 DATA GRAND ISLAND 27950 DATA KEARNEY

28000 DATA NEVADA 28010 DATA CARSON CITY 28020 DATA LAS VEGAS 28030 DATA HENDERSON 28040 DATA RENO 28050 DATA PARADISE

28100 DATA NEW HAMPSHIRE 28110 DATA CONCORD 28120 DATA MANCHESTER 28130 DATA NASHUA 28140 DATA DOVER 28150 DATA ROCHESTER

28200 DATA NEW JERSEY 28210 DATA TRENTON 28220 DATA NEWARK 28230 DATA JERSEY CITY 28240 DATA PATERSON 28250 DATA ELIZABETH

28300 DATA NEW MEXICO 28310 DATA SANTA FE 28320 DATA ALBUQUERQUE 28330 DATA LAS CRUCES 28340 DATA RIO RANCHO 28350 DATA ROSWELL

28400 DATA NEW YORK 28410 DATA ALBANY 28420 DATA NEW YORK CITY 28430 DATA BUFFALO 28440 DATA ROCHESTER 28450 DATA YONKERS

28500 DATA NORTH CAROLINA 28510 DATA RALEIGH 28520 DATA CHARLOTTE 28530 DATA GREENSBORO 28540 DATA DURHAM 28550 DATA WINSTON-SALEM

28600 DATA NORTH DAKOTA 28610 DATA BISMARK 28620 DATA FARGO 28630 DATA GRAND FORKS 28640 DATA MINOT 28650 DATA WILLISTON

28700 DATA THE NORTHERN MARIANA ISLANDS 28710 DATA SAIPAN 28720 DATA SAN JOSE 28730 DATA PAGAN 28740 DATA AGRIHAN 28750 DATA ALAMAGAN

28800 DATA OHIO 28810 DATA COLUMBUS 28820 DATA CLEVELAND 28830 DATA CINCINNATI 28840 DATA TOLEDO 28850 DATA AKRON

28900 DATA OKLAHOMA 28910 DATA OKLAHOMA CITY 28920 DATA TULSA 28930 DATA NORMAN 28940 DATA BROKEN ARROW 28950 DATA EDMOND

29000 DATA OREGON 29010 DATA SALEM 29020 DATA PORTLAND 29030 DATA EUGENE 29040 DATA HILLSBORO 29050 DATA GRESHAM

29100 DATA PENNSYLVANIA 29110 DATA HARRISBURG 29120 DATA PHILADELPHIA 29130 DATA PITTSBURGH 29140 DATA ALLENTOWN 29150 DATA ERIE

29200 DATA PUERTO RICO 29210 DATA SAN JUAN 29220 DATA BAYAMON 29230 DATA CAROLINA 29240 DATA PONCE 29250 DATA CAGUAS

29300 DATA RHODE ISLAND 29310 DATA PROVIDENCE 29320 DATA WARWICK 29330 DATA CRANSTON 29340 DATA PAWTUCKET 29350 DATA WOONSOCKET

29400 DATA SOUTH CAROLINA 29410 DATA COLUMBIA 29420 DATA CHARLESTON 29430 DATA MOUNT PLEASANT 29440 DATA ROCK HILL 29450 DATA GREENVILLE

29500 DATA SOUTH DAKOTA 29510 DATA PIERRE 29520 DATA SIOUX FALLS 29530 DATA RAPID CITY 29540 DATA ABERDEEN 29550 DATA BROOKINGS

29600 DATA TENNESSEE 29610 DATA NASHVILLE 29620 DATA MEMPHIS 29630 DATA KNOXVILLE 29640 DATA CHATTANOOGA 29650 DATA CLARKSVILLE

29700 DATA TEXAS 29710 DATA AUSTIN 29720 DATA HOUSTON 29730 DATA SAN ANTONIO 29740 DATA DALLAS 29750 DATA FORT WORTH

29800 DATA UTAH 29810 DATA SALT LAKE CITY 29820 DATA WEST VALLEY CITY 29830 DATA WEST JORDAN 29840 DATA PROVO 29850 DATA OGDEN

29900 DATA VERMONT 29910 DATA MONTPELIER 29920 DATA BURLINGTON 29930 DATA RUTLAND 29940 DATA ESSEX JUNCTION 29950 DATA BARRE

30000 DATA VIRGINIA 30010 DATA RICHMOND 30020 DATA VIRGINIA BEACH 30030 DATA CHESAPEAKE 30040 DATA NORFOLK 30050 DATA ARLINGTON

30100 DATA THE VIRGIN ISLANDS 30110 DATA CHARLOTTE AMALIE 30120 DATA TUTU 30130 DATA CRUZ BAY 30140 DATA FREDERIKSTED 30150 DATA CHRISTIANSTED

30200 DATA WASHINGTON 30210 DATA OLYMPIA 30220 DATA SEATTLE 30230 DATA SPOKANE 30240 DATA TACOMA 30250 DATA VANCOUVER

30300 DATA WEST VIRGINIA 30310 DATA CHARLESTON 30320 DATA HUNTINGTON 30330 DATA MORGANTOWN 30340 DATA PARKERSBURG 30350 DATA WHEELING

30400 DATA WISCONSIN 30410 DATA MADISON 30420 DATA MILWAUKEE 30430 DATA GREEN BAY 30440 DATA KENOSHA 30450 DATA RACINE

30500 DATA WYOMING 30510 DATA CHEYENNE 30520 DATA CASPER 30530 DATA LARAMIE 30540 DATA GILLETTE 30550 DATA ROCK SPRINGS

30600 '* 30610 ' 30620 ' END OF DATA 30630 ' 30640 '

32700 CLS 32710 PRINT:PRINT " FINAL SCORE = ";QP;"%" 32720 PRINT:PRINT " THANKS FOR PLAYING!" 32730 PRINT " COME BACK SOON." 32740 PRINT:PRINT " M. DAVID JOHNSON" 32750 PRINT " @.***" 32760 PRINT:PRINT:PRINT:PRINT:PRINT 32767 END

mdavidjohnson commented 2 years ago

Jim –

As an additional follow-up --

  1. I walked through the Splash Screen portion of the code, lines 29500-30310. I found the following lines to be missing after the "Edit|Paste BASIC Code (with NEW)":

            29750
    
            29820
    
            29880
    
            29910-29940
    
            29970-30050
    
            30080
    
            30150
  2. I put these lines back in manually and, upon RUN, the Splash Screen displayed properly. Upon a key press, the Initialization routine began correctly but then gave me an OM Error at line 10620.

  3. After selectively reducing the number of questions (and their associated DATA statements and READs), i.e. the following changes:

            05190 QN = RND(88) - 1
    
            10600 N = 88

and removing 56 of the 144 DATA statements, everything worked correctly except for the scoring which had a typo: I had written line 0576 instead of 05760.

  1. After correcting the line number, the scoring was working properly as well.

  2. So, I took the changes, put them into MULTIPLY.txt in my text editor, and re-did "Edit|Paste BASIC Code (with NEW)" at 1.788 MHz. It worked correctly.

A copy of this smaller, revised MULTIPLY.txt is attached for your reference.

--

M. David Johnson

@.> @.

From: JimRye @.*** Sent: Wednesday, January 5, 2022 7:33 PM To: VCCE/VCC Cc: mdavidjohnson; Author Subject: Re: [VCCE/VCC] An interesting Edit Bug (Issue #90)

Hi David, out of curiosity, could you try turning up the overclocking to, say, 12 MHz and try the paste again? If that makes a difference, it'll give us an idea of what needs to be adjusted. -Jim

— Reply to this email directly, view it on GitHub https://github.com/VCCE/VCC/issues/90#issuecomment-1006213043 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ACO5PUB24UWRFCBQCZYCCO3UUTWNVANCNFSM5LK6NVFQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub . You are receiving this because you authored the thread. https://github.com/notifications/beacon/ACO5PUBV4LSCO6RBLEIMKI3UUTWNVA5CNFSM5LK6NVF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOHP4ZPMY.gif Message ID: @.***>

00100 ' 00101 ' 00102 ' MULTIPLY.BAS 00103 ' MDJ 2022/01/03 00104 ' 00105 ' A QUIZ TO TEST 00106 ' KNOWLEDGE OF THE 00107 ' MULTIPLICATION TABLES 00108 ' 00109 '

00110 'GO TO THE PROGRAM'S 00120 'EXECUTIVE ROUTINE 00130 GOTO 4220

00200 '* 00210 ' 00220 ' SELECTION SUBROUTINE: 00230 ' 00240 ' THIS ROUTINE IS UNIFORM 00250 ' AND REMAINS THE SAME FOR 00260 ' EACH AND EVERY QUIZ GAME 00270 ' 00280 '

00290 'RANDOM SELECTION OF 00300 'FOUR OF FIVE. 00310 ' SELECTS FOUR ENTRIES 00320 ' FROM FIVE POSSIBILITIES. 00330 ' INPUTS: 00340 ' NONE 00350 ' OUTPUTS (GLOBAL) 00360 ' RR(4) = THE SELECTED FOUR 00370 ' RP = POSITION OF "0" ENTRY 00380 ' (0, 1, 2, OR 3) 00390 ' = 4 IF "0" ENTRY 00400 ' NOT INCLUDED

00490 ' INITIALIZATION 00500 FOR I = 0 TO 4 00510 R1(I) = I 00520 NEXT I 00530 RP = 4

00540 'FIRST PASS 00550 R = RND(5) - 1 00560 J = -1 00570 FOR I = 0 TO 4 00580 IF R = I GOTO 610 00590 J = J + 1 00600 R2(J) = R1(I) 00610 NEXT I

00620 'SCRAMBLE PASS 00630 J = RND(24) - 1 00640 FOR I = 0 TO 3 00650 RR(I) = R2(S(J,I)) 00660 NEXT I

00670 'POSITION PASS 00680 FOR I = 0 TO 3 00690 IF RR(I) <> 0 GOTO 710 00700 RP = I 00710 NEXT I

00720 RETURN

00730 '* 00740 ' 00750 ' ENDSUB 00760 ' 00770 '

04000 '* 04010 ' 04020 ' EXECUTIVE 04030 ' 04040 '

04050 'VARIABLES LIST 04060 ' I, J = INDEXES AND COUNTERS 04070 ' A = RESPONSE CODE 04080 ' A$ = KEY PRESS 04090 ' N = NUMBER OF QUESTIONS 04100 ' Q$ = QUESTION 04110 ' QA$ = QUESTION ANSWERS ARRAY 04120 ' QD$ = QUESTIONS DATA ARRAY 04130 ' QN = QUESTION NUMBER 04140 ' QT = # OF QUESTIONS ASKED 04150 ' QC = # OF CORRECT ANSWERS 04160 ' QP = % CORRECT 04170 ' R, R1, R2, RR, RP 04180 ' = RANDOMIZATION VARIABLES 04190 ' S = SCRAMBLE CODES ARRAY 04200 ' SD$ = SCREEN DISPLAY TEXT

04210 'GO DISPLAY SPLASH SCREEN 04220 GOSUB 29600

04230 'GO INITIALIZE THE SYSTEM 04240 GOSUB 27600

04250 'GO LOAD QUESTIONS DATA 04260 GOSUB 10600

04270 'GO ENTER THE MAIN ROUTINE 04280 GOTO 5110

04290 '* 04300 ' 04310 ' END EXECUTIVE 04320 ' 04330 '

05000 '* 05010 ' 05020 ' MAIN 05030 ' 05040 '

05050 ' QN = QUESTION NUMBER 05060 ' Q$ = QUESTION 05070 ' QA$ = QUESTION ANSWERS ARRAY 05080 ' QT = # OF QUESTIONS ASKED 05090 ' QC = # OF CORRECT ANSWERS 05100 ' QP = % CORRECT 05110 DIM QA$(4) 05120 QT = 0 05130 QC = 0 05140 QP = 0

05150 'RANDOMLY SELECT A 05160 'QUESTION 05170 'ADJUST RND FOR TOTAL 05180 'NUMBER OF QUESTIONS 05190 QN = RND(88) - 1 05200 Q$ = QD$(QN,0)

05210 'RANDOMLY SELECT AND 05220 'SCRAMBLE FOUR OF 05230 'THE FIVE ANSWERS 05240 GOSUB 500 05250 FOR I = 0 TO 3 05260 QA$(I) = QD$(QN,RR(I)+1) 05270 NEXT I

05280 'MAIN DISPLAY SCREEN 05290 @.," WHAT IS THE RESULT:" 05300 @.," "+Q$+"?" 05310 @., " A. "+QA$(0) 05320 @., " B. "+QA$(1) 05330 @., " C. "+QA$(2) 05340 @., " D. "+QA$(3) 05350 @., " E. NONE OF THE ABOVE" 05360 @., " PRESS A, B, C, D, OR E" 05370 @., " " 05380 @., " " 05390 @., " " 05400 @., " SCORE = ";QC;" OF ";QT;" = ";QP;"%";

05410 A$ = INKEY$ 05420 IF A$="" GOTO 5410

05430 IF (A$="A" OR A$=CHR$(97)) GOTO 5520 05440 IF (A$="B" OR A$=CHR$(98)) GOTO 5530 05450 IF (A$="C" OR A$=CHR$(99)) GOTO 5540 05460 IF (A$="D" OR A$=CHR$(100)) GOTO 5550 05470 IF (A$="E" OR A$=CHR$(101)) GOTO 5560 05480 SOUND 159,2 05490 SOUND 159,2 05500 @.***, " YOU MUST PRESS ONE OF A TO E" 05510 GOTO 5410

05520 A = 0: GOTO 5570 05530 A = 1: GOTO 5570 05540 A = 2: GOTO 5570 05550 A = 3: GOTO 5570 05560 A = 4: GOTO 5570

05570 IF A = RP GOTO 5710 05580 SOUND 78,1 05590 SOUND 78,1 05600 SOUND 78,1 05610 SOUND 5,3 05620 @.*, " *SORRY: THAT IS INCORRECT." 05630 SD$ = " CORRECT = " 05640 IF RP=0 THEN SD$ = SD$ + "A. "+QA$(0) 05650 IF RP=1 THEN SD$ = SD$ + "B. "+QA$(1) 05660 IF RP=2 THEN SD$ = SD$ + "C. "+QA$(2) 05670 IF RP=3 THEN SD$ = SD$ + "D. "+QA$(3) 05680 IF RP=4 THEN SD$ = SD$ + "E.NONE OF THE ABOVE" 05690 @., SD$ 05700 GOTO 5770

05710 SOUND 204,1 05720 SOUND 204,1 05730 SOUND 204,1 05740 SOUND 218,3 05750 @., " THAT IS CORRECT! ***" 05760 QC = QC + 1

05770 QT = QT + 1 05780 QP = INT(100 * (QC/QT)) 05790 @., " SCORE = ";QC;" OF ";QT;" = ";QP;"%"; 05800 @., " PRESS C TO CONTINUE;Q TO QUIT"

05810 A$ = INKEY$ 05820 IF A$="" GOTO 5810

05830 IF (A$="C" OR A$=CHR$(99)) GOTO 5190 05840 IF (A$="Q" OR A$=CHR$(113)) GOTO 5890 05850 SOUND 159,2 05860 SOUND 159,2 05870 @.***, " YOU MUST PRESS C OR Q" 05880 GOTO 5810

05890 CLS 05900 PRINT:PRINT " FINAL SCORE = ";QP;"%" 05910 PRINT:PRINT " THANKS FOR PLAYING!" 05920 PRINT " COME BACK SOON." 05930 PRINT:PRINT " M. DAVID JOHNSON" 05940 PRINT " @.***" 05950 PRINT:PRINT:PRINT:PRINT:PRINT

05960 GOTO 32767

05970 '* 05980 ' 05990 ' END MAIN 06000 ' 06010 '

10500 ' 10510 ' 10520 ' STANDARD BASIC QUIZ GAMES 10530 ' DATA LOADING ROUTINE 10540 ' 10550 '

10560 'THIS DATA MUST BE 10570 'INDIVIDUALIZED FOR 10580 'EACH SPECIFIC QUIZ

10590 'N = NUMBER OF QUESTIONS 10600 N = 88

10610 'QD$ = QUESTIONS DATA ARRAY 10620 DIM QD$(N,6) 10630 FOR I = 0 TO N-1 10640 FOR J = 0 TO 5 10650 READ QD$(I,J) 10660 NEXT J 10670 NEXT I

10680 PRINT " OKAY -" 10690 PRINT " ALL LOADED AND READY TO GO" 10700 PRINT 10710 PRINT " PRESS ANY KEY TO BEGIN" 10720 PRINT

10730 A$=INKEY$ 10740 IF A$="" GOTO 10730

10750 RETURN

10760 '* 10770 ' 10780 ' END DATA LOADING 10790 ' 10800 '

10810 '* 10820 ' 10830 ' START OF DATA LIST 10840 ' 10850 '

12500 DATA 2 TIMES 4 = 12510 DATA 8 12520 DATA 2 12530 DATA 4 12540 DATA 6 12550 DATA 18

12600 DATA 2 TIMES 5 = 12610 DATA 10 12620 DATA 5 12630 DATA 15 12640 DATA 20 12650 DATA 25

12700 DATA 2 TIMES 6 = 12710 DATA 12 12720 DATA 6 12730 DATA 16 12740 DATA 22 12750 DATA 24

12800 DATA 2 TIMES 7 = 12810 DATA 14 12820 DATA 7 12830 DATA 12 12840 DATA 9 12850 DATA 24

12900 DATA 2 TIMES 8 = 12910 DATA 16 12920 DATA 8 12930 DATA 26 12940 DATA 12 12950 DATA 32

12960 '*****

13000 DATA 2 TIMES 9 = 13010 DATA 18 13020 DATA 9 13030 DATA 28 13040 DATA 19 13050 DATA 16

13200 DATA 2 TIMES 11 = 13210 DATA 22 13220 DATA 20 13230 DATA 18 13240 DATA 24 13250 DATA 26

13300 DATA 2 TIMES 12 = 13310 DATA 24 13320 DATA 22 13330 DATA 20 13340 DATA 26 13350 DATA 28

13700 DATA 3 TIMES 4 = 13710 DATA 12 13720 DATA 10 13730 DATA 14 13740 DATA 16 13750 DATA 22

13800 DATA 3 TIMES 5 = 13810 DATA 15 13820 DATA 10 13830 DATA 20 13840 DATA 25 13850 DATA 30

13900 DATA 3 TIMES 6 = 13910 DATA 18 13920 DATA 12 13930 DATA 16 13940 DATA 21 13950 DATA 24

13960 '*****

14000 DATA 3 TIMES 7 = 14010 DATA 21 14020 DATA 14 14030 DATA 24 14040 DATA 31 14050 DATA 28

14100 DATA 3 TIMES 8 = 14110 DATA 24 14120 DATA 16 14130 DATA 30 14140 DATA 32 14150 DATA 28

14200 DATA 3 TIMES 9 = 14210 DATA 27 14220 DATA 18 14230 DATA 37 14240 DATA 17 14250 DATA 30

14400 DATA 3 TIMES 11 = 14410 DATA 33 14420 DATA 22 14430 DATA 30 14440 DATA 44 14450 DATA 43

14500 DATA 3 TIMES 12 = 14510 DATA 36 14520 DATA 24 14530 DATA 40 14540 DATA 32 14550 DATA 46

14900 DATA 4 TIMES 4 = 14910 DATA 16 14920 DATA 12 14930 DATA 26 14940 DATA 22 14950 DATA 18

14960 '*****

15000 DATA 4 TIMES 5 = 15010 DATA 20 15020 DATA 10 15030 DATA 15 15040 DATA 25 15050 DATA 30

15100 DATA 4 TIMES 6 = 15110 DATA 24 15120 DATA 12 15130 DATA 18 15140 DATA 30 15150 DATA 34

15200 DATA 4 TIMES 7 = 15210 DATA 28 15220 DATA 14 15230 DATA 21 15240 DATA 18 15250 DATA 24

15300 DATA 4 TIMES 8 = 15310 DATA 32 15320 DATA 16 15330 DATA 24 15340 DATA 40 15350 DATA 36

15400 DATA 4 TIMES 9 = 15410 DATA 36 15420 DATA 18 15430 DATA 27 15440 DATA 37 15450 DATA 42

15600 DATA 4 TIMES 11 = 15610 DATA 44 15620 DATA 22 15630 DATA 33 15640 DATA 55 15650 DATA 66

15700 DATA 4 TIMES 12 = 15710 DATA 48 15720 DATA 24 15730 DATA 36 15740 DATA 54 15750 DATA 58

16100 DATA 5 TIMES 4 = 16110 DATA 20 16120 DATA 10 16130 DATA 15 16140 DATA 25 16150 DATA 30

16200 DATA 5 TIMES 5 = 16210 DATA 25 16220 DATA 15 16230 DATA 20 16240 DATA 30 16250 DATA 35

16300 DATA 5 TIMES 6 = 16310 DATA 30 16320 DATA 20 16330 DATA 25 16340 DATA 35 16350 DATA 40

16400 DATA 5 TIMES 7 = 16410 DATA 35 16420 DATA 30 16430 DATA 25 16440 DATA 40 16450 DATA 45

16500 DATA 5 TIMES 8 = 16510 DATA 40 16520 DATA 30 16530 DATA 35 16540 DATA 45 16550 DATA 50

16600 DATA 5 TIMES 9 = 16610 DATA 45 16620 DATA 35 16630 DATA 40 16640 DATA 50 16650 DATA 55

16800 DATA 5 TIMES 11 = 16810 DATA 55 16820 DATA 35 16830 DATA 45 16840 DATA 65 16850 DATA 75

16900 DATA 5 TIMES 12 = 16910 DATA 60 16920 DATA 50 16930 DATA 40 16940 DATA 70 16950 DATA 80

16960 '*****

17300 DATA 6 TIMES 4 = 17310 DATA 24 17320 DATA 20 17330 DATA 16 17340 DATA 28 17350 DATA 32

17400 DATA 6 TIMES 5 = 17410 DATA 30 17420 DATA 20 17430 DATA 25 17440 DATA 35 17450 DATA 40

17500 DATA 6 TIMES 6 = 17510 DATA 36 17520 DATA 24 17530 DATA 30 17540 DATA 42 17550 DATA 48

17600 DATA 6 TIMES 7 = 17610 DATA 42 17620 DATA 48 17630 DATA 56 17640 DATA 36 17650 DATA 30

17700 DATA 6 TIMES 8 = 17710 DATA 48 17720 DATA 42 17730 DATA 36 17740 DATA 54 17750 DATA 60

17800 DATA 6 TIMES 9 = 17810 DATA 54 17820 DATA 48 17830 DATA 42 17840 DATA 60 17850 DATA 66

18000 DATA 6 TIMES 11 = 18010 DATA 66 18020 DATA 60 18030 DATA 54 18040 DATA 72 18050 DATA 84

18100 DATA 6 TIMES 12 = 18110 DATA 72 18120 DATA 66 18130 DATA 60 18140 DATA 78 18150 DATA 84

18500 DATA 7 TIMES 4 = 18510 DATA 28 18520 DATA 21 18530 DATA 14 18540 DATA 34 18550 DATA 27

18600 DATA 7 TIMES 5 = 18610 DATA 35 18620 DATA 30 18630 DATA 25 18640 DATA 40 18650 DATA 45

18700 DATA 7 TIMES 6 = 18710 DATA 42 18720 DATA 46 18730 DATA 36 18740 DATA 37 18750 DATA 47

18800 DATA 7 TIMES 7 = 18810 DATA 49 18820 DATA 77 18830 DATA 42 18840 DATA 47 18850 DATA 57

18900 DATA 7 TIMES 8 = 18910 DATA 56 18920 DATA 49 18930 DATA 48 18940 DATA 63 18950 DATA 68

18960 '*****

19000 DATA 7 TIMES 9 = 19010 DATA 63 19020 DATA 67 19030 DATA 57 19040 DATA 56 19050 DATA 47

19200 DATA 7 TIMES 11 = 19210 DATA 77 19220 DATA 70 19230 DATA 63 19240 DATA 67 19250 DATA 83

19300 DATA 7 TIMES 12 = 19310 DATA 84 19320 DATA 77 19330 DATA 78 19340 DATA 87 19350 DATA 88

19700 DATA 8 TIMES 4 = 19710 DATA 32 19720 DATA 24 19730 DATA 28 19740 DATA 38 19750 DATA 34

19800 DATA 8 TIMES 5 = 19810 DATA 40 19820 DATA 35 19830 DATA 30 19840 DATA 45 19850 DATA 50

19900 DATA 8 TIMES 6 = 19910 DATA 48 19920 DATA 42 19930 DATA 36 19940 DATA 46 19950 DATA 38

19960 '*****

20000 DATA 8 TIMES 7 = 20010 DATA 56 20020 DATA 57 20030 DATA 58 20040 DATA 49 20050 DATA 48

20100 DATA 8 TIMES 8 = 20110 DATA 64 20120 DATA 60 20130 DATA 56 20140 DATA 68 20150 DATA 72

20200 DATA 8 TIMES 9 = 20210 DATA 72 20220 DATA 98 20230 DATA 89 20240 DATA 78 20250 DATA 79

20400 DATA 8 TIMES 11 = 20410 DATA 88 20420 DATA 80 20430 DATA 78 20440 DATA 96 20450 DATA 98

20500 DATA 8 TIMES 12 = 20510 DATA 96 20520 DATA 104 20530 DATA 108 20540 DATA 98 20550 DATA 120

20900 DATA 9 TIMES 4 = 20910 DATA 36 20920 DATA 18 20930 DATA 27 20940 DATA 40 20950 DATA 44

20960 '*****

21000 DATA 9 TIMES 5 = 21010 DATA 45 21020 DATA 40 21030 DATA 35 21040 DATA 50 21050 DATA 55

21100 DATA 9 TIMES 6 = 21110 DATA 54 21120 DATA 56 21130 DATA 59 21140 DATA 49 21150 DATA 44

21200 DATA 9 TIMES 7 = 21210 DATA 63 21220 DATA 67 21230 DATA 79 21240 DATA 69 21250 DATA 56

21300 DATA 9 TIMES 8 = 21310 DATA 72 21320 DATA 78 21330 DATA 79 21340 DATA 89 21350 DATA 98

21400 DATA 9 TIMES 9 = 21410 DATA 81 21420 DATA 72 21430 DATA 69 21440 DATA 79 21450 DATA 89

21600 DATA 9 TIMES 11 = 21610 DATA 99 21620 DATA 119 21630 DATA 109 21640 DATA 91 21650 DATA 89

21700 DATA 9 TIMES 12 = 21710 DATA 108 21720 DATA 112 21730 DATA 109 21740 DATA 92 21750 DATA 129

22100 DATA 10 TIMES 4 = 22110 DATA 40 22120 DATA 30 22130 DATA 20 22140 DATA 50 22150 DATA 60

22200 DATA 10 TIMES 5 = 22210 DATA 50 22220 DATA 40 22230 DATA 30 22240 DATA 60 22250 DATA 70

22300 DATA 10 TIMES 6 = 22310 DATA 60 22320 DATA 50 22330 DATA 40 22340 DATA 70 22350 DATA 80

22400 DATA 10 TIMES 7 = 22410 DATA 70 22420 DATA 60 22430 DATA 50 22440 DATA 80 22450 DATA 90

22500 DATA 10 TIMES 8 = 22510 DATA 80 22520 DATA 90 22530 DATA 70 22540 DATA 60 22550 DATA 108

22600 DATA 10 TIMES 9 = 22610 DATA 90 22620 DATA 99 22630 DATA 109 22640 DATA 89 22650 DATA 80

22800 DATA 10 TIMES 11 = 22810 DATA 110 22820 DATA 120 22830 DATA 111 22840 DATA 101 22850 DATA 100

22900 DATA 10 TIMES 12 = 22910 DATA 120 22920 DATA 110 22930 DATA 112 22940 DATA 121 22950 DATA 130

22960 '*****

23300 DATA 11 TIMES 4 = 23310 DATA 44 23320 DATA 33 23330 DATA 22 23340 DATA 55 23350 DATA 66

23400 DATA 11 TIMES 5 = 23410 DATA 55 23420 DATA 45 23430 DATA 35 23440 DATA 65 23450 DATA 75

23500 DATA 11 TIMES 6 = 23510 DATA 66 23520 DATA 61 23530 DATA 116 23540 DATA 67 23550 DATA 76

23600 DATA 11 TIMES 7 = 23610 DATA 77 23620 DATA 71 23630 DATA 117 23640 DATA 67 23650 DATA 87

23700 DATA 11 TIMES 8 = 23710 DATA 88 23720 DATA 118 23730 DATA 81 23740 DATA 98 23750 DATA 108

23800 DATA 11 TIMES 9 = 23810 DATA 99 23820 DATA 100 23830 DATA 109 23840 DATA 119 23850 DATA 91

24000 DATA 11 TIMES 11 = 24010 DATA 121 24020 DATA 111 24030 DATA 131 24040 DATA 122 24050 DATA 112

24100 DATA 11 TIMES 12 = 24110 DATA 132 24120 DATA 122 24130 DATA 112 24140 DATA 142 24150 DATA 121

24500 DATA 12 TIMES 4 = 24510 DATA 48 24520 DATA 44 24530 DATA 42 24540 DATA 56 24550 DATA 46

24600 DATA 12 TIMES 5 = 24610 DATA 60 24620 DATA 55 24630 DATA 50 24640 DATA 65 24650 DATA 70

24700 DATA 12 TIMES 6 = 24710 DATA 72 24720 DATA 76 24730 DATA 62 24740 DATA 66 24750 DATA 78

24800 DATA 12 TIMES 7 = 24810 DATA 84 24820 DATA 72 24830 DATA 77 24840 DATA 87 24850 DATA 82

24900 DATA 12 TIMES 8 = 24910 DATA 96 24920 DATA 98 24930 DATA 92 24940 DATA 128 24950 DATA 84

24960 '*****

25000 DATA 12 TIMES 9 = 25010 DATA 108 25020 DATA 129 25030 DATA 92 25040 DATA 102 25050 DATA 109

25200 DATA 12 TIMES 11 = 25210 DATA 132 25220 DATA 121 25230 DATA 112 25240 DATA 122 25250 DATA 141

25300 DATA 12 TIMES 12 = 25310 DATA 144 25320 DATA 132 25330 DATA 122 25340 DATA 156 25350 DATA 154

25400 '* 25410 ' 25420 ' END OF DATA LIST 25430 ' 25440 '

27500 ' 27510 ' 27520 ' STANDARD BASIC QUIZ GAMES 27530 ' INITIALIZATION ROUTINE 27540 ' 27550 '

27600 CLS

27610 PRINT 27620 PRINT " LOADING THE SYSTEM" 27630 PRINT " PLEASE WAIT" 27640 PRINT

27650 'RANDOMIZATION ARRAYS 27660 DIM R1(5) 27670 DIM R2(4) 27680 DIM RR(4)

27690 'SCRAMBLE CODES ARRAY 27700 DIM S(24,4)

27710 'RANDOMIZE THE RND FUNCTION 27720 R = RND(-TIMER)

27800 'INITIALIZE THE SCRAMBLE CODES

27810 S(0,0) = 0 27820 S(0,1) = 1 27830 S(0,2) = 2 27840 S(0,3) = 3

27850 S(1,0) = 0 27860 S(1,1) = 1 27870 S(1,2) = 3 27880 S(1,3) = 2

27890 S(2,0) = 0 27900 S(2,1) = 2 27910 S(2,2) = 1 27920 S(2,3) = 3

27930 S(3,0) = 0 27940 S(3,1) = 2 27950 S(3,2) = 3 27960 S(3,3) = 1

27970 S(4,0) = 0 27980 S(4,1) = 3 27990 S(4,2) = 1 28000 S(4,3) = 2

28010 S(5,0) = 0 28020 S(5,1) = 3 28030 S(5,2) = 2 28040 S(5,3) = 1

28050 S(6,0) = 1 28060 S(6,1) = 0 28070 S(6,2) = 2 28080 S(6,3) = 3

28090 S(7,0) = 1 28100 S(7,1) = 0 28110 S(7,2) = 3 28120 S(7,3) = 2

28130 S(8,0) = 1 28140 S(8,1) = 2 28150 S(8,2) = 0 28160 S(8,3) = 3

28170 S(9,0) = 1 28180 S(9,1) = 2 28190 S(9,2) = 3 28200 S(9,3) = 0

28210 S(10,0) = 1 28220 S(10,1) = 3 28230 S(10,2) = 0 28240 S(10,3) = 2

28250 S(11,0) = 1 28260 S(11,1) = 3 28270 S(11,2) = 2 28280 S(11,3) = 0

28290 S(12,0) = 2 28300 S(12,1) = 0 28310 S(12,2) = 1 28320 S(12,3) = 3

28330 S(13,0) = 2 28340 S(13,1) = 0 28350 S(13,2) = 3 28360 S(13,3) = 1

28370 S(14,0) = 2 28380 S(14,1) = 1 28390 S(14,2) = 0 28400 S(14,3) = 3

28410 S(15,0) = 2 28420 S(15,1) = 1 28430 S(15,2) = 3 28440 S(15,3) = 0

28450 S(16,0) = 2 28460 S(16,1) = 3 28470 S(16,2) = 0 28480 S(16,3) = 1

28490 S(17,0) = 2 28500 S(17,1) = 3 28510 S(17,2) = 1 28520 S(17,3) = 0

28530 S(18,0) = 3 28540 S(18,1) = 0 28550 S(18,2) = 1 28560 S(18,3) = 2

28570 S(19,0) = 3 28580 S(19,1) = 0 28590 S(19,2) = 2 28600 S(19,3) = 1

28610 S(20,0) = 3 28620 S(20,1) = 1 28630 S(20,2) = 0 28640 S(20,3) = 2

28650 S(21,0) = 3 28660 S(21,1) = 1 28670 S(21,2) = 2 28680 S(21,3) = 0

28690 S(22,0) = 3 28700 S(22,1) = 2 28710 S(22,2) = 0 28720 S(22,3) = 1

28730 S(23,0) = 3 28740 S(23,1) = 2 28750 S(23,2) = 1 28760 S(23,3) = 0

28770 RETURN

28780 '* 28790 ' 28800 ' END INITIALIZATION 28810 ' 28820 '

29500 '* 29510 ' 29520 ' DISPLAY THE STANDARD 29530 ' BASIC QUIZ GAMES 29540 ' SPLASH SCREEN 29550 ' 29560 '

29600 CLS

29610 'LINES 0 AND 1 ARE BLANK GREEN

29620 'DISPLAY UNIFORM STANDARD LINE 2 29630 SD$ = CHR$(32) + CHR$(158) 29640 FOR I = 0 TO 27 29650 SD$ = SD$ + CHR$(156) 29660 NEXT I 29670 SD$ = SD$ + CHR$(157) + CHR$(32) 29680 @.***, SD$

29690 'DISPLAY UNIFORM STANDARD LINE 3 29700 SD$ = CHR$(32) + CHR$(154) + CHR$(206) 29710 FOR I = 0 TO 25 29720 SD$ = SD$ + CHR$(204) 29730 NEXT I 29740 SD$ = SD$ + CHR$(205) + CHR$(149) + CHR$(32) 29750 @.***, SD$

29760 'DISPLAY UNIFORM STANDARD LINE 4 29770 SD$ = CHR$(32) + CHR$(154) + CHR$(202) 29780 FOR I = 0 TO 25 29790 SD$ = SD$ + CHR$(32) 29800 NEXT I 29810 SD$ = SD$ + CHR$(197) + CHR$(149) + CHR$(32) 29820 @.***, SD$

29830 'DISPLAY SPECIFIC STANDARD LINE 5 29840 SD$ = CHR$(32) + CHR$(154) + CHR$(202) 29850 ' CHANGE NEXT LINE AS REQUIRED: 29860 SD$ = SD$ + " MULTIPLICATION TABLES " 29870 SD$ = SD$ + CHR$(197) + CHR$(149) + CHR$(32) 29880 @., SD$

29890 'DISPLAY SPECIFIC STANDARD LINE 6 29900 SD$ = CHR$(32) + CHR$(154) + CHR$(202) 29910 ' CHANGE NEXT LINE AS REQUIRED: 29920 SD$ = SD$ + " QUIZ GAME " 29930 SD$ = SD$ + CHR$(197) + CHR$(149) + CHR$(32) 29940 @., SD$

29950 'DISPLAY UNIFORM STANDARD LINE 7 29960 SD$ = CHR$(32) + CHR$(154) + CHR$(202) 29970 FOR I = 0 TO 25 29980 SD$ = SD$ + CHR$(32) 29990 NEXT I 30000 SD$ = SD$ + CHR$(197) + CHR$(149) + CHR$(32) 30010 @.***, SD$

30020 'DISPLAY UNIFORM STANDARD LINE 8 30030 SD$ = CHR$(32) + CHR$(154) + CHR$(203) 30040 FOR I = 0 TO 25 30050 SD$ = SD$ + CHR$(195) 30060 NEXT I 30070 SD$ = SD$ + CHR$(199) + CHR$(149) + CHR$(32) 30080 @.***, SD$

30090 'DISPLAY UNIFORM STANDARD LINE 9 30100 SD$ = CHR$(32) + CHR$(155) 30110 FOR I = 0 TO 27 30120 SD$ = SD$ + CHR$(147) 30130 NEXT I 30140 SD$ = SD$ + CHR$(151) + CHR$(32) 30150 @.***, SD$

30160 'LINE 10 IS BLANK GREEN

30170 'DISPLAY UNIFORM STANDARD LINE 11 30180 @.***, " PRESS ANY KEY TO CONTINUE "

30190 'LINES 12 AND 13 ARE BLANK GREEN

30200 'DISPLAY SPECIFIC STANDARD LINE 14 30210 ' CHANGE THE YEAR AS REQUIRED 30220 @., " BDS SOFTWARE 2022 ";

30230 'LINE 15 IS BLANK GREEN

30240 A$ = INKEY$ 30250 IF A$="" GOTO 30240

30260 RETURN

30270 '* 30280 ' 30290 ' END SPLASH SCREEN 30300 ' 30310 '

32767 END

jimrye commented 2 years ago

Hi David, thanks, I'll see if I can reproduce the problem this weekend. It sounds like a problem I was seeing where certain tokens, for whatever reason, take more CPU cycles to enter. Looks like I might have to slow down the paste function some. -Jim

jimrye commented 2 years ago

Oh, I see. As the memory starts to get full, it takes longer to enter new lines. I started to notice problems around line 29000. But if I enter 'NEW' and then paste that same section again, it works fine. This is a good test, thanks. I'll see if I can come up with a solution for the next release... hopefully without slowing it down too much. -Jim

jimrye commented 2 years ago

Hi David, I think I have it fixed. As the memory fills up on a long program, it just needs a little more time to process when it detects a carriage return. I'm able to paste in both versions of your program, with no missing lines. It still gets the Out of Memory error when it hits the DIM statement, but the splash screen works fine. The fix should be in the next release. -Jim

ejaquay commented 3 months ago

fix is in commit 595aa05