Sinphaltimus Posted July 29, 2016 Share Posted July 29, 2016 I have a basic understanding of B.A.S.I.C. and even less so for Extended Basic. Just having fun with the first ever computer I've touched and played with back in '81. Writing a musick/sound program that I wish to share once completed and I'm almost there.I'm having a very odd issue and I can't seem to figure it out at all.I'm copying and pasting the following code in to classic99. I know its not efficient but I'm trouble shooting. I've had the character patterns included in the call char statements and I've used data, read. I keep getting the same weird behavior that results in an error. 10 tmp$=0001010303030F06 80 CALL CHAR(33,tmp$) 85 tmp$=C08080000000E46C 86 CALL CHAR(34,tmp$) 87 tmp$=060C0C0C0D191B1B 88 CALL CHAR(35,tmp$) 89 tmp$=383070D89C000000 90 CALL CHAR(36,tmp$) 91 tmp$=AA01800180018055 93 CALL CHAR(37,tmp$)While pasting I get *NAME TOO LONG after line 85 and again after line 91. I've even tried manually typing it in. I don't know what is wrong. In the attached screen shot you'll see the errors and the lines don't get added.I am going to try entering this by hand on the actual hardware to see what happens. But I can't load my entire program on it because it's only got 13k free and the program is already larger than that. Just for the heck of it I'll post the entire program here. Once I get my GUI working I'll tweak some effects and be done. 10 tmp$=0001010303030F06 80 CALL CHAR(33,tmp$) 85 tmp$=C08080000000E46C 86 CALL CHAR(34,tmp$) 87 tmp$=060C0C0C0D191B1B 88 CALL CHAR(35,tmp$) 89 tmp$=383070D89C000000 90 CALL CHAR(36,tmp$) 91 tmp$=AA01800180018055 93 CALL CHAR(37,tmp$) 100 CALL CLEAR 110 CALL SCREEN(15) 120 DATA 7,2,00C4A4948C848484,38,NoteKeys,8,2,00F98888888888F8,39,NoteKeys,9,2,00F9616161616161,40,NoteKeys 130 DATA 10,2,00F00000E00000F0,41,NoteKeys,20,2,0022243838242221,42,NoteKeys 140 DATA 21,2,003E20203C20203E,139,NoteKeys,22,2,0022221408080808,43,NoteKeys 150 DATA 23,2,003C42403C02423C,44,NoteKeys,3,5,000404F403030000,45,volumetxt,4,5,00BDA5A5253D0000,46,volumetxt 160 DATA 5,5,0009090909EF0000,47,volumetxt,6,5,006D6D5545450000,58,volumetxt,7,5,00E01FC01FE00000,59,volumetxt 170 DATA 11,4,7878636263627A78,60,freq,12,4,0000DE129C121200,61,freq,13,4,00007B4272427B00,62,freq 180 DATA 14,4,0000925252D2DE00,63,freq,15,4,0000F486E584F400,64,freq,16,4,0000BDA5A0A4BC00,72,freq 190 DATA 17,4,0F0F2323C3C3CF0F,73,freq,12,7,00000020602E2070,74,noise,13,7,00000097D4B49497,75,noise 200 DATA 14,7,000000B9919190B9,76,noise,15,7,000000EF08EE28EF,77,noise,16,7,0000000F09EF090F,78,noise 210 DATA 21,4,78FCFC7C1C1C3870,79,duration,22,4,001C1212121C0000,80,duration,23,4,0097949795F40000,81,duration 220 DATA 24,4,0019A43C24A40000,82,duration,25,4,00F7424242470000,83,duration,26,4,0079494949790000,84,duration 230 DATA 27,4,0021A16121210100,140,duration,28,4,00F8F8F8F8F8F800,85,duration 240 DATA 3,10,FFFF181818181818,86,Tremolo,4,10,8080007149715149,87,Tremolo,5,10,000000E80DCA08E8,88,Tremolo 250 DATA 6,10,000000BDA5A5A5BD,89,Tremolo,7,10,0000001E121212DE,90,Tremolo,11,9,00007C040810207C,91,SLIDE 260 DATA 12,9,7884807804848478,92,SLIDE,13,9,404040404040407E,93,SLIDE,14,9,3E0808080808083E,94,SLIDE 270 DATA 15,9,3F1010101010103F,95,SLIDE,16,9,1F90909E9090901F,96,SLIDE 280 DATA 17,9,0000183C5A991818,97,SLIDE,11,10,0000183C5A991818,97,SLIDE 290 DATA 17,10,C324181824C30000,98,SLIDE,23,10,78FCCCFCF8C0C0C0,99,PTremolo,24,10,000000F282F311F1,100,PTremolo 300 DATA 25,10,0000009E9090101E,101,PTremolo,26,10,0000009090F79090,102,PTremolo,27,10,0000003824A42438,103,PTremolo 310 DATA 4,16,00456D5545454400,104,ZeroMute,5,16,001711111111E100,105,ZeroMute,6,16,00DE101C10101E00,106,ZeroMute 320 DATA 5,17,1C2222222222221C,107,ZeroMute,13,14,0000000078FCC6C6,108,rtg,14,14,0000000000000072,109,rtg 330 DATA 15,14,0000000000000059,110,rtg,16,14,00000000000000E8,111,rtg,17,14,0000000000000080,112,rtg 340 DATA 13,15,FCD8CCC600EF4949,113,rtg,14,15,8BFA8A8A004B6A5B,114,rtg,15,15,55D5555900C00080,115,rtg 350 DATA 16,15,2D2A28E800000000,116,rtg,17,15,8080808000000000,117,rtg,13,16,494F003B425B4A33,118,rtg 360 DATA 14,16,4A4B00D21A9612D2,119,rtg,15,16,00C000F784E785F4,120,rtg,16,16,00000019A43C24A4,121,rtg 370 DATA 17,16,000000DE9292929E,122,rtg,18,16,000000E090E0A090,123,rtg,9,21,00000F080F010F00,124,spacebar 380 DATA 10,21,0000714A73424200,125,spacebar,11,21,00009E50D0505E00,126,spacebar,12,21,0000F784E784F700,127,spacebar 390 DATA 13,21,000019A53DA52500,128,spacebar,14,21,0000C020C0402000,129,spacebar,15,21,00003C2121213D00,130,spacebar 400 DATA 16,21,0000C92DEB292900,131,spacebar,17,21,00007B4243427B00,132,spacebar,18,21,0000D0109010DE00,133,spacebar 410 DATA 19,21,0000F080F010F000,134,spacebar,24,16,324A4A4A5A390400,135,Quit,25,16,2F26262626CF0000,136,Quit 420 DATA 26,16,7C10101010100000,137,Quit,25,17,7884848484947804,138,Quit 430 FOR DRW=1 TO 87 440 READ COL,ROW,PAT$,CHR,GRP$ 450 CALL CHAR(CHR,PAT$) 460 CALL VCHAR(ROW,COL,CHR) 470 NEXT DRW 530 rem CALL KEY(0,KY,STT) 540 rem IF STT=0 THEN 530 550 rem END 560 REM ******************************************************************************************************* 580 rem CALL COLOR(3,4,2) 590 rem CALL COLOR(4,4,2) 820 rem DISPLAY AT(23,1):"Musick v0.14 SYMM LLC 2016" 830 READ VOL,DUR,C,D,E,F,G,A,B,KEY,NOTE,MUTE !load default settings on all variables 840 DATA 15,200,262,294,330,349,392,440,494,262,262,0 850 REM PRINT"V";VOL;"D";DUR;"C";C;"D";D;"E";E;"F";F;"G";G;"A";A;"B";B;"K";KEY;"N";NOTE 860 CALL KEY(0,KEY,STATUS)!Check for keyboard input 870 IF STATUS=-1 THEN 1050 !SAME KEY PRESSED 880 IF STATUS=0 THEN 1380 !NO KEY PRESSED 890 REM IF DIFFERENT KEY PRESSED (STATUS=1) 900 IF KEY<>49 THEN 910 :: NOTE=-1 :: GOTO 1380 !one (1) for NOISE = -1 910 IF KEY<>50 THEN 920 :: NOTE=-2 :: GOTO 1380 !two (2) for NOISE = -2 920 IF KEY<>51 THEN 930 :: NOTE=-3 :: GOTO 1380 !three (3) for NOISE = -3 930 IF KEY<>52 THEN 940 :: NOTE=-4 :: GOTO 1380 !four (4) for NOISE = -4 940 IF KEY<>53 THEN 950 :: NOTE=-5 :: GOTO 1380 !five (5) for NOISE = -5 950 IF KEY<>54 THEN 960 :: NOTE=-6 :: GOTO 1380 !six (6) for NOISE = -6 960 IF KEY<>55 THEN 970 :: NOTE=-7 :: GOTO 1380 !seven (7) for NOISE = -7 970 IF KEY<>56 THEN 980 :: NOTE=-8 :: GOTO 1380 !eight ( for NOISE = 8 980 IF KEY<>67 THEN 990 :: NOTE=C :: GOTO 1380 !Note C © for Frequency = 262 990 IF KEY<>68 THEN 1000 :: NOTE=D :: GOTO 1380 !Note D (d) for Frequency = 294 1000 IF KEY<>69 THEN 1010 :: NOTE=E :: GOTO 1380 !Note E (e) for Frequency = 330 1010 IF KEY<>70 THEN 1020 :: NOTE=F :: GOTO 1380 !Note F (f) for Frequency = 349 1020 IF KEY<>71 THEN 1030 :: NOTE=G :: GOTO 1380 !Note G (g) for Frequency = 392 1030 IF KEY<>65 THEN 1040 :: NOTE=A :: GOTO 1380 !Note A (a) for Frequency = 440 1040 IF KEY<>66 THEN 1050 :: NOTE=B :: GOTO 1380 !Note B (b) for Frequency = 494 1050 IF KEY<>91 THEN 1060 :: NOTE=NOTE-1 :: GOTO 1280 !Open Bracket ([) for NOTE -1 hz Down 1060 IF KEY<>93 THEN 1100 !close Bracket (]) for NOTE +1 hz Up 1070 IF NOTE<=110 THEN 1080 ELSE 1090 !***CHECK TO ENSURE NOISE DOES NOT GET NOTE ADJUSTMENT*** 1080 NOTE=110 1090 NOTE=NOTE+1 :: GOTO 1260 1100 IF KEY<>46 THEN 1110 :: DUR=DUR+1 :: GOTO 1310 !PERIOD (.) FOR DUR Up 1110 IF KEY<>44 THEN 1120 :: DUR=DUR-1 :: GOTO 1280 !COMMA (,) FOR DUR Down 1120 IF KEY<>61 THEN 1130 :: VOL=VOL-1 :: GOTO 1350 !MINUS (-) FOR VOL DOWN 1130 IF KEY<>45 THEN 1140 :: VOL=VOL+1 :: GOTO 1330 !EQUALS (=) FOR VOL UP 1140 IF KEY=90 THEN 1400 !Z KEY (z) FOR SLIDE Down 1150 IF KEY=88 THEN 1460 !X KEY (x) FOR SLIDEUp 1160 IF KEY=84 THEN 1530 !T KEY (t) FOR TREMOLO 1170 IF KEY=80 THEN 1770 !P KEY (p) FOR PSYCHODELICK TREMOLO 1180 IF KEY=82 THEN 2040 !R KEY (p) FOR RANDOM NOTE GENERATOR 1190 IF KEY=81 THEN 2140 !Q KEY (q) TO QUIT THE PROGRAM 1200 IF KEY=48 THEN 2100 !ZERO KEY (0) TO MUTE/UNMUTE AUDIO 1210 IF KEY<=159 THEN 1220 ELSE 860 !**********ERROR CHECKING ON KEY PRESSED*********** 1220 CALL SOUND(DUR,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: GOTO 860 1230 REM ********cALL***sOUND***rOUTINE***cHECKS******** 1240 IF NOTE<=110 THEN 1250 ELSE 1260 !*check NOTE range lower limit and correct if out of range* 1250 NOTE=110 :: GOTO 1370 1260 IF NOTE>=40000 THEN 1270 ELSE 1370 !*check NOTE range higherlimit and correct if out of range* 1270 NOTE=40000 :: GOTO 1370 1280 IF DUR<=1 THEN 1290 ELSE 1310 !*check DURation range lower limit and correct if out of range* 1290 DUR=1 :: GOTO 1370 1300 REM 1310 IF DUR>=4250 THEN 1320 ELSE 1330 !*check DURation range upper limit and correct if out of range* 1320 DUR=4250 1330 IF VOL>=30 THEN 1340 ELSE 1350 !*check VOLume range upper limit and correct if out of range* 1340 VOL=30 :: GOTO 1370 1350 IF VOL<=0 THEN 1360 ELSE 1380 !*check VOLume range lower limit and correct if out of range* 1360 VOL=0 1370 REM ***CALL SOUND***ROUTINE*** 1380 CALL SOUND(DUR,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: GOTO 860 1390 REM *********sLIDE dOWN rOUTINE********************* 1400 IF NOTE<=210 THEN 1410 ELSE 1420 !check if slide down has valid end range and correct if not. 1410 NOTE=210 1420 FOR SD=1 TO 100 :: NOTE=NOTE-1 :: CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL 1430 DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 860 1440 NEXT SD :: GOTO 860 1450 REM ***********sLIDE uP rOUTINE***************** 1460 IF NOTE>=39900 THEN 1470 ELSE 1480 !check if slide up has valid end range and correct if not. 1470 NOTE=39900 1480 FOR SU=1 TO 100 :: NOTE=NOTE+1 1490 CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR 1500 CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 860 1510 NEXT SU :: GOTO 860 1520 REM ***************tREMOLO rOUTINE***************** 1530 IF NOTE<=220 THEN 1540 ELSE 1550 1540 NOTE=221 :: GOTO 1570 1550 IF NOTE>=40000 THEN 1560 ELSE 1570 1560 NOTE=39899 1570 FOR WD=1 TO 10 :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 1580 ELSE 1590 1580 GOSUB 1660 1590 NOTE=NOTE-10 :: CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE 1600 DISPLAY AT(5,20):DUR :: NEXT WD 1610 FOR WU=1 TO 10 :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 1640 ELSE 1620 1620 NOTE=NOTE+10 :: CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE 1630 DISPLAY AT(5,20):DUR :: NEXT WU :: GOTO 1760 1640 GOSUB 1660 1650 REM ********tREMOLO sLIDE rOUTINE*********** 1660 IF KEY<>91 THEN 1670 :: NOTE=NOTE-10 :: GOTO 1690 !Open Bracket ([) for NOTE -1 hz Down 1670 IF KEY<>93 THEN 1680 :: NOTE=NOTE+10 :: GOTO 1710 !close Bracket (]) for NOTE +1 hz Up 1680 IF STATUS<>0 THEN 860 :: GOTO 1570 1690 IF NOTE<=220 THEN 1700 ELSE 1710 !t-sLIDE D check NOTE range lower limit and correct if out of range 1700 NOTE=221 :: GOTO 1750 1710 IF NOTE>=40000 THEN 1720 ELSE 1750 !t-sLIDE U check NOTE range higherlimit and correct if out of range 1720 NOTE=39899 1730 REM ***TREMOLO***CALL***SOUND***ROUTINE*** 1740 CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: RETURN 1750 REM ***TREMOLO***CALL***SOUND***ROUTINE*** 1760 CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: GOTO 1530 1770 REM ***************pSYCHODELIC tREMOLO************** 1780 SNOTE=13013 :: TNOTE=31031 1790 IF SNOTE>=40000 THEN 1800 ELSE 1810 1800 SNOTE=40000 :: TNOTE=30000 1810 IF NOTE<=220 THEN 1820 ELSE 1830 1820 NOTE=221 :: GOTO 1850 1830 IF NOTE>=40000 THEN 1840 ELSE 1850 1840 NOTE=39899 1850 FOR WD=1 TO 10 :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 1860 ELSE 1870 1860 GOSUB 1950 1870 NOTE=NOTE-10 :: SNOTE=SNOTE-110 :: TNOTE=TNOTE-100 1880 CALL SOUND(1,NOTE,VOL,SNOTE,VOL,TNOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: NEXT WD 1890 FOR WU=1 TO 10 :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 1900 ELSE 1910 1900 GOSUB 1950 1910 NOTE=NOTE+10 :: SNOTE=SNOTE+110 :: TNOTE=TNOTE+100 1920 CALL SOUND(1,NOTE,VOL,SNOTE,VOL,TNOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: NEXT WU 1930 GOTO 2030 1940 REM ********pSYCh***tREMOLO sLIDE rOUTINE*********** 1950 IF KEY<>91 THEN 1960 :: NOTE=NOTE-10 :: SNOTE=SNOTE-110 :: TNOTE=TNOTE-100 :: GOTO 1980 !open Bracket ([) for NOTE -1 hz Down 1960 IF KEY<>93 THEN 1970 :: NOTE=NOTE+10 :: SNOTE=SNOTE+110 :: TNOTE=TNOTE+100 :: GOTO 2000 !close Bracket (]) for NOTE +1 hz Up 1970 IF STATUS<>0 THEN 860 :: GOTO 1850 1980 IF NOTE<=220 THEN 1990 ELSE 2000 !pSYCh t-sLIDE Dcheck NOTE range lower limit and correct if out of range 1990 NOTE=221 :: SNOTE=13013 :: TNOTE=31031 :: GOTO 2030 2000 IF NOTE>=40000 THEN 2010 ELSE 2020 !pSYCh t-sLIDE Ucheck NOTE range higherlimit and correct if out of range 2010 NOTE=39899 :: SNOTE=13013 :: TNOTE=31031 2020 CALL SOUND(1,NOTE,VOL,SNOTE,VOL,TNOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: RETURN 2030 CALL SOUND(1,NOTE,VOL,SNOTE,VOL,TNOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: GOTO 1780 2040 REM *************rANDOME nOTE gENERATOR****************** 2050 RANDOMIZE 2060 RS1=INT(38000*RND)+111 :: RS2=INT(38000*RND)+111 :: RS3=INT(38000*RND)+111 :: RV1=INT(15*RND):: RV2=INT(15*RND):: RV3=INT(15*RND) 2070 CALL SOUND(DUR,RS1,RV1,RS2,RV2,RS3,RV3):: DISPLAY AT(6,2):RV1 :: DISPLAY AT(5,9):RS1 :: DISPLAY AT(5,20):DUR 2080 CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 860 :: GOTO 2060 2090 REM ********************mute/unmute function********* 2100 IF MUTE<>0 THEN 2130 :: MUTE=1 2110 FOR DELAY=1 TO 10 :: NEXT DELAY :: CALL KEY(0,KEY,STATUS):: IF KEY<>48 THEN 2120 :: GOTO 2100 2120 IF STATUS<>0 THEN 860 ELSE 2110 2130 MUTE=0 :: GOTO 2110 2140 CALL CLEAR 2150 END Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted July 30, 2016 Share Posted July 30, 2016 Try doing this to it: 10 TMP$="0001010303030F06" 80 CALL CHAR(33,TMP$) 85 TMP$="C08080000000E46C" 86 CALL CHAR(34,TMP$) 87 TMP$="060C0C0C0D191B1B" 88 CALL CHAR(35,TMP$) 89 TMP$="383070D89C000000" 90 CALL CHAR(36,TMP$) 91 TMP$="AA01800180018055" 93 CALL CHAR(37,TMP$) 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted July 30, 2016 Share Posted July 30, 2016 As Ksarul says in the post above, you must have quotes around strings. One exception is when using DATA statements. For example: 10 READ A$ 20 PRINT A$ !shows that A$ is ABCD 100 DATA ABCD You really don't need the TMP$ here, plus XB lets you define up to 4 characters with one CALL CHAR. So by combining the first 4 strings you can make a single line: 80 CALL CHAR(33,"0001010303030F06C08080000000E46C060C0C0C0D191B1B383070D89C000000") which does the same thing as your lines 10 - 90 and uses 86 bytes instead of 212. With tricks like this you should be able to shrink your program to fit the unexpanded console. Of course, once you shrink it you will think of more features to add which will make it too large again! 2 Quote Link to comment Share on other sites More sharing options...
Sinphaltimus Posted July 30, 2016 Author Share Posted July 30, 2016 (edited) Try doing this to it: 10 TMP$="0001010303030F06" 80 CALL CHAR(33,TMP$) 85 TMP$="C08080000000E46C" 86 CALL CHAR(34,TMP$) 87 TMP$="060C0C0C0D191B1B" 88 CALL CHAR(35,TMP$) 89 TMP$="383070D89C000000" 90 CALL CHAR(36,TMP$) 91 TMP$="AA01800180018055" 93 CALL CHAR(37,TMP$) *FACEPALM* - Thank you. I should probably "sleep on it" before asking in forums. I feel so silly now. Edited July 30, 2016 by Sinphaltimus 2 Quote Link to comment Share on other sites More sharing options...
Sinphaltimus Posted July 30, 2016 Author Share Posted July 30, 2016 As Ksarul says in the post above, you must have quotes around strings. One exception is when using DATA statements. For example: 10 READ A$ 20 PRINT A$ !shows that A$ is ABCD 100 DATA ABCD You really don't need the TMP$ here, plus XB lets you define up to 4 characters with one CALL CHAR. So by combining the first 4 strings you can make a single line: 80 CALL CHAR(33,"0001010303030F06C08080000000E46C060C0C0C0D191B1B383070D89C000000") which does the same thing as your lines 10 - 90 and uses 86 bytes instead of 212. With tricks like this you should be able to shrink your program to fit the unexpanded console. Of course, once you shrink it you will think of more features to add which will make it too large again! Thank much. Yeah the code example was just me simplifying it to try and see the obvious I missed (no "") and yet I still missed it. I'm using data statements in the rest of the code, what I think happened was that I had a typo originally in the data statement so when I broke out those codes above i totally missed " " and was pretty confused. Thank so much for you help. Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted July 30, 2016 Share Posted July 30, 2016 I wouldn't worry about it too much, Sinphaltimus--that's what we're here for. Most of us have gone deep into the weeds at times and had the forum folks pull us back to where we needed to be to solve the problem. The record of what happened here will also exist online now to help the next person to make the same mistake--and it will happen. I've seen troubleshooting threads resurrected after several years because another person fell into the same hole. . .and found the existing thread to hoist themselves out of it. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted July 30, 2016 Share Posted July 30, 2016 (edited) Welcome to the forum!! No silly questions here, save those that go unasked. Youre in the presence of some awesome people here (youve already met a couple of them), so ask away, and have no fear of judgment. Cant wait to see your final program. Edited July 30, 2016 by Opry99er Quote Link to comment Share on other sites More sharing options...
Sinphaltimus Posted July 30, 2016 Author Share Posted July 30, 2016 Yooze guyz are awesome. OK.I've been keeping a cheesey dev blog on my Fb page - the posting is open to the public if you want to follow along:https://www.facebook.com/SExmortus/posts/10206543271892515I'm taking a break to get some other tasks completed that aren't computer related. Next I need to tweak the Psycho_D tremolo effect and some noise effects. THEN I will optimize everything by combining commands in to less lines of code>I want to save a commented version before removing all comments and rem statements in order to shrink the program down enough to fit on the original non-modified hardware (16k ram). I'm having a hard time finding a 32k upgrade that's affordable or the parts/instructions to make one. The email address of the most popular one no longer works and all links are broken Anyway, back on track - Here is my code so far.l It is fully functional with all features in and working. 100 NLOOP=1 110 PRINT " ************************" 120 PRINT "Musick v0.17 SYMM LLC 2016" 130 PRINT " ************************" 140 PRINT 150 PRINT 160 PRINT 170 PRINT "L key toggles sound Loop" 180 PRINT " on/off." 190 PRINT 200 PRINT "Please wait loading." 210 PRINT 220 PRINT 230 PRINT "len@screamingyeti.org" 240 PRINT 250 PRINT 260 PRINT 270 PRINT 280 PRINT 290 PRINT 300 PRINT 310 PRINT 320 PRINT 330 PRINT 340 FOR TDELAY=1 TO 1000 350 NEXT TDELAY 360 DATA 7,2,00C4A4948C848484,38,NoteKeys,8,2,00F98888888888F8,39,NoteKeys,9,2,00F9616161616161,40,NoteKeys 370 DATA 10,2,00F00000E00000F0,41,NoteKeys,20,2,0022243838242221,42,NoteKeys 380 DATA 21,2,003E20203C20203E,139,NoteKeys,22,2,0022221408080808,43,NoteKeys 390 DATA 23,2,003C42403C02423C,44,NoteKeys,3,5,000404F403030000,45,volumetxt,4,5,00BDA5A5253D0000,46,volumetxt 400 DATA 5,5,0009090909EF0000,47,volumetxt,6,5,006D6D5545450000,58,volumetxt,7,5,00E01FC01FE00000,59,volumetxt 410 DATA 11,4,7878636263627A78,60,freq,12,4,0000DE129C121200,61,freq,13,4,00007B4272427B00,62,freq 420 DATA 14,4,0000925252D2DE00,63,freq,15,4,0000F486E584F400,64,freq,16,4,0000BDA5A0A4BC00,72,freq 430 DATA 17,4,0F0F2323C3C3CF0F,73,freq,12,7,00000020602E2070,74,noise,13,7,00000097D4B49497,75,noise 440 DATA 14,7,000000B9919190B9,76,noise,15,7,000000EF08EE28EF,77,noise,16,7,0000000F09EF090F,78,noise 450 DATA 21,4,78FCFC7C1C1C3870,79,duration,22,4,001C1212121C0000,80,duration,23,4,0097949795F40000,81,duration 460 DATA 24,4,0019A43C24A40000,82,duration,25,4,00F7424242470000,83,duration,26,4,0079494949790000,84,duration 470 DATA 27,4,0021A16121210100,140,duration,28,4,00F8F8F8F8F8F800,85,duration 480 DATA 3,10,FFFF181818181818,86,Tremolo,4,10,8080007149715149,87,Tremolo,5,10,000000E80DCA08E8,88,Tremolo 490 DATA 6,10,000000BDA5A5A5BD,89,Tremolo,7,10,0000001E121212DE,90,Tremolo,11,9,00007C040810207C,91,SLIDE 500 DATA 12,9,7884807804848478,92,SLIDE,13,9,404040404040407E,93,SLIDE,14,9,3E0808080808083E,94,SLIDE 510 DATA 15,9,3F1010101010103F,95,SLIDE,16,9,1F90909E9090901F,96,SLIDE 520 DATA 17,9,0000183C5A991818,97,SLIDE,11,10,0000183C5A991818,97,SLIDE 530 DATA 17,10,C324181824C30000,98,SLIDE,23,10,78FCCCFCF8C0C0C0,99,PTremolo,24,10,000000F282F311F1,100,PTremolo 540 DATA 25,10,0000009E9090101E,101,PTremolo,26,10,0000009090F79090,102,PTremolo,27,10,0000003824A42438,103,PTremolo 550 DATA 4,16,00456D5545454400,104,ZeroMute,5,16,001711111111E100,105,ZeroMute,6,16,00DE101C10101E00,106,ZeroMute 560 DATA 5,17,1C2222222222221C,107,ZeroMute,13,14,0000000078FCC6C6,108,rtg,14,14,0000000000000072,109,rtg 570 DATA 15,14,0000000000000059,110,rtg,16,14,00000000000000E8,111,rtg,17,14,0000000000000080,112,rtg 580 DATA 13,15,FCD8CCC600EF4949,113,rtg,14,15,8BFA8A8A004B6A5B,114,rtg,15,15,55D5555900C00080,115,rtg 590 DATA 16,15,2D2A28E800000000,116,rtg,17,15,8080808000000000,117,rtg,13,16,494F003B425B4A33,118,rtg 600 DATA 14,16,4A4B00D21A9612D2,119,rtg,15,16,00C000F784E785F4,120,rtg,16,16,00000019A43C24A4,121,rtg 610 DATA 17,16,000000DE9292929E,122,rtg,18,16,000000E090E0A090,123,rtg,9,21,00000F080F010F00,124,spacebar 620 DATA 10,21,0000714A73424200,125,spacebar,11,21,00009E50D0505E00,126,spacebar,12,21,0000F784E784F700,127,spacebar 630 DATA 13,21,000019A53DA52500,128,spacebar,14,21,0000C020C0402000,129,spacebar,15,21,00003C2121213D00,130,spacebar 640 DATA 16,21,0000C92DEB292900,131,spacebar,17,21,00007B4243427B00,132,spacebar,18,21,0000D0109010DE00,133,spacebar 650 DATA 19,21,0000F080F010F000,134,spacebar,24,16,324A4A4A5A390400,135,Quit,25,16,2F26262626CF0000,136,Quit 660 DATA 26,16,7C10101010100000,137,Quit,25,17,7884848484947804,138,Quit 670 CALL CLEAR :: RESTORE 680 680 DATA 33,07060C0C1818187F,34,33316163666CC8D8,35,8000000000001030,36,60C08080C0E00000,37,FFDBA5DBDBA5DBFF 690 FOR DRW=1 TO 5 700 READ CHR,PAT$ 710 CALL CHAR(CHR,PAT$) 720 NEXT DRW 730 CALL SCREEN(15) 740 CLR=13 :: IY=1 :: IX=11 750 CALL SPRITE(#1,37,CLR,IY*8,IX* 760 CALL DELSPRITE(#1) 770 DISPLAY AT(2,10):"CDEFGAB" 780 RESTORE 360 790 FOR DRW=1 TO 87 800 READ COL,ROW,PAT$,CHR,GRP$ 810 CALL CHAR(CHR,PAT$) 820 CALL VCHAR(ROW,COL,CHR) 830 NEXT DRW 840 TCHR=9 850 CALL SPRITE(#10,33,2,20*8,19* 860 CALL SPRITE(#11,34,2,21*8,19* 870 CALL SPRITE(#12,35,2,20*8,20* 880 CALL SPRITE(#13,36,2,21*8,20* 890 RESTORE 920 900 REM DISPLAY AT(23,1):"Musick v0.16 SYMM LLC 2016" 910 READ VOL,DUR,C,D,E,F,G,A,B,KEY,NOTE,MUTE !load default settings on all variables 920 DATA 15,200,262,294,330,349,392,440,494,262,262,0 930 CALL KEY(0,KEY,STATUS)!Check for keyboard input 940 IF STATUS=-1 THEN 1140 !SAME KEY PRESSED 950 IF STATUS=0 THEN 960 ELSE 980 !NO KEY PRESSED CHECK FOR LOOP ELSE CONTINUE 960 IF NLOOP=1 THEN 1500 ELSE 930 !IF NO KEY PRESSED AND NLOOENABLED - PLAY SOUND AGAIN ELSE GO BACK TO KEY PRESS 970 REM IF DIFFERENT KEY PRESSED (STATUS=1) 980 CALL DELSPRITE(#1) 990 IF KEY<>49 THEN 1000 :: NOTE=-1 :: GOTO 1500 !one (1) for NOISE = -1 1000 IF KEY<>50 THEN 1010 :: NOTE=-2 :: GOTO 1500 !two (2) for NOISE = -2 1010 IF KEY<>51 THEN 1020 :: NOTE=-3 :: GOTO 1500 !three (3) for NOISE = -3 1020 IF KEY<>52 THEN 1030 :: NOTE=-4 :: GOTO 1500 !four (4) for NOISE = -4 1030 IF KEY<>53 THEN 1040 :: NOTE=-5 :: GOTO 1500 !five (5) for NOISE = -5 1040 IF KEY<>54 THEN 1050 :: NOTE=-6 :: GOTO 1500 !six (6) for NOISE = -6 1050 IF KEY<>55 THEN 1060 :: NOTE=-7 :: GOTO 1500 !seven (7) for NOISE = -7 1060 IF KEY<>56 THEN 1070 :: NOTE=-8 :: GOTO 1500 !eight ( for NOISE = 8 1070 IF KEY<>67 THEN 1080 :: NOTE=C :: GOTO 1500 !Note C © for Frequency = 262 1080 IF KEY<>68 THEN 1090 :: NOTE=D :: GOTO 1500 !Note D (d) for Frequency = 294 1090 IF KEY<>69 THEN 1100 :: NOTE=E :: GOTO 1500 !Note E (e) for Frequency = 330 1100 IF KEY<>70 THEN 1110 :: NOTE=F :: GOTO 1500 !Note F (f) for Frequency = 349 1110 IF KEY<>71 THEN 1120 :: NOTE=G :: GOTO 1500 !Note G (g) for Frequency = 392 1120 IF KEY<>65 THEN 1130 :: NOTE=A :: GOTO 1500 !Note A (a) for Frequency = 440 1130 IF KEY<>66 THEN 1140 :: NOTE=B :: GOTO 1500 !Note B (b) for Frequency = 494 1140 IF KEY<>91 THEN 1150 :: NOTE=NOTE-1 :: GOTO 1400 !Open Bracket ([) for NOTE -1 hz Down 1150 IF KEY<>93 THEN 1190 !close Bracket (]) for NOTE +1 hz Up 1160 IF NOTE<=110 THEN 1170 ELSE 1180 !***CHECK TO ENSURE NOISE DOES NOT GET NOTE ADJUSTMENT*** 1170 NOTE=110 1180 NOTE=NOTE+1 :: GOTO 1380 1190 IF KEY<>46 THEN 1200 :: DUR=DUR+1 :: GOTO 1430 !PERIOD (.) FOR DUR Up 1200 IF KEY<>44 THEN 1210 :: DUR=DUR-1 :: GOTO 1400 !COMMA (,) FOR DUR Down 1210 IF KEY<>61 THEN 1220 :: VOL=VOL-1 :: GOTO 1470 !MINUS (-) FOR VOL DOWN 1220 IF KEY<>45 THEN 1230 :: VOL=VOL+1 :: GOTO 1450 !EQUALS (=) FOR VOL UP 1230 IF KEY=90 THEN 1710 !Z KEY (z) FOR SLIDE Down 1240 IF KEY=88 THEN 1800 !X KEY (x) FOR SLIDEUp 1250 IF KEY=84 THEN 1900 !T KEY (t) FOR TREMOLO 1260 IF KEY=80 THEN 2180 !P KEY (p) FOR PSYCHODELICK TREMOLO 1270 IF KEY=82 THEN 2480 !R KEY ® FOR RANDOM NOTE GENERATOR 1280 IF KEY=81 THEN 2640 !Q KEY (q) TO QUIT THE PROGRAM 1290 IF KEY=48 THEN 2570 !ZERO KEY (0) TO MUTE/UNMUTE AUDIO 1300 IF KEY=76 THEN 1310 ELSE 1330 ! toggle loop 1310 IF NLOOP=0 THEN NLOOP=1 :: GOTO 1330 1320 IF NLOOP=1 THEN NLOOP=0 1330 IF KEY<=159 THEN 1340 ELSE 930 !**********ERROR CHECKING ON KEY PRESSED*********** 1340 CALL SOUND(DUR,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: GOTO 930 1350 REM ********cALL***sOUND***rOUTINE***cHECKS******** 1360 IF NOTE<=110 THEN 1370 ELSE 1380 !*check NOTE range lower limit and correct if out of range* 1370 NOTE=110 :: GOTO 1490 1380 IF NOTE>=40000 THEN 1390 ELSE 1490 !*check NOTE range higherlimit and correct if out of range* 1390 NOTE=40000 :: GOTO 1490 1400 IF DUR<=1 THEN 1410 ELSE 1430 !*check DURation range lower limit and correct if out of range* 1410 DUR=1 :: GOTO 1490 1420 REM 1430 IF DUR>=4250 THEN 1440 ELSE 1450 !*check DURation range upper limit and correct if out of range* 1440 DUR=4250 1450 IF VOL>=30 THEN 1460 ELSE 1470 !*check VOLume range upper limit and correct if out of range* 1460 VOL=30 :: GOTO 1490 1470 IF VOL<=0 THEN 1480 ELSE 1500 !*check VOLume range lower limit and correct if out of range* 1480 VOL=0 1490 REM ***CALL SOUND***ROUTINE*** 1500 IF NOTE<>262 THEN 1520 1510 IY=1 :: IX=11 :: GOTO 1650 1520 IF NOTE<>294 THEN 1540 1530 IY=1 :: IX=12 :: GOTO 1650 1540 IF NOTE<>330 THEN 1560 1550 IY=1 :: IX=13 :: GOTO 1650 1560 IF NOTE<>349 THEN 1580 1570 IY=1 :: IX=14 :: GOTO 1650 1580 IF NOTE<>392 THEN 1600 1590 IY=1 :: IX=15 :: GOTO 1650 1600 IF NOTE<>440 THEN 1620 1610 IY=1 :: IX=16 :: GOTO 1650 1620 IF NOTE<>494 THEN 1640 1630 IY=1 :: IX=17 :: GOTO 1650 1640 CLR=1 :: GOTO 1660 1650 CLR=4 1660 CALL SPRITE(#1,37,CLR,IY*8,IX* 1670 FR=20 :: FC=19 1680 GOSUB 2670 1690 CALL SOUND(DUR,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: GOTO 930 1700 REM *********sLIDE dOWN rOUTINE********************* 1710 FR=10 :: FC=13 1720 GOSUB 2670 1730 IF NOTE<=210 THEN 1740 ELSE 1750 !check if slide down has valid end range and correct if not. 1740 NOTE=210 1750 FOR SD=1 TO 100 :: NOTE=NOTE-1 :: CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL 1760 DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 1770 ELSE 1780 1770 CALL DELSPRITE(#6,#7,#8,#9):: GOTO 930 1780 NEXT SD :: CALL DELSPRITE(#6,#7,#8,#9):: GOTO 930 1790 REM ***********sLIDE uP rOUTINE***************** 1800 FR=10 :: FC=13 1810 GOSUB 2670 1820 IF NOTE>=39900 THEN 1830 ELSE 1840 !check if slide up has valid end range and correct if not. 1830 NOTE=39900 1840 FOR SU=1 TO 100 :: NOTE=NOTE+1 1850 CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR 1860 CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 1870 ELSE 1880 1870 CALL DELSPRITE(#6,#7,#8,#9):: GOTO 930 1880 NEXT SU :: CALL DELSPRITE(#6,#7,#8,#9):: GOTO 930 1890 REM ***************tREMOLO rOUTINE***************** 1900 FR=7 :: FC=4 1910 GOSUB 2670 1920 IF NOTE<=220 THEN 1930 ELSE 1940 1930 NOTE=221 :: GOTO 1960 1940 IF NOTE>=40000 THEN 1950 ELSE 1960 1950 NOTE=39899 1960 FOR WD=1 TO 10 :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 1970 ELSE 1980 1970 GOSUB 2050 1980 NOTE=NOTE-10 :: CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE 1990 DISPLAY AT(5,20):DUR :: NEXT WD 2000 FOR WU=1 TO 10 :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 2030 ELSE 2010 2010 NOTE=NOTE+10 :: CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE 2020 DISPLAY AT(5,20):DUR :: NEXT WU :: GOTO 2170 2030 GOSUB 2050 2040 REM ********tREMOLO sLIDE rOUTINE*********** 2050 IF KEY<>91 THEN 2060 :: NOTE=NOTE-10 :: GOTO 2100 !Open Bracket ([) for NOTE -1 hz Down 2060 IF KEY<>93 THEN 2070 :: NOTE=NOTE+10 :: GOTO 2120 !close Bracket (]) for NOTE +1 hz Up 2070 IF STATUS<>0 THEN 2080 ELSE 2090 2080 CALL DELSPRITE(#6,#7,#8,#9):: GOTO 930 2090 GOTO 1960 2100 IF NOTE<=220 THEN 2110 ELSE 2120 !t-sLIDE D check NOTE range lower limit and correct if out of range 2110 NOTE=221 :: GOTO 2160 2120 IF NOTE>=40000 THEN 2130 ELSE 2160 !t-sLIDE U check NOTE range higherlimit and correct if out of range 2130 NOTE=39899 2140 REM ***TREMOLO***CALL***SOUND***ROUTINE*** 2150 CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: RETURN 2160 REM ***TREMOLO***CALL***SOUND***ROUTINE*** 2170 CALL SOUND(1,NOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: GOTO 1920 2180 REM ***************pSYCHODELIC tREMOLO************** 2190 FR=7 :: FC=24 2200 GOSUB 2670 2210 SNOTE=13013 :: TNOTE=31031 2220 IF SNOTE>=40000 THEN 2230 ELSE 2240 2230 SNOTE=40000 :: TNOTE=30000 2240 IF NOTE<=220 THEN 2250 ELSE 2260 2250 NOTE=221 :: GOTO 2280 2260 IF NOTE>=40000 THEN 2270 ELSE 2280 2270 NOTE=39899 2280 FOR WD=1 TO 10 :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 2290 ELSE 2300 2290 GOSUB 2380 2300 NOTE=NOTE-10 :: SNOTE=SNOTE-110 :: TNOTE=TNOTE-100 2310 CALL SOUND(1,NOTE,VOL,SNOTE,VOL,TNOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: NEXT WD 2320 FOR WU=1 TO 10 :: CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 2330 ELSE 2340 2330 GOSUB 2380 2340 NOTE=NOTE+10 :: SNOTE=SNOTE+110 :: TNOTE=TNOTE+100 2350 CALL SOUND(1,NOTE,VOL,SNOTE,VOL,TNOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: NEXT WU 2360 GOTO 2470 2370 REM ********pSYCh***tREMOLO sLIDE rOUTINE*********** 2380 IF KEY<>91 THEN 2390 :: NOTE=NOTE-10 :: SNOTE=SNOTE-110 :: TNOTE=TNOTE-100 :: GOTO 2420 !open Bracket ([) for NOTE -1 hz Down 2390 IF KEY<>93 THEN 2400 :: NOTE=NOTE+10 :: SNOTE=SNOTE+110 :: TNOTE=TNOTE+100 :: GOTO 2440 !close Bracket (]) for NOTE +1 hz Up 2400 IF STATUS<>0 THEN 2410 ELSE 2280 2410 CALL DELSPRITE(#6,#7,#8,#9):: GOTO 930 2420 IF NOTE<=220 THEN 2430 ELSE 2440 !pSYCh t-sLIDE Dcheck NOTE range lower limit and correct if out of range 2430 NOTE=221 :: SNOTE=13013 :: TNOTE=31031 :: GOTO 2470 2440 IF NOTE>=40000 THEN 2450 ELSE 2460 !pSYCh t-sLIDE Ucheck NOTE range higherlimit and correct if out of range 2450 NOTE=39899 :: SNOTE=13013 :: TNOTE=31031 2460 CALL SOUND(1,NOTE,VOL,SNOTE,VOL,TNOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: RETURN 2470 CALL SOUND(1,NOTE,VOL,SNOTE,VOL,TNOTE,VOL):: DISPLAY AT(6,2):VOL :: DISPLAY AT(5,9):NOTE :: DISPLAY AT(5,20):DUR :: GOTO 2210 2480 REM *************rANDOME nOTE gENERATOR****************** 2490 RANDOMIZE 2500 FR=13 :: FC=16 2510 GOSUB 2670 2520 RS1=INT(38000*RND)+111 :: RS2=INT(38000*RND)+111 :: RS3=INT(38000*RND)+111 :: RV1=INT(15*RND):: RV2=INT(15*RND):: RV3=INT(15*RND) 2530 CALL SOUND(DUR,RS1,RV1,RS2,RV2,RS3,RV3):: DISPLAY AT(6,2):RV1 :: DISPLAY AT(5,9):RS1 :: DISPLAY AT(5,20):DUR 2540 CALL KEY(0,KEY,STATUS):: IF STATUS<>0 THEN 2550 ELSE 2520 2550 CALL DELSPRITE(#6,#7,#8,#9):: GOTO 930 2560 REM ********************mute/unmute function********* 2570 FR=13 :: FC=4 2580 GOSUB 2670 2590 IF MUTE<>0 THEN 2630 :: MUTE=1 2600 FOR DELAY=1 TO 10 :: NEXT DELAY :: CALL KEY(0,KEY,STATUS):: IF KEY<>48 THEN 2610 :: GOTO 2570 2610 IF STATUS<>0 THEN 2620 ELSE 2600 2620 CALL DELSPRITE(#6,#7,#8,#9):: GOTO 930 2630 MUTE=0 :: GOTO 2600 2640 CALL CLEAR 2650 END 2660 REM ************************FLOATERFX********************* 2670 CALL SPRITE(#6,33,13,FR*8,FC* 2680 CALL SPRITE(#7,34,13,(FR+1)*8,FC* 2690 CALL SPRITE(#8,35,13,FR*8,(FC+1)* 2700 CALL SPRITE(#9,36,13,(FR+1)*8,(FC+1)* 2710 RETURN 1 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted July 30, 2016 Share Posted July 30, 2016 On 32K upgrades, there are a couple of threads here devoted to just that subject. If you look in the Project of the Quarter thread, there is one to install inside the keyboard, and if you look in the Dev subforum, you will find a WIP thread for a sideport 32K expansion. Quote Link to comment Share on other sites More sharing options...
Sinphaltimus Posted July 30, 2016 Author Share Posted July 30, 2016 On 32K upgrades, there are a couple of threads here devoted to just that subject. If you look in the Project of the Quarter thread, there is one to install inside the keyboard, and if you look in the Dev subforum, you will find a WIP thread for a sideport 32K expansion. I'll have to pay more attention. I'm pretty sure the internal one is dead. I've read through them but the guy to get parts from seems gone. That was last week - maybe I followed the wrong topic I dunno. Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted July 30, 2016 Share Posted July 30, 2016 Here's the link to the internal one. You just order three of the boards from Osh Park and build it. See the instructions in the Project of the Calendar Quarter thread. I believe it starts on page two and goes through page four of the thread. . . 1 Quote Link to comment Share on other sites More sharing options...
Sinphaltimus Posted July 31, 2016 Author Share Posted July 31, 2016 Here's a link to the forum post containg the finished program. Thanks all for helping me get over this minor issue (me). In a few weeks I want to start another audio program dealing with the speech synth on unmodded hardware. I'll start a new topic for that one.http://atariage.com/forums/topic/255396-new-musick-program/ Quote Link to comment Share on other sites More sharing options...
RXB Posted August 1, 2016 Share Posted August 1, 2016 What is with the SMILEY FACES in listing? Quote Link to comment Share on other sites More sharing options...
Opry99er Posted August 1, 2016 Share Posted August 1, 2016 8 ) Emoticons are enabled Quote Link to comment Share on other sites More sharing options...
Sinphaltimus Posted August 1, 2016 Author Share Posted August 1, 2016 (edited) What is with the SMILEY FACES in listing?If you copy and paste it all in to a plain text editor, the smiley faces go away and are replaced by proper text. Although that code is old. Follow the link in my most recently reply before this one to a thread with an updated version.. Edited August 1, 2016 by Sinphaltimus Quote Link to comment Share on other sites More sharing options...
Tursi Posted August 1, 2016 Share Posted August 1, 2016 Wrap code in [ code ] blah [ /code ] tags (without the spaces), and that will put them in a nicely formatted box for easier copy and paste, and no emoticons. 1 Quote Link to comment Share on other sites More sharing options...
Sinphaltimus Posted August 1, 2016 Author Share Posted August 1, 2016 Wrap code in [ code ] blah [ /code ] tags (without the spaces), and that will put them in a nicely formatted box for easier copy and paste, and no emoticons. Fantastic! Will do. I just found the emoticon enabler that I disabled as well. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.