User Tools

Site Tools


ugbasic:user:example:contrib_what_a_wonderful_world
Translations of this page:


ugBASIC User Manual

OTHER CONTRIBUTIONS WHAT A WONDERFUL WORLD

PURPOSE

Some of you young folks been saying to me Hey Pops, what you mean 'What a wonderful world'?“ How about all them wars all over the place? You call them wonderful? And how about hunger and pollution? That ain't so wonderful either. Well how about listening to old Pops for a minute. Seems to me, it aint the world that's so bad but what we're doin' to it. - Louis Armstrong (August 4, 1901 – July 6, 1971), nicknamed Satchmo or Pops

SOURCE CODE

 
 DEFINE STRING SPACE 512
 DEFINE STRING COUNT 64
 DEFINE TASK COUNT 2
 
 TILEMAP ENABLE(16)
 
 COLOR BORDER WHITE
 
 CLS WHITE
 
 soundtrack := LOAD MUSIC("what_a_wonderful_world.mid")
 
 MUSIC soundtrack
 
 PARALLEL PROCEDURE rotatingEarth ON VIC20
 
 	earth := LOAD IMAGES("earth_128x128_2colors.gif") FRAME SIZE AUTO
 
 	POSITIVE CONST centerX = ( SCREEN WIDTH - 128 ) \ #2
 	POSITIVE CONST frameMax = FRAMES(earth) - 1
 	
 	DIM frame AS BYTE
 	DIM t AS WORD
 	DIM delay AS WORD
 	
 	t = TIMER
 	delay = ( TICKS PER SECOND / 5 )
 	
 	DO
 	
 		WAIT WHILE ( TIMER - t ) < delay
 		
 		t = TIMER
 		
 		PUT IMAGE earth FRAME frame AT centerX, 0
 		ADD frame, 1, 0 TO frameMax
 		
 	LOOP
 
 END PROC
 
 PARALLEL PROCEDURE printLyrics ON VIC20
 
 	DIM line AS BYTE
 	DIM t AS WORD
 	DIM delay AS WORD
 	
 	t = TIMER
 	delay = 2 * TICKS PER SECOND
 	
 	DO
 
 		WAIT WHILE ( TIMER - t ) < delay
 
 		t = TIMER
 
 		LOCATE 0, SCREEN ROWS - 2
 		CLINE
 		LOCATE 0, SCREEN ROWS - 3
 		CLINE
 		
 		INK RED
 		
 		SELECT CASE line
 			CASE 0
 				CENTER "I see trees of green";
 			CASE 1			
 				CENTER "Red roses too";
 			CASE 2
 				CENTER "I see them bloom";
 			CASE 3
 				CENTER "For me and you";
 			CASE 4
 				CENTER "And I think to myself";
 			CASE 5
 				CENTER "What a wonderful world!";
 			CASE 7
 				CENTER "I see skies of blue";
 			CASE 8
 				CENTER "And clouds of white";
 			CASE 9
 				CENTER "The bright blessed day";
 			CASE 10
 				CENTER "The dark sacred night";
 			CASE 11
 				CENTER "And I think to myself";
 			CASE 12
 				CENTER "What a wonderful world";
 			CASE 13
 				CENTER "The colors of the rainbow";
 			CASE 14
 				CENTER "So pretty in the sky";
 			CASE 15
 				CENTER "Are also on the faces";
 			CASE 16
 				CENTER "Of people going by";
 			CASE 17
 				CENTER "I see friends shaking hands";
 			CASE 18
 				CENTER "Saying, How do you do?";
 			CASE 19
 				CENTER "They're really saying";
 			CASE 20
 				CENTER "I love you...";
 			CASE 21
 				CENTER "I hear babies cry";
 			CASE 22
 				CENTER "I watch them grow";
 			CASE 23
 				CENTER "They'll learn much more";
 			CASE 24
 				CENTER "Than I'll ever know";
 			CASE 26
 				CENTER "And I think to myself";
 			CASE 27
 				CENTER "What a wonderful world";
 			CASE 28
 				CENTER "Yes, I think to myself";
 			CASE 30
 				CENTER "What a wonderful world";
 			CASE 32
 				CENTER "Ooh, yes...";
 		ENDSELECT
 		
 		INC line
 		
 	LOOP
 
 END PROC
 
 SPAWN rotatingEarth ON VIC20
 SPAWN printLyrics ON VIC20
 

SOURCE FILE

HOW TO COMPILE AND RUN

The instructions here refer to compiling the example from the command line. For Microsoft Windows users we suggest using UGBASIC-IDE, which allows you to compile the example with just one click.

ATARI 400/800 family

In order to compile and run the example, you need to have the Altirra emulator, and in particular that the altirra executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.atari contrib_what_a_wonderful_world.bas -o example.xex
 altirra example.xex
 
 # Windows 
 ugbc.atari.exe contrib_what_a_wonderful_world.bas -o example.xex
 altirra example.xex

ATARI 600XL/800XL/1200XL/XG(SE) family

In order to compile and run the example, you need to have the Altirra emulator, and in particular that the altirra executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.atarixl contrib_what_a_wonderful_world.bas -o example.xex
 altirra example.xex
 
 # Windows 
 ugbc.atarixl.exe contrib_what_a_wonderful_world.bas -o example.xex
 altirra example.xex

Commodore 64

In order to compile and run the example, you need to have the VICE emulator, and in particular that the x64sc executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.c64 contrib_what_a_wonderful_world.bas -o example.prg
 x64sc example.prg
 
 # Windows 
 ugbc.c64.exe contrib_what_a_wonderful_world.bas -o example.prg
 x64sc example.prg

Commodore 64+REU

In order to compile and run the example, you need to have the VICE emulator, and in particular that the x64sc executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.c64reu contrib_what_a_wonderful_world.bas -o example.prg
 x64sc -reu example.prg
 
 # Windows 
 ugbc.c64reu.exe contrib_what_a_wonderful_world.bas -o example.prg
 x64sc -reu example.prg

Commodore PLUS/4

Using YAPE

In order to run the example, you need to have the YAPE emulator. In particular that the yape executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.plus4 contrib_what_a_wonderful_world.bas -o example.prg
 yape example.prg
 
 # Windows 
 ugbc.plus4.exe contrib_what_a_wonderful_world.bas -o example.prg
 yape example.prg
Using VICE

In order to run the example, you need to have the VICE emulator. In particular that the xplus4 executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.plus4 contrib_what_a_wonderful_world.bas -o example.prg
 xplus4 example.prg
 
 # Windows 
 ugbc.plus4.exe contrib_what_a_wonderful_world.bas -o example.prg
 xplus4 example.prg

Dragon 32

In order to compile and run the example, you need to have the XROAR emulator, and in particular that the xroar executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.d32 contrib_what_a_wonderful_world.bas -o example.bin
 xroar -rompath (your rom path) example.bin
 
 # Windows 
 ugbc.d32.exe contrib_what_a_wonderful_world.bas -o example.bin
 xroar.exe -rompath (your rom path) example.bin

Dragon 64

In order to compile and run the example, you need to have the XROAR emulator, and in particular that the xroar executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.d64 contrib_what_a_wonderful_world.bas -o example.bin
 xroar -rompath (your rom path) example.bin
 
 # Windows 
 ugbc.d64.exe contrib_what_a_wonderful_world.bas -o example.bin
 xroar.exe -rompath (your rom path) example.bin

PC128 Olivetti Prodest

In order to compile and run the example, you need to have the DCMOTO emulator, and in particular that the dcmoto executable is accessible.

