OldComp.cz

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

Registrace na OCP IV ZDE!

Právě je 24 zář 2018, 12:06

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: 417
Has thanked: 348 times
Been thanked: 191 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]
61 krát

_________________
ZX Spectrum DELTA, D80, XY4150
DOS Programming, Win32 API Programming
OldComp GitHub
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 26 led 2018, 00:04 
Offline
Radil
Uživatelský avatar

Registrován: 31 srp 2014, 15:27
Příspěvky: 540
Bydliště: Praha
Has thanked: 37 times
Been thanked: 138 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: 1633
Bydliště: Praha východ
Has thanked: 9 times
Been thanked: 115 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 - co nabízím k prodeji

ComputerAsylum - web
Twitter: https://twitter.com/COMPUTERASYLUM
Pinterest: https://www.pinterest.co.uk/COMPUTERASYLUM/
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
Radil
Uživatelský avatar

Registrován: 31 srp 2014, 15:27
Příspěvky: 540
Bydliště: Praha
Has thanked: 37 times
Been thanked: 138 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: 1633
Bydliště: Praha východ
Has thanked: 9 times
Been thanked: 115 times
printscreen:
Příloha:
Poznámka: printscreen
addtris.JPG
addtris.JPG [ 104.42 KiB | Zobrazeno 2683 krát ]

_________________
Hyperinzerce - co nabízím k prodeji

ComputerAsylum - web
Twitter: https://twitter.com/COMPUTERASYLUM
Pinterest: https://www.pinterest.co.uk/COMPUTERASYLUM/
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: 417
Has thanked: 348 times
Been thanked: 191 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, XY4150
DOS Programming, Win32 API Programming
OldComp GitHub


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Assembler - začátečníci
PříspěvekNapsal: 26 led 2018, 15:50 
Offline
Radil
Uživatelský avatar

Registrován: 31 srp 2014, 15:27
Příspěvky: 540
Bydliště: Praha
Has thanked: 37 times
Been thanked: 138 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: 2159
Has thanked: 80 times
Been thanked: 305 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: 417
Has thanked: 348 times
Been thanked: 191 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]
39 krát

_________________
ZX Spectrum DELTA, D80, XY4150
DOS Programming, Win32 API Programming
OldComp GitHub
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: 1556
Has thanked: 61 times
Been thanked: 266 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 2353 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: 417
Has thanked: 348 times
Been thanked: 191 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, XY4150
DOS Programming, Win32 API Programming
OldComp GitHub


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: 417
Has thanked: 348 times
Been thanked: 191 times
Tak opraveno


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

_________________
ZX Spectrum DELTA, D80, XY4150
DOS Programming, Win32 API Programming
OldComp GitHub
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: 1556
Has thanked: 61 times
Been thanked: 266 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: 417
Has thanked: 348 times
Been thanked: 191 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, XY4150
DOS Programming, Win32 API Programming
OldComp GitHub


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: 1556
Has thanked: 61 times
Been thanked: 266 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 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