Hry, které se vejdou do boot sektoru

David Murray (The 8-Bit Guy) na svém Youtube kanále zveřejnil krátké a pěkně zpracované video o hrách, které se vejdou do boot sektoru. To znamená, že nejsou větší jak 512 byte.

Hry, které se vejdou do boot sektoru

Je samozřejmostí, že takové hry se píší v nízkoúrovňovém Assembleru nebo strojovém kódu, což byla běžná praxe programování her na 8bitech. Já si spíše z dob 286 pamatuji temnější stránky - boot viry (u nás mezi nejznámější patří asi slovenský OneHalf).

Ale zpět ke hrám. Pokud se chcete inspirovat nebo si vyzkoušet nějakou takovou hru naprogramovat, tak se podívejte na stránky mexického vývojáře jména Óscar Toledo Gutiérrez, který se právě takovýmto programováním zabývá. Mezi jeho díla mimo jiné patří:

Až na Tinyasm se vše vejde do 512 byte. Všechny zdrojové kódy jsou k dispozici na jeho Githubu. Oskar o programování her napsali i pěknou knihu Programming Boot Sector Games.

Kniha Programming Boot Sector Games

Knihu lze koupit v tištěné verzi jako paperback nebo hardcover nebo a jako e-book (úplně dole na stránce, která vypadá sice podezřele, ale nákup přes PayPal proběhl bez problémů a dostanete PDF). V knize jsou vysvětleny i základy assembleru.

Doporučit mohu také výukové materiály Nicka Blundella, zejména Writing a Simple Operating System (PDF).


Vyzkoušení

Připravil jsem krátký postup, jak si vyzkoušet takovou hru zprovoznit:

  • stáhněte si a nainstalujte emulátor DosBox (pravda, tento krok je asi pro většinu čtenářů tohoto webu nadbytečný 🙂)
  • stáhněte si The Netwide Assembler (verze 2.14 pro Windows x64), archiv si rozbalte např. do složky "C:\NASM"
  • stáhněte si zdrojový kód (pillman.asm) hry Pillman a uložte např. do složky "C:\Pillman"
  • spusťte příkazový řádek Windows a zkompilujte hru pomocí příkazu"
    "C:\NSAM\nasm.exe -f bin C:\Pillman\pillman.asm -o C:\Pillman\pillman.bin"
    (výše uvedené je jeden příkaz)
  • spusťte DosBox a zadejte v něm příkaz
    "boot C:\Pillman\pillman.bin"

Hry, které se vejdou do boot sektoru

Pokud chcete něco jednoduššího, tak můžete zkusit obyčejné "Hello" z výše uvedeného materiálu Writing a Simple Operating System (PDF):

; A simple boot sector that prints a message to the screen using a BIOS routine.
;
mov ah, 0x0e ; int 10/ ah = 0eh -> scrolling teletype BIOS routine
mov al, 'H'
int 0x10
mov al , 'e'
int 0x10
mov al , 'l'
int 0x10
mov al , 'l'
int 0x10
mov al , 'o'
int 0x10
jmp $ ; Jump to the current address ( i.e. forever )
;
times 510 -($-$$) db 0 ; Pad the boot sector out with zeros
;
dw 0xaa55 ; Last two bytes form the magic number so BIOS knows we are a boot sector.

Autor: KamilZm
  • Kategorie: PC

Komentáře k:
"Hry, které se vejdou do boot sektoru"

Přidej komentář (přihlášení / registrace)

(Komentáře s více jak 2 odkazy musí počkat na schválení.)