OldComp.cz

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


Právě je 29.03.2024, 14:05

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 18 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: V čem vyvíjet programy v assembleru
PříspěvekNapsal: 24.10.2018, 10:00 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 372 times
Been thanked: 788 times
[EDIT: převedeno z vlákna PROMETHEUS - zdrojový kód]

Ale zase na druhej strane, aspon podla mna, dnes pisat programy priamo na Spektre je uz dost prezitok. Pisanie a kompilacia programov na viacbitoch je ovela pohodlnejsia a flexibilnejsia - existuju kompletne a velmi pohodlne vyvojove prostredia pre pisanie programov v asembleri pre Z80, farebne zvyraznenie syntaxe a komentare napravo od instrukcii su samozrejmostou. Tak isto aj kompilacia poskytuje ovela vecsie moznosti - vnorene makra, includovanie vela velkych zdrojovych textov naraz, asembler so zdrojakom ti nezavadzia v pameti ZX Spektra, ked ti program crashne tak neprides o neulozeny zdrojak. Ja osobne od roku cca 2010 uz pisem programy jedine takto. Podla mna je zbytocne stracat cas akymkolvek vylepsovanim vyvojovych prostredi beziacich priamo na ZX (ci uz je to MRS alebo Prometeus).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PROMETHEUS - zdrojový kód
PříspěvekNapsal: 24.10.2018, 12:47 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 372 times
Been thanked: 788 times
zxcygnus píše:
Přesto jsme museli mockrát zápasit s nedostatkem paměti. Sestavovat program z více částí při každé kompilaci a testování je docela pracné.
Tak tu si s dovolenim trosicku prihrejem polievocku ;)
V pripade MRS nieco take ako nutnost rozdelit zdrojak na viac casti kvoli nedostatku pameti vobec nepoznam :)
Napriklad zdrojak bsdosu308 ma 4040 riadkov, a kompilacia vygeneruje kod dlhy 7641 bajtov (z toho cca 95% su poctive instrukcie).
Alebo napriklad priamo vsetky moje upravy MRS v jednom zdrojaku, tento zdrojak ma 4644 riadkov a vygeneruje kod dlhy 7386 bajtov. A tiez, az na zopar malickych tabuliek, skoro cely zdrojak su poctive instrukcie.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PROMETHEUS - zdrojový kód
PříspěvekNapsal: 24.10.2018, 13:12 
Online
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 423 times
Been thanked: 265 times
Busy píše:
SCjoe píše:
Některá PRO pro zaobírání se Prometheem:
- v porovnání s ostatními dobovými systémy je NEJ (viz srovnání v úvodu manuálu k Prometheovi)
No ako sa to vezme. Podla mna z vyvojovych prostredi tej doby prave MRS je NAJ :poke: :D
Ako sa to vezme. ;-)
Ja som na Speccy začínal na OCP Assembleri od Jamesa Hutchbyho. Keďže som nemal návod, tak som mnohé veci používal iba metódou pokus-omyl. A fakt v ňom boli niektoré veci obskurné.
Potom som si kúpil MRS a nejakú dobu robil v ňom, ale nakoniec som zakotvil u Promethea a v ňom sa mi robilo najlepšie.
Z dnešného pohľadu Prometheovi samozrejme chýbajú mnohé "vymoženosti", ale treba si uvedomiť, za akých podmienok vznikal.

Ale to sme už asi OT.

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


Naposledy upravil rombor dne 24.10.2018, 20:06, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: PROMETHEUS - zdrojový kód
PříspěvekNapsal: 24.10.2018, 19:48 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2332
Has thanked: 303 times
Been thanked: 637 times
Busy píše:
V pripade MRS nieco take ako nutnost rozdelit zdrojak na viac casti kvoli nedostatku pameti vobec nepoznam :)
Když začneš pracovat s grafikou, tak na limit narazíš mnohem rychleji. Při troše štěstí se ti vejde kód + zdroják, ale stejně si zkompilovaný kód musíš někam uložit a pak znovu načíst spolu s daty. To je to o čem píšu a to je to, co při programování na vícebitu nemusíš řešit, protože jedním make uděláš vše, jak sis naskriptoval, třeba i s BASICovým programem, zavaděčem, úvodním obrázkem, samplovanou hudbou, kompresí, ve více jazykových verzích...

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PROMETHEUS - zdrojový kód
PříspěvekNapsal: 25.10.2018, 08:55 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 372 times
Been thanked: 788 times
zxcygnus píše:
Busy píše:
V pripade MRS nieco take ako nutnost rozdelit zdrojak na viac casti kvoli nedostatku pameti vobec nepoznam :)
Když začneš pracovat s grafikou, tak na limit narazíš mnohem rychleji.
Pracoval som (vid napr. Echologia), nenarazil som (resp. nie az tak aby som kvoli tomu musel delit zdrojak) :)

