OldComp.cz

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

Reklama!

Právě je 17 pro 2018, 03:12

Všechny časy jsou v UTC + 1 hodina




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 - začátečníci
PříspěvekNapsal: 25 led 2018, 21:39 
Offline
Radil

Registrován: 27 zář 2014, 22:56
Příspěvky: 439
Has thanked: 385 times
Been thanked: 198 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]
85 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 led 2018, 00:04 
Offline
Profík
Uživatelský avatar

Registrován: 31 srp 2014, 15:27
Příspěvky: 581
Bydliště: Praha
Has thanked: 39 times
Been thanked: 143 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 led 2018, 00:55 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 06 říj 2015, 16:37
Příspěvky: 1840
Bydliště: Praha východ
Has thanked: 11 times
Been thanked: 137 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 led 2018, 01:14 
Offline
Profík
Uživatelský avatar

Registrován: 31 srp 2014, 15:27
Příspěvky: 581
Bydliště: Praha
Has thanked: 39 times
Been thanked: 143 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 led 2018, 08:31 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 06 říj 2015, 16:37
Příspěvky: 1840
Bydliště: Praha východ
Has thanked: 11 times
Been thanked: 137 times
printscreen:
Příloha:
Poznámka: printscreen
addtris.JPG
addtris.JPG [ 104.42 KiB | Zobrazeno 4208 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 led 2018, 10:21 
Offline
Radil

Registrován: 27 zář 2014, 22:56
Příspěvky: 439
Has thanked: 385 times
Been thanked: 198 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 led 2018, 15:50 
Offline
Profík
Uživatelský avatar

Registrován: 31 srp 2014, 15:27
Příspěvky: 581
Bydliště: Praha
Has thanked: 39 times
Been thanked: 143 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 led 2018, 11:42 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18 čer 2013, 19:26
Příspěvky: 2244
Has thanked: 83 times
Been thanked: 323 times
Zapomněl jsi na Norton Guides... :P

_________________
www.zxsparrow.com


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 04 úno 2018, 15:30 
Offline
Radil

Registrován: 27 zář 2014, 22:56
Příspěvky: 439
Has thanked: 385 times
Been thanked: 198 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]
64 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 úno 2018, 18:28 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 19:13
Příspěvky: 1631
Has thanked: 67 times
Been thanked: 283 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 3878 krát ]

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

_________________
"When I designed Voyager, I did it on an Apple II with 48K of memory, and I wrote my own Basic program." - Burt Rutan
Obrázek Obrázek


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

Registrován: 27 zář 2014, 22:56
Příspěvky: 439
Has thanked: 385 times
Been thanked: 198 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 úno 2018, 20:37 
Offline
Radil

Registrován: 27 zář 2014, 22:56
Příspěvky: 439
Has thanked: 385 times
Been thanked: 198 times
Tak opraveno


Přílohy:
addtris_0.1.6.zip [5.07 KiB]
57 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 úno 2018, 21:02 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 19:13
Příspěvky: 1631
Has thanked: 67 times
Been thanked: 283 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?

_________________
"When I designed Voyager, I did it on an Apple II with 48K of memory, and I wrote my own Basic program." - Burt Rutan
Obrázek Obrázek


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 04 úno 2018, 21:58 
Offline
Radil

Registrován: 27 zář 2014, 22:56
Příspěvky: 439
Has thanked: 385 times
Been thanked: 198 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 úno 2018, 22:14 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 19:13
Příspěvky: 1631
Has thanked: 67 times
Been thanked: 283 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!

_________________
"When I designed Voyager, I did it on an Apple II with 48K of memory, and I wrote my own Basic program." - Burt Rutan
Obrázek Obrázek


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


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