' Tipo di dato predefinito: privo di segno OPTION TYPE UNSIGNED ' Tipo di dato predefinito: BYTE (8 bit) OPTION DEFAULT TYPE BYTE ' Indirizzo di partenza da dove disegnare il prossimo fotogramma. DIM actualAddress AS WORD = &H3008 ' Indirizzo usato per disegnare il fotogramma DIM startingAddress AS WORD = &H3000 ' Flag: ' 0 -> muovi verso destra; ' 1 -> muovi verso sinistra DIM increment AS BYTE = 0 ' Abilita l'LCD SCREEN ON ' Questa procedura si occupa di disegnare il fotogramma ' con la scritta "HI". PROCEDURE drawHi ' L'indirizzo condiviso dal programma principale. SHARED startingAddress ' I valori da usare per riempire le locazioni ' di memoria (uso delle variabili per garantire ' che siano prive di segno. In realtà potrei ' usare delle costanti che non occupano spazio, ' ma al momento l'ML non è completo). DIM filled AS BYTE = &HFF DIM middle AS BYTE = &H18 DIM none AS BYTE = &H00 ' Disegno l'H (5x8 pixel) POKE startingAddress, filled: INC startingAddress POKE startingAddress, filled: INC startingAddress POKE startingAddress, middle: INC startingAddress POKE startingAddress, filled: INC startingAddress POKE startingAddress, filled: INC startingAddress ' Ora disegno la I (3x8 pixel) POKE startingAddress, none: INC startingAddress POKE startingAddress, filled: INC startingAddress POKE startingAddress, filled END PROC ' Questa procedura cancella lo spazio dove prima si ' trovava l'HI (e intorno). PROCEDURE clearHi ' L'indirizzo condiviso dal programma principale. SHARED startingAddress ' I valori da usare per riempire le locazioni ' di memoria (uso delle variabili per garantire ' che siano prive di segno. In realtà potrei ' usare delle costanti che non occupano spazio, ' ma al momento l'ML non è completo). DIM index AS BYTE = &H00 DIM none AS BYTE = &H00 ' Se sto cancellando oltre gli 8 colonne a destra, ' inizio a cancellare da 8 colonne a sinistra. ' Altrimenti inizio dalla colonna zero. IF startingAddress > 8 THEN startingAddress = startingAddress - 8 ELSE startingAddress = 0 ENDIF ' Faccio un loop per 16 colonne di larghezza. DO ' Cancello la colonna POKE startingAddress, none: INC startingAddress ' Conto le colonne: se ne ho cancellate 16, finisco. INC index EXIT IF index > 16 LOOP END PROC ' Loop infinito. DO ' Prima di tutto cancelliamo lo schermo dove si trova ' l'ultima scritta "HI" disegnata. startingAddress = actualAddress clearHi[] ' Se mi devo spostare in avanti, incremento l'indirizzo ' della colonna da cui iniziare a disegnare "HI", ' fino a che non arrivo al limite a destra. IF increment = 0 THEN INC actualAddress IF actualAddress > &H300f THEN increment = 1 ENDIF ' Altrimenti mi devo spostare indietro di una colonna, ' almeno fino a che non arrivo all'inizio dello schermo. ELSE DEC actualAddress IF actualAddress < &H3008 THEN increment = 0 ENDIF ENDIF ' Ora posso disegnare "HI". startingAddress = actualAddress drawHi[] ' Rallentiamo un po' sennò non si vede niente... WAIT 200 CYCLES WAIT 200 CYCLES WAIT 200 CYCLES WAIT 200 CYCLES WAIT 200 CYCLES WAIT 200 CYCLES WAIT 200 CYCLES WAIT 200 CYCLES WAIT 200 CYCLES WAIT 200 CYCLES LOOP
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 moving_demo.bas -o example.xex altirra example.xex # Windows ugbc.atari.exe moving_demo.bas -o example.xex altirra example.xex
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 moving_demo.bas -o example.xex altirra example.xex # Windows ugbc.atarixl.exe moving_demo.bas -o example.xex altirra example.xex
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 moving_demo.bas -o example.prg x64sc example.prg # Windows ugbc.c64.exe moving_demo.bas -o example.prg x64sc example.prg
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.c64reu moving_demo.bas -o example.prg x64sc -reu example.prg # Windows ugbc.c64reu.exe moving_demo.bas -o example.prg x64sc -reu example.prg
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 moving_demo.bas -o example.prg yape example.prg # Windows ugbc.plus4.exe moving_demo.bas -o example.prg yape example.prg
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 moving_demo.bas -o example.prg xplus4 example.prg # Windows ugbc.plus4.exe moving_demo.bas -o example.prg xplus4 example.prg
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 moving_demo.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d32.exe moving_demo.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin
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 moving_demo.bas -o example.bin xroar -rompath (percorso ROM) example.bin # Windows ugbc.d64.exe moving_demo.bas -o example.bin xroar.exe -rompath (percorso ROM) example.bin
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 moving_demo.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.pc128op.exe moving_demo.bas -o example.bin dcmoto example.bin (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC
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 moving_demo.bas -o example.bin dcmoto example.bin (scegliere example.bin) (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC # Windows ugbc.mo5.exe moving_demo.bas -o example.bin dcmoto example.bin (scegliere BASIC 128) CLEAR,&H2FFF: LOADM"CASS:",R: EXEC
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 moving_demo.bas -o example.prg xvic --memory 24k example.prg # Windows ugbc.vic20.exe moving_demo.bas -o example.prg xvic --memory 24k example.prg
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 moving_demo.bas -o example.tap Speccy example.tap # Windows ugbc.zx.exe moving_demo.bas -o example.tap Speccy example.tap
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:
# Linux ugbc.coleco moving_demo.bas -o example.rom openmsx -machine \"COL - ColecoVision\" -cart example.rom # Windows ugbc.coleco.exe moving_demo.bas -o example.rom bluemsx -machine \"COL - ColecoVision\" example.rom
# Linux ugbc.coleco moving_demo.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom # Windows ugbc.coleco.exe moving_demo.bas -o example.rom bluemsx /machine \"COL - ColecoVision\" /rom1 example.rom
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 moving_demo.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom # Windows ugbc.sc3000.exe moving_demo.bas -o example.rom bluemsx /machine \"SEGA - SC-3000\" /rom1 example.rom
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 moving_demo.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom # Windows ugbc.sg1000.exe moving_demo.bas -o example.rom bluemsx /machine \"SEGA - SG-1000\" /rom1 example.rom
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, apri una segnalazione su GitHub per questo specifico esempio. Grazie!