A inak s cross-programovanim na viacbitoch plne suhlasim, vid moj prispevok kde o tom pisem.


Nahoru
 Profil  
 
 Předmět příspěvku: Na čem psát programy v assembleru
PříspěvekNapsal: 26.10.2018, 08:16 
Offline
Radil
Uživatelský avatar

Registrován: 05.12.2013, 09:01
Příspěvky: 289
Bydliště: Praha
Has thanked: 1150 times
Been thanked: 83 times
Trochu OT. Když už se bavíme o assemlerech (Prometheus, OCP, MRS), padla zmíňka, že je lepší programovat mimo Spectrum. Tak by mě zajímalo, v čem, případně co by jste doporučili?

_________________
//// eLeMeNt_v1; ZX Nucleon512_v2A; ZX Spectrum; ZX Spectrum+; ZX Spectrum 128k; ZX Spectrum 2B; SDI-1; Sparrow 48K; Didaktik D80; D80min; Didaktik Melodik; Betadisk; Divide; Aritma 517; ZX Diskface Plus B; BDI; NewBetaDisk-css; DigitalTapeRecorder_v2; ZX-VGA-JOY; ///A500mini;


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PROMETHEUS - zdrojový kód
PříspěvekNapsal: 26.10.2018, 08:45 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 372 times
Been thanked: 788 times
Trelix píše:
padla zmíňka, že je lepší programovat mimo Spectrum. Tak by mě zajímalo, v čem, případně co by jste doporučili?
Ja osobne doporucujem ako kompiler pouzivat SjASMPlus. Jeho vyhodou je ze syntaxou je najblizsie k povodnym asemblerom na ZX, vie vsetky bezne veci na ktore si pri asembleri len spomeniete (vnorene makra, podmienky, includy zdrojaku aj binariek), obsahuje skriptovaci jazyk Lua (kod mozete vytvarat "programovo") a umoznuje kompilaciu nielen do binarky ale priamo aj do roznych ZX formatov (tap, sna, trd...). Ale hlavne je to zivy projekt, o ktory sa starame (ja, mborik, z00m, cizo...) takze pripadne bugy (ak sa nejake najdu) riesime a sme ochotni poskytnut aj nejaku tu technicku podporu ak treba.

Vo vyvojovych prostrediach az taky prehlad nemam, ale viem ze ich existuje cely rad, kde si mozete zvyraznit syntax a definovat vlastny kompiler a vlastny sposob spustania programu (spusti emulator s programom). Pokial pouzivate Microsoft Visual Studio, doporucujem k nemu mborik-ove VS-CODE, ktore vam pracu krasne spohodlni tym ze umozni vyuzivat vela roznych vylepseni a doplnkov ktore VS ako take poskytuje pre ine jazyky - od farebneho zvyraznenia syntaxe, po automaticke doplnovanie textu, az po pohodlne prezeranie casti kodu pri editacii inej casti.

Alebo tiez mozete pouzit akykolvek normalny plaintextovy editor (napr. notepad++), zdrojak pisat v nom a kompilovat ho pomocou nejakeho makefile alebo bataku.

Nuz a k tomu vsetkemu je este vhodne pouzit nejaky dobry emulator so zabudovanym debuggerom. Skusat a ladit program sa ta aj priamo na ZX, ale debuggery v emulatoroch maju podstatnu vyhodu v tom ze "nikde nie su", t.j. nezaberaju samotnu pamet ZX Spektra a ladeny program o nich nema sancu akokolvek vediet.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PROMETHEUS - zdrojový kód
PříspěvekNapsal: 26.10.2018, 09:53 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Busy píše:
Trelix píše:
padla zmíňka, že je lepší programovat mimo Spectrum. Tak by mě zajímalo, v čem, případně co by jste doporučili?
Ja osobne doporucujem ako kompiler pouzivat SjASMPlus.

Já osobně používám jako compiler SjASMPlus. 8-)

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PROMETHEUS - zdrojový kód
PříspěvekNapsal: 26.10.2018, 10:33 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2332
Has thanked: 303 times
Been thanked: 637 times
Trelix píše:
Trochu OT. Když už se bavíme o assemlerech (Prometheus, OCP, MRS), padla zmíňka, že je lepší programovat mimo Spectrum. Tak by mě zajímalo, v čem, případně co by jste doporučili?
Já stále používám ASL, jsem na něj zvyklý a stačí mi. Viz https://cygnus.speccy.cz/popis_instalac ... ebianu.php (Snad je článek ještě stále dostatečně aktuální.)

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PROMETHEUS - zdrojový kód
PříspěvekNapsal: 26.10.2018, 11:50 
Offline
Radil
Uživatelský avatar

