OldComp.cz

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


Právě je 28.03.2024, 18:24

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 16 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: Assembler x86 - začátečníci
PříspěvekNapsal: 25.01.2018, 22:39 
Offline
Radil

Registrován: 27.09.2014, 23:56
Příspěvky: 446
Has thanked: 436 times
Been thanked: 230 times
Už delší dobu mě lákalo zkusit si něco naprogramovat v Assembleru. Narazil jsem na skripta TurboAssembler která jsou součástí balíku knihyoc3.7z - viz vlákno v sekci Literatura do SCjoe:

viewtopic.php?f=91&t=2856

Musím říci, že mě to docela chytlo. Člověk neučí standardní knihovny, ale studuje architekturu počítače a firmware api.

Dávám sem do placu můj první trochu smysluplný program. Věřím že zdejší assembleroví veteráni by ho napsali minimálně o třetinu kratší, ale já jsem na začátku :-)

Tohle vlákno zakládám, aby sem případně mohli dávat své časné pokusy i další začátečníci (nazáleží na tom, pro jaký procesor) a aby si assembleroví veteráni na nich mohli smlsnout :-)


Přílohy:
addtris.zip [3.29 KiB]
507 krát

_________________
ZX Spectrum DELTA, D80, Melodik, XY4150, Aritma 0512
PGP: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 26.01.2018, 01:04 
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: 372 times
Není to vůbec špatné. Vidím, že k práci s obrazovkou poctivě používáš funkce DOSu a VGA BIOSu.

Jako vylepšení se můžeš zamyslet nad organizací obrazové paměti textového režimu a zkusit kreslit přímo zápisem do ní.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 26.01.2018, 01:55 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 06.10.2015, 17:37
Příspěvky: 1554
Bydliště: Praha východ
Has thanked: 11 times
Been thanked: 144 times
určitě dobrý nápad a námět. Jen tak dál. Pouze, že ten COM soubor spuštěný v DOS okně ve Windows XP na Pentiu nic nedělá, zasekne se. Je vidět pouze černé pozadí DOS okna, jinak nic. Ale dost možná , že v čistě DOS počítači to funguje. Spíše by to chtělo generovat EXE soubory, než COM soubory.

_________________
Hyperinzerce - historické počítače

ComputerAsylum WEB: http://www.computerasylum.co.uk
Twitter: https://twitter.com/COMPUTERASYLUM
Zprávy: https://www.euronews.com/ https://www.aljazeera.com/
Obrázek


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 26.01.2018, 02:14 
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: 372 times
V DOSBoxu to funguje dobře. EXE místo COM by pod Windows XP stejně ničemu nepomohl. Na první pohled ale v programu nevidím nic, co by mělo bránit běhu pod Windows XP.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 26.01.2018, 09:31 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 06.10.2015, 17:37
Příspěvky: 1554
Bydliště: Praha východ
Has thanked: 11 times
Been thanked: 144 times
printscreen:
Příloha:
Poznámka: printscreen
addtris.JPG
addtris.JPG [ 104.42 KiB | Zobrazeno 11834 krát ]

_________________
Hyperinzerce - historické počítače

ComputerAsylum WEB: http://www.computerasylum.co.uk
Twitter: https://twitter.com/COMPUTERASYLUM
Zprávy: https://www.euronews.com/ https://www.aljazeera.com/
Obrázek


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 26.01.2018, 11:21 
Offline
Radil

Registrován: 27.09.2014, 23:56
Příspěvky: 446
Has thanked: 436 times
Been thanked: 230 times
Bohužel nemám přístup k XP abych vyzkoušel. Ale napadá mě jestli za to nemůže:

Kód:
 in      al,dx


v rutině Get Random Number

Protože XP už blokují přímý přístup na porty.

_________________
ZX Spectrum DELTA, D80, Melodik, XY4150, Aritma 0512
PGP: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 26.01.2018, 16:50 
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: 372 times
berk píše:
Bohužel nemám přístup k XP abych vyzkoušel. Ale napadá mě jestli za to nemůže:

Kód:
 in      al,dx


v rutině Get Random Number

Protože XP už blokují přímý přístup na porty.


