Author Topic: Locomotive BASIC - ZUFA SOUND DEMO  (Read 403 times)

0 Members and 1 Guest are viewing this topic.

Offline ComSoft6128

  • ..................................
  • Supporter
  • 6128 Plus
  • *
  • Posts: 2.317
  • Country: scotland
  • CPC THEN CPC NOW
    • index.php?action=treasury
  • Liked: 2539
  • Likes Given: 4865
Locomotive BASIC - ZUFA SOUND DEMO
« on: 19:37, 02 May 21 »
Well now, what is happening here?

German demo from 19??
Program (what program?) is Listed at the end of the video.


https://www.youtube.com/watch?v=KK0a9Rqitx4

Link:

https://www.cpc-power.com/index.php?page=detail&num=16693

Not emulated - original hardware and software.

Please note that  the aspect ratio for this YouTube video is 16:9 but the CPC monitor
has an aspect ratio of 4:3 so you may wish to adjust your viewing device accordingly.

Offline Urusergi

  • CPC6128
  • ****
  • Posts: 248
  • Country: es
  • Liked: 498
  • Likes Given: 1781
Re: Locomotive BASIC - ZUFA SOUND DEMO
« Reply #1 on: 21:37, 02 May 21 »
Very curious basic protection  8)


Code: [Select]
10 MODE 0
20 CLS:df=0
30 PRINT"DIES IST EIN REINES"   
40 LOCATE 4,3:PRINT"'SOUND'-DEMO"
50 LOCATE 4,5:PRINT"MARKE NORBERT" 
60 LOCATE 5,9:PRINT"...ODER EINE "
70 LOCATE 5,11:PRINT"HYMNE AN 'RND',"
80 LOCATE 5,13:PRINT"'ENV','ENT'"
82 EVERY 5,1 GOSUB 5000     
90 'ON BREAK GOSUB 520     
100 '
110 i=i+13
120 j=j+50
130 k=k+1 
140 PEN 2:INK 2,k+5:LOCATE 5,19:PRINT"DAUER CA.1 MIN"     
150 l=l+1 
160 n=n+6
170 g=g+50
180 ENT 7,100,-l,9   
190 ENT 1,l,-k+3,9   
200 ENV 1,100,l,k+1
210 ENV 2,n/2,-k,k+1     
220 ENT 3,n,k,l+2
230 ENV 3,n,-l,l+1 
240 ENV 4,70,2,l
250 ENV 5,l,-3,9     
260 ENV 6,10,l,k+2     
270 ENV 7,n,l,l+1     
280 ENV 8,n,-k*3,l+1
290 ENT 4,50,9,l
300 ENT 5,10,-l*5+5,7   
310 ENT 6,n,l,k
320 ENT 2,l,1,3     
330 ENT 8,n,5,5
340 IF n>100 THEN n=1       
350 IF k>8 THEN k=1:IF k<-8 THEN k=1
360 IF l>10 THEN l=1:IF l<-10 THEN l=1
370 IF g>2000 THEN g=20
380 SOUND 1,INT (RND(i)*2000), INT(RND(j)*150),8,1,1     
390 SOUND 2,INT (RND(j)*1500), INT(RND(i)*200),8,INT (RND(k)*10),INT (RND(l)*10)
400 SOUND 1,INT (RND(j)*250),30,k+2,2
410 SOUND 2,INT (RND(j)*100),INT (RND(n)*100),8,k+1,2,1   
420 SOUND 4,g,35,k,l,k+3 
430 SOUND 1,250,n,8,k,3,k     
440 SOUND 2,400,80,l+3,2
450 SOUND 4,1200,258,8,1,l 
460 SOUND 1,g,INT(RND(k)*l0),8,INT (RND(k)*10),INT (RND(l)*10)     
470 SOUND 2,g,40,l+1,2,1   
480 SOUND 4,500,98,k+2,k,2       
490 SOUND 1,INT (RND(i)*1700),INT(RND(i)*250),8,INT (RND(k)*4),INT (RND(l)*6) 
500 SOUND 2,g/2,n,8,k,3
510 SOUND 4,400,98,k+2,2
520 ke=ke+1:IF ke<2 THEN GOTO 100 ELSE GOTO 530       
530 GOTO 570       
540 CLS:LOCATE 1,9:PRINT"GRAUENVOLL"
550 LOCATE 1,11:PRINT"NIChT WAHR ?-"
560 LOCATE 1,12:PRINT CHR$(32)
570 '
580 GOTO 590
590 '
600 '
610 'ON BREAK GOSUB 540           
620 '
630 LOCATE 4,3:PRINT" 'SOUND'-DEMO"
640 i=i+10
650 j=j+400
660 k=k+1 
670 l=l+1 
680 n=n+4
690 g=g+70
700 ENT 7,100,-l,k       
710 ENT 1,INT(RND(n)*4),1,8   
720 ENV 1,100,INT(RND(l)*3),INT(RND(k)*7)+1       
725 BORDER k
730 ENV 2,n/2,-k,5
740 ENT 3,INT(RND(n)*4),INT(RND(k)*8),INT(RND(l)*9)         
750 ENV 3,n/5,-l,l+1     
760 ENV 4,INT(RND(n+7)*12),2,4       
770 ENV 5,8,-9,9       
780 ENV 6,INT(RND(l)*12),INT(RND(k+2)*5),3   
790 ENV 7,INT(RND(n)*9),l,l+1
800 ENV 8,INT(RND(n)*12),-k*3,l+1   
810 ENT 4,50,9,INT(RND(l)*2) 
820 ENT 5,10,-l*5+5,7   
830 ENT 6,3,INT(RND(l)*13),6     
840 ENT 2,n*3,-9,3
850 ENT 8,INT(RND(n)*20),5,5       
860 IF n>100 THEN n=1       
870 IF n<1 THEN n=-5
880 IF k>8 THEN k=1
890 IF k<-8 THEN k=1
900 IF l>10 THEN l=1
910 IF l<-10 THEN l=1
920 IF g>2000 THEN g=50
930 IF g<10 THEN g=10
940 SOUND 1,INT (RND(i)*2000)+5, INT(RND(j)*150)+17,8,1,1       
950 LOCATE 4,3:PRINT"'SOUND'-DEMO "
960 SOUND 1,INT (RND(i)*200)+5, INT(RND(j)*400)+5,7 
965 BORDER l
970 LOCATE 4,3:PRINT" 'SOUND'-DEMO" 
980 SOUND 2,INT (RND(j)*15)+6, INT(RND(i)*300)+10,8,1,INT (RND(l)*10)     
990 LOCATE 4,3:PRINT"'SOUND'-DEMO "
1000 SOUND 1,INT (RND(j)*250)+20,15,k+2,2       
1010 LOCATE 4,3:PRINT" 'SOUND'-DEMO" 
1020 SOUND 2,INT (RND(j)*300)+3,INT (RND(n)*80)+10,8,INT (RND(k)*3),INT (RND(k)*2),2         
1025 BORDER l+10
1030 LOCATE 4,3:PRINT"'SOUND'-DEMO "
1040 SOUND 2,INT (RND(j)*100)+20,20,7,k,1   
1050 SOUND 4,g+3,35,k,l,k+3       
1060 LOCATE 4,3:PRINT" 'SOUND'-DEMO"   
1070 SOUND 1,250,n+10,8,k,3,k   
1080 SOUND 2,400,50,l+3,2         
1090 LOCATE 4,3:PRINT"'SOUND'-DEMO "
1100 SOUND 4,1200,65,8,1,l       
1110 SOUND 1,g+6,INT(RND(k)*l0)+10,8,2,INT (RND(l)*10)       
1120 SOUND 2,g+3,100,l+1,k,l     
1130 LOCATE 4,3:PRINT" 'SOUND'-DEMO" 
1140 SOUND 4,500,98,k+2,k,2     
1150 SOUND 1,INT (RND(i)*1700)+2,INT(RND(i)*500)+30,8,INT (RND(k)*4),INT (RND(l)*6)   
1160 SOUND 2,g/2+4,n,8,k,3       
1170 SOUND 4,400,38,k+2,2     
1180 kb=kb+1:IF kb<4 THEN GOTO 620 ELSE GOTO 1190       
1190 GOTO 1230       
1200 CLS:LOCATE 1,9:PRINT"GRAUENVOLL"
1210 LOCATE 1,11:PRINT"NIChT WAHR ?-"
1220 LOCATE 1,12:PRINT CHR$(32)
1230 'TEIL 2
1240 lk=lk+3
1250 j=j+140       
1260 mn=mn+2
1270 l=l+1 
1280 n=n+6
1290 g=g+130       
1300 ENT 7,90,-3,9
1310 ENV 2,n/2,-2,4
1320 PAPER 0:INK 0,INT (RND(l)*3)
1330 'ENT 3,n,mn,lk+2           
1340 ENV 4,40,2,3
1350 ENV 5,3,-3,9       
1360 ENV 7,5,-2,5
1370 ENV 8,3,-7,6
1380 ENT 4,50,3,3
1390 ENT 5,10,-l*5+5,7   
1400 ENT 6,20,-4,4
1410 ENT 8,7,5,5         
1420 IF n>90 THEN n=1     
1430 IF mn>6 THEN mn=2:IF mn<-8 THEN mn=1
1440 IF l>10 THEN l=1:IF l<-10 THEN l=1
1450 IF g>1900 THEN g=12
1460 LOCATE 1,25:PRINT CHR$(32)
1470 PRINT CHR$(32)         
1480 SOUND 1,INT (RND(i)*2000)+7,INT(RND(j)*150)+4,6,1,5
1490 SOUND 2,INT (RND(j)*1500)+100,10,8
1500 SOUND 4,INT (RND(j)*250),30,6,4,3
1510 SOUND 2,100,10,5   
1520 PEN 1:INK 1,INT (RND(l)*2)
1530 SOUND 4,g+10,35,k+4,l,k+3     
1540 SOUND 1,250,n+5,8,k,3,k         
1550 PRINT CHR$(32)         
1560 SOUND 2,400,18,l+3,4         
1561 PAPER 0:INK 0,INT (RND(k)*2)
1570 SOUND 4,1200,45,8 
1580 SOUND 1,g+10,INT(RND(k)*13),8
1590 SOUND 2,g+20,40,l+5,2,1       
1600 SOUND 4,1500,20,mn+1,mn,2       
1610 SOUND 1,INT (RND(i)*1700),INT(RND(i)*650),8,INT (RND(k)*4)       
1620 SOUND 2,g/2+7,n+20,8,k,3       
1630 SOUND 4,400,98,k+2,2
1640 PRINT CHR$(32)     
1650 bka=bka+1
1660 kY=kY+1:IF kY<4 THEN GOTO 1240 ELSE GOTO 1670     
1670 GOTO 1680         
1680 '
1690 '=====================
1700 'part 3
1710 '=====================     
1720 '
1730 i=i+11
1740 j=50
1750 k=3
1760 l=l+1 
1770 n=7
1780 g=41
1790 ENT 7,90,-3,3
1800 ENV 1,20,4,4
1810 ENV 2,2,-8,5
1820 ENV 3,6,4,7
1830 ENV 4,80,2,l       
1840 ENV 6,10,8,9
1850 ENV 8,6,3,3
1860 ENT 5,10,-5,7 
1870 ENT 2,l,1,3     
1880 IF n>90 THEN n=3       
1890 IF k>8 THEN k=3
1900 IF l>10 THEN l=1:IF l<-10 THEN l=1
1910 IF g>2000 THEN g=1
1920 SOUND 1,700,20,8
1930 SOUND 2,INT (RND(j)*1500)+10, INT(RND(i)*200)+10,8,3,INT (RND(l)*9)   
1940 SOUND 4,INT (RND(j)*200),30,k+4,2
1950 PRINT CHR$(32)       
1960 PAPER 0:INK 0,INT (RND(k)*3)
1970 SOUND 1,INT (RND(j)*50),INT (RND(n)*10),8,k+1,2,1     
1980 SOUND 4,20,35,k+3,l,k+2       
1990 SOUND 1,600,n*2,8,k,3,k       
2000 SOUND 2,400,10,l+3,2       
2010 PRINT CHR$(32)     
2020 SOUND 4,1500,25,1,1,4   
2030 SOUND 1,50,40,8,1,INT (RND(l)*4)
2040 SOUND 2,g+40,40,6,2,1       
2050 SOUND 4,38,59,k+2,k,2     
2060 PEN 1:INK 1,INT (RND(k)*2)
2070 PRINT CHR$(32)     
2080 SOUND 1,500,INT(RND(i)*350),8,INT (RND(k)*4)
2090 PAPER 0:INK 0,INT (RND(k)*3)
2100 SOUND 2,g/2+50,n+5,8,k,3   
2110 PEN 1:INK 1,INT (RND(k)*2)
2120 SOUND 4,k*k,18,10   
2130 '
2140 kc=kc+1
2150 IF kc=1 THEN CLS
2160 IF kc=1 THEN PEN 3:INK 3,k+13:LOCATE 4,3:PRINT"Ende ?-"   
2170 IF kc<3 THEN GOTO 1730 ELSE GOTO 2180 
2180 '
2190 'part 4
2200 '
2210 kb=l-2:kc=k+1:KY=l+1:ke=k-1 
2211 IF ke<0 THEN ke=0
2212 IF kb<0 THEN kb=1
2220 IF 1300>g>1500 THEN GOTO 20
2230 IF 100>i>33 THEN GOTO 170 
2240 IF l=3 THEN l=1:GOTO 450   
2245 IF xc=128 THEN 450         
2250 IF k=4 THEN GOTO 620   
2255 IF xc=333 THEN GOTO 70   
2260 IF l=5 THEN l=1:GOTO 1020   
2265 IF xc=550 THEN GOTO 2130     
2270 IF k=6 THEN k=1:GOTO 1320     
2280 IF l=7 THEN GOTO 1620     
2290 IF l=8 THEN l=1:GOTO 1930     
2300 IF k=l THEN k=1+l
2310 IF 20>n>15 THEN GOTO 2130     
2330 BORDER l       
2400 GOTO 1500
5000 '
5017 IF xc>=900 THEN GOTO 6000
5020 xc=xc+1:'LoCATE 8,24:'PRINT xc   
5021 df=df+1
5022 IF df=26 THEN df=0
5025 IF xc>=180 THEN PEN 2:INK 2,df 
5026 IF xc>=230 THEN PEN 2:INK 2,l
5100 RETURN
6000 FOR tb=1 TO 10:tb=tb+1
6002 FOR df=0 TO 26:BORDER df
6010 NEXT:NEXT
6020 CLEAR
6030 GOTO 60


Offline ComSoft6128

  • ..................................
  • Supporter
  • 6128 Plus
  • *
  • Posts: 2.317
  • Country: scotland
  • CPC THEN CPC NOW
    • index.php?action=treasury
  • Liked: 2539
  • Likes Given: 4865
Re: Locomotive BASIC - ZUFA SOUND DEMO
« Reply #2 on: 08:02, 03 May 21 »
Thanks for the info :)


This is the first time I have seen this, how is it done?

Offline Urusergi

  • CPC6128
  • ****
  • Posts: 248
  • Country: es
  • Liked: 498
  • Likes Given: 1781
Re: Locomotive BASIC - ZUFA SOUND DEMO
« Reply #3 on: 22:59, 04 May 21 »
This is the first time I have seen this, how is it done?


Putting 01 00 2C 2C 2C 2C 20 between the line number and first command and adding 7 to the length of the line, for example:


0F 00 - 0A 00 - 01 00 2C 2C 2C 2C 20 - AD 20 0E 00


0F 00 = line length
0A 00 = line number (10)
AD 20 0E = MODE 0


From this:


08 00 - 0A 00 - AD 20 0E 00