Registrován: 19.07.2013, 14:21
Příspěvky: 258
Bydliště: Košice
Has thanked: 143 times
Been thanked: 380 times
Busy píše:
Pokial pouzivate Microsoft Visual Studio, doporucujem k nemu mborik-ove VS-CODE, ktore vam pracu krasne spohodlni tym ze umozni vyuzivat vela roznych vylepseni a doplnkov ktore VS ako take poskytuje pre ine jazyky - od farebneho zvyraznenia syntaxe, po automaticke doplnovanie textu, az po pohodlne prezeranie casti kodu pri editacii inej casti.
Och, tak tu to musim cele dat na pravu mieru, lebo su to trochu nepravdive tvrdenia... :dco:

Rozhodne sa to netyka toho ohavneho, nenazraneho a celkovo uplne priserneho proprietarneho vyvojoveho prostredia Microsoft Visual Studio! Jedna sa o open-source, free a multiplatformove vyvojove prostredie VSCode, ktore ma s tym svojim ohavnym predchodcom spolocne asi iba krstne meno a dizajn. Tak, a do tohto editora som naprogramoval rozsirenie z80-macroasm, ktory tento celkovo lightweight textovy editor premeni na hotove IDE urcene hlavne pre nam zname kompilery AS, SjASMPlus, alebo Francuzke rasm. A teda, ako pisal Busy, okrem zvyraznovania syntaxe robi plnohodnotny IntelliSense, tj. vie o vsetkych navestiach, symboloch, hodnotach na navestiach, prechadza pritom vsetky includovane zdrojaky. Pozna kompletnu syntax a semantiku nasho krasneho Z80 a v danom momente ponuka kontextovo vlastne to, co sa v dany moment hodi (napr. ld hl,| ponukne nielen symboly, ale aj vsetky prislusne registre, pary registrov, atd...). Mimo to este pozna (a doplna) rozne preprocesorove vychytavky kompilerov, makra, podmienky apod.
Odporucam aj zaciatocnikom, ktori sa v kode casto stracaju, pretoze, hlavne pri dlhom zdrojaku plugin pomaha, kedze vie presne, co je kde definovane. :dwi:

Ako to funguje ilustruju prilozene screenshoty:
https://github.com/mborik/z80-macroasm- ... n-provider


Nahoru
 Profil  
 
PříspěvekNapsal: 26.10.2018, 17:33 
Offline
Profík
Uživatelský avatar

Registrován: 31.08.2014, 16:27
Příspěvky: 994
Bydliště: Praha
Has thanked: 63 times
Been thanked: 375 times
Odlehčenou variantou může být i docela obyčejný PSPad.

Lze jej celkem snadno nastavit tak, aby zvýrazňoval syntaxi a spouštěl cross-assembler po stisknutí klávesové zkratky.
U větších programů lze využít schopnost PSPadu udržovat projekt a spouštět kompilaci pro celý projekt.

Úplně plnohodnotné IDE to ale není.


Nahoru
 Profil  
 
PříspěvekNapsal: 26.10.2018, 18:00 
Offline
Radil
Uživatelský avatar

Registrován: 19.07.2013, 14:21
Příspěvky: 258
Bydliště: Košice
Has thanked: 143 times
Been thanked: 380 times
baktra píše:
Odlehčenou variantou může být i docela obyčejný PSPad.
V dobach nedavno minulych som to takto pouzival, ale vykon a moznosti PSPadu su roky zamrznute a tak som ho "pustil k ledu".

Kazdopadne, viem posluzit aspon syntax highlighterom.
Umiestnit do C:\Program Files\PSPad\Syntax\Z80.ini


Přílohy:
Poznámka: Syntax highlighter pre PSPad
(prisposobene hlavne pre AS)

Z80.zip [635 bajtů]
639 krát
Nahoru
 Profil  
 
PříspěvekNapsal: 27.10.2018, 08:56 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
Protože mě nebavilo neustálé přeskakování z texťáku do kompileru, následně do emulátoru, abych zjistil že jsem tam udělal nějakou drobnou chybu kvůli které si celé kolečko zopáknu, napsal jsem si celé vývojové prostředí pro ZX Spectrum - po svém. Vzorem mi bylo Visual Studio, protože pohodlnější programování než v něm jsem nikdy a nikde nezažil. Dnes pro ZX Spectrum v ničem jiném nedělám. Jedná se o LnxSpectrum emulátor a jeho ASM project editor.

