OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 08.09.2024, 01:08

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 636 ]  Přejít na stránku Předchozí  1 ... 37, 38, 39, 40, 41, 42, 43  Další
Autor Zpráva
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 31.03.2024, 08:33 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
unreal superhero (ZX Spectrum 1 bit beeper cover (Fuse Unfiltered))
phpBB [video]

https://youtu.be/5x56yISZ3gA
1 bit (4557 KHz) radix-unreal_superhero.xm
https://modarchive.org/index.php?reques ... uery=67561
Use: Octode 2k16 music engine, ZX0 packer, M4 FORTH compiler

download: https://codeberg.org/DW0RKiN/M4_FORTH/s ... erhero.tap

PS: S tim obrazkem se me po nekolika hodinach uz nechtelo drbat, takze ty klavesy nejsou dokonale... prinejhorsim zdrojak mate k dispozici takze obrazek i zvuk muzete vylepsit.. .)

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 01.04.2024, 21:23 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Rez and Kenet: Unreeeal Superhero 3 (ZX Spectrum 1 bit beeper cover (Fuse Unfiltered))
phpBB [video]

https://youtu.be/IKAZsg1DtnM
Download: https://codeberg.org/DW0RKiN/M4_FORTH/s ... hero_3.tap

Tohle je slavny kousek, ktery prvne asi zaznel v chipmusicdisk #1 demu.
https://www.pouet.net/prod.php?which=3604

Ta skladba je fakt slavna. I prevod se me (imho) povedl, patri to mezi top 5 co jsem udelal (top 3 prijde priste).

PS: Jako jedina skladba se me po rozbaleni do bufferu nevlezla. Buffer zacina na 0xC000, musel jsem ho zvetsit na 16500 bajtu posunout pocatek na 0xB000. Pri kompresi ZX0 menit pokazde rucne v parametru skriptu defaultni (0xC000) zacatek bufferu.

PPS: To ukonceni skladby je fakt efektni a kupodivu se to dalo prevest do beeperu i kdyz engine nepodporuje zadne nastaveni hlasitosti. Snizovani oktavy a postupne vypinani kanalu nebo jak to dela... ? .)

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 03.04.2024, 12:27 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3797
Bydliště: Bratislava
Has thanked: 375 times
Been thanked: 811 times
Asi sa pytam blbo (alebo som nieco prehliadol) ale ako suvisia tieto beepove hudby s Macro Forth-om ?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 04.04.2024, 22:03 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Busy píše:
Asi sa pytam blbo (alebo som nieco prehliadol) ale ako suvisia tieto beepove hudby s Macro Forth-om ?


Mno... jsou soucasti...

Testing adresare!

Kde testuji ruzne forth slova.

Takze testuji slovo...

BINFILE... ktere pribali binarni soubor do zdrojaku

UNPACK... ktery binarni soubor umi rozbalit na nejakou adresu. V tomto pripade 0x4000 a 0xC000.

PLAY... ktery umi hrat z bufferu.