Then, type this command on the command line and on the emulator:

 # Linux 
 ugbc.pc128op contrib_what_a_wonderful_world.bas -o example.k7
 dcmoto
 (choose BASIC 128)
 CLEAR,&H2FFF: LOADM"CASS:",R: EXEC
 
 # Windows 
 ugbc.pc128op.exe contrib_what_a_wonderful_world.bas -o example.k7
 dcmoto
 (choose example.k7)
 (choose BASIC 128)
 CLEAR,&H2FFF: LOADM"CASS:",R: EXEC

Thomson MO5

In order to compile and run the example, you need to have the DCMOTO emulator, and in particular that the dcmoto executable is accessible.

Then, type this command on the command line and on the emulator:

 # Linux 
 ugbc.pc128op contrib_what_a_wonderful_world.bas -o example.k7
 dcmoto
 (choose BASIC 128)
 CLEAR,&H2FFF: LOADM"CASS:",R: EXEC
 
 # Windows 
 ugbc.pc128op.exe contrib_what_a_wonderful_world.bas -o example.k7
 dcmoto
 (choose example.k7)
 (choose BASIC 128)
 CLEAR,&H2FFF: LOADM"CASS:",R: EXEC

Commodore VIC-20

In order to compile and run the example, you need to have the VICE emulator, and in particular that the xvic executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.vic20 contrib_what_a_wonderful_world.bas -o example.prg
 xvic --memory 24k example.prg
 
 # Windows 
 ugbc.vic20.exe contrib_what_a_wonderful_world.bas -o example.prg
 xvic --memory 24k example.prg

ZX Spectrum

In order to compile and run the example, you need to have the Speccy emulator, and in particular that the speccy executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.zx contrib_what_a_wonderful_world.bas -o example.tap
 Speccy example.tap
 
 # Windows 
 ugbc.zx.exe contrib_what_a_wonderful_world.bas -o example.tap
 Speccy example.tap

MSX

In order to compile and run the example, you need to have the openMsx or the BlueMSX emulator, and in particular that its executable is accessible.

Then, type this command on the command line:

openMSX
 # Linux 
 ugbc.msx1 contrib_what_a_wonderful_world.bas -o example.rom
 openmsx -cart example.rom
 
 # Windows 
 ugbc.msx1.exe contrib_what_a_wonderful_world.bas -o example.rom
 openmsx -cart example.rom
blueMSX
 # Linux 
 ugbc.msx1 contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx example.rom
 
 # Windows 
 ugbc.msx1.exe contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx example.rom

ColecoVision

In order to compile and run the example, you need to have the openMsx or the BlueMSX emulator, and in particular that its executable is accessible.

Then, type this command on the command line:

openMSX
 # Linux 
 ugbc.coleco contrib_what_a_wonderful_world.bas -o example.rom
 openmsx -machine \"COL - ColecoVision\" -cart example.rom
 
 # Windows 
 ugbc.coleco.exe contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx -machine \"COL - ColecoVision\" example.rom
blueMSX
 # Linux 
 ugbc.coleco contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom
 
 # Windows 
 ugbc.coleco.exe contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx  /machine \"COL - ColecoVision\" /rom1 example.rom

SEGA SC-3000

In order to compile and run the example, you need to have the BlueMSX emulator, and in particular that its executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.sc3000 contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom
 
 # Windows 
 ugbc.sc3000.exe contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx  /machine \"SEGA - SC-3000\" /rom1 example.rom

SEGA SG-1000

In order to compile and run the example, you need to have the BlueMSX emulator, and in particular that its executable is accessible.

Then, type this command on the command line:

 # Linux 
 ugbc.sg1000 contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom
 
 # Windows 
 ugbc.sg1000.exe contrib_what_a_wonderful_world.bas -o example.rom
 bluemsx  /machine \"SEGA - SG-1000\" /rom1 example.rom

ANY PROBLEM?

If you have found a problem trying to run this example, if you think there is a bug or, more simply, you would like it to be improved, open an issue for this example on GitHub. Thank you!

POWERED BY