Vlákno názorů k článku Programujeme OS: řídíme textový režim VGA od Wladows - > Výpočet vypadá následovně: adresa = 0×b8000 +...

  • Článek je starý, nové názory již nelze přidávat.
  • 28. 7. 2009 22:23

    Wladows (neregistrovaný)

    > Výpočet vypadá následovně: adresa = 0×b8000 + [(3–1) * 80] + (5–1) 

    Tady je věcná chyba. Jeden pár znak-atribut zabírá 2 bajty, takže se musí násobit dvěma:

    adresa = (char*)0xb8000 + (((3–1) * 80) + (5–1)) * 2

    Je třeba mít stále na paměti, že pointerová aritmetika v C/C++ pracuje nad ‚poli‘ referencovaného typu, ne nad bajty.


    Jen bych rád podotkl, že čtenář článku, který neví ani jak vypsat písmenko na textovou obrazovku, by se rozhodně neměl pokoušet psát vlastní operační systém. To je jako kdyby se člověk, který netuší k čemu slouží šroubovák pokusil postavit letadlovou loď. :) Proto se musí nejdřív vzdělat. Doporučil bych mu nabootovat do DOSu (dneska asi spíš v nějakém virtuálním stroji) a začít si hrát s hardwarem, osahat si všechno, napsat nějaké grafické demo, pochopit co mu ten jednoduchý systém nabízí (a co ne) a teprve pak přemýšlet jak to napsat jinak, líp a během útržku jednoho krátkého života… (Tak, a teď mně ukamenujte)

  • 28. 7. 2009 23:34

    šachy (neregistrovaný)

    ,,Proto se musí nejdřív vzdělat. … napsat nějaké grafické demo"

    Ano, vzdělává se tímto seriálem, a na konci si třeba napíše grafické demo ;-)

  • 28. 7. 2009 23:45

    bez přezdívky

    Souhlasím, ve spěchu jsem na to zapomenul – pokud byste namísto (char *) nahodil (short *), uz by to bylo jinak. Při psaní jsem vycházel z výše uvedeného vzoru, takže mě to ani nenapadlo.