Jump to content

oddemann

Members
  • Posts

    537
  • Joined

  • Last visited

Posts posted by oddemann

  1. 1 minute ago, Lee Stewart said:

     

    
    1600 IF B(PT)<>1 THEN PRINT "N(;.,. POSSIBLE" : : GOTO 1580
    
    1680 RETURN
    1690 REM input**********
    1700 INPUT X$:: IF LEN(X$)<>2 THEN 1750
    1710 L$=SEG$(X$,1,1):: D$=SEG$(X$,2,1)
    1720 IF L$<"A" OR L$>"E" OR D$<"1" OR D$>"5" THEN 1750
    1730 X=ASC(L$)-S*VAL(D$)-40
    1740 RETURN
    1750 PRINT "WRONG INPUT,TRY AGAIN" :: GOTO 1700

    should be

    
    1600 IF B(PT)<>1 THEN PRINT "NOT POSSIBLE" : : GOTO 1580    <<----changed
    
    1680 RETURN
    1690 REM input**********
    1700 INPUT X$:: IF LEN(X$)<>2 THEN 1750
    1710 L$=SEG$(X$,1,1):: D$=SEG$(X$,2,1)
    1720 IF L$<"A" OR L$>"E" OR D$<"1" OR D$>"5" THEN 1750
    1730 X=ASC(L$)-5*VAL(D$)-40                                 <<----changed
    1740 RETURN
    1750 PRINT "WRONG INPUT,TRY AGAIN" :: GOTO 1700

    ...lee

    Sorry Lee, I made a new tread for this... could you post it there too?

    Anyway... Thx... You have eyes like an eagle!

    • Like 1
  2. "Here Lives/QUI VIVE"

    This is the first of some program code that is missing on the web page.


    Anyway, I looked at... "Here Lives/QUI VIVE" and I am stomped at 1700, I think most of the bugs are out.

     

    Anyone? looked at it so much that I am a little blind at the moment... Will try again later. But the 1700 bug got me confused.


    Now with last bug fix by @Lee Stewart

    But it still stops at 1700 (for me)

     

    Spoiler
    
    10 REM TI EXTENDED-QUI VIVE
    20 CALL CLEAR
    30 RANDOMIZE
    40 DIM SF(41,4),SO(41)
    50 DIM D(107,1),DF(15,8)
    60 DIM CC(4,1),B(24),C(24)
    70 GOTO 1870
    80 REM compute points of df**********
    90 GV=0 :: P1=0 :: P2=0 :: C1=0 :: C2=0
    100 D1=B(DF(NF,0)):: D2=B(DF(NF,1))
    110 IF D1=1 OR 02=1 THEN P1=1
    120 IF D1=10 OR 02=10 THEN C1=10
    130 D1=B(DF(NF,2)):: D2=B(DF(NF,3))
    140 IF D1=1 OR 02=1 THEN P2=1
    150 IF D1=10 OR D2=10 THEN C2=10
    160 GV=B(DF(NF,4))+B(DF(NF,5))+B(DF(NF,6))
    170 P=GV+P1+P2+C1+C2
    180 IF GV=30 AND(C1=0 OR C2=0)THEN P=P-10
    190 IF GV=3 AND(P1=0 OR P2=0)THEN P=P-1
    200 RETURN
    210 REM initialize single figu~es (sf)
    220 FOR I=0 TO 41 :: READ X$
    230 FOR J=1 TO 5
    240 SF(I,J-1)=ASC(SEG$(X$,J,1))-65
    250 NEXT J :: NEXT I :: RETURN
    260 REM wings(AV<>)*****
    270 DATA UQMSV,PLHNT,KGCIO
    280 DATA AGMIE,FLRNJ,KQWSO
    290 DATA AGMQU,BHNRV,CIOSW
    300 DATA EIHSV,DHLRX,CGKQW
    310 REM times(X)*****
    320 DATA ACGKM,BDHLN,CEIMO
    330 DATA FLHPR,GIMQS,HJNRT
    340 DATA KMQUW,LNRVX,MOSWY
    350 REM plus(+)*****
    
    360 DATA BFGHL,CGHIM,DHIJN
    370 DATA GKLMQ,HLMNR,IMNOS
    380 DATA LPQRV,MQRSW,NRSTX
    390 REM diagonals(\/)
    400 DATA AGHSY,EIMQU
    410 REM columns(I)*****
    420 DATA AFKPU,BGLQV,CHMRW
    430 DATA DINSX,EJOTY
    440 REM rows(-)*****
    450 DATA ABCDE,FGHIJ,KLMNO
    460 DATA PQRST,UVWXY
    470 REM initialize double figures (df)
    480 FOR I=0 TO 107 STEP 12 :: READ X$
    490 FOR J=0 TO 11 :: FOR K=0 TO 1
    500 L=2*J+K+1 :: D(I+J,K)=ASC(SEG$(X$,L,1))-49
    510 NEXT K :: NEXT J :: NEXT I
    520 RETURN
    530 DATA 171:1A1C1E1M101P2>2@2B2J
    540 DATA 393<3=3?3G474:4=4?4A4G40
    550 DATA 4P5@5B5D5J696<6C6E6M7=7A
    560 DATA 7C71707P8>8B8D8J9?9E9K:?
    570 DATA :A:E:K:O:P;>;@;D;J<=<C<I
    580 DATA =G=I=O>F>H>J?G?K?P@F@J@L
    590 DATA AGAIAKANAOAPBHBJBNCICMCP
    600 DATA DJDLDNEKEMEOFRFWGSGWHTHW
    610 DATA IRIXJSJXKTKXLRLVMSHYNTNY
    620 REM compute double figure fields••••••••••
    630 TC=4 :: TN=0
    640 FOR I=0 TO 4 :: C(SF(D(DF1,0),I))=1 :: NEXT I
    
    650 FOR I=0 T0 4 :: SF1=SF(D(DF1,1),I)
    660 IF C(SF1)=1 THEN 680
    670 DF(NF,TN)=SF1 :: TN=TN+1 :: GOTO 690
    680 DF(NF,TC)=SF1 :: TC=TC+1 .. C(SF1)=0
    690 NEXT I
    700 FOR I=0 TO 4 :: SF1=SF(D(DF1,0),I)
    710 IF C(SF1)=I THEN DF(NF,TN)=SF1 :: TN=TN+1 :: C(SF1)=0
    720 NEXT I :: RETURN
    730 REM
    740 REM display board**********
    750 PRINT " "
    760 FOR I=0 TO 4 :: FOR J=0 TO 4
    770 F=5*1+J
    780 IF B(F)=0 THEN PRINT " ";
    790 IF B(F)=1 THEN PRINT "P";
    800 IF B(F)=10 THEN PRINT "C";
    810 NEXT J :: PRINT 5-I :: NEXT I
    820 PRINT
    830 PRINT "ABCDE"
    840 PRINT " "
    850 RETURN
    860 REM determine owner of sf's**********
    870 OM=-1 :: WM=-1
    880 FOR SF1=0 TO 41
    890 P=B(SF(SF1,0))+B(SF(SF1,1))+B(SF(SF1,2))+B(SF(SF1,3))+B(SF(SF1,4))
    900 IF P=0 OR P=10 OR P=20 OR P=30 THEN SO(SF1)=10 :: GOTO 1000
    910 IF P<>40 THEN 950
    920 GOSUB 1010
    930 GOSUB 1050
    940 WM=1 :: SF1=41 :: GOTO 1000
    950 IF P>20 OR P<3 OR P=11 OR P=12 THEN SO(SF1)=0 :: GOTO 1000
    960 SO(SF1)=1
    970 IF P=4 AND OM=-1 THEN GOSUB 1010
    980 IF P=14 THEN GOSUB 1050
    990 IF P=S THEN SF1=41
    1000 NEXT SF1 :: RETURN
    1010 REM determine obligatory move**********
    1020 FOR I=0 TO 4
    1030 IF B(SF(SF1,I))=0 THEN OM=SF(SF1,I)
    1040 NEXT I :: RETURN
    1050 REM determine pinned checker**********
    
    1060 FOR I=0 TO 4
    1070 IF B(SF(SF1,I))<>10 THEN 1110
    1080 FOR J=0 TO CC1-1
    1090 IF SF(SF1,I)=CC(J,0)THEN CC(J,1)=1
    1100 NEXT J
    1110 NEXT I
    1120 RETURN
    1130 REM determine interesting df's********
    1140 NC=0 :: NP=0 :: NF=0
    1150 FOR I=0 TO 15
    1160 DF(I,8)=-1
    1170 DF(I,7)=0
    1180 NEXT I
    1190 FOR DF1=0 TO 107
    1200 O1=SO(D(DF1,0)) :: 02=SO(D(DF1,1))
    1210 IF 01<>02 OR 01=0 OR 02=0 THEN 1330
    1220 GOSUB 620
    1230 GOSUB 80
    1240 IF P=4 OR P=14 THEN DFINF,71=1 :: GOTO 1270
    1250 IF 01=1 OR P<=DF(NF,8)THEN 1330
    1260 DF(NF,7)=10
    
    1270 DF(NF,S)=P
    1280 NF=0
    1290 FOR I=0 TO 15
    1300 IF DF(I,8)>=DF(NF,8)THEN 1320
    1310 IF DF(I,7)=0 OR DF(I,7)=10 THEN NF=I
    1320 NEXT I
    1330 NEXT DF1
    1340 RETURN
    1350 REM
    1360 REM determine strategic value of move
    1370 IF WM=1 THEN 1520
    1380 MC=0 :: N2=0
    1390 FOR NF=0 TO 1
    1400 IF DF(NF,7)=0 THEN 1460
    1410 GOSUB 80
    1420 IF DF(NF,7)=1 THEN 1450
    1430 IF P=MC THEN N2=N2+1
    1440 IF P>MC THEN MC=P :: N2=1
    1450 IF P=4 THEN NF=15
    1460 NEXT NF
    1470 IF PP=-1 THEN 1520
    1480 IF P=4 THEN RETURN
    1490 IF MC<MP THEN RETURN
    1500 IF MC=MP AND N2<N1 THEN RETURN
    1510 IF MC=MP AND N2=N1 AND RND<.5 THEN RETURN
    1520 MP=MC :: N1=N2
    1530 PP=CP :: PT=CT
    1540 RETURN
    1550 REM
    1560 REM Player move*******
    1570 IF PC<5 THEN 1610
    1580 PRINT "WHICH CHECKER 00 YOU WANT TO MOVE"
    1590 GOSUB 1690 :: PT=X
    1600 IF B(PT)<>1 THEN PRINT "NOT POSSIBLE" :: GOTO 1580
    1610 PRINT "WHERE DO YOU PUT YOUR CHECKER"
    1620 GOSUB 1690 1: PP=X
    1630 IF B(PP)<>0 THEN PRINT "NOT POSSIBLE" :: GOTO 1610
    1640 IF PC=5 THEN B(PT)=0
    1650 IF PC<5 THEN PC=PC+1
    1660 B(PP)=1
    1670 GOSUB 740
    
    1680 RETURN
    1690 REM input**********
    1700 INPUT X$:: IF LEN(X$)<>2 THEN 1750
    1710 L$=SEG$(X$,1,1):: D$=SEG$(X$,2,1)
    1720 IF L$<"A" OR L$>"E" OR D$<"1" OR D$>"5" THEN 1750
    1730 X=ASC(L$)-5*VAL(D$)-40
    1740 RETURN
    1750 PRINT "WRONG INPUT,TRY AGAIN" :: GOTO 1700
    1760 REM computer move**********
    1770 IF CC1<5 THEN PT=CC1 :: CC1=CC1+1 :: GOTO 1830
    1780 PRINT "I TAKE ";CHR$(65+PT-INT(PT/5)*5);5-INT(PT/5)
    1790 B(PT)=0
    1800 FOR CI=0 TO 4
    1810 IF CC(CI,0)=PT THEN PT=CI :: CI=4
    1820 NEXT CI
    1830 PRINT "I PUT IT AT ";CHR$(65+PP-INT(PP/5)*5);5-INT(PP/5)
    1840 B(PP)=10 :: CC(PT,0)=PP
    1850 GOSUB 740
    1860 RETURN
    1870 REM main program**********
    1880 PRINT "PLEASE WAIT"
    1890 GOSUB 210
    1900 GOSUB 470
    1910 CC1=0 :: PC=0
    1920 PP=12 :: GOTO 2140
    1930 FOR I=0 TO 4 :: CC(I,1)=0 :: NEXT I
    
    1940 GOSUB 860
    1950 IF P=5 THEN END
    1960 IF WM=1 THEN 1960
    1970 GOSUB 1130
    1980 MP=0 :: N1=0 :: PP=-1
    1990 BF=0 :: EF=24
    2000 IF OM<>-1 THEN BF=OM :: EF=OM
    2010 FOR CP=BF TO EF
    2020 IF B(CP)<>0 THEN 2130
    2040 B(CP)=10
    2050 IF CC1<5 THEN GOSUB 1360 :: GOTO 2120
    2060 FOR CI=0 TO 4
    2070 IF CC(CI,1) THEN 2110
    2080 CT=CC(CI,0) :: B(CT)=0
    2090 GOSUB 1360
    2100 B(CT)=10
    2110 NEXT CI
    2120 B(CP)=0
    2130 NEXT CP
    2140 GOSUB 1760
    2150 IF WM=1 THEN END
    2160 GOSUB 1560
    2170 PRINT "PLEASE WAIT"
    2180 GOTO 1930
    

     

     

  3. 5 hours ago, ti99iuc said:

    I am also work on the software published in the TERRIFIC GAMES for the TI99
    https://www.ti99iuc.it/web/index.php?pageid=database_cerca&archivioid=643

    someone still missing.

    Make a separate tread for this book?

    Anyway, I looked at... "Here Lives/QUI VIVE" and I am stomped at 1700, I think most of the bugs are out.
     

    Spoiler
    
    10 REM TI EXTENDED-QUI VIVE
    20 CALL CLEAR
    30 RANDOMIZE
    40 DIM SF(41,4),SO(41)
    50 DIM D(107,1),DF(15,8)
    60 DIM CC(4,1),B(24),C(24)
    70 GOTO 1870
    80 REM compute points of df**********
    90 GV=0 :: P1=0 :: P2=0 :: C1=0 :: C2=0
    100 D1=B(DF(NF,0)):: D2=B(DF(NF,1))
    110 IF D1=1 OR 02=1 THEN P1=1
    120 IF D1=10 OR 02=10 THEN C1=10
    130 D1=B(DF(NF,2)):: D2=B(DF(NF,3))
    140 IF D1=1 OR 02=1 THEN P2=1
    150 IF D1=10 OR D2=10 THEN C2=10
    160 GV=B(DF(NF,4))+B(DF(NF,5))+B(DF(NF,6))
    170 P=GV+P1+P2+C1+C2
    180 IF GV=30 AND(C1=0 OR C2=0)THEN P=P-10
    190 IF GV=3 AND(P1=0 OR P2=0)THEN P=P-1
    200 RETURN
    210 REM initialize single figu~es (sf)
    220 FOR I=0 TO 41 :: READ X$
    230 FOR J=1 TO 5
    240 SF(I,J-1)=ASC(SEG$(X$,J,1))-65
    250 NEXT J :: NEXT I :: RETURN
    260 REM wings(AV<>)*****
    270 DATA UQMSV,PLHNT,KGCIO
    280 DATA AGMIE,FLRNJ,KQWSO
    290 DATA AGMQU,BHNRV,CIOSW
    300 DATA EIHSV,DHLRX,CGKQW
    310 REM times(X)*****
    320 DATA ACGKM,BDHLN,CEIMO
    330 DATA FLHPR,GIMQS,HJNRT
    340 DATA KMQUW,LNRVX,MOSWY
    350 REM plus(+)*****
    
    360 DATA BFGHL,CGHIM,DHIJN
    370 DATA GKLMQ,HLMNR,IMNOS
    380 DATA LPQRV,MQRSW,NRSTX
    390 REM diagonals(\/)
    400 DATA AGHSY,EIMQU
    410 REM columns(I)*****
    420 DATA AFKPU,BGLQV,CHMRW
    430 DATA DINSX,EJOTY
    440 REM rows(-)*****
    450 DATA ABCDE,FGHIJ,KLMNO
    460 DATA PQRST,UVWXY
    470 REM initialize double figures (df)
    480 FOR I=0 TO 107 STEP 12 :: READ X$
    490 FOR J=0 TO 11 :: FOR K=0 TO 1
    500 L=2*J+K+1 :: D(I+J,K)=ASC(SEG$(X$,L,1))-49
    510 NEXT K :: NEXT J :: NEXT I
    520 RETURN
    530 DATA 171:1A1C1E1M101P2>2@2B2J
    540 DATA 393<3=3?3G474:4=4?4A4G40
    550 DATA 4P5@5B5D5J696<6C6E6M7=7A
    560 DATA 7C71707P8>8B8D8J9?9E9K:?
    570 DATA :A:E:K:O:P;>;@;D;J<=<C<I
    580 DATA =G=I=O>F>H>J?G?K?P@F@J@L
    590 DATA AGAIAKANAOAPBHBJBNCICMCP
    600 DATA DJDLDNEKEMEOFRFWGSGWHTHW
    610 DATA IRIXJSJXKTKXLRLVMSHYNTNY
    620 REM compute double figure fields••••••••••
    630 TC=4 :: TN=0
    640 FOR I=0 TO 4 :: C(SF(D(DF1,0),I))=1 :: NEXT I
    
    650 FOR I=0 T0 4 :: SF1=SF(D(DF1,1),I)
    660 IF C(SF1)=1 THEN 680
    670 DF(NF,TN)=SF1 :: TN=TN+1 :: GOTO 690
    680 DF(NF,TC)=SF1 :: TC=TC+1 .. C(SF1)=0
    690 NEXT I
    700 FOR I=0 TO 4 :: SF1=SF(D(DF1,0),I)
    710 IF C(SF1)=I THEN DF(NF,TN)=SF1 :: TN=TN+1 :: C(SF1)=0
    720 NEXT I :: RETURN
    730 REM
    740 REM display board**********
    750 PRINT " "
    760 FOR I=0 TO 4 :: FOR J=0 TO 4
    770 F=5*1+J
    780 IF B(F)=0 THEN PRINT " ";
    790 IF B(F)=1 THEN PRINT "P";
    800 IF B(F)=10 THEN PRINT "C";
    810 NEXT J :: PRINT 5-I :: NEXT I
    820 PRINT
    830 PRINT "ABCDE"
    840 PRINT " "
    850 RETURN
    860 REM determine owner of sf's**********
    870 OM=-1 :: WM=-1
    880 FOR SF1=0 TO 41
    890 P=B(SF(SF1,0))+B(SF(SF1,1))+B(SF(SF1,2))+B(SF(SF1,3))+B(SF(SF1,4))
    900 IF P=0 OR P=10 OR P=20 OR P=30 THEN SO(SF1)=10 :: GOTO 1000
    910 IF P<>40 THEN 950
    920 GOSUB 1010
    930 GOSUB 1050
    940 WM=1 :: SF1=41 :: GOTO 1000
    950 IF P>20 OR P<3 OR P=11 OR P=12 THEN SO(SF1)=0 :: GOTO 1000
    960 SO(SF1)=1
    970 IF P=4 AND OM=-1 THEN GOSUB 1010
    980 IF P=14 THEN GOSUB 1050
    990 IF P=S THEN SF1=41
    1000 NEXT SF1 :: RETURN
    1010 REM determine obligatory move**********
    1020 FOR I=0 TO 4
    1030 IF B(SF(SF1,I))=0 THEN OM=SF(SF1,I)
    1040 NEXT I :: RETURN
    1050 REM determine pinned checker**********
    
    1060 FOR I=0 TO 4
    1070 IF B(SF(SF1,I))<>10 THEN 1110
    1080 FOR J=0 TO CC1-1
    1090 IF SF(SF1,I)=CC(J,0)THEN CC(J,1)=1
    1100 NEXT J
    1110 NEXT I
    1120 RETURN
    1130 REM determine interesting df's********
    1140 NC=0 :: NP=0 :: NF=0
    1150 FOR I=0 TO 15
    1160 DF(I,8)=-1
    1170 DF(I,7)=0
    1180 NEXT I
    1190 FOR DF1=0 TO 107
    1200 O1=SO(D(DF1,0)) :: 02=SO(D(DF1,1))
    1210 IF 01<>02 OR 01=0 OR 02=0 THEN 1330
    1220 GOSUB 620
    1230 GOSUB 80
    1240 IF P=4 OR P=14 THEN DFINF,71=1 :: GOTO 1270
    1250 IF 01=1 OR P<=DF(NF,8)THEN 1330
    1260 DF(NF,7)=10
    
    1270 DF(NF,S)=P
    1280 NF=0
    1290 FOR I=0 TO 15
    1300 IF DF(I,8)>=DF(NF,8)THEN 1320
    1310 IF DF(I,7)=0 OR DF(I,7)=10 THEN NF=I
    1320 NEXT I
    1330 NEXT DF1
    1340 RETURN
    1350 REM
    1360 REM determine strategic value of move
    1370 IF WM=1 THEN 1520
    1380 MC=0 :: N2=0
    1390 FOR NF=0 TO 1
    1400 IF DF(NF,7)=0 THEN 1460
    1410 GOSUB 80
    1420 IF DF(NF,7)=1 THEN 1450
    1430 IF P=MC THEN N2=N2+1
    1440 IF P>MC THEN MC=P :: N2=1
    1450 IF P=4 THEN NF=15
    1460 NEXT NF
    1470 IF PP=-1 THEN 1520
    1480 IF P=4 THEN RETURN
    1490 IF MC<MP THEN RETURN
    1500 IF MC=MP AND N2<N1 THEN RETURN
    1510 IF MC=MP AND N2=N1 AND RND<.5 THEN RETURN
    1520 MP=MC :: N1=N2
    1530 PP=CP :: PT=CT
    1540 RETURN
    1550 REM
    1560 REM Player move*******
    1570 IF PC<5 THEN 1610
    1580 PRINT "WHICH CHECKER 00 YOU WANT TO MOVE"
    1590 GOSUB 1690 :: PT=X
    1600 IF B(PT)<>1 THEN PRINT "N(;.,. POSSIBLE" : : GOTO 1580
    1610 PRINT "WHERE DO YOU PUT YOUR CHECKER"
    1620 GOSUB 1690 1: PP=X
    1630 IF B(PP)<>0 THEN PRINT "NOT POSSIBLE" :: GOTO 1610
    1640 IF PC=5 THEN B(PT)=0
    1650 IF PC<5 THEN PC=PC+1
    1660 B(PP)=1
    1670 GOSUB 740
    
    1680 RETURN
    1690 REM input**********
    1700 INPUT X$:: IF LEN(X$)<>2 THEN 1750
    1710 L$=SEG$(X$,1,1):: D$=SEG$(X$,2,1)
    1720 IF L$<"A" OR L$>"E" OR D$<"1" OR D$>"5" THEN 1750
    1730 X=ASC(L$)-S*VAL(D$)-40
    1740 RETURN
    1750 PRINT "WRONG INPUT,TRY AGAIN" :: GOTO 1700
    1760 REM computer move**********
    1770 IF CC1<5 THEN PT=CC1 :: CC1=CC1+1 :: GOTO 1830
    1780 PRINT "I TAKE ";CHR$(65+PT-INT(PT/5)*5);5-INT(PT/5)
    1790 B(PT)=0
    1800 FOR CI=0 TO 4
    1810 IF CC(CI,0)=PT THEN PT=CI :: CI=4
    1820 NEXT CI
    1830 PRINT "I PUT IT AT ";CHR$(65+PP-INT(PP/5)*5);5-INT(PP/5)
    1840 B(PP)=10 :: CC(PT,0)=PP
    1850 GOSUB 740
    1860 RETURN
    1870 REM main program**********
    1880 PRINT "PLEASE WAIT"
    1890 GOSUB 210
    1900 GOSUB 470
    1910 CC1=0 :: PC=0
    1920 PP=12 :: GOTO 2140
    1930 FOR I=0 TO 4 :: CC(I,1)=0 :: NEXT I
    
    1940 GOSUB 860
    1950 IF P=5 THEN END
    1960 IF WM=1 THEN 1960
    1970 GOSUB 1130
    1980 MP=0 :: N1=0 :: PP=-1
    1990 BF=0 :: EF=24
    2000 IF OM<>-1 THEN BF=OM :: EF=OM
    2010 FOR CP=BF TO EF
    2020 IF B(CP)<>0 THEN 2130
    2040 B(CP)=10
    2050 IF CC1<5 THEN GOSUB 1360 :: GOTO 2120
    2060 FOR CI=0 TO 4
    2070 IF CC(CI,1) THEN 2110
    2080 CT=CC(CI,0) :: B(CT)=0
    2090 GOSUB 1360
    2100 B(CT)=10
    2110 NEXT CI
    2120 B(CP)=0
    2130 NEXT CP
    2140 GOSUB 1760
    2150 IF WM=1 THEN END
    2160 GOSUB 1560
    2170 PRINT "PLEASE WAIT"
    2180 GOTO 1930
    

     

     

    • Thanks 1
  4. MORSE CODER for TI EXTENDED BASIC by MIKE WILCOX (page 73)

     

    There is a at least one bug. But I think it is working correct.

    520 updated!!!
    590 updated also!!!

     

     

    Spoiler
    
    100 REM *MORSE CODER* TI EXTENDED BASIC
    110 REM BY MIKE WILCOX
    120 REM FROM PROGRAMS FOR THE TI HOME COMPUTER
    130 REM COPYRIGHT (C) 1983 BY STEVE DAVIS
    140 RANDOMIZE :: CALL CHAR(139,"F0F0F0F00F0F0F0F"):: CALL CLEAR :: CALL SCREEN(16)
    150 FOR I=1 TO 32 :: CALL HCHAR(1,I,139) :: NEXT I
    160 FOR I=1 TO 24 :: CALL VCHAR(I,32,139) :: NEXT I
    170 FOR I=32 TO 1 STEP -1 :: CALL HCHAR(24,1,139):: NEXT I
    180 FOR I=24 TO 1 STEP -1 :: CALL VCHAR(I,1,139) :: NEXT I
    190 DISPLAY AT(3,7):"PROGRAMS FOR THE" :: DISPLAY AT(5,7):"TI HOME COMPUTER"
    200 DISPLAY AT(7,11):"PRESENTS:" :: DISPLAY AT(10,4):"COMPUTER COURSE IN THE" :: DISPLAY AT(12,3):"INTERNATIONAL MORSE CODE"
    210 DISPLAY AT(23,8):"COPYRIGHT 1982" :: DISPLAY AT(18,4):"PRESS ANY KEY TO BEGIN"
    220 DEF XX=INT(14*RND+2)
    230 CALL KEY(0,K,S):: CALL SOUND(22,2975,0):: CALL COLOR(14,XX,1)
    240 T=850*INT(RND*2) :: CALL SOUND(22,2125+T, 0):: CALL COLOR(14,1,XX) :: CALL SOUND(-99,2125,0) :: IF S=0 THEN 230
    250 OPTION BASE 1 :: DIM U(52):: CALL SCREEN(8)
    260 CALL CLEAR
    270 DISPLAY AT(2,8)BEEP:" MENU:" :: DISPLAY AT(4,1):"PRESS-" :: DISPLAY AT(7,1):"1. TO DISPLAY CODE TABLES"
    280 DISPLAY AT(9,1):"2. TO PRINT CODE TABLES" :: DISPLAY AT(11,1):"3. TO CODE MESSAGE" :: DISPLAY AT(13,1):"4. TO DECODE MESSAGES"
    290 DISPLAY AT(15,1):"5. TO TEST YOURSELF ON CODE" :: DISPLAY AT(17,1):"6. END PROGRAM"
    300 CALL KEY(0,K,S):: W=RND :: IF S=0 THEN 300
    310 IF (K<49)+(K>54)THEN 300
    320 CALL CLEAR
    330 ON K-48 GOTO 340,350,370,380,390,400
    340 PR$="" :: FLAG=0 :: CALL CODE(FLAG,PR$) :: GOTO 260
    350 DISPLAY "ENTER PRINTER NAME DEVICE" :: INPUT "NAME:":PR$
    360 FLAG=1 :: CALL CODE(FLAG,PR$):: GOTO 260
    370 CALL CODER :: GOTO 260
    380 CALL DECODER :: GOTO 260
    390 CALL TEST(U()):: GOTO 260
    400 CALL CLEAR :: STOP
    410 SUB CODE(FLAG,PR$)
    420 CALL CLEAR
    430 IF FLAG<>1 THEN 450
    440 OPEN #1:PR$,OUTPUT
    450 C=1 :: R=1
    460 RESTORE 900
    470 DISPLAY AT(1,2):"INTERNATIONAL MORSE CODE:"
    480 FOR I=1 TO 26
    490 READ L$,CODE$
    500 R=R+2
    510 IF R>15 THEN R=3 :: C=C+7
    520 DISPLAY AT(R,C):L$;" ";CODE$
    530 NEXT I
    540 CALL CHAR(97,RPT$("0",9)&"408102") :: CALL CHAR(98,RPT$("0",10)&"205408") :: CALL CHAR(99,RPT$("0",12)&"6666")
    550 R=20 :: C=4
    560 DISPLAY AT(18,3):"FOREIGN LANGUAGE LETTERS:"
    570 FOR I=1 TO 6
    580 READ L$,CODE$
    590 DISPLAY AT(R,C):L$;" ";CODE$
    600 R=R+3
    610 IF R>23 THEN R=20 :: C=C+8
    620 NEXT I
    630 DISPLAY AT(19,4):"a" :: DISPLAY AT(22,4):"c" :: DISPLAY AT(19,12):"a" :: DISPLAY AT(22,12):"b" :: DISPLAY AT(19,20):"c" :: DISPLAY AT(22,20):"c"
    640 IF FLAG<>1 THEN 680
    650 FOR I=1 TO 24 :: FOR J=1 TO 32 :: CALL GCHAR(I,J,X) :t CALL HCHAR(I,J,30) :: CALL HCHAR(I,J,X)
    660 P$=P$&CHR$(X) :: NEXT J :: PRINT #1:P$ :: P$="" :: NEXT I
    
    670 GOTO 690
    680 CALL KEY(0,K,S) :: IF S=0 THEN 680
    690 CALL CLEAR
    700 DISPLAY AT(1,2):"INTERNATIONAL MORSE CODE:"
    710 DISPLAY AT(3,1):"PUNCTUATION:"
    720 R=5 :: C=1
    730 FOR I=1 TO 10
    740 READ L$,CODE$
    750 DISPLAY AT(R,C):L$ :: DISPLAY AT(R,C+14):CODE$
    760 R=R+2
    770 NEXT I
    780 DISPLAY AT(3,21):"NUMBERS:"
    790 R=5 :: C=22
    800 FOR I=1 TO 10
    810 READ L$,CODE$
    820 DISPLAY AT(R,C):L$;" ";CODE$
    830 R=R+2
    840 NEXT I
    850 IF FLAG<>1 THEN 890
    860 FOR I=1 TO 24 STEP 2 :: FOR J=1 TO 32 :: CALL GCHAR(I,J,X) :: CALL HCHAR(I,J,30) :: CALL HCHAR(I,J,X)
    870 P$=P$&CHR$(X):: NEXT J :: PRINT #1:P$ :: P$="" :: NEXT I :: CLOSE #1
    880 FLAG=0 :: SUBEXIT
    890 CALL KEY(0,K,S):: IF S=0 THEN 890
    900 DATA A,._,B,_...,C,_._.,D, ..,E,.,F,...,G,__.,H,....,I,..,J,.___,K,_._,L,.-...,M,__,N,_.,O,___
    910 DATA P,.__.,Q,__._,R,._.,S,...,T,_,U,.._,V,..._,W,.__,X,_.._,Y,_.__,Z,__..
    920 DATA A,.__._,A,._._,E,.._..,N,__.__,O,___.,U,..__
    930 DATA ", COMMA",__..__,. PERIOD,._._._,? QUESTION,..__..,; SEMI-COLON,_._._.,: COLON,___...
    940 DATA  APOSTROPHE,.____.,- HYPHEN,_...._,/ SLASH,_.._.,()PARENTHESIS,_.__._,_ UNDERLINE,..__._
    950 DATA 1,.____,2,..___,3,...__,4,...._,5,.....,6,_....,7,__...,8,___..,9,____.,0,_____,
    960 SUBEND
    970 SUB CODER
    980 DISPLAY AT(10,1)BEEP ERASE ALL:"WOULD YOU LIKE YOUR CODED": :"MESSAGES PRINTED-OUT (Y/N)?"
    990 CALL KEY(3,K,S):: IF (K<> 89)*(K<>78)THEN 990
    1000 IF K=78 THEN FLAG=0 ELSE FLAG=1
    1010 IF FLAG=0 THEN 1040
    1020 DISPLAY "ENTER PRINTER NAME DEVICE" :: INPUT "NAME:":PR$
    1030 OPEN #3:PR$, OUTPUT
    1040 DISPLAY AT(10,1)BEEP ERASE ALL:"WOULD YOU LIKE YOUR CODED": :"MESSAGE SOUNDED-OUT (Y/N)?"
    1050 CALL KEY(3,K,S):: IF K<>78 AND K<>89 THEN 1050
    1060 IF K=89 THEN FLAG2=1 ELSE FLAG2=0
    1070 ROW=2 :: COL=1
    1080 DISPLAY AT(2,1)ERASE ALL:"YOUR ARE IN THE CODING MODE "
    1090 DISPLAY AT(10,3):"TO RETURN TO THE MENU ": :" TYPE AND ENTER ""MENU"""
    1100 DISPLAY AT(16,3):"PRESS ANY KEY TO BEGIN." :: CALL KEY(0,K,S):: IF S=0 THEN 1100
    1110 DISPLAY AT(10,10)ERASE ALL:"CODER:" :: DISPLAY AT(12,1)BEEP:"ENTER YOUR MESSAGE TO CODE:": :"(TYPE AND ENTER ""MENU"" TO": :"RETURN.)"
    1120 LINPUT MSG$
    1130 IF MSG$="MENU" THEN 1430
    1140 M$(1)=SEG$(MSG$,1,60) :: M$(2)=SEG$(MSG$,61,120) :: M$(3)=SEG$(MSG$,121,180) :: M$(4)=SEG$(MSG$,181,240) :: M$(5)=SEG$(MSG$,241,300)
    1150 CALL CLEAR :: DISPLAY AT(1,3):"TRANSLATING IN PROGRESS"
    1160 FOR I=1 TO 5
    1170 FOR J=1 TO LEN(M$(I))
    1180 RESTORE 900
    1190 A$=SEG$(M$(I),J,1):: IF A$=" " THEN CODE$=" " :: GOTO 1250
    1200 FOR X=1 TO 52
    1210 READ L$,CODE$
    
    1220 IF A$=SEG$(L$,1,1)THEN 1250
    1230 NEXT X
    1240 IF A$<>L$ THEN CODE$="#"
    1250 CMSG$=CMSG$&CODE$&" "
    1260 FOR Z=1 TO LEN(CMSG$)
    1270 COL=COL+1 :: IF COL<=31 THEN 1280 ELSE ROW=ROW+2 :: COL=2
    1280 IF ROW>22 THEN ROW=3
    1290 CALL HCHAR(ROW,COL,ASC(SEG$(CMSG$,Z,1)))
    1300 NEXT Z
    1310 CMSG$=""
    1320 NEXT J
    1330 NEXT I
    1340 DISPLAY AT(1,1):" " :: DISPLAY AT(24,4):"TRANSLATION COMPLETED"
    1350 IF FLAG=0 THEN 1410
    1360 P$="" :: FOR X=2 TO 24 STEP 2 :: FOR Z=1 TO 32 :: CALL GCHAR(X,Z,M)
    1370 P$=P$&CHR$(M)
    1380 NEXT Z :: IF P$=RPT$(" ",32)THEN 1400
    1390 PRINT #3:P$ :: P$="" :: NEXT X
    1400 REM PRINTING COMPLETED
    1410 IF FLAG2=1 THEN CALL SOUNDER(2,2)
    1420 CALL KEY(0,K,S):: IF S=0 THEN 1420 ELSE ROW=2 :: COL=1 :: GOTO 1110
    1430 IF FLAG=0 THEN 1450
    1440 CLOSE #3
    1450 FLAG=0 :: PR$="" :: SUBEND
    1460 SUB DECODER :: MSG$=""
    1470 DISPLAY AT(10,1)BEEP ERASE ALL:"WOULD YOU LIKE THE DECODED": :"MESSAGES PRINTED-OUT (Y/N)?"
    1480 CALL KEY(3,K,S):: IF (K<>78)*(K<>89)THEN 1480
    1490 IF K=78 THEN FLAG=0 ELSE FLAG=1
    1500 IF FLAG=0 THEN 1530
    1510 DISPLAY "ENTER PRINTER NAME DEVICE" :: INPUT "NAME:":PR$
    1520 OPEN #4:PR$,OUTPUT
    1530 DISPLAY AT(10,1)BEEP ERASE ALL:"WOULD YOU LIKE THE CODED": :"MESSAGE SOUNDED-OUT (Y/N)?"
    1540 CALL KEY(3,K,S):: IF K<>78 AND K<>89 THEN 1540
    1550 IF K=89 THEN FLAG2=1 ELSE FLAG2=0
    1560 DISPLAY AT(2,1)ERASE ALL:"YOU ARE IN THE DECODING MODE" :: DISPLAY AT(5, 1):"PRESS ENTER FOR TRANSLATION"
    1570 DISPLAY AT(7,6):"""M"" TO RETURN TO MENU": :"FOR YOUR CONVENIENCE YOU": :"MAY USE A COMMA "","" TO PRINT"
    1580 DISPLAY AT(13, 1):"A DASH "" "" (OR USE FCTN U)"
    1590 DISPLAY AT(15,1):"YOU MUST LEAVE ONE SPACE": :"BETWEEN EACH LETTER, AND TWO": :"SPACES BETWEEN EACH WORD."
    1600 DISPLAY AT(22,3):"PRESS ANY KEY TO BEGIN"
    1610 CALL KEY(0,K,S):: IF S=0 THEN 1610
    1620 DISPLAY AT(4,10)BEEP ERASE ALL:"DECODER:" :: DISPLAY AT(6,1):"PRESS ENTER T0 TRANSLATE": :"PRESS M TO RETURN PRESS C TO CORRECT"
    1630 DISPLAY AT(12, 1):"ENTER YOUR MESSAGE:"
    1640 CALL KEY(3,K,S):: IF (K<>13)*(K<>32)*(K<>44)*(K<>46)*(K<>67)*(K<>77)*(K<>95)THEN 1640
    1650 IF K=67 AND MSG$="" THEN 1710 ELSE IF K=67 THEN MSG$=SEG$(MSG$, 1, LEN(MSG$)-1):: GOTO 1710
    1660 IF K=77 THEN 2010
    1670 IF K=44 THEN K=95
    1680 IF K=32 THEN CALL SOUND(111,1000,5,2000,4,3000,3)
    1690 IF K=13 THEN 1730
    1700 MSG$=MSG$&CHR$(K)
    1710 DISPLAY AT(14,1):MSG$
    1720 GOTO 1640
    1730 IF FLAG2=1 THEN CALL SOUNDER(14,1)
    1740 CALL CLEAR :: ROW=2 :: COL=2 :: T$="" :: CMSG$=""
    1750 DISPLAY AT(1,3):"TRANSLATING IN PROGRESS"
    1760 S=POS (MSG$," ",1) :: IF S=1 THEN T$=" " :: GOTO I860
    1770 IF S=0 THEN A$=MSG$ :: GOTO 1790
    1780 A$=SEG$(MSG$,1,S-1)
    
    1790 RESTORE 900
    1800 FOR I=1 TO 52
    1810 READ L$,CODE$
    1820 IF A$=CODE$ THEN 1850
    1830 NEXT I
    1840 T$="#" :: GOTO 1860
    1850 T$=SEG$(L$,1,1)
    1860 FOR Z=1 TO LEN(T$)
    1870 COL=COL+1
    1880 IF COL<=31 THEN 1890 ELSE ROW=ROW+2 :: COL=2
    1890 CALL HCHAR(ROW,COL,ASC(SEG$(T$,Z,1)))
    1900 IF S=0 THEN 1930
    1910 NEXT Z
    1920 MSG$=SEG$(MSG$,S+1,LEN(MSG$)):: GOTO 1760
    1930 DISPLAY AT(1,1):" " :: DISPLAY AT(24,3)BEEP:"TRANSLATION COMPLETED"
    1940 IF FLAG=0 THEN 2000
    1950 P$="" :: FOR X=2 TO 24 STEP 2 :: FOR Z=1 TO 32 :: CALL GCHAR(X,Z,M)
    1960 P$=P$&CHR$(M)
    1970 NEXT Z :: IF P$=RPT$(" ",32) THEN 1990
    1980 PRINT #4:P$ :: P$="" :: NEXT X
    1990 REM PRINTING COMPLETED
    2000 CALL KEY(0,K,S):: IF S=0 THEN 2000 ELSE MS6$="" :: GOTO 1620
    2010 IF FLAG=0 THEN 2030
    2020 CLOSE #4
    2030 SUBEND
    2040 SUB TEST(U())
    2050 SCORE, RIGHT=0 :: FOR I=1 TO 52 :: U(I)=0 :: NEXT I
    2060 DISPLAY AT(1,5)ERASE ALL:"SELF-TEST MODE:"
    2070 DISPLAY AT(3,1):"THE COMPUTER WILL RANDOMLY": :"SELECT 10 LETTERS, NUMBERS,": :"OR PUNCTUATION SYMBOLS CNO"
    2080 DISPLAY AT(9, 1):"FOREIGN LANGUAGE LETTERS3": :"AND YOU WILL NEED TO PROVIDEH": :"EITHER THE CORRECT CODE OR"
    2090 DISPLAY AT(15,1):"THE LETTER, NUMBER OR SYMBOL": :"THAT IS BEING DEFINED."
    2100 DISPLAY AT(19,1):"YOU WILL RECIEVE A SCORE AT": :"THE END OF THIS TEST.": :" PRESS ANY KEY TO START"
    2110 CALL KEY(0,K,S):: IF S=0 THEN 2110
    2120 DISPLAY AT(10,9)ERASE ALL:"TEST SET-UP" :: DISPLAY AT(12,9):"IN PROGRESS..." :: DISPLAY AT (14,7):"PLEASE STAND BY..."
    2130 REM SET-UP TEST
    2140 FOR I=1 TO 10
    2150 N=INT(52*RND+1)
    2160 IF (N>26)*(N<33)THEN 2150
    2170 IF U(N)=1 THEN 2150
    2180 U(N)=1
    2190 RESTORE 900
    2200 FOR RD=1 TO N
    2210 READ L$,CODE$
    2220 NEXT RD
    2230 IF RND>.45 THEN Q$(I)=CODE$ :: A$(I)=SEG$(L$,1,1) ELSE Q$(I)=SEG$(L$,1,1) :: A$(I)=CODE$
    2240 NEXT I
    2250 CALL CLEAR
    2260 FOR I=1 TO 10
    2270 IF SEG$(Q$(I),1,1)=" " AND A$(I)="..__._" OR SEG$(Q$(I),1,1)="." AND A$(I)="._._._" THEN DISPLAY AT(1*2-1,1):" CODE:" :: GOTO 2290
    2280 IF SEG$(Q$(I),1,1)="." OR SEG$(Q$(I),1,1)="_" THEN DISPLAY AT(I*2-1,1):"DECODE:" ELSE DISPLAY AT(I*2-1,1):" CODE:"
    2290 DISPLAY AT(I*2-1,9):Q$(I)
    2300 ACCEPT AT(I*2-1,16)BEEP:AN$
    2310 IF AN$<>A$(I) THEN CALL SOUND(110,220,2,330,3) :: DISPLAY AT(I*2,1):"THE RIGHT ANSWER IS ";A$(I)
    2320 IF AN$=A$(I)THEN DISPLAY AT(I*2, 1):"YOU ARE CORRECT!" :: RIGHT=RIGHT+1
    2330 NEXT I
    2340 SCORE=RIGHT*10 :: DISPLAY AT(22,4):"YOUR SCORE IS ";STR$(SCORE);"%"
    2350 DISPLAY AT(24,2):"PRESS ANY KEY TO CONTINUE"
    
    2360 CALL KEY(0,K,S):: IF S=0 THEN 2360
    2370 SUBEND
    2380 SUB SOUNDER(M,N)
    2390 FOR I=1 TO 300 :: NEXT I
    2400 DISPLAY AT(1,4):"NOW SOUNDING-OUT CODE" :: DISPLAY AT(24,1):""
    2410 FOR I=M TO 24 STEP N :: FOR J=2 TO 31 :: CALL GCHAR(I,J,C)
    2420 IF C=32 THEN CALL SOUND(250,42000,30):: X=X+1
    2430 IF X=5 THEN 2470
    2440 IF C=46 THEN CALL SOUND(150,2975,0) :: CALL SOUND(150,42000,30) :: X=0
    2450 IF C=95 THEN CALL SOUND(300,2125,1) :: CALL SOUND(150,42000,30) :: X=0
    2460 NEXT J :: NEXT I
    2470 DISPLAY AT(1,1):"" :: DISPLAY AT(24,4):"SOUND-OFF COMPLETED" :: X=0
    2480 SUBEND
    2490 END

     

     

    • Like 1
  5. LOL - TOTO - Africa!!! (Have to play around to find the best combo of instruments)

     

    Spoiler
    
    100 DATA 4250,1318,0,0,240,164,220,0,120,1318,0,0,120,164,220,0,120,1318,0,0,600,164,220,0
    110 DATA 240,146,195,0,2400,195,261,0,240,164,220,0,120,1318,0,0,120,164,220,0,120,1318,0,0
    120 DATA 600,164,220,0,240,146,195,0,2400,195,261,0,240,164,220,0,120,1318,0,0,120,164,220,0
    130 DATA 120,1318,0,0,600,164,220,0,240,146,195,0,2400,195,261,0,240,164,220,0,120,1318,0,0
    140 DATA 120,164,220,0,120,1318,0,0,600,164,220,0,240,146,195,0,2400,195,261,0,960,246,293,0
    150 DATA 480,233,261,0,480,220,261,0,1920,195,246,0,480,220,261,0,480,195,220,0
    160 DATA 960,195,246,0,960,174,246,0,240,164,220,0,120,261,0,0,120,164,220,0,120,261,0,0
    170 DATA 600,164,220,0,240,146,195,0,480,195,261,0,960,246,293,0,480,233,261,0,480,220,261,0
    180 DATA 1920,195,246,0,480,220,261,0,480,195,220,0,960,195,246,0,960,174,246,0
    190 DATA 240,164,220,0,120,261,0,0,120,164,220,0,120,261,0,0,600,164,220,0,240,146,195,0
    200 DATA 480,195,261,0,960,246,293,0,480,233,261,0,480,220,261,0,1920,195,246,0
    210 DATA 480,220,261,0,480,195,220,0,960,195,246,0,960,174,246,0,240,164,220,0,120,261,0,0
    220 DATA 120,164,220,0,120,261,0,0,600,164,220,0,240,146,195,0,480,195,261,0,960,246,293,0
    230 DATA 480,233,261,0,480,220,261,0,1920,195,246,0,240,164,220,0,120,523,659,0
    240 DATA 120,164,220,0,120,493,523,0,240,164,220,0,15,493,587,0,45,164,220,0,60,110,493,0
    250 DATA 240,164,220,0,240,146,195,0,2400,195,261,0,960,261,349,0,960,349,220,0
    260 DATA 960,329,220,0,720,329,195,0,240,329,246,0,960,261,349,0,960,349,220,0,960,329,220,0
    270 DATA 720,329,195,0,240,329,246,0,1920,220,349,0,960,220,440,0,960,195,246,0
    280 DATA 960,261,349,0,960,349,220,0,1920,261,329,0,960,164,195,0,45,174,174,0,195,246,174,0
    290 DATA 240,174,220,0,480,195,329,0,240,164,220,0,120,246,220,0,120,164,220,0,120,246,220,0
    300 DATA 600,164,220,0,240,246,146,0,1440,246,195,0,960,195,261,0,240,164,220,0
    310 DATA 120,1318,0,0,120,164,220,0,120,1318,0,0,600,164,220,0,240,146,195,0,2400,195,261,0
    320 DATA 960,246,293,0,960,233,261,0,1920,195,246,0,960,220,261,0,960,195,246,0
    330 DATA 960,174,246,0,240,164,220,0,120,261,1174,0,120,164,220,0,120,261,1174,0
    340 DATA 600,164,220,0,240,146,195,0,480,195,261,0,960,246,293,0,960,233,261,0,1920,195,246,0
    350 DATA 960,220,261,0,960,195,246,0,960,174,246,0,240,164,220,0,120,261,1174,0
    360 DATA 120,164,220,0,120,261,1174,0,600,164,220,0,240,146,195,0,480,195,261,0
    370 DATA 960,246,293,0,960,233,261,0,1920,195,246,0,240,164,220,0,120,659,1174,0
    380 DATA 120,164,220,0,120,659,1174,0,240,164,220,0,15,659,1174,0,45,164,220,0,60,110,659,0
    390 DATA 240,164,220,0,240,146,195,0,2400,195,261,0,960,220,440,0,960,220,293,0
    400 DATA 960,220,261,0,720,195,246,0,240,246,391,0,960,261,220,0,960,293,220,0,960,261,329,0
    410 DATA 480,329,391,0,240,329,440,0,240,329,391,0,960,220,440,0,960,220,293,0,960,220,261,0
    420 DATA 720,195,246,0,240,246,391,0,480,261,349,0,480,261,349,293,480,349,220,293
    430 DATA 480,349,329,1318
    440 ! Player code
    450 FOR I=1 to 185
    460 READ DUR,F1,F2,F3
    470 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 )
    480 NEXT I

     

     

    Ver. 2

     

    Spoiler
    
    100 DATA 4250,174,0,0,240,164,220,0,120,174,0,0,120,164,220,0,120,174,0,0,600,164,220,0
    110 DATA 240,146,195,0,240,195,261,0,120,195,261,698,120,195,261,659,120,195,261,523
    120 DATA 120,195,261,659,120,195,261,698,120,195,261,659,120,195,261,523,120,195,261,659
    130 DATA 120,195,261,523,120,195,261,659,120,195,261,523,120,195,261,493,120,195,261,523
    140 DATA 120,195,261,493,120,195,261,391,120,195,261,698,240,195,261,659,240,164,220,0
    150 DATA 120,659,0,0,120,164,220,0,120,659,0,0,600,164,220,0,240,146,195,0,240,195,261,0
    160 DATA 240,195,261,523,720,195,261,0,360,195,261,523,120,195,261,493,120,195,261,523
    170 DATA 120,195,261,493,120,195,261,391,120,195,261,698,240,195,261,659,240,164,220,0
    180 DATA 120,659,0,0,120,164,220,0,120,659,0,0,600,164,220,0,240,146,195,0,240,195,261,0
    190 DATA 120,195,261,698,120,195,261,659,120,195,261,523,120,195,261,659,120,195,261,698
    200 DATA 120,195,261,659,120,195,261,523,120,195,261,659,240,195,261,698,120,195,261,523
    210 DATA 120,195,261,493,120,195,261,523,120,195,261,493,480,195,261,523,240,164,220,0
    220 DATA 120,523,0,0,120,164,220,0,120,523,0,0,600,164,220,0,240,146,195,0,240,195,261,0
    230 DATA 120,195,261,698,120,195,261,659,120,195,261,523,120,195,261,659,120,195,261,698
    240 DATA 120,195,261,659,120,195,261,523,120,195,261,659,240,195,261,698,120,195,261,523
    250 DATA 120,195,261,493,120,195,261,523,120,195,261,493,120,195,261,523,120,195,261,659
    260 DATA 240,195,261,698,120,246,293,523,120,246,293,493,120,246,293,523,120,246,293,493
    270 DATA 120,246,293,391,120,246,293,698,240,246,293,659
    280 ! Player code
    290 FOR I=1 to 92
    300 READ DUR,F1,F2,F3
    310 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 )
    320 NEXT I

     

     

     

     

     

     

     

    • Like 1
  6. One of my fav classical music... Toccata & Fuge

    Not VERY good but it is OK.
     

    Spoiler
    
    100 DATA 180,880,440,0,540,783,880,0,1440,880,440,0,360,220,0,0,180,783,391,0,180,698,349,0
    110 DATA 180,659,329,0,180,587,293,0,360,554,277,0,2160,587,293,0,1680,220,0,0,120,440,220,0
    120 DATA 1080,391,440,0,720,440,220,0,360,220,0,0,360,329,164,0,360,349,174,0,360,277,138,0
    130 DATA 720,293,146,0,2520,220,0,0,180,220,110,0,180,220,195,0,360,220,220,0,1800,220,110,0
    140 DATA 180,220,195,0,180,220,174,0,180,220,164,0,180,220,146,0,360,138,138,0,720,146,146,0
    150 DATA 3240,220,0,0,1440,146,0,0,540,130,146,0,900,164,130,146,540,277,164,146
    160 DATA 4250,329,277,146,2160,293,146,146,720,174,146,0,4250,146,0,0,720,277,138,0
    170 DATA 480,293,146,0,480,329,164,0,480,261,130,0,480,293,146,0,480,329,164,0,480,261,130,0
    180 DATA 480,293,146,0,414,329,164,0,414,261,130,0,822,293,146,0,618,329,164,0,618,349,174,0
    190 DATA 480,391,195,0,480,329,164,0,480,349,174,0,480,391,195,0,480,329,164,0,480,349,174,0
    200 DATA 360,391,195,0,360,329,164,0,720,349,174,0,720,391,195,0,720,440,220,0,360,493,246,0
    210 DATA 360,391,195,0,720,440,220,0,360,493,246,0,360,391,195,0,720,440,220,0,360,493,246,0
    220 DATA 360,391,195,0,720,440,220,0,4250,146,0,0,720,554,277,0,480,587,293,0,480,659,329,0
    230 DATA 480,523,261,0,480,587,293,0,480,659,329,0,480,523,261,0,480,587,293,0,414,659,329,0
    240 DATA 414,523,261,0,822,587,293,0,618,659,329,0,618,698,349,0,480,783,391,0,480,659,329,0
    250 DATA 480,698,349,0,480,783,391,0,480,659,329,0,480,698,349,0,360,783,391,0,360,659,329,0
    260 DATA 720,659,698,0,360,783,698,0,360,783,391,0,360,880,783,0,360,880,440,0,360,987,493,0
    270 DATA 360,783,391,0,720,880,440,0,360,987,493,0,360,783,391,0,720,880,440,0,360,987,493,0
    280 DATA 360,783,391,0,1080,880,440,0,4250,146,0,0,720,880,440,0,480,783,391,0,480,987,493,0
    290 DATA 480,659,329,0,480,783,391,0,480,987,493,0,480,659,329,0,480,698,349,0,480,880,440,0
    300 DATA 480,587,293,0,480,698,349,0,480,880,440,0,480,587,293,0,480,659,329,0,480,783,391,0
    310 DATA 480,523,261,0,480,659,329,0,480,783,391,0,480,523,261,0,480,587,293,0,480,698,349,0
    320 DATA 480,698,493,0,480,698,587,0,480,698,698,0,480,698,493,0,480,698,523,0,216,659,261,0
    330 DATA 198,659,329,0,414,440,329,0,6,523,329,0,408,523,220,0,6,659,220,0,612,659,246,0
    340 DATA 6,440,246,0,318,440,293,0,90,440,195,0,552,493,195,0,66,493,246,0,252,587,246,0
    350 DATA 66,587,293,0,576,391,293,0,66,391,195,0,252,493,195,0,66,493,220,0,564,587,220,0
    360 DATA 78,587,261,0,318,391,261,0,630,440,261,0,12,523,440,0,318,523,261,0,642,523,349,0
    370 DATA 642,523,440,0,240,523,261,0,12,523,195,0,66,523,246,0,318,523,349,0,630,523,391,0
    380 DATA 12,391,246,0,480,493,246,0,480,493,329,0,480,493,391,0,480,493,493,0,480,493,329,0
    390 DATA 480,493,349,0,216,440,174,0,264,440,220,0,354,293,220,0,126,293,146,0,288,349,146,0
    400 DATA 192,349,164,0,426,440,164,0,54,440,195,0,264,293,195,0,216,293,138,0,426,329,138,0
    410 DATA 54,329,164,0,264,391,164,0,216,391,195,0,426,277,195,0,54,277,130,0,480,329,130,0
    420 DATA 108,391,130,0,252,391,0,0,336,261,0,0,690,261,146,0,54,261,130,146,264,130,146,0
    430 DATA 1896,130,164,146,720,261,130,146,540,391,261,146,4250,493,391,146,156,493,440,146
    440 DATA 204,493,440,0,360,493,391,0,180,493,349,0,180,349,261,0,360,329,261,0,360,293,261,0
    450 DATA 288,277,261,0,252,277,246,0,120,246,246,0,840,261,246,0,228,220,246,0,216,220,220,0
    460 DATA 276,220,220,195,480,261,220,195,180,220,174,195,288,329,220,195,72,329,246,195
    470 DATA 540,391,246,195,120,349,246,195,120,391,246,195,30,246,174,195,180,349,246,195
    480 DATA 198,391,246,195,36,349,391,195,36,349,391,0,72,349,246,0,36,391,246,0,108,391,261,0
    490 DATA 120,349,261,0,24,349,587,0,144,391,587,0,144,349,587,0,144,391,587,0,144,349,587,0
    500 DATA 144,587,329,0,144,391,587,0,72,329,587,0,504,329,523,0,144,329,293,0,3432,349,293,0
    510 DATA 1800,349,329,0,1104,261,329,0,540,440,261,0,156,440,523,0,24,659,440,0
    520 DATA 180,659,349,0,876,659,587,0,360,587,659,0,360,659,587,0,360,659,698,0,360,349,659,0
    530 DATA 360,349,783,0,708,349,659,0,372,349,659,146,360,587,698,146,360,659,587,146
    540 DATA 360,659,783,146,78,659,659,146,630,698,659,146,12,698,659,0
    550 ! Player code
    560 FOR I=1 to 261
    570 READ DUR,F1,F2,F3
    580 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 )
    590 NEXT I

     

     

  7. 29 minutes ago, SteveB said:

    It is the SF2 file in the ZIP. The manual describes two options to use it in MuseScore and how to activate it for your score.

     

     

    I looked at you YT and did what you did and then started to look for musicXML files to play with ? Your YT was so good that it got me started to play around with your tool (no need to read manual or anything else, hehehe).

    Again... very cool tool! Now I only need to get a hold of the notes for TOTO's music ? hehehehe

    Found this... cool in MuseScore3 with all the instruments... BUT can it be ported over to the TI and sound half decent ? hehehe (trying to understand how to do the sorting before your tool.)

    StIIPerMSco.musicxml

    IMSLP190146-WIMA.5926-StIIPerM-xml.zip


    PS! I am looking for the music in Elite and see if I can get it to sound OK on the TI.

    • Like 1
  8. Yes, but...

    I have tried and it is a good thing to have all 14 in your tool. Then I can test with 3 goes best together or only two. Just like in "Brandenburg Concerto No. 2 in F Major, BWV 1047 by Johann Sebastian Bach" I found all 4 to be a mess, 3... still messy, but in the end 2 of them fit together. So... to be able to play around and find what works together would be nice.

    BUT, where do I find the TI soundfont?

  9. Violin and Violocello sounds OK. To much with the others. The TI dos not handle it good or it dos not sound good.

    This is so cool!!!

     

    Spoiler
    
    100 DATA 250,146,0,0,250,220,0,0,250,174,0,0,250,220,0,0,250,440,146,0,250,440,220,0
    110 DATA 250,493,195,0,250,493,246,0,250,493,164,0,250,440,195,0,125,391,138,0,125,493,138,0
    120 DATA 250,440,164,0,250,349,146,0,250,349,220,0,250,329,174,0,250,293,220,0,250,698,146,0
    130 DATA 250,698,174,0,250,698,195,0,250,659,164,0,250,138,0,0,250,164,0,0,250,659,110,0
    140 DATA 125,698,130,0,125,783,130,0,250,659,146,0,250,587,110,0,250,174,0,0,250,110,0,0
    150 DATA 250,587,146,0,250,587,174,0,250,587,195,0,250,554,123,0,250,164,0,0,250,195,0,0
    160 DATA 250,523,110,0,250,523,220,0,250,554,146,0,250,587,220,0,250,174,0,0,250,220,0,0
    170 DATA 250,146,0,0,250,174,0,0,250,207,0,0,250,123,0,0,250,164,0,0,250,195,0,0
    180 DATA 250,349,110,0,250,349,146,0,250,349,164,0,250,329,246,0,250,207,0,0,250,246,0,0
    190 DATA 250,220,0,0,250,261,0,0,250,293,0,0,250,349,0,0,250,246,0,0,250,293,0,0
    200 DATA 250,195,0,0,250,246,0,0,250,261,0,0,250,329,0,0,250,220,0,0,250,261,0,0
    210 DATA 250,880,174,0,250,880,220,0,250,698,246,0,250,698,293,0,250,698,207,0,250,659,246,0
    220 DATA 125,587,164,0,125,698,164,0,250,659,329,0,250,587,220,0,250,523,261,0,250,493,174,0
    230 DATA 250,440,220,0,250,493,146,0,125,523,123,0,125,587,123,0,250,523,164,0,250,523,146,0
    240 DATA 250,523,164,0,500,493,164,0,250,523,164,0,250,493,110,0,250,440,164,0,250,130,0,0
    250 DATA 250,164,0,0,250,110,0,0,250,130,0,0,250,123,0,0,250,146,0,0,250,195,0,0
    260 DATA 250,123,0,0,500,130,0,0,250,174,0,0,250,110,0,0,250,195,0,0,250,123,0,0
    270 DATA 250,523,110,0,250,523,130,0,250,587,123,0,250,587,146,0,250,587,195,0,125,659,123,0
    280 DATA 125,698,123,0,125,659,130,0,125,783,130,0,250,698,261,0,250,698,174,0,250,698,220,0
    290 DATA 250,659,195,0,250,587,246,0,250,523,220,0,250,587,261,0,250,523,246,0,250,493,293,0
    300 DATA 250,195,0,0,250,246,0,0,250,493,138,0,125,523,164,0,125,587,164,0,250,493,146,0
    310 DATA 250,440,220,0,250,174,0,0,250,220,0,0,250,698,146,0,250,698,174,0,250,698,164,0
    320 DATA 250,659,174,0,250,880,195,0,250,783,195,0,250,698,195,0,250,783,195,0,250,659,130,0
    330 DATA 250,659,164,0,250,146,0,0,250,174,0,0,250,783,164,0,250,783,195,0,250,880,174,0
    340 DATA 250,880,146,0,250,880,123,0,250,783,146,0,125,698,195,0,125,880,195,0,250,783,123,0
    350 DATA 250,659,130,0,125,783,110,0,125,739,110,0,250,783,123,0,125,987,184,0,125,880,184,0
    360 DATA 250,987,195,0,250,987,123,0,250,987,130,0,250,880,155,0,250,110,0,0,250,130,0,0
    370 DATA 250,880,146,0,125,987,146,0,125,1046,146,0,250,880,195,0,250,783,164,0
    380 DATA 250,174,0,0,250,138,0,0,500,1174,146,0,250,1174,195,0,250,1108,246,0,250,164,0,0
    390 DATA 250,195,0,0,250,1046,220,0,250,1046,110,0,250,1108,146,0,250,1174,220,0
    400 DATA 250,174,0,0,250,220,0,0,250,440,146,0,250,440,174,0,250,493,195,0,250,493,246,0
    410 DATA 250,493,155,0,125,523,195,0,125,587,195,0,125,622,130,0,125,587,130,0,250,659,164,0
    420 DATA 250,440,174,0,250,440,220,0,250,391,146,0,250,349,174,0,250,493,123,0,250,493,146,0
    430 DATA 250,493,155,0,250,493,130,0,250,493,174,0,250,523,174,0,500,440,174,0,250,440,123,0
    440 DATA 250,493,174,0,250,146,0,0,250,174,0,0,250,123,0,0,250,146,0,0,250,174,0,0
    450 DATA 250,261,0,0,250,523,220,0,250,523,261,0,250,698,174,0,250,698,220,0,250,698,130,0
    460 DATA 250,622,195,0,250,155,0,0,250,195,0,0,250,659,130,0,250,659,164,0,250,622,195,0
    470 DATA 250,587,293,0,250,246,0,0,250,293,0,0,250,195,0,0,250,246,0,0,250,146,0,0
    480 DATA 250,220,0,0,250,184,0,0,250,220,0,0,250,987,195,0,250,987,246,0,250,987,261,0
    490 DATA 250,880,311,0,250,220,0,0,250,261,0,0,250,880,174,0,125,987,220,0,125,1046,220,0
    500 DATA 250,880,246,0,250,783,293,0,250,195,0,0,250,246,0,0,250,783,155,0,250,783,195,0
    510 DATA 250,783,220,0,250,739,261,0,250,184,0,0,250,220,0,0,250,698,146,0,250,698,293,0
    520 DATA 250,739,195,0,250,783,246,0,250,155,0,0,250,195,0,0,250,783,130,0,250,783,110,0
    530 DATA 250,783,146,0,250,783,130,0,250,783,146,0,250,880,146,0,125,587,146,0,125,783,146,0
    540 DATA 250,739,146,0,250,739,195,0,250,783,293,0,250,783,246,0,250,293,0,0,250,195,0,0
    550 DATA 250,493,246,0,250,493,138,0,250,493,164,0,250,440,110,0,250,130,0,0,250,146,0,0
    560 DATA 250,195,0,0,250,110,0,0,250,164,0,0,250,138,0,0,250,164,0,0,250,110,0,0
    570 DATA 250,659,130,0,250,659,146,0,250,659,220,0,250,587,174,0,250,220,0,0,250,146,0,0
    580 DATA 250,349,174,0,250,349,110,0,250,349,164,0,250,329,138,0,250,164,0,0,250,110,0,0
    590 DATA 250,130,0,0,250,146,0,0,250,220,0,0,250,174,0,0,250,220,0,0,250,146,0,0
    600 DATA 250,587,174,0,250,587,110,0,250,587,164,0,250,554,138,0,250,164,0,0,250,110,0,0
    610 DATA 250,523,130,0,250,523,146,0,250,554,220,0,250,587,184,0,250,220,0,0,250,146,0,0
    620 DATA 250,174,0,0,250,195,0,0,250,293,0,0,250,246,0,0,250,587,293,0,250,587,195,0
    630 DATA 250,698,246,0,250,698,130,0,250,698,195,0,250,659,164,0,250,195,0,0,250,130,0,0
    640 DATA 250,659,164,0,250,659,174,0,250,659,261,0,250,698,220,0,250,261,0,0,250,174,0,0
    650 DATA 250,220,0,0,250,123,0,0,250,174,0,0,250,146,0,0,250,698,174,0,250,698,123,0
    660 DATA 250,880,146,0,250,880,164,0,250,880,246,0,250,783,195,0,250,246,0,0,250,164,0,0
    670 DATA 250,987,195,0,250,987,110,0,250,987,164,0,250,880,138,0,250,164,0,0,250,110,0,0
    680 DATA 250,130,0,0,250,146,0,0,250,220,0,0,250,174,0,0,250,220,0,0,250,146,0,0
    690 DATA 250,440,174,0,250,440,195,0,250,493,246,0,250,493,164,0,250,493,195,0,250,440,130,0
    700 DATA 125,391,164,0,125,587,164,0,250,523,174,0,250,493,220,0,250,440,146,0,250,391,174,0
    710 DATA 250,349,123,0,250,329,146,0,250,293,164,0,250,391,195,0,250,391,138,0,250,391,164,0
    720 DATA 250,349,110,0,125,329,220,0,125,391,220,0,250,349,146,0,250,329,174,0,250,293,123,0
    730 DATA 250,146,0,0,250,195,0,0,250,987,164,0,250,987,110,0,250,987,195,0,250,880,110,0
    740 DATA 250,783,110,0,250,698,110,0,250,783,110,0,250,880,123,0,250,698,123,0,750,659,123,0
    750 DATA 250,698,123,0,500,587,123,0,250,587,110,0,125,659,110,0,125,698,110,0,250,440,110,0
    760 DATA 250,391,110,0,250,493,146,0,250,440,146,0,1000,369,146,0,500,369,0,0
    770 ! Player code
    780 FOR I=1 to 399
    790 READ DUR,F1,F2,F3
    800 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 )
    810 NEXT I

     

     

  10. Brandenburg Concerto No. 2 in F Major, BWV 1047 by Johann Sebastian Bach

    This is with Flute, Oboe, Violin and Violocello. Dos not sound great. BUT, it is cool that you can with musicXML get all this code for "free". Thx, @SteveB

    PS! Will try to take off instruments to see if I get a better sounding code.

     

    Spoiler
    
    100 DATA 250,146,0,0,250,220,0,0,250,174,0,0,250,220,0,0,250,440,146,0,250,440,220,0
    110 DATA 250,493,195,0,250,493,246,0,250,493,164,0,250,440,195,0,125,391,138,0,125,493,138,0
    120 DATA 250,440,164,0,250,349,146,0,250,349,220,0,250,329,174,0,250,293,220,0,250,440,698,146
    130 DATA 250,440,698,174,250,493,698,195,250,493,659,164,250,493,138,0,250,440,164,0
    140 DATA 125,391,659,110,125,493,659,110,125,440,698,130,125,440,783,130,250,349,659,146
    150 DATA 250,349,587,110,250,329,174,0,250,293,110,0,250,880,698,146,250,880,698,174
    160 DATA 250,987,698,195,250,987,659,123,250,987,164,0,250,880,195,0,125,783,659,110
    170 DATA 125,987,659,110,125,880,698,220,125,880,783,220,250,698,659,146,250,698,587,220
    180 DATA 250,659,174,0,250,587,220,0,250,880,349,146,250,880,349,174,250,987,349,207
    190 DATA 250,987,329,123,250,987,164,0,125,1046,195,0,125,1174,195,0,125,1046,349,110
    200 DATA 125,987,349,110,250,1046,349,146,250,830,349,164,250,830,329,246,250,739,207,0
    210 DATA 250,659,246,0,250,1046,659,220,250,1046,659,261,250,1046,698,293,250,987,698,349
    220 DATA 250,698,246,0,250,659,293,0,125,987,587,195,125,987,880,195,125,1046,783,246
    230 DATA 125,1174,783,246,250,987,698,261,250,880,659,329,250,587,220,0,250,523,261,0
    240 DATA 250,880,493,174,250,880,440,220,250,880,587,246,250,830,587,293,250,587,698,207
    250 DATA 250,523,659,246,125,783,493,164,125,783,587,164,250,783,523,329,250,830,493,220
    260 DATA 250,880,440,261,250,493,174,0,250,440,220,0,250,880,698,146,250,880,698,123
    270 DATA 250,880,698,164,250,880,659,146,250,880,587,164,250,987,523,164,125,659,587,164
    280 DATA 125,880,698,164,250,830,659,164,250,880,587,110,250,880,523,164,250,493,130,0
    290 DATA 250,440,164,0,250,1046,523,110,250,1046,523,130,250,1046,587,123,250,987,587,146
    300 DATA 250,587,195,0,125,659,123,0,125,698,123,0,125,987,659,130,125,987,783,130
    310 DATA 125,1046,698,130,125,1174,698,130,250,987,698,174,250,880,698,110,250,659,195,0
    320 DATA 250,587,123,0,250,880,523,110,250,880,587,130,250,880,523,123,250,783,493,146
    330 DATA 250,587,195,0,125,659,123,0,125,698,123,0,250,783,493,130,125,880,523,261
    340 DATA 125,987,587,261,250,783,493,174,250,698,440,220,250,659,195,0,250,587,246,0
    350 DATA 250,1046,440,220,250,1046,440,261,250,1174,440,246,250,1174,391,293,250,1174,195,0
    360 DATA 125,1318,246,0,125,1396,246,0,125,1318,391,138,125,1567,391,138,125,1396,440,164
    370 DATA 125,1396,493,164,250,1396,391,146,250,1396,349,220,250,1318,174,0,250,1174,220,0
    380 DATA 250,1046,587,146,250,987,587,174,250,1567,587,164,250,1567,523,174,250,1396,523,195
    390 DATA 250,1318,493,195,250,1174,493,195,125,1046,440,195,125,1046,493,195,250,1046,523,130
    400 DATA 250,1046,523,164,250,146,0,0,250,174,0,0,250,783,164,0,250,783,195,0,250,880,174,0
    410 DATA 250,880,146,0,250,880,123,0,250,783,146,0,125,698,195,0,125,880,195,0,250,783,123,0
    420 DATA 250,659,130,0,125,783,110,0,125,739,110,0,250,783,123,0,125,987,184,0,125,880,184,0
    430 DATA 250,1174,987,195,250,1174,987,123,250,1244,987,130,250,1244,880,155,250,1244,110,0
    440 DATA 250,1174,130,0,125,1046,880,146,125,1318,880,146,125,1174,987,146,125,1174,1046,146
    450 DATA 250,1046,880,195,250,987,783,164,125,1174,174,0,125,1108,174,0,250,1174,138,0
    460 DATA 125,1396,440,146,125,1318,440,146,250,1396,440,146,250,1396,493,195,250,1396,493,246
    470 DATA 250,1318,493,164,250,440,195,0,125,391,1046,220,125,493,1046,220,250,1318,440,110
    480 DATA 125,1396,349,146,125,1567,349,146,250,1318,349,220,250,1174,329,174,250,293,220,0
    490 DATA 250,698,440,146,250,698,440,174,250,698,493,195,250,622,493,246,250,493,155,0
    500 DATA 125,523,195,0,125,587,195,0,125,659,622,130,125,659,587,130,125,698,659,164
    510 DATA 125,783,659,164,250,622,440,174,250,587,440,220,250,391,146,0,250,349,174,0
    520 DATA 250,587,493,123,250,1396,587,146,250,1396,587,155,250,1567,523,130,250,1567,493,174
    530 DATA 250,1567,523,174,250,1396,523,174,125,1244,587,174,125,1567,622,174,250,1396,523,123
    540 DATA 250,1244,493,174,250,1174,698,146,250,698,174,0,250,987,123,0,250,587,987,146
    550 DATA 250,587,987,174,250,587,880,261,250,523,523,220,250,523,261,0,250,880,698,174
    560 DATA 250,880,698,220,250,880,698,130,250,783,622,195,250,155,0,0,250,783,195,0
    570 DATA 250,783,659,130,250,1046,659,164,250,1046,622,195,250,1046,587,293,250,987,587,246
    580 DATA 250,587,293,0,250,783,195,0,250,987,783,246,250,987,783,146,250,987,739,220
    590 DATA 250,880,184,0,250,220,0,0,250,987,195,0,250,1174,987,246,250,1174,987,261
    600 DATA 250,1244,880,311,250,1244,220,0,250,1244,261,0,250,1174,880,174,125,1046,987,220
    610 DATA 125,1567,1046,220,250,1396,880,246,250,1244,783,293,250,1174,195,0,250,1046,246,0
    620 DATA 250,987,587,155,250,880,587,195,250,783,622,220,250,1046,622,261,250,1046,622,184
    630 DATA 250,1046,587,220,125,987,523,146,125,987,659,146,125,880,587,293,125,1046,587,293
    640 DATA 250,987,523,195,250,880,493,246,250,783,440,155,250,391,195,0,250,440,783,130
    650 DATA 125,1244,493,110,125,1244,523,110,250,1244,493,146,250,1244,493,130,250,1174,493,146
    660 DATA 250,1046,440,146,250,987,440,146,125,1046,493,146,125,1318,493,146,250,1174,391,195
    670 DATA 250,1046,391,293,250,987,783,246,250,880,293,0,250,783,587,195,250,587,493,246
    680 DATA 250,659,493,138,250,659,493,164,250,659,440,110,125,698,130,0,125,783,130,0
    690 DATA 125,698,146,0,125,659,146,0,250,493,698,195,250,493,554,110,250,493,554,164
    700 DATA 250,440,493,138,250,440,164,0,250,110,0,0,250,783,659,130,250,783,659,146
    710 DATA 250,783,659,220,250,698,587,174,250,220,0,0,250,587,146,0,250,587,349,174
    720 DATA 250,587,349,110,250,554,349,164,250,329,138,0,250,164,0,0,250,659,110,0
    730 DATA 250,391,659,130,250,391,659,146,250,391,587,220,250,349,174,0,250,220,0,0
    740 DATA 250,146,0,0,250,698,587,174,250,698,587,110,250,698,587,164,250,659,329,138
    750 DATA 250,329,164,0,250,391,110,0,250,391,523,130,250,391,523,146,250,369,554,220
    760 DATA 250,587,184,0,250,880,220,0,250,880,739,146,250,1046,739,174,250,1046,739,195
    770 DATA 250,1046,783,293,250,987,246,0,250,587,293,0,250,587,195,0,250,987,698,246
    780 DATA 250,987,698,130,250,987,698,195,250,1046,391,164,250,391,195,0,250,466,130,0
    790 DATA 250,466,659,164,250,493,659,174,250,440,659,261,250,698,220,0,250,523,261,0
    800 DATA 250,523,440,174,250,622,440,220,250,622,440,123,250,622,493,174,250,587,146,0
    810 DATA 250,698,174,0,250,698,123,0,250,698,880,146,250,698,880,164,250,698,880,246
    820 DATA 250,659,987,195,250,987,246,0,250,587,164,0,250,587,987,195,250,587,987,110
    830 DATA 250,554,987,164,250,880,138,0,250,659,164,0,250,659,659,110,250,783,659,130
    840 DATA 250,783,659,146,250,783,587,220,250,698,174,0,250,220,0,0,250,146,0,0,250,698,440,174
    850 DATA 250,698,440,195,250,698,493,246,250,659,493,164,250,493,195,0,250,440,130,0
    860 DATA 125,659,391,164,125,659,587,164,125,698,523,174,125,783,523,174,250,659,493,220
    870 DATA 250,587,440,146,250,391,174,0,250,1174,349,123,250,587,1174,146,250,587,987,164
    880 DATA 250,587,987,195,250,554,987,138,250,880,391,164,125,783,349,110,125,987,349,110
    890 DATA 250,523,880,220,250,523,783,146,250,554,698,174,250,587,659,123,250,587,146,0
    900 DATA 250,659,195,0,125,587,698,164,125,587,783,164,250,587,698,110,250,587,698,195
    910 DATA 250,587,698,110,250,587,659,110,250,659,659,110,125,440,698,110,125,587,698,110
    920 DATA 250,554,554,123,500,783,554,123,125,783,587,123,125,987,587,123,250,880,415,123
    930 DATA 250,783,415,123,250,698,391,123,250,698,440,123,125,698,349,110,125,554,349,110
    940 DATA 250,587,349,110,250,587,329,110,250,587,293,110,375,523,293,146,1125,587,293,146
    950 DATA 500,587,369,0
    960 ! Player code
    970 FOR I=1 to 433
    980 READ DUR,F1,F2,F3
    990 IF F2=0 THEN CALL SOUND(DUR,F1,0 ) ELSE IF F3=0 THEN CALL SOUND(DUR,F1,0 ,F2,0 ) ELSE CALL SOUND(DUR,F1,0 ,F2,0 ,F3,0 )
    1000 NEXT I

     


     

  11. 18 hours ago, dhe said:

    HeyBirt did a great video on from "Prototype to Product" using PCBWAY.

    Typically you need to order some number of units, pay up front and then they ship to you the desired number of units built.

    If someone wanted to up front the cash and be a stocking distributor that might be a way to go...

     

     

    It would be cool to make a modern PEB. Not Floppy, but SD. Setup for modern printer, wireless and what not. And then use the same system. AND make it so that new stuff can be added to it. Also connection for Raspberry Pi. All into a smaller PEB. But I guess it is to much for one person to do. But this YT makes me dream ?

  12. 6 hours ago, TheBF said:

    Norwegian is almost readable to me a I can hear some of it too, because I speak Dutch (Nederlands) by marriage. :) 

    I enjoy watching this series for different languages on Youtube. Here is the Nordic family.  Islandic  wow! 

     

    Can they understand Norwegian without prior learning? | Norwegian vs Danish vs Swedish vs Icelandic - YouTube

     

    Norwegian, Danish and Swedish is really the same language. Even if everyone will say it is different. But the fact is is the same language, BUT with different dialects.

    Icelandic is how they spoke in Norway some 1000 years ago. And I guess more or less as in Sweden and Denmark, at that time. But, it has not changed that much. The Icelandic language have been able to keep its roots.

    Norwegian, Danish and Swedish have had a lot of influence from Europa and then we have had some "drift" in the Norwegian, Danish and Swedish languages. Norway was under Danish rule, so our written language is very similar, just a few words are different. Then Norway was under Swedish rule, so Norwegians and Sweden understand one and other much better, but do not share so many written words. Norway has good connections to all the others. But that cant be said for the others towards each other.


    Also, IF you speak Dutch >not to fast<, I am able to understand more.

    My name is Odd and English has bastardised my name. They have the gist if it, but not all there. Odd means sharp, pointy or spear. So we have places called "NesODDen" (but the irony is that Nes is ALSO a name for land that sticks out and the "en" at the end means "one" or "THAT one"), and that means a part of the land sticks out. Florida would be a "Odde" (here "e" at the end is kinda the same as "en" or one). So... something that stick's out and since the English did not get ALL the meaning of Odd, they use it on people. Not on things, like we do. So, Odd is an old Viking name, that was carried to England and so to we (The Vikings) shared out language with the world ?

    The very first thing (to get it back on the TI) I did with my brand new TI in the 80's, was to write my name to it... and I got back, "Don't understand!" So me and TI got of on the "wrong" foot. I am pretty sure the TI was trying to insult me. And writing more to it did not help. So, I had to learn IT'S language. I am pretty sure my TI still thinks I am a moron at times... based on its feedback. My "pronunciation" is not always the best ? hehehehe (even here).

    BUT... making this program, it has only called me "moron" a hand-full of times and others times... not done what I wanted it to do! Probably a
    "pronunciation" problem ?

    • Like 3
  13. It was a early morning on The Flying Seagull when Tiny Inkwood (Well for a pirate Tiny is not the best name so everyone called him TI, there is a reason for Jimmy the Shark always was hanging around, if you get the "drawing", but anyway, back to Tin... err TI...) was looking out over the ocean, this lovely morning. And was thinking... "What a great day to be a pirate! A seagull and it would all be perfect".

    Last ver. with a new actor in the game! Thx to @TheBF
     

    Spoiler
    
    10 CALL CLEAR
    20 CALL MAGNIFY(3)
    
    80 CALL CHAR(112,"FFFFFFFFFFFFFFFF")
    90 REM SHIP
    100 REM Venstre topp
    110 CALL CHAR(36,"0000000000FF000000000000000000000704020100FF01020404080810204040")
    120 REM Høyre topp
    130 CALL CHAR(40,"F090A0C080FFC0A090908888848281810000000000FF00000000000000000000")
    140 REM Venstre mid
    150 CALL CHAR(44,"00000101020204087F1F0F0818080F078181010139013913FFFFFF888888FFFF")
    160 REM Høyre mid
    170 CALL CHAR(48,"C0C0C0C0CEC0CEE4FFFFFF888888FFFF8080404020201008FFFCFC888C88F8F0")
    180 REM Venstre bunn
    190 CALL CHAR(52,"03010000000000000000000000000000FFFFFFFF000000000000000000000000")
    200 REM Høyre bunn
    210 CALL CHAR(56,"FFFFFFFF000000000000000000000000E0C08000000000000000000000000000")
    
    220 REM SAIL
    230 REM SAIL LEFT UP
    240 CALL CHAR(64,"00000000000000FF7F7F7F7F7F7F7F7F00000000000000FDFFFFFFFFFFFFFFFF")
    250 REM SAIL RIGHT UP
    260 CALL CHAR(68,"000000000000005FFFFFFFFFFFFFFFFF00000000000000FFFEFEFEFEFEFEFEFE")
    270 REM SAIL LEFT DOWN
    280 CALL CHAR(72,"7F7F7F7F7F7F7F000000000000000000FFFFFFFFFFFFFF000000000000000000")
    290 REM SAIL RIGHT DOWN
    300 CALL CHAR(76,"FFFFFFFFFFFFFF000000000000000000FEFEFEFEFEFEFE000000000000000000")
    
    310 REM LIGHT
    320 REM LEFT WINDOWS
    330 CALL CHAR(80,"0000000707070000000000000000000000000077777700000000000000000000")
    340 REM RIGHT WINDOWS
    350 CALL CHAR(84,"0000007777770000000000000000000000000070707000000000000000000000")
    
    360 REM WAKE
    370 CALL CHAR(96,"2940245108101000224252142004040048244829A28024888850042848400000")
    380 CALL CHAR(100,"004429402451081214002A4212140000842048244829A2802488885000204000")
    390 CALL CHAR(104,"2524104429402451081214000A0202041020842048244829A280248880400000")
    400 CALL CHAR(108,"4400252410442940240108020400020248441020842048244828A08020808040")
    
    405 REM SUN
    410 CALL CHAR(120,"20211013070F1FDF1F1F0F0713204040840404C8E0F0F9FAF8F8F0E0D0088482")
    420 CALL CHAR(124,"00804033070F1F9F5F1F0F0763800911808007C8E0F0F8F8FBF8F0E0CC030000")
    430 CALL CHAR(128,"81412013070F1F1FDF1F0F0713204080010204C8E0F0F8FBF8F8F0E0C8048281")
    440 CALL CHAR(132,"00816013070F1FDF1F1F0F0713608100820404C8E0F0F8F9FAF8F0E0C8040482")
    
    445 REM SHARK
    450 CALL CHAR(136,"0000000000000000000010181C3E3EFF00000000000000000000000000000000")
    460 CALL CHAR(140,"000000000000000000000818387C7CFF00000000000000000000000000000000")
    
    770 CALL COLOR(11,5,1)
    780 FOR A=19 TO 24
    790 CALL HCHAR(A,1,112,32)
    800 NEXT A
    
    810 REM SAIL
    820 CALL SPRITE(#11,64,15,112,112,0,0)
    830 CALL SPRITE(#12,68,15,112,128,0,0)
    840 CALL SPRITE(#13,72,15,128,112,0,0)
    850 CALL SPRITE(#14,76,15,128,128,0,0)
    
    910 REM SHIP
    920 CALL SPRITE(#1,36,2,112,112,0,0)
    930 CALL SPRITE(#2,40,2,112,128,0,0)
    940 CALL SPRITE(#3,44,2,128,112,0,0)
    950 CALL SPRITE(#4,48,2,128,128,0,0)
    960 CALL SPRITE(#5,52,2,144,112,0,0)
    970 CALL SPRITE(#6,56,2,144,128,0,0)
    
    1010 REM LIGHT
    1020 CALL SPRITE(#7,80,11,136,112,0,0)
    1030 CALL SPRITE(#8,84,11,136,128,0,0)
    1032 REM CALL SPRITE(#9,81,11,148,120,0,0)
    1034 REM CALL SPRITE(#10,82,11,148,128,0,0)
    
    1040 REM Wake
    1050 CALL SPRITE(#15,96,6,148,120,0,0)
    1060 FOR A=96 TO 108 STEP 4
    1070 CALL PATTERN(#15,A)
    
    1071 CALL SPRITE(#28,136,15,160,75,0,2)
    1072 IF RND>0.5 THEN GOSUB 7010 ELSE GOSUB 8040
    1073 IF RND>0.95 THEN GOSUB 6020
    
    1140 REM SUN
    1150 CALL SPRITE(#9,120,11,32,32,0,0)
    1160 B=A+24
    1170 CALL PATTERN(#9,B)
    1180 FOR DELAY=1 TO 5 :: NEXT DELAY
    1190 NEXT A
    
    5000 GOTO 1060
    
    6000 REM JAWS
    6020 CALL SOUND(400,110,8)
    6030 CALL SOUND(400,118,8)
    6999 RETURN
    
    7000 REM  MOVEFIN LEFT
    7010 CALL PATTERN(#28,136) :: CALL MOTION(#28,0,2)
    7020 RETURN
    
    8030 REM  MOVE FIN RIGHT
    8040 CALL PATTERN(#28,140) :: CALL MOTION(#28,0,-2)
    8050 RETURN

     

     

    • Like 3
  14. And NOW... With Sun!!!

     

    Spoiler
    
    10 CALL CLEAR
    20 CALL MAGNIFY(3)
    
    80 CALL CHAR(112,"FFFFFFFFFFFFFFFF")
    90 REM SHIP
    100 REM Venstre topp
    110 CALL CHAR(36,"0000000000FF000000000000000000000704020100FF01020404080810204040")
    120 REM Høyre topp
    130 CALL CHAR(40,"F090A0C080FFC0A090908888848281810000000000FF00000000000000000000")
    140 REM Venstre mid
    150 CALL CHAR(44,"00000101020204087F1F0F0818080F078181010139013913FFFFFF888888FFFF")
    160 REM Høyre mid
    170 CALL CHAR(48,"C0C0C0C0CEC0CEE4FFFFFF888888FFFF8080404020201008FFFCFC888C88F8F0")
    180 REM Venstre bunn
    190 CALL CHAR(52,"03010000000000000000000000000000FFFFFFFF000000000000000000000000")
    200 REM Høyre bunn
    210 CALL CHAR(56,"FFFFFFFF000000000000000000000000E0C08000000000000000000000000000")
    
    220 REM SAIL
    230 REM SAIL LEFT UP
    240 CALL CHAR(64,"00000000000000FF7F7F7F7F7F7F7F7F00000000000000FDFFFFFFFFFFFFFFFF")
    250 REM SAIL RIGHT UP
    260 CALL CHAR(68,"000000000000005FFFFFFFFFFFFFFFFF00000000000000FFFEFEFEFEFEFEFEFE")
    270 REM SAIL LEFT DOWN
    280 CALL CHAR(72,"7F7F7F7F7F7F7F000000000000000000FFFFFFFFFFFFFF000000000000000000")
    290 REM SAIL RIGHT DOWN
    300 CALL CHAR(76,"FFFFFFFFFFFFFF000000000000000000FEFEFEFEFEFEFE000000000000000000")
    
    310 REM LIGHT
    320 REM LEFT WINDOWS
    330 CALL CHAR(80,"0000000707070000000000000000000000000077777700000000000000000000")
    340 REM RIGHT WINDOWS
    350 CALL CHAR(84,"0000007777770000000000000000000000000070707000000000000000000000")
    
    360 REM WAKE
    370 CALL CHAR(96,"2940245108101000224252142004040048244829A28024888850042848400000")
    380 CALL CHAR(100,"004429402451081214002A4212140000842048244829A2802488885000204000")
    390 CALL CHAR(104,"2524104429402451081214000A0202041020842048244829A280248880400000")
    400 CALL CHAR(108,"4400252410442940240108020400020248441020842048244828A08020808040")
    
    410 CALL CHAR(120,"20211013070F1FDF1F1F0F0713204040840404C8E0F0F9FAF8F8F0E0D0088482")
    420 CALL CHAR(124,"00804033070F1F9F5F1F0F0763800911808007C8E0F0F8F8FBF8F0E0CC030000")
    430 CALL CHAR(128,"81412013070F1F1FDF1F0F0713204080010204C8E0F0F8FBF8F8F0E0C8048281")
    440 CALL CHAR(132,"00816013070F1FDF1F1F0F0713608100820404C8E0F0F8F9FAF8F0E0C8040482")
    
    770 CALL COLOR(11,5,1)
    780 FOR A=19 TO 24
    790 CALL HCHAR(A,1,112,32)
    800 NEXT A
    
    810 REM SAIL
    820 CALL SPRITE(#11,64,15,112,112,0,0)
    830 CALL SPRITE(#12,68,15,112,128,0,0)
    840 CALL SPRITE(#13,72,15,128,112,0,0)
    850 CALL SPRITE(#14,76,15,128,128,0,0)
    
    910 REM SHIP
    920 CALL SPRITE(#1,36,2,112,112,0,0)
    930 CALL SPRITE(#2,40,2,112,128,0,0)
    940 CALL SPRITE(#3,44,2,128,112,0,0)
    950 CALL SPRITE(#4,48,2,128,128,0,0)
    960 CALL SPRITE(#5,52,2,144,112,0,0)
    970 CALL SPRITE(#6,56,2,144,128,0,0)
    
    1010 REM LIGHT
    1020 CALL SPRITE(#7,80,11,136,112,0,0)
    1030 CALL SPRITE(#8,84,11,136,128,0,0)
    1032 REM CALL SPRITE(#9,81,11,148,120,0,0)
    1034 REM CALL SPRITE(#10,82,11,148,128,0,0)
    
    1040 REM Wake
    1050 CALL SPRITE(#15,96,6,148,120,0,0)
    1060 FOR A=96 TO 108 STEP 4
    1070 CALL PATTERN(#15,A)
    1080 FOR DELAY=1 TO 100 :: NEXT DELAY
    
    
    1140 REM SUN
    1150 CALL SPRITE(#9,120,11,32,32,0,0)
    1160 B=A+24
    1170 CALL PATTERN(#9,B)
    1180 FOR DELAY=1 TO 5 :: NEXT DELAY
    1190 NEXT A
    
    
    5000 GOTO 1050

     

     

×
×
  • Create New...