To bude nejspíš ono. NTVDM je už velice restriktivní. Lépe zkoušet takové věci pod DOSBoxem nebo pod Windows 95/98. NTVDM třebas špatně podporuje ne-VGA videorežimy.
Windows 98 byly vůbec nejlepší systém na hraní her pro DOS. Vzpomínám si, že jsem měl PCI zvukovou kartu, kterou Windows 98 byly schopné podstrčit hrám běžícím v DOSovém okně jako Sound Blaster na ISA. Stačil na to virtuální ovladač.

A kdo z vás má ještě SYSMAN, AT-HELP či PC-HELP? To byl panečku hypertext.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 29.01.2018, 12:42 
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
Zapomněl jsi na Norton Guides... :P

_________________
"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: Assembler - začátečníci
PříspěvekNapsal: 04.02.2018, 16:30 
Offline
Radil

Registrován: 27.09.2014, 23:56
Příspěvky: 446
Has thanked: 436 times
Been thanked: 230 times
Přikládám update:

- opravil jsem pár chybek
- přidal jsem zvuky (viz rutiny v sekci Speaker na konci souboru - pro někoho může být zajímavé)

Testuji to na IBM PC (Model 5150), MDA, 64K
Bohužel ho nemám :-(, tak jen tady:

https://www.pcjs.org/


Přílohy:
addtris_0.1.5.zip [5.04 KiB]
481 krát

_________________
ZX Spectrum DELTA, D80, Melodik, XY4150, Aritma 0512
PGP: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 04.02.2018, 19:28 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Kuňkání je super, ale v DOSBoxu mám nějaké divné barvy:
Příloha:
addtris_000.png
addtris_000.png [ 2.53 KiB | Zobrazeno 11504 krát ]

Nemělo by to být modré celé?

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 04.02.2018, 20:20 
Offline
Radil

Registrován: 27.09.2014, 23:56
Příspěvky: 446
Has thanked: 436 times
Been thanked: 230 times
Aha, ta modrá tam být vůbec nemá. Je to asi pozůstatek atributů úvodní stránky toho dosboxu. Tak budu muset mazat obrazovku i s atributama...

_________________
ZX Spectrum DELTA, D80, Melodik, XY4150, Aritma 0512
PGP: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 04.02.2018, 21:37 
Offline
Radil

Registrován: 27.09.2014, 23:56
Příspěvky: 446
Has thanked: 436 times
Been thanked: 230 times
Tak opraveno


Přílohy:
addtris_0.1.6.zip [5.07 KiB]
472 krát

_________________
ZX Spectrum DELTA, D80, Melodik, XY4150, Aritma 0512
PGP: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 04.02.2018, 22:02 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Jo, bylo to tím. Zajímavé je že ty atributy byly vyplněné i když jsem to spouštěl přímo "dosbox ADDTRIS.COM", takže se ta úvodní obrazovka vůbec nezobrazovala, proto mě to nenapadlo. Že by jí DOSBox měl předmalovanou už v kódu a pak jí prostě nepoužil?

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 04.02.2018, 22:58 
Offline
Radil

Registrován: 27.09.2014, 23:56
Příspěvky: 446
Has thanked: 436 times
Been thanked: 230 times
No vypadá to, že se spustí dosbox včetně té úvodní obrazovky a vzápětí hned spustí ten addtris. Úvodní obrazovku dosboxu tedy nezahlédneš, ale zůstane po ní hezká stopa :-)

_________________
ZX Spectrum DELTA, D80, Melodik, XY4150, Aritma 0512
PGP: A6EA 1F93 EF6B D8D1 35AD B6D7 1E79 73E5 1B28 17F9


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 04.02.2018, 23:14 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Je to tak, při maximálním zpomalení to takhle proběhlo. Úvodní obrazovka tam vyskočí hned, a pak se postupně po řádcích překresluje.
V té první verzi jsi volal nějaké mazání obrazovky v BIOSu? Protože tam se všechno bleskově smazalo a pak se vykreslila jáma.
Zato ta poslední verze je nějaká moc rychlá, smaže i překreslí to mnohem rychleji než ty předchozí dvě i při úplně zabržděném DOSBoxu!

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


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ů: 16 ]  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 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