Mezi největší výhodu beru krokování ASM programu přímo v editoru, za chodu, ve svém vlastním zdrojáku, bez nutnosti mít otevřený Z80 debugger. Pokud chci znát hodnotu některého registru, labelu nebo nápovědu pro některé instrukce, najedu si na něj myší a stisknu alt (viz screenshoty). Breakpointy můžu během krokování přidávat nebo odebírat klávesou. Můžu si nastavit aby vykreslování do videoram se okamžitě ukázalo na obrazovce bez nutnosti čekání na letící paprsek monitoru. Příkazem include můžu přidávat různé bin, scr, asm, ale také PNG a JPG. Kompiler je převede do formátu dat podle nastavení, jak je ZX Spectrum k zobrazení potřebujue. Assembler obsahuje knihovny, dekompresor dat, nebo rutinu pro přehrávání hudby (AY, SAAY, TS - LnxTracker). Umí kompilovat do rozšířené paměti u ZX128 nebo Didaktiku Gama, dokonce při emulaci DivIde kompilovat přímo do její rozšířené RAM.

Na tomto projektu pracuju několik let, stále. Jasně že není dokonalý, ale třeba bugy opravuju obvykle do několika dnů. Nebráním se novým funkcím, i když je osobně ani nepoužívám (např. poslední #IfUsed). Snažím se psát i nějaký ten manuál / dokumentaci. Tu najdete tady: https://wiki.ilnx.cz/doku.php/lnxspectrum:start.

Screeny:
https://www.ilnx.cz/pics/lnxasm3.jpg
https://www.ilnx.cz/pics/lnxasm4.jpg

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
PříspěvekNapsal: 27.10.2018, 11:51 
Offline
Radil
Uživatelský avatar

Registrován: 19.07.2013, 14:21
Příspěvky: 258
Bydliště: Košice
Has thanked: 143 times
Been thanked: 380 times
Lanex píše:
Protože mě nebavilo neustálé přeskakování z texťáku do kompileru, následně do emulátoru, abych zjistil že jsem tam udělal nějakou drobnou chybu kvůli které si celé kolečko zopáknu...
Do kompilera som neprepinal nikdy. V minulosti mi PSPad priamo spustal kompilaciu na hotkey a aj teraz mam vo VSCode build task a kompilujem jednoduchym Ctrl+Shift+B. :dwi:
S emulatorom mas pravdu, roky ma trapi to, ze Fuse je sice idealny svojou multiplatformnostou, ale bohuzial je jeho ovladanie blizke sebatryzni a debugger ide uplne proti uzivatelskej privetivosti. Ine Windows emulatory (Spin, SpecEmu) maju tiez velmi biedne debuggery, na hranici pouzitelnosti a tak som sa ustalil na rusackom UnrealSpeccy, ktoremu som konfiguraciu "znasilnil" aby sa spraval ako klasicky anglicky toastrack 128k, a to iba preto, ze ma vyborny debugger.
Lanex píše:
...napsal jsem si celé vývojové prostředí pro ZX Spectrum - po svém. Vzorem mi bylo Visual Studio, protože pohodlnější programování než v něm jsem nikdy a nikde nezažil. Dnes pro ZX Spectrum v ničem jiném nedělám. Jedná se o LnxSpectrum emulátor a jeho ASM project editor.
Okrem toho, ze je to C# obluda, ktora mi moju i5 2.3GHz pocas emulacie ubija o 40%+, mi na tom asi najviac vadi to, ze si sa pri syntaxe a mnemonike neinspiroval znamymi macroassemblermi (AS, SjASMPlus, rasm, pasmo...), ktore su aspon v zakladnych veciach navzajom kompatibilne. Takto si vniesol kompletne novy sposob zapisu, ktory tam vnasa nepekne direktivy zacinajuce # (a-la C/C++) ale je to znacne nekonzistentne (napr. preco je #macro ale uz nie #include?) :dro:


Nahoru
 Profil  
 
PříspěvekNapsal: 27.10.2018, 12:56 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
Obluda :) Je to NET prostředí, určené na psaní her pro Win a Xbox, s tím já nic moc neudělám. Na mém AMD se zátěž pohybuje kolem 12 %, a zabere v paměti 77 MB RAM, to se mi obludné v dnešní době opravdu nezdá ;-) (edit: 3 % zátěž - měl jsem přepnuto na Z80 20 MHz emulaci :) )

Každý Macroassembler přináší věci navzájem nekompatibilní. Ano, i u mého tomu je. Ano přidal jsem tam věci inspirované C/C#. Neinspiroval jsem se macroassemblermi (AS, SjASMPlus, rasm, pasmo). Staré programy jsem psával v Prometheu, na Win v LnxSpectrum. Pohodlí převládlo. ;-) Zkušení programátoři kteří mají naučené a vypálené v hlavě ověřené postupy se ted novým postupům učit nebudou, o tom nepochybuji. A není na tom nic špatného. Ale pro začínajicího programátora, který by rád něco udělal pro ZX si myslím že to není špatná volba...

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


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ů: 18 ]  Přejít na stránku 1, 2  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 2 návštevní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