Kód:
;# dworkin@dw-A15:~/Programovani/ZX/Forth/octode2k16$ ./xm2octode2k16 ./Data/polly.xm
;# dworkin@dw-A15:~/Programovani/ZX/Forth/Compression$ ./compres.sh -a 0xC000 ../octode2k16/Data/polly.dat
;# dworkin@dw-A15:~/Programovani/ZX/Forth/Compression$ ./compres.sh -a 0x4000 ../Testing/polly_scr.scr
;# dworkin@dw-A15:~/Programovani/ZX/Forth/Testing$ ../compile.sh polly 32768
;vvvv
include(`../M4/FIRST.M4')dnl
;^^^^
  ifdef __ORG
    org __ORG
  else
    org 24576
  endif
 
  ifndef __BUFFER
__BUFFER equ 0xC000
  endif
 
  define({SUFFIX},.zx0)
  define({USE_ZX0})
  define({BUFFERPLAY_SIZE},14500)

SHOW_BORDER_COLOR EQU 1

  INIT(28000)
  BINFILE(../Compression/Output/,polly_scr,SUFFIX) PUSH(0x4000) UNPACK DROP

  BEGIN
        PUSH(__TESTKEY_E) TESTKEY
    IF     
        BREAK
    ELSE
        BINFILE(../Compression/Output/,polly,SUFFIX) PUSH(__BUFFER) UNPACK PLAY
    THEN
  AGAIN

  STOP


Testuji to znova... a znova... a znova...

Pro ruzne binarni soubory. .)

Nejak s tim nemuzu prestat...

Uz jsem premyslel jsem ze bych spamoval v novem foru, protoze toho zacina byt fakt mnoho, ale je to trochu propagace.

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 04.04.2024, 22:16 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Quazar: Hybrid song / Funky Stars 2:20 (ZX Spectrum 1 bit beeper cover (Fuse Unfiltered))
phpBB [video]

https://youtu.be/JdRY9FOKBes
Znama skladba z puvodne uz asi neznameho PC dema, protoze nema jedine video na youtube. Clovek aby to spoustel ve wine... .)

https://codeberg.org/DW0RKiN/M4_FORTH/s ... /cx_03.tap

Puvodni zdroj:
https://demozoo.org/music/69836/
https://www.pouet.net/prod.php?which=14664

Zaznela v:

cx-03 seen as shrooms
CybeREX Sep 2004

Azure Will Makes(Second Release)
Azure Jun 2005

Zmenseny puvodni printscreen
Příloha:
cx_03_zmenseny.jpg
cx_03_zmenseny.jpg [ 97.94 KiB | Zobrazeno 2741 krát ]


PS: Tohle povazuji za top 3 z mych piiipacich konverzi. Zmenu jsem musel udelat jen v te casti co zni jako morseovka. V originale pipa 2x rychleji, protoze pouziva specialni samply s posunutym zacatkem a kazdy radek vybere jiny. Slo by zvysit dvojnasobne rychlost patternu a pres funkci EXPD. zdvojit pocet radku. Ale to zdvoji i velikost skladby protoze to pipa tise skoro v kazdem patternu a pipani 2x pomaleji zni podle me v poradku, kdyz to neporovnavate primo s originalem.

Ale moznost to zrychlit jen na zacatku kdy je to hraje vyrazne tam je.

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 05.04.2024, 09:35 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2325
Bydliště: Brno
Has thanked: 870 times
Been thanked: 323 times
Na tu hudbu, obrázky používáš nějaké externí rutiny psané ve Forth-u?

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 05.04.2024, 10:40 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Lisiak4 píše:
Na tu hudbu, obrázky používáš nějaké externí rutiny psané ve Forth-u?


Ne.

Skladby vetsinou vybiram z modarchive. Pozde ale prece jsem zjistil ze tam jde nastavit hledani podle hodnoceni a pridat filtry na pocet kanalu a velikost v kb. Pak se to musi rucne editovat. Protoze octode2k16 neumi zadny efekt. Krome nastaveni rychlosti pro konkretni pattern. Zadne vibrato, ruzne hlasitosti. Nic. Vlastne neumi ani samply. Takze se musi nastroje posouvat v oktavach aby to zhruba sedelo atd.

Dokazi prevest pres OpenMPT (wine) do XM i midi soubor. To je mnohem vic prace. Prilis mnoho kanalu.. Cestou se nejak ztrati samply, nesedi to na patterny. Proste to pokracuje dal a dal. Pritom octode2k16 neumi neprerusene prehrat zvuk mezi patterny. Takze se musi na zacatku znovu opsat. Jo a mimochodem, ten jediny sampl co hraje je monotoni zvuk takze opakovany "stisk" klavesy NENI slyset. Musi se to osetrit jinak. Mezera. Zdvojeni. Zmena oktavy. Atd.

Kdyz je to v XM tak prijde cast kdy se nastavi 2x 4x pomalejsi tempo a proste se posloucha co zni v originalu a pokousis se napodobit nebo aspon udelat pekny zvuk v tom "orezanem" formatu.

Pak se to zkompiluje a zjisti co to vlastne ve skutecnosti hraje na ZX. Poslouchas to a kolecko se znovu opakuje.

Obrazky?

Taky nic "meho". To se snazim nejak prijit prvne co by tam mohlo byt. A proc. Sezenu neco z netu a prevadim to v gimpu.
Na linuxu neni zadny poradny konvertor, takze jsem hledal na netu a nasel nejaky image2spec konvertor, ktery bezi pod wine a kdyz se s tim naucis zachaze tak je to celkem dobre. Jen jsem nezjistil jak delat zmenu jen pro vybrane 8x8 matice. Asi umi jen cely obrazek. Zato umi aktualizovat zdrojovy kdyz je zmenen. Takze v Gimpu editujes zdrojovy, ktery je otevreny v image2spec a kdyz je neco prijatelne tak to prevedes do pomocneho souboru a ten otevres v Gimpu a hotovou cast prekopirujes do zdrojoveho. A znova a znova.
Image2spec ma podivnou vlasnost ze nejak nedrzi jasnost znaku, citlivost se da prenastavit v zakladnim nastaveni. Ale je to nakonec docela zabavne tam mit tyhle drobne chyby. Vypada to zajimaveji takze jsem se je naucil naopak pridavat. Proste vic barev, nejen 8.

Image2 spec je jediny co umi prevest obrazek nakonec do SCR souboru. Jinak bych mel na linuxu s timto zakladnim ukonem problem.

Kdyz je XM tak se prevadi pomoci C konvertoru v Octode do txt souboru obsahuji "kopii" XM. Ma to priponu DAT.

SCR a DAT se "musi" komprimovat a az pak nastupuje Forth prekladac. Ten jen inkludne obraz a hudbu, depacker a engine octode pro hrani.

Trva to asi 10+ hodin jedna skladba. Proste aspon jeden den. Midi mnohem dele. A vlastne nikdy neni zaruceno ze z puvodni neposlouchatelne verze to pujde do prijatelne. Chce to zkusenosti co vzdat po prvnim poslechu.

PS: Zrovna jsem zjistil ze nekdo to kopiruje na svuj kanal a ma vic lajku nez ja mam shlednuti. Ach jo. Asi bych mel byt rad, stejne je jedno kde to vidi... a je tam i odkaz puvodni video. I kdyz tam uz asi nikdo nepoleze.

A aspon po me nikdo nic nechce? .)

Youtube ma proste divny mechanizmy co ti ukazuje. Takze nekdy i kdyz presne zadas co chces tak ti bude prioritizovat neco popularniho ale co nehledas.
ZX Spectrum beeper hudba byla dost chuda na youtubu.
Teda tam uz neco je... a lenajde ti to kopii, protoze je ten kanal popularnejsi.

PS: Kdyz uz spamuji tak kde jsem to skoncil?

Balrog: Ajoj (ZX Spectrum 1 bit beeper cover (Fuse Unfiltered))
phpBB [video]

https://youtu.be/bfu1_5EWMYA
Tapka: http://codeberg.org/DW0RKiN/M4_FORTH/sr ... g/ajoj.tap

Obrazek jsem nekde ukr.. predelal z te 8-bit verze. A muzes se podivat jak tam mam schvalne vic atributovych "clash"? nez je potreba. Cele to ma na 8-bitu emulovat jeste vice nedokonaly obrazek 8-bitu. Nechal jsem tam tu oranzovou i kdyz nepatri mezi zakladni barvy. Srdicko vytvari pocit ze 2x2 pixely jsou jeden a navic tam je spojeni dvou svetlosti stejne barvy. To musi byt nejaky trik, to ZX neumi. Font je rovnou 4x4 pixely a taky to vypada ze nemaji problem se stretem svelosti.

Ale pokud vim nejsi odchovanec ZX ne? Tak to asi nemas nakoukano, jake jsou limity. Kdyz delas na te Amize.

Pockej 7.dubna to bude crack intro z Amigy z roku 1988.

Nebo si to uz muzes stahnout dnes pokud mas emulator (ZX).
Tapka: http://codeberg.org/DW0RKiN/M4_FORTH/sr ... /axk10.tap

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 05.04.2024, 11:16 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2325
Bydliště: Brno
Has thanked: 870 times
Been thanked: 323 times
To si tak nějak myslím, ze se nejedná o tvuj kód co to hraje tu hudbu ;) . Na jaký formát komprimuješ ten DAT formát? Proč se komprimuje? Predpokladám že se komprimuje kvůli Forth překladači. Nemyslel si tou komprimací spiše konvertování? Octode je napsany ve Forthu? Je to hudebni rutina kterou napsal nekdo jiny?

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 05.04.2024, 12:05 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Zapomnel jsem rici ze XM edituji ve Fast Trackeru 2. Chce to trosku proniknout do toho jak se to ovlada. Ale neni to moderni software. Prave mysitko, nebo Undo necekej.

U toho DAT se ptas jak jako vypada struktura textaku a nebo cim se pak komprimuje?

Nejake povidani o DAT je tady: https://codeberg.org/DW0RKiN/M4_FORTH/s ... octode2k16
Je to seznam patternu (ukazatel), nasledovany seznamem ( ukazatel na) radku v patternech, kde je pridan co hraje za bici.
A pak jednotlive radky, kde je napsany jen jednotlive frekvence pro ten engine pro kazdy kanal.
Vicemene.
Prilis usporny to zase neni.

Ta komprimace je aby to bylo mensi. .) Pro stahovani, na emulatoru je to ale jedno. Bez komprimace neudelas to hudebni demo s vice skladbama. Protoze ten song muze mit 15 kb+ a musi lezet rozbaleny na adrese 0x8000+ (vcetne asi 2kb? enginu)

Engine je Octode puvodne od Shiru, vylepseny UTZ. Precti si to info. Moje to neni, ja jen delal drobne upravy kvuli realokovatelnosti. Ja nicemu nerozumim. Nejesm hudebnik, programator ani grafik. Jen sklerotik neznalek. .)

Komprimacni program je ZX0. Relativne novy format od Einar Saukas. Novejsi nez ZX nejake vyssi cislo. Velmi vysoky kompresni pomer a rychla a mala rozbalovaci rutina. Fakt rychla. Nez skladba zacne hrat tak se rozbali a nepoznas to. Je to jen nejaky nasobek pomalejsi na LDIR (instrukce pro presun dat mezi dvema pametovymi misty).

Jeste nejaky dotaz?

Mimochodem kdyz jsem hledal puvodni autory skladeb tak me youtube zacina doporucovat nektere fakt zajimave a nezname tvurce obsahu:

Svedsky hudebnik Wolk//SoS

Tracker's Delight (C64, Amiga & PC music madness)
https://www.youtube.com/watch?v=VBs9wvxyk3U
Pokud mas rad zvuk SIDU C64, Pauly Amigy a "SoundBlasteru" na PC tak to spojil do jednoho uzasneho songu.

Fat Rat's Unity (8-bit C64 remix)
https://www.youtube.com/watch?v=xhD6R70gyNI
Kdyz poslouchas dokolecka ZX Beeper jako par dnu ja tak proste ten cisty ton SIDu budes milovat.

Nemecky hudebnik Sebastien Skaf

august 12 | original composition
https://www.youtube.com/watch?v=0KuhJqefKGg
Par dnu stara "vazna skladba". Ale muzes si pod tim predstavit i soundtrack k anime jak nekdo psal. Naprosto uzasna kvalita. Ma to 200 shlednuti... Je tam i stahnutelny odkaz na midi soubor. Ale pri 24 kanalech to vzdavam... .)

Vista Point | Gothic 3 Piano cover
https://www.youtube.com/watch?v=Dfp35Ukp-oU
Vcetne odkazu na midi soubor. Ale i po tydnu se me to nedari dokoncit... je to tak na 80% prijatelnosti. Je tam moc sumu a je tezke najit misto kde je chyba.
Pro me je to srdcovka. Tohle bych chtel mit na beeperu.

PS: OMG! Prave jsem narazil na skladbu ktera je uplne jiny level, jako z jine dimenze. Tohle je asi lepsi i nez Hey Beeper!

https://df-design.itch.io/raw-spectronica
Kdyz stahnete ten druhy 300 kb soubor s nazvem RAW_SPECTRONICA_ALBUM-press-n-for-next-track_V1.1.tap tak asi 11. skladba v poradi je SPECTRONICA.
phpBB [video]

phpBB [video]

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Naposledy upravil _dworkin dne 05.04.2024, 12:47, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 05.04.2024, 12:45 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2325
Bydliště: Brno
Has thanked: 870 times
Been thanked: 323 times
Již jsem si to tak nějak snad dal do hromady, jak ti to funguje. Format DAT jiz asi neni treba resit. To asi zpakuje a depakuje ten stejny program a pak hudebni data hazes na ten optcode. Ty vlaste upravujes ten hudebni format v programu tak aby si s tim prehravac optcode poradil. Pokud je to tak, tak jsem myslel ze to bude vetsi legrace, ale taky zajimavy ;)

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 05.04.2024, 12:56 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Lisiak4 píše:
Již jsem si to tak nějak snad dal do hromady, jak ti to funguje. Format DAT jiz asi neni treba resit. To asi zpakuje a depakuje ten stejny program a pak hudebni data hazes na ten optcode. Ty vlaste upravujes ten hudebni format v programu tak aby si s tim prehravac optcode poradil. Pokud je to tak, tak jsem myslel ze to bude vetsi legrace, ale taky zajimavy ;)


Tak nevim zda jsem to dokazal vysvetlit.

original XM --> rucne editovany XM aby prosel C konvertorem do txt --> DAT (tohle je textak plny cisel ktery dokaze hudebni engine prehrat pokud vse je v pameti od adresy 32768 a vys.

Ja pridavam mezikrok ze jakoby vezmu ten DAT soubor co lezi te 32k+ adrese a je vnitrne pevne slinkovan s tou adresou kde lezi (v jine pozici ma jine udaje) a zabalim ho ZX0 packerem (asi 4 mensi velikost u techto dat). Ten zabaleny soubor muzu umistit kdekoliv (pod 32 kb).
Pokud mam vic skladeb tak vsechny lezi po rozbaleni na stejne adrese (bufferu). Ale zpakovane jsou nekde ulozene za sebou.
Pred hranim skladby volam unpacker s parametrem kde lezi zabalena data a kam je ma rozbalit (2 adresy).

PS: A uz vidim ze si jen misto Octode, napsal optcode. Uz to dava vetsi smysl.

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 05.04.2024, 13:13 
Offline
Pan Generální
Uživatelský avatar

Registrován: 13.05.2013, 09:15
Příspěvky: 2325
Bydliště: Brno
Has thanked: 870 times
Been thanked: 323 times
Jo, rozumim tomu dobre. To s tou vetsi srandou jsem mel na mysli v ramci hudby a celkove jak se s tim dela. Je to taky legrace, ale jineho typu nez jsem mel na mysli.

Něco podobného vlastně reším já, ale s pouzitim programu k tomu urcenemu. Je samozrejme nutna taky priprava. Dnes jsem si konecne nasel cas a malinko uzpusobil kod, aby se mi data mohli cist taky postupne pomoci ciziho programu a nenahravala se cela na 1 krat, co bere hodne RAM. Ten program co planuji pouzit ma v sobe vestavenou i hudebni rutinu, ktera je urcite v mnoha oblastech lepsi nez ta moje, ale ja ji nepouziju. Ve svem kodu se vzdy vyznam nejlepe a o to mi jde.

_________________
Amiga - PMD 85


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 10.04.2024, 05:47 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Martin "Maktone" Nordell: 1992 (ZX Spectrum 1 bit beeper cover (Fuse Unfiltered))
phpBB [video]

https://www.youtube.com/watch?v=IutxXNPFI6c
Tapka: https://codeberg.org/DW0RKiN/M4_FORTH/s ... /_1992.tap

Martin "Maktone" Nordell: Polly Was A Cracker (ZX Spectrum 1 bit beeper cover (Fuse Unfiltered))
phpBB [video]

https://www.youtube.com/watch?v=cNIdffMdxCU
Tapka: https://codeberg.org/DW0RKiN/M4_FORTH/s ... /polly.tap

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 27.07.2024, 16:03 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Pridal jsem podporu ve scriptu compile.sh pro zmenu linkeru na sjasmplus z defaultniho pasma pouhym prepinacem. Takze to uz neni zavisle na tom ze nemate pasmo naistalovane, ale muzete to vyzkouset i kdyz mate oboji.

Upravill jsem trosku manipulaci s parametry v tom skriptu, takze nektere uz nemaji napevno dane poradi.
Posledni parametr ale stale musi byt pokud je pritomen program kterym se ma spustit vysledna tapka a za nim parametry pro spusteni.

../compile m4_souboru_bez_pripony --linker=sjasmplus

Vypisuje to ted i maly help co to chce, takze nemusite studovat kod...
Kód:
dworkin@dw-A15:~/Programovani/ZX/Forth/octode2k16$ ../compile.sh
Error: ../compile.sh: Need filename!
 Use:
   ../compile.sh m4_filename_without_suffix [[start_addr] or [loader.bas/minimal.bas/your_loader.bas] or [--linker=name_linker]] [[no_emul] or [emulator parameters]]
 Example:
   ../compile.sh   m4_filename_without_suffix
   ../compile.sh   m4_filename_without_suffix   0x8000
   ../compile.sh   m4_filename_without_suffix   32768 loader.bas
   ../compile.sh   m4_filename_without_suffix   32768 minimal.bas --linker=sjasmplus
   ../compile.sh   m4_filename_without_suffix   --linker=sjasmplus loader.bas start_addr
   ../compile.sh   m4_filename_without_suffix   start_addr loader.bas --linker=sjasmplus   no_emul
   ../compile.sh   m4_filename_without_suffix   --linker=sjasmplus loader.bas 32768        no_emul
   ../compile.sh   m4_filename_without_suffix   0x8000 loader.bas --linker=sjasmplus       fuse "-m 48"
   ../compile.sh   m4_filename_without_suffix   --linker=sjasmplus 0x8000                  fbzx

Diky tomu jsem upravil i skript music.sh, takze ma taky podporu pro parametr menici linker. Tentokrat je to bez toho dvojiteho minus.
A taky to vypisuje napovedu.
Kód:
dworkin@dw-A15:~/Programovani/ZX/Forth/octode2k16$ ../music.sh
../music.sh: fail!
Need music file name! Check --help
dworkin@dw-A15:~/Programovani/ZX/Forth/octode2k16$ ../music.sh --help
 Use:
   ../music.sh xm_filename_without_suffix [Optional_parameters]
 Optional parameters:
   param=".. .. .."  default is "-c -i -s -cut"
     -v    ..verbose on
     -o    ..out of range hot fix
     -c    ..continue sound next pattern
     -i    ..interrupt the same tone on the same channel with a short silence
     -s    ..interrupt the same tone on the another channel with a short silence
     -cut  ..end the tone on the next line after the effect 'EC?'
     -old  ..old version pasmo support (without 'ifndef')
     -k=   ..end tone after the effect 'K??' now or next row (?? >= value)
     -r=   ..repeat times or infinite (=0)
     -d=   ..the maximum number of lines before the tone is terminated
     -m=   ..auxiliary value for the following parameters
             value of the number rows before it will be repeated (module operation)
             example -m=3 --> relative index: 0 1 2 0 1 2 0 1 2...
     -ig1= ..relative index of the row to be 'ignored'
     -ig2= ..relative index of the row to be 'ignored'
     -ig3= ..relative index of the row to be 'ignored'
     -e=   ..relative index of the row that will have an extended duration
     -t=   ..relative index of the row that will have a trim duration
   music_name=...    default is first no "xxx=..." parameter
   file_name=...     defualt is "music_name"
   scr_name=...      default is "music_name" + "_scr"
   linker=...        default is "pasmo"
   buffer_org=...    default is 65280-"buffer_size"
   program_org=...   default is 24200
   --load_screen  ...if the picture exists, but there is no more space in the memory,
                     it will be loaded from tape directly to the screen,
                     otherwise it will be compressed and displayed by the program,
                     so GOTO 20 will run the program repeatedly without reloading from tape.
 Example:
   ../music.sh a_burning_glance
   ../music.sh a_burning_glance --load_screen
   ../music.sh vltava_edit file_name=Vltava scr_name=Cesky_Krumlov_scr param="-c -cut -i -s"
../music.sh: fail!
Need music file name! Check --help

Dnes jsem pridaval napovedu pro parametry pro prevod XM->DAT (zacina to -v a konci -t=). Takze tahle cast bude na webu po pulnoci.

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Macro FORTH
PříspěvekNapsal: 13.08.2024, 21:14 
Offline
Pan Štábní

Registrován: 23.06.2013, 23:49
Příspěvky: 1293
Has thanked: 102 times
Been thanked: 195 times
Youtube me vybral na sledovani video
phpBB [video]

kde se popisuje metoda jak zjistit ze cislo je delitelne 7.

Cislo mate v dekadickem formatu.
Posledni cislici odrthnete, vynasobite peti a prictete k prvni casti.
Tohle muzete opakovat.

12345 / 7?

1234+5*5=1259

125+5*9=170

17+5*0 = 17...takze neni delitelne 7.


12348 / 7 ?

1234+5*8 = 1274
127+5*4=147
14+5*7=49
4+5*7=49


Princip je zalozen na tomhle vzorci...

cislo = 10*x+y
kde y je posledni cifra a x ty predchozi...

Kdyz to vynasobite peti tak mate

5*cislo = 50*x+5*y

a stale to nemeni nic na delitelnosti 7 puvodniho cisla.

50*x+5*y se da zapsat jako

49*x+1*x+5*y

a to je

7*7*x+x+5*y.... 7*7*x muzeme ignorovat...

takze nam zbude testovat

x+5*y

Ale neni duvod se spokojit s rozdelenim na posledni cifru jak uvadi.. muzeme to udelat i

100*x+y a 100 /7 = 14.28...

14*7*x+2*x+y kde 14*7*x muzeme ignorovat takze nam zbude

2*x+y...
12345 / 7?

2*123+45 = 291
2*2+91=95

a zajimave je, ze kdyz jsme to nicim nenasobili tak budeme mit spravne i modulo 7!!!

Muzeme tohle udelat i jako

1000*x+y = 142*7*x+6*x+y atd.

Proste to muzeme rodelit kde chceme.

A tohle lze provest i kdyz to cislo mame binarne.

Nejlepe to rozdelit nekde v polovine. Presna hodnota neni na prvni pohled poznat, protoze do toho vstupuji dalsi okolnosti ohledne instrukcni sady.

Pokud mame 16 bit unsigned a chceme ziskat jak vysledek deleni tak zbytek...

Rozdelime cislo na spodnich 9 bitu a hornich 9 bitu (tam je jen 7 platnych bitu)

cislo = 512*x+y = 511*x + x + y= 73*7*x + x + y

x + y je v rozsahu 0 .. 638

Pokud chceme vysledek tak musime nasobit hornich 9 bitu 73 a zapamatovat si to (mezivysledek = 73*x)...

Dalsim pulenim dejme tomu na 6 bitu mame

x+y = cislo = 64*m+n = 63*m+m+n = 7*9*m+m+n

Pokud chceme vysledek tak musime k mezivysledku pricist 9*m

m+n je v rozsahu 0..71

a otazkou je zda uz neudelat prosty opakovany odecet...

jinak to muzeme rozdelit na spodni 3 bity.

m+n=cislo = 8*a+b = 1*7*a+1*a+b

Pokud chceme vysledek tak musime k mezivysledku pricist a.

a+b je v rozsahu 0..15

a to uz bych zvolil odecet, nebo tabulku, nebo jinou metodu.

Pokud nas zajima jen MODulo tak je to o to snazsi.

U16BIT mod 10?

cislo = 512 * bit15_9 + bit8_0 = 10*51*bit15_9 + 2*bit15_9 + bit8_0

2*bit15_9 je v podstate horni bit vydelime dvema a pak ho vynasobime dvema...
Takze nam staci vynulovat spodni bit.

ld A,H
and 0xFE
ld C,A
ld B,0
xor H
ld H, A
add HL, BC

a v HL je hodnota 0..765

pak kdybychom to chteli rozdelit na pet bitu

cislo = 32*m+n=3*10*m+2*m+n

ld A,L
and 32-1 ; A = "n"
add HL,HL
add HL,HL
add HL,HL ; H = hornich 5 bitu = "m"
sla H ; 2*m
add A, H ; n+m

a v A jsme v rozsahu "0..75 mod 10" a pritom jsem napsal 14 instrukci.

Pekna metoda ne?

Dal to delit na polovinu uz neni tak pekne... posledni deleni je na 4 bity (protoze 8 je mensi nez 10)

cislo = 16*a+b = 10*a + 6*a + b

nasobeni 6 je eee... a i to ziskani hodnoty A znamena 4 posuny... a vysledke nas posune do rozsahu 0..35, takze nijak extra.

Pokud chceme uchovat i ten vysledek deleni, tak je to o to horsi, protoze prvni mezivysledek musime nasobit 51. A 51 neni nijak pekna hodnota...
Kód:
                        ;[10:96]    51 *   Variant mk4: ...(((HL*2^a)+HL)*2^b)+... = HL * (b_0011_0011)
    ld    B, H          ; 1:4       51 *
    ld    C, L          ; 1:4       51 *   1       1x = base
    add  HL, HL         ; 1:11      51 *   1  *2 = 2x
    add  HL, BC         ; 1:11      51 *      +1 = 3x
    add  HL, HL         ; 1:11      51 *   0  *2 = 6x
    add  HL, HL         ; 1:11      51 *   0  *2 = 12x
    add  HL, HL         ; 1:11      51 *   1  *2 = 24x
    add  HL, BC         ; 1:11      51 *      +1 = 25x
    add  HL, HL         ; 1:11      51 *   1  *2 = 50x
    add  HL, BC         ; 1:11      51 *      +1 = 51x


Proto ten zpusob jak to rozdelit na polovinu muze byt osidny a musi se vyzkouset vic zpusobu...
Kód:
dworkin@dw-A15:~/Programovani/ZX/Forth/Test$ ../check_word.sh 'PUSH(25) MUL'
                        ;[8:74]     25 *   Variant mk4: ...(((HL*2^a)+HL)*2^b)+... = HL * (b_0001_1001)
    ld    B, H          ; 1:4       25 *
    ld    C, L          ; 1:4       25 *   1       1x = base
    add  HL, HL         ; 1:11      25 *   1  *2 = 2x
    add  HL, BC         ; 1:11      25 *      +1 = 3x
    add  HL, HL         ; 1:11      25 *   0  *2 = 6x
    add  HL, HL         ; 1:11      25 *   0  *2 = 12x
    add  HL, HL         ; 1:11      25 *   1  *2 = 24x
    add  HL, BC         ; 1:11      25 *      +1 = 25x 
; seconds: 0           ;[ 8:74]


number = 256*x+y = 25*x+6*x+y a to "6*x" uz vlastne mame hotovy...

_________________
Z80 Forth compiler (ZX Spectrum 48kb): https://codeberg.org/DW0RKiN/M4_FORTH


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 636 ]  Přejít na stránku Předchozí  1 ... 37, 38, 39, 40, 41, 42, 43  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz