{{htmlmetatags>metatag-robots=() metatag-title=( | ugBASIC User Manual) metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum) metatag-description=(An isomorphic language for retrocomputers) metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png) metatag-og:title=( | ugBASIC User Manual) metatag-og:description=(An isomorphic language for retrocomputers) }} ====== ugBASIC Manuale Utente ====== ===== ===== ==== SCOPO ==== ==== SORGENTE ==== 975 DEF SEG: POKE 106,0 980 SAMPLES$="NO" 990 GOTO 1010 1000 SAMPLES$="YES" 1010 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM" 1020 LOCATE 7,12,0:PRINT "Personal Computer" 1030 COLOR 10,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184) 1040 LOCATE 11,9,0:PRINT CHR$(179)+" DONKEY "+CHR$(179) 1050 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179) 1060 LOCATE 13,9,0:PRINT CHR$(179)+" Version 1.10 "+CHR$(179) 1070 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190) 1080 COLOR 15,0:LOCATE 17,4,0:PRINT "(C) Copyright IBM Corp 1981, 1982" 1090 COLOR 14,0:LOCATE 23,7,0:PRINT "Press space bar to continue" 1100 IF INKEY$<>"" THEN GOTO 1100 1110 CMD$ = INKEY$ 1120 IF CMD$ = "" THEN GOTO 1110 1130 IF CMD$ = CHR$(27) THEN GOTO 1298 1140 IF CMD$ = " " THEN GOTO 1160 1150 GOTO 1110 1160 DEF SEG=0 1170 IF (PEEK(&H410) AND &H30)<>&H30 THEN DEF SEG:GOTO 1291 1180 WIDTH 80:CLS:LOCATE 3,1 1190 PRINT "HOLD IT!" 1200 PRINT "YOU'RE NOT USING THE COLOR/GRAPHICS MONITOR ADAPTER!" 1210 PRINT "THIS PROGRAM USES GRAPHICS AND REQUIRES THAT ADAPTER." 1220 PRINT "PRESS THE SPACE BAR TO CONTINUE." 1230 DEF SEG 1240 IF INKEY$<>"" THEN GOTO 1240 1250 CMD$ = INKEY$ 1260 IF CMD$ = "" THEN GOTO 1250 1270 IF CMD$ = CHR$(27) THEN GOTO 1298 1280 IF CMD$ = " " THEN GOTO 1298 1290 GOTO 1250 1291 KEY OFF 1292 ON ERROR GOTO 1295 1293 PLAY "p16" 1294 GOTO 1300 1295 COLOR 31,0,0 1296 PRINT "THIS PROGRAM REQUIRES ADVANCED BASIC -- USE COMMAND 'BASICA'":COLOR 15,0,0:FOR I=1 TO 9000:NEXT: RESUME 1298 1298 ON ERROR GOTO 0 1299 SCREEN 0,1:IF SAMPLES$="YES" THEN CHAIN"samples",1000 ELSE COLOR 7,0,0:CLS:END 1300 REM 1410 COLOR 0 1420 DEFINT A-Y 1440 SCREEN 1,0:COLOR 8,1 1450 DIM Q%(500) 1460 DIM D1%(150),D2%(150),C1%(200),C2%(200) 1470 DIM DNK%(300) 1480 GOSUB 1940 1490 GOSUB 1780 1500 CLS 1510 DIM B%(300) 1520 FOR I=2 TO 300:B%(I)=-16384+192:NEXT 1530 B%(0)=2:B%(1)=193 1540 REM 1550 CX=110:CLS 1590 LINE (0,0)-(305,199),,B 1600 LINE (6,6)-(97,195),1,BF 1610 LINE (183,6)-(305,195),1,BF 1620 LOCATE 3,5:PRINT "Donkey" 1630 LOCATE 3,29:PRINT "Driver" 1631 LOCATE 19,25:PRINT"Press Space "; 1632 LOCATE 20,25:PRINT"Bar to switch"; 1633 LOCATE 21,25:PRINT"lanes "; 1635 LOCATE 23,25:PRINT"Press ESC "; 1636 LOCATE 24,25:PRINT"to exit "; 1640 FOR Y=4 TO 199 STEP 20:LINE(140,Y)-(140,Y+10):NEXT 1650 CY=105:CX=105 1660 LINE (100,0)-(100,199):LINE(180,0)-(180,199) 1670 LOCATE 5,6:PRINT SD:LOCATE 5,31:PRINT SM 1680 CY=CY-4:IF CY<60 THEN 2230 1690 PUT (CX,CY),CAR%,PRESET 1700 DX=105+42*INT(RND*2) 1710 FOR Y=(RND*-4)*8 TO 124 STEP 6 1720 SOUND 20000,1 1730 A$=INKEY$:IF A$=CHR$(27) THEN 1298 ELSE POKE 106,0:IF LEN(A$)>0 THEN LINE (CX,CY)-(CX+28,CY+44),0,BF:CX=252-CX:PUT (CX,CY),CAR%,PRESET:SOUND 200,1 1740 IF Y=>3 THEN PUT (DX,Y),DNK%,PSET 1750 IF CX=DX AND Y+25>=CY THEN 2060 1760 IF Y AND 3 THEN PUT (140,6),B% 1770 NEXT:LINE (DX,124)-(DX+32,149),0,BF:GOTO 1670 1780 CLS 1790 DRAW "S8C3" 1800 DRAW"BM12,1r3m+1,3d2R1ND2u1r2d4l2u1l1" 1810 DRAW"d7R1nd2u2r3d6l3u2l1d3m-1,1l3" 1820 DRAW"m-1,-1u3l1d2l3u6r3d2nd2r1u7l1d1l2" 1830 DRAW"u4r2d1nd2R1U2" 1840 DRAW"M+1,-3" 1850 DRAW"BD10D2R3U2M-1,-1L1M-1,1" 1860 DRAW"BD3D1R1U1L1BR2R1D1L1U1 1870 DRAW"BD2BL2D1R1U1L1BR2R1D1L1U1 1880 DRAW"BD2BL2D1R1U1L1BR2R1D1L1U1 1890 LINE(0,0)-(40,60),,B 1900 PAINT (1,1) 1910 DIM CAR%(900) 1920 GET(1,1)-(29,45),CAR% 1930 RETURN 1940 CLS 1950 DRAW"S08" 1960 DRAW "BM14,18" 1970 DRAW"M+2,-4R8M+1,-1U1M+1,+1M+2,-1 1980 DRAW"M-1,1M+1,3M-1,1M-1,-2M-1,2" 1990 DRAW"D3L1U3M-1,1D2L1U2L3D2L1U2M-1,-1" 2000 DRAW"D3L1U5M-2,3U1" 2010 PAINT (21,14),3 2020 PRESET (37,10):PRESET (40,10) 2030 PRESET (37,11):PRESET (40,11) 2040 GET (13,0)-(45,25),DNK% 2050 RETURN 2060 SD=SD+1:LOCATE 14,6:PRINT "BOOM!" 2070 GET (DX,Y)-(DX+16,Y+25),D1% 2080 D1X=DX:D1Y=Y:D2X=DX+17 2090 GET (DX+17,Y)-(DX+31,Y+25),D2% 2100 GET (CX,CY)-(CX+14,CY+44),C1% 2110 GET (CX+15,CY)-(CX+28,CY+44),C2% 2120 C1X=CX:C1Y=CY:C2X=CX+15 2130 FOR P=6 TO 0 STEP -1:Z=1/(2^P):Z1=1-Z 2140 PUT (C1X,C1Y),C1%:PUT(C2X,C1Y),C2% 2150 PUT (D1X,D1Y),D1%:PUT(D2X,D1Y),D2% 2160 C1X=CX*Z1:D1Y=Y*Z1:C2X=C2X+(291-C2X)*Z 2170 D1X=DX*Z1:C1Y=C1Y+(155-C1Y)*Z:D2X=D2X+(294-D2X)*Z 2180 PUT (C1X,C1Y),C1%:PUT(C2X,C1Y),C2% 2190 PUT (D1X,D1Y),D1%:PUT(D2X,D1Y),D2% 2200 SOUND 37+RND*200,4:NEXT 2210 FOR Y=1 TO 2000:NEXT 2220 CLS:GOTO 1540 2230 SM=SM+1:LOCATE 7,25:PRINT "Donkey loses!" 2240 FOR Y=1 TO 1000:NEXT 2250 CLS:GOTO 1540 ==== FILE ==== * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/contrib_donkey.bas|contrib_donkey.bas]]'' ==== COME ESEGUIRLO ==== === Atari 400/800 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore Altirra, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.atari contrib_donkey.bas -o example.xex altirra example.xex # Windows ugbc.atari.exe contrib_donkey.bas -o example.xex altirra example.xex === Atari 600XL/800XL/1200XL/XG(SE) === Per poter eseguire l'esempio, è necessario disporre dell'emulatore Altirra, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.atarixl contrib_donkey.bas -o example.xex altirra example.xex # Windows ugbc.atarixl.exe contrib_donkey.bas -o example.xex altirra example.xex === Commodore 64 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore VICE, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.c64 contrib_donkey.bas -o example.prg x64sc example.prg # Windows ugbc.c64.exe contrib_donkey.bas -o example.prg x64sc example.prg === Commodore PLUS/4 === == Usando YAPE == Per poter eseguire l'esempio, è necessario disporre dell'emulatore YAPE, e in particolare che l'eseguibile ''yape'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.plus4 contrib_donkey.bas -o example.prg yape example.prg # Windows ugbc.plus4.exe contrib_donkey.bas -o example.prg yape example.prg == Usando VICE == Per poter eseguire l'esempio, è necessario disporre dell'emulatore VICE, e in particolare che l'eseguibile ''xplus4'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.plus4 contrib_donkey.bas -o example.prg xplus4 example.prg # Windows ugbc.plus4.exe contrib_donkey.bas -o example.prg xplus4 example.prg === Dragon 32 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore XROAR, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.d32 contrib_donkey.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d32.exe contrib_donkey.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin === Dragon 64 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore XROAR, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.d64 contrib_donkey.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d64.exe contrib_donkey.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin === PC128 Olivetti Prodest === Per poter eseguire l'esempio, è necessario disporre dell'emulatore DCMOTO, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi i seguenti comandi: # Linux ugbc.pc128op contrib_donkey.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.pc128op.exe contrib_donkey.bas -o example.bin dcmoto example.bin (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC === Thomson MO5 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore DCMOTO, e in particolare che l'eseguibile ''x64sc'' sia accessibile. Digitare quindi i seguenti comandi: # Linux ugbc.mo5 contrib_donkey.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.mo5.exe contrib_donkey.bas -o example.bin dcmoto example.bin (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC === Commodore VIC-20 === Per poter eseguire l'esempio, è necessario disporre dell'emulatore XEMU, e in particolare che l'eseguibile ''xmega65'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.vic20 contrib_donkey.bas -o example.prg xvic --memory 24k example.prg # Windows ugbc.vic20.exe contrib_donkey.bas -o example.prg xvic --memory 24k example.prg === ZX Spectrum === Per poter eseguire l'esempio, è necessario disporre dell'emulatore Speccy, e in particolare che l'eseguibile ''speccy'' sia accessibile. Digitare quindi il seguente comando: # Linux ugbc.zx contrib_donkey.bas -o example.tap Speccy example.tap # Windows ugbc.zx.exe contrib_donkey.bas -o example.tap Speccy example.tap === ColecoVision === Per compilare e mandare in esecuzione l'esempio, hai bisogno di avere l'emulatore openMsx oppure il BlueMSX, e in particolare che il suo eseguibile sia accessibile. Dopo di che, digita questo comando sulla linea di comando: == openMSX == # Linux ugbc.coleco contrib_donkey.bas -o example.rom openmsx -machine \"COL - ColecoVision\" -cart example.rom # Windows ugbc.coleco.exe contrib_donkey.bas -o example.rom bluemsx -machine \"COL - ColecoVision\" example.rom == blueMSX == # Linux ugbc.coleco contrib_donkey.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom # Windows ugbc.coleco.exe contrib_donkey.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom === SEGA SC-3000 === Per compilare e mandare in esecuzione l'esempio, hai bisogno di avere l'emulatore BlueMSX, e in particolare che il suo eseguibile sia accessibile. Dopo di che, digita questo comando sulla linea di comando: # Linux ugbc.sc3000 contrib_donkey.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom # Windows ugbc.sc3000.exe contrib_donkey.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom === SEGA SG-1000 === Per compilare e mandare in esecuzione l'esempio, hai bisogno di avere l'emulatore BlueMSX, e in particolare che il suo eseguibile sia accessibile. Dopo di che, digita questo comando sulla linea di comando: # Linux ugbc.sg1000 contrib_donkey.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom # Windows ugbc.sg1000.exe contrib_donkey.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom ==== PROBLEMI? ==== Se hai trovato un problema nel cercare di eseguire questo esempio, se pensi che ci sia un bug o, più semplicemente, vorresti che fosse migliorato, [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=MIGLIORARE |apri una segnalazione]] su GitHub per questo specifico esempio. Grazie!===== POWERED BY ===== [[:it:ugbasic:user:examples|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]